3.3.5.14 Network Characteristics Detection

The steps that follow describe how a server SHOULD respond when receiving the client-to-server network characteristics response detection messages described in section 2.2.14.2.

  1. When sending an RTT Measure Request (section 2.2.14.1.1) to the client, the server MUST save the timestamp (the current system time in milliseconds) and the unique sequence number associated with the message in the RTT Measure Request Data store (section 3.3.1.13).

  2. When receiving an RTT Measure Response (section 2.2.14.2.1) from the client, the server MUST look up the timestamp of the associated RTT Measure Request (section 2.2.14.1.1) by searching the RTT Measure Request Data store (section 3.3.1.13) using the contents of the sequenceNumber field as a key. Subtracting the saved timestamp from the current time will yield an RTT (round-trip time) sample in milliseconds. This value can be used by the server to calculate the average RTT or moving average RTT.

  3. When receiving a Bandwidth Measure Results (section 2.2.14.2.2) the server MUST use the contents of the timeDelta and byteCount fields to calculate the bandwidth in kilobits per second using the following calculation: (byteCount * 8) / timeDelta.

  4. When receiving a Network Characteristics Sync (section 2.2.14.2.3) the server MUST stop any RTT or bandwidth measurement operation that is in progress and instead use the values transmitted in the bandwidth and rtt fields.