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

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

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

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

星星科技指導員 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2024-02-03 16:51 ? 次閱讀

TCP協(xié)議的四次揮手過程如下:

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

第二次揮手:服務(wù)器收到FIN報文段后,發(fā)送一個ACK報文段給客戶端,確認序號為收到序號+1,服務(wù)器進入CLOSE_WAIT狀態(tài)。

第三次揮手:服務(wù)器發(fā)送一個FIN報文段給客戶端,關(guān)閉服務(wù)器到客戶端的數(shù)據(jù)傳送,服務(wù)器進入LAST_ACK狀態(tài)。

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

其中,第二次揮手和第三次揮手都是為了確認雙方都已經(jīng)完成數(shù)據(jù)的發(fā)送和接收。在第二次揮手后,客戶端可以繼續(xù)向服務(wù)器發(fā)送數(shù)據(jù),直到收到服務(wù)器的FIN報文段。同樣地,在第三次揮手后,服務(wù)器也可以繼續(xù)向客戶端發(fā)送數(shù)據(jù),直到收到客戶端的ACK報文段。

連接釋放(四次揮手)

①A,B都處于ESTABLISHED狀態(tài); ?

②客戶進程A主動關(guān)閉連接,向B發(fā)送連接釋放請求報文段(報文段不挾帶數(shù)據(jù)),F(xiàn)IN=1,序列號=u,進入FIN-WAIT-1(終止等待1)狀態(tài); ?

③B收到A的連接釋放報文段后,應(yīng)答確認,ACK=1,確認號=u+1,序號=v,進入CLOSE-WAIT (關(guān)閉等待)狀態(tài),B仍然可以向A發(fā)送數(shù)據(jù),A進入FIN-WAIT-2(終止等待2)狀態(tài); ?

④若B已經(jīng)沒有向A的數(shù)據(jù),其應(yīng)用進程通知TCP連接釋放,B向A發(fā)送連接釋放報文段,F(xiàn)IN=1,ACK=1,確認號=u+1,序號=w,進入LAST-ACK(最后確認)狀態(tài);

? ⑤A收到B的鏈接釋放報文段后,應(yīng)答確認,ACK=1,確認號=w+1,序號=u+1,進入TIME-TIME-WAIT(時間等待)狀態(tài),B收到A的確認后,進入CLOSED狀態(tài)。

A必須經(jīng)過時間等待計時器設(shè)置的時間2MSL(默認2分鐘)后,進入CLOSED狀態(tài):確保A發(fā)送的最后一個ACK報文段能夠到達B;防止“已失效的連接請求報文段”出現(xiàn)在本連接中。

tcp協(xié)議為什么四次揮手

TCP協(xié)議的四次揮手是用于關(guān)閉連接的過程,與建立連接的三次握手不同。其原因可以總結(jié)為以下幾點:

1. 全雙工通信:TCP連接是全雙工的,意味著雙方都可以同時發(fā)送和接收數(shù)據(jù)。因此,在關(guān)閉連接時,客戶端和服務(wù)端都需要發(fā)送一個報文來表示自己沒有數(shù)據(jù)要發(fā)送了。

2. 確保數(shù)據(jù)完整性:TCP協(xié)議致力于可靠的數(shù)據(jù)傳輸,即使在連接關(guān)閉時也不例外。在關(guān)閉連接之前,雙方需要確保對方已經(jīng)接收到了所有的數(shù)據(jù),以避免數(shù)據(jù)丟失或不完整。

3. 等待延遲數(shù)據(jù):關(guān)閉連接時可能存在延遲的數(shù)據(jù),這些數(shù)據(jù)可能還在傳輸中。通過四次揮手,每一方可以告知對方自己已經(jīng)沒有數(shù)據(jù)要發(fā)送,同時等待對方的確認,以確保關(guān)閉連接之前已經(jīng)傳輸完所有的數(shù)據(jù)。

4. 保持連接的可靠性:在TCP連接關(guān)閉后,可能還會繼續(xù)有來自網(wǎng)絡(luò)中的延遲報文到達。發(fā)送方需要等待一個固定的時間,以確保自己收到了對方的確認,并且確認對方已經(jīng)關(guān)閉了連接。

因此,四次揮手的過程主要是為了確保雙方都能夠正確地關(guān)閉連接,保證數(shù)據(jù)的完整性和可靠性。通過經(jīng)過四次揮手,連接才能真正地關(guān)閉,并釋放雙方所占用的資源。

審核編輯:黃飛

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

    關(guān)注

    9

    文章

    1698

    瀏覽量

    64218
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8701

    瀏覽量

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

    關(guān)注

    8

    文章

    1324

    瀏覽量

    78759
  • 客戶端
    +關(guān)注

    關(guān)注

    1

    文章

    287

    瀏覽量

    16604
  • TCP協(xié)議
    +關(guān)注

    關(guān)注

    1

    文章

    89

    瀏覽量

    12048
