TCP爲什麼需要三次握手四次揮手

首先需要知道,TCP是雙向連接,即通信兩端能互相發送數據,而單向連接是隻能一端發一端收。

其次,每個TCP報文都需要一個應答消息,確認報文收到了。

所以,需要三次握手,原因如下:

A -----> B  :   

        請求建立連接(第一次握手,SYN=1)。

B----->A  :   

        應答上面的報文,這個時候,只是建立了A到B的單向連接,也就是隻能A發送,B接收(第二次握手,ACK=1)。

B----->A :

        請求建立連接,這次建立連接的方向和第一次是相反的(第三次握手,SYN=1)。

A------>B:

        應答上面的報文,到這裏TCP的雙向連接才建立完成(第四次握手,ACK=1)。

但是,第二次和第三次都是B向A發送報文,有必要分兩次發送嗎?於是將中間兩次合併到一起(SYN=1,ACK=1),就成了現在的三次握手。

四次揮手是一樣的,但是A請求斷開連接的時候,B可能還有數據要發送,所以B不能在這個時候也請求斷開連接,也就是中間兩次不能合併。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章