一種嵌入式TCPIP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
一種嵌入式TCPIP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
一種嵌入式TCPIP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
一種嵌入式TCPIP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
一種嵌入式TCPIP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一種嵌入式TCP/IP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)發(fā)布日期:2007-05-30作者:婁 莉 劉天時(shí) 來(lái)源:微計(jì)算機(jī)信息摘 要:本文提出了基于ARM的嵌入式TCP/IP協(xié)議在低速處理器中的一種設(shè)計(jì)方案。并對(duì)TCP/IP協(xié)議族實(shí)現(xiàn)過(guò)程中的關(guān)鍵技術(shù)進(jìn)行了分析,通過(guò)一個(gè)分布式網(wǎng)絡(luò)監(jiān)控系統(tǒng)的實(shí)際運(yùn)行,證明該協(xié)議族已達(dá)到預(yù)期的性能。 關(guān)鍵詞:TCP/IP協(xié)議族,嵌入式, 裁剪, ARM 1 引言目前,嵌入式系統(tǒng)已經(jīng)滲透到日常生活的各個(gè)方面,在工業(yè)、服務(wù)業(yè)、消費(fèi)電子等領(lǐng)域的應(yīng)用范圍不斷擴(kuò)大。因此,嵌入式設(shè)備的聯(lián)網(wǎng)勢(shì)在必行。但是,由于嵌入式系統(tǒng)資源有限,傳統(tǒng)的Internet技術(shù)和設(shè)備無(wú)法

2、直接應(yīng)用。這種趨勢(shì)促使嵌入式設(shè)備必須實(shí)現(xiàn)Internet網(wǎng)絡(luò)化1。然而,將嵌入式系統(tǒng)與Internet結(jié)合起來(lái)的主要困難在于,Internet的各種通信協(xié)議對(duì)于計(jì)算機(jī)存儲(chǔ)器、運(yùn)算速度等的要求比較高,而嵌入式系統(tǒng)中大量存在的是8位和16位MCU,支持標(biāo)準(zhǔn)TCP/IP協(xié)議族的實(shí)現(xiàn)將占用大量系統(tǒng)資源2,因此,為了使其實(shí)時(shí)性提高同時(shí)保證可靠性又節(jié)省系統(tǒng)資源,需要對(duì)協(xié)議進(jìn)行有針對(duì)性的模塊化裁剪,在單片機(jī)上嵌入TCP/IP協(xié)議族的一個(gè)子集。2  TCP/IP協(xié)議族總體框架的裁剪策略為了實(shí)現(xiàn)在分布式網(wǎng)絡(luò)監(jiān)控系統(tǒng)中作為前端監(jiān)控設(shè)備(編碼器、解碼器、視頻服務(wù)器等)的應(yīng)用要求,必須在有限的硬件資源中保證

3、數(shù)據(jù)傳輸?shù)目煽啃院蛯?shí)時(shí)性??紤]到實(shí)時(shí)監(jiān)控系統(tǒng)中數(shù)據(jù)傳輸量并不大,而可靠性要求較高,因此該工業(yè)控制系統(tǒng)的傳輸層采用TCP協(xié)議,考慮到通用性、兼容性和通信的可靠程度,沒有使用在應(yīng)用層加入控制策略,運(yùn)輸層使用簡(jiǎn)單UDP協(xié)議的方案。TCP是面向連接的、端對(duì)端的可靠通信協(xié)議3,它采用許多機(jī)制來(lái)保證可靠傳輸,而該系統(tǒng)中本地?cái)?shù)據(jù)的流動(dòng)要實(shí)現(xiàn)向應(yīng)用程序提供可靠的數(shù)據(jù),與底層以太網(wǎng)驅(qū)動(dòng)程序交互數(shù)據(jù)報(bào)的功能,因此,協(xié)議族系統(tǒng)結(jié)構(gòu)設(shè)計(jì)框架如圖1所示,其中socket子層、運(yùn)輸層的TCP協(xié)議、網(wǎng)絡(luò)層的IP和ICMP協(xié)議、ARP協(xié)議是本系統(tǒng)需要設(shè)計(jì)并實(shí)現(xiàn)的部分。圖1 協(xié)議族系統(tǒng)框架2.1 socket子層的實(shí)現(xiàn)網(wǎng)絡(luò)的S

