开发者社区> 余二五> 正文

通过实战测试无线网络的速度

简介:
+关注继续查看

不久前,一个朋友向我发牢骚,说他的无线网络传输率“只有5Mbps”。我感到很吃惊,因为我曾告诉过他5Mbps是正常的速度。他说:“怎么可能,我这个可是号称54Mbps的802.11g呀。” 

这位朋友一直是本杂志的读者,我还以为他完全清楚802.11a、b、g的实际速度和标称速度之间的差别。如果他非常清楚Wi-Fi的“有效负载”问题, 就不会表示什么疑问了——现在看来不是这样的。所以,我认为有必要再来解释一下为什么在802.11g连接上得不到54Mbps的速度。后面还有一个测 试,可以自己动手做一下。来检测正确性。 

关于Wi-Fi的常识 

先介绍一些关于Wi-Fi的一般知识。 

现在有三个基本Wi-Fi标准。802.11b标准最早,速度为11Mbps;802.11g最新,速度为54Mbps;还有一个容易混淆的802.11a,与b、g不兼容,速度也是54Mbps。802.11a是美国制定的标准,欧洲ITU将正式推出它的增强版802.11i。 

但是,所有人都知道这些标称速度值是虚的。实际上,802.11b标准的速度就包括1Mbps、2Mbps、5Mbps和11Mbps几种,但这些并不是用户可以获得的实际数据传送量。究其原因,就要牵涉到以太网IEEE 802族标准的核心,即协议。 

这里我要多说几句,因为这些概念很容易混淆。有个概念要记清楚:协议并不计量bit数,它测量的是时间。由于存在延迟,传输的速度越快,损失的数据位也成倍增加。延迟为200微秒时,1Mbps速度的数据损失很小,而11Mbps时的损失就要高出10倍。 

协议是必需的,因为以太网是一种共享的连接系统,没有协议它就根本不能工作。所以,需要有一种既严谨又简单的方法,能确保在任一时刻只有一个用户在使用网络连接。 

这里有几层含意。首先,必须知道任意一个用户何时开始发送数据,还需要知道他们将要发送的数据量,以及何时发送完毕。其次,如果出现两方同时开始发送数据 的情况,需要有一种方法确保一方退出竞争,空出网络让另一方发送。最后,还要有个固定的延迟时间,这样才可以传送各种消息,如谁在使用网络,谁应该避让以 及等待多久。 

图1显示了一个标准的TCP/IP数据包。所有从1KB至64KB的数据(一般均低于2KB,因为路由器会拆散大于2KB的数据包)都被封装起来,并带有两个头(header),一个TCP头和一个IP头,两个数据头用于数据包的描述。 

  

图1 


当然,这些只是从TCP/IP处理程序得到的数据部分,还不包括任何以太网系统的东西。所以,当通信软件将这个数据包送给网卡时,还要在外面再加上许多东西,就像给它做一个802.11的“外框”(帧)。 

最前面是30字节的MAC(介质访问控制)头,用以标识网卡,然后添加3个字节的LLC(逻辑链路控制)头和5字节的SNAP(子网访问协议)头。接着是上述TCP/IP数据包,最后以4字节的FCS(帧校验序列)结尾。 

上述这些也只是PLCP子层业务数据单元,或叫PSDU。在传送前还要再加上:一个6字节的PLCP(物理层会聚协议)头,在PLCP头前还有 PLCP“preamble”(前引导)头,最后完成的PLCP协议数据单元(PPDU)也包括两部分——PLCP和MPDU(MAC层协议数据单元) (见图2)。 




图2 


现在就可以传送数据了。在每一个1500字节(典型值)的数据包中,一般都有100字节以上的控制信息,但这还不够。因为这是以太网,一个正规的协议是必不可少的。 

大体来讲,以太网的有效负载永远不能超过标称值的70%。例如对10M的以太网,速度最高是7M,对100M的以太网则永远不会超过70M。这种估计还只是对有线以太网,对无线以太网还有额外的问题。 

情况是这样的:等待某个设定的时间间隔后才能开始发送,并且发送后要等待对方响应。如果有流控机制(一般都有),则还要有RTS和CTS信号的等待延迟。 

这些大量的时间延迟都是以微秒来计算的。最糟的情况无疑来自于PLCP前引导和PLCP头,因为标准假定网络中存在老式的802.11b网卡,所以,前引 导部分的传送速度要让最早的802.11b网卡也能听懂,因而速度只能是1Mbps。从图2中可以看到,在速度为1Mbps时几乎没有多少数据损失,这个 速度是最初Wi-Fi卡的基本标准,但当速度为11Mbps时,数据只能占一半。 

一般来说,单个用户在距接入点一英尺处,没有其它无线网络干扰的情况下,可以获得的绝对最大速度是任何一种无线以太网标准“标称速度”的一半。也就是说, 如果标准声称是11Mbps,则绝对最高速度为5Mbps;如果标准是54Mbps,则实际速度在22Mbps至25Mbps之间。当远离接入点时,信号 会越来越弱,速度也会下降。另外,当其它人加入到网络中时,带宽就被共享了。 

