問題:
1)傳送方對乙個ack需要等待多久?
todo
2)如果ack丟失了怎麼辦?
重傳另外涉及乙個序列號的設計,這裡重傳分兩種情況,一種是超時重傳,一種是丟失重傳,接收方可能能解收到兩個包,序列號可以用來標記判斷是否是重複包。
3)如果分組被接收到了,但是裡面有錯怎麼辦?
編碼可檢查差錯,但簡單的不能糾正差錯,tcp使用了校驗和來檢查差錯,如果錯了就不回ack了丟棄該包,傳送方會重傳。
視窗的含義:如果你把在乙個通訊對話中傳送的所有分組排成長長的一行,但只能通過乙個小孔來觀察他們,你就只能看到他們的乙個子集——像通過也給視窗**一樣。
分組視窗:已被傳送方注入但還沒得到確認的分組的集合
流量控制分為基於速率的流量控制和基於視窗的流量控制(使用滑動視窗最流行的方法)。ack包會帶回來視窗通告和視窗更新,傳送方往往會在它視窗滑動到右邊的時候同時調整它的大小。
擁塞控制:當包傳送過程中有有限記憶體的路由器,他們比較低速,傳送方速率可能超過路由器的能力,從而導致丟包,這由一種叫做擁塞控制的流量控制形式來處理。(基於視窗的流量控制是由接收方的能力來制約的,擁塞控制是傳輸過程中的裝置制約)
序列號:每個分組第乙個位元組在整個資料流中的位元組偏移,而不是分組號
確認號:指示位元組號n的ack暗示著直到n位元組(不包括n)已經被成功接收了(這另外還帶來了魯棒性,如果乙個ack丟失了,後續的ack就足以確認前面的報文段了)
tcp不帶選項是20位元組,帶了選項可達60位元組,tcp的頭部長度以32位字為單位,即4個位元組,本身是4位,所以最長可達4*15,60位元組。
tcp頭部示意
源埠(16)|目的埠(16)
序列號(32)
確認號(32)
頭部長度(4)|保留(4)|tag(8)|視窗大小(16)
tcp校驗和(16) |緊急指標(16)
選項重傳計時器:這裡沒說的很明白,有提及rtt(往返時間)來估算重傳的計時器,當計時器計時完後進行重傳。
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欄...