未解决
此帖子已超过 5 年
107 消息
1
10797
假宽带真相
央视的【每周质量报告】做过一期关于网络的节目,叫“假宽带真相”。大意是说某些运营商的带宽远远达不到其承诺的标准,360的测速软件也“有明显的设计缺陷”,所以测出的结果远高于真实带宽。
作为技术型公知,我当然不会错过这样的机会,当即就用Wireshark验证了一下。这一试才知道,原来网络测速包含了不少知识点,所以便写出来和大家分享。
我家用的是中国电信的10M宽带,从官网测到的结果如图1所示,下载速度达到1235KB/秒,差不多是10M了。在不同时间段测试多次都是一样结果。
图1
注意:中国特色的宽带服务是以下载速度为计算标准的,其实上传速度慢很多,上下行带宽严重不对等。这就是为什么你会在图1看到上传速度只有2M。本文不关注这一点,所以只分析下载速度。
这个速度是怎样测出来的呢?我用Wireshark抓了个包,且看下面的分析。
1.点击Wireshark的Statistics菜单,再点击Conversations选项,可以得到图2的窗口。从中可见测速过程中用到了5个TCP连接在下载。因为端口号是80,所以应用层协议应该是HTTP。
图 2
为什么要选择5个连接,而不是更多或者更少呢?其实连接数的选取很有讲究。之所以用多个连接,是因为一个连接不可能时刻都在传输,有时候它不得不短暂停滞。某一个连接停滞时,其他的还可以继续传输,这样就能最大限度利用带宽。图3是其中一个连接的“Time/Sequence Number”坐标图,我是在Wireshark点击Statistics菜单àTCP StreamGraphàTime-Sequence Graph (Stevens)来生成它的。
图 3
对这个连接而言,传输过程中遭遇了多次停滞,比如最严重的是0.3秒到7.8秒之间,Sequence值几乎没有增长。在这段时间里其他TCP连接仍在正常传输,所以带宽一点都没有浪费。
之所以没有用更多的连接数,是因为多到一定程度就没有意义,甚至会导致TCP的拥塞控制失效。拿快递公司类比一下,假如现在有100个包裹,那由10个快递员派送肯定比1个快递员更快。但快递员多到一定程度就没有意义了,说不定还会导致混乱。一个网络中究竟用多少个连接数最好,是需要测试的,估计技术人员测试下来的最佳连接数是5。
2.再回到Wireshark的主界面。如图4所示,在测试开始之前,客户端是用一个GET方法查到下载源的,即http://101.95.50.3/test.img。这种查询机制不错,因为不会受到DNS污染的欺骗。
图 4
3.获知下载源之后,就可以建立5个TCP连接下载了。图5是其中的一个连接,从Time一栏可见响应速度相当快,这是因为101.95.50.3位于上海的电信机房中,离我家不远。而且这应该是一台专门用来提供测速的服务器,很可能被全面优化过了。不过再怎么优化都不算作弊,电信承诺的10M本来就是理想状态下的带宽。看来央视曝光的假带宽问题没有发生在我身上。
图 5
注意:高带宽并不意味着上什么网都快。影响性能体验的因素很多,除了带宽,还有跨运营商、延时和服务器性能等。就算你家里有100M宽带,靠VPN连到国外网站看视频也可能很卡。
那作为第三方的360测速是否真的“有明显的设计缺陷”呢?我下载到了两个360测速软件,先来看第一个。如图6所示,测出来的带宽为8M,略低于电信官网。
图 6
再用Wireshark分析。从图7可见,360也选择了5个TCP连接来下载,端口号也是80,和电信的方式一致(这是最佳连接数为5的另一个证据)。原理是一模一样,差别只是服务器的响应速度和往返时间。我家和电信服务器之间的RTT(往返时间)是3.5毫秒,但和360服务器之间是4.9毫秒,这也许就是结果略有不同的原因。
图 7
从这个工具看,360测速并不存在“明显的设计缺陷”,否则电信官网也算设计缺陷。于是我决定试一下另一个360测速工具。从图8可见,其结果接近10M。
图 8
再用Wireshark分析。从图9可见,这次除了HTTP下载,还有不少数据是通过P2SP的,传输层走的是UDP协议。央视采访的那位专家估计也看到同样的现象,所以认为这是一个设计缺陷,说“这种P2SP测速方法,它会去选择一些同样安装了这款软件的其他的连接节点来进行测速,只要其中有一个节点,它是在这个用户同一个小区宽带的子网里面,它的这个链路质量就非常好,网速就非常快”。我有点怀疑这个推论,因为我测了几次的结果都差不多,假如真有一个节点在我们小区里,应该能从图9的统计表中看出来。
图 9
这个工具还有测试“长途网络速度”的功能。从Wireshark可见该功能是纯粹用HTTP测试的。我认真地检验了其访问的服务器,确实属于正确的运营商,也分布在不同的城市。截图没有新意,所以就不贴出来了。
综上所述,360测速软件还是有节操的,它体现的是模拟现实的网速,包括HTTP(浏览网页和刷微博之类的)和P2SP(比如迅雷下载)。电信提供的测速也没有作弊,不过它体现的是一个接近理想状况的网速。那为什么央视说有些宽带不达标,但360测速软件却给出很高的带宽呢?我认为这不是P2SP导致的,而是因为这些运营商侦查到360正在测速,于是立即劫持,转变成在限速点之内测速了。因为我抓不到这种包,所以就不多作评论。
最后声明一下,我写这篇博客不是给中国电信广告或者为360正名,只是想借助这个话题演示一下Wireshark的应用场景。几乎所有和网络相关的问题都可以用Wireshark来探索学习,有时候小用一下就能比专家们看得更远。我对带宽缺斤短两也很不在乎,因为从来不下载电影或者美剧。我在家的上网时间几乎都用在Google和Wikipedia上找文章了,所以对我意义更大的是能否稳定地连通。之前使用的宽带因为拦截VPN端口,所以被我退掉了,不久前才换成电信。
Roger_Wu
2 Intern
2 Intern
•
4K 消息
0
2015年3月3日 01:00
支持Wireshark案例分享~
这年头码农和电工们不准备几个VPN都不好开展工作了阿...
liulei_it
2 Intern
2 Intern
•
3.2K 消息
0
2015年3月3日 05:00
说到美剧 偶只看
Jeffey1
2 Intern
2 Intern
•
2.8K 消息
0
2015年3月3日 17:00
文章很精彩,学习了。沿着作者下面的原话进一步打开脑洞,会不会电信的ACL规则中有这么一条:360的测速地址带宽不限速。:
我认为这不是P2SP导致的,而是因为这些运营商侦查到360正在测速,于是立即劫持,转变成在限速点之内测速了。
Jeffey1
2 Intern
2 Intern
•
2.8K 消息
0
2015年3月3日 17:00
恩,那也是!以前听过在电信中心机房用BT下载搞坏硬盘的事例,不限速测出来速度应该很高!
bairichard1
107 消息
0
2015年3月3日 17:00
不会,如果不限速,会出现极高的结果。
Jeffey1
2 Intern
2 Intern
•
2.8K 消息
1
2015年3月3日 18:00
补充一下楼主提到的中国特色宽带的知识,中国大部分宽带用户使用的是ADSL技术,ADSL线路是非对称数字网,下载速度与上传速度之比是8:2。
带宽的单位是Bit(位)。数据大小的单位是Byte(字节)
1 Byte(字节) = 8 bit(位)
512Kbps 看清楚是Kbps不是KBps 这个相差8倍
512Kbps=64KBps
几乎所有的软件在速度里用的都是KBps单位。
2M宽带,就是2M bit/s .也就是2048 K bit/s
2048 K bit/s = 256 K Byte/s (也就是256 KB/s)
2M宽带下载速度极限是256KB/s 上传速度极限是64KB/s (ADSL线路)
512Kbps宽带下载速度极限是64KB/s 上传速度极限是8KB/s (ADSL线路)
4M宽带下载速度极限是512KB/s 上传速度极限是128KB/s (ADSL线路)
Roger_Wu
2 Intern
2 Intern
•
4K 消息
0
2015年3月3日 19:00
理论上可以一样,但是电信在局端和账户上都做了限制,除非是电信员工,可以偷偷解除这个限制,甚至还能单线或多WAN多拨并叠加带宽,但叠加也只能叠加下行,上行是不行的。
Jeffey1
2 Intern
2 Intern
•
2.8K 消息
0
2015年3月3日 19:00
上海新小区大部分跑FTTH协议的用户,带宽上下行速度都是一样滴。
Roger_Wu
2 Intern
2 Intern
•
4K 消息
0
2015年3月3日 19:00
现在运营商都在走“光进铜退”、FTTx的战略,光纤入户会越来越多,不过上行带宽被限制是肯定的,技术上限制你提供各种互联网服务。
Yanhong1
1.6K 消息
0
2015年3月4日 06:00
长知识了。顺便问一句,哪个宽带拦截VPN端口啊?
Roger_Wu
2 Intern
2 Intern
•
4K 消息
0
2015年3月6日 01:00
个人用过的电信联通L2TP、PP2P、IPSec、SSH协议都正常...
bairichard1
107 消息
0
2015年3月7日 16:00
有线通