我是学生,我正在用 C99 标准编写简单的应用程序。程序应该在 Ubuntu 上运行。
我有一个问题 - 我不知道如何获得一些 Wifi 参数,如带宽或延迟。我不知道该怎么做。可以使用标准函数或任何 linux API(我是 windows 用户)来做到这一点吗?
也许你应该告诉我们更多关于你的具体问题。现在,我假设您对特定无线链路(即两个 802.11 站之间的链路)的吞吐量和延迟感兴趣。这可以是接入点和客户端之间或两个自组织站之间的链接。
简短的回答是没有这样的 API。事实上,即使估计这两个链路参数也并非易事。它们取决于信号质量、发送站使用的数据速率、干扰、信道利用率、两端计算机系统的负载,可能还有很多其他因素。
根据您使用的无线驱动程序,可能可以获得有关当前使用的数据速率的信息以及您正在与之通信的站点的一些丢包统计信息。查看net/mac80211/sta_info.h
您的 Linux 内核源代码树。如果您使用的是MadWifi,您可能会在下面的文件/proc/net/madwifi/ath0/
和wlanconfig ath0 list sta
.
但是,您所能做的就是做出预测。如果链接质量突然发生变化,您的预测可能完全错误。
通常,您不知道 wifi 设备的带宽或延迟。带宽和延迟是来自链接的信息类型。据我所知,WiFi驱动程序中没有此类信息。与链路最相关的信息是 SINR。为了测量带宽或延迟,您应该编写自己的代码。