今天接到一个看似很严峻的任务,测网速,由于胆小,也不敢多问,拿过来就写,结果改了好多版,现在看来,做事前还是不能乱想象,有很多时候貌似我想象的和老大要我做出来的不是同一个东西,万分惭愧,而且也很耽误时间。
先写了一个文档,列举了一下测量网速的所有方法,之前在网上查找,最普通的方法就是用ping指令,又找了一些乱七八糟的方法,包括网络和共享中心里的以太网状态直接查看,还有一些软件,网页测速方法,比如360宽带测速器,还有可测速路由器的方法,收拾收拾全放在文档里,给老大邮件过去了,估计老大看到的时候可能会很心累,这个小同志怎么净找些乱七八糟的方法。
后来改了一版测速方法,秉持着简练,直观,精准等准则,列举了使用cmd的ping指令,tracert指令,C#软件,C#ping等方法,C#代码也是我到处大海捞针找到的,有的跑得起来,有的修修改改鼓弄了好久才勉强能用,还有一些其他乱七八糟的方法都蛮复杂,我就简单介绍之后急急忙忙像个小太监一样给老大呈上去了。
最后老大还是选用了最基本的,最基础的方式——ping 来测量网速。
我的计算过程如下(仅测量主机到路由器的传输速率):
使用路由器与计算机RJ45相连,ping路由器地址(192.168.1.1),字节范围为:0-65500,老大要求传输1500字节,但是由于传输速率过快,根本显示不出时间,一直现实测量时间为0ms,总不能1500/0ms,所以字节大小选择65000Byte,为了测量的精准,反复重复操作20次,命令句如下:ping 192.168.1.1 -l 65000 -n 20 ,可以实现主机与路由器之间65000字节数据的20次传输,并可得平均时间。
由图可知,测量结果为3ms。
也就是说传输时长以3ms为标准计算。
根据公式,这个公式是我随手写的,看起来总觉得不对劲,但是又说不上来,大概就是速度等于路程除以时间的意思。
3ms除以2,得到传输单程的时间,之前还自作聪明多除以了20,并且觉得我真是个小机灵,结果经过老大提醒,才发现这个时间已经是平均过的了,并不是20组的总时间,所以不需要除以20,除个2就可以了。
最后做个总的计算,就是用总字节数除以传输的时间,获得最终的速度,期间做一下单位换算,得到最终的传输速率大概是330.61Mb/s,总的来说还是非常快的。
从刚开始像个无头苍蝇到处乱找,百度都不知道输入什么内容搜索,到现在了解了传输的方式和具体实现方法,再到计算出确切数值,受益颇多。