TCP建立连接过程的三次握手的详细解析

TCP建立连接过程的三次握手的详细解析

首先认识一下TCP有6种标识:SYN(建立联机)、ACK(确认)、PSH(传送)、FIN(结束)、RST(重置)、URG(紧急)

为了保证数据能达到目标,TCP采用三次握手策略:

  1. 客户端首先发送一个SYN(synchronize)标志的数据包给接收方【第一次的seq序列号是随机生产的,这样是为了网络安全,如果不是随机产生的初始序列号,黑客将会以很容易的方式获取到你与其他主机之间的初始化序列号,并且伪造徐磊好进行攻击】
  2. 服务端接收后,回传一个带有SYN/ACK(acknowledgement)标志的数据包以示传达确认信息【SYN是为了告诉客户端,客户端到服务端的通道没问题;ACK用来验证服务端到客户端的通道是否有问题】
  3. 最后,客户端再回传一个带ACK标志的数据包,代表握手结束若在握手某个过程中某个阶段突然中断,TCP协议会再次以相同的顺序发送相同的数据包
为什么需要三次握手呢?

三次握手的目的是建立可靠的通信信道,说道通信,简单来说就是数据的发送和接收;而三次握手最主要的目的就是双方确认自己与对方的发送与接收是否正常的

  • 第一次握手:客户端:什么都确认不了;服务端:对方发送正常,自己接收正常
  • 第二次握手:客户端:对方发送正常,接收正常,自己发送、接收正常;服务端:对方发送正常,自己接收正常
  • 第三次握手:客户端:对方发送正常,接收正常,自己发送、接收正常;服务端:对方发送正常,接收正常,自己发送、接收正常
两次握手不行吗?为什么TCP客户端最后还要发送一次确认呢?

主要防止已经失效的连接请求报文突然又传送到了服务器,从而产生错误;经典场景:客户端发送了第一个请求连接并且没有丢失,只是因为在网络节点中滞留的时间太长了

  1. 由于TCP的客户端迟迟没有收到确认报文,以为服务器没有收到,此时重新向服务器发送这条报文,此后客户端和服务器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值