Afficher un message
Vieux 07/05/2006, 10h29   #2
Markus Zingg
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Nagle's Algorithm Blues

>For how long will the sender hold on to this 50 byte packet? Will it
>wait till eternity till it receives an ACK for the 100 byte packet, or
>will it after some threshold, send this packet?


Sounds a bit like homework to me, but actually a not yet ack'ed
previously sent out segment should not delay one that is redy to be
transmitted unless sending this new segment would violate the so far
anounced recieving window of the reciving end. In other words,
retransmitting segments is done elsewhere - at least in my
implementation. So, to answer your question, the sender will send out
the 50 bytes as soon as Nagle tells it's ok. Last not least the
reciving end usually is able to handle out of order segments and
buffer the segment carrying the 50 bytes before they are delivered to
the reciveing application layer up until the first 100 bytes are
finally retransmitted and recived. Then, once the reciver get's the 50
out of order bytes it will send out an ack for the last segment
recived (the one before the 100 bytes) which in turn could (depending
on the implementation of the sending stack) initiate the immediate
retransmission of the missing 100 byte segment.

So, the bottom line is that Nagle Algorithm is in almost all cases a
good thing and almost never creates a problem. I think more problems
are introdruced (performance wise) by people turning it off "just
because" then because it's active.

HTH

Markus

  Réponse avec citation
 
Page generated in 0,29781 seconds with 9 queries