admin管理员组

文章数量:1535332

2024年7月26日发(作者:)

基于UDP协议的wifi测速

软件环境:

Microsoft Visual C++ 6.0 VM虚拟机 udp测速工具 wireshark 超级终端

硬件环境:PC ARMmini2440开发板一块 wifi模块2块 无线路由器一个等等

项目职责:负责本次项目的代码编写以及对wifi的测速。

项目描述

UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传

输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。

在选择使用协议的时候,选择UDP必须要谨慎。在网络质量令人不十分满意的环境下,UDP

协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消

耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它

们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用的ICQ

和QQ就是使用的UDP协议。基于以上的这些优点我们选择了udp协议来对wifi进行测速。

通过在VC 6.0编写udp_client.c和udp_server.c文件导入到虚拟机linux系统里通过交

叉编译环境arm-linux-gcc来生成ARMmini2440开发板能编译的二进制文件udp_client和

udp_server。把这2个文件烧写到ARMmini2440开发板上。让开发板运行udp_client来发

送数据包给PC接收。通过udp测速工具查看数据包的接收发情况。这项目最关键的是把开

发板和主机连接到同一个局域网里面、通过无线路由器直连主机,开发板通过wifi模块接

上无线路由器的wifi。设置好主机和开发板的ip地址,网关等。要求开发板的ip地址和

主机的ip地址要在同一个网段里面才能实现主机和开发板之间的ping通。只有这一步实现

了才能在开发板里运行udp_client文件去发送数据包给主机。通过观察udp测速工具能很

清楚的看到数据发送的速度和丢包率等数据。

项目中遇到的问题

1、 开发板和主机之间ping不通的问题

2、 对线程代码编写的不熟悉

其中最大的问题就是主机和开发板之间的问题。开发板通过wifi模块连接的无线路由器,

因为开发板默认的DNS被设置成了192.168.1.1与路由器默认的DNS的0.0.0.0不同导致开

发板和路由器之间的ping不通,从而使得开发板和主机的ping不通。因为一直卡在这里。

我曾经都怀疑无线路由器不能被开发板无线的去ping通。我也要求去换个路由器。一度的

去找客观原因也使得我的项目被耽误下来了。解决了这个问题之后就使得接下来的测试工作

能顺利的进行下去。

项目测试结果

开发板和主机PC直接有线相连接

接收速率:15.706Mbps

开发板无线连上路由器SoftAP-AB,主机和路由器SoftAP-AB直连

接收速率为:4.946Mbps

开发板无线连上路由器FAST,主机和路由器FAST直连

接收速率:4.433Mbps

项目总结

通过这次的wifi测速项目,使我更加深入的了解到网络通信的含义和对socket编程的

掌握,以及对开发板的使用。还要说明的是这项目的完成离不开赵哥对我的指点和帮助。我

真的很感谢他。他让我了解到书本上学到的知识和现实中的运用存在很大的差距,也让自己

知道自己现在掌握的知识是多么的狭窄。我将不断努力的去学习。

肖斌

本文标签: 开发板项目协议路由器