首页 > 其他 > 详细

TCP三次握手

时间:2020-05-13 21:52:40      阅读:44      评论:0      收藏:0      [点我收藏+]

最近在看《图解HTTP》这本书,对于其中的一点我很疑惑,TCP为什么要握三次手,两次不行吗?两次不就可以建立连接了吗?

介绍:

技术分享图片

 

TCP三次握手的流程就如上图所示:

首先,我们明确下主动发送请求的就叫客户端,像浏览器、APP等,而响应请求的就叫服务端。

客户端首先发送一个带有SYN(synchronize建立联机)标志的数据包给服务端。服务端接受到了后,返回一个带有SYN/ACK(acknowledgement确认)标志的数据包以示确认传达信息。最后,服务端再传回一个带有ACK标志的数据包,代表‘握手’结束。

 

原因:

接下来我们分析下为什么要‘握’三次手:

第一次握手:

可得:客户端的发送能力正常、服务端的接收能力正常。服务端此时可以得出自己的接收能力正常,客户端的发送能力正常,但是客户端并不知道,所以需要服务端给它一个爱的肯定,发送一个带有SYN/ACK标志的数据包给客服端。

第二次握手:

可得:客户端收到了服务端带有SYN/ACK标志的数据包,客户端可以得知自己的发送和接收数据包的能力正常,还有服务端的接收和发送都是正常的。但是,服务端并不清楚它的发送能力是正常的,服务端需要客户端给它来个爱的反馈。那还说什么呢,客户端赶紧得发送ACK数据包来帮助服务端确认自己的发送能力。

第三次握手:

服务端得到了客户端带有ACK标志的数据包,说明它的的发送和接收功能都是正常的。

那么:你正常,我正常,TCP连接就正常,我们开始数据传输吧~

 

问题少年来了:如果发送过程中断了呢?

答:TCP协议会再次以相同的顺序发送相同的数据包。

 

TCP三次握手

原文:https://www.cnblogs.com/caoshufang/p/12884828.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!