日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

一文搞懂TCP的三次握手和四次挥手

發(fā)布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一文搞懂TCP的三次握手和四次挥手 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

1、三次握手

2、四次揮手

3、11種狀態(tài)名詞解析


TCP的三次握手和四次揮手實質(zhì)就是TCP通信的連接和斷開。

三次握手:為了對每次發(fā)送的數(shù)據(jù)量進行跟蹤與協(xié)商,確保數(shù)據(jù)段的發(fā)送和接收同步,根據(jù)所接收到的數(shù)據(jù)量而確認數(shù)據(jù)發(fā)送、接收完畢后何時撤消聯(lián)系,并建立虛連接。

四次揮手:即終止TCP連接,就是指斷開一個TCP連接時,需要客戶端和服務(wù)端總共發(fā)送4個包以確認連接的斷開。

TCP三次握手、四次揮手時序圖

1、三次握手

TCP協(xié)議位于傳輸層,作用是提供可靠的字節(jié)流服務(wù),為了準(zhǔn)確無誤地將數(shù)據(jù)送達目的地,TCP協(xié)議采納三次握手策略。

三次握手???????原理:

第1次握手:客戶端發(fā)送一個帶有SYN(synchronize)標(biāo)志的數(shù)據(jù)包給服務(wù)端;

第2次握手:服務(wù)端接收成功后,回傳一個帶有SYN/ACK標(biāo)志的數(shù)據(jù)包傳遞確認信息,表示我收到了;

第3次握手:客戶端再回傳一個帶有ACK標(biāo)志的數(shù)據(jù)包,表示我知道了,握手結(jié)束。

其中:SYN標(biāo)志位數(shù)置1,表示建立TCP連接;ACK標(biāo)志表示驗證字段。

可通過以下趣味圖解理解三次握手:

三次握手過程詳細說明:

1、客戶端發(fā)送建立TCP連接的請求報文,其中報文中包含seq序列號,是由發(fā)送端隨機生成的,并且將報文中的SYN字段置為1,表示需要建立TCP連接。(SYN=1,seq=x,x為隨機生成數(shù)值);

2、服務(wù)端回復(fù)客戶端發(fā)送的TCP連接請求報文,其中包含seq序列號,是由回復(fù)端隨機生成的,并且將SYN置為1,而且會產(chǎn)生ACK字段,ACK字段數(shù)值是在客戶端發(fā)送過來的序列號seq的基礎(chǔ)上加1進行回復(fù),以便客戶端收到信息時,知曉自己的TCP建立請求已得到驗證。(SYN=1,ACK=x+1,seq=y,y為隨機生成數(shù)值)這里的ack加1可以理解為是確認和誰建立連接;

3、客戶端收到服務(wù)端發(fā)送的TCP建立驗證請求后,會使自己的序列號加1表示,并且再次回復(fù)ACK驗證請求,在服務(wù)端發(fā)過來的seq上加1進行回復(fù)。(SYN=1,ACK=y+1,seq=x+1)。

2、四次揮手

由于TCP連接是全雙工的,因此每個方向都必須單獨進行關(guān)閉。這原則是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就能發(fā)送一個FIN來終止這個方向的連接。收到一個 FIN只意味著這一方向上沒有數(shù)據(jù)流動,一個TCP連接在收到一個FIN后仍能發(fā)送數(shù)據(jù)。首先進行關(guān)閉的一方將執(zhí)行主動關(guān)閉,而另一方執(zhí)行被動關(guān)閉。

四次揮手???????原理:

第1次揮手:客戶端發(fā)送一個FIN,用來關(guān)閉客戶端到服務(wù)端的數(shù)據(jù)傳送,客戶端進入FIN_WAIT_1狀態(tài);

第2次揮手:服務(wù)端收到FIN后,發(fā)送一個ACK給客戶端,確認序號為收到序號+1(與SYN相同,一個FIN占用一個序號),服務(wù)端進入CLOSE_WAIT狀態(tài);

