成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

三次握手,四次揮手,原來TCP這么有禮貌!

網絡 通信技術
TCP是面向連接的協議,正如打電話時需要提前撥通電話,結束通話后需要掛斷電話,那么TCP是如何建立連接與斷開連接的呢?

我們在和他人談話時,需要遵循一定的規則,比如確保對方能聽懂我的語言。如果跟一個不懂中文的外國人說中文,是不可能很好地進行交流的。

計算機之間的通信也是如此,必須遵循一定的規則才能順利“交流”。

圖片

TCP與UDP是什么

在TCP/IP協議棧(互聯網協議系列)中,TCP(Transmission Control Protocol ,傳輸控制協議)與UDP(User Datagram Protocol ,用戶數據報協議)是傳輸層中的兩種協議,我們平時刷視頻、打游戲、看新聞等都要通過這兩種協議進行數據傳輸。

那么這兩種協議有什么區別呢?

看完上面的表格,是不是還是有點懵,下面小編用一個比喻來告訴你二者究竟有什么不同。

我們把兩個應用之間的通信當作是兩個人在通信,在不考慮時間因素的前提下,我們把TCP看成是打電話,把UDP看成是寫信。

兩個人打電話時,需要提前撥通對方的電話,這就是需要建立連接;通話過程中,雙方能及時確認消息,如果聽不清楚可以要求對方重新說一次,這就是安全可靠。

寫信只需要根據地址把信發出去,這就是不需要建立連接;發出去的信也不知道對方能否收到,這就是不可靠。

TCP為了保證傳輸文件的完整性,會根據接收方的接收速率控制發送方的發送速率,即實行流量控制,所以TCP的傳輸速度低于UDP。

這兩種協議不存在哪個好哪個差,都有著各自適合的應用場景。

比如傳輸文件時對速度沒有要求,但是必須保證文件完整送達,沒有數據丟失,這時就應該采用TCP協議,而我們在視頻聊天時,時效性要求高而準確性要求略低,這時就采用UDP協議。

圖片

TCP是面向連接的協議,正如打電話時需要提前撥通電話,結束通話后需要掛斷電話,那么TCP是如何建立連接與斷開連接的呢?

計算機之間的通信也是如此,必須遵循一定的規則才能順利“交流”。

TCP的三次握手

在傳輸數據前,兩臺主機需要通過三次會話建立連接,這個過程我們稱為三次握手。

第一次握手:客戶端向服務端請求建立連接,

  • SYN=1(建立連接),
  • seq=x(序列號),

客戶端進入SYN_SENT狀態。

第二次握手:服務端向客戶端返回確認并請求建立連接,

  • SYN=1(建立連接),
  • ACK=1 (已收到),
  • ack=x+1(確認號為收到的序列號加一),
  • seq=y(序列號),

服務端進入SYN_RCVD狀態。

第三次握手:客戶端向服務端發送確認報文,

  • ACK=1 (已收到),
  • ack=y+1(確認號為收到的序列號加一),
  • seq=x+1(序列號),

三次握手完成以后,2個主機之間,就可以傳輸數據啦~

圖片

TCP的四次揮手

當數據傳輸完成后,兩臺主機需要通過四次會話斷開連接,這個過程我們稱為四次揮手。

  • 第一次揮手:客戶端向服務端請求斷開連接,FIN=1(斷開連接),seq=u(序列號),客戶端進入FIN_WAIT_1狀態。
  • 第二次揮手:服務端向客戶端返回確認報文,ACK=1 (已收到),ack=u+1(確認號為收到的序列號加一),seq=v(序列號),服務端進入CLOSE_WAIT狀態,客戶端進入FIN_WAIT_2狀態。
  • 第三次揮手:服務端完成數據傳輸后,向客戶端發送斷開連接請求,FIN=1(斷開連接),ACK=1 (已收到),ack=u+1(確認號為收到的序列號加一),seq=w(序列號),服務端進入LAST_ACK狀態。
  • 第四次揮手:客戶端向服務端返回確認報文,ACK=1 (已收到),ack=w+1(確認號為收到的序列號加一),seq=u+1(序列號),客戶端進入TIME_WAIT狀態,服務端進入CLOSED狀態。客戶端處于TIME_WAIT狀態時,TCP連接還未釋放掉,等待2個MSL(Maximum Segment Lifetime,最大段生命周期)的時長后,客戶端進入CLOSE狀態。

圖片

看到這里,相信大家還有些疑問,下面就由小編來一一解答。

為什么是三次握手,兩次握手或者四次握手不可以嗎?

