1. 如何做可靠性传输?
ack机制、重传机制、序号机制、重排机制(网络包乱序)、窗口机制
2. 如何选择TCP和UDP?
当实时性要求高,选择UDP:直播、音视频通话、游戏......
使用短连接时:
- 物联网传感器上报数据,采集完就休眠,采用UDP可以省电
- 大规模服务器心跳包设计,集中服务器监测,用来监控十万台服务器
3. UDP如何可靠?KCP协议的优势是什么?
可靠性UDP为了解决延迟问题 流量 = 带宽,流速 = 延迟 可靠+兼容速率——加序号
- RTO不翻倍:TCP的超时重传间隔RTO是以2倍增加,但KCP以1.5倍增加(可以控制RTO,降低延迟)
- 选择性重传:TCP从丢的那个包开始后面的所有包全部重传,KCP只重传真正丢的包
- 快速重传:KCP使用快速重传机制,可以不考虑RTO,直接重传,改善了丢包时的传输速度
- 非延迟ACK:TCP为了充分利用带宽,延迟发送ACK,计算出较大的RTT,延长丢包的判断过程;KCP的ACK是否延迟可以调节
- ACK+UNA