天天看点

RUDP:可靠用户数据报协议

RUDP:可靠用户数据报协议
RUDP:可靠用户数据报协议
(RUDP:Reliable UDP)

  可靠用户数据报协议(RUDP)是一种基于可靠数据协议 (RDP: RFC908 和 1151 (第二版 )) 的简单分组传输协议。作为一个可靠传输协议, RUDP 用于传输 IP 网络间的电话信号。它允许独立配置每个连接属性,这样在不同的平台可以同时实施不同传输需求下的协议。 UDP/IP 协议中的 RUDP 是分层的并为虚拟连接提供可靠有序发送(直到重新发送的最大数目)。 RUDP 设计灵活,便于多种传输层使用。传输电讯号协议就是其应用之一。

  RUDP 提供一组数据服务质量增强机制,如拥塞控制的改进、重发机制及淡化服务器算法等,从而在包丢失和网络拥塞的情况下, RTP 客户机(实时位置)面前呈现的就是一个高质量的 RTP 流。在不干扰协议的实时特性的同时,可靠 UDP 的拥塞控制机制允许 TCP 方式下的流控制行为。

  为了与网络 TCP 通信量同时工作, RUDP 使用类似于 TCP 的重发机制和拥塞控制算法。在最大化利用可用带宽上,这些算法都得到了很好的证明。  

  RUDP 特征包括:

  • 客户机确认响应服务器发送给客户机的包;
  • 视窗和拥塞控制,服务器不能超出当前允许带宽;
  • 一旦发生包丢失,服务器重发给客户机;
  • 比实时流更快速,称为“缓存溢出”。
RUDP:可靠用户数据报协议
协议结构
1 2 3 4 5 6 7 8 16bit
SYN ACK EAK RST NUL CHK TCS Header Length
Sequence number Ack number
Checksum
  Control Bits ― 表示数据包当前状态,具体细节如下:
  • SYN:SYN 位表示当前为同步段
  • ACK:ACK 位表示协议头有效的承认序号。
  • EACK:EACK 位表示当前为扩展承认字段。
  • RST:RST 位表示该数据包为复位字段。
  • NUL:NUL 位表示该数据包为空字段。.
  • CHK:CHK 位表示检验和字段是否包含协议头或协议头与主体(数据)的检验和。
  • TCS:TCS位表示该数据包是传输连接状态字段。
  • 0:表示该字段的值必须设置为0。

  Header Length ― 表示数据包中的用户数据起始位置。

  Sequence Number ― 当打开第一个连接,每个对等结构任意选取一个初始序列号。该序列号用于SYN字段打开连接。在发送数据、空或复位字段之前,每个传送方会相应增加序列号。

  Acknowledgement Number ― 该字段表示传送方最后传送接收方接收的数据包的序列。

  Checksum ― 协议头中总会计算出检验和以确保完整性。这里检验和的算法与UDP和TCP协议头检验和的算法相同。

相关协议 UDP、RDP、IP、TCP
组织来源 RUDP 由 IETF(http://www.ietf.org)讨论商榷,记录在文件备忘录中。
相关链接

http://www.javvin.com/protocol/reliable-UDP.pdf:Reliable UDP protocol

http://www.javvin.com/protocol/rfc908.pdf:Reliable Data Protocol(RDP)

http://www.javvin.com/protocol/rfc1151.pdf:Version 2 of the Reliable Data Protocol(RDP)