通過前面的tcp介紹我們對以後的排錯以及網站編寫和優化處理有了基礎了解,接下來我們讨論一下tcp重傳
當我們的資料有的因為網絡等原因沒有發送過去時通過重傳進行重新發送。
我們的重傳計時器維護着一個重傳逾時rto,當tcp發送的時候計時 ack确認的時候進行停止,從資料包的發送到确認這段時間就是往返時間。
通過将多個往返時間相加求平均來得到最終的rto,之後有了固定的值當資料發送出去然而沒有回應ack的時候知道沒有收到資料,重新發送該部分資料rto會經過不斷的重新發送進而翻倍直到停止結束。
可以看到tcp retransmission表明是重傳
我們重傳的這些的内容也是相同的,不會改變。
我們可以看到已經确定之前的接收并期望下一個為1
在看看第二個
看到的是10945這意味着出錯需要重傳,因為我們本來seqnumber=1
之後就進行重傳了,直到收到ack确定。
如果出現了多個資料的丢失,我們如果判斷哪個資料丢失了?
目前采用的是在收到确認的時候告訴我收到xx 某個xx沒有收到,這樣不斷的告訴進而重傳資料。
了解了這部分也就明白了網絡出現故障的拍錯的一部分,在設計網站或者程式的時候也就明白該如何去處理了。
希望本文對您有所幫助。