當(dāng)前位置:首頁 > 測試測量 > 測試測量
[導(dǎo)讀]1、 引言 TCP/IP起源于60年代末美國政府資助的一個分組交換網(wǎng)絡(luò)研究項目,到現(xiàn)今已發(fā)展成為計算機之間最常應(yīng)用的組網(wǎng)形式。盡管標(biāo)準(zhǔn)的TCP/IP協(xié)議族在數(shù)據(jù)傳輸?shù)目煽啃耘c數(shù)據(jù)流量的控制上作的很好,但是8位微控制器性

1、 引言
TCP/IP起源于60年代末美國政府資助的一個分組交換網(wǎng)絡(luò)研究項目,到現(xiàn)今已發(fā)展成為計算機之間最常應(yīng)用的組網(wǎng)形式。盡管標(biāo)準(zhǔn)的TCP/IP協(xié)議族在數(shù)據(jù)傳輸?shù)目煽啃耘c數(shù)據(jù)流量的控制上作的很好,但是8位微控制器性能的限制下,標(biāo)準(zhǔn)的TCP/IP協(xié)議族的實現(xiàn)占用大量系統(tǒng)資源是實際應(yīng)用所不允許的。因此要在不改變TCP/IP協(xié)議族標(biāo)準(zhǔn)的前提下對其進(jìn)行裁剪,使其實時性提高同時保證可靠性以滿足嵌入式系統(tǒng)的要求。
SF0020是NEC公司推出的兼容80C51的8位微控制器芯片。根據(jù)系統(tǒng)在網(wǎng)絡(luò)監(jiān)控系統(tǒng)控制終端應(yīng)用的需要,外部接25MHz晶體,內(nèi)部倍頻至50MHz。該芯片內(nèi)嵌有10M/100Mbps的MAC模塊并提供MII界面,可與外部的Ethernet PHY芯片方便連接。芯片有256字節(jié)內(nèi)部數(shù)據(jù)存儲器,外部可擴充至512K字節(jié)。具備的DMA通道實現(xiàn)了在RAM中和在MAC與RAM之間進(jìn)行快速數(shù)據(jù)傳輸?shù)墓δ?;支持校驗和模塊,在實現(xiàn)TCP/IP時可以節(jié)省控制器運算開銷。指令周期為4個時鐘周期(標(biāo)準(zhǔn)80C51為12時鐘周期/指令周期)。其性能滿足實現(xiàn)嵌入式TCP/IP協(xié)議族的基本要求。
2、 協(xié)議族總體框架設(shè)計與裁剪策略
為了實現(xiàn)在局域網(wǎng)環(huán)境中作為客戶端控制前端監(jiān)控設(shè)備(硬盤錄像機、編碼器、解碼、視頻服務(wù)器等)的應(yīng)用要求,必須在有限的硬件資源的條件下保證數(shù)據(jù)傳輸?shù)目煽啃院蛯崟r性。因此數(shù)據(jù)鏈路層采用目前應(yīng)用最為廣泛的以太網(wǎng)協(xié)議;上層利用TCP/IP的實現(xiàn)采用在運輸層直接采用可靠的TCP協(xié)議,然后對其進(jìn)行適當(dāng)裁剪的方法。這是因為考慮到通用性、兼容性和通信的可靠程度,而沒有使用在應(yīng)用層加入控制策略運輸層使用簡單UDP協(xié)議的方案。本地數(shù)據(jù)的流動要實現(xiàn)向應(yīng)用程序提供可靠的數(shù)據(jù),與底層以太網(wǎng)驅(qū)動程序交互數(shù)據(jù)報功能。
協(xié)議族系統(tǒng)結(jié)構(gòu)框架如下圖1所示,其中虛線部分是本文所要完成的,包括socket子層、運輸層的TCP協(xié)議、網(wǎng)絡(luò)層的IP和ICMP協(xié)議、ARP協(xié)議和以太網(wǎng)子層。

500)this.style.width=500;" border="0" />
 
