《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于8位微處理器的嵌入式TCP/IP協議棧剖析

基于8位微處理器的嵌入式TCP/IP協議棧剖析

2009-09-25
作者:伍洲凱 王 波

  摘??要: 對嵌入式TCP/IP協議棧發展現狀進行了分析,并詳細剖析了嵌入式TCP/IP協議棧的實現細節及基于8位微處理器實現的技術思路。

  關鍵詞: 微處理器? 嵌入式? TCP/IP? 協議棧

?

1 基于8位微處理器的嵌入式TCP/IP協議棧的意義

  隨著Internet的爆炸式增長,TCP/IP已經成為通信領域事實上的國際標準。對于嵌入式系統而言,能夠通過自身的嵌入式TCP/IP協議棧連接Intranet,甚至Internet,將使其具有更好的實用性,且可帶來巨大的經濟效益。目前出現了很多依靠通信技術開發出的十分有用的嵌入式系統應用實例。例如嵌入式系統可以通過低帶寬的無線鏈路傳輸電度表讀數。采用全球定位系統GPS技術和無線鏈路的嵌入式系統可以用于確定在國內任何地方行駛的車輛的準確位置、速度、油壓和其他參數。

  傳統TCP/IP協議棧(包括桌面PC和服務器中的TCP/IP協議棧以及一般的基于32位的嵌入式TCP/IP協議棧等)的實現需要大量的存儲器資源。這是由于這些實現的代碼量偏大,且運行時也要耗用大量內存。因此,存儲資源有限的8位系統無法滿足這種需求?,F場智能化儀表多采用8位微處理器,如果能夠在低端8位微處理器上實現連網的功能,其經濟效益將非常可觀,應用前景極其廣闊。

2 嵌入式TCP/IP協議棧發展現狀

  目前已存在的TCP/IP協議棧大致分為2類:(1)沿用了BSD TCP/IP協議棧的實現思路。(2)完全與BSD TCP/IP協議棧無關的實現。

  由于BSD協議棧最初是針對工作站設計的,而并非是針對嵌入式設備設計的,因此,沿用BSD TCP/IP協議棧實現思路的嵌入式TCP/IP協議棧(如InterNiche NicheStack)通常都比較復雜,且代碼較多,所以一般都在32位微處理器上實現。

  另一類完全與BSD TCP/IP協議棧無關的實現通常都對通信環境做了某些假設,從而可以使用簡化的模型來實現TCP/IP協議棧,如PIC micro stack。通常假設嵌入式TCP/IP協議棧只與那些具有完整標準的TCP/IP協議棧的系統進行通信,即簡化的TCP/IP模型可以通過遠端完整的標準TCP/IP協議棧進行通信。但是,如果遠端也是一個簡化的嵌入式TCP/IP協議棧,通信就有可能失敗。這類TCP/IP協議棧一般都定位在16位甚至8位微處理器上實現。

  TCP/IP模型通??梢葬槍δ硞€具體的應用進行簡化。以Web服務器應用為例,由于Web服務器不使用TCP/IP協議棧的緊急數據功能,也不需要維持活動連接(在HTTP協議中定義的),因此針對Web服務器應用開發嵌入式TCP/IP協議棧時,前述功能不需要實現。

3?嵌入式TCP/IP協議棧的技術剖析

  嵌入式TCP/IP協議棧通常都包括IP、ICMP、TCP和UDP等幾個協議。下面分別針對這幾個協議進行相關技術剖析并探討其基于8位微處理器實現的技術思路。

3.1 IP協議

  從網絡接口層進來的數據包,首先將被網絡層的IP協議處理。IP協議對數據包進行一些簡單的檢查,如數據包的目的IP地址是不是本地IP地址,同時校驗數據包。由于8位嵌入式TCP/IP協議棧幾乎不需要使用IP選項,因此對于接收到的數據包中的IP選項,可以忽略不處理。

  對于IP協議中的分段重組功能,可以使用單獨的緩沖區來實現。當一個分段被接收后,將被拷貝到緩沖區中的相應位置,同時使用位圖來跟蹤指示哪些分段已成功接收。根據IP協議可知,一個分段的第一個字節在緩沖區的位置必然是8的倍數,也就是按8字節進行對齊,因此,位圖只占用很少的內存。當所有分段被正確接收后,重組好的分組將被傳送給TCP協議層進行處理。通常8位嵌入式TCP/IP協議棧傳輸的單個分段的數據量都比較小。如果在某些具體應用或者某些具體環境中能確保8位嵌入式TCP/IP協議棧接收到的分組不存在分片的分段,則可以忽略實現IP協議的分段重組功能。

  IP協議有組播和廣播的功能,因此IP分組的目的地址可以是組播地址或者廣播地址。IP廣播在許多基于UDP協議的應用中經常被使用,如Microsoft Windows File-Sharing SMB協議。IP組播多用于多媒體的發布,如RTP。如果要使協議棧支持基于UDP協議的應用,則除了要實現UDP協議外,通常還應該實現IP廣播和組播功能。

