[e2e] Clarification needed on delayed acks and sliding window protocol

Bob Braden braden at ISI.EDU
Sat Sep 25 10:58:29 PDT 2004


  *> >
  *> >Now, sliding window protocol looks something like this on a sniffer
  *> >
  *> >Host A   -------> host B   (1k bytes of data)
  *> >
  *> >Host A   ------>  host B    (1k bytes of data)
  *> >
  *> >Host A   <-----   -Host B            (ack)
  *> >
  *> >Correct?
  *> 
  *> Yes (assuming 1KB is the MSS).  Note the Nagle algorithm could be on in
  *> this case (indeed, is highly likely to be on, as the FTP application may
  *> not be writing data in 1KB chunks, and Nagle ensures that maximum sized
  *> segments get sent).
  *> 

I think this is a confusing question.  Your example above seems to be
showing the use of delayed ACKs, which is a much more constrained
algorithm than is required by a sliding window.  TCP was always a
sliding window protocol.  With a sliding window, an equally valid
sequence might be:


Host A   -------> host B   (1k bytes of data)

Host A   <------  Host B            (ack 1K)

Host A   ------>  host B    (1k bytes of data)

Host A   <------  Host B            (ack 1K

(immediate ACK, no delayed ACKs) or it might be:


Host A   -------> host B   (1k bytes of data)

Host A   <------  Host B            (ack 1K)

Host A   ------>  host B    (1k bytes of data)

Host A   -------> host B   (1k bytes of data)

Host A   -------> host B   (1k bytes of data)

Host A   <------  Host B            (ack 1K)

Host A   -------> host B   (1k bytes of data)

Host A   <------  Host B            (ack 2K)

Host A   <------  Host B            (ack 1K)

(etc.)

Bob Braden



More information about the end2end-interest mailing list