Skip to content

All in TCP/IP

There's a blog post I love. "Everything I Learned About Life, I Learned from TCP/IP." It's nearly twenty years old now.

It maps TCP/IP specs onto life. If you don't send an ACK, the other side retransmits. Push past the window size and the receiver drops your data. No three-way handshake, no conversation. When I first read it, I thought it was clever.

Looking at it again, TCP/IP might be the most complete algorithmic model of human communication ever written. Confirm the other side received your message. Adjust your sending rate to match their processing capacity. Back off when the network is congested. Time out and give up. Everything humans do unconsciously in conversation—or fail to do—defined as protocol.

Humans don't return ACKs. The fact that "read receipt ignored" is a universal grievance means our species failed to implement acknowledgment. No congestion control either. Plenty of people keep talking at full rate regardless of whether the other person is busy. No retransmission timeout. Some people resurface arguments from years ago.

What makes TCP remarkable is that it built reliable communication on top of an unreliable path. IP guarantees nothing. Packets vanish. They arrive out of order. TCP stacked sequence numbers, retransmission, and acknowledgment on top of that chaos and produced reliability. Human relationships also run on unreliable paths. We just don't have TCP's implementation skills.

I'll leave aside what happened with IPv6 multicast. That's the equivalent of a video call where half the participants can't log in.