4.1 Example 1: Querying a Wireless Sink Supporting Runtime Diagnostics

The following figure shows the layout of an example network that interconnects a media server and a TV with an integrated media player.

Example media server and TV (integrated media player network)

Figure 3: Example media server and TV (integrated media player network)

The media server is used to stream media content to the TV. The qWave-WD protocol can be used by the media server to diagnose and optimize wireless connectivity between the access point and the TV.

The following figure shows the protocol exchange between the media server and the TV. The TV also supports runtime diagnostics by returning additional counters. These counters can be used by an advanced media server to diagnose wireless interference issues, such as microwave interference.

Protocol exchange between the initiator and the wireless sink device

Figure 4: Protocol exchange between the initiator and the wireless sink device

The following list describes each step in the protocol exchange:

  1. The initiator initiates a TCP connection with the sink device at destination port 2177.

  2. The sink device accepts the TCP connection.

  3. The initiator constructs a Handshake Header (section 2.2.1.1) and sends it to the sink device.

  4. The initiator constructs a Common Message Header (section 2.2.1.2) with the Message_ID field set to 0x0009 (Connect) followed by the Connect Message (section 2.2.2.1)-specific header and sends it to the sink device.

  5. The sink acknowledges the Handshake Header from step 3 and constructs its own Handshake Header and sends it to the initiator.

  6. The sink acknowledges the Connect Message from step 4 and constructs a Common Message Header with the Message_ID field set to 0x000A (Connect Response) and sends it to the initiator.

  7. The sink follows up immediately with the rest of the Connect Response Message (section 2.2.2.2) by sending the Connect Response Message-specific header.

  8. The initiator sees that the W bit is set in the Connect Response Message-specific header and then constructs a Common Message Header with the Message_ID field set to 0x000B (Collect Data) followed by the Collect Data Message (section 2.2.2.3)-specific header and sends it to the sink device.

  9. The sink acknowledges the Collect Data Message from step 8 and constructs a Common Message Header with the Message_ID field set to 0x000C (Collect Data Response) and sends it to the initiator.

  10. The sink follows up immediately with the rest of the Collect Data Response Message (section 2.2.2.3) by sending the Collect Data Response Message-specific header.

  11. The initiator constructs a Common Message Header with the Message_ID field set to 0x000D (Force BSS List Scan) followed by the Force BSS List Scan Message (section 2.2.2.5)-specific header and sends it to the sink device.

  12. The initiator immediately follows up by constructing a Common Message Header with the Message_ID field set to 0x000F (Get BSS List) followed by the Get BSS List Message (section 2.2.2.7)-specific header and sends it to the sink device.

  13. The sink acknowledges the Get BSS List Message from step 11 and constructs a Common Message Header with the Message_ID field set to 0x000E (Force BSS List Scan Response) and sends it to the initiator.

  14. The sink acknowledges the Get BSS List Message from Step 12 and constructs a Common Message Header with the Message_ID field set to 0x000F (Get BSS List Response) and sends it to the initiator.

  15. The sink follows up immediately with the rest of the Get BSS List Response Message (section 2.2.2.7) by sending the Get BSS List Response Message-specific header.

  16. The initiator has received all the information it requires, so it closes the TCP connection with the sink.

  17. The sink acknowledges the TCP connection close.