0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TCP四次揮手過(guò)程分析

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 2023-12-10 15:40 ? 次閱讀

TCP 四次揮手是為了關(guān)閉鏈接,TCP 連接是全雙工的,因此每個(gè)方向都必須單獨(dú)關(guān)閉,雙方都可以主動(dòng)關(guān)閉鏈接,首先發(fā)起關(guān)閉的一方執(zhí)行主動(dòng)關(guān)閉,而另一方執(zhí)行被動(dòng)關(guān)閉,關(guān)閉之后主機(jī)的資源將被釋放。

四次揮手的過(guò)程如下:

b252de2e-9685-11ee-8b88-92fbcf53809c.jpg

第一次揮手:客戶端發(fā)送一個(gè) FIN=1,sep=u 的報(bào)文告訴服務(wù)器它打算關(guān)閉連接,不再發(fā)送數(shù)據(jù),但可以接收數(shù)據(jù),報(bào)文發(fā)出之后客戶端將連接的狀態(tài)變?yōu)?FIN_WAIT_1第二次揮手:服務(wù)端接收到客戶端的 FIN 報(bào)文之后,返回一個(gè) ACK=1,sep=v,ACKnum=u+1 的應(yīng)答報(bào)文,接著服務(wù)端進(jìn)入 CLOSE_WAIT 狀態(tài)??蛻舳私邮盏椒?wù)端的 ACK 應(yīng)答報(bào)文后進(jìn)入 FIN_WAIT_2 狀態(tài)第三次揮手:服務(wù)器處理完數(shù)據(jù)之后,向客戶端發(fā)送 FIN 報(bào)文,表明它不再發(fā)送數(shù)據(jù),接著服務(wù)端進(jìn)入 LAST_ACK 狀態(tài)。第四次揮手:客戶端接收到 FIN 報(bào)文后,向服務(wù)端發(fā)送 ACK 應(yīng)答報(bào)文,接著客戶端進(jìn)入 TIME_WAIT 狀態(tài),等待 2MSL 一段時(shí)間后客戶端自動(dòng)進(jìn)入 CLOSED 狀態(tài),服務(wù)器收到 ACK 應(yīng)答報(bào)文后進(jìn)入 CLOSED 狀態(tài)。

為什么揮手需要四次?

TCP 連接是全雙工的,雙方可以同時(shí)發(fā)送和接收數(shù)據(jù)。第一次客戶端發(fā)送 FIN 報(bào)文后只表示它不再發(fā)送數(shù)據(jù),但還是能接受數(shù)據(jù)。服務(wù)端接收到 FIN 報(bào)文,回一個(gè) ACK 應(yīng)答報(bào)文,這次服務(wù)端可以還有數(shù)據(jù)需要處理和發(fā)送,等它處理完成,發(fā)送一個(gè) FIN 報(bào)文表示不再發(fā)送數(shù)據(jù),客戶端再回一個(gè) ACK 應(yīng)答報(bào)文。由于服務(wù)端處理數(shù)據(jù)需要時(shí)間,因此服務(wù)端的 ACK 和 FIN 報(bào)文是發(fā)送的,所以需要四次揮手。

TCP 四次揮手可以變成三次揮手嗎?

如果被動(dòng)關(guān)閉方?jīng)]有數(shù)據(jù)需要發(fā)送,并且開(kāi)啟了TCP 延遲確認(rèn)機(jī)制,那么第二次和第三次揮手就會(huì)合并傳輸,四次揮手變成三次揮手。

為什么主動(dòng)關(guān)閉方需要等待 2MSL 后才關(guān)閉連接

MSL 是報(bào)文的最大生存時(shí)間,它是任何報(bào)文在網(wǎng)絡(luò)上存在的最大時(shí)間,超過(guò)這個(gè)時(shí)間報(bào)文將丟失。如果第四次揮手的 ACK 報(bào)文丟失,被動(dòng)關(guān)閉方將重發(fā) FIN 報(bào)文,主動(dòng)關(guān)閉方的 TIME_WAIT 時(shí)間為 2MSL 表示允許第四次揮手的 ACK 報(bào)文丟失一次

為什么主動(dòng)關(guān)閉方需要 TIME_WAIT 狀態(tài)

