I've been frustrated by these dropouts on AirPlay for as long as I've has an AirPort Express and I've spent quite a lot of time characterizing this problem in the vain hope that Apple will finally find enough information to tackle this issue.
First, the network setup:
* Apple MacBook Pro running Snow Leopard & iTunes of various versions as released over the years (11.0.3 right now)
* Wireshark to observe network traffic
* Verizon FIOS with Actiontec router
* Apple Airport Express cabled to Actiontec router using Cat6 cable
- Cabled Airport Express audio output cabled to my stereo Aux input
- Cabled Airport Express configured to "Create a wireless network" dedicated to Airplay
- Configured to use WPA2
* Second Airport Express wirelessly connected
- Second Airport Express audio output cabled to a self-powered speaker
- Second Airport Express configured to "Join a wireless network;" the same network created by the 1st Airport Express
I've tried every trick described that I can find on the Internet including:
* Disabling IPv6 everywhere
* Installing various Airport Express firmware versions: 7.6.3, 7.6.1
* Assigning static IP addresses to both Airport Expresses
* Leaving iTunes on the MacBook Pro configured to use its internal speaker
* Leaving Airport Utility running continuously
* Assigning Airport Express to use a WiFi channel unused by any neighbors
* No kitchen appliances running
* All network participants within 30' line of sight
Here's what I observe when all works properly using Activity Monitor and Wireshark:
* iTunes is the top CPU user at ~20%
* Kernel task PID 0 is second at about 5%
* ~256 packets per second transmitted by MacBook; ~128/s for each Airport Express
* Each transmitted packet is ~700-1000 bytes (I assume this is real time music)
- To each Airport Express, UDP port 6000
- From my MacBook Pro, UDP high port
* ~3-5 packs per second received by MacBook
- One packet per second from each Airport Express. The rest appear to be DNS queries & responses
- Each packet is 62 bytes in length; 20 byte payload
- To my MacBook Pro, UDP port 6001
- From each Airport Express, UDP port 6001
- No reply from MacBook
- One other packet per second from each Airport Express
- Each packet is 74 bytes in length; 32 byte payload
- To my MacBook Pro, UDP port 6002
- From Each Airport Express, UDP port 6002
- Each gets a single reply of same length & protocols from Macbook
Here's what happens during a dropout:
* Kernel task PID 0 is top CPU user at ~25% (does this process service the IP stack?)
* iTunes drops to ~5% CPU
* Network traffic sent by MacBook spikes to ~800 packets per second; traffic received spikes to ~600 packets per second
* Each packet (sent and received) is 50 bytes in length; 8-byte payload
- To MacBook, UDP port 6001; from each AirPort Express, UDP port 6001
- Macbook appears to respond to every UDP packet received
- same source and destination port numbers (6001)
- same packet size, same payload size (50 bytes with 8-byte payload)
I have no idea how to decode the protocol in the payload. I'd love any information there.
Can anyone at Apple explain these periodic packet storms that cause a roughly 1-second dropout at irregular intervals? I can supply wireshark packet captures with payload data. Please help. There are clearly hundreds of dissatisfied customers out here.