目录

1,iw工具是什么?

Linux iw 工具:工作原理与自定义指令扩展
图片素材来自免费商用图库(pixabay),非本站项目实拍。

2,iw工作原理以及流程是什么?

2.1,全局概览

2.2,源码分析

3,iw添加自定义指令

3.1,添加指令:iw dev wlan0 get test_ps


1,iw工具是什么?

iw是linux系统上的一款无线配置工具,它的出现为了解决iwconfig的很多不足。之所以要更新开发一套无线配置工具,还要从无线拓展(Wireless-Extensions)说起。Wireless-Extensions(简称WE或者Wext)是有Jean Tourrilhes 1997年开发并添加到linux内核的,他通过linux的系统调用ioctl()来实现用户层和内核层之间的通信。由于设计的比较粗糙,使用WE开发的程序难以管理,WE现在除了基本的bugfix之外也无人维护。于是出现了一种新的无线驱动框架来指导无线程序开发,便出现cfg80211和nl80211。cfg80211不再使用ioctl系统调用,而是使用Netlink。iw就是完全基于cfg80211框架重新设计并开发的。

2,iw工作原理以及流程是什么?

2.1,全局概览

我们可以看出,各个模块之间的界限清晰,模块之间透明不可见,模块之间一般不会相互影响。本章重点关注是iw—-(netlink)—-cfg80211这部分的实现,其他模块以后的章节来详细说明。最终关注的还是层与层之间的收发函数。

2.2,源码分析

//iw工作关键流程
int main(int argc, char **argv)
{
    /*nl80211初始化,nl80211_init(&nlstate)*/
    //给netlink socket分配空间
    state->nl_sock = nl_socket_alloc();
    
    //连接内核的Generic NetLink
    genl_connect(state->nl_sock);

    //获取nl80211的驱动ID
    state->nl80211_id = genl_ctrl_resolve(state->nl_sock, "nl80211"); 

    /*解析用户输入指令*/
    if (strcmp(*argv, "dev") == 0 && argc > 1) {
        __handle_cmd(&nlstate, II_NETDEV, argc, argv, &cmd); 
    }
    
    /*以下是__handle_cmd()函数实现*/
    for_each_cmd(sectcmd) {  //在__cmd的section中查找cmd的实现
        if (strcmp(cmd->name, c

一、2.4GHz 与 5GHz/6GHz 频段的工程取舍

无线局域网真正可稳定使用的 2.4GHz 信道只有 1、6、11 三条互不重叠信道——每条 802.11 信道占用约 22MHz 带宽,而 2.4GHz 总可用带宽仅 83.5MHz,相邻信道频域重叠会直接引发邻频干扰。办公、酒店、公寓等 AP 密集场景,手动把相邻 AP 错开到 1/6/11 比”自动信道”更能避免同频踩踏。5GHz 信道多、干扰少、速率高,但穿墙衰减大;6GHz(Wi-Fi 6E/7)进一步打开连续频谱,适合高密场馆。工程上低密度家用优先走 5GHz,高密度公共区域再用 2.4GHz 做覆盖补充。

二、干扰定位的实测方法

  • 同频干扰:多个 AP 用同一信道,CSMA/CA 退避加剧,表现为 ping 抖动、吞吐腰斩。用 WiFi Analyzer、InSSIDer 或 AC 自带频谱图看同信道 AP 数量。
  • 邻频干扰:信道 1 与 2、6 与 7 相邻重叠,必须严格按 1/6/11 规划。
  • 非 Wi-Fi 干扰:蓝牙、Zigbee、无绳电话、微波炉、无线图传都可能污染空口。普通 Wi-Fi 嗅探看不到非 802.11 能量,需频谱仪或支持频谱扫描的 AP。
  • 多径干扰:信号经墙体多次反射叠加引起深衰落,典型症状就是”信号满格却卡顿”,可通过调整 AP 位置、降低发射功率、启用波束成形缓解。

三、商用场景的信道与功率规划

酒店/宿舍按楼层错开信道组;仓库/车间用 5GHz 定向天线做回传;会议室投屏卡顿多为 2.4G 拥堵,建议给投屏终端单独开 5G SSID。AP 发射功率并非越大越好——过大会造成跨区同频、过小留覆盖空洞,需结合场强仿真(Ekahau、AirMagnet)做 AP 点位与功率联合优化。Wi-Fi 6 的 OFDMA、MU-MIMO、TWT 从调度层面提升多用户效率,但前提是物理层干扰已先控制住。

相关阅读