返回列表 发新帖

客户端跟服务器三次握手_握手(扩展)

[复制链接]

25

主题

88

帖子

149

积分

注册会员

Rank: 2

积分
149
发表于 2024-9-23 21:58:44  | 显示全部楼层 | 阅读模式
客户端与服务器之间的三次握手是建立TCP连接的过程,包括:1) 客户端发送带有SYN标志的数据包以建立连接;2) 服务器响应SYNACK数据包确认接收;3) 客户端发送ACK数据包完成连接。这确保了双方的发送和接收能力正常。
客户端与服务器三次握手扩展资料

zbhjql0vss1j1ik.jpg

zbhjql0vss1j1ik.jpg


(图片来源网络,侵删)
客户端与服务器三次握手过程详解
1、第一次握手
   过程描述:客户端向服务器发送一个带有SYN标志的数据包,以发起连接请求。
   关键点:该数据包包含客户端的初始序列号A。
   作用:通知服务器客户端希望建立连接。
2、第二次握手
   过程描述:服务器接收到客户端的SYN数据包后,回传一个带有SYN/ACK标志的数据包。

zbhjhqa3scjyw5n.jpg

zbhjhqa3scjyw5n.jpg


(图片来源网络,侵删)
   关键点:该数据包中包含确认号A+1和服务器的初始序列号B。
   作用:确认客户端的连接请求,并告知客户端服务器也愿意建立连接。
3、第三次握手
   过程描述:客户端收到服务器的SYN/ACK数据包后,回传一个带有ACK标志的数据包。
   关键点:该数据包中的确认号为B+1。
   作用:确认服务器的连接响应,此时TCP连接建立完成。
三次握手的主要目的是为了同步双方的初始序列号,确保双方能够可靠地进行数据传输,通过三次握手,客户端和服务器可以确立各自的发送和接收能力,为后续的数据传输做好准备,这一机制有效防止了过时或失效的连接请求,维护了通信的可靠性和稳定性。

zbhjohd1zkuawlm.gif

zbhjohd1zkuawlm.gif


(图片来源网络,侵删)

以下是客户端与服务器进行TCP三次握手(包括握手扩展)的过程,以介绍形式展示:
序号 状态 客户端操作 服务器操作 说明
1 CLOSED 发送SYN报文 客户端发送一个SYN报文,开始一个新的连接,同时将序列号(seq)设置为一个随机值。
2 SYN_SENT 发送SYN+ACK报文 服务器接收到客户端的SYN报文后,发送一个SYN+ACK报文作为应答,序列号(seq)设置为随机值,确认号(ack)设置为客户端的序列号加1。
3 发送ACK报文 客户端收到服务器的SYN+ACK报文后,发送一个ACK报文作为应答,序列号设置为客户端的序列号加1,确认号设置为服务器的序列号加1。

以下是可能的握手扩展(如TCP Fast Open):
序号 状态 客户端操作 服务器操作 说明
4 ESTABLISHED 发送数据 在某些情况下,如TCP Fast Open,客户端可以在第三次握手的同时发送数据,这需要服务器在接收到数据时能够处理这种情况。
5 发送数据/确认 如果服务器支持TCP Fast Open,它可以在第三次握手时接收客户端的数据并发送确认,如果服务器不支持TCP Fast Open,它会忽略客户端的数据并在第三次握手后等待客户端发送数据。

注意:实际的TCP握手过程可能因网络环境和TCP选项(如TCP Fast Open)的不同而有所差异,以上介绍展示了一个标准的TCP三次握手过程及其可能的扩展。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表