防止歷史連接中的數(shù)據(jù)被后續(xù)相同四元組連接錯(cuò)誤的接收:TIME_WAIT 設(shè)置成 2MSL 可以保證兩個(gè)方向上發(fā)送的數(shù)據(jù)都能被丟失。

確保被動(dòng)關(guān)閉方能正常關(guān)閉。

四元組指的是:目的地址、目的端口、源地址和源端口。通過(guò)四元組可以唯一確定一個(gè)連接。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8701

    瀏覽量

    84568
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1324

    瀏覽量

    78759
  • 端口
    +關(guān)注

    關(guān)注

    4

    文章

    916

    瀏覽量

    31862

原文標(biāo)題:TCP 四次揮手過(guò)程分析

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深度解析TCP與UDP協(xié)議

    據(jù)傳輸之前,TCP要求雙方通過(guò)三握手過(guò)程建立穩(wěn)固的連接,確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。當(dāng)數(shù)據(jù)傳輸完畢,雙方需要通過(guò)四次揮手
    的頭像 發(fā)表于 09-02 14:53 ?181次閱讀
    深度解析<b class='flag-5'>TCP</b>與UDP協(xié)議

    簡(jiǎn)述TCP協(xié)議的三握手機(jī)制

    機(jī)制是建立一個(gè)可靠的連接的關(guān)鍵步驟。以下是對(duì)TCP協(xié)議三握手機(jī)制的介紹: 概述 TCP協(xié)議的三握手機(jī)制是一種用于在兩個(gè)通信實(shí)體之間建立連接的過(guò)程
    的頭像 發(fā)表于 08-16 10:57 ?250次閱讀

    四次工業(yè)革命已經(jīng)到來(lái)

    每一人類的工業(yè)革命都伴隨著新技術(shù)的誕生,蒸汽機(jī),發(fā)電機(jī),計(jì)算機(jī)。如果說(shuō)存在第四次工業(yè)革命,那么一定是A1革命。自O(shè)penAl發(fā)布以來(lái),AI的智能訓(xùn)練推動(dòng)了數(shù)據(jù)中心基礎(chǔ)設(shè)施建設(shè)的快速增長(zhǎng)。在IT設(shè)備
    的頭像 發(fā)表于 04-08 09:51 ?268次閱讀
    第<b class='flag-5'>四次</b>工業(yè)革命已經(jīng)到來(lái)

    通信必備知識(shí)!TCP與UDP協(xié)議介紹及使用

    TCP與UDP是兩個(gè)最常用的通訊協(xié)議。TCP是面向連接的協(xié)議,需要在收發(fā)數(shù)據(jù)前與對(duì)方建立可靠的連接,建立連接的過(guò)程為3握手,斷開(kāi)連接的過(guò)程
    的頭像 發(fā)表于 03-15 08:19 ?1546次閱讀
    通信必備知識(shí)!<b class='flag-5'>TCP</b>與UDP協(xié)議介紹及使用

    說(shuō)說(shuō)TCP握手的過(guò)程?為什么是三而不是兩、四次?

    說(shuō)說(shuō)TCP握手的過(guò)程?為什么是三而不是兩、四次? T
    的頭像 發(fā)表于 02-04 11:03 ?443次閱讀

    tcp協(xié)議四次揮手過(guò)程及原因

    TCP協(xié)議致力于可靠的數(shù)據(jù)傳輸,即使在連接關(guān)閉時(shí)也不例外。在關(guān)閉連接之前,雙方需要確保對(duì)方已經(jīng)接收到了所有的數(shù)據(jù),以避免數(shù)據(jù)丟失或不完整。
    的頭像 發(fā)表于 02-03 16:51 ?3729次閱讀
    <b class='flag-5'>tcp</b>協(xié)議<b class='flag-5'>四次</b><b class='flag-5'>揮手</b><b class='flag-5'>過(guò)程</b>及原因

    TCP和UDP協(xié)議有什么區(qū)別?如何通過(guò)網(wǎng)關(guān)實(shí)現(xiàn)TCP協(xié)議通信?

    四次握手就是指斷開(kāi)的過(guò)程。而UDP可以立即傳輸數(shù)據(jù),并不需要建立三握手連接。兩者相比,TCP就像是掛了專家號(hào),可以保證及時(shí)看??;而UDP就像是掛了普通門(mén)診,需要排隊(duì)才能看病。 另一方
    的頭像 發(fā)表于 01-24 11:07 ?464次閱讀
    <b class='flag-5'>TCP</b>和UDP協(xié)議有什么區(qū)別?如何通過(guò)網(wǎng)關(guān)實(shí)現(xiàn)<b class='flag-5'>TCP</b>協(xié)議通信?

    淺談TCP握手和四次揮手

    在計(jì)算機(jī)網(wǎng)絡(luò)的基本概念中,分層次的體系結(jié)構(gòu)是最基本的。計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)的抽象概念較多,在學(xué)習(xí)時(shí)要多思考。這些概念對(duì)后面的學(xué)習(xí)很有幫助。
    的頭像 發(fā)表于 01-03 13:40 ?645次閱讀
    淺談<b class='flag-5'>TCP</b>三<b class='flag-5'>次</b>握手和<b class='flag-5'>四次</b><b class='flag-5'>揮手</b>

    關(guān)于TCP協(xié)議總結(jié)的硬核干貨

    本文給出TCP報(bào)文格式的詳細(xì)說(shuō)明,介紹網(wǎng)絡(luò)數(shù)據(jù)包傳遞中如何進(jìn)行地址解析、建立TCP連接的三握手過(guò)程以及斷開(kāi)TCP連接的
    發(fā)表于 11-17 09:26 ?396次閱讀
    關(guān)于<b class='flag-5'>TCP</b>協(xié)議總結(jié)的硬核干貨

    TCP的長(zhǎng)連接和短連接

    是通過(guò)四次揮手。所以說(shuō),每個(gè)TCP連接的建立和釋放都是需要消耗資源和時(shí)間成本的。 二 TCP短連接 模擬一種TCP短連接的情況: clien
    的頭像 發(fā)表于 11-13 10:46 ?855次閱讀

    TIME_WAIT狀態(tài)的優(yōu)化思路

    為什么需要TIME_WAIT狀態(tài)?為什么TIME_WAIT的時(shí)長(zhǎng)是2*MSL? 原因1:防止連接關(guān)閉時(shí)四次揮手中的最后一ACK丟失: TCP需要保證每一包數(shù)據(jù)都可靠的到達(dá)對(duì)端,包括正
    的頭像 發(fā)表于 11-10 10:44 ?444次閱讀

    TCP通信過(guò)程詳解

    握手的,而釋放則需要4揮手,所以說(shuō)每個(gè)連接的建立都是需要資源消耗和時(shí)間消耗的 經(jīng)典的三握手示意圖: 經(jīng)典的四次揮手圖:
    的頭像 發(fā)表于 11-09 14:39 ?950次閱讀
    <b class='flag-5'>TCP</b>通信<b class='flag-5'>過(guò)程</b>詳解

    TCP協(xié)議詳細(xì)解析

    TCPTCP/IP協(xié)議族中一個(gè)最核心的協(xié)議,它向下使用網(wǎng)絡(luò)層IP協(xié)議,向上為應(yīng)用層HTTP、FTP、SMTP、POP3、SSH、Telnet等協(xié)議提供支持。本文給出TCP報(bào)文格式的詳細(xì)說(shuō)明,介紹網(wǎng)絡(luò)數(shù)據(jù)包傳遞中如何進(jìn)行地址解析
    的頭像 發(fā)表于 11-03 09:14 ?3587次閱讀
    <b class='flag-5'>TCP</b>協(xié)議詳細(xì)解析

    TCP連接的建立與中止

    常重要的 。 TCP 連接的建立可以簡(jiǎn)單地稱為三握手,而連接的中止則可以稱為四次揮手。 建立連接 TCP/IP 協(xié)議中,
    的頭像 發(fā)表于 10-08 16:52 ?631次閱讀

    TCP協(xié)議如何優(yōu)化

    TCP/IP協(xié)議經(jīng)常在面試中會(huì)被問(wèn)到,基礎(chǔ)的會(huì)問(wèn)三握手和四次揮手,更深一點(diǎn)可能會(huì)問(wèn)TCP如何優(yōu)化等問(wèn)題,下面我們來(lái)再詳細(xì)了解一下這些問(wèn)題。
    的頭像 發(fā)表于 10-08 15:15 ?1224次閱讀
    <b class='flag-5'>TCP</b>協(xié)議如何優(yōu)化