TCP的4個定時器

2021-09-30 13:41:48 字數 907 閱讀 4226

為了實現tcp, 它維護著4個定時器來實現特定功能。

tcp 提供 可靠的傳輸是採用超時重傳來解決的。

tcp 每傳送乙個報文就會啟動該定時器,在重傳時間內(等待乙個報文確認的時間段),收到確認,則停止該定時器;反之該報文被重傳,且定時器復位。

重傳時間的確定 :

重傳時間取決於tcp 連線的rtt(往返時間)。如果太短,在途中的報文會重傳,從而增加網路負擔;如果太長,導致效率會低下。所以tcp 採用的是一種動態策略,根據監測網路效能而不斷調整重傳時間。

rrt = a (前乙個rrt) + (1-a)(當前rrt);

二義性問題

當乙個報文被重傳後,tcp 收到的確認報無法判斷是第一次 的 還是重傳的確認,導致二義性;

當超時和重傳發生時,在收到重傳確認前,不更新rrt.每重傳一次,rrt 加倍 直到傳送了乙個報文 並收到不需要重傳的確認為止;

解決這個問題普遍採用 karn 演算法,

t = b rrt ( b 典型為2)

持續計時器 主要解決死鎖問題;

保活定時器來防止乙個長時間的空閒。如果啟動了乙個客戶與伺服器的時間卻長時間不傳資料,只要倆端主機沒有重啟,該連線會一直保持占用資源。

實際中 每當伺服器收到資料時,就會復位保活定時器,通常為 2h , 若超時,則伺服器會傳送10 個間隔時間為 75s 的探測報文,若客戶端沒有響應,就認為故障或下線,終止連線。

每個連線的最後乙個計時器。 它在關閉連線 的 timed_wait 狀態中使用。當tcp關閉乙個連線時,並不是立刻關閉,而是在等待期中過渡,已使丟棄重複的 fin 報文,通常設定為生存時間的倆倍。

TCP四個定時器 之 TCP堅持定時器

tcp通過讓接收方指明希望從傳送方接收的資料位元組數 即視窗大小 來進行流量控制。如果視窗大小為 0會發生什麼情況呢?這將有效地阻止傳送方傳送資料,直到視窗變為非0為止。tcp不對ack報文段進行確認,tcp只確認那些包含有資料的ack報文段。如果乙個確認丟失了,則雙方就有可能因為等待對方而使連線終...

TCP的定時器

在tcp協議中有的時候需要定期或者按照某個演算法對某個事件進行觸發,那麼這個時候,tcp協議是使用定時器進行實現的。在tcp中,會有四種定時器 這四個定時器都有各自的具體作用。tcp是可靠的,因此,它對於發出去的資訊,沒有得到正常ack反饋的,都會啟動乙個重傳機制。這個重傳機制使用乙個重傳定時器,當...

TCP的定時器

建立連線定時器 connection establishment timer 重傳定時器 retransmission timer 延遲應答定時器 delayed ack timer 堅持定時器 persist timer 保活定時器 keepalive timer fin wait 2定時器 fi...