4、ocket(插口)數(shù)據(jù)傳輸是一種特殊的I/O,Socket也是一種文件描述符4。它具有一個(gè)類似于打開文件的函數(shù)調(diào)用;Socket()函數(shù)能夠返回一個(gè)整型的Socket描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^(guò)該Socket實(shí)現(xiàn)的。該系統(tǒng)中Socket子層向上層提供了創(chuàng)建一個(gè)socket描述符,將本地的IP地址與端口號(hào)綁定到一個(gè)socket上,實(shí)現(xiàn)TCP連接的建立、斷開,數(shù)據(jù)的接收與發(fā)送的功能。2.2 TCP協(xié)議的實(shí)現(xiàn)TCP協(xié)議數(shù)據(jù)傳輸可分為三個(gè)階段:連接建立、數(shù)據(jù)傳輸和連接斷開 5。它的實(shí)現(xiàn)過(guò)程可以用狀態(tài)機(jī)來(lái)描述。建立連接有兩種方法,即主動(dòng)打開和被動(dòng)打開。服務(wù)器端是一種被動(dòng)打開,它一直在偵

5、聽連接請(qǐng)求;而客戶端是一種主動(dòng)打開,它發(fā)送連接請(qǐng)求以建立連接。研究發(fā)現(xiàn),如果TCP層的上層實(shí)現(xiàn)服務(wù)器端的應(yīng)用,可以將標(biāo)準(zhǔn)TCP狀態(tài)機(jī)建立連接過(guò)程中的客戶端建立連接的狀態(tài)機(jī)部分簡(jiǎn)化掉。同理,如果應(yīng)用是基于客戶端的,可以將服務(wù)器端建立連接的狀態(tài)機(jī)部分簡(jiǎn)化掉。斷開連接有兩種方式:一是主動(dòng)斷開連接;另一是被動(dòng)斷開連接。被動(dòng)斷開連接的處理較為簡(jiǎn)單,而標(biāo)準(zhǔn)TCP協(xié)議的主動(dòng)斷開連接的狀態(tài)機(jī)部分過(guò)于復(fù)雜。經(jīng)過(guò)實(shí)驗(yàn)發(fā)現(xiàn),在需要主動(dòng)斷開的時(shí)候,發(fā)送一個(gè)FIN數(shù)據(jù)報(bào),接收到對(duì)FIN數(shù)據(jù)報(bào)的確認(rèn)后,再發(fā)送一個(gè)Reset數(shù)據(jù)報(bào),即可完成一次主動(dòng)斷開連接。標(biāo)準(zhǔn)的TCP協(xié)議使用慢啟動(dòng)和滑動(dòng)窗口機(jī)制?;瑒?dòng)窗口是一種在流量控制

6、和網(wǎng)絡(luò)傳輸效率之間進(jìn)行折中的方案,它允許發(fā)送方在等待一個(gè)確認(rèn)之前發(fā)送多個(gè)窗口,其確認(rèn)是一種批量的確認(rèn)。但是由于系統(tǒng)中網(wǎng)絡(luò)傳感器傳輸數(shù)據(jù)量很小,因此沒有必要消耗大量的存儲(chǔ)空間實(shí)現(xiàn)滑動(dòng)窗口機(jī)制換取對(duì)流量和擁塞的控制。因此通過(guò)研究滑動(dòng)窗口協(xié)議發(fā)現(xiàn),如果采用停等協(xié)議,即滑動(dòng)窗口只使用單個(gè)窗口的極限情況,發(fā)送方每發(fā)送一個(gè)分組,都等待確認(rèn);收到確認(rèn)后再發(fā)送下一個(gè)分組,那么就變成了一種簡(jiǎn)單確認(rèn)的處理方法,使用該方法后,所有的處理只是對(duì)單個(gè)數(shù)據(jù)報(bào)的發(fā)送和確認(rèn),節(jié)約了系統(tǒng)資源,也使維護(hù)更方便,這樣做既能夠保證傳輸?shù)目煽?,在?shù)據(jù)量不大的情況下,傳輸?shù)膶?shí)時(shí)性也不會(huì)有明顯的折扣。更重要的是,化解了流量和擁塞問(wèn)題。當(dāng)然

