当前位置: 首页 > news >正文

802.11中的各种帧

在无线网络中,802.11协议定义了三种类型的帧:管理帧(Management Frames)、控制帧(Control Frames)和数据帧(Data Frames)。每种类型的帧都有其特定的功能,帮助维护和管理无线网络。下面是管理帧和控制帧的详细介绍:

管理帧(Management Frames)

管理帧用于建立和维护无线网络中的连接。它们帮助设备发现网络、加入或离开网络,并保持连接的状态。常见的管理帧包括:

  1. Beacon Frames(信标帧)

    • 由接入点(AP)定期发送,以公告其存在和网络参数(如SSID、支持的数据速率、安全设置等)。
    • 帮助设备发现并选择要连接的无线网络。
  2. Probe Request/Response Frames(探测请求/响应帧)

    • 探测请求帧由客户端设备发送,用于主动扫描可用的无线网络。
    • 探测响应帧由AP发送,以响应探测请求帧,提供网络信息。
  3. Authentication Frames(认证帧)

    • 用于设备和AP之间的身份验证过程。
    • 确保设备是合法用户,可以加入网络。
  4. Deauthentication Frames(解除认证帧)

    • 用于终止设备和AP之间的认证关系。
    • 通常在设备离开网络或发生安全事件时发送。
  5. Association Request/Response Frames(关联请求/响应帧)

    • 关联请求帧由客户端设备发送,用于请求与AP建立连接。
    • 关联响应帧由AP发送,以确认或拒绝连接请求。
  6. Disassociation Frames(解除关联帧)

    • 用于终止设备和AP之间的关联关系。
    • 通常在设备离开网络或需要重新建立连接时发送。

控制帧(Control Frames)

控制帧用于帮助管理数据传输过程,确保数据帧在无线网络中的可靠传输。常见的控制帧包括:

  1. ACK Frames(确认帧)

    • 由接收方发送,以确认成功接收到数据帧。
    • 发送方在接收到ACK帧后,会继续发送下一个数据帧。
  2. RTS Frames(请求发送帧)

    • 由发送方发送,用于请求对信道的使用权限。
    • 用于减少冲突,特别是在高流量或干扰环境中。
  3. CTS Frames(清除发送帧)

    • 由接收方发送,以响应RTS帧,授予发送方对信道的使用权限。
    • 通过CTS帧,网络中的其他设备知道发送方将占用信道,并避免冲突。
  4. PS-Poll Frames(省电轮询帧)

    • 由省电模式的客户端设备发送,用于请求AP发送缓冲的数据帧。
    • 帮助省电模式下的设备高效地接收数据。
  5. Block Acknowledgement Frames(块确认帧)

    • 用于高效确认一组数据帧,而不是每个帧单独确认。
    • 提高传输效率,特别是在高速无线网络中。

捕获管理帧和控制帧

在监控模式下,可以使用 tcpdumpgopacket 捕获管理帧和控制帧。以下是捕获所有管理帧和控制帧的示例:

  1. 使用 tcpdump 捕获管理帧和控制帧

sudo tcpdump -i wlan0mon -e -s 0 type mgt or type ctl
  1. 使用 gopacket 捕获和解析管理帧和控制帧的 Go 代码

package mainimport ("fmt""log""github.com/google/gopacket""github.com/google/gopacket/layers""github.com/google/gopacket/pcap"
)func main() {// 设置网络接口名称和抓包过滤器iface := "wlan0mon"snaplen := int32(65535)promisc := falsetimeout := pcap.BlockForeverfilter := "type mgt or type ctl"// 打开网络接口进行抓包handle, err := pcap.OpenLive(iface, snaplen, promisc, timeout)if err != nil {log.Fatal(err)}defer handle.Close()// 设置 BPF 过滤器if err := handle.SetBPFFilter(filter); err != nil {log.Fatal(err)}fmt.Println("Capturing Wi-Fi Management and Control frames on interface", iface)// 开始抓包packetSource := gopacket.NewPacketSource(handle, handle.LinkType())for packet := range packetSource.Packets() {processPacket(packet)}
}func processPacket(packet gopacket.Packet) {// 获取 802.11 层dot11Layer := packet.Layer(layers.LayerTypeDot11)if dot11Layer == nil {return}dot11, _ := dot11Layer.(*layers.Dot11)// 判断帧类型switch dot11.Type {case layers.Dot11TypeMgmt:fmt.Println("Management Frame captured:")// 处理管理帧,获取具体类型switch dot11.Subtype {case layers.Dot11MgmtSubtypeBeacon:fmt.Println("  Beacon Frame")case layers.Dot11MgmtSubtypeProbeReq:fmt.Println("  Probe Request Frame")case layers.Dot11MgmtSubtypeProbeResp:fmt.Println("  Probe Response Frame")// 可以添加更多管理帧类型default:fmt.Println("  Other Management Frame")}case layers.Dot11TypeCtrl:fmt.Println("Control Frame captured:")// 处理控制帧,获取具体类型switch dot11.Subtype {case layers.Dot11ControlSubtypeAck:fmt.Println("  ACK Frame")case layers.Dot11ControlSubtypeRTS:fmt.Println("  RTS Frame")case layers.Dot11ControlSubtypeCTS:fmt.Println("  CTS Frame")// 可以添加更多控制帧类型default:fmt.Println("  Other Control Frame")}default:fmt.Println("Other Frame Type captured")}
}

总结

管理帧和控制帧在无线网络中起着关键作用,分别用于建立和维护连接,以及管理数据传输过程。在监控模式下,你可以使用工具如 tcpdump 或编程库如 gopacket 来捕获和分析这些帧,了解无线网络的工作状态。

http://www.lryc.cn/news/375231.html

相关文章:

  • SAP PP学习笔记21 - 计划策略的Customize:策略组 > 策略 > 需求类型 > 需求类(消费区分,计划区分)
  • axure9设置组件自适应浏览器大小
  • 示例:WPF中TreeView自定义TreeNode泛型绑定对象来实现级联勾选
  • C++ explicit关键字的用法
  • 51.Python-web框架-Django开始第一个应用的增删改查
  • Redis之线程IO模型
  • 针对微电网中可时移,柔性,基础负荷的电价响应模型---代码解析
  • git使用http协议时免密pull和push方法
  • 编译期间生成代码(Lombok原理)
  • 第2讲:pixi.js 绘制HelloWorld
  • golang HTTP2 https测试POST变GET问题小记
  • Linux下的lvm镜像与快照
  • 嵌入式linux系统中SPI子系统原理分析01
  • Part 4.2 背包动态规划
  • Elasticsearch-使用Logstash同步Mysql
  • 6.17作业
  • 算法思想个人总结(结合生活理解)
  • openh264 帧间预测编码过程源码分析
  • Linux网络 - HTTP协议
  • 面试题——Nginx
  • 持续学习的综述: 理论、方法与应用
  • 跨域资源共享(CORS)问题与解决方案
  • 实用软件分享-----一款免费的人工智能替换face的神器
  • 不可思议!这款 Python 库竟然能自动生成GUI界面:MagicGUI
  • 论文发表CN期刊《高考》是什么级别的刊物?
  • 离散数学复习
  • 华为网络设备高频命令
  • 信友队:南风的收集
  • 找工作小项目:day16-重构核心库、使用智能指针(3)
  • 软考中级|软件设计师-知识点整理