SCTP和TCP的区别是什么?
让我们从学习流控制传输协议 (SCTP) 开始。
SCTP
SCTP 代表流控制传输协议。它是一种新的稳定、面向消息的传输层协议。它被普遍应用于已引入的互联网应用程序。这些新的应用程序包括 IUA(基于 IP 的 ISDN)、M2UA 和 M3UA(电话信令)、H.248(媒体网关控制)、H.323(IP 电话)和 SIP(IP 电话)等等。
SCTP 结合了 UDP 和 TCP 的特性。SCTP 是一种稳定的面向消息的协议。它保护消息边界,同时检测隐藏数据、重复信息和乱序数据。它还具有拥塞控制和流量控制机制。
TCP 中的数据单位是字节。TCP 中的数据传输通过使用序列号对字节进行编号来保证。而 SCTP 中的数据单位是 DATA 块,由于分片的原因,它可能与进程中出现的消息之间不存在一对一的关系。
在 SCTP 中,每个关联中可以有多个流。SCTP 中的每个流都需要使用流标识符 (SI) 进行识别。每个数据块都应该在其报头中携带 SI,以便在到达目的地时,可以将其正确地放置到其所属的流中。
SCTP 还支持多宿主机功能,即端点可以使用多个 IP 地址进行连接。SCTP 连接端点可以使用来自多个 ISP 的 IP 地址,以实现网络级别的容错能力。如果在链路过程中,其中一个 ISP 出现故障,连接仍然可以使用来自正常运行的 ISP 的 IP 地址进行连接。
TCP
TCP 代表传输控制协议。它是一个传输层面向连接的协议。它支持在网络上连接设备之间可靠的连接和受保护的数据传输。它可以创建一个安全的连接,然后发送数据。
TCP 以数据块的形式将数据从一台机器发送到另一台机器。它的数据传输速度较慢,但具有更多服务,包括系统的流量控制、错误控制和拥塞控制。TCP 报头为 20-60 字节,因此包含许多信息元素以提高可靠性,但增加了开销。
TCP 通过提供面向连接的端到端可靠分组交付来保证可靠性。它使用确认号对字节进行排序,该确认号指示源预期接收到的下一个字节的目的地。如果在一定时间内未收到分组的确认,则会重新传输这些分组。
TCP 还确保在不溢出内部缓冲区的情况下,目的地按顺序接收分组。TCP 支持全双工操作,因此发送方和接收方都可以同时连接。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP