SCTP 和 UDP 有什么区别?
让我们首先了解什么是流控制传输协议(SCTP)。
SCTP
SCTP代表流控制传输协议。它是一种新的稳定的、面向消息的传输层协议。它通常是为已引入的Internet应用程序设计的。
这些新的应用包括IUA(ISDNoverIP)、M2UA和M3UA(电话信令)、H.248(媒体网关控制)、H.323(IP电话)和SIP(IP电话)等。
SCTP连接了UDP和TCP的特性。SCTP是一种稳定的面向消息的协议。它保护消息边界,同时检测隐藏数据、重复信息和无序数据。它还具有拥塞控制和流量控制结构。
在TCP中,每个连接中只有一个流。在SCTP中,每个关联中可以有多个流。SCTP中的每个流都需要使用流标识符(SI)进行标识。
每个数据块都应在其标头中携带SI,以便当它出现在目的地时,它可以适当地放置在其流中。51是一个从O开始的16位数字。
数据传输协议
UDP代表用户数据报协议。它是一种传输层无连接协议。它支持通过网络在连接设备之间快速传输数据。UDP中没有生成、维护和删除连接的开销。
它通常可用于在无法承受一些传输延迟的情况下发送实时数据。UDP以恒定数据流的结构将数据从一台设备发送到另一台设备。
UDP报头的大小是恒定的,即8个字节。它不可靠,但速度更快。由于其传输速度,DNS、DHCP、RIP等协议使用UDP在网络上进行准确的数据传输。
UDP是一种不可靠的协议。在某些方面,它将需要UDP协议。UDP部署在数据包需要大量带宽以及基本信息的地方。
例如,在视频流中,接受数百个数据包很麻烦并且会滥用带宽。一些隐藏的数据包不会在视频流中产生问题,也可以避免它。
通常一次传输少量信息的应用程序也使用UDP。
例如,UDP支持协议端口在单个设备上实现的多个程序之间进行分类。每个UDP消息都包括目标端口号和源端口号。
这使得目的地的UDP软件可以将消息传递给适当的应用程序,并且应用程序可以发送确认。