基于SF0020芯片的嵌入式TCP/IP協(xié)議族設(shè)計與實現(xiàn)
ARP協(xié)議為IP地址和硬件地址之間提供映射。ARP報文分為請求和應(yīng)答兩種報文,通過這兩種報文實現(xiàn)ARP緩存的更新。ARP高速緩存在它的運行過程中非常關(guān)鍵。由于微控制器硬件資源限制ARP高速緩存只定義了8組,因此查找采用線性搜索的方法對最終性能并沒有影響。緩存只包含以下4項既可以實現(xiàn)ARP協(xié)議又可以節(jié)省硬件資源:IP地址、MAC地址、寫入時間、標志位。
2.3 運輸層實現(xiàn)
運輸層僅僅實現(xiàn)了TCP(Transfer Control Protocol傳輸控制協(xié)議)。該協(xié)議提供了全雙工高可靠性的通信,因此應(yīng)用層和網(wǎng)絡(luò)層可以忽略相關(guān)細節(jié)。TCP是TCP/IP體系中面向連接的運輸層協(xié)議,它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分組交給下面的網(wǎng)絡(luò)層,確認接收到的分組,設(shè)置發(fā)送最后確認分組的超時時鐘等。
每當本地發(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)答序號、當前連接狀態(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所示。本文引用地址:http://2s4d.com/article/195759.htm
圖2 TCP有限狀態(tài)機
由于網(wǎng)絡(luò)中數(shù)據(jù)傳輸必然會產(chǎn)生數(shù)據(jù)丟失,TCP錯誤重傳和數(shù)據(jù)重組尤為重要。錯誤重傳是在發(fā)送了需對端確認的報文段后設(shè)置重傳定時器,如果在定時器時限內(nèi)未收到ACK該報文段被重發(fā)。因此當數(shù)據(jù)發(fā)送之后要等到ACK確認報文才能丟棄。數(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)為當前連接建立了如下六個定時器:連接建立定時器,重傳定時器,延遲ACK定時器,持續(xù)定時器, FIN_WAIT_2定時器,TIME_WAIT定時器;去掉了?;疃〞r器,因為該定時器僅是TCP連接的可選配置,在監(jiān)控中的需要有應(yīng)用程序?qū)崿F(xiàn)更加嚴格的連接保持定時。本文根據(jù)實際監(jiān)控網(wǎng)絡(luò)情況修改了標準協(xié)議族定義的超時時間,使實時性得以提高。
3.2 協(xié)議族的內(nèi)存管理策略
傳入的分組是保存在內(nèi)存中并將其傳遞給適當?shù)膮f(xié)議作進一步處理的。同時,應(yīng)用程序產(chǎn)生的數(shù)據(jù)也必須以分組的形式存儲在內(nèi)存中,并最終將其交給網(wǎng)絡(luò)硬件設(shè)備傳送出去。因此協(xié)議的高效性取決于如何管理保存這些分組的存儲空間。本文對內(nèi)存管理用以下兩種方法做到快速分配存儲空間,并且避免分組在各層協(xié)議之間移動時的數(shù)據(jù)復(fù)制。
tcp/ip相關(guān)文章:tcp/ip是什么
評論