7、,如果只使用一個(gè)窗口,還要求對(duì)方也使用簡(jiǎn)單的確認(rèn)機(jī)制。因?yàn)槿绻麑?duì)方使用較大的窗口,就可能造成處理器被淹沒。這可以通過(guò)設(shè)置TCP頭部Windows字段來(lái)通知對(duì)方自己的接收緩沖區(qū)大小,避免對(duì)方連續(xù)發(fā)送大量數(shù)據(jù)造成接收緩沖區(qū)溢出來(lái)實(shí)現(xiàn)。在上述基礎(chǔ)上簡(jiǎn)化實(shí)現(xiàn)TCP協(xié)議的流程圖如圖2所示。圖2  簡(jiǎn)化的TCP協(xié)議流程圖  2.3 IP協(xié)議的實(shí)現(xiàn)IP協(xié)議是網(wǎng)絡(luò)層協(xié)議,是TCP/IP協(xié)議的基礎(chǔ),它可以為不同網(wǎng)絡(luò)的主機(jī)之間發(fā)送數(shù)據(jù)報(bào)的操作序列提供無(wú)連接的服務(wù)。通過(guò)在數(shù)據(jù)報(bào)前添加IP協(xié)議頭,使每個(gè)數(shù)據(jù)報(bào)具有尋址能力。標(biāo)準(zhǔn)IP協(xié)議的流程是,系統(tǒng)在接收IP數(shù)據(jù)包后,檢驗(yàn)IP頭

8、部的版本、目的地址、校驗(yàn)和是否正確,解析出協(xié)議類型字段,由此交給相應(yīng)的高層協(xié)議處理;發(fā)送IP數(shù)據(jù)報(bào)時(shí),將緩沖區(qū)的源地址與目的地址互換,設(shè)置校驗(yàn)和,然后交給下層協(xié)議處理。IP包的最大容量為65KB,可以分段傳輸,而在嵌入式系統(tǒng)里由于無(wú)法容納如此大的數(shù)據(jù)包,因此一般不支持分段傳輸5。嵌入式系統(tǒng)只把IP作為傳輸工具,必須對(duì)其簡(jiǎn)化以完成主要操作。本系統(tǒng)中,接收時(shí)首先要檢查數(shù)據(jù)報(bào)的正確性,其次過(guò)濾目的地址不是本機(jī)的報(bào)文;如果收到被IP分段的數(shù)據(jù)報(bào)立即丟棄。最后判斷協(xié)議交給TCP或ICMP協(xié)議處理。因?yàn)榻笽P層分段可以提高通信的效率和可靠性,根據(jù)以太網(wǎng)最大傳輸單元(MTU)的限制,socket子層控制了

9、用戶每次傳輸分組的最大字節(jié)數(shù)。同樣,服務(wù)器端也對(duì)IP分段加以限制,使IP無(wú)需把有限的系統(tǒng)資源消耗在IP報(bào)文重裝上,從而減少了程序的復(fù)雜度。2.4 其它協(xié)議的實(shí)現(xiàn)     ARP協(xié)議為32位IP地址到對(duì)應(yīng)48位以太網(wǎng)地址之間提供動(dòng)態(tài)映射。嵌入式系統(tǒng)中僅響應(yīng)ARP請(qǐng)求,發(fā)送ARP應(yīng)答包。請(qǐng)求者廣播出包含ARP請(qǐng)求的以太幀和目的以太網(wǎng)地址為全1的廣播地址。本機(jī)收到后,由目的IP地址發(fā)現(xiàn)自己是目的主機(jī),發(fā)送一個(gè)ARP回答。ARP報(bào)文分為請(qǐng)求和應(yīng)答兩種報(bào)文,通過(guò)這兩種報(bào)文實(shí)現(xiàn)ARP緩存的更新。ARP高速緩存在它的運(yùn)行過(guò)程中非常關(guān)鍵。由于微控制器硬件資源限制ARP高

