第二章、 系統設計
2.3 封包逾時後的重傳路徑選擇方式
除了按照延遲取向轉換的方法來進行路徑之間的轉換,還有一種 情況也需要選擇資料傳輸所使用的路徑,那就是在發生了資料封包逾 時(timeout)之後。在原本的 SCTP 中,當資料封包逾時,則視為封包 遺失需要重傳;而這也代表著目前所使用的路徑有不良狀況,因此會 選擇另一條路徑來進行重傳。在本論文所敘述的方法之中,也將會保 留這個性質,並且和延遲取向轉換選擇路徑的方法相互結合。
Path0 RL Path0 RH Path1 RL Path1 RH
Data packet timeout
HB testing interval
Time
圖 2-12 資料封包逾時發生時之路徑狀態示意圖
首 先 要 說 明 的 是 資 料 封 包 逾 時 可 能 發 生 的 時 機 。 基 本 上 在 delay-based handoff 中,主要是依據每次測量到的 RTT 資訊來進行路 徑的轉換,但路徑 RTT 測試每一段時間才會有一次,因此路徑的 RTT 資訊其實是離散的,而資料封包的逾時可能就發生在兩次相鄰的 RTT 測試之間。如圖 2-12 所示,原本的 RTT thresholding 方法會在一次 RTT 測試之後才造成了 RL/RH 區間的變化,從而開始並傳。但對於 實際上資料傳輸而言,當路徑狀態變差時,在 RTT 測試測得路徑狀 態之前可能就發現了資料封包逾時,此時就應該立即對重傳的路徑作 出選擇。而既然資料封包逾時代表著路徑有不良狀況,路徑有不良狀 況時作為 RTT 測試用的 heartbeat 也很可能會發生 timeout 的狀態,所
以為了保險起見,便如同 heartbeat timeout 之後的運作模式,就會立 即開始並傳(若是像 RTT 方法及 SRTT 方法並不支援並傳,也就只能 直接轉換到另一條路徑,以避免資料封包可能連續的遺失),直到 RTT 測試到路徑狀態為止,才依照原本的方式來選擇路徑。
在實作上,則將發生資料封包逾時的路徑註明為”不穩定路徑”,
只有在從此路徑上接收到 HB ACK 時才會取消這個標記。當一條路 徑被註明為不穩定路徑的時候,這條路徑就不會被選擇為唯一用來傳 輸資料的路徑(即使 RTT 資訊顯示它比較快),直到取得下一個路徑的 RTT 資訊為止。此時可能有以下兩種狀況:1) RTT 資訊是由 HB timeout 產生,此路徑依然是不穩定路徑,不過也表示路徑狀況真的 很差,因此的確應該進入並傳的狀態,而當 HB timeout 持續發生數 次,便會轉換到另一條路徑而不再使用原本的路徑,這時候就算原本 路徑還是不穩定路徑也無所謂。2) RTT 資訊是由 HB ACK 回來所產 生,此時此路徑不再是不穩定路徑,然而路徑的選擇也就可以交還由 原本的機制做選擇。基於以上的方法,就對資料封包逾時之後重傳路 徑的選擇制定出一套合理的方法。