http://tdrwww.exp-math.uni-essen.de/inhalt/forschung/sctp_fb/index.html
http://www.sctp.de/
SCTP 是一種應用層數據分組傳輸通訊協定,可在 UDP 或 IP 層提供可靠服務。SCTP 處於 SCTP 使用者應用層與 IP網路層間,且每一個端點(endpoint)有多個 IP位址。
TCP 雖然提供連接導向、可靠性的傳輸服務,但其本身的功能亦限制它的靈活與彈性,為了克服因 TCP 的種種限制,並兼顧 TCP/IP 網路上層應用運作的相容性,於是提出SCTP(Stream Control Transmission Protocol)通訊協定,期望能夠藉由 SCTP 通訊協定的運作,逐步取代 TCP;SCTP 的產生原本是設計用在多重鏈路的網路上,如公眾交換電話網路(Public Switched Telephone Network, PSTN)上的訊號傳遞,但 SCTP 不只運用在訊號的傳遞上,許多的應用程式也適用,因為吸收許多 TCP 的優點,如壅塞控制(Congestion Control),錯誤偵測(Error Detection),及重傳機制(Retransmission)等功能;此外,SCTP 更進一步的又多加了幾個新的功能,而這些功能在 TCP上是無法運作的,最主要的兩個功能是多重資料流(Multi-Streaming)和多重定址(Multi-Homing) ,可說是TCP 的升級版。
多重資料流(Multi-Streaming)
在 TCP 中,針對 stream 有嚴格的排序限制,所以導致主要的缺點—佇列頭的阻斷(head-of-the-queue blocking),一旦一個 stream中的 message 發生錯誤或遺失時,其他的有序 stream 並不能繞過或越過,因此造成無法順利傳遞。所以多重資料流的特徵是將使用者的資料經由多個 SCTP streams 作傳輸。這些 streams 是獨立地作有序傳遞。當其中一個 stream 的 message 遺失時,SCTP 即可重送或是高優先權(high-priority)的 messages可以繞過,所以並不影響其他的 streams。經由多重資料流的動作,SCTP 排除了原本在TCP 中不必要的阻斷。
多重定址(Multi-Homing)
多重定址的特性使SCTP endpoints支援多個IP的位址,並保護association免於網路有問題時停止運作。在association啟始時,SCTP endpoints會交換彼此IP位址的清單。
在啟始時,IP 位址清單中的其中一個會被指定為主要的 IP位址,假如主要的位址一再地丟棄 chunks,所有的 chunks 將被傳送到其他的可替代位址進行保留,直到主要位址的連結重新建立。在 TCP 中有單一定址(single-homed)的功能,但如果核心網路發生問題而觸發 TCP session 的遺失,因此多重定址是改善 TCP 單一定址缺點的一大進步。多重定址的主要運作模式
SCTP 與 TCP之比較
Services/Feature SCTP TCP
Connection-oriented yes yes
Full duplex yes yes
Reliable data transfer yes yes
Partial-reliable data transfer optional no
Ordered data delivery yes yes
Unordered data delivery yes no
Flow control yes yes
Congestion control yes yes
ECN capable yes yes
Selective ACKs yes optional
Preservation of message boundaries yes no
Path MTU discovery yes yes
Application PDU fragmentation yes yes
Application PDU bundling yes yes
Multi-Streaming yes no
Multi-Homing yes no
Protection against SYN flooding attacks yes no
Allows half-closed connections no yes
Reachability check yes yes
Psuedo-header for checksum no(uses vtags) yes
Time wait state for vtags for 4-tuple
Place your comment