經受時延的確認 Delay ACK

2021-07-25 19:10:28 字數 1879 閱讀 1156

通常

tcp在接收到資料時並不立即傳送

ack,相反,它推遲傳送,以便將

ack與需要沿該方向傳送的資料一起傳送(有時稱這種現象為資料捎帶

ack),這樣做的目的是儘量減少發往網路的報文,以提高傳輸的效率,節省網路資源。

捎帶ack的意思是,當接收端接收到tcp報文段後,並不立即傳送ack報文,而是等上一段時間,如果這段時間裡該主機有資料要傳送到遠端主機,就將該資料捎帶上ack一起傳送過去,很明顯,這樣可以減少傳輸開銷。為了防止產生超時重傳,絕大多數情況下,這個等待時間為200ms,超過了200ms,如果沒有資料要一起傳送,就直接傳送ack報文。

捎帶ack的策略一般也只有在互動性比較高的應用中才會使用,對於成塊資料流,一般大多數應用程式不會同時在兩個方向上傳送資料。

經受時延的確認工作過程

下圖清晰的展示了delay ack的工作過程:

我們一起來看乙個實際環境中的delay ack例項:

delay ack與響應時間

在實際工作環境下,我們做應用效能分析時,有時會遇到應用程式處理時間較長(一般超過200ms)時,我們經常會看到伺服器先向對端傳送了tcp

ack報文(無應用層資料),這個確認的報文一般就是tcp的delay ack,如下圖所示:

我們在遇到此類現象時,千萬不能簡單的將此處的delay ack當成應用響應時間。

delay ack的可能影響

另外需要注意的是,delay ack雖然能夠提高傳輸效率,節約網路資源,但是在某些情況下,其會給應用帶來難以想象的延時問題(假想一下這樣的場景:伺服器單向向客戶端間歇傳送一些資料,但是客戶端無應用資料需要提交給對方,此時,如果客戶端每收到對端包含有應用欄位的報文時,都等待200ms才對其進行確認,那麼如果伺服器與客戶端的互動次數為1000的話,那麼整個應用交易或應用會話將要持續1000*200=200s,而200秒對於絕大多數的應用來說是不可接受的)。

delay ack補充

1,絕大多數實現採用的時延為200ms,也就是說,tcp將以最大200ms的時延等待是否有資料一起傳送,但是這個

200ms

的值並不是必須的,開發者可以根據自己的需要來設定這個數值,因此,我們在實際工作過程如果發現非

200ms

但是工作機制與delay ack一致的

tcp互動過程,那基本上就是d

elay ack

機制了。

2,如果連續收到對端兩個資料段,則一般立即回應ack資料報,如下圖所示:

如下圖所示:

報文3,6,9,叫做經受時延的ack,經受時延的ack通常定時器被設計位200ms,所有6報文的發生時間-3報文的發生時間,大約是200ms,這是bsdi端的,另一端的資料,為什麼沒有經受時延的ack,

因為在定時器到時的之前,正好有傳送的資料需要傳送,因此沒有單獨的經受時延的ack傳送

經受時延的確認的思想就是,如果a端接收到b端的資料,a端先等待一段時間。下面就要分幾種情況:

1.如果在等待的這段時間內,a端突然有資料要傳送給b端,則a端立刻將資料連同之前的ack一起發給b端。

2.如果在等待的這段時間內,a端又接收到b端發過來的資料了,則a端也是立刻傳送ack給b端,注意此時是只傳送乙個ack。「如果連續收到對端兩個資料段,則一般立即回應

ack資料報」這句話就是這個意思。

3.如果等待的這段時間超出了核心的時延定時器200ms,也就是發生了定時器的溢位,則立刻傳送乙個ack給b端,注意此時是只傳送乙個ack。其中200ms的演算法,是這次溢位與上次溢位的時間間隔為200ms的倍數。

tcp ip 19 經受時延的確認。。

原話 通常tcp在接收到資料時並不立即傳送ack 相反,它推遲傳送,以便將 ack與需要沿該方向傳送的資料一起傳送 有時稱這種現象為資料捎帶 ack 絕大多數實現採用的時延為 200 ms,也就是說,tcp將以最大200 ms 的時延等待是否有資料一起傳送。tcp使用了乙個 200 ms的定時器,該...

網路時延 傳送時延和傳播時延

一 時延的定義 時延是指乙個報文或分組從乙個網路的一端傳送到另乙個端所需要的時間。它包括了傳送時延,傳播時延,處理時延,排隊時延。時延 傳送時延 傳播時延 處理時延 排隊時延 一般,傳送時延與傳播時延是我們主要考慮的。對於報文長度較大的情況,傳送時延是主要矛盾 報文長度較小的情況,傳播時延是主要矛盾...

直播時延優化

以上產生時延的地方涉及到資料處理 編碼 傳輸的問題。可以從以下幾方面來優化 1.處理資料時延優化 處理資料報括美顏 水印 濾鏡 加貼紙效果等,把這些都讓gpu來處理,可大大減小處理資料的時延。2.編碼時延優化 如果使用了ffmpeg庫,要降低probesize 監控幀資訊的監測大小 和analyze...