第3次揮手:服務(wù)端發(fā)送一個FIN,用來關(guān)閉服務(wù)端到客戶端的數(shù)據(jù)傳送,服務(wù)端進入LAST_ACK狀態(tài);

第4次揮手:客戶端收到FIN后,客戶端t進入TIME_WAIT狀態(tài),接著發(fā)送一個ACK給Server,確認序號為收到序號+1,服務(wù)端進入CLOSED狀態(tài),完成四次揮手。

其中:FIN標(biāo)志位數(shù)置1,表示斷開TCP連接。

可通過以下趣味圖解理解四次揮手???????:

四次揮手???????過程詳細說明:

1、客戶端發(fā)送斷開TCP連接請求的報文,其中報文中包含seq序列號,是由發(fā)送端隨機生成的,并且還將報文中的FIN字段置為1,表示需要斷開TCP連接。(FIN=1,seq=x,x由客戶端隨機生成);

2、服務(wù)端會回復(fù)客戶端發(fā)送的TCP斷開請求報文,其包含seq序列號,是由回復(fù)端隨機生成的,而且會產(chǎn)生ACK字段,ACK字段數(shù)值是在客戶端發(fā)過來的seq序列號基礎(chǔ)上加1進行回復(fù),以便客戶端收到信息時,知曉自己的TCP斷開請求已經(jīng)得到驗證。(FIN=1,ACK=x+1,seq=y,y由服務(wù)端隨機生成);

3、服務(wù)端在回復(fù)完客戶端的TCP斷開請求后,不會馬上進行TCP連接的斷開,服務(wù)端會先確保斷開前,所有傳輸?shù)紸的數(shù)據(jù)是否已經(jīng)傳輸完畢,一旦確認傳輸數(shù)據(jù)完畢,就會將回復(fù)報文的FIN字段置1,并且產(chǎn)生隨機seq序列號。(FIN=1,ACK=x+1,seq=z,z由服務(wù)端隨機生成);

4、客戶端收到服務(wù)端的TCP斷開請求后,會回復(fù)服務(wù)端的斷開請求,包含隨機生成的seq字段和ACK字段,ACK字段會在服務(wù)端的TCP斷開請求的seq基礎(chǔ)上加1,從而完成服務(wù)端請求的驗證回復(fù)。(FIN=1,ACK=z+1,seq=h,h為客戶端隨機生成)
至此TCP斷開的4次揮手過程完畢。

3、11種狀態(tài)名詞解析???????

LISTEN:等待從任何遠端TCP 和端口的連接請求。SYN_SENT:發(fā)送完一個連接請求后等待一個匹配的連接請求。SYN_RECEIVED:發(fā)送連接請求并且接收到匹配的連接請求以后等待連接請求確認。ESTABLISHED:表示一個打開的連接,接收到的數(shù)據(jù)可以被投遞給用戶。連接的數(shù)據(jù)傳輸階段的正常狀態(tài)。FIN_WAIT_1:等待遠端TCP 的連接終止請求,或者等待之前發(fā)送的連接終止請求的確認。FIN_WAIT_2:等待遠端TCP 的連接終止請求。CLOSE_WAIT:等待本地用戶的連接終止請求。CLOSING:等待遠端TCP 的連接終止請求確認。LAST_ACK:等待先前發(fā)送給遠端TCP 的連接終止請求的確認(包括它字節(jié)的連接終止請求的確認)TIME_WAIT:等待足夠的時間過去以確保遠端TCP 接收到它的連接終止請求的確認。
TIME_WAIT 兩個存在的理由:1.可靠的實現(xiàn)tcp全雙工連接的終止;2.允許老的重復(fù)分節(jié)在網(wǎng)絡(luò)中消逝。CLOSED:不在連接狀態(tài)(這是為方便描述假想的狀態(tài),實際不存在)

參考鏈接:TCP三次握手和四次揮手以及11種狀態(tài)

總結(jié)

以上是生活随笔為你收集整理的一文搞懂TCP的三次握手和四次挥手的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。