I'm trying to understand the consequence of using Nagle's algorithm with different send buffer size values.
My current understanding of the send buffer is that it refers to a part of memory where a copy of the unacknowledged sent packet is stored. Once an ACK is received for the that packet, the send buffer is cleared. If an ACK is not received, the packet is sent again from the send buffer. Please correct me if I'm wrong.
Now my questions -
- If the
send bufferis full, does that mean that no new packets will be sent to the receiver, even if Nagle's is disabled? - What happens if I set the
send buffer sizeto 0 and disable Nagle's? Do I just lose the ability to resend a lost packet in case an ACK never arrives?