傳輸控制協議(tcp)是internet乙個重要的傳輸層協議。tcp提供面向連線、可靠、有序、位元組流傳輸服務。應用程式在使用tcp之前,必須先建立tcp連線;tcp通過校驗和、序列號、確認應答、重發控制、連線管理以及視窗控制等機制實現可靠性傳輸。
在tcp的傳輸中,當傳送端資料到達接受主機時,接收端主機回返回乙個已收到的訊息通知,這個訊息就叫做確認應答(ack);在一定時間內沒有收到確認應答,傳送端就會認為資料丟失,會進行資料的重發。
為了防止接受重複的資料,tcp引入了乙個機制,來識別是否已經接收到了這個資料,這個就是序列號;序列號是按順序給傳送資料的每乙個位元組(8位位元組)都標上號碼的編號,接收端查詢接收資料tcp首部的序列號和資料的長度,來確認自己下一步應該接收的序號最為確認應答返送回去。
三次握手過程:其目的不是為了打通網路連線,而是在正式使用之前,先要檢測網路是否通暢。
tcp在進行三次握手時,會確認傳送資料報的單位,也就是傳送的最大訊息長度(mss:maximum segment size),tcp在進行大量資料傳送時,就是以mss的大小將資料進行分割傳送。
其中tcp是以乙個段為單位進行資料的傳送的,每傳送乙個段就需要一次對應的確認應答處理,這個傳輸的缺點就是,包的往返時間越長通訊效能就越低;為了解決這個問題,tcp引入了視窗這個概念,視窗大小就是指無需等待確認應答而可以繼續傳送資料的最大值,如下圖所示,這個視窗的值為3,視窗的機制實現使用了大量的緩衝區
在使用了視窗後,某些資料的丟失也不用進行重發,機制在視窗中的某些應答丟失,也可以通過下一次的應答來進行確認;在視窗中,如果某一段資料未被傳送到服務端,這個時候同乙個序號到確認應答會被反覆不斷的返回,當連續3次返回同乙個應答號,客戶端就會對資料進行重發。
四次揮手過程:揮手就是斷開連線的過程。
視窗大小:長度為16位,表示可以傳送資料的視窗大小,當為0時,表示可以傳送視窗探測。
校驗和:長度為16位,校驗tcp偽首部是否正確。
緊急指標:長度為16位,只有在urg標誌為1時有效,該字段的數值表示本報文段中緊急資料的指標。
選項:可以用於提高tcp傳輸效能。
填充:用於資料補全。
詳解TCP協議
16位的源埠號 傳送源的埠號 16位的目標埠號 目標的埠號 32位的序號 互動的初始資料段,序號值由系統生成的隨機值 isn。後續的報文段的序號為isn 所攜帶資料在整個位元組流中的偏移量。特點 1 所有的報文段序號不重複。2 後續的報文段序號值比前面的大。32位的確認號 由接收段填充,其值為序列號...
TCP協議詳解
參考部落格 在可靠的tcp網路通訊中,客戶端和伺服器端通訊建立連線的過程可簡單表述為三次握手 建立連線的階段 和四次揮手 釋放連線階段 下圖是這兩個階段的乙個完整的表述 其狀態圖可以表示為,在tcp連線建立的時候,存在乙個如下的有限狀態機 在狀態轉化圖中,其中客戶端的狀態轉移用帶箭頭的粗實線表示,伺...
TCP協議詳解
首先tcp是一種可靠的面向位元組流的協議,流指的是流入到程序或從程序流出的位元組序列。tcp的可靠性主要是由其首部的複雜結構結合可靠性傳輸原理 比如停止等待協議 arq 協議實現,可以說,tcp的首部是tcp能可靠傳輸的必要保障,了解tcp的首部很有必要 1.tcp首部 2.可靠傳輸基本原理 停止等...