環球動態:面試突擊:為什么 TCP 需要三次握手?
(相關資料圖)
TCP 三次握手是一道經典的面試題,它是指 TCP 在傳遞數據之前,需要進行 3 次交互才能正式建立起連接,并進行數據傳遞。TCP 之所以需要 3 次握手是因為 TCP 雙方都是全雙工的。所謂全雙工指的是,TCP 任何一端既是發送數據方,又是接收數據方,因此這就要求 TCP 通訊雙方既要保證自己的發送能力,又要保證自己的接收能力才行。這就好像打電話時,通訊雙方都要保證自己能話筒(傳遞聲音)和耳機(接收聲音)都是正常的才行,這樣才能進行有效的交流,通常打電話時,都是這樣開頭的:
我:喂,能聽到我說話嗎?對方:能聽到你說話,你能聽到我說話嗎?我:能聽到你說話,那我們就來聊正事吧。TCP 三次握手也是相同的道理,3 次握手證明的能力詳情如下:
TCP 三次握手流程TCP 三次握手流程如下:
客戶端發送 SYN 給服務器端,表示希望建立連接;服務器端接收到消息之后,回應一個 SYN 和 ACK(確認應答)給客戶端;客戶端收到服務器端的 SYN 報文之后,回應一個 ACK 報文。具體執行流程如下圖所示:
總結TCP 之所以需要 3 次握手,是因為 TCP 通訊雙方都是全雙工的,所以要經過 3 次交互才能確認雙方的發送能力和接收能力,并且 TCP 握手必須是 3 次,如果是 2 次握手,不能證明服務器端的發送能力和客戶端的接收能力;也不能是 4 次握手,因為 3 次已經能證明的事情,再交互握手 1 次完全沒有必要。
參考 & 鳴謝《碼出高效:Java開發手冊》
《Offer 來了》
X 關閉
X 關閉
- 1轉轉集團發布2022年二季度手機行情報告:二手市場“飄香”
- 2充電寶100Wh等于多少毫安?鐵路旅客禁止、限制攜帶和托運物品目錄
- 3好消息!京東與騰訊續簽三年戰略合作協議 加強技術創新與供應鏈服務
- 4名創優品擬通過香港IPO全球發售4100萬股 全球發售所得款項有什么用處?
- 5亞馬遜云科技成立量子網絡中心致力解決量子計算領域的挑戰
- 6京東綠色建材線上平臺上線 新增用戶70%來自下沉市場
- 7網紅淘品牌“七格格”chuu在北京又開一家店 潮人新寵chuu能紅多久
- 8市場競爭加劇,有車企因經營不善出現破產、退網、退市
- 9北京市市場監管局為企業紓困減負保護經濟韌性
- 10市場監管總局發布限制商品過度包裝標準和第1號修改單