10、速緩存只定義了8組,因此查找采用線性搜索的方法對(duì)最終性能并沒有影響。緩存只包含IP地址、MAC地址、標(biāo)志位、寫入時(shí)間4項(xiàng),這樣既可以實(shí)現(xiàn)ARP協(xié)議又可以節(jié)省硬件資源。     ICMP提供主機(jī)或路由器報(bào)告差錯(cuò)或提供查詢信息的服務(wù),它通過(guò)IP協(xié)議傳輸其報(bào)文,IP協(xié)議是無(wú)連接的,它無(wú)法將報(bào)文和錯(cuò)誤信息傳到最初的主機(jī),而由ICMP將狀態(tài)信息和錯(cuò)誤信息發(fā)送到發(fā)報(bào)文的主機(jī)。ICMP報(bào)文可以分成兩類:查詢和差錯(cuò)。查詢報(bào)文是用一對(duì)請(qǐng)求和回答定義的。差錯(cuò)報(bào)文通常包含了引起錯(cuò)誤的IP數(shù)據(jù)報(bào)的第一個(gè)分片的IP首部,以及該分片數(shù)據(jù)部分的前8個(gè)字節(jié)。由于運(yùn)輸層僅僅使用TCP協(xié)議,ICMP

11、也進(jìn)行了裁剪。協(xié)議支持ping命令請(qǐng)求回顯應(yīng)答,用于檢查協(xié)議族的運(yùn)行狀況;差錯(cuò)控制全部交給運(yùn)輸層TCP協(xié)議處理。3  協(xié)議族定時(shí)器的實(shí)現(xiàn)在TCP/IP協(xié)議中多處用到超時(shí)和重發(fā)機(jī)制。這種機(jī)制對(duì)于確保兩個(gè)或多個(gè)彼此獨(dú)立的通信節(jié)點(diǎn)從故障狀態(tài)自動(dòng)恢復(fù)到正常狀態(tài)是非常有效的,但也增加了軟件的復(fù)雜性6。因?yàn)閷?duì)超時(shí)的處理通常獨(dú)立于正常程序流程,也就是與正常程序流程異步。這使得協(xié)議族定時(shí)器的設(shè)計(jì)難度增加。本系統(tǒng)中,TCP/IP協(xié)議軟件為實(shí)現(xiàn)當(dāng)前連接建立了如下五個(gè)定時(shí)器:連接建立定時(shí)器,重傳定時(shí)器,延遲ACK定時(shí)器,F(xiàn)IN_WAIT定時(shí)器和TIME_WAIT定時(shí)器。 根據(jù)它們?cè)贏RP高速緩存維護(hù)、AR

12、P請(qǐng)求返回響應(yīng)時(shí)間的判定、IP組裝收到分片時(shí)間的管理以及TCP等待接收方對(duì)數(shù)據(jù)段確認(rèn)時(shí)間的判定中的要求,需要定時(shí)器具備以下特點(diǎn):第一,不把超時(shí)處理放在時(shí)鐘中斷處理程序中進(jìn)行,稍滯后一些來(lái)處理定時(shí)器超時(shí);第二,對(duì)同一類超時(shí)處理可以由同一處理程序完成,只是將傳入到相應(yīng)的處理程序中的參數(shù)設(shè)置不同而已。例如一個(gè)ARP高速緩存中的表項(xiàng)超時(shí)時(shí),需要將其置為無(wú)效,可以統(tǒng)一用一個(gè)處理程序,而在參數(shù)中放入相應(yīng)的表項(xiàng)地址即可。因此本系統(tǒng)定義的定時(shí)器的數(shù)據(jù)結(jié)構(gòu)如圖3所示。圖定時(shí)器的數(shù)據(jù)結(jié)構(gòu)圖4結(jié)論本論文的創(chuàng)新點(diǎn)是:將標(biāo)準(zhǔn)TCP協(xié)議中的滑動(dòng)窗口機(jī)制裁減為停等協(xié)議,既能夠保證傳輸?shù)目煽啃?,又能保證傳輸?shù)膶?shí)時(shí)性;IP協(xié)議

