On a broadcast link, such as DUAL, the connection number in the compressed header is not sufficient to identify the TCP connection. The new scheme saves the link source address in each state entry. When uncompressing a packet, the algorithm uses both the connection number and the link source address to find the correct state entry required to uncompress the packet.
At the same time, the state table is stored as a Least Recently Used linked list. This improves searches through the list as the most recently used states will be found quickly. When a new TCP connection is opened, the state entry at the least recent end of the linked list is used to store the state of the connection's compression, and it is of course moved to the front of the list. The original compression scheme used 8-bit connection numbers, but suggested that 16 numbers would be a good implementation maximum over a point-to-point link. In a broadcast environment, a station may have to deal with more than 16 compressed connections, especially if it is a packet router. Therefore, we have increased the implementation maximum from 16 to 256 connection numbers.
One major alteration was a restriction of the compression scheme's behaviour. When two or packets for the same TCP connection are transmitted sequentially by the sender, the connection number is removed from the compressed header. This information is vital in a broadcast environment, so the modified scheme transmits connection numbers in every compressed header, and the receiver rejects any packet without a connection number.
With these modifications, TCP/IP packets broadcast over the link will have their headers compressed, reducing the total header overhead from 58 to 10 octets, an 83%reduction in packet headers.