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开始发送到备用地址。
小结: