I Guess Apple Wireless Routers Don't Like... Anything?
I've seen a lot of inexplicable stuff in my day. Landlords advertising Free WiFi and then telling you to use the neighbor's. Twitter praise from people whose employer I had just criticized in a blog post. USC journeyman quarterback Mark Sanchez picked fifth in the entire NFL Draft. But when I saw that my sturdy Apple Airport Extreme (single radio, dual band, two-stream 802.11n) wireless router was tagging all of my apps as Background traffic, I just couldn't explain it.
For those who are unfamiliar with WiFi quality of service (QoS), a quick primer:
WiFi Multimedia (WMM) certified devices use QoS protocols from the 802.11e amendment. Primarily, that means classifying APPLICATIONS (not networks, not devices) as either Voice, Video, Best Effort or Background. What happens when a device classifies an application as Voice (highest priority)? Whenever that device is ready to send a frame (sometimes called a packet) from that Voice application the device has to wait less time before sending. What does less time get you? It gets you a better chance of being the next frame to use whatever channel you are on.
The bottom line is that you want voice applications to be Voice. If an app is Voice, there is a better chance it will work if your AP's channel gets congested.
What you don't want is for your voice applications to be Background. Background is the lowest priority level. Apps that are Background have to wait the longest possible amount of time before the device sends their frames. That is bad. It makes those apps vulnerable to shabbiness when your AP is on a congested channel.
So, what is my sturdy Apple Airport Extreme doing? It is classifying EVERYTHING as Background. TruPhone (my preferred voice app when traveling internationally), Facetime, the WWE Network and MLB At Bat were all sent using Background by my Airport Extreme. My iPod Touch (rapidly becoming my favorite WiFi surveying device) wasn't using Background for those apps. It was using Best Effort. In fact, it even used Video for some packets when I ran the Dish Anywhere app. But look at this Wireshark capture from when I ran Facetime (sorry, I was too lazy to plug in my OmniWiFi and run WildPackets OmniPeek on my virtual machine):
That's Background, Apple! For a voice app! THAT YOU MADE! Whyyyyyyyyy?!?
Maybe it doesn't matter that much. Maybe it's just my router. (It is old enough to be single-radio, you know.) Or maybe Apple has some cool new protocol going. Maybe Apple's WiFi team found out that if you have a clear channel, that the extra quiet time between frames for Background devices (seven slot times during the arbitration interframe space [AIFS] instead of three slot times for Best Effort or two for Voice & Video) results in fewer collisions. Yes! That's it! Apple figured out something none of us knew and is saving us from collisions without us even knowing it! (Actually, no. I switched to a crowded channel and the Airport Extreme kept on churning out Background frames for Facetime.)
The truth is I don't know why my wireless router was classifying my voice and video apps as Background. I know the Cisco AP in the office wasn't. See:
For those who are unfamiliar with WiFi quality of service (QoS), a quick primer:
WiFi Multimedia (WMM) certified devices use QoS protocols from the 802.11e amendment. Primarily, that means classifying APPLICATIONS (not networks, not devices) as either Voice, Video, Best Effort or Background. What happens when a device classifies an application as Voice (highest priority)? Whenever that device is ready to send a frame (sometimes called a packet) from that Voice application the device has to wait less time before sending. What does less time get you? It gets you a better chance of being the next frame to use whatever channel you are on.
The bottom line is that you want voice applications to be Voice. If an app is Voice, there is a better chance it will work if your AP's channel gets congested.
What you don't want is for your voice applications to be Background. Background is the lowest priority level. Apps that are Background have to wait the longest possible amount of time before the device sends their frames. That is bad. It makes those apps vulnerable to shabbiness when your AP is on a congested channel.
So, what is my sturdy Apple Airport Extreme doing? It is classifying EVERYTHING as Background. TruPhone (my preferred voice app when traveling internationally), Facetime, the WWE Network and MLB At Bat were all sent using Background by my Airport Extreme. My iPod Touch (rapidly becoming my favorite WiFi surveying device) wasn't using Background for those apps. It was using Best Effort. In fact, it even used Video for some packets when I ran the Dish Anywhere app. But look at this Wireshark capture from when I ran Facetime (sorry, I was too lazy to plug in my OmniWiFi and run WildPackets OmniPeek on my virtual machine):
That's Background, Apple! For a voice app! THAT YOU MADE! Whyyyyyyyyy?!?
Maybe it doesn't matter that much. Maybe it's just my router. (It is old enough to be single-radio, you know.) Or maybe Apple has some cool new protocol going. Maybe Apple's WiFi team found out that if you have a clear channel, that the extra quiet time between frames for Background devices (seven slot times during the arbitration interframe space [AIFS] instead of three slot times for Best Effort or two for Voice & Video) results in fewer collisions. Yes! That's it! Apple figured out something none of us knew and is saving us from collisions without us even knowing it! (Actually, no. I switched to a crowded channel and the Airport Extreme kept on churning out Background frames for Facetime.)
The truth is I don't know why my wireless router was classifying my voice and video apps as Background. I know the Cisco AP in the office wasn't. See:
The thing that really bugs me is that I recommend the Apple Airport Extreme to people all the time. As consumer-grade wireless routers go, I find it to be the best. It doesn't block wireless printing (a problem that a lot of Arris wireless modems seem to have), it doesn't require random power cycles (a problem that every other wireless router ever seems to have) and it has good range. I like it.
I have another Airport Extreme, a more modern one, that I'll test when I'm back home in Los Angeles. For now, I will just remain perplexed. Why does Apple (at least for traffic coming from their wireless router) want my Facetime to have low priority? I don't get it.
***
If you like my blog, you can support it by shopping through my Amazon link or donating Bitcoin to 1N8m1o9phSkFXpa9VUrMVHx4LJWfratseU
ben at sniffwifi dot com
Twitter: @Ben_SniffWiFi
ben at sniffwifi dot com
Twitter: @Ben_SniffWiFi
Hmm... The source is a Cisco device and you are capturing ingress packets OTA I'm guessing with an Airpcap device? (that' how I do it).
ReplyDeleteNot that I'm excusing what you are seeing, but what is the network topology in your test? Cisco switches especially will remark the qos and strip the packet unless you are doing a mls trust on the switch and then setting mls trust cos or dscp on the ports going to your APs or device like a WLC.
If you capture packet going the other way from the Apple device to the Airport (upstream) are they being properly tragged when you check OTA? Can you do a mirror or span on the port coming out of the airport and see if the tagging remains on the egress from the airport to the network?
The RF people at Apple are pretty sharp, I'd find it hard to imagine that with Facetime, Skype and everything else that get tagged as video or voice would get remarked by the airport, especially as background. The easiest thing to do would just be to not remark anything and trust the markings as they are rather than muck them up.
I have one AC Time Capsule and 2 N routes (Old Extreme and an Express). ~20 active wireless/wired clients at any given time. I have all AP named the same, and have not enabled a different AP name for the 5 GHz network. If I'm nearest the TC, I connect at AC speeds. As I move from the TC to the Extreme, I hand off to the N network of the Extreme. I can't tell if it's on the basis of signal strength or Tx speed, but it incredibly transparent. The AC is not degraded due to the presence of N and VPN on the network
ReplyDelete