完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
摘要: 本文作者:白金,《CDN 之我见》是一个系列文章,共由三个篇章组成,分为“原理篇”、“详解篇”和“陨坑篇”。本篇章属于“详解篇”的第一部分:网络优化。详解篇适合那些接触过 CDN,对 CDN 多少有些了解,但很多知识点知其然而不知其所以然,想深入了解学习的同学。本文作者:白金
上篇回顾:《CDN 之我见》系列二:原理篇(缓存、安全)https://yq.aliyun.com/articles/599253《CDN 之我见》是一个系列文章,共由三个篇章组成,分为“原理篇”、“详解篇”和“陨坑篇”。本篇章属于“详解篇”的第一部分:网络优化。详解篇适合那些接触过 CDN,对 CDN 多少有些了解,但很多知识点知其然而不知其所以然,想深入了解学习的同学。 L2 链路层:资源好坏(寻找更快的网络节点、确保 Lastmile 尽量短) L3 路由层:路径优化(寻找 A 到 B 的最短路径) L4 传输层:协议栈优化(TCP Optimization) L7 应用层:能做的事情太多了(主要面向 HTTP 面向业务)
https://developers.google.com/speed/protocols/tcp_initcwnd_techreport.pdf2.单位时间内(一个 RTT)发送量不是 CWND,而是 min(CWND, RWND)除了数据发送端有个 CWND 以外,数据接收端还有个 RWND(Receive Window,接收窗口),决定还能接收多少数据,并通过接收确认报文显性告知数据发送端,发送端要参考 CWND 和 RWND 信息决定最终发送的数据量(packet 个数)。管道中究竟能放多少数据,取决于 CWND 和 RWND。另一个问题:TCP 怎么了?TCP 有什么问题吗?如果能问出这个问题,证明同学们的关注点是正确的。TCP 是在上个世纪六七十年代设计的,当时面向的是短距离传输、窄带(可能还是半双工通信)的链路环境。链路本身不太可能丢包,丢包基本都是因为链路拥塞造成的。根据早起的 TCP 拥塞控制算法,丢包 -> 降速,再丢 -> 再降,算法本身的目的是希望通过降速来规避拥塞,进而规避丢包情况。这个算法本身的理念是正确的,但是随着时代的发展,有了 4G,有了 WiFi,有了长距传输,有了策略性丢包逻辑,导致 TCP 传输过程中,丢包不一定就是拥塞造成的,如果按照传统的“丢包就降速”策略来考虑问题,可能不但不能缓解问题,甚至可能会导致问题更加恶化。举个例子来说,在一个平均随机丢包 50% 的链路上(平均发出去的包,每 2 个就必然丢 1 个),在这种环境下,发现丢包了,降速发送有用吗?答案毋庸置疑,降速只会让对端收到的有效数据更少。这种环境如何优化呢?很简单,每个包发 2 遍不就可以了?这样对端就会 100% 收到数据了,但代价就是发送端的出口流量是之前的 2 倍。当然,真正在做 TCP 优化时不是这么简单的,要考虑很多细节,例如如何区分丢包原因,例如该如何控制 CWND,例如如何更早的发现接收端没收到数据,例如当对端无响应时如何快速感知等等等等……
|
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
3615 浏览 3 评论
1851 浏览 3 评论
5250 浏览 1 评论
2412 浏览 1 评论
3616 浏览 2 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 21:06 , Processed in 0.687368 second(s), Total 48, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2458