客户业务量激增的同时,直播间却愈发卡顿。为此,我们将工作室的宽带升级为百兆专线,上行带宽理应达到百兆,但实测发现,数据经过路由器后,上行速率竟然掉到了80Mbps以下。
本期分享的案例就与有线网络的此类问题相关。
背景介绍
客户是一位网红主播,凭借出色的颜值与身材……近期流量与人气俱佳,业务猛增的同时,直播间的卡顿问题却日益严重。于是我们为其工作室更换了百兆专线,上行理应拉满百兆,结果却发现,数据经过路由器后,上行速率陡降至80Mbps以下。具体情况如下:
专线直连PC,测得上行速率超过100Mbps:

专线经过路由器、交换机再至PC,上行速度则大幅下滑,已不足80Mbps:

这可还行?小姐姐的愤怒值直接拉满了!
好吧,有问题我们就来解决问题。让我们一起看看这个问题该如何解决~
排查思路
针对这种测速异常,我们通常从以下几个方面进行分析:
线路质量不佳,端口速率协商不符合预期;测速服务器选择不当,需通过多种测速手段对比验证;IPv6可能带来的影响;路由器自身出现异常,例如未启用硬件转发等,可尝试重启;触发了流控或其他兼容性问题等。
排查分析
(1) 第一步:确认端口协商等线路问题
经过排查,无论是专线接口、路由器连接口还是PC,其端口速率协商基本都正常。路由器页面显示如下:

(2) 第二步:确定多种方式测速是否同样存在低吞吐问题
考虑到是否与特定测速方式存在线路兼容性问题,我们更换了另一个测速平台“中国科学技术大学测速”,结果发现情况大同小异:
专线光猫直连PC:上行超过100Mbps,下行超过100Mbps;专线光猫通过路由器连接PC:上行80Mbps左右,下行超过100Mbps。
所以看来问题仍出在路由环节,表现为上行异常而下行正常。于是我们尝试关闭IPv6、修改DNS等基本参数、重启设备,发现问题依旧。但在排查过程中,我们发现了拓扑上的异常。
(3) 第三步:梳理拓扑连接
我们发现,实际的网络拓扑是:专线(100M)— 路由器(1G)— PC
从这个拓扑分析:上行数据是从高速端口涌向低速端口(100M < 1G),会产生大量数据包因缓冲溢出而丢失,从而导致测速结果因网络震荡而降低。而下行数据是从低速端口发往高速端口(100M > 1G),不存在缓冲溢出的问题,因此测速结果稳定。
但理论上来说,这种情况应当触发流控帧进行调流才对,我们来看看是否如此:

确实能看到PC所在的千兆网口触发了流控,理论上路由器应该发送流控帧通知PC放慢发送速度,这样调流后网络应该恢复正常。可直播用的PC似乎不听从指令或是不支持?查看了一下PC的网卡设置,默认的TX&RX流控都是开启的:

有点玄学!不管了,反正大概率就是这个1G到100M的端口速率不匹配导致的丢包。为了进一步验证,我们将PC网口手动改为100M全双工模式,保证专线—路由器—PC整个链路都是纯百兆环境再进行测试:

这样一来,拓扑链路变为:专线(100M)— 路由器(100M)— PC
好了,开测!

上行速率稳定在100Mbps以上了。但网红小姐姐不满意啊!谁允许你擅自修改PC网卡速率的,我要的是千兆!
那么解决方案如下。
原理及解决方案
问题原因:
专线(100M)— 路由器(1G)— PC,这个拓扑下上行数据是从高速端口跑向低速端口,会产生大量的包因缓冲区溢出而丢失,所以测速会降低。和PC直连专线的模型不一样,测试符合预期。而专线(100M)— PC,网口速率是对等的,不存在百兆丢包问题,所以上行不丢包。
解决方案:更换一个千兆网口的光猫,保证链路协商全千兆,可以解决这个问题。
注意:是千兆网口的光猫,而不是带宽千兆的光猫哦。
