> 
> Also, even if the TCP connection stalls for the ACK, why does it take multiple
> miliseconds for the ACK to come back over the localhost?
> 
> Thanks,
> Ben
> 

NODELAY effects whether we send the second message right away (without waiting 
for
the first ACK). 

Normal (small writer):

        Sender
        write( "ABC" )
                        packet "ABC" ->
        write( "DEF" )
        write( "GHI" )
...
        write( "XYZ" )
                                <- ack for "ABC" 
                        packet "DEFGHI...XYZ" ->
                                <- ack up to Z

Nodelay
        write( "ABC" )
                        packet "ABC" ->
        write( "DEF" )
                        packet "DEF" ->
        write( "GHI" )
...
        write( "XYZ" )
                                <- ack for "ABC" 
                        packet "GHI...XYZ" ->
                                <- ack for "DEF"
                                <- ack up to Z
        

The delaying of acks happens unless TCP_QUICKACK is set on receiver.
It helps because if application is request/response and uses large
write's you would see:

        Sender
        write ("ABC....XYZ?")
                        packet "ABC....XYZ?" -->
                                                        read("ABC...XYZ?")
                                                        write("ok")
                                        <-- packet  "ok" + ACK up to Z
                        ack "ok"
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to