3.2 ICMP協議

  ICMP主要用來進行網絡故障診斷,如常用的Ping程序就是利用ICMP協議的回應機制(Echo)來測試網絡的連通性。在8位嵌入式協議棧中,一般應該實現ICMP協議的回應機制,而其他功能則可以忽略。

  ICMP的回應機制就是對接收到的回應請求消息(Echo Request)返回一個回應應答消息(Echo Reply)。因此實現起來很簡單,只需要將接收到的回應請求消息中分組的源端IP和目的端IP交換一下,然后將該分組的ICMP頭部設置為ICMP回應應答消息類型,最后按標準方法計算ICMP校驗和即可。

3.3 TCP協議

  由于TCP協議包含超時重發機制,因此其實現需要一個定時器。接收到的分組經過IP協議層處理后,就可交給TCP協議層處理,具體來說就是調用TCP協議實現的接口函數。如果分組中除了TCP頭部外,還包含應用數據,則TCP協議將把該數據傳給某個具體的應用層協議做進一步處理;如果分組只是確認前一次數據的成功發送,則更新連接狀態信息(Connection State),并且通知某個具體的應用層協議可以發送新數據。

  TCP允許半打開的連接(Half-Open Connection),即該半打開的連接正對連接請求進行監聽。在實現中,可以使用鏈表來組織所有正監聽的連接,且可以使用16位的端口號來惟一標識每個正監聽的連接。當一個連接請求到來時,根據連接請求指定的端口號,查找該鏈表。同時該鏈表隨著應用層程序的運行,可以動態調整。

????當發送數據時,應用層程序必須檢查TCP協議的發送窗口的大小,并根據其大小來調整本次發送的字節數。發送窗口大小取決于可用內存的大小和數據接收者聲明的窗口大小。在發送數據時,先要用緩沖空間來緩沖需要發送的數據。如果緩沖空間不可使用,則必須等待直到緩沖空間可用為止。當從接收者接收到確認信息后,緩沖空間變為可用。當緩沖空間可用時,將通知應用程序可以發送數據了。

  大多數TCP協議的實現中都使用滑動窗口機制來發送數據。通過滑動窗口機制,多個數據段可以連續同時發送。如果不使用滑動窗口機制,則需要在每次發送完一個數據段后等待確認信息,當接收到確認后才能發送下一個數據段。在基于8位微處理器的協議棧中,不推薦使用滑動窗口機制。這是由于滑動窗口算法需要使用許多32位操作數,而在許多8位微處理器上32位的操作效率非常低下。而且滑動窗口機制需要較多的緩沖空間來緩沖多個要發送的數據段,這對內存資源有限的8位微處理器來說比較浪費。此外,滑動窗口機制并不是TCP協議必需的,沒有滑動窗口機制,完全不會影響網絡的互聯,只是發送效率比較低而已。

  為了得到合理的重發時延,TCP需要持續對該活動連接進行回旋時間(Round-Trip Time,RTT)的評估。在TCP協議中,可以通過定時器來評估RTT。具體方法是:每個活動連接維護一個計數器;每當定時器觸發時,對每個剛發送了數據,且當前還沒有接收到確認信息的活動連接計數器加1;當收到確認信息后,該連接計數器的當前值就作為RTT樣例值,結合標準的RTT評估函數就可以得到RTT的評估值,最后將該連接的計數器清零。

  TCP重發機制的實現依賴于定時器。每個活動連接維護一個重發時延值,該值取決于RTT。當定時器觸發時,每個剛發送了數據且當前還沒有接收到確認信息的活動連接的重發時延值減1,當重發時延值減為0時,該連接重發前一次發送的數據。數據重新發送完后,重發時延值設為初始值。重發數據的來源有2種方式:(1)緩沖區,即當數據發送完后,先放到緩沖區中,直到收到確認信息后才將該數據從緩沖區中刪除。(2)不對發送的數據進行緩沖,當重發時,通知應用程序重新獲得前一次發送的數據。

  TCP流量控制機制的目的在于使性能和內存大小具有較大差異的主機間能夠進行通信。每一個TCP數據段中指定了發送者可用的緩沖空間的大小。發送者發送的數據不應該大于接收者指定的緩沖空間大小。如果接收者已不能接收數據,則指定可用的緩沖空間大小為0。

  TCP擁塞控制機制限制了網絡中并發的TCP數據段的數目。擁塞控制算法非常容易實現,只需少量的代碼。如果協議棧沒有實現滑動窗口機制,則每個活動連接只能一次發送一個TCP數據段。這樣,網絡中并發的TCP數據段就得到了控制,從而可以忽略擁塞控制機制的實現。

  TCP緊急數據機制提供了應用到應用的通知機制。應用程序可以使用該機制使某些數據流比正常的數據流更快地發送出去。緊急數據的含義由接收應用程序負責解釋。如果要實現緊急數據機制,則會大大增加協議棧的復雜度。因此在基于8位微處理器的嵌入式協議棧中,一般都忽略該機制。

  每個TCP連接都需要一定的狀態信息。由于這些狀態信息必然要占用內存,因此在實現時應該最小化TCP連接所需要的狀態信息。如果實現TCP滑動窗口機制,則會大大增加TCP連接所需要的狀態信息。滑動窗口機制需要每個TCP連接都必須保存一些32位序號信息,而且如果要支持宿主機(一個主機有多個IP地址),則每個連接還要保存更多的信息。因此,對于基于8位微處理器的嵌入式協議棧而言,必須忽略一些機制。