如果是兩次握手,就可能出現下面這種情況。

客戶端發送建立連接請求,由于網絡擁塞,遲遲沒有得到回應。客戶端再次發送連接請求,服務端回應,連接建立。

一段時間后,客戶端第一次發送的連接請求到達服務端,服務端以為客戶端重新請求建立連接(其實并沒有),此時服務端會返回響應報文并一直處于待連接狀態,這就造成了資源浪費,如下圖所示。

那為什么不是四次握手呢?

四次握手也能達到三次握手的效果,也就是將原本的第二次握手拆分成兩次,一次發送確認報文,一次分開發送請求建立連接報文,但這同樣造成了資源浪費,如下圖所示。所以最終確定通過三次握手建立連接。

圖片

為什么是四次揮手,三次揮手不可以嗎?

不可以。當客戶端發送斷開連接請求后停止發送數據(客戶端還能接收數據),有可能此時服務端還有數據需要發給客戶端,所以它先回一個確認報文,等發送完所有數據,再發送斷開連接的報文,通知客戶端可以斷開連接了。

四次揮手結束后,為什么客戶端沒有立刻關閉呢?

客戶端沒有立刻關閉,而是進入TIME_WAIT狀態,等待2個MSL的時長后,客戶端才進入CLOSE狀態,這是為了確保第四次揮手的確認消息到達服務端。

如果服務端在規定時間內未收到最后的確認消息,會重新進行第三次揮手請求斷開連接,客戶端重新發送確認消息,如下圖所示。

圖片

MSL是報文的最長生存時間,2個MSL是在網絡中來回兩個報文所需要的最長時間,如果超過這個時間,客戶端沒有重新收到斷開連接的請求,說明四次揮手順利完成,可以斷開連接了。

總結

今天的內容就到這里了,和小編一起復習一下今天的內容吧:

  • TCP和UDP是傳輸層中的兩種協議,TCP安全可靠但傳輸速度慢,UDP傳速度快但可能丟失數據,這兩種協議各有優勢,適合不同的應用場景。
  • 兩臺主機建立連接和斷開連接的過程被稱為“三次握手”和“四次揮手”。
  • 了解了為什么一定是三次握手和四次揮手。?
責任編輯:趙寧寧 來源: 中興文檔
相關推薦

2023-10-24 15:22:09

TCPUDP

2024-01-12 08:23:11

TCPACK服務器

2015-10-13 09:42:52

TCP網絡協議

2019-06-12 11:26:37

TCP三次握手四次揮手

2019-02-01 09:38:16

2021-01-29 06:11:08

TCP通信三次握手

2021-05-18 12:27:40

TCP控制協議

2021-07-03 17:47:25

TCP控制協議

2017-09-25 21:27:07

TCP協議數據鏈

2020-02-17 10:10:43

TCP三次握手四次揮手

2015-11-09 09:58:56

2023-10-28 09:07:57

TCP面試三次握手

2021-05-28 09:08:20

TCP連接序列號

2020-06-29 14:50:47

TCP狀態ACK

2025-05-20 08:38:03

2014-09-19 09:46:46

TCPIP

2022-08-28 20:35:52

三次握手四次揮手TCP

2023-10-17 15:44:19

TCP四次揮手

2023-11-01 08:04:08

WiresharkTCP協議

2023-03-07 08:38:23

三次握手四次揮手服務端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本久久www成人免 成人久久久久 | 成人精品一区二区三区中文字幕 | 亚洲精品久久久一区二区三区 | av网址在线播放 | 亚洲黄色网址视频 | 欧美一区二区另类 | 欧美国产日韩在线观看 | 91中文字幕在线观看 | 欧美国产亚洲一区二区 | 黑人巨大精品欧美黑白配亚洲 | 爱爱视频网 | 国产精品高清一区二区 | 天天操天天舔 | 精品国产乱码久久久久久影片 | 人人操日日干 | 亚洲欧美日韩在线 | 草久视频| 欧美色图另类 | 一级毛片网| 久久青 | 久久国产精品视频观看 | 成人影院在线视频 | 天天射中文 | 亚洲精品国产电影 | 成人三级在线播放 | 天天躁日日躁狠狠躁白人 | 久久久久免费精品国产小说色大师 | 神马久久久久久久久久 | 久久精品一级 | 久久久久久久电影 | www.狠狠操| 国产农村妇女精品一二区 | 国产精品一二三区 | 在线中文字幕av | 四虎影院在线观看av | 在线成人 | 女同av亚洲女人天堂 | 亚洲福利 | 亚洲视频网 | 久久一二区 | 九九视频网 |