TCP狀態圖解

Tcp狀態機

1、爲什麼建立連接需要三次握手,斷開連接需要四次握手?

     舉例來說,C與S要可靠的溝通,溝通之前要又準備工作,溝通完了,要有清理工作。

     溝通之前的準備工作

    C:我要跟你說話,你注意聽(SYN)

    S:好的(ACK),我也要跟你說話,你注意聽(SYN)

    C:好的(ACK) 

    ........

    交流過程中

    .......

     溝通完了的清理工作

    C:我說完了(FIN)

    S:我知道了(ACK)

    S 再說一些...... 

    S:我說完了(FIN)

    C:我知道了(ACK)

    tcp是全雙工的, 建立連接,ACK的同時可以SYN,而斷開連接,往往不滿足條件,C說完了,S可能還要再說一會。

2、爲什麼,TIME_WAIT要經過2個MSL(Maximum Segment Lifetime),才進入CLOSED?
     考慮下面的情況,C回了ACK立即進入CLOSED,假如S沒有收到ACK,站在S的角度,S認爲:C還不知道我已經說完了,我要再說一遍。但是這個時候C已經CLOSED,怎麼解決這個問題?

     站在C的角度考慮,如果我回了ACK,S沒有收到,那麼S會重發FIN,從C回ACK,到C再次收到S的FIN,最多需要兩個報文段週期。如果在兩個報文段週期沒有收到FIN,則說明,S肯定收到了我了ACK,進入CLOSED 

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