Page 1

TCP/IP

串流控制傳輸通訊協定 (Stream Control Transmission Protocol;SCTP)

UC104 林明仕 C1000338


一.簡介 串流控制傳輸通訊協議(Stream Control Transmission Protocol;SCTP)是 在 2000 年由 IETF 的 SIGTRAN 工作組定義的一個傳輸層協議。 串流控制傳輸通訊協議(Stream Control Transmission Protocol)是一種新 的、可靠的、訊息導向的傳輸層協定,主要用來改善 TCP 和 UDP 協 定上的缺點,SCTP 能夠提供更好的效能和傳輸資料的安全性。

SCTP、TCP 和 UDP 在 TCP/IP 協定組中的位置

SCTP 與 TCP 運作方式類似,主要是用來提供使用者點對點之間訊息 傳送服務,SCTP 提供多重位址服務(multi-homing service)而 TCP 只能 在端點間單一介面傳送或接收訊息。另一方面 SCTP 提供多重資料串 流服務(multi-stream service),假如其中一條資料串流被阻礙,其餘資 料串流仍然可以傳送資料。


二.SCTP 封包格式 1.SCTP 封包由一個一般標頭(general header)和一組區塊(chunk)所組 成。(如下圖)

2. 一般標頭(general header)定義封包所屬的連結之末端、封包屬於某 特定連結和保留封包內容的完整性。(如下圖)

(1)來源埠址:定義傳送端程序埠號。 (2)目的地埠址:定義接收端程序埠號。 (3)驗證標識:比對連結上的封包,避免誤認連結的封包。 (4)檢查加總:包含 CRC-32 檢查加總。 3.區塊(chunk) 控制資訊或使用者資料都是以區塊的方式攜帶。


三.多重串流(Multi-streaming) SCTP 提供全雙供服務(full-duplex service),資料能同時進行雙向的傳 輸,每一個 SCTP 都擁有一個傳送和接收的緩衝區,資料能夠同時傳 送和接收。 SCTP 建立關聯(association)後,資料可以透過不同的串流來傳輸,其 中一個串流的資料被阻礙,其餘的資料串流仍然可以傳送資料。(如 下圖)


四.多重位址(Multi-homing) 一個 SCTP 的關聯(association)則可支援多重位址服務(multi-homing service),其傳送端和接收端的主機能夠在一個關聯中定義多個 IP 位 址。當某條路徑發生問題,另一個介面的路徑仍然可以繼續傳送資 料,而不會發生連線中斷的問題。


五.四向交握(Four-way handshake) 1.客戶傳送第一個封包,包含 INIT 區塊。 2.伺服器傳送第二個封包,包含 INIT ACK 區塊。 3.客戶送出第三個封包,包含 COOKIE ECHO 區塊,回應伺服器送的 COOKIE,而沒有做任何改變。 4.伺服器送出第四個封包,包含 COOKIE ACK 區塊,以確認收到 COOKIE ECHO 區塊。


結論 對於 SCTP 還是不太懂,在 Virtual Box 中嘗試用 Wireshark 來抓 SCTP 的封包就是抓不到,在網路上看到的資料都是用 Linux 來抓 SCTP 的 封包。 為什麼用 Linux 就能抓到 SCTP 的封包,用 Wireshark 就抓不到 SCTP 的封包,我就不知道原因。 參考資料 1.TCP/IP 通訊協定 第三版 陳中和、王振傑 譯 2.資料通訊網路 第四版 劉金順 譯

tcp\iphomework  

Tcpiphomework