TCP定時器講解與TCP三次握手四次揮手

2021-08-03 18:20:41 字數 1891 閱讀 2125

從名字上講,他是乙個定時器,並且是乙個應用在tcp協議中的定時器,關於tcp協議,可以自行了解,這裡就不多說了。

tcp一共有幾種定時器呢?答案是四種,分別是:

**重傳計時器:**retransmission timer

**堅持計時器:**persistent timer

**保活計時器:**keeplive timer

**時間等待計時器:**time_wait timer。

接下來我們就進行一一講解。

重傳定時器:為了控制丟失的報文段或丟棄的報文段,也就是對報文段確認的等待時間。當tcp傳送報文段時,就建立這個特定報文段的重傳計時器,可能發生兩種情況:若在計時器超時之前收到對報文段的確認,則撤銷計時器;若在收到對特定報文段的確認之前計時器超時,則重傳該報文,並把計時器復位;

重傳時間=2*rtt;

rtt的值應該動態計算。常用的公式是:rtt=previous rtt*i + (1-i)*current rtt。i的值通常取90%,即新的rtt是以前的rtt值的90%加上當前rtt值的10%.

專門為對付零視窗通知而設立的。

當傳送端收到零視窗的確認時,就啟動堅持計時器,當堅持計時器截止期到時,傳送端tcp就傳送乙個特殊的報文段,叫探測報文段,這個報文段只有乙個位元組的資料。探測報文段有序號,但序號永遠不需要確認,甚至在計算對其他部分資料的確認時這個序號也被忽略。探測報文段提醒接收端tcp,確認已丟失,必須重傳。

堅持計時器的截止期設定為重傳時間的值,但若沒有收到從接收端來的響應,則傳送另乙個探測報文段,並將堅持計時器的值加倍和並復位,傳送端繼續傳送探測報文段,將堅持計時器的值加倍和復位,知道這個值增大到閾值為止(通常為60秒)。之後,傳送端每隔60s就傳送乙個報文段,直到視窗重新開啟為止;

每當伺服器收到客戶的資訊,就將keeplive timer復位,超時通常設定2小時,若伺服器超過2小時還沒有收到來自客戶的資訊,就傳送探測報文段,若傳送了10個探測報文段(沒75秒傳送乙個)還沒收到響應,則終止連線。

在連線終止期使用,當tcp關閉連線時,並不認為這個連線就真正關閉了,在時間等待期間,連線還處於一種中間過度狀態。這樣就可以時重複的fin報文段在到達終點後被丟棄,這個計時器的值通常設定為一格報文段壽命期望值的兩倍。

講到這裡,又不得不提一下,tcp報文的格式

如圖所示,

有幾個比較重要的位置:

所謂三次握手(three-way handshake)即建立tcp連線。指建立乙個tcp連線時,需要客戶端和服務端總共傳送3個有效包以確認連線的建立。在socket程式設計中,這一過程由客戶端執行connect來觸發,整個流程如下圖所示:

客戶端發來請求連線(syn=1 seq=j),服務端收到客戶端的請求,並作出相應,返還(syn=1,ack=1,ack=j+1,seq=k),客戶端收到伺服器的許可報文,告訴伺服器(ack=1,ack=k+1),接下來我要傳送東西了,至此tcp協議鏈結建立完成。

由於tcp是全雙工協議,所以在斷開鏈結時是兩方的事情,就好比那麼女朋友提出分手一樣,客戶端說,我沒有愛情了(資料),我們分手吧,伺服器說不,我不想(那剛好,老娘不想伺候你了),然後裝作冷靜地說那好我們分手(不給你資料了),我們分手,客戶端聽到後說,好啊好啊,我們分手吧(再次強調,我們斷開連線關係)

全雙工,就意味著任何事情,不是由你一方決定的,是你我兩方的事情。

【如果你還有疑惑,可以參考一下文章:】

tcp三次握手 TCP 三次握手總結

tcp特點概述 tcp segment structure 段結構 step2 server host receives syn,replie with syn ack segment 答覆syn ack報文段 step3 client receives synack,replies with ac...

TCP的定時器

在tcp協議中有的時候需要定期或者按照某個演算法對某個事件進行觸發,那麼這個時候,tcp協議是使用定時器進行實現的。在tcp中,會有四種定時器 這四個定時器都有各自的具體作用。tcp是可靠的,因此,它對於發出去的資訊,沒有得到正常ack反饋的,都會啟動乙個重傳機制。這個重傳機制使用乙個重傳定時器,當...

TCP定時器詳解

tcp使用四種定時器 timer,也稱為 計時器 重傳計時器 retransmission timer 堅持計時器 persistent timer 保活計時器 keeplive timer 時間等待計時器 time wait timer。當傳送端收到零視窗的確認時,就啟動堅持計時器,當堅持計時器截...