《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于嵌入式TCP/IP軟件體系結構的優化設計與實現
基于嵌入式TCP/IP軟件體系結構的優化設計與實現
摘要: 隨著計算機網絡技術和電子信息技術的迅猛發展,Internet的普及,接入Internet的非PC設備越來越多,各類電子設備像Web個人數字助理、Web可視電話、TV機頂盒接入Internet的需求也越來越大,嵌入式TCP/ IP的Internet網絡化將成為網絡發展的趨勢。
關鍵詞: NGN|4G TCP/IP Internet
Abstract:
Key words :

  隨著計算機網絡技術和電子信息技術的迅猛發展,Internet" target="_blank">Internet的普及,接入Internet的非PC設備越來越多,各類電子設備像Web個人數字助理、Web可視電話、TV機頂盒接入Internet的需求也越來越大,嵌入式TCP/ IP的Internet網絡化將成為網絡發展的趨勢。

  嵌入式系統中大量存在的是8/16位低速處理器,在進行Internet接入時,嵌入式TCP/IP對于計算機存儲器、運算速度要求比較高,占用大量系統資源,因而常嵌入TCP/IP協議簇的子集或用UDP代替TCP實現。

  本文提出一種基于嵌入式TCP/IP軟件體系結構的優化設計和實現方案,從實現相應的功能又節省系統資源角度出發,對嵌入TCP/IP優化設計,實現嵌入式的Internet接入。

  嵌入式TCP/IP接入方法

  嵌入式電子設備接入Internet有多種解決方案:如在低速微處理器運行剪裁的TCP/IP協議棧;使用一些ASIC實現TCP/IP的芯片如ADI的Internet Modem;也可以使用嵌入式操作系統自帶的完整的TCP/IP協議棧。在某些對網絡速度要求不高的領域,可以精簡的TCP/IP實現;在對性能要求高的場合,則可以選擇后兩種方案。嵌入式設備接入Internet網絡常用的方案比較如表1所示。

  但以上接入方法一般專門為某種微處理器設計,不具有通用性,而且效率較低或功能不夠全面。本文提出的經過優化設計的嵌入式TCP/IP適合移植到各種嵌入式處理器中,如單片機、ARM或ARM+FPGA多核嵌入式處理器中,具有較小的代碼量、RAM使用量和較高的效率,同時支持套接字形式的多個TCP連接和多個網絡設備連接,支持通過網關發送數據包和數據包轉發,支持TCP包的整序、重發和窗口控制流量控制等等。

  嵌入式TCP/IP的軟件體系結構與優化設計

  嵌入式TCP/IP軟件體系結構

  與PC TCP/IP協議相似,嵌入式TCP/IP采用協議分層的結構:應用層、TCP層、IP層和網絡設備接口層圖1描述了嵌入式TCP/IP輸入和輸出數據包流程以及調用的函數。

  其中,Timer()函數調用TCPTimer()處理TCP數據包重發,以及調用每個接口的Input()函數接收到達的數據包。Timer()函數必須在短時間(一般<20ms)內被調用一次,否則接收數據包和TCP定時等功能將停止。

  輸出時,TCP層先查看unsend隊列,發現非空,將數據包插入隊列;發現為空,則查看對方窗口是否夠大能夠接收這個數據包,然后填寫TCP頭部信息。IP層選擇網絡設備接口,目的IP和該接口的子網掩碼相與是否等于子網掩碼。然后調用這個接口的Output函數來發送。

  輸入時,Timer()函數調用每個接口的Input函數。IP層判斷IP版本、IP校驗和、判斷是否應該轉發數據包,然后根據IP頭部的protocol字段將包傳給相應的高層處理。TCP層,需要判斷TCP校驗和,然后在現有的套接字中查找,判斷是否有套接字可以接收這個數據包,判斷TCP序號是否為希望的,然后更新這個連接的狀態(包括釋放被應答的數據包和TCP狀態機的轉化等),調用該套接字的回調函數recv。

  圖2程序主流程是一個大循環,在循環中處理發送數據包等應用層協議同時查詢變量bTimeOut,在定時中斷中將bTimerOut設置為真,應用層在程序流程中反復查詢bTimerOut是否為真,真則調用Timer(),然后置bTimerOut為假。

  嵌入式TCP/IP設計優化

  因為網絡中數據非常多,如果把所有的數據都讀到內存中再判斷是否應該丟棄幀顯然效率不高。所以邊讀取數據邊判斷而沒有一開始就把整個幀全部讀到內存中,同時在程序里定義幀中各個部分的相對地址,可以方便的對幀的各個字節尋址。這樣的設計是基于提高訪問速度考慮的。

  為了減小RAM使用量,當數據包需要重新發送時,如果能夠重新產生數據包所需的數據,可以不存儲需要被應答的TCP包。圖3給出了嵌入式CPU中TCP/IP的內存劃分,以及內存中幀的各個字節的定義和相對位置,其中PacketRAM為存放幀的首地址。

  發送TCP/IP過程中主要的運算量集中在三個部分:應用程序將數據拷貝到RAM、計算TCP校驗和、將RAM中的數據包拷貝到網絡設備的發送緩沖區。對每一個字節數據,兩次拷貝大致共使用12×2=24個指令周期;計算TCP校驗和使用為16個指令周期。為提高速度可采用快速CPU或提高晶振頻率。例如采用12M晶振時,網絡傳輸速度為25K字節/s;而在高頻PCB電路板使用233M晶振時,網絡傳輸速度能達到為384K字節/s。

  另外,TCP/IP一般采用C語言或者混合匯編,而使用可重入函數和一般指針(generic pointer)使得程序代碼增大,運行速度變慢。所以使用函數指針時,應手動重建調用樹(Call tree),或將函數指針調用的函數設置為可重入函數,同時使用“指定存儲類型”的指針(memory-specific pointer),防止數據包的不必要的拷貝以及優化計算校驗和和內存拷貝函數。另外,Reentrant類型的函數比一般函數速度要慢很多,但是某些時候為了程序結構的需要必須使用Reentrant,這就需要在速度和結構之間作一個選擇。

  嵌入式TCP/IP的實現

  TCP/IP的嵌入式實現一般通過以軟件方式嵌入到ROM中,然后通過輕網絡通訊技術與專用嵌入式網關連接,在嵌入式處理器中運行TCP/IP協議,提供TCP/IP到用戶的輕型網絡的連接和路由功能。

  內存管理方法和無多余數據包拷貝的實現

  嵌入式TCP/IP的內存管理可以用鏈表方法,即根據數據包大小分配相應大小的內存塊。如圖4所示,鏈表將內存塊鏈接起來,used字段表示該內存塊是否正在使用,pSstart和pEend則表示數據部分有效數據的開始地址和結束地址。

  分配時,搜索內存鏈表找到一個沒有分配的比所需空間大的內存塊,截取所需的大小。該內存塊被截取以后可能還有較多剩余,這時將剩余部分從原內存塊中分離出來,成為一個新的內存塊,并插入鏈表。釋放時,將used值置為假,如果pNext或者pPre指向的鏈表單元也是空閑的,則將其和自己合并,以防止內存分片。在協議層之間傳送數據包只需傳送內存塊的起始地址。這種內存管理方法空間浪費小但是運算量相對較大。

  整序、重發和窗口控制的實現

  對于嵌入式TCP/IP系統,可以使用隊列緩存的方式來實現整序、重發和窗口控制。隊列的一個元素指向一個數據包,隊列的最大長度沒有限制。

  對于整序,使用ooSeq隊列,如果發現接收的TCP包序號并不是期望的,但序號在接收窗口內,此時不能立刻接收這個包也不應丟棄,可先將這個包放入ooSeq隊列。當期望TCP包被接收后,再查看ooSeq隊列現在是否有TCP包成為了期望的數據包,如果有則將其取出并處理。

  對于重發,使用unacked隊列,每一個需要被應答的TCP數據包發送以后都要放入unacked隊列,等到被應答以后才從隊列中刪除。TCP重發定時只針對unacked隊列第一個TCP包,如果定時超出,重新發送,重發次數超出規定值,則報錯。

  對于窗口控制,使用unsend隊列,如果發現對方的窗口過小無法接收這個數據包,則只發送部分數據,將多余部分放入unsend隊列,等待對方發來TCP包通知新的窗口大小時,再次判斷是否可以發送。如果在unsend隊列不為空的情況下,需要發送的數據包都應插入unsend隊列。

  嵌入式TCP/IP的性能分析

  圖5給出了將優化設計后的TCP/IP移植到ARM9處理器、CS8900A網絡控制器中,時鐘頻率為133MHz下,與Internet連接的情況。

  系統支持最大發起連接數約為380,最大并發連接率約為170cps。隨著呼叫數的增加,平均分組到達也隨之增加,導致網絡傳輸數據的增加,從而最大建立時間變長。但最小的建立連接時間基本保持不變,說明系統具有良好的性能。

  圖6給出了隨建立時間變化的接通率。圖中存在一個臨界點,成功的連接率隨著TCP連接嘗試數目增加而減少,直至為0,而響應時間也急劇上升,這是由嵌入式處理器的處理能力有限造成的。


  
  結語

  本文從實現相應的功能又節省系統資源角度出發,對嵌入式TCP/IP協議簇進行優化設計,可以在各種嵌入式處理器上實現Internet接入。

  經過優化設計的嵌入式TCP/IP支持套接字形式的多個TCP連接、支持多個網絡設備、支持通過網關發送數據包和數據包轉發功能,以及支持TCP包的整序、重發和窗口控制流量控制。實踐證明,這種設計方式靈活,能按用戶需求實現復雜的功能。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品盗摄| 亚洲视频欧美视频| 一本色道久久加勒比88综合| 韩国成人福利片在线播放| 国产欧美一区二区三区在线老狼 | 久久久国产精品亚洲一区 | 香蕉成人伊视频在线观看| 在线综合亚洲欧美在线视频| avtt综合网| 一区二区三区欧美日韩| 在线亚洲欧美专区二区| 亚洲网站在线| 午夜精品福利在线| 欧美亚洲专区| 久久久九九九九| 久久欧美肥婆一二区| 久久亚洲私人国产精品va媚药| 久久久久久噜噜噜久久久精品| 欧美自拍偷拍| 噜噜爱69成人精品| 欧美激情麻豆| 欧美午夜一区二区三区免费大片 | 久久精品视频在线播放| 久久久久九九视频| 免费av成人在线| 欧美电影资源| 欧美日韩美女| 国产精品porn| 国产午夜精品久久久久久久| 韩国av一区| 亚洲欧洲日本一区二区三区| 亚洲美女精品成人在线视频| 亚洲调教视频在线观看| 亚洲欧美电影院| 久久高清一区| 亚洲免费观看| 午夜在线一区| 麻豆九一精品爱看视频在线观看免费| 欧美电影免费观看高清| 欧美日韩视频一区二区三区| 国产精品青草久久| 韩国av一区二区| 亚洲精品乱码久久久久久按摩观| 99re热这里只有精品视频| 亚洲综合电影| 亚洲高清视频一区二区| 一区二区三区视频在线观看 | 国产欧美一区二区精品性色| 一区在线观看| 一本久道综合久久精品| 亚洲欧美久久久久一区二区三区| 亚洲第一天堂av| 亚洲调教视频在线观看| 久久九九久久九九| 欧美精品成人一区二区在线观看| 国产精品毛片va一区二区三区| 国产主播在线一区| 亚洲精品一线二线三线无人区| 午夜电影亚洲| 亚洲精品一级| 欧美自拍偷拍| 欧美日韩 国产精品| 国产欧美视频一区二区三区| 亚洲茄子视频| 新67194成人永久网站| 亚洲精品久久久久| 欧美一区二区日韩一区二区| 欧美成人自拍| 国产日韩欧美麻豆| 亚洲狼人综合| 久久精品夜色噜噜亚洲aⅴ| 亚洲视频你懂的| 蜜臀va亚洲va欧美va天堂| 国产精品视频网| 亚洲福利在线观看| 午夜免费电影一区在线观看| 99综合视频| 久久综合给合久久狠狠色 | 亚洲国产精品久久久久婷婷884| 亚洲天堂成人| 亚洲日韩欧美视频一区| 欧美制服第一页| 欧美视频一区二区三区四区| 亚洲第一综合天堂另类专| 亚洲专区欧美专区| 一本久久精品一区二区| 美日韩精品视频免费看| 国产欧美日韩91| 99精品国产热久久91蜜凸| 91久久精品国产91性色 | 久久亚洲高清| 国产毛片精品国产一区二区三区| 亚洲剧情一区二区| 亚洲精品一区中文| 久久综合国产精品| 国产偷自视频区视频一区二区| 亚洲视频在线观看视频| 这里只有视频精品| 欧美精品在线免费播放| 在线观看精品一区| 欧美在线一二三| 欧美在线一级视频| 国产久一道中文一区| 在线综合欧美| 中文欧美在线视频| 欧美伦理91i| 亚洲黄色大片| 91久久精品国产91久久性色| 久久综合久久综合九色| 国产一区二区三区自拍 | 久久精品日韩欧美| 久久成人久久爱| 国产精品一区二区三区四区| 一区二区三区视频观看| 亚洲视频在线一区观看| 欧美日本一道本| 亚洲免费观看视频| 99热精品在线| 欧美日韩精品免费看| 亚洲六月丁香色婷婷综合久久| 亚洲美女在线国产| 欧美精品久久99| 最新日韩在线| 一区二区激情小说| 欧美色图麻豆| 日韩亚洲精品在线| 亚洲一区二区三区四区五区黄| 欧美三级第一页| 亚洲视频你懂的| 午夜亚洲视频| 国产婷婷成人久久av免费高清| 欧美一区网站| 免费成人av资源网| 亚洲激情欧美| 亚洲视频精选| 国产精品一区二区久久精品| 亚洲欧美一区二区视频| 久久久久久久网站| 在线观看亚洲视频| 99国产精品国产精品毛片| 欧美日韩一区二区在线| 中文欧美字幕免费| 久久国产日韩| 1000部精品久久久久久久久| 亚洲精品资源| 欧美视频在线观看视频极品| 亚洲一区二区四区| 久久久久久久999| 亚洲国产欧美在线| 中日韩视频在线观看| 国产精品一区二区三区乱码 | 国产精品人人做人人爽人人添| 午夜精品国产更新| 看欧美日韩国产| 亚洲免费电影在线| 午夜精品久久久久久久99水蜜桃 | 亚洲成色www8888| 欧美精品一级| 亚洲在线免费观看| 久久婷婷影院| 亚洲裸体俱乐部裸体舞表演av| 午夜国产一区| 亚洲福利视频网站| 亚洲免费视频一区二区| 国一区二区在线观看| 99av国产精品欲麻豆| 国产精品视频99| 亚洲国产日韩在线| 欧美系列电影免费观看| 欧美在线观看视频| 欧美日韩精品久久久| 欧美一区二区观看视频| 欧美激情二区三区| 亚洲欧美日韩在线一区| 欧美国产乱视频| 亚洲影音先锋| 欧美黄色免费网站| 香蕉免费一区二区三区在线观看| 欧美激情中文字幕在线| 亚洲欧美日韩在线不卡| 欧美精品久久久久a| 欧美一级黄色录像| 欧美视频中文一区二区三区在线观看 | 亚洲免费在线观看| 欧美α欧美αv大片| 亚洲影音一区| 欧美噜噜久久久xxx| 久久精品一本久久99精品| 国产精品激情电影| 91久久午夜| 国产欧美精品日韩| 亚洲午夜精品久久久久久浪潮| 国语对白精品一区二区| 亚洲欧美色一区| 亚洲精品资源| 免费av成人在线| 性久久久久久久久久久久| 欧美色另类天堂2015| 亚洲精品乱码久久久久久蜜桃麻豆 | 校园激情久久|