Subject: RE: Anomalous TCP behaviour (using ip_id to disambiguate reorderi ng)

From: Stefan Savage <[email-masked]>
Date: Wed, 26 Jan 2000 09:05:51 -0800

Absolutely correct.  In fact, it doesn't work for OpenBSD (they use a
pseudo-random nonrepeating sequence). 

This is one of those tricks that goes in the "works alot of the time, but
don't depend on it" toolbox.  Of course... that's true about just about
every measurement technology out there :-)

- Stefan

-----Original Message-----
From: Shawn Ostermann [mailto:[email-masked]]
Sent: Wednesday, January 26, 2000 7:17 AM
To: Stefan Savage
Cc: [email-masked]'; Vern Paxson; [email-masked];
Anupama Sundaresan
Subject: Re: Anomalous TCP behaviour (using ip_id to disambiguate
reordering)

> Minor tangential point: you can usually disambiguate re-ordering
> from retransmissions at the receiver by observing ip_id.  Most OSs
> provide monotonicity in ip_id (at least per-flow) so re-ordered
> segments will have in-order ip_id values, and retransmitted segments
> will not (excluding a few special cases).

I can't dispute your claim, but I'm skeptical how safe it would be.
As far as I can tell, the protocol standard (791 at least) only
requires that the identifier field be unique:

    Thus, the sender must choose the Identifier to be unique for this
    source, destination pair and protocol for the time the datagram
    (or any fragment of it) could be alive in the internet.

Of course, with today's fast networks, even that requirement is
difficult (impossible) to meet.  I'd be hesitant to rely on a
heuristic that isn't guaranteed to hold for all IP stacks and that
would definitely not work with IPv6.

It's an interesting idea, though.  It would be very useful for an set
of experiments.

Shawn
-------------------------------------------------------------------------
   Dr. Shawn Ostermann  -  Associate Professor  -  Ohio University
      322 Stocker Center, Ohio University, Athens, Ohio  45701-2979
 [email-masked] -- FAX: (740)593-0007 -- Voice: (740)593-1234
    http://ace.cs.ohiou.edu/~osterman   http://jarok.cs.ohiou.edu