• 沒有找到結果。

第一章 緒論

1.2 相關研究

1.2.4 SCTP

SCTP 是 IETF 的一個新的傳輸層協定[18],提供可靠且訊息導向 的資料傳輸,由於本論文的作法是基於此協定來做修改,所以下面會 對這個協定作更詳細的介紹。

6

1.2.4.1 SCTP 簡介

‹ 架構

如圖1-4,SCTP 是在 IP Network 之上的通訊協定,與 TCP 同一個層級,其最大的特性,就是支援傳輸點兩端可以有一 到多個IP 位址。

圖 1-4 SCTP 架構圖

‹ 特性

SCTP 與 TCP 一樣都是必須建立連線,但 TCP 只有支援

reliable 與 ordered;SCTP 除了 reliable 跟 ordered,還提供 partial reliable、unreliable、partial ordered、及 unordered;SCTP 還 有一個很重要的特性,就是multi-homing,如圖 1-5,Endpoint A 有三個 IP 位址、Endpoint B 有兩個 IP 位址,當 B 主要的 連線中斷後,A 可以送到另一個 IP 位址,不需要中斷整個連 線。

7

圖 1-5 SCTP multi-homing 示意圖

‹ 封包格式與資料封裝(bundle)

封包格式如圖1-6,每個封包包含一個 SCTP Common Header 還有數個chunks,每個 chunk 包含 chunk header 跟 data,常 見的chunk 類型有:DATA、SACK、HB、HB Ack,SCTP 資 料封裝的技術就是可以把各種chunk 都包在同一個 packet 裡 面做傳輸,減少資料傳輸的次數。

圖1-6 SCTP 封包格式

‹ 資料重傳

SCTP 對於資料的 acknowledge,是採用 Selective

Acknowledgements (SACK’s),如圖 1-7,1、2、4、5、6 是順 利送達的封包,3 是遺失的封包,對 TCP 來說,當收到封包 2 時,他會回覆 sender 端 Ack=3,表示他下一個要收 3 號封 包,如果接下來收到 4、5、6 號封包,也只能丟掉,因此 sender 端就必須重傳3、4、5、6 這 4 個封包;對 SCTP 來說,當收 到封包2 時,他會回覆 sender 端 Ack=3,表示他下一個要收 3 號封包,如果接下來收到 4、5、6 號封包,則他會回覆 sender

8

端Ack=3,(4,6),表示他除了 3 號之前的封包有收到之外,還 有收到4、5、6 這三個封包,因此 sender 端只要重傳 3 號封 包就可以了,這讓重傳變的更有效率。

圖1-7 SCTP SACK 與 TCP Ack 的比較

而SCTP 也利用 multi-homing 的特性,當在主要的那條路徑 發生封包遺失時,表示這條路徑有問題,所以重傳會透過另 一條路徑。

‹ 斷線偵測

SCTP 對路徑(Path)的定義為 Path=destination,所以有幾個 destination 就會有幾個 path;對於所有在 idle 的 path,會定期 每30 秒送 heartbeat chunk,來測試此路徑是否還有效;經過 五次連續的封包(DATA 或是 HB)遺失後,就會認定此路徑失 效。

1.2.4.2 SCTP 分析討論

經由1.1.4.1 的介紹,可以發現 SCTP multi-homing 的特性,對於 可同時使用多個網路介面的應用是很大的優點,且因為它是在傳輸層 (Transport Layer)上的實作,所以效率比在應用層(Application Layer)

9

實作還要好;跟Mobil IP 的作法來比較,他不需要部署 HA 與 FA。

不過SCTP 在某些情況下仍然有缺點,以下將對這些缺點做說明:

‹ 沒有考慮網路介面的優先權

以WLAN 與 GPRS 並存的情況為例,一開始 SCTP 會選用 WLAN 當主要的傳輸路徑,當 WLAN 斷線後,就會轉換到 GPRS,如果此時 WLAN 連線恢復,SCTP 並不會轉換回 WLAN,而是繼續使用 GPRS,可是 WLAN 的傳輸率與費用

都比GPRS 來的好,所以當 WLAN 可用的時候,應該優先使 用。

‹ 每個時間點只用一條路徑做傳輸

SCTP 在每次傳輸資料時,只選用一條路徑,當在這條路徑發 生資料遺失,才會用另一條路徑作重傳,但在無線通訊的環 境下(如:WLAN),在訊號強度不穩定時,資料遺失的機會會 變大,如果在這個時候做資料並傳,雖然會增加資料重複的 overhead,但是當有資料遺失發生時,可以很即時的透過另一 條路徑補齊,降低反應時間。

‹ 對於連線狀態的探知緩慢

SCTP 對於連線狀態探知的方法,是計算資料重傳次數是否已 到達某個值,所以需要經過幾次的資料遺失與重傳,才能知 道連線是否已中斷,不能很即時地對這種情形做處理。

相關文件