超時重傳時間為什麼會增大
㈠ TCP超時重傳機制重傳
在TCP網路通信中,超時重傳機制是關鍵的一部分。當數據傳輸出現超時,就需要進行重傳,但並非簡單地重復發送。這個過程涉及到策略性的操作,以防止數據流量過大導致網路擁塞。重傳時,發送的數據量需要由擁塞窗口(cwnd)和接收方通告窗口共同控制,以保持流量適中。
擁塞窗口的初始增長通常是指數式的,直到超時重傳觸發,這時會進行微調,即使用擁塞避免演算法或慢啟動門限。慢啟動門限是一個標准,當cwnd超過這個值時,採用擁塞避免演算法,而低於門限則採用慢啟動。慢啟動門限通常記為ssthresh,其作用在於防止流量過度增長引發擁塞。
擁塞避免和慢啟動協同工作,初始時cwnd為1個報文段,ssthresh為65535個位元組。在發送數據時,TCP會確保不超過cwnd和接收方通告窗口的大小。當網路出現擁塞,ssthresh會減半,並可能將cwnd降至1個報文段(慢啟動)。隨著接收確認,cwnd會逐步增加,根據是否在慢啟動階段進行調整。
對於數據丟失,快速重傳和快速恢復演算法提供了補救。當接收重復ACK超過3個時,發送端認為數據丟失,立即進行快速重傳,避免等待超時計時器。隨後的重傳採用擁塞避免演算法,快速恢復以提高網路吞吐量。TCP會保留ICMP錯誤信息,但不會立即重傳,而是使用自己的定時器。
為了提高效率,TCP允許在重新傳輸時,只要包含重傳數據的報文被傳輸,就不必單獨重傳。這種策略有助於減少不必要的傳輸開銷。
㈡ TCP協議-4.TCP超時重傳時間的選擇
在TCP協議中,一個關鍵環節涉及超時重傳時間的設定。其目標是確保數據傳輸的可靠性,通過一個經過精心設計的過程來確定這個時間。首先,我們需要計算加權平均往返時間(RTT,Round-Trip Time),它是一個衡量數據從發送到接收再返回的平均時間的重要指標。這個過程需要對往返時間進行實時的統計和加權,以便得到一個更准確的平均值。
一旦有了RTT的估計,接下來就是計算超時重傳時間(RTO,ReTransmission Timeout)。這個時間通常設定為RTT的兩倍以上,以提供一個安全的緩沖,防止因為網路波動導致的短暫延遲被誤判為數據丟失。這樣設置的超時重傳時間RTO,可以確保在數據包在正常情況下應該到達的時間點之後,如果仍未接收到確認,才會啟動重傳機制。
測量往返時間RTT是這個過程的基礎,通常通過網路層的定時器和確認機制來實現。當一個數據包發送出去後,接收方會發送一個確認信息。如果發送方在預設的超時時間內沒有收到這個確認,它會啟動計時器並開始重傳。這個過程持續進行,直到接收到確認或者超時重傳次數達到預設值,以保證數據的完整性和傳輸的穩定性。
總的來說,TCP協議中的超時重傳時間選擇是一項精細的網路管理策略,旨在通過動態調整來適應網路條件的變化,確保數據傳輸的高效和可靠。通過計算加權平均往返時間和設置適當的超時重傳時間,TCP能夠有效地處理網路延遲和數據包丟失,保證了通信的順暢進行。