TCP-握手和和揮手

TCP-建立和斷開連接

不太習慣握手揮手的說法。應該是<數據/請求SYN>和<確認ACK>的組合。
即:當收到數據時,需要返回確認信息,以判斷是否需要補發丟失的數據等操作。

  • 前提
/*
要實現服務器-用戶模式的服務,我們的服務主機至少運行着服務程序吧
這個服務程序一直等待着有用戶向它發起請求。

服務程序準備好應答客戶的請求,
對應着socket程序就是socket(),bind(),listen()
這些操作了。
*/

  • TCP建立連接<所謂3次握手>

    <第一次>1、發起者A向B發出建立連接的請求。
    這時A發送的是包含着初始序列號的同步分節 <SYN> 。

    <第二次>2、B收到A發來的<SYN>,首先要作收到請求的確認<ACK>,告訴A已經收到請求。
    事實上,B還需要告訴A它自己(B)的初始序列號,所以還得向A發送一個<SYN>

    <第三次>3、A收到B的確認<ACK>。還收到B的<SYN> , 向B返回一個確認<ACK>


  • TCP斷開連接<所謂4次揮手>

1、其中一方A發起斷開請求,<第一次>
2、B收到請求的一方返回收到請求的確認,<第二次>

  • a、B終止內部程序
  • b、B內部終止完成,向請求方發送斷開<第三次>

3、A收到B的斷開請求,返回確認<第四次>


  • 如上所述,所謂揮手和握手並不如一般想象成對出現,三次握手和四次揮手實際上都是服務器在建立連接和斷開連接時做出的
    <兩次請求和兩次確認>
    如上面描述的,建立連接時B的確認和請求同步發出,而斷開連接時B的確認率先返回給A,帶到內部相關程序終止後再向A發出斷開的請求。
    所以建立連接是“三次”,斷開連接是“四次”
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章