Comms Theory for Humans - part 2
(In which I once again get excitable about how communication theory can tell us a lot about how to human)
I talked last week about the maximum capacity of a communications channel. In practice, no channel is perfect, and there are lots of different engineering approaches to working round the imperfections. Going digital made a huge difference, because it enabled information to be sent in little packets, most of which would probably make it through. Rather than send the encyclopedia as a single book, post each entry as a separate letter, type of thing. Less efficient, obviously, but easier for the postie and, this is the important bit, you shift from all-or-nothing delivery to most-stuff-delivered. If things go missing and that bothers you, you can write back and say 'Please resend everything between Mongolia and Nematode'.
Why do humans care? Because ... we do the same sort of thing. Let's have a look at two of the most popular protocols - TCP and UDP. They both use IP, the internet protocol, to get their packets to the right address, but they handle the problem of missing packets in very different ways.
TCP is a very cautious protocol. There's a handshake (SYN, SYN ACK, ACK, or synchronise request, acknowledge sync request, acknowledge the acknowledgement) which in people often looks like this.
'Hi, how are you doing, fellow human? Got a minute?'
'Sure, let's sit down'
'Thanks, here looks good'
and then formal checking within the protocol that the numbered packets arrived in the right order, with resend requests if any went missing. In networks it's used for information which isn't time critical, but needs to be right - web pages, emails and so on.
In real life, I use TCP a lot with my children.
领英推荐
'Are you okay with that?', 'Tell me that again?', 'Tell me what I just said.'
I also use it in important meetings.
'Can you play that back for me so I can check we're both on the same page?'
UDP is much more reckless. A request comes in, response packets are flung into the ether and any that get lost are quietly forgotten about. Speed is more important than accuracy.
In networks, it's used for time sensitive information. Voice packets are a classic example. It's more important you get most of the data than that you get every last bit, because you want the call to flow smoothly.
In real life, UDP is how we do informal chats. There's still a handshake, but it's just an invite to send data, not an agreement to track every package. Quite often, the data we're transmitting isn't as important at the fact that we're sharing a connection with someone. And that's fine - some of my favourite interactions with people are just sharing.
'Hi, how are you doing?'
'Oh man, it's been a week! The dog needed his jabs, we were supposed to be having friends round for a barbeque but then it rained so much? Did you get much rain? Oh, and we managed to get the holiday booked in the end. On the plus side, my boss has been out this week so it's been quiet at work. And I heard from Emma about …'
So finally.
When you're talking to someone, and it's not working, think about what protocol you're using. Have you hand-shaken that you're both using the same one? If you've got something important to land, are you requesting ACKs? Are you sharing data, or sharing a connection??It could make all the difference.