SCTP和UDP有什麼區別?
讓我們首先了解什麼是流控制傳輸協議 (SCTP)。
SCTP
SCTP 代表流控制傳輸協議 (Stream Control Transmission Protocol)。它是一種新的穩定、面向訊息的傳輸層協議,經常用於新出現的網際網路應用程式。
這些新的應用程式包括 IUA(基於 IP 的 ISDN)、M2UA 和 M3UA(電話信令)、H.248(媒體閘道器控制)、H.323(IP 電話)和 SIP(IP 電話)等。
SCTP 結合了 UDP 和 TCP 的特性。SCTP 是一種穩定的面向訊息的協議。它保護訊息邊界,同時檢測隱藏資料、重複資訊和亂序資料。它還具有擁塞控制和流量控制機制。
在 TCP 中,每個連線只有一個流。在 SCTP 中,每個關聯可以有多個流。SCTP 中的每個流都需要使用流識別符號 (SI) 進行標識。
每個資料塊都應在其報頭中攜帶 SI,以便在到達目的地時可以將其適當地放置在其流中。SI 是一個從 0 開始的 16 位數字。
UDP
UDP 代表使用者資料報協議 (User Datagram Protocol)。它是一個傳輸層無連線協議。它支援在網路上連線裝置之間快速傳輸資料。UDP 沒有生成、維護和刪除連線的開銷。
它通常用於傳送即時資料,在這種情況下,無法承受傳輸延遲。UDP 以恆定資料流的形式將資料從一個裝置傳送到另一個裝置。
UDP 報頭大小固定,即 8 位元組。它不可靠,但速度更快。由於其傳輸速度,DNS、DHCP、RIP 等協議使用 UDP 在網路上進行精確的資料傳輸。
UDP 是一種不可靠的協議。在某些情況下需要 UDP 協議。在需要大量頻寬和基本資訊的場合部署 UDP。
例如,在影片流中,接受數百個資料包會很麻煩並浪費頻寬。一些隱藏的資料包不會在影片流中造成問題,也可以避免它們。
UDP 也用於一次通常傳輸少量資訊的應用程式。
例如,UDP 支援協議埠以區分單個裝置上實現的多個程式。每個 UDP 訊息都包含目標埠號和源埠號。
這使得目標端的 UDP 軟體能夠將訊息傳遞給正確的應用程式程式,並使應用程式程式能夠傳送確認。