zoukankan      html  css  js  c++  java
  • 802.11 对于multicast 和 broadcast的处理

    ethernet内部会有broadcast 和 multicast。这两种包都是一个STA向多个STA发包。

    当没有wifi存在的时候,LAN口之间的broadcast 和 multicast是可靠转发的,但是若有wifi存在就不一样了。

    电源考量

    根据协议,broadcast和multicast在DTIM的时候AP会发送给STA。DTIM在AP中的设置一般是一倍的TIM。

    当DTIM增加的时候,会更加省电,因为出于PS模式下的STA醒来的次数变少了。但是这也会导致某些应用的延时加大。

    DTIM减少的时候,会更加费电。

    稳定性

    broadcast 和 multicast都是使用基本速率发送的。多次测试可以看到,它们是用11Mbps的CCK rate发送。

    当然这只是AP发出的broadcast和multicast的设定,从STA发出的包还是以正常的速率来。

    一般来说,这两种包是没有ACK保护的,也就是说会丢包。

    对于Ethernet来说,这两种包基本上不会丢,因为Ethernet比较稳定。但是wifi层面存在很多干扰,导致

    丢包严重。

    802.11透明转发

    802.11对于BC/MC包的处理,可以理解为对ethernet是透明的。

    当WiFi Client发送BC/MC包的时候,AP会对这个包进行转发,下面是流程:

    1.STA以正常速率发出QoS data给AP,RA和TA分别是STA和AP的地址,SA是STA的地址,DA是BC/MC地址。使用pairwise key加密

    2.AP以基本速率发出DATA,RA是BC/MC地址,TA是AP的地址,SA是STA的地址,DA是BC/MC地址,SA是STA的地址。使用group key加密。

    注意到,对于BC/MC的包,都是进过加密的,一般都是CCMP加密。无线Client需要用group来解析收到的包,802.11也是提供了很好的安全性。

    对于两端的STA,将802.11包转换成Ethernet包之后,802.11层次的东西就不可见了,唯一的区别是无线AP的LAN口之间的BC/MC包不容易丢,

    但是LAN和wireless,wireless和wireless之间的BC/MC包容易丢弃。当然了,从wireless STA到LAN口的包应该不容易丢,因为之间传输的是unicast的Qos data,有ACK保护。

    其他

    在编程中会涉及到IP地址和MAC地址的转换,实际上IP地址填写完之后,协议栈会帮你转换成MAC地址。

    在这点上802.11和Ethernet是没什么区别的,因为这是IP layer和MAC Layer接口处的考量。

    测试工具推荐这个(开源的):

  • 相关阅读:
    小程序的目录结构及基本代码编写流程
    vue+hbuilder监听安卓返回键问题
    VUE项目用hbuilder 打包为手机APP
    VUE组件相关总结!
    VUE常用指令总结!
    vue开发者工具vue-devtools-4.1.4_0.crx谷歌插件下载及安装
    vue-cli环境搭建初探!
    PHP返回Json数据函数封装
    WeX5入门之HelloWorld
    WeX5入门之欢乐捕鱼打包
  • 原文地址:https://www.cnblogs.com/tanhangbo/p/4573742.html
Copyright © 2011-2022 走看看