SDT 协议
SDT协议就是适用于广域网场景下的可靠UDP协议。具有非常良好的丢包重传机制,丢包重传的控制消息非常丰富,同时支持ACK、ACKACK、NACK。另一方面,由于SDT建立在UDP协议之上,解决了TCP协议传输延迟高的问题,比TCP具有更低的延时。同时SDT对上层提供了丰富的拥塞控制统计信息,包括RTT、丢包率、inflight、send/receive bitrate等。利用这些丰富的信息,可以实现带宽预测,并根据带宽的变化在编码层去做自适应动态编码与拥塞控制。
SDT协议还具备功能强大拥塞控制能力,SDT相对TCP拥塞控制优点包括抗丢包能力强、延迟低、抢占能力强和平稳发送。TCP拥塞控制算法并没有平稳发送的说法,而只是判断发送与否的问题,SDT会平稳的发送数据,不会突发流量冲击。以视频播放为例,设置视频帧率为23帧,分别对比TCP与SDT在广域网场景下的实际显示帧率。测试结果如下:
可以看到在网络状况非常复杂的情况下,播放视频这种重载场景,SDT依旧能够提供一个相对不错的视频观看体验。