简单形象理解TCP建立的三次握手
第一次握手:发起方发送一个SYN置为1的报文,seq=a ack=0
第二次握手:接收方收到 SYN之后,回复一个 SYN和ACK 置为1的报文,seq=b ,ack=a+1
第三次握手:发送方收到接收方发送的 SYN 和 ACK后,回复ACK置为1的报文,seq=a+1,ack=b+1
TCP 三次握手好比在一个夜高风黑的夜晚,你一个人在小区里散步,不远处看见小区里的一位漂亮妹子迎面而来,但是因为路灯有点暗等原因不能100%确认,所以要通过招手的方式来确定对方是否认识自己。
你首先向妹子招手(syn),妹子看到你向自己招手后,向你点了点头挤出了一个微笑(ack)。你看到妹子微笑后确认了妹子成功辨认出了自己(进入estalished状态)。
但是妹子有点不好意思,向四周看了一看,有没有可能你是在看别人呢,她也需要确认一下。妹子也向你招了招手(syn),你看到妹子向自己招手后知道对方是在寻求自己的确认,于是也点了点头挤出了微笑(ack),妹子看到对方的微笑后确认了你就是在向自己打招呼(进入established状态)。
于是两人加快步伐,走到了一起。
过程中总共有四个动作
1.你招手
2.妹子点头微笑
3.妹子招手
4.你点头微笑
其中妹子连续进行了两个动作,先是点头微笑(回复对方),然后再次招手(寻求确认),实际上我们可以将这两个动作合成一个动作,招手的同时点头和微笑(syn+ack)。于是这四个动作就简化成了三个动作。
1.你招手
2.妹子点头微笑并招手
3.你点头微笑
这就是三次握手的本质,中间的一次动作是两个动作的合并
文章版权声明:除非注明,否则均为莫不过一饮溪云原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...