999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

uIP中UDP協議實現的改進*

2010-05-11 11:57:54曹欲曉
網絡安全與數據管理 2010年21期
關鍵詞:嵌入式系統

曹欲曉,韓 磊

(南京工程學院 計算機工程學院,江蘇 南京 211167)

隨著嵌入式技術、網絡技術的發展,實現網絡互聯已經成為嵌入式系統發展的一個必然趨勢。在目前的技術條件下,越來越多的嵌入式系統選擇了TCP/IP作為與其他計算機系統互聯的網絡協議。嵌入式TCP/IP協議棧已經成為嵌入式系統研究與應用中的一個重要領域。

由于嵌入式系統的軟硬件資源都較為有限,大多數嵌入式系統中運行的TCP/IP協議棧均根據嵌入式系統的特點進行了相應的裁剪。目前應用比較廣泛的嵌入式TCP/IP 協 議 棧 有 :ucTCP-IP、LWIP、uIP、Linux TCP/IP等。其中uIP是專為8 bit和16 bit的嵌入式微控制器設計的微型TCP/IP協議棧,它具有良好的互操作性,并遵循RFC標準。uIP協議棧的特點是具有很小的代碼量,運行時需要的內存很少,實現了常用的TCP/IP協議;代碼注釋詳盡,可以用于商業或非商業用途[1]。由于具有上述特點,uIP被廣泛應用在嵌入式系統的網絡互聯中。

1 uIP協議棧的體系結構

在使用uIP的嵌入式系統的軟件體系結構中,uIP協議棧相當于一個代碼庫,它通過一系列的函數實現與底層硬件和上層應用程序的通信。uIP協議棧與系統底層和上層應用之間的關系如圖1所示[2]。

圖1 uIP協議棧體系結構

從圖 1可以看出,uIP協議棧主要提供了uip_input()和uip_periodic()2個函數供系統底層調用。uIP協議棧與應用程序的主要接口是UIP_APPCALL()和UIP_UDP_APPCALL()。

uIP初始化時調用uip_init()函數,它的主要功能是初始化協議棧的監聽端口,并把所有連接設置為關閉狀態。當網絡控制芯片驅動程序接收到一個數據包時,驅動程序將數據包放入全局緩沖區uip_buf中,同時把包的大小賦給全局變量uip_len。然后uIP的主控部分調用uip_input()函數,該函數將會根據數據包首部的協議標識處理這個包,并在需要時調用上層應用程序。當uip_input()返回時,一個輸出數據包被放在同一個全局緩沖區uip_buf中,其大小賦給uip_len。如果uip_len是0,則說明沒有包要發送,否則主控部分調用底層系統的發包函數將數據包發送到網絡上[3]。

uIP周期計時用于驅動所有的uIP內部時鐘事件。當周期計時激發后,每一個TCP連接都會調用uIP函數uip_periodic()。 類似于 uip_input()函數,uip_periodic()函數返回時,輸出的IP包要放到uip_buf中,供底層系統查詢uip_len的大小以決定是否發送。

由于使用TCP/IP的應用很多,因此應用程序作為單獨的模塊由用戶實現。uIP提供一系列接口供用戶程序調用,其中大部分接口是作為C的宏命令出現的,之所以這樣做主要是考慮到速度、代碼大小、效率和堆棧的使用。用戶需要把對網絡數據包的處理函數作為接口提供給uIP,并將這個函數定義為宏UIP_APPCALL()或者 UIP_UDP_APPCALL()。UIP_APPCALL()是用戶對 TCP數據包的處理,UIP_UDP_APPCALL()是用戶對 UDP數據包的處理[4]。這樣,uIP在接收到底層傳來的數據包后,在需要送到上層應用程序處理的地方,直接調用UIP_APPCALL()或者 UIP_UDP_APPCALL()即可,無需修改uIP。

2 uIP的UDP協議分析

2.1 UDP協議的實現

當uIP接收到一個UDP數據包后,首先從包頭中取出數據的長度,然后重新對包進行校驗,如果校驗和不對,則直接丟掉這個包。如果校驗無誤,則對收到的包進行解復用。此時進行如下判斷:

上述代碼中用到的主要變量、數據結構和函數的含義是:

在uIP的實現中,如果以上判斷語句為真,則對接收到的數據包進行處理,處理過程包括調用用戶上層處理程序 UIP_UDP_APPCALL()、構造新包的包頭、計算新包的校驗和等,然后將構造好的返回UDP包送到IP層進行處理。

2.2 UDP實現的不足

通過對uIP中UDP協議實現過程的分析可以發現,uIP沒有提供初始化指定端口的函數,僅提供了一個對給定IP地址上給定端口建立UDP連接的函數,其原型是struct uip_udp_conn*uip_udp_new(uip_ipaddr_t*ripaddr,u16_t rport)。由于作為服務端運行時必須指定監聽端口[5],而 uIP沒有提供此功能,因此要讓uIP作為服務端運行,必須對uIP進行改進。

3 uIP中UDP協議的改進

3.1 增加初始化UDP服務端口

UDP協議作為服務端運行時,同TCP一樣,必須在某個指定端口上監聽客戶端是否有數據包發送,如果有則還要接收數據包,這就要求在uIP記錄UDP連接的數據結構uip_udp_conn中設置本地端口號一項,具體實現步驟如圖2所示。

