TCP四個計數器
持續計時器
TCP 為每一個連接設有一個持續計時器。
只要 TCP 連接的一方收到對方的零窗口通知,就啟動持續計時器。
若持續計時器設置的時間到期,就發送一個零窗口探測報文段(僅攜帶 1 字節的數據)
,而對方就在確認這個探測報文段時給出了現在的窗口值。
若窗口仍然是零,則收到這個報文段的一方就重新設置持續計時器。
若窗口不是零,則死鎖的僵局就可以打破了
超時重傳計時器
TCP每發送一個報文段,就對這個報文段設置一次計時器。只要計時器設置的重傳時間到還沒有收到確認,就要重傳這個報文段。由于數據鏈路層和運輸層的往返實驗概率分布存在很大差異,因此有必要選擇合適的超時重傳時間。
報文段的往返時延是指收到確認報文的時間與每一個報文段發出的時間之差。報文段的平均往返時延RTT是由各個報文段的往返時延樣本加權平均得出來的。計算公式為:
平均往返時延RTT=α×(舊的RTT)+(1-α)×(新的往返時延樣本),1 ≤ α < 1 典型的值為α為7/8.
即使有一個好的RTT,要選擇一個合適的超時重傳時間RTO(Restransmission Time out)仍然不是一個容易的事情。, 顯然RTO要大于RTT。其計算公式為 RTO = β × RTT, β > 1, 推薦是2

浙公網安備 33010602011771號