成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

tcp四種定時器

網絡 網絡管理
定時器在TCP可靠傳輸的過程中起著舉足輕重的作用。TCP在建立連接之后可能(保活keep-alive定時器是可選的)會 啟動四個定時器。

定時器在TCP可靠傳輸的過程中起著舉足輕重的作用。TCP在建立連接之后可能(保活keep-alive定時器是可選的)會 啟動四個定時器。

TCP使用四種定時器(Timer,也稱為“計時器”):

重傳計時器:Retransmission Timer

堅持計時器:Persistent Timer

保活計時器:Keeplive Timer

時間等待計時器:Time_Wait Timer。

(1)重傳計時器:Retransmission Timer

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

重傳時間=2*RTT;

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

Karn算法:對重傳報文,在計算新的RTT時,不考慮重傳報文的RTT。因為無法推理出:發送端所收到的確認是對上一次報文段的確認還是對重傳報文段的確認。干脆不計入。

(2)堅持計時器:persistent timer

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

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

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

補充:

堅持定時器的原理是簡單的,當TCP服務器收到了客戶端的0滑動窗口報文的時候,就啟動一個定時器來計時,并在定時器溢出的時候向向客戶端查詢窗口是否已經增大,如果得到非零的窗口就重新開始發送數據,如果得到0窗口就再開一個新的定時器準備下一次查詢。通過觀察可以得知,TCP的堅持定時器使用1,2,4,8,16……64秒這樣的普通指數退避序列來作為每一次的溢出時間。

糊涂窗口綜合癥

TCP的窗口協議,會引起一種通常叫做糊涂窗口綜合癥的問題,具體表現為,當客戶端通告一個小的非零窗口時,服務器立刻發送小數據給客戶端并充滿其緩沖區,一來二去就會讓網絡中充滿小TCP數據報,從而影響網絡利用率。對于發送方和接收端的這種糊涂行為。

再次補充:

TCP通過讓接收方指明希望從發送方接收的數據字節數(即窗口大小)來進行流量控制。如果窗口大小為 0會發生什么情況呢?這將有效地阻止發送方傳送數據,直到窗口變為非0為止。

TCP不對ACK報文段進行確認, TCP只確認那些包含有數據的ACK報文段。

如果一個確認丟失了(這個確認是”接收方“向”發送方“發送的ACK,通知”發送方“自己的窗口已經非0了),則雙方就有可能因為等待對方而使連接終止:接收方等待接收數據(因為它已經向發送方通告了一個非 0的窗口),而發送方在等待允許它繼續發送數據的窗口更新。為防止這種死鎖情況的發生,發送方使用一個堅持定時器 (persist timer)來周期性地向接收方查詢,以便發現窗口是否已增大。這些從發送方發出的報文段稱為窗口探查 (window probe)。

(3)保活計時器:keeplive timer

每當服務器收到客戶的信息,就將keeplive timer復位,超時通常設置2小時,若服務器超過2小時還沒有收到來自客戶的信息,就發送探測報文段,若發送了10個探測報文段(沒75秒發送一個)還沒收到響應,則終止連接。

補充:

保活定時器更加的簡單,還記得FTP或者Http服務器都有Sesstion Time機制么?因為TCP是面向連接的,所以就會出現只連接不傳送數據的“半開放連接”,服務器當然要檢測到這種連接并且在某些情況下釋放這種連接,這就是保活定時器的作用。其時限根據服務器的實現不同而不通。另外要提到的是,當其中一端如果崩潰并重新啟動的情況下,如果收到該端“前生”的保活探察,則要發送一個RST數據報文幫助另一端結束連接。

(4)時間等待計時器:Time_Wait Timer

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

補充:

2MSL定時器:MSL是報文段做大生存時間(Maximum Segment Lifetime),設置這個定時器有兩個目的:

其一是為了測量連接處于TIME_WAIT狀態的時間.這樣可以讓TCP再次發送最后的ACK以防止這個ACK丟失(如果丟失,另一端會重傳FIN)。

其二,為允許老的重復分節在網絡中消逝。具體可以解釋為,如果一個TCP連接在斷開之前有迷途分節尚未消逝,在斷開該TCP連接之后立刻重啟一個同樣的連接(雙方的IP地址和端口port相同),這時之前的迷途的老分節可能對新的新的TCP連接接收,從而造成未定義的錯誤。為了避免這種情況,TCP規定在TIME_WAIT狀態,不能啟動一個連接的化身。既然TIME_WAIT狀態維持2MSL,這就保證了一個連接上的分組及其應該在 2MSL內都會消失。

責任編輯:張存 來源: 中國it實驗室
相關推薦

2014-12-09 16:30:18

TCP定時器

2015-10-15 09:38:48

TCP網絡協議定時器

2023-08-02 09:26:03

軟件定時器鴻蒙

2025-03-12 09:54:02

2018-12-03 12:20:52

Systemd定時器Linux

2009-06-15 15:02:48

Spring定時器

2021-10-24 08:37:18

網絡監控網絡架構網絡

2009-12-10 14:16:24

2009-11-11 10:14:10

linux定時器操作系統

2010-07-28 15:56:22

FlexTimer定時

2016-09-12 14:07:14

Android 定時器

2019-10-24 07:42:28

Java引用GC

2017-07-06 15:40:19

DevOps核心能力

2022-08-01 07:56:23

React Hook開發組件

2012-09-11 09:55:26

編程HTML5編程能力

2021-12-22 09:34:01

Golagn配置方式

2014-12-25 09:41:15

Android加載方式

2011-03-16 09:05:53

NATiptables

2009-12-09 11:03:45

安裝Linux

2023-01-10 13:53:21

Linux定時器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国内av在线 | 成人免费网站在线 | 中文字幕在线一区 | www.干| 国产精品一区二区三 | 国产精品久久久久久久久久久久 | 九色在线观看 | 国产精品视频入口 | 一级黄色播放 | www.亚洲视频.com | 亚洲天堂久久 | 深夜福利亚洲 | 欧美综合国产精品久久丁香 | 在线观看你懂的网站 | 羞羞网站在线观看 | 精品中文字幕久久 | 伊人欧美视频 | 精品久久电影 | 亚洲欧美一区二区三区视频 | 综合九九| 国产日韩精品在线 | 欧美日韩一二三区 | 日韩av最新网址 | 成人在线一区二区 | 五十女人一级毛片 | 国产综合一区二区 | 欧美a级成人淫片免费看 | 国产成人精品一区二区三区在线 | 亚洲成人综合在线 | 精品欧美一区二区三区精品久久 | 九色porny自拍视频 | 中文字幕一区在线观看视频 | 午夜在线电影网 | 日韩一区二区三区视频 | 久久99精品国产 | 51ⅴ精品国产91久久久久久 | 久在草 | 免费骚视频 | 国产精品性做久久久久久 | 亚洲高清在线 | 亚洲成网站 |