3.4 UDP協議

  與TCP協議相比,UDP協議非常簡單。UDP主要應用于不同的進程之間鏈路的多路復用。它沒有復雜的機制,只需要按照協議標準實現。

4? 結束語

  一個實用的基于8位微處理器的嵌入式協議棧首先要保證能和其他協議棧正確通信,這既包含完整的協議棧,也包括同樣是基于8位微處理器的嵌入式協議棧。其次要合理、高效地使用資源,尤其是存儲資源。此外,還要求代碼簡潔高效。

?

參考文獻

1 Tanenbaum A S著,熊桂喜,王小虎譯.計算機網絡.北京:清華大學出版社,1998

2 Comer D E,Stevens D L著,趙剛,林瑤,蔣慧譯.用TCP/IP進行網際互連(第2版).北京:電子工業出版社,1998

3?劉磅.TCP/IP Ethernet—自控設備的新選擇.http://www.gongkong.com,2003

4 劉磅.現場級TCP/IP控制器及其實踐.http://www.gongkong.com,2003

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美伊人久久大香线蕉综合69| 亚洲先锋成人| 久久免费精品日本久久中文字幕| 久久亚洲私人国产精品va| 国产精品美女黄网| 欧美极品aⅴ影院| 一区二区黄色| 亚洲激精日韩激精欧美精品| 欧美日韩一区二区三区在线看| 久久久久国产成人精品亚洲午夜| 国产欧美一区二区三区沐欲| 欧美视频在线观看一区二区| 国产视频一区免费看| 国产日韩一区二区三区在线播放| 欧美日韩国产综合网| 欧美日韩一区精品| 欧美日韩亚洲三区| 欧美一级在线播放| 国产精品一二三四区| 欧美一区二区女人| 亚洲欧美日韩国产综合在线| 久久精品夜色噜噜亚洲a∨| 欧美在线免费视频| 亚洲另类在线一区| 精品成人在线| 亚洲三级性片| 亚洲欧美国内爽妇网| 国内精品久久久久久久影视蜜臀| 欧美三区视频| 国产精品社区| 蜜月aⅴ免费一区二区三区| 亚洲激情视频网| 性欧美大战久久久久久久免费观看| 欧美成人一区二免费视频软件| 午夜精品电影| 国产一区二区三区黄| 国产日韩精品久久| 欧美大片在线观看一区| 国户精品久久久久久久久久久不卡| 久久久天天操| 久久成人18免费观看| 亚洲美女精品久久| 国产精品裸体一区二区三区| 久久国产精品99久久久久久老狼| 免费不卡欧美自拍视频| 欧美成人午夜77777| 亚洲精品一区二区三区在线观看| 亚洲日本成人| 影音先锋成人资源站| 一本久道久久综合婷婷鲸鱼| 国产精品亚洲综合色区韩国| 国产欧美日韩视频一区二区| 免费观看成人| 狠狠干成人综合网| 欧美激情一区二区久久久| 欧美专区中文字幕| 国产一区二区三区av电影| 欧美日韩ab片| 狠久久av成人天堂| 亚洲国产精品黑人久久久| 亚洲欧洲一区| 欧美高清视频| 雨宫琴音一区二区在线| 国产一区二区三区免费在线观看| 欧美在线播放一区二区| 欧美国产在线观看| 久久国产精品第一页| 亚洲人成在线影院| 亚洲午夜三级在线| 国产精品一区二区久激情瑜伽| 亚洲天堂av综合网| 久久精品中文字幕免费mv| 激情久久综合| 蜜臀av国产精品久久久久| 国产午夜精品久久久久久免费视| 99精品欧美一区二区蜜桃免费| 欧美高清在线播放| 韩国女主播一区二区三区| 久久精品一本久久99精品| 亚洲欧美日韩国产中文| 亚洲国产毛片完整版| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产日韩精品一区观看| 国产精品色一区二区三区| 亚洲精品欧美| 男女视频一区二区| 亚洲在线观看视频| 亚洲高清中文字幕| 亚洲社区在线观看| 欧美精品在线免费播放| 欧美视频中文在线看| 国产一区二区看久久| 在线看片日韩| 欧美日韩在线观看一区二区| 午夜视频久久久久久| 欧美午夜激情小视频| 美女诱惑黄网站一区| 精品99一区二区三区| 久久精品99国产精品日本| 国产精品女主播一区二区三区| 欧美伦理91i| 亚洲婷婷国产精品电影人久久| 国产精品国产自产拍高清av王其| 国产亚洲精品久久久久久| 亚洲在线一区二区| 欧美日韩国产一区二区三区| 久久精品女人的天堂av| 一区在线播放视频| 一本到高清视频免费精品| 国内精品久久久久伊人av| 国产麻豆日韩欧美久久| 欧美午夜精品一区| 欧美丝袜第一区| 美日韩精品免费| 亚洲——在线| 狠狠色2019综合网| 亚洲国产精品久久久久久女王| 久久综合狠狠综合久久综合88| 亚洲欧美精品在线观看| 亚洲高清一区二| 午夜久久久久久久久久一区二区| 亚洲欧洲精品一区二区| 在线亚洲一区| 在线视频精品一| 欧美激情一区二区三区全黄| 欧美女激情福利| 99re热这里只有精品免费视频| 亚洲日本欧美日韩高观看| 美女主播一区| 国产一区日韩一区| 久久久久一区二区三区四区| 国产日韩欧美不卡| 国产视频精品xxxx| 日韩午夜激情av| 久久亚洲电影| 国产精品国产三级国产a| 亚洲人在线视频| 蜜臀av国产精品久久久久| 亚洲激情午夜| 国产女精品视频网站免费| 久久九九全国免费精品观看| 亚洲综合精品自拍| 亚洲第一主播视频| 免费看的黄色欧美网站| 亚洲二区在线视频| 一区二区三区中文在线观看| 99国产精品视频免费观看一公开| 久久久久91| 欧美激情亚洲综合一区| 亚洲黄色性网站| 韩日精品视频| 国产精品久久久久久av下载红粉| 欧美电影在线免费观看网站| 狠狠操狠狠色综合网| 久久在线免费观看| 中文国产亚洲喷潮| 午夜伦理片一区| 久久人人九九| 免费成人高清在线视频| 国产精品久久久一区麻豆最新章节| 一区在线影院| 国产精品日韩专区| 久久久999精品| 久久久久久久综合色一本| 久久青青草综合| 欧美日韩hd| 欧美在线视频一区二区三区| 亚洲国产精品成人| 99re在线精品| 亚洲三级观看| 禁断一区二区三区在线| 在线播放中文一区| 91久久久精品| 新67194成人永久网站| 亚洲国产导航| 亚洲国产日韩欧美一区二区三区| 最新国产拍偷乱拍精品| 久久99伊人| 韩日欧美一区二区三区| 久久蜜桃香蕉精品一区二区三区| 亚洲影音先锋| 牛夜精品久久久久久久99黑人| 国产资源精品在线观看| 国产网站欧美日韩免费精品在线观看| 欧美性淫爽ww久久久久无| 亚洲高清在线播放| 欧美视频中文字幕| 久久免费国产精品| 欧美日韩亚洲激情| 欧美色综合天天久久综合精品| 欧美精品午夜| 亚洲愉拍自拍另类高清精品| 亚洲综合首页| 国产精品久久婷婷六月丁香| 欧美日韩免费网站| 亚洲欧美综合国产精品一区| 欧美日韩国产限制| 欧美亚洲第一区| aa级大片欧美三级| 欧美成人精品福利| 亚洲高清不卡av| 久久久久久久波多野高潮日日| 欧美精品久久天天躁| 欧美日韩精品三区| 亚洲一区二区黄| 午夜在线视频一区二区区别| 一区二区三区在线观看国产| 亚洲高清不卡在线| 国产亚洲一区二区三区| 亚洲精品乱码久久久久久日本蜜臀| 久久久久成人网| 久久精品一区四区| 久久综合狠狠综合久久综合88| 国内偷自视频区视频综合| 亚洲午夜在线观看| 国产一区二区三区四区三区四| 亚洲一区影音先锋| 亚洲免费伊人电影在线观看av| 亚洲黄色高清| 红桃av永久久久| 欧美激情第1页| 中文久久精品| 午夜精品久久| 国产精品一区二区久久精品| 日韩亚洲欧美精品| 亚洲精品久久久久久下一站| 亚洲视屏在线播放| 国产精品爱啪在线线免费观看| 欧美老女人xx| 在线电影院国产精品| 亚洲欧洲综合另类| 国产精品极品美女粉嫩高清在线| 久久久一区二区| 一本色道久久综合一区| 小黄鸭精品aⅴ导航网站入口| 久久久久久网址| 国产精品一级久久久| 欧美劲爆第一页| 中文日韩在线视频| 亚洲三级影片| 9久re热视频在线精品| 麻豆精品网站| 女同一区二区| 久久久久久一区| 99re视频这里只有精品| 99精品欧美一区二区三区| 国产精品国产三级国产a| 国产精品久久久对白| 欧美精品国产精品日韩精品| 一区二区三区在线观看视频| 校园春色综合网| 国产精品青草久久久久福利99| 伊人久久成人| 欧美女人交a| 欧美精品久久天天躁| 国产欧美va欧美不卡在线| 午夜免费日韩视频| 欧美网站在线观看| 久久野战av| 亚洲在线中文字幕| 今天的高清视频免费播放成人| 久久免费视频在线观看| 日韩午夜免费视频| 在线观看一区| 国产精品视频导航| 欧美日韩一区二区高清| 午夜精品久久久久久久99黑人| 在线亚洲一区二区| 国产伦精品一区二区三区| 欧美日韩成人综合在线一区二区| 亚洲精品乱码视频| 亚洲精品视频免费| 国产精品久久久久久影院8一贰佰| 在线成人激情| 亚洲手机在线| 亚洲欧美在线高清| 亚洲国产精彩中文乱码av在线播放| 国产日韩亚洲欧美精品| 欧美三级中文字幕在线观看| 日韩亚洲精品视频| 欧美午夜宅男影院在线观看| 亚洲高清视频中文字幕| 亚洲精品欧美专区| 亚洲综合欧美| 亚洲一区久久久| 夜夜嗨一区二区三区| 亚洲乱码国产乱码精品精| 99精品国产热久久91蜜凸| 国产精品久久久久久久app| 国产精品国产a级| 国产精品你懂的| 国产精品无码专区在线观看| 欧美精品www在线观看| 久久久精品2019中文字幕神马| 欧美激情一区二区三区四区| 亚洲专区免费| 国产日韩欧美二区| 久久综合精品国产一区二区三区| 欧美多人爱爱视频网站| 国产在线精品一区二区夜色| 午夜久久美女| 国内精品久久久久影院优| 狠狠干综合网| 亚洲欧美自拍偷拍| 亚洲欧洲日韩综合二区| 欧美视频久久| 国产欧美午夜| 日韩午夜激情av| 久久精品一区二区三区不卡牛牛| 国产精品欧美日韩久久| 国产精品美女一区二区在线观看| 久久久久免费观看| 亚洲综合三区| 欧美刺激午夜性久久久久久久| 美女啪啪无遮挡免费久久网站| 亚洲视频专区在线| 亚洲欧美一区二区三区极速播放| 国产视频一区在线观看一区免费| 国产一区二区在线免费观看| 一区二区三区四区国产精品| 欧美日韩国产成人在线观看| 亚洲国产精品ⅴa在线观看| 狠狠色狠狠色综合日日91app| 久久女同互慰一区二区三区| 亚洲视频每日更新| 欧美激情国产日韩| 欧美一级片久久久久久久| 性欧美暴力猛交另类hd|