圖1 協(xié)議族系統(tǒng)框架
2.1 接口子層實現(xiàn)
以太網(wǎng)子層提供了與以太網(wǎng)驅(qū)動程序的接口,其實現(xiàn)驅(qū)動程序存儲空間和協(xié)議空間之間數(shù)據(jù)搬移的功能;以及數(shù)據(jù)報流入的分路和流出的封裝處理。
Socket(插口)子層向上層提供了創(chuàng)建一個socket描述符,將本地的IP地址與端口號綁定到一個socket上,TCP連接的建立、斷開,數(shù)據(jù)的接收與發(fā)送的功能。
2.2 網(wǎng)絡(luò)層實現(xiàn)
網(wǎng)絡(luò)層實現(xiàn)包括IP協(xié)議(Internet Protocol網(wǎng)際協(xié)議)和基于IP協(xié)議的ICMP協(xié)議(Internet Control Messages Protocol控制報文協(xié)議)。圖1中該層下部的ARP(Address Resolution Protocol 地址解析協(xié)議)為IP提供動態(tài)地址解析服務(wù)。
IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的網(wǎng)絡(luò)層和運輸層數(shù)據(jù)都以IP數(shù)據(jù)報格式傳輸。為了減小TCP/IP協(xié)議族的負(fù)擔(dān),接收時首先要檢查數(shù)據(jù)報的正確性,其次還要過濾目的地址不是本機的報文;此外如果收到被IP分片的數(shù)據(jù)報立即丟棄。最后判斷協(xié)議交給TCP或ICMP協(xié)議處理。因為禁止IP層分片可以提高通信的效率和可靠性,根據(jù)以太網(wǎng)最大傳輸單元(MTU)的限制,socket子層控制了用戶每次傳輸分組的最大字節(jié)數(shù)。同樣服務(wù)端也對IP分片加以限制使IP無需把有限的系統(tǒng)資源消耗在IP報文重裝上,這正是丟棄被分片的IP數(shù)據(jù)報的原因。
ICMP提供主機或路由器報告差錯或提供查詢信息的服務(wù)。ICMP報文可以分成兩類:差錯和查詢。查詢報文是用一對請求和回答定義的。ICMP差錯報文通常包含了引起錯誤的IP數(shù)據(jù)報的第一個分片的IP首部(和選項),加上該分片數(shù)據(jù)部分的前8個字節(jié)。由于運輸層僅僅使用TCP協(xié)議,ICMP也進(jìn)行了裁剪。協(xié)議支持ping命令請求回顯應(yīng)答,用于檢查協(xié)議族的運行狀況;差錯控制全部交給運輸層TCP協(xié)議處理。
ARP協(xié)議為IP地址和硬件地址之間提供映射。ARP報文分為請求和應(yīng)答兩種報文,通過這兩種報文實現(xiàn)ARP緩存的更新。ARP高速緩存在它的運行過程中非常關(guān)鍵。由于微控制器硬件資源限制ARP高速緩存只定義了8組,因此查找采用線性搜索的方法對最終性能并沒有影響。緩存只包含以下4項既可以實現(xiàn)ARP協(xié)議又可以節(jié)省硬件資源:IP地址、MAC地址、寫入時間、標(biāo)志位。
2.3 運輸層實現(xiàn)
運輸層僅僅實現(xiàn)了TCP(Transfer Control Protocol傳輸控制協(xié)議)。該協(xié)議提供了全雙工高可靠性的通信,因此應(yīng)用層和網(wǎng)絡(luò)層可以忽略相關(guān)細(xì)節(jié)。TCP是TCP/IP體系中面向連接的運輸層協(xié)議,它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分組交給下面的網(wǎng)絡(luò)層,確認(rèn)接收到的分組,設(shè)置發(fā)送最后確認(rèn)分組的超時時鐘等。
每當(dāng)本地發(fā)出連接建立請求后,創(chuàng)建一個對應(yīng)的傳輸控制模塊TCB(Transmission Control Block).它存儲了該連接中的重要信息。和ARP高速緩存一樣其數(shù)據(jù)保存在片內(nèi)數(shù)據(jù)存儲區(qū)來提高協(xié)議的運行效率。本文中TCB的實現(xiàn)只包含以下內(nèi)容:IP地址、雙方端口號、雙方序列號、對方應(yīng)答序號、當(dāng)前連接狀態(tài)、定時器、指向下一個有效數(shù)據(jù)區(qū)的指針、窗口大小。此外通過對TCP首部的選項字段的配置,即保證在局域網(wǎng)內(nèi)部傳輸時IP層傳輸時不會分片使MMS(Maximum Segment Size 最大報文段長度)盡可能大,可以提高TCP傳輸效率。 同時考慮到作為客戶端應(yīng)用,在不影響正常工作的前提下TCP有限狀態(tài)機實現(xiàn)中去掉了服務(wù)端的兩個狀態(tài)LISTEN(監(jiān)聽)、SYN_RCVED(接收SYN狀0態(tài))如下圖2所示。

500)this.style.width=500;" border="0" />
 
圖2 TCP有限狀態(tài)機
 
由于網(wǎng)絡(luò)中數(shù)據(jù)傳輸必然會產(chǎn)生數(shù)據(jù)丟失,TCP錯誤重傳和數(shù)據(jù)重組尤為重要。錯誤重傳是在發(fā)送了需對端確認(rèn)的報文段后設(shè)置重傳定時器,如果在定時器時限內(nèi)未收到ACK該報文段被重發(fā)。因此當(dāng)數(shù)據(jù)發(fā)送之后要等到ACK確認(rèn)報文才能丟棄。數(shù)據(jù)重組是基于面向字節(jié)的序列號,實現(xiàn)重復(fù)數(shù)據(jù)的丟棄、亂序報文的重組。
 
