用最簡單的例子幫助理解TCP的三次握手和四次揮手

用最簡單的例子幫助理解TCP的三次握手和四次揮手

  • 本文並非講解tcp三次握手的實現過程,而是想通過最簡單的例子理解tcp這樣設計的原理
  • 爲何TCP需要三次握手而不是兩次一次握手,爲何需要四次揮手,想必大家心裏都有這些疑惑,這裏我就以個人的見解對此作下說明

三次握手

  • 首先,讓我們對比一下兩個場景

  • 場景一

  • a問b,你喫飯了嗎

  • b答,我吃了

  • 場景二

  • a問b,你喫飯了嗎

  • b答,我吃了,你呢

  • a答,我也吃了

  • 以上場景一其實就是兩次握手,這兩次握手後只有a確定a發給b的消息b能正常收到,但此時b完全不知道自己發給a的信息a能否收到

  • 而場景二其實就是三次握手,前兩次握手a是確定了b能收到,但b卻不知道a是否能收到b發的信息,但如果b也向a提問了,同時能收到a的正確回答,此時b才能確定a也能正常收到b發送的信息,這樣第三次握手後雙方就都確定了他們之間能彼此順暢地溝通

  • 不知道我舉這樣的例子,你是否對三次握手有了更好的理解,因爲兩次握手只有一方確定,而三次握手雙方都能確定,因此TCP三次握手就夠了,多了也沒什麼太多的意義

四次揮手

  • 建立連接需要三次握手,想必大家都弄明白了,但爲何斷開連接要四次呢
  • 還是照例,看一下以下場景
  • 場景一
  • a對b說,我數據都傳完了,我要斷開連接
  • b對a說,我知道了,你斷開吧
  • a對b說,我斷開了
  • 場景二
  • a對b說,我數據都傳完了,以後不會對你傳數據了,我們斷開連接吧
  • b回答,我知道了,你先別斷開,等我把要傳給你的數據傳完了你再斷開
  • 一會兒後,b對a說,我傳完了
  • a對b說,我知道了,然後大家就斷開連接了
  • 想必看完場景二你就知道爲何要四次揮手了吧,一方要斷開連接時另一方可能還在傳數據,此時最後還是等它傳完了再斷開比較好
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章