在选择服务器时,一些商家会宣称自己有多么多么好的线路,晚高峰稳定之类的,并且给出一个优秀的24小时延迟测试图,然而这真的靠谱吗?
什么是"大小包"?
"大小包"指的是一些VPS服务商根据数据包大小采用不同的网络路由策略:
- 小包:通常走优化过的路由,这也是服务商常常宣传的线路。
- 大包:可能会走未经优化的路由,导致性能下降,但是服务商成本低。
用个更通俗的方式解释
MTU简单说就是一辆卡车的大小,你数据包相当于包裹,卡车大自然可以装大包裹,卡车小我也可以把大包裹拆分成小包裹发,只是效率低一些而已
但是现在商家,给你小包裹走高速路,大包裹走土路,你ping测路由都是小包裹,你以为是走高速,等你买来真正开始使用,才发现走是土路
一个走「土路」的香港服务器路由示意图
去香港明明可以广州出口直连香港,他硬是往美国跑了一圈
一个走「高速路」的香港服务器国际路由示意图
直接广州出口连香港,没有任何绕路
为什么ping测试可能具有欺骗性
大小包的服务商会在你传输小数据包(ping服务器)的时候,让你直连走上面的高速路,一开始正式使用(正常使用往往都是大包),就让你走土路。如果服务商黑心,你去ping是ping不出来实际体验的
如何检测大小包
我们可以使用nexttrace工具来检测VPS是否存在大小包路由问题。以下是具体步骤:
- 安装nexttrace:
curl nxtrace.org/nt | bash - 运行测试命令:
nexttrace --tcp --psize 12 202.96.209.133:80 && nexttrace --tcp --psize 1452 202.96.209.133:80这个命令会向位于上海电信的IP地址发送两次测试:
- 第一次发送12KB的小包
- 第二次发送1452KB的大包
- 比较两次输出结果,观察路由是否相同。如果路由不同,那么很可能存在大小包问题
注意事项
提一下打包为什么是1452KB这个数字,因为过于大的包体积可能超过超过了以太网帧的体积。可以看看网卡的MTU,用过大的包没有意义,数据包会被切片的。
1452字节的包大小,这是考虑了各种网络协议开销后的比较合适的选择:
1452字节 = 1518(以太网帧大小)-18字节(帧头尾)-8字节(可能存在的拨号信息)-20字节(IP信息)-20字节(TCP协议头)