a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Nagle算法的嵌入式TCP協議

基于Nagle算法的嵌入式TCP協議

作者: 時間:2012-04-05 來源:網絡 收藏

Nagle 算法的描述

在一個連接上已經傳輸的數據還沒有被確認的情況下,發送方的應用程序又生成了后續數據,并照常將數據送到輸出緩沖區中,但這時并不發送后續報文段,而是等到有足夠的數據填滿一個達到最大長度的報文段之后再把緩沖區中的數據發送出去。

如果某個應用程序每次僅產生一個八位組的數據, TCP 會立即發送最初的那個八位組,但是在確認到達之前, TCP 會把后續數據存入緩沖區中。因此當應用程序生成數據的速率比網絡的速率快很多時(如傳送文件) ,后續的報文段將包含大量的數據,而當應用程序比網絡速度更慢時(如用戶敲鍵盤) ,就會發送較短的報文段而不必經過長的延時。

Nagle 算法在嵌入式環境的適用性

在嵌入式系統的環境中,嵌入式TCP 協議會面臨著各種情況,比如一兩個開關量的傳輸,或者是傳感器數據實時的傳輸,而Nagle 算法能夠自動適應網絡速率和應用層數據流量的各種情況,因為它是以確認來觸發的自計時的協議。

網絡模擬

NS-2 是一個應用于網絡研究的離散事件模擬器,它充分支持有線與無線網絡上對于TCP、路由和多播協議的模擬。它自問世以來受到學術界的充分信賴,成為設計和檢驗新的協議和算法的權威網絡模擬測試平臺。

網絡模擬環境的構建

圖3 是本文構建的網絡模擬環境:節點0 使用本文提出的嵌入式TCP 協議發送數據,節點1 使用用戶投文協議(UDP) 組播協議來發送大量的數據,用于測試嵌入式TCP 協議在網絡阻塞情況下的性能,節點2 和節點3 之間是瓶頸路徑,模擬交換機之間的線路情況。

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

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

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

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

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

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

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



評論


相關推薦

技術專區

關閉