tcp協議段格式
tcp報頭各部分意義:
urg:緊急指標是否有效,當該標誌位為1時,表示有緊急訊號需要處理tcp的特點ack:確認號是否有效
psh:提示接收端將接受緩衝區中的資料讓應用層讀走(涉及生產者消費者模型)
rst:對方要求重新建立連線,把攜帶rst標識的稱為復位報文段,當連線建立異常時,重新建立連線
syn:請求建立連線,攜帶syn標識的稱為同步報文段
fin:通知對方,本段要關閉了,攜帶fin標識的稱為結束報文段,標誌位為1時,表示結束
tcp的可靠性:
tcp提高效能:
確認應答(ack)機制
通過序號和確認序號,完成確認應答機制
因為tcp協議將每個位元組的資料都進行了編號,即序號。
每個ack都帶有對應的確認序號,意思是告訴傳送者,已經收到了哪些資料,下一次將從**開始傳送。
超時重傳機制
當主機a傳送給主機b的資料,因為網路擁堵或者其他原因,資料沒有到達主機b主機a如果在一定的時間間隔內沒有收到主機b傳送的確認應答,就會進行重發
還有一種情況可能主機a沒有收到主機b的確認應答,即ack丟失了
因此,主機b可能收到很多重複的資料,那麼tcp協議需要識別出這些重複的包,並且把重複的丟棄掉。
這時可以利用tcp協議頭部的序列號,就可以很容易做到去重的效果。
關於超時的時間長短:
tcp為了保證無論在任何情況下都能比較高效的通訊,因此會動態計算這個最大超時時間
在linux,bsd unix和windows,超時以500ms為乙個單位進行控制,每次判定超時重傳的時間,都是500ms的整數倍。如果重發一次,沒有得到應答,等待2*500ms後再進行重傳,如果仍然得不到應答,等待4 * 500ms進行重傳,以此類推,以指數形式遞增,累積到一定的重傳次數,tcp會認為網路或者對方主機端出現問題,強制關閉連線。
TCP協議 擁塞控制,捎帶應答,延遲應答
擁塞控制,捎帶應答,延遲應答實際都與提高tcp的效率的機制 擁塞控制 上次我們談到tcp通過滑動視窗來高效可靠的傳送大量資料,但是當一開始就傳送大量資料,當遇到網路比擁堵或者網路狀態不佳的時候,就會引發一系列的問題。為了解決這一問題,tcp引入慢啟動機制,先發少量的資料,探探路 然後再決定資料的傳送...
網路學習 傳輸層TCP協議(確認應答與超時重發)
概念 在tcp中,當傳送端的資料到達資料接收主機時,接收端主機會返回乙個已收到訊息的通知,這個訊息叫做確認應答 ack 序列號 tcp資料報中的序列號 sequence number 不是以報文段來進行編號的,而是將連線生存週期內傳輸的所有資料當作乙個位元組流,序列號就是整個位元組流中每個位元組的編...
TCP協議稍待確認
在計算機通訊tcp協議中,當乙個資料幀到達接收方時,接收方並不是立即傳送乙個單獨的控制幀來回應已經收到,而是開始等待直到網路層傳遞給它下乙個分組。然後,確認資訊被附在往外傳送的資料幀上 使用幀頭中的ack域 實際上,確認報文搭了下乙個往外發資料幀的便車。這種 將確認暫時延遲以便可以鉤到下乙個外發資料...