基于Nagle算法的嵌入式TCP協(xié)議
對該協(xié)議實用性的分析
網(wǎng)絡協(xié)議的實用性體現(xiàn)為,在惡劣的網(wǎng)絡環(huán)境(如數(shù)據(jù)丟失) 下,可以保持連接而且能夠恢復數(shù)據(jù)的傳輸。
前面已經(jīng)分析到,由于大大降低了網(wǎng)絡上小數(shù)據(jù)包的數(shù)量,降低了網(wǎng)絡帶寬的需求,使得基于Nagle 算法的TCP 協(xié)議比普通TCP 協(xié)議出現(xiàn)阻塞的可能性大大降低。
如果一旦網(wǎng)絡出現(xiàn)阻塞,會出現(xiàn)數(shù)據(jù)包的丟失。TCP 的數(shù)據(jù)發(fā)送方會接收到3 個重復的確認(ACK) 信號,基于Nagle 算法的簡化TCP ,同樣執(zhí)行標準的重發(fā)數(shù)據(jù)的工作,重新發(fā)送丟失的數(shù)據(jù)包。由于發(fā)送窗口始終是1 ,則不存在“快速恢復”問題。
對該協(xié)議模擬的結(jié)果如圖7 所示:圖中橫坐標是模擬時間,縱坐標是數(shù)據(jù)包的序列號。上面兩條曲線是Tahoe TCP 的數(shù)據(jù)和確認,而下面兩條曲線是基于Nagle 的TCP 的數(shù)據(jù)和確認。 圖中Tahoe TCP在慢啟動后的某個時刻,接收方收到了3 個相同的ACK確認包,表示網(wǎng)絡出現(xiàn)了阻塞,而且傳送相同的數(shù)據(jù)Tahoe TCP 的帶寬占用比基于Nagle 的簡化TCP 大多了。而基于Nagle 的簡化TCP 卻并未阻塞。
由以上分析可見, 基于Nagle 算法的簡化的TCP 在數(shù)據(jù)傳輸方面是可靠的。可以廣泛的在嵌入式TCP 中使用,并且與其他TCP 算法能夠完全兼容,而且能夠大幅度提高網(wǎng)絡性能,減少網(wǎng)絡阻塞,特別是在應用層數(shù)據(jù)量比較小但數(shù)據(jù)包數(shù)量卻很多的情況下能夠大大改善數(shù)據(jù)的吞吐率和網(wǎng)絡占用率,是一種非常實用的算法。WindowsTM也在其Telnet 程序中使用了Nagle 算法。
基于Nagle 算法的TCP 協(xié)議由于算法簡單,性能優(yōu)秀,能夠勝任廣大的嵌入式Internet 的應用領域包括:工業(yè)控制、智能家居、智能監(jiān)控、自動抄表,等等。該協(xié)議能夠應用于實時性要求比較高的場合,但是如果實時性要求特別高而網(wǎng)絡帶寬富裕時則建議不采用Nagle 算法。
結(jié) 語
本文提出的基于Nagle 算法的簡化TCP 協(xié)議,大大減輕了微處理器的運算負擔和系統(tǒng)的存儲空間,使得TCP 協(xié)議得以在普通8/ 16 位處理器上實采用了Nagle 算法,在不增加多少代碼的情況下,提高了協(xié)議的吞吐率、降低了協(xié)議的帶寬占用,在嵌入式應用中其吞吐率甚至高于未簡化的標準TCP 協(xié)議。它的延時抖動基本是恒定的,非常適合嵌入式系統(tǒng)中的實時數(shù)據(jù)的傳輸。它發(fā)送少量的大數(shù)據(jù)包而不是大量的小數(shù)據(jù)包,從而節(jié)省了網(wǎng)絡帶寬。基于本文算法的自動抄表方案已經(jīng)在浙大校園網(wǎng)、杭州網(wǎng)通、寧波網(wǎng)通、上海有線通等寬帶網(wǎng)絡下進行了現(xiàn)場測試,測試結(jié)果符合設計要求。
該方案已經(jīng)被國內(nèi)多家電表生產(chǎn)企業(yè)所采納,并應用于新型網(wǎng)絡電能表的生產(chǎn)上,這種網(wǎng)絡電能表可以方便地實現(xiàn)網(wǎng)絡化自動集抄系統(tǒng),這些系統(tǒng)已經(jīng)應用在上海、杭州、寧波等地的電力部門中。同時,基于本文方案的新型電能表以及其技術(shù)文件已經(jīng)向全國電工儀器儀表標準化技術(shù)委員會進行了推薦和報批
評論