TCP與SCTP協議
TCP(傳輸控制協議)和SCTP(流控制傳輸協議)都位於傳輸層,主要在internet應用中提供傳輸功能。TCP提供了可靠的數據傳輸和嚴格的數據包傳遞順序,但有些應用程序需要可靠的傳輸,而不是100%的數據包傳遞順序。在這些情況下,TCP可能會在第二個選項中造成不必要的延遲,其中可靠性很重要,但不是100%順序傳遞。
在數據包的傳輸過程中,存在兩個主要的約束:一個是可靠性,另一個是延遲。可靠性保證了數據包的傳遞,延遲是數據包的及時傳遞。兩者不能同時達到峰值,但可以進行優化。
SCTP的開發基本上是為了在IP網絡上傳輸PSTN信令。(西格蘭)。但是現在其他應用程序也發現SCTP很好地滿足了它們的需求。
TCP協議:
定義見RFC 793
TCP是面向連接的端到端可靠協議,支持有保證的數據傳輸。從建立連接本身來說,TCP保證了可靠性。TCP的一些主要特性包括三路握手(SYN、SYN-ACK、ACK)、錯誤檢測、慢啟動、流量控制、擁塞控制。
TCP是一種可靠的傳輸機制,因此即使在擁塞情況下也必須進行數據包傳輸,它也將被使用。TCP應用程序和端口號的典型示例是FTP數據(20)、FTP控制(21)、SSH(222)、Telnet(23)、Mail(25)、DNS(53)、HTTP(80)、POP3(110)、SNMP(161)和HTTPS(443)。這些都是眾所周知的TCP應用程序。
SCTP:
在RFC4960中定義
流控制傳輸協議SCTP(streamcontroltran**ission Protocol)是一種IP傳輸協議,如TCP和UDP。SCTP是一種單播協議,支持在兩個端點內進行端到端數據傳輸。但是端點可能有多個IP地址。
SCTP是一種全雙工傳輸協議,具有重傳、流控制和序列維護等特點。
在TCP之上,SCTP有更多的特性,下面列出了一些特性
- SCTP多流功能
SCTP允許將數據分成多個流,每個流都有自己的傳遞序列。考慮到電話信令的情況,有必要維護影響同一會話或資源的數據包序列。(例如:相同的呼叫或相同的中繼)。因此,基於流的序列跟蹤就足夠了,並且比一個完整的流跟蹤效果更好。
- SCTP多歸位
此功能支持單個SCTP端點具有多個IP地址。這樣做的主要原因是通過幾個冗餘路由路徑來維護端點的可用性。
- 路徑選擇
維護一個計數器來跟蹤到特定目的地的不成功的傳輸確認。定義了一個閾值,如果超過該閾值,目標地址將被聲明為不活動,並且SCTP開始發送到備用地址。
小結: