TCP/IP協議

TCP/IP協議三次握手與四次握手流程解析

HTTP協議—— 簡單認識TCP/IP協議

TCP/IP協議入門(一)--阮一峰
互聯網協議入門(二)

ios socket 網絡編程(一)

TCP三次握手

05234233-eed6ddcba93c42be8847e98d6da62802.jpg
第一次握手:客戶端嘗試連接服務器,向服務器發送syn包(同步序列編號Synchronize Sequence Numbers),syn=j,客戶端進入SYN_SEND狀態等待服務器確認

第二次握手:服務器接收客戶端syn包并確認(ack=j+1),同時向客戶端發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態

第三次握手:第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手

TCP四次揮手

TCP的連接的拆除需要發送四個包,因此稱為四次揮手(four-way handshake)。客戶端或服務器均可主動發起揮手動作,在socket編程中,任何一方執行close()操作即可產生揮手操作。

723261-222fc57b7a0dbba5.png

其實有個問題,為什么連接的時候是三次握手,關閉的時候卻是四次揮手?

因為當Server端收到Client端的SYN連接請求報文后,可以直接發送SYN+ACK報文。其中ACK報文是用來應答的,SYN報文是用來同步的。但是關閉連接時,當Server端收到FIN報文時,很可能并不會立即關閉SOCKET,所以只能先回復一個ACK報文,告訴Client端,”你發的FIN報文我收到了”。只有等到我Server端所有的報文都發送完了,我才能發送FIN報文,因此不能一起發送。故需要四步握手。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,096評論 0 8
  • 1.這篇文章不是本人原創的,只是個人為了對這部分知識做一個整理和系統的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,137評論 6 174
  • TCP/IP協議 作者:xinyuans 本文為參考TCP/IP詳解卷一,某些知識點加上了作者自己的理解,如有錯誤...
    xinyuans閱讀 846評論 0 1
  • 同樣的,本文篇幅也比較長,先來一張思維導圖,帶大家過一遍。 一、 計算機網絡體系結構分層 二、 TCP/IP 基礎...
    滌生_Woo閱讀 65,273評論 38 1,037
  • 一個協議族,比如TCP / IP,是一組不同層次上的多個協議的組合。TCP / IP通常被認為是一個四層協議系統,...
    A_Coder閱讀 1,395評論 0 0