如果有人在听互联网电 台或下载视频文件,分给你的带宽会急剧下降;如果有十几个人都在用无线网,大家都在相互干扰,效率也会大幅度下降。如果你是坐在星巴克咖啡店里,通过移动 热点和朋友聊天,则无线网速的下降不会显著影响你的使用。但如果要通过Wi-Fi进行文件备份,你最好有个心理准备,因为花费的时间可能比你预想的要多 ——假如你是在办公室里做备份,同时还有40个同事也在做类似的工作,则用午餐时间来做备份更加明智些。

软件测试 

有一个办法可以测试无线网络连接的实际速度,即运行一个基准测试程序。以下我将为Windows用户介绍这个测试程序。 

我们的实验室里有一个测试组件名叫Netbench,当然用它测速是大材小用,但如果只测网速可以不必运行所有项目。Netbench组件的一个部分叫网 卡测试,它可以给出网卡的最大数据流量(详细说明请见www.veritest.com/benchmarks/netbench)。即使有这些帮助,估 计你还是会一头雾水。举个例子:你可能会认为带网卡的笔记本电脑上应该运行“客户”软件。其实不然,最好把这台电脑安装为服务器,客户端应该是你用做台式机的机器。严格地讲,需要在网络里安装第三台机器作为控制器。 

使用指南里并没有讲清楚什么是服务器,你可能猜想需要一台运行Windows Server 2003的机器。这次又错了,服务器是指计算机的名称。只需到Windows的资源管理器里,右击“我的计算机”,从弹出菜单中选择“属性”,然后将笔记本电脑名称改叫“Server”就可以了。 

无论用什么名字都可以,只是要把它记下来,因为以后可能会修改它。用同样的方法修改控制器机器,将名称改为“controller”,确认所有的机器都在相同域或相同工作组内(见图3)。 




图3 所有测试机器都要在同一工作组或域中,而且必须按基准测试要求的方式命名。 


最后,找到一个名为“Hosts”的文件,用记事本一类的纯文本编辑器打开并进行修改。做这件事时一定要小心,因为它是一个系统文件,而且要注意有些 Windows版本可能会自作聪明地存为“Hosts.txt”,而不是没有扩展名的“Hosts”。这个文件一般在Windows目录或I386子目录 下,比较省事的办法是用搜索功能在硬盘上查找。一般说来就是:“修改每个客户的Hosts文件,使之包括控制器的名称和IP地址”。换句话说,你需要知道 每台机器的名称和IP地址。 

最好是到控制面板的网络设置中,将三台机器都设置成固定IP地址,而不使用DHCP(见图4)。可以设为这种地址:如192.168.1.101、192.168.1.102、192.168.1.103。但大多数情况下网段地址都由无线接入点或路由器决定了,因此就需要检查一下现在是在哪个网段。




图4 在设置IP地址时,无线网络必须在运行中。 


具体方法如下:打开一个命令提示符窗口,运行ipconfig命令,查看无线网卡的设置。将设置写到Hosts文件中,然后重新启动,使设置生效。 

在实际使用中,永远不会达到绝对理想值。在两台机器间传递一个巨大的文件时,最好的速度也只有这个的一半,因为文件系统还要花费大量处理时间,如寻找扇 区、装载缓存和填充缓充区等。对于笔记本电脑的完整备份工作,我的建议是慎用无线网传送方式,不如把两台机器都接到有线以太网上做这件事。否则,实际花费 的时间会远远超出你的想象。









本文转自 h2appy  51CTO博客,原文链接:http://blog.51cto.com/h2appy/1133713,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何抓取无线网络数据包
结论: Mac: airport, tcpdump Windows: Omnipeek Linux: tcpdump, airmon-ng 以太网里抓包很简单,各种软件一大把,什么Wireshark,Ethereal,Sniffer Pro 一抓一大把。不过如果是无线数据包,就要稍微麻烦一点了。网上找了一堆罗里吧嗦的文章,绕来绕去的,其实抓无线包一条命令就好了。 Windows
7171 0
5G无线网络规划与设计|带你读《5G无线网络规划与设计》之一
随着 3G 和 4G LTE网络的普及,全球移动宽带连接在 2010 年超过了固定宽带。由移动通信产生的经济价值在不断增长,预计到 2020 年将达到 3.7×105 亿美元。在过去 30 多年的时间里,移动通信系统几经变革,对科技和社会产生了巨大影响。如今,世界正处于另一次重大转型的临界点,这一转型将进一步扩大移动网络的作用,以满足新一轮新型用例的需求。5G 应运而生。
2371 0
Java 网络编程实战(一) - 简介
Java 网络编程实战(一) - 简介
30 0
linux 网络Socket实战
Preface:就算调通API,也不值得太过自豪!!!悉心细心学习,最好的深度学习就是看-学...*.h/*.class ProtoType; 1,linux C ftp C/S简单实现 ftpS端码子 C端码子  码子测试 C语言编译错误:expected d...
664 0
TensorFlow 实战卷积神经网络之 LeNet
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! LeNet 项目简介 1994 年深度学习三巨头之一的 Yan LeCun 提出了 LeNet 神经网络,这是最早的卷积神经网络。
2970 0
+关注
20381
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载