圖2 UDP服務端口初始化

3.2 IP地址、端口號的判斷及匹配

uip_process函數接收到網絡控制芯片驅動程序送來的數據包后,當判斷出收到的包是UDP包,執行2.1中的判斷并且得到結果為真后,但還需要再做以下工作:如果uip_udp_conn中的目的端口號為0,則說明這是一個來自客戶端的首次與服務端進行通信的數據包,服務端尚不知道此客戶端的源端口,因此要把uip_udp_conn中的目的端口號設為收到的包中的源端口號,把uip_udp_conn中的目的IP地址設為收到的包中的源IP地址,具體代碼如下:

3.3 UDP服務端目的端口的釋放

UDP服務端的端口應該可以為來自多個客戶端的請求提供服務,而UDP本身是一種無連接的傳輸層協議,因此在每次uIP作為服務端的UDP通信結束之后,還要釋放uip_udp_conn中記錄的目的端口號,以便下次接收來自不同IP、不同端口的新請求,否則當來自其他端口的請求到達時,uIP會不予響應。

在uIP的官方網站上下載到uIP 1.0的源代碼之后,按照本文給出的幾個步驟對uIP 1.0進行改造之后,利用gcc編譯器把uIP 1.0編譯成S3C2410上的可執行代碼,把基于S3C2410的開發板作為UDP服務器,運行Windows XP的PC機作為客戶端,兩者通過一條交叉網線相聯,在PC機上的測試程序發出UDP請求后,運行在S3C2410上的uIP可以對PC通過UDP協議發出的數據進行處理,并給PC作出正確的回復。實驗證明,通過對uIP進行本文所述的改進之后,uIP具有了作為UDP服務端的能力。

[1]http://www.sics.se/~adam/uip/index.php/Main_Page.

[2]ADAM D.The uIP embedded TCP/IP stack the uIP 1.0 reference manual.June 2006.

[3]ADAM D.Full TCP/IP for 8-bit architectures[C].In Proceedings of the First International Conference on Mobile Applications,Systems and Services(MOBISYS 2003), San Francisco, May 2003.

[4]ADAM D, OLIVER S, THIEMO V, et al.Protothreads:simplifying event-driven programming of memory-constrained embedded systems[C].In Proceedings of the Fourth ACM Conference on Embedded Networked Sensor Systems(SenSys 2006), Boulder, Colorado, USA, November 2006.

[5]FOROUZAN B A,FEGAN S C著.TCP/ZP協議簇 [M].謝希仁等,譯.北京:清華大學出版社,2006.

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 欧美精品综合视频一区二区| 亚洲无线国产观看| 国产亚洲一区二区三区在线| 亚洲天堂免费在线视频| 亚洲最黄视频| 在线欧美日韩| 激情综合激情| 亚洲第一视频网站| 亚洲小视频网站| 亚洲男人的天堂久久精品| 亚洲系列中文字幕一区二区| 久久熟女AV| 中文字幕在线观看日本| 99久久性生片| 少妇人妻无码首页| 高清欧美性猛交XXXX黑人猛交| AV在线麻免费观看网站| 99re在线观看视频| 亚洲男人的天堂在线观看| 天堂在线视频精品| 欧美一级色视频| 精品亚洲麻豆1区2区3区| 国产人成在线视频| 麻豆精选在线| 亚洲综合色区在线播放2019| 亚洲成人在线网| 亚洲Aⅴ无码专区在线观看q| 九九热精品视频在线| 欧美黄色a| 国产精品自在在线午夜| 九九热这里只有国产精品| 99精品视频九九精品| jizz在线观看| 欧美色视频日本| 欧美不卡视频在线| 91精品啪在线观看国产| 国产h视频免费观看| 精品1区2区3区| 国产午夜在线观看视频| a级毛片网| 亚洲无码高清免费视频亚洲| 日韩毛片免费| 国产精品va免费视频| 国产成人高清在线精品| 欧美一区二区自偷自拍视频| 强乱中文字幕在线播放不卡| 国产三区二区| 中国美女**毛片录像在线| 好吊色妇女免费视频免费| 伊人久久精品无码麻豆精品 | 欧美精品亚洲二区| 免费 国产 无码久久久| 国产欧美视频在线| 亚洲国产天堂久久九九九| 国产精品视频999| 日本在线国产| 成人午夜久久| 久精品色妇丰满人妻| 欧美a在线看| 久久久精品久久久久三级| 亚洲精品无码专区在线观看| 97在线国产视频| 人妻丰满熟妇av五码区| 亚洲伊人天堂| 99精品国产自在现线观看| 亚洲人成人伊人成综合网无码| 欧美a级完整在线观看| 久久久国产精品免费视频| 国内精品九九久久久精品| 国产无遮挡裸体免费视频| 污网站在线观看视频| 欧美特黄一免在线观看| 色亚洲成人| 欧美在线精品怡红院| 欧洲熟妇精品视频| 极品性荡少妇一区二区色欲| 中文字幕第4页| 亚洲swag精品自拍一区| 中文字幕乱码中文乱码51精品| 日韩毛片免费视频| 欧美一级黄片一区2区| 亚洲国产黄色|