麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網管 > 互助交流 > 正文

tcp四種定時器詳解

2020-10-21 19:25:01
字體:
來源:轉載
供稿:網友

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

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

  重傳計時器:Retransmission Timer

  堅持計時器:Persistent Timer

  保活計時器:Keeplive Timer

  時間等待計時器:Time_Wait Timer。

  (1)重傳計時器:Retransmission Timer

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

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

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

  (2)堅持計時器:persistent timer

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

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

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

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

  糊涂窗口綜合癥

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

  再次補充:

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

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

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

  (3)保活計時器:keeplive timer

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

  補充:

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

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

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

  補充:

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

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

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

  以上就是關于tcp四種定時器的全部內容,謝謝閱讀,希望能幫到大家,請繼續(xù)關注武林網,我們會努力分享更多優(yōu)秀的文章。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 日韩伦理电影免费观看 | chinese xvideos gay| 欧美a级一区二区 | 欧美一级免费视频 | 亚洲午夜网站 | 中文字幕电影免费播放 | 久久不雅视频 | 日韩在线播放第一页 | 亚洲精久久 | 成人在线观看免费 | 久久精片 | www.狠狠插.com | 亚洲成人精品区 | 成人免费观看49www在线观看 | 99国产精品国产免费观看 | 久久九九热re6这里有精品 | 毛片在线免费 | av免费在线观 | 欧美性生活区 | 亚洲成人入口 | 亚洲欧美不卡视频 | h视频在线免费看 | 超碰97国产在线 | 日日草视频 | 久草在线综合网 | 日韩精品免费一区二区三区 | 香蕉久久久久 | 国产精品麻豆一区二区三区 | 看一级毛片 | 日韩视频在线观看免费 | 毛片免费一区二区三区 | 成人福利视频在线观看 | 91avsese| 欧美成人理论片乱 | 中文字幕1区2区 | 久久亚洲精品久久国产一区二区 | www.热 | 精品国产一区二区三区久久久狼牙 | 国产毛片视频 | 国产激情精品一区二区三区 | 欧美性受xxxx人人本视频 |