国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

說說TCP為什么需要三次握手和四次揮手?

這篇具有很好參考價值的文章主要介紹了說說TCP為什么需要三次握手和四次揮手?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

說說TCP為什么需要三次握手和四次揮手?

一、三次握手

三次握手(Three-way Handshake)其實就是指建立一個TCP連接時,需要客戶端和服務器總共發(fā)送3個包

主要作用就是為了確認雙方的接收能力和發(fā)送能力是否正常、指定自己的初始化序列號為后面的可靠性傳送做準備

過程如下:

  • 第一次握手:客戶端給服務端發(fā)一個 SYN 報文,并指明客戶端的初始化序列號 ISN(c),此時客戶端處于 SYN_SENT 狀態(tài)
  • 第二次握手:服務器收到客戶端的 SYN 報文之后,會以自己的 SYN 報文作為應答,為了確認客戶端的 SYN,將客戶端的 ISN+1作為ACK的值,此時服務器處于 SYN_RCVD 的狀態(tài)
  • 第三次握手:客戶端收到 SYN 報文之后,會發(fā)送一個 ACK 報文,值為服務器的ISN+1。此時客戶端處于 ESTABLISHED 狀態(tài)。服務器收到 ACK 報文之后,也處于 ESTABLISHED 狀態(tài),此時,雙方已建立起了連接

說說TCP為什么需要三次握手和四次揮手?

上述每一次握手的作用如下:

  • 第一次握手:客戶端發(fā)送網(wǎng)絡包,服務端收到了 這樣服務端就能得出結論:客戶端的發(fā)送能力、服務端的接收能力是正常的。
  • 第二次握手:服務端發(fā)包,客戶端收到了 這樣客戶端就能得出結論:服務端的接收、發(fā)送能力,客戶端的接收、發(fā)送能力是正常的。不過此時服務器并不能確認客戶端的接收能力是否正常
  • 第三次握手:客戶端發(fā)包,服務端收到了。 這樣服務端就能得出結論:客戶端的接收、發(fā)送能力正常,服務器自己的發(fā)送、接收能力也正常

通過三次握手,就能確定雙方的接收和發(fā)送能力是正常的。之后就可以正常通信了

為什么不是兩次握手?

如果是兩次握手,發(fā)送端可以確定自己發(fā)送的信息能對方能收到,也能確定對方發(fā)的包自己能收到,但接收端只能確定對方發(fā)的包自己能收到 無法確定自己發(fā)的包對方能收到

并且兩次握手的話, 客戶端有可能因為網(wǎng)絡阻塞等原因會發(fā)送多個請求報文,延時到達的請求又會與服務器建立連接,浪費掉許多服務器的資源

二、四次揮手

tcp終止一個連接,需要經(jīng)過四次揮手

過程如下:

  • 第一次揮手:客戶端發(fā)送一個 FIN 報文,報文中會指定一個序列號。此時客戶端處于 FIN_WAIT1 狀態(tài),停止發(fā)送數(shù)據(jù),等待服務端的確認
  • 第二次揮手:服務端收到 FIN 之后,會發(fā)送 ACK 報文,且把客戶端的序列號值 +1 作為 ACK 報文的序列號值,表明已經(jīng)收到客戶端的報文了,此時服務端處于 CLOSE_WAIT狀態(tài)
  • 第三次揮手:如果服務端也想斷開連接了,和客戶端的第一次揮手一樣,發(fā)給 FIN 報文,且指定一個序列號。此時服務端處于?LAST_ACK?的狀態(tài)
  • 第四次揮手:客戶端收到 FIN 之后,一樣發(fā)送一個 ACK 報文作為應答,且把服務端的序列號值 +1 作為自己 ACK 報文的序列號值,此時客戶端處于 TIME_WAIT狀態(tài)。需要過一陣子以確保服務端收到自己的 ACK 報文之后才會進入 CLOSED 狀態(tài),服務端收到 ACK 報文之后,就處于關閉連接了,處于 CLOSED 狀態(tài)

說說TCP為什么需要三次握手和四次揮手?

四次揮手原因

服務端在收到客戶端斷開連接Fin報文后,并不會立即關閉連接,而是先發(fā)送一個ACK包先告訴客戶端收到關閉連接的請求,只有當服務器的所有報文發(fā)送完畢之后,才發(fā)送FIN報文斷開連接,因此需要四次揮手

三、總結

一個完整的三次握手四次揮手如下圖所示:

說說TCP為什么需要三次握手和四次揮手?

參考文獻

  • https://zhuanlan.zhihu.com/p/53374516
  • https://segmentfault.com/a/1190000020610336

如果對您有所幫助,歡迎您點個關注,我會定時更新技術文檔,大家一起討論學習,一起進步。

?說說TCP為什么需要三次握手和四次揮手?文章來源地址http://www.zghlxwxcb.cn/news/detail-844258.html

