“CN2还是BGP”,听上去是个二选一的问题,其实这两个词说的不是同一个层面的东西:一个指的是一张具体的网络,另一个指的是网络之间交换路由信息的方式。把它们当作并列的选项去比较,延迟差多少这个问题,从一开始就没法回答。
CN2是中国电信的下一代承载网。在跨境线路产品里,CN2一般指的是借助这张网络去往海外的线路,常见的产品名称有CN2 GIA和CN2 GT。从路由的角度看,CN2在互联网上通常对应AS4809这个自治系统号,而中国电信普通的骨干网,也就是常说的163网络,通常对应AS4134。
BGP是边界网关协议。互联网由许多相互独立管理的网络组成,每一个叫作自治系统,比如一家运营商的网络,或者一家大型机构的网络。自治系统之间靠BGP交换路由信息,互相告知“去往某一段IP地址,可以从我这里走”。
在机房和云主机的宣传里,“BGP线路”常常指多线BGP:机房拥有自己的IP段和AS号,同时接入电信、联通、移动等多家运营商,通过BGP把路由宣告出去,让不同运营商的用户,都有机会走到相对直接的路径。
BGP是一种协议,CN2是一张网络,两者不在同一个层面。CN2网络内部、以及它与别的网络之间,同样依靠BGP来交换路由。一个服务商的线路,可能同时涉及BGP的路由方式和某家运营商的特定网络,比如一条多线BGP的接入,其中某个方向走的恰好是CN2。所以更有意义的问题,不是“选CN2还是选BGP”,而是这条线路的数据,实际走哪些网络,从哪里出去,又从哪里回来。
GIA和GT,是CN2产品里常见的两类名称。通常的理解是,GIA在国内段和跨境段都尽可能走CN2的网络,GT则只有部分路径走CN2,其余部分仍然走普通骨干网。这只是对名称的一般性描述,不能仅凭宣传的名称,就断定实际的接入和回程路径。
核实的办法,是在服务器上执行一次带AS号的mtr,把去往你的用户所在网络的路径看一遍:
mtr -rwzc 100 用户侧测试IP
下面是一份示意输出,数据为说明用的假设值,不是实测,IP使用的是文档保留地址:
1.|-- AS4809 192.0.2.1 0.0% 100 0.5 0.4 1.2
2.|-- AS4809 192.0.2.5 0.0% 100 1.8 1.6 3.0
3.|-- AS4134 198.51.100.9 0.0% 100 24.6 23.9 31.2
4.|-- AS4134 203.0.113.17 0.0% 100 26.1 25.0 35.4
读这样一份输出,关注的是AS号在哪一跳发生了变化。示意里,前两跳在AS4809,第三跳起就换成了AS4134,说明回程路径并没有一路走CN2,只在靠近出口的一小段用到了它。这样的细节,宣传页上是看不到的,必须看实际的路由。
延迟差距不是线路的固有属性,它是下面这些因素共同作用的结果。
用户所在地与运营商。同一台服务器,北京的电信用户和广州的移动用户,走的路径可能完全不一样,延迟自然不同。
机房出口、回程路由及目标网络。去程和回程可能是两条不同的路径,用户的体验取决于回程,而回程由机房的出口配置决定。
高峰时段是否拥塞。白天表现很好的路径,到了晚间用户集中访问的时候,可能出现拥塞,延迟和丢包都会上升。
目标服务器所在的地域和网络。测试的对象是内地用户,还是海外用户,路径完全不同,对比的结论也不能混用。
服务商实际交付的带宽与网络方案。同样标注为某种线路,不同服务商在带宽、是否共享、接入方式上的实现可能不一样,这些都会影响实际的表现。
只记一个平均延迟,是最常见的偷懒方式,也是最容易得出错误结论的方式。建议同时记录下面这些:
记录的数据 | 反映什么 | 常用工具 |
平均RTT、中位数、最大延迟 | 整体水平,以及偶发的延迟尖峰 | ping,统计后取中位数 |
丢包率与抖动 | 线路的连续性,对实时业务尤其重要 | ping、mtr(看Loss与StDev) |
不同时段的稳定性 | 高峰期是否拥塞 | 定时重复采样 |
Traceroute/MTR路由记录 | 数据实际走过哪些网络,哪一跳开始变差 | mtr -rwzc、traceroute -A |
网页响应或应用请求耗时 | 用户真正感受到的速度 | curl -w,应用自身的日志 |
可复现的意思是,换一个人、换一个时间,按同样的方法,应该能得到相近的结论。要做到这一点,有五个原则:
1. 使用相同的测试源和目的地址。比较两条线路时,测试源和目的地址必须是同一批,否则差异里混进了别的因素。
2. 在高峰和非高峰时段采样。至少覆盖正常时段和目标用户的高峰时段,晚间的结果往往更有说服力。
3. 保持测试次数与统计方法一致。每次测多少个包,怎么统计,是取平均还是取中位数,都保持不变。
4. 记录测试日期、运营商与路由变化。路由会随时间变化,同一条线路在不同的日期,路径可能不一样,所以日期、运营商和路由的变化都要记。
5. 分别报告结果。把平均、中位数、最大值、丢包分别列出来,不用单一的最低值,去代替整体的表现。
定时采样可以用cron来做,每半小时记录一次,连续跑几天,就能看到不同时段的变化:
*/30 * * * * mtr -rwzc 50 目标IP >> /var/log/mtr_hk.log 2>&1
不能仅根据线路标签,就作出这样的结论。某一条CN2的路径,可能很适合特定的内地访问场景;而另一些BGP的路径,在不同的目标地区,同样可能表现得很好。有时候两条看着不同的线路,实际走的路径很接近,有时候同样叫CN2的两条线路,路径却差别很大。
最终起决定作用的,是实际的链路:从你的用户所在的网络出发,经过了哪些自治系统,在哪里拥塞,又是怎么回来的。这些只能通过测量得到,不能靠名称推断。
可以用业务的目标,来决定线路测试的范围。网站主要面向内地用户的话,测试应侧重在不同运营商、不同城市的访问结果;如果面向海外,则需要测试目标国家和地区的网络表现。先核对线路的信息,也就是线路类型、接入的运营商、实际的路由,再决定选哪一种。
向恒讯科技咨询时,可以请对方提供测试IP,并说明线路的类型,然后用上面的方法,自己做一次对比测试。具体的线路资源和测试条件,以对方当前确认的信息为准。
香港CN2线路能降低多少延迟?没有固定的数值。降低多少,取决于用户的位置、运营商、回程路径和测试的时段,在一些路径上可能很明显,在另一些路径上可能差别不大。要知道答案,就在你自己的用户网络下做一次对比测试。
CN2GIA一定比普通BGP好吗?不一定。GIA只是一个线路名称,实际的表现要看路由和实测。在某些路径上GIA可能更好,在另一些路径上,优质的BGP线路表现也很接近。
为什么白天和晚上延迟不同?晚间是用户集中使用网络的时段,部分链路容易拥塞,延迟和丢包会上升;另外,路由也可能随着时间发生调整。所以评估线路时,白天和晚上都要测。
如何查看香港云主机的回程路由?回程路由要从服务器往用户方向去看:在服务器上用mtr或者traceroute,目的地填用户所在网络的IP,加上显示AS号的参数,路径上的各跳属于哪个网络,就能看出来。也可以请服务商提供回程路由的测试结果。
怎样判断线路宣传是否有依据?看宣传能不能被验证:有没有具体的线路类型说明,是否提供测试IP,路由追踪里的AS号和宣传的是否吻合。只有名称,没有任何可验证的信息,就要谨慎。
线路的名称只是一个起点,真正的答案在路径里。所以这篇文章没有给出任何一个固定的延迟差值,选线路之前,先在自己的用户网络下,把路径和数据看一遍。
Copyright © 2013-2020. All Rights Reserved. 恒讯科技 深圳市恒讯科技有限公司 粤ICP备20052954号 IDC证:B1-20230800.移动站


