On Sat, May 18, 2024 at 9:04 PM Bakul Shah via TUHS <tuhs(a)tuhs.org> wrote:
Note that even if you remove every RAM buffer between the two
endpoints of a TCP connection, you still have a "buffer".
True, and it's unavoidable. The full name of the virtual circuit
communication protocol is TCP/IP (Transmission Control Protocol over
Internet Protocol). The underlying IP is the protocol used to actually
transfer the data from machine to machine. It provides datagram service,
meaning that messages may be duplicated, lost, delivered out of order, or
delivered with errors. The job of TCP is to provide virtual circuit
service, meaning that messages are delivered once, in order, without
errors, and reliably.
To cope with the underlying datagam service, TCP has to put error checksums
on each message, assign sequence numbers to each message, and has to send
an acknowledgement to the sender when a message is received. It also has
to be prepared to resend messages if there's no acknowledgement or if the
ack says the message was received with errors. You can't do all that
without buffering messages.
-Paul W.