测量RJ45网速的方法

在痛苦挣扎了一周之后,测量网速这个问题依旧没有搞定,老大还有更长远的计划。按照我之前的文章来看,我就是用字节除以时间,后来我才发现,测量网速这个是有公式的。带log这种,不过因为老板说不需要太精确,我们也不是专业搞这个网络的,所以也就用着这个公式了,虽然我也没减IP的报头还有尾,时间戳也没删减,但是不要紧,我又有新的任务了。

按照常理来看,通过RJ45端口传输了多少数据出去,再除以时间,就可以称之为网速,虽然是比较粗糙的网速。所以我试图ping一下主机ip,我固定为192.168.1.3

测量RJ45网速的方法

但是非常神奇的是已经传输65000字节了,仍旧时间小于1ms,速度快的有点惊人啊,而且完全无法计算,后来老大找了一个loopback的办法让我研究一下,原理就是用RJ45的tx,rx接一下,看能不能使数据传输再接收回来,但是实际做了一下,发现没这么简单。

测量RJ45网速的方法

根据图片来看,具体做法为使用两个连线,将两组tx,rx连接起来,使其构成一个回路,在查看传输连通性的时候可以省去与路由器连接的一步,节约时间。

事实上,连接这个回路可以使网络状态从网络电缆被拔出变更为未识别的网络,同时也是上不了网的,仅仅可以检测出RJ45端口是可用的。

我的网卡是Realtek的,所以我去Realtek官网下载了一些程序,也查到了说明文档

测量RJ45网速的方法

可以看出,Realtek本来的做法是增加项目在注册表(regedit)中,从中受到启发,我手动找到regedit中的网卡所在的位置,一般储存在:HKEY_LOCAL_MACHINE→SYSTEM→ControlSet001→Control→Class→4d36e972-e325-11ce-bfc1-08002be10318→0012,最后的“0012”这一部分电脑不同也是略有差异的,可以直接点击文件夹查看网卡信息,挨个查找自己网卡的文件夹,网卡一般在电脑相应的网络→常规→详细信息→描述 中可以看到。

0012中先添加一项NetworkAddress,数值数据我暂时设为001016501010,随意设置一个12位的16进制数就可以了。

再在0012→Ndi→params→NetworkAddress中,设置default为刚刚设置过的001016501010,ParamDesc设置为Network Address,这样注册表就设置好了,重启一下电脑或者网络禁用再启动一下,MAC地址是有变化的,不过这也只是设置了一下MAC地址,使没有MAC地址的产品可以成功上网

测量RJ45网速的方法

效果显著

另外,发现了一个很好用的软件—— K-MAC,可以非常轻松的更改MAC地址,很方便,也很简单

测量RJ45网速的方法

分分钟就改好了,方法还是很多的

但是其实控制MAC地址只是可以使用ping命令

测量RJ45网速的方法

但判断这个回路中是否有数据传送还是未知的,需要再找寻其他办法