I'm reading RFC 1144 and I'm trying to figure out how the TCP/IP header compression works. As I understand it, the sender only sends a couple of fields that are likely to be changed.

If the packet doesn't contain the IP of the sender, how does the receiver know which IP address it needs to respond to?

Which packet headers does the receiver store to "rebuild" the packet?

More Info :
Suppose i have a receiver lets call it R and two Senders S1 and S2 .
at first S1 and S2 sends SYN streams to R , so R stores in an array their headers (complete headers) , next S1 sends a compressed packet , how R knows according to which header it must rebuild the packet ?
note : we are talking about layer 3 (network) with no mac addresses and source ip .

  • Not sure how to interpret that second question... Could you edit/clean it up a bit to clarify? Nov 19, 2013 at 20:08

1 Answer 1


If the packet doesn't contain the IP of the sender, how does the receiver know from where it got the packet?

TCP Syn-segments are always sent uncompressed. After each host has received a SYN-segment, they know the other side's IP address. They can then compress the following segments' headers, because the IP address is remembered and re-entered in the header by the decompressor.

...and according to which packet headers that it (receiver) stored it "rebuilds" the packet?

According to the headers of the packets that were tranmitted uncompressed, at least the first two (SYN) segments of the connection, one in each direction.

  • if the receiver received multiple packets from multiple sources how does he match each packet to its source ??? Nov 19, 2013 at 22:22
  • ok as i read in the packet sent there is a field called connection number and it points to the header index in the array of headers in the receiver side . Nov 20, 2013 at 14:41
  • Every first packet of aconnnection contains all the info the receiver needs (src ip + port and sender ip + port are known). He will store this info and link it to a connection id that will be present in all subsequent packet of that connection.
    – Gerben
    Nov 20, 2013 at 14:53
  • exactly that id is called connection number Nov 20, 2013 at 15:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.