tcp的4次揮手 三次握手

2022-06-08 07:03:12 字數 1938 閱讀 6730

1. tcp短連線

模擬一種tcp短連線的情況:

1. client 向 server 發起連線請求

2. server 接到請求,雙⽅建⽴連線

3. client 向 server 傳送訊息

4. server 回應 client

5. 一次讀寫完成,此時雙方任何乙個都可以發起 close 操作

在步驟5中,一般都是 client 先發起 close 操作。當然也不排除有特殊的情

況。從上⾯的描述看,短連線⼀般只會在 client/server 間傳遞⼀次讀寫操作!

2. tcp長連線

再模擬一種長連線的情況:

1. client 向 server 發起連線

2. server 接到請求,雙方建立連線

3. client 向 server 傳送訊息

4. server 回應 client

5. 一次讀寫完成,連線不關閉

6. 後續讀寫操作...

7. 長時間操作之後client發起關閉請求

3. tcp長/短連線操作過程

3.1 短連線的操作步驟是:

建立連線——資料傳輸——關閉連線...建立連線——資料傳輸——關閉連線

3.2 長連線的操作步驟是:

建立連線——資料傳輸...(保持連線)...資料傳輸——關閉連線

4. tcp長/短連線的優點和缺點

長連線可以省去較多的tcp建立和關閉的操作,減少浪費,節約時間。

對於頻繁請求資源的客戶來說,較適用長連線。

client與server之間的連線如果一直不關閉的話,會存在乙個問題,

隨著客戶端連線越來越多,server早晚有扛不住的時候,這時候server端

需要採取一些策略,

如關閉一些長時間沒有讀寫事件發生的連線,這樣可以避免一些惡意連

接導致server端服務受損;

如果條件再允許就可以以客戶端機器為顆粒度,限制每個客戶端的最大

長連線數,

這樣可以完全避免某個蛋疼的客戶端連累後端服務。

短連線對於伺服器來說管理較為簡單,存在的連線都是有⽤的連線,不

需要額外的控制手段。

但如果客戶請求頻繁,將在tcp的建立和關閉操作上浪費時間和頻寬

5. tcp長/短連線的應用場景

長連線多用於操作頻繁,點對點的通訊,而且連線數不能太多情況。

每個tcp連線都需要三次握手,這需要時間,如果每個操作都是先連

接,再操作的話那麼處理速度會降低很多,所以每個操作完後都不斷開,

再次處理時直接傳送資料報就ok了,不用建立tcp連線。

例如:資料庫的連線用長連線,如果用短連線頻繁的通訊會造成socket

錯誤,而且頻繁的socket 建立也是對資源的浪費。

而像web**的http服務一般都用短鏈結,因為長連線對於服務端來說

會耗費一定的資源,

而像web**這麼頻繁的成千上萬甚至上億客戶端的連線用短連線會更

省一些資源,

如果用長連線,而且同時有成千上萬的使用者,如果每個使用者都占用乙個

連線的話,

那可想而知吧。所以併發量大,但每個使用者無需頻繁操作情況下需用短

連好。

tcp的三次握手和4次揮手

第一次握手 host1傳送乙個tcp標誌位syn 1 ack 0的資料報給host2,並隨機會產生乙個sequence number 3233.當host2接收到這個資料後,host2由syn 1可知客戶端是想要建立連線 第二次握手 host2要對客戶端的聯機請求進行確認,向host1傳送應答號ac...

TCP協議的三次握手 4次揮手

tcp的連線建立是乙個三次握手過程,目的是為了通訊雙方確認開始序號,以便後續通訊的有序進行。主要步驟如下 連線開始時,連線建立方 client 傳送syn包,幷包含了自己的初始序號a 連線接受方 server 收到syn包以後會回覆乙個syn ack包,其中包含了對上乙個a包的回應資訊ack,回應的...

TCP連線的「三次握手」與「4次揮手」

三次握手 所謂的三次握手即tcp連線的建立。這個連線必須是一方主動開啟,另一方被動開啟的。以下為客戶端主動發起連線的 握手之前主動開啟連線的客戶端結束closed階段,被動開啟的伺服器端也結束closed階段,並進入listen階段。隨後開始 三次握手 1 首先客戶端向伺服器端傳送一段tcp報文,其...