6. 5. 1 UDP-Lite
UDP-Lite ( Lightweight User Datagram Protocol ,轻量级用户数据报协议)是扩展UDP机能的一种传输层协议。在基于UDP的通信当中如果校验和出现错误,所收到的包将被全部丢弃。然而,现实操作中,有些应在面对这种情况时并不希望把已经收到的所有包丢弃。
如果将UDP中校验和设置为无效,那么即使数据的一部分发生错误也不会将整个包废弃。不过,这不是一个很好的方法。因为如果发生的错误有可能是UDP 首部中的端口号被破坏或是IP首部中的IP地址被破坏' 就会产生严重后果。因此,不建议将校验和关闭。为了解决这些问题,UDP的修正版UDP-Lite协议就出现了。
UDP-Lite提供与UDP几乎相同的功能,不过计算校验和的范围可以由应用自行决定。这个范围可以是包加上伪首部的校验和计算,可以是首部与伪首部的校验和计算,也可以是首部、伪首部与数据从起始到中间某个位置的校验和计算' 有了这样的机制,就可以只针对不允许发生错误的部分进行校验和的检查。 对于其他部分,即使发生了错误,也会被忽略不计。而这个包也不会被丢弃,而 是直接传给应用继续处理。
6.5.2 SCTP
SCTP ( Stream Control Transmission Protocol ,流控制传输协议)▼与 TCP 一样,都是对一种提供数据到达与否相关可靠性检查的传输层协议。其主要特点如下:
®以消息为单位收发
TCP中接收端并不知道发送端应用所决定的消息大小。在SCTP中却可以。®支持多重宿主
在有多个NIC的主机中,即使其中能够使用的NIC发生变化,也仍然可以继续通信'
^支持多数据流通信
TCP中建立多个连接以后才能进行通信的效果,在SCTP中一个连接就可以,
^可以定义消息的生存期限 超过生存期限的消息,不会被重发。
SCTP主要用于进行通信的应用之间发送众多较小消息的情况。这些较小的应用消息被称作数据块(Chunk),多个数据块组成一个数据包。
此外,SCTP具有支持多重宿主以及设定多个IP地址的特点。多重宿主是指同一台主机具备多种网络的接口。例如,笔记本电脑既可以连接以太网又可以连接无线LAN。
同时使用以太网和无线LAN时,各自的NIC会获取到不同的IP地址。进行TCP通信,如果开始时使用的是以太网,而后又切换为无线LAN,那么连接将会被断开。因为从SYN到FIN包必须使用同一个IP地址。
然而在SCTP的情况下,由于可以管理多个IP地址使其同时进行通信,因此即使出现通信过程当中以太网与无线LAN之间的切换,也能够保持通信不中断。所以SCTP可以为具备多个NIC的主机提供更可靠的传输T。
F6. 5. 3 DCCP
DCCP (Datagram Congestion Control Protocol ,数据报拥塞控制协议)是一个 辅助UDP的崭新的传输层协议。UDP没有拥塞控制机制。为此,当应用使用UDP发送大量数据包时极容易出现问题。互联网中的通信,即使使用UDP也应该控制拥塞。而这个机制开发人员很难将其融合至协议中,于是便出现了DCCP这样的规范。
DCCP具有如下几个特点:
珍与UDP—样,不能提供发送数据的可靠性传输。
珍它面向连接,具备建立连接与断开连接的处理。在建立和断开连接上是具有可靠性。
®能够根据网络拥堵情况进行拥塞控制。使用DCCP (RFC4340)应用可以根据自身特点选择两种方法进行拥塞控制。它们分别是“类似TCP (TCP- like)拥塞控制”和 “TCP 友好升级控制”(TCP-Friendly Rate Control)▼ (RFC4341)0
need-to-insert-img
®为了进行拥塞控制,接收端收到包以后返回确认应答(ACK)。该确认应答将被用于重发与否的判断。
网友评论