TCP(传输控制协议)已经存在了相当长的一段时间,它为我们提供了将数据从计算机网络中的一个点移动到另一个点的协议。尽管取得了成功,但TCP也有许多局限性。SCTP(流控制传输协议)执行TCP所做的一切,同时添加TCP没有的新功能。

SCTP 添加到组合中的第一个功能是多宿主。多宿主允许连接的两个终结点声明多个接口(IP 地址)。为数据提供备用路由,以防当前使用的接口由于某种原因而失败。从一个接口到另一个接口的传输是无缝的;因此连接不会中断。

TCP:

在RFC 793中定义,详细参考:

TCP是面向连接的端到端可靠协议,支持有保障的数据传输。TCP从连接建立本身就保证了可靠性。TCP的一些主要特性是3路握手(SYN, SYN-ACK, ACK),错误检测,慢启动,流控制,拥塞控制。
TCP是一种可靠的传输机制,因此即使在拥塞情况下,也可以在必须进行包传递的情况下使用它。TCP应用程序和端口号的典型示例有FTP数据(20)、FTP控制(21)、SSH(222)、Telnet(23)、邮件(25)、DNS(53)、HTTP(80)、POP3(110)、SNMP(161)和HTTPS(443)。这些都是众所周知的TCP应用程序。

TCP 非常容易受到拒绝服务攻击,这会锁定服务器的资源并阻止其他人使用它。SCTP 不是 TCP 的 3 向握手启动,而是使用 4 向握手,在整个握手结束时分配资源。因此,SCTP 不易受到 DoS 攻击。
TCP 中的数据以数据包形式出现。数据包具有特定大小,长流将被划分以适应,而短流则拼接在一起。这意味着必须在应用层提供消息框架,以完全识别单独的消息。SCTP 实现了消息成帧,每条消息在发出时始终具有相同的大小。

SCTP:

在RFC4960中定义,详细参考:

SCTP(流控制传输协议)是一种IP传输协议,类似于TCP和UDP。SCTP是一种单播协议,支持在恰好两个端点内进行端到端数据传递。但是端点可能有多个IP地址。SCTP是一个全双工传输协议,具有重传、流控制和序列维护等特性。
在TCP之上,SCTP有更多的特性,下面列出了一些特性:

SCTP多流特性
SCTP允许将数据分成多个流,每个流都有自己的传递顺序。考虑到电话信令的情况,有必要维护影响相同会话或资源的包的顺序。(例如:同一个呼叫或同一个中继)。因此,基于流的序列跟踪是足够的,将导致更好的性能比一个完整的流。

SCTP多归巢
该特性支持单个SCTP端点拥有多个IP地址。这样做的主要原因是通过几个冗余路由路径维护端点的可用性。

路径选择
维护一个计数器来跟踪到特定目的地的不成功传输确认。定义了一个阈值,如果超过了目的地址,则声明为不活动,SCTP开始向备用地址发送。

SCTP可以创建多个可独立使用的数据流,而不是使用单个数据流。这并没有真正提高介质的速度,但它允许数据同时到达;最大限度地减少页面完全加载的等待时间。此功能还可以防止控制数据包被数据包阻止,就像 TCP 中通常发生的情况一样;从而改善数据控制。

最后,SCTP已将交付排序设为可选。在许多情况下,交货排序是必要的。这就是为什么它在TCP中是强制性的。但在某些不需要排序的情况下,可以通过禁用此功能来释放资源。SCTP 提供了灵活性,以适应每种情况,并提供可选的排序交付。

SCTP在许多方面优于TCP。但是由于我们长期使用TCP,因此很难过渡到高级TCP。尽管如此,SCTP的优势将逐渐引起用户的关注和用户。

TCP 和 SCTP的区别

  1. SCTP比TCP更擅长多宿主;
  2. SCTP具有多流,而TCP没有;
  3. SCTP 具有启动保护,而 TCP 没有;
  4. SCTP具有消息成帧,而TCP没有;
  5. SCTP 可选择排序交付,但 TCP 不支持;

TCP和SCTP的区别

本文由网友:田琦 投稿 欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:TCP和SCTP的区别
本文链接:https://www.vsdiffer.com/vs/tcp-vs-sctp.html
免责声明:以上内容仅代表 网友:田琦 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。