DTIM [Delivery Traffic Indication Map]
♣ Demo Video:
♣ What is DTIM?
Delivery Traffic Indication Map[DTIM] is a mechanism to deliver Broadcast or Multicast Data to STA.
♣ DTIM is AP or STA feature?
DTIM is only AP feature. Clients are not allowed to transmit any Broadcast or Multicast data. AP is allowed to do that.
♣ Where do we see DTIM field?
Only AP’s beacon can have DTIM field. Probe response does not have DTIM field.
♣ DTIM field and explanations
Let’s understand DTIM fields inside beacon frame.
There are 3 important fields related to DTIM mechanism
1. DTIM count.
2. DTIM period.
3. Multicast bit.
See below screenshot to understand where these fields are located.
Now let’s understand the meaning of these 3 fields
1. DTIM count: This is the current value of DTIM.
2. DTIM period: This is the fix value set in AP.
3. Multicast: If set to 1 to indicate that AP has buffered multicast data or set to 0 to indicate that AP does not have any multicast data.
Suppose,
DTIM period is set as 10 in AP (Same as screenshot shown above), now each subsequent beacon will have DTIM count like this
9 8 7 6 5 4 3 2 1 0 and repeat 9 8 7 6 5 4 3 2 1 0.
In our screenshot we are seeing the beacon where DTIM count is 7.
Here is one table to give more clear idea about some DTIM period and DTIM count values.
DTIM Period [Set in AP] | DTIM Count in Beacon |
1 | 0 [Every Beacon is DTIM Beacon] |
2 | 1 0, 1 0, 1 0 …. |
3 | 2 1 0, 2 1 0 … |
0 [This value is reserved] | NA |
♣ What is the meaning of DTIM count = 0?
A DTIM Count of 0 indicates that the current TIM is a DTIM. In another way we can say, all connected STAs have to wake up at this Beacon to see if AP has multicast data or not by checking Multicast bit.
♣ DTIM steps with example:
Let’s take one scenario to see this. One STA is connected to AP and AP has one backend system.
As we know DTIM is for broadcast or multicast data then we can simulate it like this.
1. Delete ARP cache at 192.168.1.10. You can use
command:
arp –d
2. Do ping from AP backend to STA.
Command:
ping 192.168.1.2
3. Now, at this stage AP backend forwards this to AP but AP does not know this IP address. So AP sends broadcast ARP request looking for MAC address for IP address 192.168.1.2. But as STA is in powersave, AP cannot send this frame immediately so as per rule AP set multicast bit = 1 when DTIM count is 0 in Beacon.
4. Then AP sends broadcast ARP request (this is the buffered broadcast packet).
5. AP sets multicast bit = 0 on next beacon as broadcast or multicast data has been cleared.
See the screenshot
Note:
a. No ACK was required for broadcast or multicast data. That’s why we have not seen any MAC layer ACK (802.11 ACK) for ARP request.
b. Multicast or Broadcast data is sent at lowest basic data rate. In our example it’s 1 Mbps.
See screenshot
♣ DTIM vs TIM
DTIM | TIM |
Used for Broadcast or Multicast Data. | Used for Unicast Data. |
TIM’s subfield has DTIM related fields. | Every Beacon has TIM element. |
If DTIM count = 0 then current beacon is DTIM beacon. Any other value of DTIM count does not have any importance for DTIM mechanism. | Every beacon’s TIM is important for different STAs. |
If DTIM count is 0 and multicast = 1 then AP has to transmit buffered broadcast or multicast data on priority than unicast data. | If AP has unicast data buffered and it’s indicated in TIM. But it also has Multicast data so unicast data will be sent on lower priority than multicast or broadcast data. |
♣ Optimal value for DTIM:
There is no optimal value for DTIM to be set at AP. It depends on application or scenario.
1. DTIM period = 1:
This means every beacon is DTIM beacon so all connected STA has to wake up on every beacon and check if AP indicated any buffered data. So, STA cannot sleep for more time but all STAs get broadcast or multicast data quickly.
Now if your requirement is the above then DTIM period = 1 is good to use.
2. DTIM period = 10:
If receiving broadcast or multicast data is not a priority for clients. Clients want to save battery then this setting would help as STAs can sleep for longer time.
3. DTIM period = 3:
If you want to achieve 1 and 2 both then value 3 would be a good settings (Just an assumption).
But again this all depends on your requirements.
♣ If AP has multicast data and unicast data for STA then which on will be sent on priority?
Multicast data has more priority then unicast data because multicast data is intended for all connected STAs. More STAs are waiting for this data from AP.
♣ What data rate is used for multicast data? Why? Can we not send multicast data in higher data rate?
In general multicast data is sent at lowest basic data. rate
The reason is, lower data rate is more reliable and can cover longer distance for multiple clients. Another way, multicast data is not retried from AP and multiple STAs are waiting for this data. So it is recommended to send multicast data at lowest basic data rate.
We can send multicast data at highest data rate if AP support the feature called “Multicast to Unicast Data”. If this is enabled then AP converts multicast data to unicast and sends the data like unicast fashion. Depend on scenario this may speed up or slows down the network. One aspect is, if connected clients are less then this is a good idea but for more clients AP will take more time to send multicast data to all connected STAs. As per my knowledge, some Qualcomm AP supports this feature.
♣ What encryption mechanism is used for multicast data?
For multicast GTK is used to encrypt the data if AP is configured with personal security.
♣ Conclusion:
From this article we understood that DTIM is very important for STA to wake and check for any multicast data. And STA has to wake up on DTIM Beacon irrespective of listen interval.
♥♥ If you have any doubts or query please let me know in comment section or send mail at feedback@wifisharks.com ♥♥
Selvam G
Nice page very good explanation.. .. sorry for some big questions
1. Consider Station is in sleep and its DTIM interval is 3. Now Station is getting both unicast and multicast packets. so for every TIM beacon, it will indicate unicast and DTIM beacon it will indicate only multicast pocket? or will it enable multicast bit to 1 for multicast and add AID for unicast?
if AP doesn’t indicate unicast data on the DTIM beacon.. then if STA is in sleep and waking for every 3 beacon(DTIM). how it will know about unicast data ?
2. whats the exact use of listen interval ? consider STA has DTIM interval as 3 and AP has DTIM interval as 1. how and when DTIM negotiation will happen ?
Bamdeb
Thanks Selvam for reading the post.
1. As per you first line it looks like STA’s DTIM interval is 3. The correct term is , AP’s DTIM interval is 3. DTIM term is generally used with AP. There is no separate STA DTIM interval. Just to correct you :).
Now as we know DTIM interval 3 [Beacon 2, Beacon 1, Beacon 0] means, AP can indicate any multicast data on Beacon number 0 if present.
Now as per your question if AP has both unicast and multicast data. Then,
Every Beacon TIM will have AID set for that STA but AP can indicate multicast data only DTIM beacon [DTIM 0]. Ofcouse DTIM beacon’s TIM will have AID also.
Another way to say,
DTIM count 2 beacon —> unicast+no multicast data
DTIM count 1 beacon —> unicast+no multicast data
DTIM count 0 beacon —>unicast+multicast data
2. As i pointed in previous answer there is no STA DTIM interval. We can only configure DTIM interval in AP , not in STA. STA has to follow AP. You can check in AP’s web page to configure DTIM.
I hope you got it right now.
Listen Interval is shared by STA in Association Request to tell AP that STA can wake up after that much time along with waking up in DTIM beacon. Another way, If STA does not take its buffer data, AP will hold the buffer data till the STA mentioned Listen Interval time and then drop the STA’s buffer data.
Thanks,
Bamdeb
Supriya
Nice article. Understood DTIM.
Bamdeb
Thanks for reading.
sukumar
Great article.
dushyanth simha
Hi I have few questions.
1)DTIM count “3” and Listen interval “2”, if there is any data for station how STA will receive the data?
2)If there is a “Broadcast” data and “unicast” data and configured DTIM and listen intervals .which data will receive by STA first?
Pintu
1. When you are configure DTIM 3 and listen interval 2 at this point STA will sleep for 2 listen interval times when it’s wake up for 3 rd time it will hear (DTIM)3*2 = 6and(Listen Interval) 2*3 = 6 at this point STA will receive broadcast packets.
2.First unicast data packets TX will takes place later multicast follows.
If there something wrong pls let me know
Bamdeb
2-> Multicast has more priority than unicast data in case of powersave scenario. If you know any scenario where unicast is more priority than multicast then you can share.
Bamdeb
Hi Dushyanth ,
Thanks for reading the reading the article.
First of let me correct some points from your questions
You mentioned DTIM count 3, actually you meant DTIM period 3. DTIM count will be 2 1 0 ..and repeat 2 1 0
In general listen interval will be in term of beacon interval ex: 600 so if beacon interval is 100ms then STA has planned to wake up on every 6th beacon. Listen interval “2” does not mean anything.
If you have seen anywhere then please share , we will see that.
1=> Remember DTIM is used for multicast data indication and so STA has to wake up on 3rd DTIM beacon to know about multicast data. For unicast STA can wake up on listen interval time.
Please read below article for more clarifications
https://wifisharks.com/2020/10/24/sta-wake-up-scenario/
2=> In general, Multicast has more priority than unicast. It does not depend on any DTIM, Listen Interval value.
Dushyanth
Thanks Bamdev