preface

A colleague with four years of experience interviewed for a mobile technology manager position on a startup team of 13 people, including the boss. The conversation started off well, covering topics such as what user pain points were addressed on where and when projects, what problems were encountered during development, how to view and diagnose the problems, and whether there were any amateur open source projects.

After all, a four-year veteran with some preparation, answered the questions with ease, but the interviewer left his colleagues stumped with a question: How do you explain the TCP three-way handshake to a novice in 30 seconds?

The technical manager’s job is to solve cognitive problems

A technical manager is not an engineer out of a year or two, nor is it a master program. The technical manager’s job is to “point people in the right direction and help the team grow quickly with minimal cost”.

This sentence seems hard to understand, in fact, in the final analysis is to point to, is the first work of technical manager to solve team members’ cognitive problems, including in the research and development problems, combined with background knowledge Easy positioning of the essence of this problem, and the face of new technology and new domain, can be combined with the background knowledge classification quickly and easily understood to the novice to the source of technology.

What happened to you is common and universal

In other words, if your boss just “gives you the look” when handing out tasks,

Or encounter a problem, a word does not agree to start, hand in hand to guide you how to do, leaving a side to watch your face confused, rather than the first use of concise language will explain the reason for things, and then guide you, encourage you to complete, that is bound to make you feel very stupid.

However, it’s not entirely your fault that things have turned out the way they have, and you have less time for deep reflection when you’re under pressure to move bricks every day. At the same time, a boss who is experienced and not able to do his or her job isn’t really going to help you grow.

Back to the original question:

How to explain TCP three-way handshake in 30 seconds?

First of all, it is impossible to quote from some book or encyclopedia. The novice is already confused enough, but these “authorities” are happy to introduce the appearance, how to do it, a word of disapproval ACK=j+1, SYN+ACK, but never mention the nature of the matter, the cause of the phenomenon.

It’s the novice’s fault that they don’t understand. Their world view is perfect and unquestioned. If novices are deluded into following blindly, that’s what they want to see. They are more interested in raising the bar or establishing a personal religion than in using technology to improve their lives.

Fortunately, in addition to his experience, this colleague has the habit of reviewing in his spare time. He is able to put aside the appearance of “how to do” and examine the “what” and “why” of a thing that exists. So let’s take this opportunity to examine with our colleague, what is the nature of the three-way handshake? What is the context that prompted it to do so?

The background of the three-time handshake is that the two correspondences are “sitting at home”.

As you know, communication facilities exist because there is a need for “long-distance communication”, otherwise why would I have to talk into your phone when you are standing in front of me? Since THERE is a certain physical distance between me and the other party, and since I choose to use communication facilities, it is impossible for me to personally escort the message to the other party, and both of us need to stay in place and turn to a third-party messenger to help us pass the message back and forth.

Therefore, before sending actual tokens to each other, we need to make sure that our ability to receive and receive letters is normal. Otherwise, if I send the tokens, there is a car accident on the way, or the other person has moved house, then we cannot communicate with each other. And before also said, “people sit at home, do not come personally”, I and the other party sit at home, how can we know that we can send and receive mail normally?

It was against this background that our predecessors invented the three-way handshake, a solution to “confirm the ability of the communicator to send and receive data.”

The essence of the three-way handshake is to confirm the ability of the communicator to send and receive data

First, I ask the Courier to transport a letter to the other party, and the other party receives it, so he knows that my sending ability and his receiving ability are ok.

So he wrote me a letter, and if I received it, I would know that my sending ability and his receiving ability are ok, and his sending ability and my receiving ability are ok.

However, he didn’t know whether his sending ability and my receiving ability were ok or not, so I gave him one last feedback. If he received it, he would know that his sending ability and my receiving ability were ok.

That’s three handshakes. Do you understand that?

The full text after