前几天我在家用台式机折腾点东西,结果看流量监控的时候发现网速慢得跟蜗牛一样,卡得要命。我就寻思着,这到底啥情况,之前也没这么卡过。翻来覆去查了一通,有人说是那个tcp确认包频率搞高了惹的祸,我就来了劲,决定亲自撸袖子试一试。
先动手搭测试环境
我找了台破旧的笔记本电脑当服务器,另一个常用的台式机当客户端,两个玩意儿都用网线接在同一个路由器上,省得外网干扰。装了个免费的流量监控软件,能实时看带宽消耗和延迟变化,这玩意儿不用钱还挺好用。接着我在服务器上鼓捣了一下windows注册表,改了几个键值,把那个tcp确认包频率硬生生调高了十倍,平常是默认值嘛我这下子搞了个极端值,想看看最坏情况会是啥样。
- 调高后,重启了电脑确保设置生效。
- 台式机这边也配置好监控工具,目标ip指定服务器。
开始疯狂跑测试
一切就绪,我先拿台式机下载服务器上的一个大文件试试看。点下开始下载按钮,流量监控立马就飙起来了,带宽读数蹭蹭往上涨,但网速反而跌得厉害,下载进度条慢吞吞的,跟便秘似的。我不死心,又搞了个小文件快速传输实验,这回还是老样子——带宽吃满了,可延迟数据一瞅,比之前高了几十毫秒,玩个网游估计都卡成幻灯片。
- 测试中途我还试了试视频流传输,结果画质糊了不说,加载时断断续续。
- 反复折腾了五六轮,每次数据都差不多重复:带宽被占光,延迟拉高,用户体验稀碎。
分析具体影响
弄完测试,我对着监控图琢磨了半天。带宽这块儿,tcp确认包频率一高,它就跟疯狗似的占用大量通道空间,平常能传十份数据的网络,现在只够传一份还丢包。延迟就更惨了,每多一个包来回确认,就得排队等轮子,服务器和客户端都在那儿互瞪眼浪费时间,整个链条慢悠悠,用户看着转圈圈干着急。简单说就是:带宽浪费,延迟增厚,整个网速反而降档。
收工前,我明白了为啥有人调这个值会翻车。不是啥高大上的道理,就是贪心不足蛇吞象嘛频率调太高反而坏事儿,不如老老实实用默认值来得稳当。