The post originally appeared on the Tufts ACM blog.
It’s a common joke among computer scientists to liken themselves to the machines they work with. While not as prevalent at Tufts as other schools, the language of memory errors or HTTP status codes creeps into our understanding of ourselves and of our social situations. It’s a whimsical combination of metaphor and geekery. ACK?
There are two primary protocols that computers use to communicate with each other across a network. The first is UDP, which is fast and lightweight. UDP is a single packet hurled across the Internet to whatever fate may befall it. TCP is a more sophisticated protocol that makes various guarantees about the message that it is sending.
For one, TCP is reliable, while UDP is not. The term “reliable” has a special meaning in this context: a reliable protocol ensures that the message will get there. TCP is courteous enough to ask for retransmission if it didn’t receive a packet it was expecting. I’d like to apply to term back to human beings talking to each other.
If we put more emphasis on reliable communication, we’d spend less of the conversation talking and more time listening, to make sure we understood everything that was said. If not, it’s as simple as asking “come again?”, and being patient enough to repeat yourself. Ensuring a reliable connection places value on what other people say, which will lead to more friendships and tolerance. Efficiency and courtesy go hand-in-hand.
Secondly, TCP is serialized, which means it tolerates packets coming in out of order. It puts them in the right order before handing them off to the program above it, say, your mail client. UDP is not serialized, so different parts of the same file can arrive out of order.
Relationships used to be serialized. Courtship rituals bare a striking resemblance to network protocols, algorithmic dances of identification, verification, and only then communication. Or something. Serialization has been left on the sticky concrete floor of the frat house basement. If you’ve spent most of your Saturday nights in Halligan, I should remind you that many of our classmates have the inscrutable tradition of making out before so much as exchanging first names. (It’s as insecure as it sounds.) We’ve lost the notion of “not on the first date”.
In fact, we’ve largely lost the notion of dating altogether. Like UDP, hookups are a connectionless protocol, something we do blindly and without preservation of state from one to the next. It would be awfully hard to have a friendship if every time you started talking you had to introduce yourselves. TCP’s solution is the abstraction of a two-way stream of data. This connection must be set up by hand-shaking, maintained while in use, and eventually torn down. Similarly, only by effort and memory can we form lasting relationships and “connections” to other people.
You may remember the final scene of The Social Network, where Mark Zuckerberg (Jesse Eisenberg) lazily hits refresh to see if the woman he was dating at the start of the film has accepted his friend request. He has been trapped by his own creation. I think that computer scientists have a unique vantage point in our increasingly technologized world. By understanding the limitations of our machines, we are better equipped to, when necessary, put them aside and have a conversation with other human beings.