3、協(xié)議族實現(xiàn)關(guān)鍵技術(shù)
3.1 協(xié)議族定時器的實現(xiàn)
ARP實現(xiàn)需要兩個定時器。重傳需要一個定時器,如果ARP報文發(fā)送后1秒中內(nèi)沒有應(yīng)答則再次發(fā)送,本文實現(xiàn)連續(xù)4次重傳后ARP將放棄;ARP高速緩存數(shù)據(jù)存儲時間需要一個定時器,緩存內(nèi)容保存時間為20分鐘,同時允許管理員創(chuàng)建永久節(jié)點作為代理節(jié)點。
TCP實現(xiàn)為當(dāng)前連接建立了如下六個定時器:連接建立定時器,重傳定時器,延遲ACK定時器,持續(xù)定時器, FIN_WAIT_2定時器,TIME_WAIT定時器;去掉了保活定時器,因為該定時器僅是TCP連接的可選配置,在監(jiān)控中的需要有應(yīng)用程序?qū)崿F(xiàn)更加嚴(yán)格的連接保持定時。本文根據(jù)實際監(jiān)控網(wǎng)絡(luò)情況修改了標(biāo)準(zhǔn)協(xié)議族定義的超時時間,使實時性得以提高。
3.2 協(xié)議族的內(nèi)存管理策略
傳入的分組是保存在內(nèi)存中并將其傳遞給適當(dāng)?shù)膮f(xié)議作進(jìn)一步處理的。同時,應(yīng)用程序產(chǎn)生的數(shù)據(jù)也必須以分組的形式存儲在內(nèi)存中,并最終將其交給網(wǎng)絡(luò)硬件設(shè)備傳送出去。因此協(xié)議的高效性取決于如何管理保存這些分組的存儲空間。本文對內(nèi)存管理用以下兩種方法做到快速分配存儲空間,并且避免分組在各層協(xié)議之間移動時的數(shù)據(jù)復(fù)制。
發(fā)送數(shù)據(jù)報時采用大緩沖區(qū)方案:即將緩沖區(qū)劃分的足夠大(1514字節(jié)),提前留出協(xié)議首部字節(jié)的大小,能夠存儲最長的分組。接收數(shù)據(jù)報時采用鏈表方案:為了避免內(nèi)存碎片的產(chǎn)生該緩沖區(qū)采用固定大小。鏈表的特點是允許快速封裝而無需數(shù)據(jù)的復(fù)制,也就是說當(dāng)接收到遞交上來的數(shù)據(jù)報后,就分配一個新緩沖區(qū),填寫其中的內(nèi)容后將新緩沖區(qū)插入保存此信息的鏈接列表中,這樣就可以很容易的在某個信息的前面插入附加字節(jié),而無需移動已經(jīng)存在的數(shù)據(jù)。采用此方法可以優(yōu)化TCP數(shù)據(jù)報的重組。
采用以上兩種方法可以最大限度實現(xiàn)TCP/IP協(xié)議族內(nèi)數(shù)據(jù)公用,無需額外數(shù)據(jù)搬移。
3.3 協(xié)議族數(shù)據(jù)流程
    如下圖3所示,用戶待發(fā)送的數(shù)據(jù)首先通過socket接口程序進(jìn)入TCP/IP協(xié)議族,分別進(jìn)行TCP與IP的數(shù)據(jù)封裝后查詢ARP高速緩存,如果存在當(dāng)前目的IP與硬件地址的映射則填充以太網(wǎng)幀頭部信息后拷貝至以太網(wǎng)驅(qū)動程序空間立即發(fā)送,否則發(fā)出ARP查詢報文,將當(dāng)前用戶數(shù)據(jù)拷貝至發(fā)送等待緩沖,進(jìn)入接收狀態(tài)等待ARP查詢報文的應(yīng)答。
 
                     由于輸入操作發(fā)生在中斷期間,此時設(shè)備驅(qū)動程序是不能調(diào)用任何過程來處理分組,也就是說中斷服務(wù)程序并不直接調(diào)用IP,而是使用了消息傳遞的方式。當(dāng)一個IP分組到達(dá)之后用消息通知主循環(huán),由主循環(huán)調(diào)用協(xié)議族進(jìn)行數(shù)據(jù)處理。如下圖4所示,首先通過以太網(wǎng)子層分路到達(dá)幀,如果是ARP報文則檢查更新ARP緩沖,收到ARP請求立即應(yīng)答,若是應(yīng)答報文則檢查本地發(fā)送等待隊列如有數(shù)據(jù)立即發(fā)送;如果是IP報文首先判定其協(xié)議類型,ICMP報文中的ping命令請求回顯則立即應(yīng)答,源站抑制報文交給TCP處理;若是TCP協(xié)議進(jìn)入有限狀態(tài)機進(jìn)行解析最后將有效數(shù)據(jù)通過socket接口遞交上層。
 500)this.style.width=500;" border="0" />
     
圖3 協(xié)議族數(shù)據(jù)發(fā)送處理框圖             圖4 協(xié)議族數(shù)據(jù)接收處理框圖
 
4、 結(jié)論
經(jīng)過裁剪的嵌入式TCP/IP協(xié)議族,結(jié)構(gòu)精簡,實時性強,可以在SF0020芯片上穩(wěn)定運行,基于該協(xié)議族的網(wǎng)絡(luò)監(jiān)控系統(tǒng)控制終端通過了專項測試達(dá)到期望的要求。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