作者对延迟的定义是否存在歧义?RTT,是网络链路的固有属性,传播时延是不可优化的,因为光速就那么点,链路长度除以光速,延迟是算的出来的。“单个数据包从一端发送到一端需要多少时间”,不考虑协议栈,单纯算两端网卡发包和收包的时间间隔,是delay,是固有链路属性,受制于链路和队列。两端链路对称的情况下,是RTT/2.
作者对延迟的定义是?
5jvtdoz21#
RTT是从发出一个包到接收到这个包的ACK的时间
xxls0lw82#
IMO,调整的是 packet 发送的 pacing,让 packet 尽快对链路的当前状况进行响应,是一个高层级的概念,而不是「传播延时」。
zte4gxcn3#
我也觉得有歧义,看到延时,第一反应就是链路延时,而实际上对于网络延时,如果链路不丢包,kcp只会增加链路延时
r7knjye24#
如果链路不丢包,你也不需要tcp协议了,对吧?再,如果链路不丢包 kcp 并不会引入啥新的额外延迟。
k4emjkb15#
这就要看如何实现任务调度器了,比如kcp-go实现的任务调度器每隔10ms刷新一次任务,就会导致链路延时增加0~10ms
5条答案
按热度按时间5jvtdoz21#
RTT是从发出一个包到接收到这个包的ACK的时间
xxls0lw82#
IMO,调整的是 packet 发送的 pacing,让 packet 尽快对链路的当前状况进行响应,是一个高层级的概念,而不是「传播延时」。
zte4gxcn3#
我也觉得有歧义,看到延时,第一反应就是链路延时,而实际上对于网络延时,如果链路不丢包,kcp只会增加链路延时
r7knjye24#
如果链路不丢包,你也不需要tcp协议了,对吧?
再,如果链路不丢包 kcp 并不会引入啥新的额外延迟。
k4emjkb15#
这就要看如何实现任务调度器了,比如kcp-go实现的任务调度器每隔10ms刷新一次任务,就会导致链路延时增加0~10ms