> > 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