WLAN DTIM
DTIM
DTIM(Delivery Traffic Indication MAP)是一个给STA发送广播或者组播的机制,因为STA不发送组播因此DTIM只在AP中有用,DTIM仅在AP的Beacon中出现,Probe Presonse没有DTIM字段
DTIM字段的意义
1,DTIM count:当前的DTIM值
2,DTIM period:在AP中可以配置的DTIM周期
3,Bitmap control Multicast: 如果为1表示AP缓存了广播数据,如果为0表示AP没有缓存广播数据
如图所示,AP设置DTIM周期为10,每一个的DTIM count如下
9 8 7 6 8 4 3 2 1 0 9 8 7 6 5 4 3 2 1 .........
当DTIM的count为0时表示当前的TIM是一个DTIM,也就是说,所有已经连接的STA都要在这个Beaxon下唤醒并检查Multicast标记确定AP是否有组播数据要发送。
如果DTIM周期设置为1表示每一个beacon都是DTIM beacon,STA需要在每一个beacon中唤醒并检查multicastbit,这样做不利于省电。
DTIM例子
如上图,从192.168.1.10 ping 192.168.1.2
为了能发送广播,我们需要在192.168.1.10上执行arp -d删除arp缓存,然后ping 192.168.1.2
此时,AP会广播ARP request给已连接的STA,但是STA处于PowerSave,AP不能立即发送这个ARP request,因此当DTIM count为0时AP需要设置TIM的multicastbit为1,AP发送缓存的ARP request,当多播或者广播数据被发送后,AP在下一个beacon中设置TIM的multicastbit为0
需要注意的是广播和多播没有ACK,并使用最低基本速率进行发送。因此速率越低发送的越可靠数据传送的越远
如果AP同时缓存了广播和单播帧,优先发送广播,因为每一个已经连接的客户端都需要这个广播帧
总结
1,TIM用于单播,DTIM用于广播或者多播,
2,每一个beacon中都有TIM信息元素,TIM的子字段含有DTIM相关字段
3,当TIM的DTIM count为0时表示这个TIM是一个DTIM
4,当一个AP在TIM信息元素中同时指示含有单播缓存和广播组播缓存时,广播优先发送