【架构】5.1UDP可靠传输实现

0.学习链接

可靠UDP-KCP

QUIC协议

快速可靠协议-KCP

BBR算法

1.知识复习

1.1 UDP与TCP的区别

属性描述UDPTCP
是否连接无连接面向连接
是否可靠不可靠传输,不使用流量控制和拥塞控制可靠传输,使用流量控制和拥塞控制
连接对象个数支持一对一,一对多,多对一和多对多交互通信只能是一对一通信
传输方式面向报文面向字节流
首部开销首部开销小,仅8字节首部最小20字节,最大60字节
适用场景适用于实时应用(IP电话、视频会议、直播等)游戏行业、物联网行业适用于要求可靠传输的应用,例如文件传输

1.2 RTO-超时重传的等待时间

超时重传指的是,发送数据包在一定的时间周期内没有收到相应的ACK,等待一定的时间,超时之后就认为这个数据包丢失,就会重新发送. 这个等待时间被称为RTO.

1.3 慢启动

慢启动,是传输控制协议使用的一种阻塞控制机制. 慢启动也叫做指数增长期. 慢启动是指每次TCP接收窗口收到确认时都会增长. 增加的大小就是已确认段的数目.

这种情况一直保持到要么没有收到一些段,要么窗口大小到达预先定义的阈值. 如果发生丢失事件,TCP就认为这是网络阻塞,就会采取措施减轻网络拥挤. 一旦发

生丢失事件或者到达阈值,TCP就会进入线性增长阶段. 这时,每经过一个RTT窗口增长一个段. 

TCP的慢启动会导致带宽的浪费.

2.KCP(可靠UDP的一种实现)设计思路

2.1 需要解决的问题是什么?

解决的是流量的问题还是延迟(流速)的问题呢?主要是解决的延迟(流速)的问题. 要注意流量和流速的不同.

流量-带宽,流速-延迟

2.2 需要考虑哪些方面?

◼ ACK机制
◼ 重传机制
◼ 序号机制
◼ 重排机制
◼ 窗口机制

2.3 KCP的设计思路

(1)超时重传的时间的为上一次的1.25倍;
(2)重传采用选择性重传,只重传真正丢失的数据包;
(3)快速重传,跳过多少个包马上重传,如果使用了快速重传,可以不考虑RTO;
(4)将ACK是否延迟发送设置为可调节的;
(5)除去ACK包外,所有包都附加UNA信息;
(6)非退让流控模式,提供仅由发送缓存大小、接收端剩余接收缓存大小来控制发送频率的模式.

2.4 KCP与TCP的比较

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值