TIME_WAIT存在的原因

在關閉TCP連接中,客戶端首先發送FIN報文,關閉本端的連接,之後等待接受服務器發來的FIN報文,完成關閉動作.在客戶端收到服務器的FIN報文之後,會進入一個TIME_WAIT的狀態,該狀態會持續一段時間,再關閉自身端口.這個動作存在的目的是:

1.可靠地實現TCP全雙工連接的終止

2.允許老的重複分解在網絡中消逝

首先解釋第一條,在客戶端接收到服務器端的FIN報文之後,會回覆一個ACK,但是該ACK報文有可能會丟失,服務器就會重新發送FIN報文給客戶端,所以爲了處理可能出現的重發FIN報文,必須保持一段實現再推出

第二條原因,假設客戶端用相同的IP地址和端口號,再次連接相同的服務器的IP地址和端口號,那麼上一次的連接的報文可能在第二次連接中才發送到,爲了避免這種混淆,TIME_WAIT等待2MSL(MSL爲單個報文在傳遞過程中的生命期).保證上一次所有的報文都到達,或者在鏈路中被丟棄,纔可以進行下一次連接.

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