收藏 人收藏

    評論

    相關(guān)推薦

    講一講的TCP握手和四次揮手

    如果你學過網(wǎng)絡(luò)基礎(chǔ)知識,那么你一定對TCP握手不陌生。今天我想用通俗的話來給大家講一講TCP握手和四次
    的頭像 發(fā)表于 02-03 10:43 ?2583次閱讀
    講一講的<b class='flag-5'>TCP</b>三<b class='flag-5'>次</b>握手和<b class='flag-5'>四次</b><b class='flag-5'>揮手</b>

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

    TCP/IP協(xié)議經(jīng)常在面試中會被問到,基礎(chǔ)的會問三握手和四次揮手,更深一點可能會問TCP如何優(yōu)
    的頭像 發(fā)表于 10-08 15:15 ?1224次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>如何優(yōu)化

    TCP協(xié)議詳細解析

    TCPTCP/IP協(xié)議族中一個最核心的協(xié)議,它向下使用網(wǎng)絡(luò)層IP協(xié)議,向上為應(yīng)用層HTTP、FTP、SMTP、POP3、SSH、Telne
    的頭像 發(fā)表于 11-03 09:14 ?3587次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>詳細解析

    這樣講TCP的戀愛和分手大家都懂了

    /IP協(xié)議握手與四次握手流程解析? TCP報文格式TCP/IP協(xié)議的詳細信息參看《
    發(fā)表于 07-25 14:47

    分享個講解TCP的,很好懂

    的close函數(shù)結(jié)束這段socket(騷)戀情,所以兩close分別觸發(fā)了兩FIN包,導致沒有和ACK合并為一個包,所以握手3,分手要4。下面來正經(jīng)的,
    發(fā)表于 07-25 20:04

    握手,四次揮手你懂嗎

    程序員面試被問到“三握手,四次揮手”怎么辦?
    發(fā)表于 04-08 07:23

    TCP握手過程四次揮手過程說明

    連接 三握手過程說明: 1. 由客戶端發(fā)送建立 TCP 連接的請求報文,其中報文中包含 seq 序列號,是由發(fā)送端隨機生成的,并且將報文中的 SYN 字段置為 1,表示需要建立 TCP
    的頭像 發(fā)表于 03-01 12:00 ?4093次閱讀

    TCP握手和四次揮手以及11種狀態(tài)資料下載

    電子發(fā)燒友網(wǎng)為你提供TCP握手和四次揮手以及11種狀態(tài)資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計、用戶指南、解決方案等資料,希望可
    發(fā)表于 04-15 08:41 ?2次下載
    <b class='flag-5'>TCP</b>三<b class='flag-5'>次</b>握手和<b class='flag-5'>四次</b><b class='flag-5'>揮手</b>以及11種狀態(tài)資料下載

    TCP協(xié)議的簡介和關(guān)鍵知識點

    本篇文章較長,大家先看下目錄 1、簡介 2、TCP協(xié)議頭 3、TCP數(shù)據(jù)包的編號(SEQ) 4、三握手建立連接 5、四次
    的頭像 發(fā)表于 08-18 09:55 ?5153次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>的簡介和關(guān)鍵知識點

    TCP握手和四次揮手過程中的異常情況

    TCP握手和四次揮手過程中,途中某一步的報文丟失了,會發(fā)生什么?
    的頭像 發(fā)表于 09-05 10:23 ?1135次閱讀

    TCP建立連接概述及三握手、四次揮手的流程

    具備上述個條件后A獲取B的信息是有要求的,根本上的要求是數(shù)據(jù)信道可靠,就是平時所說的可靠連接,那么如何保證連接的可靠性呢,TCP協(xié)議就是靠確認應(yīng)答機制、超時重傳機制等保證連接可靠性的,接下來就通過
    的頭像 發(fā)表于 03-23 15:57 ?965次閱讀
    <b class='flag-5'>TCP</b>建立連接概述及三<b class='flag-5'>次</b>握手、<b class='flag-5'>四次</b><b class='flag-5'>揮手</b>的流程

    TCP四次揮手過程與狀態(tài)

    這樣他們兩個之間就沒有什么關(guān)系。這樣一個過程同樣像極了TCP要斷開連接的過程。
    的頭像 發(fā)表于 07-10 16:25 ?669次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>四次</b><b class='flag-5'>揮手</b>的<b class='flag-5'>過程</b>與狀態(tài)

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

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

    TCP四次揮手過程分析

    TCP 連接是全雙工的,雙方可以同時發(fā)送和接收數(shù)據(jù)。第一客戶端發(fā)送 FIN 報文后只表示它不再發(fā)送數(shù)據(jù),但還是能接受數(shù)據(jù)。服務(wù)端接收到 FIN 報文,回一個 ACK 應(yīng)答報文,這次服務(wù)端可以還有數(shù)據(jù)需要處理和發(fā)送,等它處理完成
    的頭像 發(fā)表于 12-10 15:40 ?2686次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>四次</b><b class='flag-5'>揮手</b><b class='flag-5'>過程</b>分析

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

    而不是兩四次。 首先,我們需要了解TCP是一種面向連接的協(xié)議。在進行數(shù)據(jù)傳輸之前,發(fā)送端和接收端需要建立一個可靠的連接。
    的頭像 發(fā)表于 02-04 11:03 ?443次閱讀