TCP三次握手

三次握手

第一次:客户端发送请求给服务端,确定服务端可以接收到消息
第二次:服务端收到客户端的请求后,做出回应
第三次:客户端发送请求给服务端,建立TCP连接

最基础的是两次握手,那么为什么客户端还会向服务器发送一次请求呢?
第三次握手是为了防止已经失效的客服端请求又被发送到了服务端,从而发生错误。

假设没有第三次握手会怎样?
客户端发送的第一次请求因为网络延迟等原因迟迟没有发送到服务端,因为服务端没有接受到客户端的请求,就不会给客户端回应,没有收到回应的客户端就再次给服务端发送了一个请求,等待网络通畅后,失效的报文和正确的报文一起被发送到了服务端,如果只握手两次,到这里就应该已经建立TCP连接,显然这是不对的,失效的报文被发送到服务端,服务端在等待客户端发送数据,而客户端已经发送了另外的报文,自然就不会给服务端发送数据

这个过程就好比在网络里聊天
你给你的好友发送了一个“在吗?”,你的好友回复“在的”,你回复“我也在”,好了确定你俩都在线可以开始聊天了,这就是三次握手。
如果是你发送“在吗?”因为网络原因消息没被发送出去,你以为你的好友不在线随之离线,等你的设备在网络环境好的情况下吧你刚刚的消息又发送出去了,你的好友收到消息,回复了你“在的”以后,会等待与你的聊天,而你又刚好离线了,就会造成你好友不好的体验!这就是两次握手会造成的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值