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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TCP四次揮手過程分析

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2023-12-10 15:40 ? 次閱讀

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

四次揮手的過程如下:

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

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

為什么揮手需要四次?

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

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

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

為什么主動關閉方需要等待 2MSL 后才關閉連接

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

為什么主動關閉方需要 TIME_WAIT 狀態(tài)

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

確保被動關閉方能正常關閉。

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

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

    關注

    12

    文章

    9234

    瀏覽量

    85638
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1372

    瀏覽量

    79142
  • 端口
    +關注

    關注

    4

    文章

    978

    瀏覽量

    32103

原文標題:TCP 四次揮手過程分析

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何監(jiān)測TCP握手過程

    在計算機網(wǎng)絡中,傳輸控制協(xié)議(TCP)是確保數(shù)據(jù)可靠傳輸?shù)年P鍵協(xié)議之一。TCP通過三握手過程來建立兩個端點之間的連接,這個過程對于網(wǎng)絡通信
    的頭像 發(fā)表于 01-06 09:20 ?157次閱讀

    TCP握手的常見問題及解決方案

    TCP握手(Three-way Handshake)是TCP(傳輸控制協(xié)議)建立連接時的一個過程,它確保了兩個端點在開始通信之前都準備好了。這個
    的頭像 發(fā)表于 01-06 09:11 ?231次閱讀

    TCP握手的網(wǎng)絡抓包分析

    在計算機網(wǎng)絡中,TCP(傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。TCP通過三握手過程建立兩個通信實體之間的連接,確保數(shù)據(jù)傳輸?shù)目煽啃院晚樞蛐浴?
    的頭像 發(fā)表于 01-06 09:05 ?162次閱讀

    TCP握手安全性分析

    TCP(傳輸控制協(xié)議)的三握手是建立可靠連接的重要機制,它確保了通信雙方在數(shù)據(jù)傳輸前的連接狀態(tài)是可靠和準確的。然而,從安全性的角度來分析,TCP
    的頭像 發(fā)表于 01-03 18:10 ?446次閱讀

    TCP握手的基本原理

    ”的過程。這個過程不僅確保了雙方準備好進行數(shù)據(jù)傳輸,而且還避免了一些網(wǎng)絡攻擊,如重放攻擊。 什么是TCP握手? TCP
    的頭像 發(fā)表于 01-03 17:25 ?438次閱讀

    TCP握手協(xié)議的作用

    連接,確保數(shù)據(jù)傳輸?shù)目煽啃浴?TCP握手協(xié)議的基本概念 TCP握手協(xié)議是一種用于在兩個網(wǎng)絡實體之間建立連接的過程。這個
    的頭像 發(fā)表于 01-03 17:15 ?308次閱讀

    TCP握手的詳細過程

    TCP(傳輸控制協(xié)議)三握手是一種在互聯(lián)網(wǎng)上建立一個可靠的、有序的和錯誤檢測能力的連接的方法。這個過程確保了兩個設備(通常是客戶端和服務器)在數(shù)據(jù)傳輸開始之前能夠相互確認對方的存在和狀態(tài)。以下
    的頭像 發(fā)表于 01-03 17:11 ?327次閱讀

    DHCP 四次握手

    DHCP的四次握手過程大白話大致如下: 客戶端:剛開機,還沒有IP地址,哪位佬能給個IP? 這個過程中,客戶端就是一個網(wǎng)絡小白,它也不知道自己IP是多少,就開始喊話,問有沒有DHCP服務器能給它分配
    的頭像 發(fā)表于 12-25 10:11 ?138次閱讀

    中微公司第四次榮膺2024福布斯中國創(chuàng)新力企業(yè)50強

    熱烈祝賀中微公司第四次榮登福布斯中國創(chuàng)新力企業(yè)50強榜單! 近日,中微半導體設備(上海)股份有限公司(簡稱“中微公司”,股票代碼:688012)第四次榮登福布斯中國創(chuàng)新力企業(yè)50強榜單。近3年來,此
    的頭像 發(fā)表于 11-15 09:51 ?446次閱讀

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

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

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

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

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

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

    說說TCP握手的過程?為什么是三而不是兩四次?

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

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

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

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

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