色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 如何基于Nagle算法設計嵌入式TCP協議?

          如何基于Nagle算法設計嵌入式TCP協議?

          作者: 時間:2018-07-31 來源:網絡 收藏

          本文引用地址:http://cafeforensic.com/article/201807/384684.htm


          嵌入式TCP 協議的性能指標有吞吐量(throughp ut) ,即單位時間內TCP 源節(jié)點發(fā)送的字節(jié)數;延時,即源節(jié)點的應用層發(fā)出數據到目的節(jié)點應用層接收到數據的時間量。

          基于Nagle 的簡化TCP 協議的吞吐率

          作為一個簡單確認的TCP 協議,因為窗口始終是1 ,所以吞吐率( t hroughp ut ) 是恒定的,由于采用Nagle 算法,不再有大量小數據包產生,提高了吞吐率,提高的倍數約等于Internet 數據包最大值除以應用層產生數據包大小。比如應用層產生的數據包是10 byte ,那么吞吐率就提高了1000/ 10 = 100 倍。

          如圖4 所示,接收到的數據是隨著時間線性增長的,也就是說吞吐率是恒定的。最高的曲線是采用Nagle 算法的簡化TCP 協議的吞吐率;最低的曲線是未采用Nagle 算法的簡化TCP 協議在同樣環(huán)境下的吞吐率;中間曲線為未經過簡化的標準TCP 協議,因此可以從圖中看出,采用Nagle 算法明顯優(yōu)于其他兩種情況,并且大大改善了簡化TCP 的吞吐率。

          基于Nagle 的簡化TCP 協議的響應時間

          再看看延時的問題,Nagle 算法會立即傳送最初的數據,然后再以大吞吐量發(fā)送余下的數據。這就導致,第一,吞吐率大大增加,使得傳送數據更快;第二,產生的數據包數量減少,使得發(fā)生擁塞重傳的機會也減少。圖5 和6 中分別是標準TCP 協議的延時抖動(jit ter) 和采用Nagle 算法的TCP 協議的延時抖動。

          圖6 曲線在開始的尖峰說明了在數據連接的開始Nagle 算法會立即發(fā)送接收到的小數據包,而接下來是將接收的大量的數據打成大包發(fā)送。圖6曲線的平滑情況說明了延時抖動很小,適合嵌入式系統(tǒng)中實時數據的傳輸。在同樣的模擬參數下,標準TCP 協議發(fā)送了大量的數據包(120 個) ,而采用Nagle 算法的簡化的TCP 協議發(fā)送了不到20 個數據包。顯而易見,采用Nagle 算法的簡化TCP 協議在吞吐率高的同時還節(jié)省了網絡的帶寬。



          對該協議實用性的分析

          網絡協議的實用性體現為,在惡劣的網絡環(huán)境(如數據丟失) 下,可以保持連接而且能夠恢復數據的傳輸。

          前面已經分析到,由于大大降低了網絡上小數據包的數量,降低了網絡帶寬的需求,使得基于Nagle 算法的TCP 協議比普通TCP 協議出現阻塞的可能性大大降低。

          如果一旦網絡出現阻塞,會出現數據包的丟失。TCP 的數據發(fā)送方會接收到3 個重復的確認(ACK) 信號,基于Nagle 算法的簡化TCP ,同樣執(zhí)行標準的重發(fā)數據的工作,重新發(fā)送丟失的數據包。由于發(fā)送窗口始終是1 ,則不存在“快速恢復”問題。

          對該協議模擬的結果如圖7 所示:圖中橫坐標是模擬時間,縱坐標是數據包的序列號。上面兩條曲線是Tahoe TCP 的數據和確認,而下面兩條曲線是基于Nagle 的TCP 的數據和確認。 圖中Tahoe TCP在慢啟動后的某個時刻,接收方收到了3 個相同的ACK確認包,表示網絡出現了阻塞,而且傳送相同的數據Tahoe TCP 的帶寬占用比基于Nagle 的簡化TCP 大多了。而基于Nagle 的簡化TCP 卻并未阻塞。

          由以上分析可見, 基于Nagle 算法的簡化的TCP 在數據傳輸方面是可靠的??梢詮V泛的在嵌入式TCP 中使用,并且與其他TCP 算法能夠完全兼容,而且能夠大幅度提高網絡性能,減少網絡阻塞,特別是在應用層數據量比較小但數據包數量卻很多的情況下能夠大大改善數據的吞吐率和網絡占用率,是一種非常實用的算法。WindowsTM也在其Telnet 程序中使用了Nagle 算法。


          基于Nagle 算法的TCP 協議由于算法簡單,性能優(yōu)秀,能夠勝任廣大的嵌入式Internet 的應用領域包括:工業(yè)控制、智能家居、智能監(jiān)控、自動抄表,等等。該協議能夠應用于實時性要求比較高的場合,但是如果實時性要求特別高而網絡帶寬富裕時則建議不采用Nagle 算法。

          結 語

          本文提出的基于Nagle 算法的簡化TCP 協議,大大減輕了微處理器的運算負擔和系統(tǒng)的存儲空間,使得TCP 協議得以在普通8/ 16 位處理器上實采用了Nagle 算法,在不增加多少代碼的情況下,提高了協議的吞吐率、降低了協議的帶寬占用,在嵌入式應用中其吞吐率甚至高于未簡化的標準TCP 協議。它的延時抖動基本是恒定的,非常適合嵌入式系統(tǒng)中的實時數據的傳輸。它發(fā)送少量的大數據包而不是大量的小數據包,從而節(jié)省了網絡帶寬。基于本文算法的自動抄表方案已經在浙大校園網、杭州網通、寧波網通、上海有線通等寬帶網絡下進行了現場測試,測試結果符合設計要求。

          該方案已經被國內多家電表生產企業(yè)所采納,并應用于新型網絡電能表的生產上,這種網絡電能表可以方便地實現網絡化自動集抄系統(tǒng),這些系統(tǒng)已經應用在上海、杭州、寧波等地的電力部門中。同時,基于本文方案的新型電能表以及其技術文件已經向全國電工儀器儀表標準化技術委員會進行了推薦和報批。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