新聞中心

EEPW首頁 > 網(wǎng)絡(luò)與存儲 > 設(shè)計應(yīng)用 > 基于嵌入式TCP/IP軟件體系結(jié)構(gòu)的優(yōu)化設(shè)計與實現(xiàn)(06-100)

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

——
作者:北京郵電大學(xué) 電信工程學(xué)院 廖日坤 紀(jì)越峰 時間:2008-04-03 來源:電子產(chǎn)品世界 收藏

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

本文引用地址:http://www.butianyuan.cn/article/81179.htm

  對于嵌入式系統(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隊列。

  嵌入式的性能分析

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

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

tcp/ip相關(guān)文章:tcp/ip是什么




關(guān)鍵詞: 網(wǎng)絡(luò) TCP/IP Internet

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