1.TCP為什么要有一個"TIME_WAIT"的狀態(tài)
"TIME_WAIT"狀態(tài)存在的原因主要有兩點(diǎn):
(1) 可靠的終止 TCP 連接。
假設(shè)上圖中用于確認(rèn)服務(wù)器結(jié)束報文段6的TCP報文段7丟失,那么服務(wù)器將重發(fā)結(jié)束報文段,因此客戶端需要停留在某個狀態(tài)以處理重復(fù)收到的結(jié)束報文段.否則客戶端將以復(fù)位報文段來回應(yīng)服務(wù)器,服務(wù)器則認(rèn)為這是一個錯誤,因為他期望的是一個像TCP報文段7那樣的確認(rèn)報文段.
(2) 保證讓遲來的 TCP 報文有足夠的時間被識別并被丟棄 ;
在 Linux 系統(tǒng)上,一個TCP 端口不能被同時打開多次(兩次及以上)。當(dāng)一個TCP 連接處于 TIMEWAIT 狀態(tài)時,我們將無法立即使用該連接占用著的端口來建立一個新連接。反過來思考,如果不存在 TIME WAIT 狀態(tài),則應(yīng)用程序能夠立即建立一個和剛關(guān)閉的連接相似的連接(這里說的相似,是指它們具有相同的 P 地址和端口號)。這個新的、和原來相似的連接被稱為原來的連接的化身 (incarmation)。新的化身可能接收到屬于原來的連接的、攜帶應(yīng)用程序數(shù)據(jù)的 TCP 報文段(遲到的報文段),這顯然是不應(yīng)該發(fā)生的。文章來源:http://www.zghlxwxcb.cn/news/detail-427291.html
2.拓展
帶外數(shù)據(jù)
有些傳輸層協(xié)議具有帶外 (out of Band,ooB)數(shù)據(jù)的概念,用于迅速通告對方本端發(fā)生的重要事件。因此,帶外數(shù)據(jù)比普通數(shù)據(jù)有更高的優(yōu)先級,它應(yīng)該總是立即被發(fā)送,而不論發(fā)送緩沖區(qū)中是否有排隊等待發(fā)送的普通數(shù)據(jù)。
UDP 沒有實(shí)現(xiàn)帶外數(shù)據(jù)傳輸,TCP 也沒有真正的帶外數(shù)據(jù)。不過 TCP 利用其頭部中的 緊急指針標(biāo)志和緊急指針兩個字段,給應(yīng)用程序提供了一種傳輸緊急數(shù)據(jù)的方式。一般只有一個字節(jié)數(shù)據(jù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-427291.html
到了這里,關(guān)于97-TCP為什么要有一個“TIME_WAIT“的狀態(tài)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!