TCP建立連線與拆除連線過程詳解

2022-09-06 15:36:09 字數 1541 閱讀 8455

tcp的六個控制位分別是:

urg:報文段緊急。

ack:確認號有效。

psh:建議計算機立即將資料交給應用程式。

rst:連線復位。作用:快速關閉連線,無確認。

syn:程序同步。在握手完成後syn為1,表示tcp建立已連線。此後的所有報文段中,syn都被置0。

fin:源主機不再有待傳送的資料。如果源主機資料傳送完畢,將把該連線下要傳送的最後乙個報文段的報頭中的fin位置1,或將該報文段後面傳送的報頭中該位置1。

tcp連線的建立

tcp的連線是乙個全雙工的連線,要在兩個方向上建立連線。該方法要求對所有的報文進行編號(32位),建立連線前,伺服器端首先被動開啟其熟悉的埠,對埠進行偵聽,當客戶端要和伺服器建立連線時,發起乙個主動開啟埠的請求(一般為臨時埠),然後進入三次握手的過程:

第一次握手:客戶向伺服器發出連線請求,該段首部的同步標誌syn被置為1,並在首部中填入本次連線的客戶端的初始端序號seq,(如seq=26500)。客戶端進入syn_send狀態,等待伺服器確認

第二次握手:伺服器受到請求後,發回連線確認(syn+ack),該段首部中的同步標識syn被置為1,表示認可連線,ack被置1,表示對所接收的段的確認,與ack相配合的是準備接收的下一序號(ack 26501),該段還給出了自己的初始序號(例如,seq=29010)。對請求段的確認完成了乙個方向上的連線。此時伺服器進入syn_recv狀態

第三次握手:客戶向伺服器發出的確認段,段首部中的確認標識ack被置1,表示對所接收到的段的確認,與ack相配合的準備接收的下乙個序號被設定為收到的段序號加1(ack 29011),對伺服器初始化序號的確認,完成了另乙個方向上的連線。客戶端和伺服器進入established狀態,完成三次握手,客戶端與伺服器開始傳送資料。

第二次握手時,客戶端收到伺服器的ack,client-server的連線已經建立。第三次握手時,伺服器收到客戶端的ack,server-client的連線建立起來。三次握手傳送的都是tcp報文的首部,沒有資料段。第三次握手的時候,如果有資料傳送可以加上資料段。三次握手過程中,不光建立連線,還進行了視窗比例的協商,mss大小的協商等資訊交換。

tcp連線的拆除

當前連線的雙方都可以發起拆除連線操作,但簡單的拆除連線可能會造成資料丟失。為此,tcp採用四次握手的方式拆除連線。

四次握手與三次握手類似:

①1發拆除請求

②2收到請求,併發確認,1收到該確認後,不再傳送資料,但任然會接收資料(半連線)

③2發拆除請求

④1收到請求,並確認,到此拆除完成

連線拆除過程中,為何不把第二次握手和第三次握手和在一起,就像建立連線的工程那樣?這是因為當client端拆除連線時,它還可以接收資料,而server端可能還有資料向client傳送。這是連線建立與拆除過程中的乙個區別。

TCP建立連線和拆除連線的過程

2 tcp連線建立時三次握手的過程 圖示 文字說明 第一次握手 建立連線時,客戶端傳送syn包 seq x 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack j 1 同時自己也傳送乙個syn包 seq y 即syn ack包,此時伺服...

TCP連線過程

1 建立連線協議 三次握手 1 客戶端傳送乙個帶syn標誌的tcp報文到伺服器。這是三次握手過程中的報文1.2 伺服器端回應客戶端的,這是三次握手中的第2個報文,這個報文同時帶ack標誌和syn標誌。因此它表示對剛才客戶端syn報文的回應 同時又標誌syn給客戶端,詢問客戶端是否準備好進行資料通訊。...

https建立連線過程

既然要公升級為https協議,那就很有必要知道https的原理是什麼,https是怎麼保證資訊只有通訊雙方能解析而不被第三方截獲導致資訊被竊取 篡改。2.1 原理圖 下面是一張https建立連線的原理圖,下面會對每一步進行說明。https建立連線 2.2 https建立連線過程 2.2.1 客戶端訪...