[e2e] A simple scenario. (Basically the reason for the sliding window thread ; -))
detlef.bosau at web.de
Sun Jan 14 04:00:29 PST 2007
Agarwal, Anil wrote:
> I think, this scenario will occur if
> the TCP-splitters buffer x bytes of undelivered data,
> the sender cwnd is y,
> x < 2^32 and x+y >= 2^32,
> the splitters go down and
> packets flow between the sender and receiver over an alternate path.
If a splitter goes down, all data which is acknowledged by the splitter
but not yet delivered to the sender is unreceoverably lost.
In addition, sequence numbers are flow specific, so when a splitter goes
down and the flow takes an alternate path the ack-numbers received by
the sender are completely undefined as they stem from a different TCP flow.
So, Joe is right here when he says that end to end semantics on the
connection level are destroyed and we cannot recover from a failure of
However, I don´t know whether there are hot stand by architectures
available or at least possible in some cases where a backup can replace
a failed split box. But such an architecture would at least require a
one to one copy of any flow specific state data to be available at the
split box and each of its backup systems as well.
> Detlef - this is not as easy as it might first appear, especially
> since data can get buffered at the sending or
> receiving TCP-splitter in a two-splitter case,
> but it can be (is) done.
Are there papers available on this?
> Hence, x + y < 2^32 and the above scenario will not occur.
> The above also requires that TCP-splitters use
> the same ISS (Inital Sequence Number) with the receiver
> as the one used by the sender.
> A good TCP-splitter should (does).
This is one issue I refered to above.
Particularly on this one: I admittedly have no idea how sequence numbers
are frozen. It would be sufficient to freeze sequence numers wrt to a
certain address quadrupble - however this is somewhat arduous. So I can
imagine (perhaps someone can tell me) that a TCP sender simply freezes
every used sequence number for some period of time and does not consider
the address quadruple. In that case, I think exact spoofing of
sequence numbers can be difficult?
More information about the end2end-interest