基于ARM和eCos的嵌入式WEB服務器設計
4.1 IP處理
LwIP僅能實現(xiàn)IP層大部分基本功能。它雖然能夠發(fā)送、接收以及轉發(fā)信息包,但不能接收和發(fā)送IP分片包,也不能處理攜帶IP參數(shù)選項的信息包。不過對大多數(shù)的應用來說,這不會成為問題。
?、俳邮招畔τ诘竭_的IP信息包,可由網絡設備驅動調用ip_input()函數(shù)開始處理,并在這里完成對IP版本字段及包頭長度的初始完整性檢查,同時還要計算和驗證包頭校驗和。
?、诎l(fā)送信息包。外發(fā)的信息包由ip_output()函數(shù)處理,該函數(shù)使用ip_route()函數(shù)查找適當?shù)木W絡接口來傳送信息包。當外發(fā)的網絡接口確定后,信息包傳給以外發(fā)網絡接口為參數(shù)的ip_output_if()函數(shù)。
?、坜D發(fā)信息包。如果沒有網絡接口的地址與到達信息包的目標地址相同,信息包應被轉發(fā)。這項工作由ip_ forward()函數(shù)完成。
④ICMP處理。ICMP處理相當簡單。ip_input()函數(shù)收到的ICMP信息包被移交給icmp_input()函數(shù),后者對ICMP包頭解碼,然后進行適當?shù)膭幼鳌?P> 4.2 UDP處理
UDP是被用來在不同進程問分解信息包的簡單協(xié)議。每個UDP會話的狀態(tài)保存在一個PCB結構體中。UDP PCB保存在一個鏈表中,當一個UDP數(shù)據包到達時對這個鏈表進行匹配檢索。
4.3 TCP處理
TCP屬于傳輸層協(xié)議,它為應用層提供了可靠的字節(jié)流服務。對它的描述要比對其他協(xié)議的描述復雜的多,其代碼占了LwIP代碼總量的50%?;镜腡CP處理過程被分割為6個功能函數(shù)來實現(xiàn),tcp_input()、tep_ process()及tcp_receive()函數(shù)與TCP輸入有關,tcp_write()、tcp_enqueue()及tcp_output()則用于TCP輸出。TCP的處理過程如圖5所示。
4.4 應用程序接口設計
LwIP API專為LwIP設計,所以它可以充分利用LwIP的內部結構實現(xiàn)其設計目標。LwIP API與BSDAPI類似,但操作相對低級。API不需要在應用程序和協(xié)議棧之間復制數(shù)據,因為應用程序可以巧妙地直接處理內部緩沖區(qū)。另外,BSD Socket API易于理解,并且很多應用程序為它而寫,所以LwIP保留一個BSD Socket兼容層是很有用的。
鑒于TCP/IP協(xié)議棧的處理模式,APl分成兩部分實現(xiàn)。如圖6所示,一部分作為應用程序的連接庫實現(xiàn),另一部分在TCP/IP進程內實現(xiàn)。這兩部分之間采用由操作系統(tǒng)模擬層提供的進程間通信機制(IPC)進行通信。當前的實現(xiàn)采用以下3種IPC方式:共享內存、消息傳遞和信號量。雖然這些IPC方式被操作系統(tǒng)支持,但它們并不需要操作系統(tǒng)底層支持,實際上是操作系統(tǒng)模擬層在模擬它們。
結 語
基于實時內核eCos,在嵌入式系統(tǒng)中實現(xiàn)了LwIP協(xié)議棧的移植與優(yōu)化。移植優(yōu)化后的LwIP棧做為一個網絡模塊運行,代碼占用40 KB的ROM,實現(xiàn)了Ethernet/IP/TCP網絡功能,并提供了模塊API,與系統(tǒng)實現(xiàn)無縫連接?;贚wIP的網絡應用任務與其他非網絡應用任務在eGos實時內核管理下協(xié)調運行。進一步增強了協(xié)議棧的網絡安全性與穩(wěn)定性,并開發(fā)相應的的網絡應用程序?!?a class="contentlabel" href="http://www.biyoush.com/news/listbylabel/label/eCos">eCos/LwIP協(xié)議棧”架構有望應用在信息家電和網絡化的儀器、儀表方面。
參考文獻:
[1].LPC2210datasheethttp://www.dzsc.com/datasheet/LPC2210_454566.html.
[2].ARM7TDMIdatasheethttp://www.dzsc.com/datasheet/ARM7TDMI_139812.html.
[3].EMCdatasheethttp://www.dzsc.com/datasheet/EMC_2342312.html.
[4].RTL8019ASdatasheethttp://www.dzsc.com/datasheet/RTL8019AS_1096173.html.
[5].HR901170Adatasheethttp://www.dzsc.com/datasheet/HR901170A_1098413.html.
[6].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
[7].PCBdatasheethttp://www.dzsc.com/datasheet/PCB_1201640.html.
tcp/ip相關文章:tcp/ip是什么
評論