13、在檢查數(shù)據(jù)報(bào)的正確性后,只過(guò)濾目的地址不是本機(jī)的報(bào)文,服務(wù)器端也對(duì)IP分段加以限制,從而減少了程序的復(fù)雜度;ARP對(duì)報(bào)文實(shí)現(xiàn)緩存更新時(shí),查找采用線性搜索法,緩存只包含IP地址、MAC地址、標(biāo)志位、寫入時(shí)間4項(xiàng),可以節(jié)省硬件資源;此外,對(duì)于超時(shí)定時(shí)器的設(shè)計(jì)也與以往不同,考慮到系統(tǒng)對(duì)定時(shí)的精度要求不高,基本是秒級(jí)精度,不把超時(shí)處理放在時(shí)鐘中斷處理程序中進(jìn)行,稍滯后一些來(lái)處理定時(shí)器超時(shí),并且,對(duì)同一類超時(shí)處理可以由同一處理程序完成,只是將傳入到相應(yīng)的處理程序中的參數(shù)設(shè)置不同而已。經(jīng)過(guò)裁剪的嵌入式TCP/IP協(xié)議族,應(yīng)用在前端嵌入式設(shè)備處理器是Samsung公司的S3c4510B(ARM核)系統(tǒng)中,結(jié)

14、構(gòu)精簡(jiǎn),性能穩(wěn)定,實(shí)時(shí)性強(qiáng),通過(guò)專項(xiàng)測(cè)試證明,基于該協(xié)議族的網(wǎng)絡(luò)監(jiān)控系統(tǒng)控制終端的指標(biāo)達(dá)到了預(yù)期的要求。本文提出的這種基于ARM的嵌入式TCP/IP協(xié)議在低速處理器中的設(shè)計(jì)方案,對(duì)該領(lǐng)域中相關(guān)技術(shù)的研究具有重要的參考意義。參考文獻(xiàn)1 J.Benthem著,陳向群譯, TCP/IP Lean:嵌入式系統(tǒng)WEB服務(wù)器, 機(jī)械工業(yè)出版社,2003.5,第一版2 Gary R. Wright W.Richard Stevens,TCP/IP Illustrated volume 1: The protocol,1994.113 Gary R. Wright W.Richard Stevens,TCP/

15、IP Illustrated volume 2: The Implementation,1994.114 周明天 汪文勇,TCP/IP網(wǎng)絡(luò)原理與技術(shù),清華大學(xué)出版社,1993.125 田澤,嵌入式系統(tǒng)開發(fā)與應(yīng)用,北京:北京航空航天大學(xué)出版社,2005.16 王峰,張宏偉等,嵌入式Internet技術(shù)及其實(shí)現(xiàn)方案J。微計(jì)算機(jī)信息,2003,12(19)作者簡(jiǎn)介: 婁莉 : 女, 1970年出生,遼寧沈陽(yáng)人,副教授?,F(xiàn)工作于西安石油大學(xué)計(jì)算機(jī)學(xué)院,研究方向?yàn)橥ㄐ殴こ?,嵌入式系統(tǒng)。劉天時(shí): 男,1960年出生,陜西渭南人,現(xiàn)工作于西安石油大學(xué)計(jì)算機(jī)學(xué)院,教授,博士,感興趣領(lǐng)域?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)及應(yīng)用軟件,嵌入式系統(tǒng)。Author Vita:Li Lou(1970-), female, the Han nationality, Liaoning Province, associate professor, maste

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論