delay ack與nagle演算法

2021-10-13 15:29:22 字數 459 閱讀 9791

tcp在處理互動資料流時會採用delay ack與nagle演算法

在接收到資料時,並不立刻傳送ack,而將ack的傳送推遲到下一次與該方向要傳送的資料一起傳送或是達到最大時延(大多數為200ms)

可以通過tcp_quickack選項設定

該演算法要求乙個tcp連線上最多只能有乙個未被確認的未完成的小分組(小於mss的資料塊),該分組的確認到達之前不能傳送其他的小分組。tcp收集這些小分組,並在確認到來時以乙個分組一起發出去。

nagle演算法規則:

如果改包長度達到mss,則允許傳送

如果改包含有fin,則允許傳送

設定了tcp_nodelay,則允許傳送

未設定tcp_cork選項時,若所有包都被發出去,或者小資料報(小於mss)均被確認,則允許傳送

tcp_nodelay:無論資料報大小,都立即傳送

tcp_cork:只有資料量達到mss時,才會被傳送

Linux 零視窗 糊塗視窗以及Nagle演算法

滑動視窗 傳送方傳送資料速率與接收方接收資料速率相匹配。零視窗問題 定義tcp報頭結構中有16位的視窗大小 由接收方填充,用來告知傳送方當前本端還能接收的資料長度。如果接收方不斷從網路中接收並快取資料,但是應用程式並沒有處理快取的資料。直到最後,接收方就會向傳送方傳送乙個0視窗的報文段。如何處理?持...

TCP滑動視窗協議與nagle演算法

tcp協議是乙個全雙工的協議,當a與b建立好連線後,可以互相傳送資料,當a作為傳送方時,存在乙個傳送緩衝區,也就是說傳送的資料會先放置在傳送緩衝區處,而作為接收方的b會有乙個接收緩衝區,接收到的資訊會先儲存在接收緩衝處。傳送視窗,則是傳送緩衝區的一部分。傳送資料時通常是按位元組傳送,下面來看一張圖 ...

TCP IP之Nagle演算法與40ms延遲

nagle演算法是針對網路上存在的微小分組可能會在廣域網上造成擁塞而設計的。該演算法要求乙個tcp連線上最多只能有乙個未被確認的未完成的小分組,在該分組確認到達之前不能傳送其他的小分組。同時,tcp收集這些少量的分組,並在確認到來時以乙個分組發出去。它的設計規則如下 1 如果包長度達到最大報文長度 ...