- 博客(11)
- 收藏
- 关注
原创 delay_ack引发bbr速率掉底血案(下)
前一篇说到delay_ack对应数据包采样值带宽值很不巧刚好更新了带宽,造成了速率的陡降的问题。客户表示升级了linux系统也能解决问题,但是升级所有线上机器的内核周期太长。升级内核版本为何能修复这个问题呢?新内核版本并没有禁用delay_ack,也没有增加delay_ack情况下不进行带宽更新操作。所以还需要弄明白是新版本的内核是哪个变更规避了delay_ack带来的影响。重新仔细看了下吞吐曲线图,实际上4分钟内不止出现了4次码率掉底问题,比较明显的就出现了6次,还有好几个很快就恢复吞吐量下降的.
2022-01-14 15:28:50
469
原创 delay_ack引发bbr速率掉底血案(上)
“时延低的传输速率一定高于时延高的网络”,“hash表的查询操作只需要O(1)的时间”,“bbr拥塞算法优于cubic算法”。“大部分场景”都正确并不适用所有场景,但是平时大家总是将这些“大部分正常”当作永远正确来处理。然而小概率并不是不发生,就程序而言,我们写的程序逻辑在大部分场景都是正常,但是可能某些场景下就会出现逻辑异常,也就是我们常说的程序bug。今天我要说的delay_ack导致的bbr速率异常问题也是一种“小部分场景”异常的问题。在推动某头部直播客户上云的过程中,客户投诉卡顿率飙升,主要表现
2022-01-13 17:26:48
737
原创 客户端Connection reset by peer怎么办?——可能只是被劫持了(2)
之前写过一篇关于中间设备劫持,造成客户端建连报错 Connection reset by peer的错误,具体可以通过下方链接查看。客户端Connection reset by peer怎么办?——可能只是被劫持了_qq_40894952的博客-CSDN博客有人私聊问我“你是如何判断出被劫持了,我这也有类似的问题,百分百复现能帮忙看看”。既然是百分百复现,那就很爽快的接下这个“锅”。不仅可以了解更多的案例,而且运气好还可以帮助同事解决具体问题。就了解了下具体问题描述。...
2021-11-22 16:33:59
965
原创 客户端Connection reset by peer怎么办?——可能只是服务端挂了
cdn线网运营总会遇到有各种各样的奇怪问题,而导致这些问题却对应的各种各样的原因。有些原因查出来却总叫人哭笑不得,比如本案例所说的,服务端的程序挂了导致的connection reset by peer问题。这种最基础的原因却往往最能怀疑到,我个人觉得主要原因有以下两点。一,定式思维总会让人最先排出掉最接近真相到原因。有点类似高中做题,总容易先入为主,陷入死胡同。二,没有人对各种原因做归纳总结,不同的原因导致的虽然都是连接失败这一现象,但如果深入研究,一定有独特的特征。需要有人说出“白马”和“黑马”
2021-06-22 20:42:52
5332
2
原创 客户端Connection reset by peer怎么办?——可能只是被劫持了
网络问题排查基本就是扯皮,扯不清也道不明。在cdn厂商多年,质量问题排查出来的结论:中间设备劫持连接了。然而客户爸爸们总觉得我们是甩锅,逃避cdn质量问题。最近又碰到一个客户投诉问题,为了让更多的人了解确实存在劫持过程,打算写下此文。某客户A在我司的cdn之后,被我们节点reset的请求占比高。并且客户的日志分析就有较高的ip聚集性。可是每次被reset的客户ip不固定,客户只有真实用户手机上报的失败信息,不能配合双端抓包。真是“人在家中坐,锅从天上来”,查呗,就是专业干这个活的...
2021-06-19 11:49:34
1851
原创 BBR_v2.0真的要来了!
昨天google在BBR论坛上发布了,BBR算法小组的最新进展。链接如下BBR Congestion Control Work at Google IETF 102 Updates:https://datatracker.ietf.org/meeting/102/materials/slides-102-iccrg-an-update-on-bbr-work-at-google-00 B...
2018-07-25 16:01:28
11796
5
原创 BBR中乱序对带宽采集的影响
BBR算法中,网络带宽和最小延迟是两个最重要的变量,网络带宽是使用minmax变量进行十轮过滤出一个最大值,而各种情况下的带宽采集计算的准确性就十分重要,之前就有一篇关于delay-ack对BBR带宽采集影响的介绍,https://blog.csdn.net/qq_40894952/article/details/80626423 。如果有啥说的不对的地方,欢迎大家指正。回到乱序对带宽采集的影响,...
2018-07-11 11:17:27
1191
1
原创 一个更高效的RACK机制
tcp在kernel-4.3内核中加入了RACK机制,用从时间维度上来判断丢包,用最新被(S)ACK确认的数据包为基准,其发送时间减去一个乱序时间窗口之前的数据包如果没有收到反馈,就可以判断为丢失了。主要为了解决尾部丢包和二次重传的问题。旧版RACK一个比较明显的缺点就是容易误判,尤其是在重传数据包被(S)ACK确认,是否更新最近被确认的数据包问题上,只是简单用判断重传到被确认的时间是否大于min...
2018-06-14 11:21:01
2428
原创 BBR算法中轮数计算方法
轮数在拥塞算法中是一个重要的概念,基于丢包的拥塞算法中,比如reno算法在拥塞避免阶段,每轮进行一次拥塞窗口加1,bic算法也是每轮进行一次拥塞窗口增加,只是增加的幅度不同,而基于时延的拥塞算法,如vegas算法,检测出一轮内的最小rtt_us值,与rtt_min对比推断得到当前网络的数据包排队的情况。这些例子中可以看出,对于算法的实现都需要考虑轮数的统计。 那算法是...
2018-06-08 18:14:44
1296
原创 delay-ack对BBR带宽采集的影响
BBR算法带宽时延积BDP是最为重要的一个变量,而公式BDP = Bw * min_RTT,即等于链路带宽乘以最小传输时延,Bw和min_RTT的准确性直接影响了最终BBR算法的传输效果。min_RTT的估算,是通过不断比较记录一个最小的rtt值,如果超过10s没有更新过min_RTT,则进入到Probe_RTT模式中,将发送数据量减小到4个包,来探测当前的最小min_RTT值。这种方式其实也会存...
2018-06-08 17:57:39
1327
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人