next up previous contents
Next: 5.4 FCM Queue Information Up: 5 Interface Description Previous: 5.2 STREAMSLOG File Format   Contents

5.3 Packet Modifications

The communication between the Router and Receiver consists of sending the current value of $p(q)$ whenever a packet to the Receiver is forwarded by the Router. This value will be sent as a new TCP option. This is a piece of information stored after the standard TCP headers but before the beginning of the packet's data. It is considered to be part of the TCP header.

A TCP option is made up of three components. The first is the option number, then the option length, and finally the option value. The option will have the number 92. This was chosen because it is currently unused. It will have a length of 4 bytes. These two choices determine the first 2 bytes of the option, as each is stored as an 8-bit unsigned integer.

The following 2 bytes will contain the value of $p(q)$ at the moment the packet left the Router. This value will be stored using the network byte order, where the most significant byte is placed first. It is thus up to Receivers to convert this to their native byte order. The structure of such a TCP packet and the $p(q)$ option is shown in Figure 9.

Figure 9: The structure of the TCP option used to send p(q)
\includegraphics[width=14.35cm]{diagrams/tcpoption}

Because this option adds 4 Bytes to any TCP packet it is added to, it will only be added to packets if the addition of these 4 Bytes will not place it over the MTU (see section 10) of the low bandwidth link. In other cases, the packet will be left alone.

In addition to adding the TCP option, the checksum of the packet will be updated appropriately. This will be done using an incremental method, which simply updates the checksum to take into account the change of the data. This has the advantages over simply calculating the entire checksum that it will not produce a correct checksum for a packet which previously was incorrect, and it is more efficient.


next up previous contents
Next: 5.4 FCM Queue Information Up: 5 Interface Description Previous: 5.2 STREAMSLOG File Format   Contents