带你深入浅出新面经:三、TCP三次握手的过程,为什么不可以两次握手?

此为面经第三谈!可以关注我,每日带你深入浅出一个新面经。

我们要了解面经要如何“说”!

很重要!很重要!很重要!

我们通常采取总-分-总方式来阐述!(有些知识点,你可以去了解,但是面经并不是需要全部了解的)

码农不易,各位学者学到东西请点赞支持支持

开始部分:

总:首先我们需要了解TCP的一个背景,TCP是全双工、面向连接的、可靠的、基于字节流的传输层协议

分:流程图(需要印在脑海中)(重要!!)

那么我们现在开始讲解一下,第一次握手客户端:发送一个 SYN 包,请求建立连接。SYN 包中包含客户端的初始序列号 x。此时,客户端进入 SYN-SENT 状态(已发送状态)。

第二次握手服务器:处于 LISTEN 状态(监听状态)。当服务器收到客户端的 SYN 包后,进入 SYN-RECEIVED 状态(已接收状态)。服务器回应一个 SYN+ACK 包,其中包含服务器的初始序列号 y。同时,服务器的 ACK 包中的确认号设置为 x + 1,表明服务器已成功接收客户端的序列号 x

第三次握手客户端:收到服务器的 SYN+ACK 包后,进入 ESTABLISHED 状态(已连接状态)。客户端回应一个 ACK 包,确认号设置为 y + 1,表明客户端已成功接收服务器的序列号 y。客户端的 ACK 包中包含客户端的下一个序列号 x + 1(从此序列号开始传输实际数据)

三次握手的作用

确保双端具备收发能力:通过三次握手,客户端和服务器都确认了彼此能够正常发送和接收数据包。

同步序列号:客户端和服务器交换初始序列号,确保双方都知道对方的序列号(通过x+1和y+1确认号),从而可以正确地对数据包进行确认和排序。

避免旧的连接初始化:通过三次握手的过程,通过客户端返回RST包能够有效避免由于网络延迟等原因引起的旧的或重复的连接请求,避免了资源浪费。(如下图)

为什么不可以只进行两次握手:因为这是跟三次握手的作用是相反的。

序列号同步问题:两次握手无法完全同步双方的序列号,可能导致数据包无法正确识别和确认,影响通信的可靠性。

连接初始化问题:两次握手不能有效避免旧的连接请求,这些旧的请求可能会干扰新的连接,造成资源浪费和潜在的安全问题。

总:从三次握手的过程中,我们可以清晰看出其主要作用:同步序列号、确认双方收发能力、防止旧连接初始化。

学习链接:https://xxetb.xetslk.com/s/3Kif2D

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值