複製鏈接
請複製以下鏈接發送給好友

超時

(漢語詞彙)

鎖定
系統中某個特殊事件發生之前允許經過的特定時間週期。例如,以撥號方式進入ISP時,通訊軟件設計成等待一個特定的秒數,若在規定的時間內得不到響應,建立起正確的握手信號,則此次撥號被掛斷。另外,當要求進入一個 Web頁面時,如果在規定的時間內不能得到滿足,瀏覽器將會顯示 “連接超時”的信息。如果計算機沒有這樣的功能,它會在一直等待一個事件的發生,等到用户也不耐煩的時候,它還在等,那就不合適了。 [1] 
中文名
超時
外文名
time-out
拼    音
chāo shí
定    義
超過規定時間,接受信息失敗
結    果
重新傳輸信息或解除兩設備間會話
應用學科
通信科學

超時定義

圖1 超時消息 圖1 超時消息
超時即當網絡設備想在某個特定時間內從另一網絡設備上接收信息,但是失敗的情況。其結果常為:重新傳輸信息或解除兩設備間的會話。若服務器超時但尚未掉線,則表明你的網絡連接處於超微弱鏈接狀態。此時,你可查看Modem的温度是否過高。若不是很高,則可能你的網線有問題。再者,這時恰逢上網高峯期
超時消息是指消息發送者發出消息給接收者並按指定時間等待。如果接收者無法在指定時間內接收消息。則發送者放棄這個消息。如圖1所示是超時消息的例子。 [2] 

超時偽超時

在很多情況下,即使沒有出現數據丟失也可能引發重傳。這種不必要的重傳稱為偽重傳(spurious retransmission),其主要造成原因是偽超時(spurious timeout),即過早判定超時,其他因素如包失序、包重複,或ACK丟失也可能導致該現象。在實際RTT顯著增長,超過當前RTO時,可能出現偽超時。在下層協議性能變化較大的環境中(如無線環境),這種情況出現得比較多。
為處理偽超時問題提出了許多方法。這些方法通常包含檢測(detection)算法與響應(response)算法。檢測算法用於判斷某個超時或基於計時器的重傳是否真實,一旦認定出現偽超時則執行響應算法,用於撤銷或減輕該超時帶來的影響。 [3] 

超時重組超時

圖2 重組超時 圖2 重組超時
一個數據報的任何一個分片首先到達時,IP層就得啓動一個計時器。如果不這樣做的話,不能到達的分片(如圖2所示)可能會最終導致接收方用盡緩存,留下一種攻擊機會。清單中的例子由一個特殊程序產生,該程序構造一個ICMPv4回顯請求報文,並且以一定延遲只發送這個消息的前面兩個分片,然後不再發送任何其他分片。圖2顯示了回覆(為了簡潔,某些行已被整理)。
這裏我們看到第一個分片(的時間和序列空間)被髮送,總長度是400。第二個分片20s後被髮送,但最後一個分片一直沒被髮送。接收到第一個分片30s後,目標機器回覆一個ICMPv4超時(代碼1)消息,告訴發送方數據報已丟失,包括第一個分片的拷貝。一般的超時時間是30s或60s。正如我們所見,收到任何一個分片時計時器就開始計時,且收到新的分片也不會被重置。因此,計時器給出了同一數據報分片之間可被分隔的最大間隔時間的限度。 [4] 

超時超時處理

數據報套接字通信是不可靠的,發送的數據有可能丟失。如果數據報丟失,則消息不會到達服務,服務也不會返回回答。在這種情況下,程序將在recvfrom0調用無限地等待下去。另外,對於流套接字的連接和I/O也存在無限阻塞的情況。為了避免這種無限的等待,我們需要對涉及套接字的I/O操作設置超時處理,當時間片耗盡時要麼重新發送消息,要麼關閉套接字並退出執行。有三種設置超時的方法:
(1)調用alrm()使得系統在指定的時間片到期時生成SIGALRM信號。
(2)用select()建立一時間片等待套接字就緒。
(3)使用SO—RCVTIMEO和SO—SNDTIMEO套接字選項,這兩個選項自動對套接字的讀寫設置超時處理。
這三種方法既可用於輸入也可用於輸出。 [5] 
參考資料
  • 1.    中國移動通信聯合會;李進良,倪健中.信息網絡辭典:東方出版社,2001-09
  • 2.    侯愛民,歐陽驥,胡傳福編著,面向對象分析與設計 UML,清華大學出版社,2015.08,第171頁
  • 3.    (美)凱文 R.福爾,(美)W.理查德·史蒂文斯著;吳英,張玉,許昱瑋譯;吳功宜審校,TCP/IP詳解 卷1:協議 原書第2版,機械工業出版社,2016.06,第482頁
  • 4.    (美)凱文 R.福爾,(美)W.理查德·史蒂文斯著;吳英,張玉,許昱瑋譯;吳功宜審校,TCP/IP詳解 卷1:協議 原書第2版,機械工業出版社,2016.06,第348頁
  • 5.    趙克佳,沈志宇編著,UNIX/Linux程序設計教程=UNIX and Linux Programing,機械工業出版社,2013.01,第404頁