閱讀 | 訂閱
閱讀 | 訂閱
控制系統(tǒng)

基于嵌入式TCP/IP軟件體系結(jié)構(gòu)的優(yōu)化設(shè)計與實現(xiàn)(二)

星之球激光 來源:中國自動化網(wǎng)2012-02-15 我要評論(0 )   

嵌入式TCP/IP的實現(xiàn) TCP/IP的嵌入式實現(xiàn)一般通過以軟件方式嵌入到ROM中,然后通過輕網(wǎng)絡(luò)通訊技術(shù)與專用嵌入式網(wǎng)關(guān)連接,在嵌入式處理器中運(yùn)行TCP/IP協(xié)議,提供TCP/IP到用...

  
嵌入式TCP/IP的實現(xiàn)

    TCP/IP的嵌入式實現(xiàn)一般通過以軟件方式嵌入到ROM中,然后通過輕網(wǎng)絡(luò)通訊技術(shù)與專用嵌入式網(wǎng)關(guān)連接,在嵌入式處理器中運(yùn)行TCP/IP協(xié)議,提供TCP/IP到用戶的輕型網(wǎng)絡(luò)的連接和路由功能。

內(nèi)存管理方法和無多余數(shù)據(jù)包拷貝的實現(xiàn)

    嵌入式TCP/IP的內(nèi)存管理可以用鏈表方法,即根據(jù)數(shù)據(jù)包大小分配相應(yīng)大小的內(nèi)存塊。如圖4所示,鏈表將內(nèi)存塊鏈接起來,used字段表示該內(nèi)存塊是否正在使用,pSstart和pEend則表示數(shù)據(jù)部分有效數(shù)據(jù)的開始地址和結(jié)束地址。搜索內(nèi)存鏈表找到一個沒有分配的比所需空間大的內(nèi)存塊,截取所需的大小。該內(nèi)存塊被截取以后可能還有較多剩余,這時將剩余部分從原內(nèi)存塊中分離出來,成為一個新的內(nèi)存塊,并插入鏈表。釋放時,將used值置為假, 如果pNext或者pPre指向的鏈表單元也是空閑的,則將其和自己合并,以防止內(nèi)存分片。在協(xié)議層之間傳送數(shù)據(jù)包只需傳送內(nèi)存塊的起始地址。這種內(nèi)存管理方法,空間浪費(fèi)小但是運(yùn)算量相對較大。


 


 

圖4 基于嵌入式TCP/IP內(nèi)存管理


 

整序、重發(fā)和窗口控制的實現(xiàn)

    對于嵌入式TCP/IP系統(tǒng),可以使用隊列緩存的方式來實現(xiàn)整序、重發(fā)和窗口控制。隊列的一個元素指向一個數(shù)據(jù)包,隊列的最大長度沒有限制。

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

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

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

嵌入式TCP/IP的性能分析

    圖5給出了將優(yōu)化設(shè)計后的TCP/IP移植到ARM9處理器、CS8900A網(wǎng)絡(luò)控制器中,時鐘頻率為133MHz下,與Internet連接的情況。


 


 

圖5 連接圖


 

    系統(tǒng)支持最大發(fā)起連接數(shù)約為380,最大并發(fā)連接率約為170cps。隨著呼叫數(shù)的增加,平均分組到達(dá)也隨之增加,導(dǎo)致網(wǎng)絡(luò)傳輸數(shù)據(jù)的增加,從而最大建立時間變長。但最小的建立連接時間基本保持不變,說明系統(tǒng)具有良好的性能。

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


 


 

圖6 隨建立時間變化的連接圖


  
結(jié)語


 

    本文從實現(xiàn)相應(yīng)的功能又節(jié)省系統(tǒng)資源角度出發(fā),對嵌入式TCP/IP協(xié)議簇進(jìn)行優(yōu)化設(shè)計,可以在各種嵌入式處理器上實現(xiàn)Internet接入。

    經(jīng)過優(yōu)化設(shè)計的嵌入式TCP/IP支持套接字形式的多個TCP連接、支持多個網(wǎng)絡(luò)設(shè)備、支持通過網(wǎng)關(guān)發(fā)送數(shù)據(jù)包和數(shù)據(jù)包轉(zhuǎn)發(fā)功能,以及支持TCP包的整序、重發(fā)和窗口控制流量控制。實踐證明,這種設(shè)計方式靈活,能按用戶需求實現(xiàn)復(fù)雜的功能。

 

轉(zhuǎn)載請注明出處。

暫無關(guān)鍵詞
免責(zé)聲明

① 凡本網(wǎng)未注明其他出處的作品,版權(quán)均屬于激光制造網(wǎng),未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用。獲本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使 用,并注明"來源:激光制造網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)責(zé)任。
② 凡本網(wǎng)注明其他來源的作品及圖片,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本媒贊同其觀點和對其真實性負(fù)責(zé),版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系我們刪除。
③ 任何單位或個人認(rèn)為本網(wǎng)內(nèi)容可能涉嫌侵犯其合法權(quán)益,請及時向本網(wǎng)提出書面權(quán)利通知,并提供身份證明、權(quán)屬證明、具體鏈接(URL)及詳細(xì)侵權(quán)情況證明。本網(wǎng)在收到上述法律文件后,將會依法盡快移除相關(guān)涉嫌侵權(quán)的內(nèi)容。

網(wǎng)友點評
0相關(guān)評論
精彩導(dǎo)讀