到了這里,關于說說TCP為什么需要三次握手和四次揮手?的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 為什么是三次握手和四次揮手

    為什么是三次握手和四次揮手

    因為這是雙方都有收發(fā)的最小次數(shù) 握手的目的:確認網(wǎng)絡好著沒,對方好著沒 確認雙方主機是否健康(雙方) 驗證雙方是否具有全雙工。 比如發(fā)送數(shù)據(jù)不是為了對方接受,而是為了證明自己能夠發(fā)送數(shù)據(jù)。 一次握手,服務端知道自己能收; 兩次握手,客戶端知道自己能夠

    2024年02月02日
    瀏覽(30)
  • TCP為什么三次握手?

    TCP為什么三次握手?

    參考:公眾號 小林coding 常見回答:三次握手保證雙方都具有接受和發(fā)送數(shù)據(jù)的能力。 主要原因: 1. 防止重復歷史連接的初始化 2.同步雙方初始序列號 3.避免資源的浪費 序列號seq標記已發(fā)送數(shù)據(jù)的位置,確認號ack表示數(shù)據(jù)已接受,期望下一次數(shù)據(jù)序列號seq = ack 當因為網(wǎng)絡擁

    2023年04月27日
    瀏覽(25)
  • tcp 為什么要三次握手,兩次不行嗎?為什么?

    TCP使用三次握手(Three-Way Handshake)的過程是為了確保雙方建立起可靠的通信連接,并在連接的建立過程中協(xié)商必要的參數(shù)。兩次握手是不夠的,原因主要有以下幾點: 防止已失效的連接請求被接受: 假設有A和B兩臺主機,A向B發(fā)送了一個連接請求,但由于某些原因導致連接建

    2024年02月20日
    瀏覽(35)
  • 白話理解TCP為什么一定要進行三次握手

    首先簡單介紹一下TCP三次握手 ??? 在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務,采用三次握手建立一個連接。 第一次握手:建立連接時,客戶端發(fā)送syn包(syn=j)到服務器,并進入SYN_SEND狀態(tài),等待服務器確認; 第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同

    2024年02月08日
    瀏覽(24)
  • TCP協(xié)議為什么要三次握手而不是兩次?

    TCP(Transmission Control Protocol,傳輸控制協(xié)議)的歷史可以追溯到1970年代初期,最初的版本是RFC 793,后來經(jīng)過多次更新和改進,包括RFC 1122、RFC 1323、RFC 2018、RFC 2581、RFC 2873、RFC 3168和RFC 4614等。其中,RFC 1323(TCP Extensions for High Performance)提出了TCP的高性能擴展,RFC 2018(TCP Se

    2024年02月06日
    瀏覽(24)
  • TCP為什么要三次握手,而不是兩次或四次?

    TCP為什么要三次握手,而不是兩次或四次?

    TCP連接時用于保證可靠性和流量控制維護的某些狀態(tài)信息,這些信息的組合,包括 Socket,序列號和窗口大小 稱為連接。 以上三個方面分析三次握手原因: 首要原因為了防止舊的重復連接初始化造成混亂 網(wǎng)絡堵塞情況下,如果一個舊的SYN報文比新的SYN報文早到達了服務端,

    2023年04月26日
    瀏覽(28)
  • (學習筆記-TCP連接建立)TCP 為什么是三次握手?不是兩次、四次?

    (學習筆記-TCP連接建立)TCP 為什么是三次握手?不是兩次、四次?

    常規(guī)回答:“因為三次握手才能保證雙方具有接收和發(fā)送的能力” 三次握手的 首要原因是為了防止舊的重復連接初始化造成混亂 。 假設:客戶端先發(fā)送了SYN(seq=90)報文,然后客戶端宕機了,而且這個SYN報文還被網(wǎng)絡阻塞了,服務端并沒有收到,接著客戶端重啟后,又重新向

    2024年02月17日
    瀏覽(23)
  • TCP為什么需要3次握手?

    一、3次握手過程 客戶端向服務端發(fā)送一個表示建立連接的SYN報文段,服務端從IP數(shù)據(jù)報中提取出TCP SYN報文段,為該TCP連接分配需要的緩存和變量,并向客戶端發(fā)送表示允許連接的報文段ACK。客戶端在收到ACK報文段之后,也要給該連接分配緩存和變量,客戶端向服務器再發(fā)送

    2024年04月26日
    瀏覽(17)
  • “為什么是三次握手”與“為什么是三次握手,卻是四次揮手”其實是不同的問題

    “為什么是三次握手?” 這個問題言下之意其實在問:“為什么不是0次、1次、2次、4次甚至更多次握手”。 確保雙方的 發(fā)送能力 和 接收能力 都是好的 。 該回答下的一評論:其實很簡單, 1.a-b, 這個時候沒有任何狀態(tài), 2. b-a, b給a發(fā)東西, 說明收到了a的東西, 證明了a的

    2024年02月10日
    瀏覽(21)
  • TCP 三次握手和四次揮手

    TCP 三次握手和四次揮手

    1 TCP 三次握手漫畫圖解 如下圖所示,下面的兩個機器人通過3次握手 確定了對方能正確接收和發(fā)送消息 (圖片來源網(wǎng)絡)。 簡單示意圖: 客戶端–發(fā)送帶有 SYN 標志的數(shù)據(jù)包–一次握手–服務端 服務端–發(fā)送帶有 SYN/ACK 標志的數(shù)據(jù)包–二次握手–客戶端 客戶端–發(fā)送帶有帶有

    2024年02月22日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包