网络带宽方案调研

一、基础知识:

1、理论上:2M(即2Mb/s)宽带理论速率是:256KB/s,实际速率大约为150~240KB/s;(其原因是受用户计算机性能、网络设备质量、资源使用情况、网络高峰期、网站服务能力、线路衰耗,信号衰减等多因素的影响而造成的)。4M(即4Mb/s)的宽带理论速率是:512KB/s,实际速率大约为200~440kB/s

 

2、网卡带宽和网速带宽不一样,网卡带宽是指能支持的最大带宽,而网络带宽是指电脑真实接入上网的带宽。比如100M和1000M网卡,在2M的网络带宽下没区别。

 

3、用路由器共享,10人共享10M平均每人用1M;用交换机共享,10M带宽对每个人都能同时用10M。

 

4、任何网络速度测试数据只能作为一个参考,网络速度和很多因素有关,比如你所使用的网络测速服务器所在位置、比如你的网络拥堵情况、又比如你家或者到户的线缆传输率等等。

 

5、通常网民上网速度与下列三段网速相关,一是本地运营商接入网速,即ADSL是2M、4M还是10M,这是本地网速;二是用户访问的网站是本省、外省,以及是同一个运营商网内还是不同运营商,这是长途网速;三是网站的速度,网站是否架设了足够的服务器和租用了足够的带宽,这是网站打开网速。

 

 

二、用市面上的网络测速工具-测试实例:

1、对公司网络带宽进行测试,测试结果如下:

本机IP:220.181.11.235   北京市北京搜狐互联网信息服务有限公司电信节点

测试工具

网速(下载网速)

带宽计算

金山测速

5.7MB/S

5.7*8=45.6Mb/S 

百度测速

3MB/S

3*8=24Mb/S

百度网页应用—网络测速

3.37MB/S

29.84Mb/S

360测速(测一次用15秒)

10.6MB/S

84.6Mb/S

电信官网测速

5.2MB/S

41.6Mb/S

 

 

三、市面上网络测速产品的实现方式:

 

1、在网络测速服务器上放置一个文件,在客户端进行下载,进行测速。

 

2、对网卡进行抓包,获得每个包的大小,计算每秒的抓包个数,相乘下就是流量了

 

3、目前测速工具通用的P2SP测速方法存在着一个设计上的缺陷。通过该方法测速,软件会选择一些同样安装了这款软件的其他的连接节点来进行测速,只要其中有一个节点是在该用户同一个小区宽带的子网里面,链路质量非常好,网速即显示飞快,测得的网速就可能超过了运营商所提供的带宽速度。

 

4、360方面表示,360宽带测速器采用HTTP多线程下载和广域网P2P下载结合的方式进行测速,这两种技术是微软IE等浏览器和迅雷等下载软件普遍采用的技术,能够真实测量用户浏览网页的速度和网络下载速度。360宽带测速器采用的这种技术方法能充分模拟用户看网页、下载文件的网络使用场景,并能有效去除服务器负载过重以及因为公网某条链路质量不稳定等因素对测速结果的影响。

 

5、金山卫士并没有使用P2P或者P2SP技术去测网络带宽,金山卫士测速的原理是客户端到城域网的速度,绝不会像上文说的测试两个客户端之间的连接速度。

这里又涉及网络的另一个问题,服务器缓存问题。

举一个最典型的例子,长城宽带,基本上所有的长宽用户下载时,如果你用抓包工具你就可以发现,他下载的地址并非来自于你说点击下载的页面,而是来自于长宽服务器。结合本例通俗点说就是,比如金山卫士的测速文件放在北京的金山服务器上,一般用户测速时都是从北京服务器下载这个文件,然后计算网速。但是长宽用户不是这样的,长宽服务器在第一个用户下载这个文件时,就把这个测速文件缓存在长宽的服务器上,往后你要再测速的时候,长宽的服务器会自动把域名指向他自己的服务器(说白点,有点类似DNS劫持),让你从他的缓存里面拉取这个文件,而不是直接在金山服务器下载。这时候测速的结果实际上就成了你本机和长宽网络服务器之间的网络速度,这个速度大概是多快?网线能有多快就是多快,所以金山卫士的测试结果会显示专线这样的速度。
   长宽这类运营商使用缓存的本意是想加速用户下载速度,也可以节省自己的外部链接网络带宽,但是也有很多问题,比如我遇到过的一个文件开发厂商页面已经更新,但是下载地址没变,其他网络下载以后是新版本,长宽的下载的却是老版本,因为这是在他服务器上的老版本缓存还没有更新的原因。另一个问题就是造成金山卫士这样的测速结果发生较大的偏差。

 

6、360测试方法:

 

 

 

四、结论(能否实现?不能实现的话,原因?如果能实现,给出实现方案和可能面临的风险)

      关于开发一个网速测试工具,通过测量用户网速,从而获取用户带宽值。由于测试工具在测试的时候,测试结果跟以下因素有关:

(1)  其他访问网络的进程数

(2)  用户计算机性能

(3)  网络设备质量

(4)  网络高峰期

(5)  网站服务能力

(6)  等等

因此对某一个特定电脑,测试出的网速在不同时段,电脑上进程运行情况等不同而不同。

      可以实现,由以下两种方式实现:

1.  在网络测速服务器上放置一个文件,在客户端进行下载,进行测速。难度不算大。同时也测试出从用户电脑到我们服务器的下载速度。在刚打开电脑的时候,测试最准。当进程变多,可能测出来的速度比刚打开电脑时的小。

 

可以借鉴自由升级中下载进度来测试网络速度

风险:会增加服务器cdn流量

 

 

2、对网卡进行抓包,获得每个包的大小,计算每秒的抓包个数,相乘下就是流量。

需要对网卡进行辨识,只统计外网卡的包,内网卡不统计。需要长时间的统计取平均值。比较偏底层,难度比较大。可以用Winpcap库抓包。

 

 风险:可能会使cpu占用率变高

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

天行者pxhero

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值