TCP協議詳解

2021-10-10 02:59:22 字數 1706 閱讀 8376

傳輸控制協議(tcp,transmission control protocol)是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議。

tcp旨在適應支援多網路應用的分層協議層次結構。 連線到不同但互連的計算機通訊網路的主計算機中的成對程序之間依靠tcp提供可靠的通訊服務。tcp假設它可以從較低階別的協議獲得簡單的,可能不可靠的資料報服務。 原則上,tcp應該能夠在從硬線連線到分組交換或電路交換網路的各種通訊系統之上操作。

面向連線的端到端協議

tcp連線是點到點的

tcp連線提供的是全雙工服務

tcp連線採用的是客戶/伺服器模式

面向位元組流

tcp報文段的劃分

tcp提供可靠地交付服務(通過tcp連線傳輸的資料,能夠保證無差錯、不丟失、不重複並且按序的到達)

tcp資料是封裝在ip資料中

1.建立連線

三次握手

(我要和你建立鏈結,你真的要和我建立鏈結麼,我真的要和你建立鏈結,成功)

tcp是網際網路中的傳輸層協議,使用三次握手協議建立連線。當主動方發出syn連線請求後,等待對方回答syn+ack,並最終對對方的 syn 執行 ack 確認。這種建立連線的方法可以防止產生錯誤的連線,tcp使用的流量控制協議是可變大小的滑動視窗協議。

客戶端傳送syn(seq=x)報文給伺服器端,進入syn_send狀態。

伺服器端收到syn報文,回應乙個syn (seq=y)ack(ack=x+1)報文,進入syn_recv狀態。

客戶端收到伺服器端的syn報文,回應乙個ack(ack=y+1)報文,進入established狀態。

三次握手完成,tcp客戶端和伺服器端成功地建立連線,可以開始傳輸資料了。

2.終止連線

四次揮手

(我要和你斷開鏈結;好的,斷吧。

我也要和你斷開鏈結;好的,斷吧)

建立乙個連線需要三次握手,而終止乙個連線要經過四次握手,這是由tcp的半關閉(half-close)造成的

(1) 某個應用程序首先呼叫close,稱該端執行「主動關閉」(active close)。該端的tcp於是傳送乙個fin分節,表示資料傳送完畢。

(2) 接收到這個fin的對端執行 「被動關閉」(passive close),這個fin由tcp確認。

注意:fin的接收也作為乙個檔案結束符(end-of-file)傳遞給接收端應用程序,放在已排隊等候該應用程序接收的任何其他資料之後,因為,fin的接收意味著接收端應用程序在相應連線上再無額外資料可接收。

(3) 一段時間後,接收到這個檔案結束符的應用程序將呼叫close關閉它的套接字。這導致它的tcp也傳送乙個fin。

(4) 接收這個最終fin的原傳送端tcp(即執行主動關閉的那一端)確認這個fin。

既然每個方向都需要乙個fin和乙個ack,因此通常需要4個分節。

詳解TCP協議

16位的源埠號 傳送源的埠號 16位的目標埠號 目標的埠號 32位的序號 互動的初始資料段,序號值由系統生成的隨機值 isn。後續的報文段的序號為isn 所攜帶資料在整個位元組流中的偏移量。特點 1 所有的報文段序號不重複。2 後續的報文段序號值比前面的大。32位的確認號 由接收段填充,其值為序列號...

TCP協議詳解

參考部落格 在可靠的tcp網路通訊中,客戶端和伺服器端通訊建立連線的過程可簡單表述為三次握手 建立連線的階段 和四次揮手 釋放連線階段 下圖是這兩個階段的乙個完整的表述 其狀態圖可以表示為,在tcp連線建立的時候,存在乙個如下的有限狀態機 在狀態轉化圖中,其中客戶端的狀態轉移用帶箭頭的粗實線表示,伺...

TCP協議詳解

首先tcp是一種可靠的面向位元組流的協議,流指的是流入到程序或從程序流出的位元組序列。tcp的可靠性主要是由其首部的複雜結構結合可靠性傳輸原理 比如停止等待協議 arq 協議實現,可以說,tcp的首部是tcp能可靠傳輸的必要保障,了解tcp的首部很有必要 1.tcp首部 2.可靠傳輸基本原理 停止等...