高速公路和 TCP/IP 的负载均衡和拥塞

长假小长假返程堵车问题非常有趣,很多人都在抱怨,新闻也在各种报道,但这么多年几乎没人想办法绕开拥堵,明知道那个时间那条路会堵,却依然在那个时间涌入那条路。

​这件事其实很容易解释,人们内心对这种拥堵是容忍的,是可预期的,也就是说人们在假期里专门安排了几十个小时的拥堵时间,比如他们提前 52 个小时返程,这 52 个小时里已经包含了堵车的 50 个小时。这是一种消极的对抗。

​如果仔细看路况地图,以长三角上海嘉定城区(一定要具体到街道才能显示自己牛逼)为中心辐射,仍然可以找到负载很低的要么不知名,要么稍微绕路的高速公路,但 G60,G2 却是万年拥堵。比如从杭州到嘉定城区,导航一定会推荐 G60,由于当代开车的离开导航几乎看不懂地图,甚至找不到家,拥堵问题很大程度可以归结为导航的问题,如果从杭州往嘉定城区走,走环杭州湾环路往浦东机场方向就会快很多,但由于 "浦东机场不在嘉定",这条路几乎没人走,此外从苏州阳澄湖回嘉定,沪宜也比京沪高尚,但如何绕开 G15 进嘉定那段,需要一定技巧。不如不听导航的,故意走错,让它重新规划,避开让你掉头返回的,至少能避开从众,此外也有一种 "逐跳路由" 的思想。

​但没人为了回个家这么折腾,靠导航就完了,省事,输入目的地即可,剩下的交给时间。我把这个问题归为负载均衡问题,而不是拥塞成因问题,拥塞问题成因更有趣,最后再说。

​在 TCP/IP 网络上这个负载均衡问题早就存在了,那时中国的高速公路网还很稀疏,大部分家庭根本没车,更别提万恶的导航 app 了。TCP/IP 的负载不均衡问题归结为 IP 路由(ecmp是后来的派池,不解决根本问题),但和高速公路导航不同的是,IP 路由是逐跳路由,具体的负载均衡情况取决于路由算法的精度,你把 RTT 加入权重,路由度量自然也就绕开了拥塞段。

最后说说高速公路拥塞成因,车辆间距太小是根因。

可以将两车之间的间距看做 buffer ,假设这个 buffer 足够大,如果前车由于喝口水,点根烟这种杂事轻轻踩了一下刹车随后又加速,后车可以无视前车这个动作,保持匀速,但如果 buffer 太小,后车就不得不也踩刹车,但后车并不知道前车只是稍微抖动一下,反应时间肯定比前车自主刹车加速的间隔大,以此往后推,形成一列波长越来越长的刹车波(红移?有道理),这直接影响了道路上车流的平均速度,这就是堵车的根源,所以保持足够的安全车距不光安全,还能缓解堵车,但这需要大量车一致行动,这才是难点,每辆车的司机都是自私的,只要你跟前车保持了足够的距离,就一定会有车插进去,如果距离还足够,就会再插入一辆,SB 行为。

在 TCP/IP 网络上,rate--based pacing 可以解决这个问题,但和高速公路一样,大多数连接还是 AIMD 以 burst 方式突发,只要你pacing 肯定会有 aimd 就加塞,挤占 buffer ,从而挤压 pacing 流的吞吐。几乎所有搞传输优化的和路上开车的人一样,不懂得松弛,比如对于弱网丢包吞吐低的优化问题,绝对不是激进发送能突破的,反而把它识别出来,退回到 reno 更有效。

TCP/IP 网络传输滥用,误用,透支了 buffer,高速公路开车的人也滥用, 误用,透支了 buffer,所以我一直最讨厌的就是那些搞传输优化的人,就跟我讨厌开车的人一样,前几天去阳澄湖,碰到一个人肉占车位的,就是不让位,也不说话,低头看手机,没办法,临走前喊了一句"傻逼!",一切不高尚的根源,在于滥用,透支资源。

皮鞋没有蹬上,露着白袜子。

浙江温州皮鞋湿,下雨进水不会胖。

相关推荐
treesforest1 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
程序员mine1 天前
HTTPS-TLS加密与证书完全指南(中)
网络协议·https·ssl
之歆1 天前
现代 HTTP 客户端深度解析:Fetch 与 Axios
chrome·网络协议·http
江华森1 天前
TCP/IP 协议栈实战 — 7 个实验详解
网络·tcp/ip·智能路由器
酉鬼女又兒1 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog2501 天前
不要再继续优化 TCP
网络协议·tcp/ip·php
程序员mine1 天前
HTTPS-TLS加密与证书完全指南(上)
网络协议·https
Shepherd06191 天前
【IT 运维】Apache 使用 mod_remoteip 恢复 Cloudflare 后的真实访客 IP
运维·tcp/ip·apache
VidDown1 天前
视频帧率技术详解:从 24fps 到 120fps,帧率如何影响你的观看体验?
网络·网络协议·编辑器·音视频·视频编解码·视频
C++ 老炮儿的技术栈1 天前
Qt工控实战:自研机器人TCP长连接客户端(粘包处理+心跳保活+自动重连完整源码解析)
qt·tcp/ip·机器人