tcp提供可靠的運輸層。它使用的方法之一就是確認從另一端收到的資料。但資料和確認都有可能會丟失。tcp通過在傳送時設定乙個定時器來解決這種問題。如果當定時器溢位時還沒有收到確認,它就重傳該資料。
對於實現而言,關鍵之處就在於超時和重傳的策略,即怎樣決定超時間隔和如何確定重傳頻率。
tcp管理4種不同的定時器:
超時重傳是tcp協議保證資料可靠性的乙個重要機制,其原理是在傳送某乙個資料以後就開啟乙個計時器,在一定時間內如果沒有得到傳送的資料報的ack報文,那麼就重新傳送資料,直到傳送成功為止。
超時超時時間的計算是超時的核心部分,tcp要求這個演算法能大致估計出當前的網路狀況,雖然這確實很困難。要求精確的原因有兩個:(1)定時太久會造成網路利用率不高。(2)定時太短會造成多次重傳,使得網路阻塞。所以,書中給出了一套經驗公式,和其他的保證計時器準確的措施。
計時器的使用
乙個連線中,有且僅有乙個測量定時器被使用。也就是說,如果tcp連續發出3組資料,只有一組資料會被測量。
ack資料報不會被測量,原因很簡單,沒有ack的ack回應可以供結束定時器測量
擁塞避免演算法擁塞避免演算法是一種處理丟失分組的方法。該演算法假定由於分組受到損壞引起的丟失是非常少的,因此分組丟失意味著網路擁塞。有兩種分組丟失的指示:超時 和 重複的ack。擁塞避免演算法和慢啟動演算法對每個連線維持兩個變數: 擁塞視窗( cwnd ) 和 慢啟動門限( ssthresh )
演算法工作過程:
(1)對乙個給定的連線,初始化cwnd為1個報文段, ssthresh為65535個位元組.
(2)tcp輸出例程的輸出不能超過cwnd和接收方通告視窗的大小.擁塞避免是傳送方使用的流量控制,而通告視窗則是接收方進行的流量控制.前者是傳送方感受到的網路擁塞的估計,後者則與接收方在該連線上的可用快取大小有關.
cwnd增加方式:
快速重傳與快速恢復演算法如果收到3個重複ack,可認為該報文段已經丟失,此時無需等待超時定時器溢位,直接重傳丟失的包,這就叫【快速重傳演算法】.而接下來執行的不是慢啟動而是擁塞避免演算法,這就叫【快速恢復演算法】.
快重傳配合使用快恢復演算法,有以下兩個要點:
①當傳送方連續收到三個重複確認時,就執行「乘法減小」演算法,把ssthresh門限減半。但是接下去並不執行慢啟動演算法。
②考慮到如果網路出現擁塞的話就不會收到好幾個重複的確認,所以傳送方現在認為網路可能沒有出現擁塞。所以此時不執行慢啟動演算法,而是將cwnd設定為ssthresh的大小,然後執行擁塞避免演算法。
icmp差錯(1)源站抑制的icmp將擁塞視窗cwnd置為1個報文段,並發起慢啟動,慢啟動門限ssthresh不變,視窗將開啟直至開放了所有的通路(受視窗大小和往返時間的限制)或者發生了擁塞;
重新分組tcp為了提高自己的效率,允許再重新傳輸的時候,只要傳輸包含重傳資料報文的報文就可以,而不用只重傳需要傳輸的報文。
比如,第二個報文段需要重傳,它可以跟第三個報文段的資料重組成乙個較大的報文段然後傳送。
TCP IP詳解讀書筆記
igmp協議 icmp資料報結構 udphdr結構 tcphdr結構 iphdr結構 tcp ip詳解讀書筆記 第13章igmp internet組管理協議 tcp ip詳解讀書筆記 第12章 廣播和多播 tcp ip詳解讀書筆記 第11章 udp 使用者資料報協議 tcp ip詳解讀書筆記 第10...
TCP IP詳解 讀書筆記 四
tcp提供可靠的運輸層。它使用的方法之一就是確認從另一端收到的資料。但資料和確認都有可能會丟失。tcp通過在傳送時設定乙個定時器來解決這種問題。如果當定時器溢位時還沒有收到確認,它就重傳該資料。對任何實現而言,關鍵之處就在於超時和重傳的策略,即怎樣決定超時間隔和如何確定重傳的頻率。首先觀察tcp所使...
TCP IP詳解讀書筆記(一)
arp協議用來找到目標主機的ethernet網絡卡mac位址,ip則承載要傳送的訊息。資料鏈路層可以從arp得到資料的傳送資訊,而從ip得到要傳輸的資料資訊。ip不是可靠的協議 這是說,ip協議沒有提供一種資料未傳達以後的處理機制,這被認為是上層協議tcp或udp要做的事情。ip位址協議頭 ttl欄...