TCP傳輸控制協議

2021-07-16 23:01:44 字數 1022 閱讀 1940

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

tcp三次握手的過程如下:

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

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

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

未連線佇列

在三次握手協議中,伺服器維護乙個未連線佇列,該隊列為每個客戶端的syn包(syn=j)開設乙個條目,該條目表明伺服器已收到syn包,並向客戶發出確認,正在等待客戶的確認包。這些條目所標識的連線在伺服器處於syn_recv狀態,當伺服器收到客戶的確認包時,刪除該條目,伺服器進入established狀態。

syn-ack 重傳次數

伺服器傳送完syn-ack包,如果未收到客戶確認包,伺服器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該連線資訊從半連線佇列中刪除。注意,每次重傳等待的時間不一定相同。

半連線存活時間

是指半連線佇列的條目存活的最長時間,也即服務從收到syn包到確認這個報文無效的最長時間,該時間值是所有重傳請求包的最長等待時間總和。有時我們也稱半連線存活時間為timeout時間、syn_recv存活時間。

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

TCP 傳輸控制協議

推薦 tcp ip 簡直是程式設計師的福音 tcp 協議是 面向連線的,可靠的,流傳輸,協議。流 是指 不間斷 的資料結構,可以想象成排水管道中的水流。當應用程式採用 tcp 傳送訊息的時候,雖然可以保證傳送的順序,但是還是猶如沒有任何間隔的資料流,傳送給接收端。可以這麼理解 在傳送端,應用程式傳送...

tcp傳輸控制協議

tcp服務 tcp是面向連線的,提供可靠的服務,對資料有校驗機制。tcp的首部 其格式如下 如上tcp的報文是tcp的首部和tcp的資料。tcp的首部是有源埠和目的埠,這個值和ip首部的源ip和目的ip構成了tcp唯一確定的乙個連線。序號是用來標示從tcp發端向tcp收端傳送的資料位元組。當建立乙個...

TCP 傳輸控制協議

首先tcp和udp都是使用相同的網路層ip,tcp向應用層提供與udp完全不同的服務。tcp是面向連線的,可靠的位元組流服務。面向連線意味著兩個使用tcp的程式進行通訊時首先要進行三次握手連線 tcp的可靠性由他的 頭部和多種方式實現。兩個應用程式通過tcp連線交換8bit位元組 構成 的位元組流。...