TCP三次握手详解

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

一次握手:

        传输层中的TCP协议是面向连接的,在客户向服务器发送连接请求(SYN)后,但是服务器只能一次握手,所以无法给客户回复。而客户没有收到服务器的回复,就无法确定是否让服务器收到了连接请求,因此就无法判断是否连接成功。 

 二次握手:

        因为在一次握手中,客户接收不到服务器的回应,所以二次握手,接收到回复就代表着连接成功,而在测试中并非如此。如果客户想要建立连接,就要给服务器发送一个连接请求(SYN),但是可能因为一些网络问题,导致客户在很长一段时间内未能收到回复(ACK)。与此同时,客服又给服务器发送了一个连接请求(SYN),服务器接受得很顺利,因此客户很快收到了回复(ACK)。但是之前客户发送的连接请求(SYN)终于到了服务器,服务器也为这个请求申请资源回复客户,而客户已经放弃了这个连接请求(SYN),所以不会断开连接,这就造成了资源浪费。

三次握手: 

        因为在二次握手中,服务器无法判断之前的连接请求(SYN)是否有效,不会中断连接请求(SYN),并再次发送回复(ACK),但是对于客户来说这个回复(ACK)已经是失效了的,而三次握手恰好解决了这个问题。第三次握手是客户给服务器进行回复第二次握手,这也就是来说服务器等待第三次握手的到来,如果第三次握手迟迟不来,那么服务器就可以识别这个连接请求(SYN)是无效的,可以安心地将它的资源释放了。还有一种情况是当第三次握手因为一些网络问题失败了,这时候客户却以为自己已经连接好了,会去给服务器发送数据,而服务器因为没有收到第三次握手,就会用RST对客户进行响应,所以收到RST的的客户很快就知道第三次握手没有成功,进行重新连接。

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值