【计网】TCP的三次握手及四次挥手详解

本文详细解析了TCP连接的建立(三次握手)和释放(四次挥手)过程,包括各状态的图解、状态转换分析及常见问题解答。通过三次握手确保连接可靠性,防止失效请求干扰,而四次挥手则是为了处理全双工连接的终止,确保双方都能正确关闭连接。
摘要由CSDN通过智能技术生成

引入

运输层连接有三个阶段

  • 连接建立(三次握手)
  • 数据传送
  • 连接释放(四次挥手)

三次握手原理

1.图解三次握手建立 TCP 连接的各状态

这里写图片描述

2.建立连接过程分析

(1)第一次握手

A 向 B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x,表明传送数据时的第一个数据字节的序号是 x。

(2)第二次握手

B 收到连接请求报文段后,同意A的请求,发回确认,B 在确认报文段中设置SYN = 1,ACK = 1,确认号ack = x+1,自己选择的序号 seq = y

(3)第三次握手

A收到此报文段后向 B 给出确认,设置 ACK = 1,确认号 ack = y +1,然后 A 通知上层应用进程,连接已经建立。

3.建立连接的状态转换分析

(1)第一次握手

  • 客户端:CLOSED–>SYN-SENT
    客户端之前处于关闭状态,需要传送数据时,向服务端发送建立连接请求,转换为SYN-SENT,表示建立连接请求报文段已发送。

  • 服务端:CLOSED–>LISTEN
    服务端之前处于关闭状态,由于服务端需要接收客户端发来的数据,所以转换为LISTEN状态,表示处于监听状态

(2)第二次握手

  • 客户端:SYN-SENT–>ESTABLISHED
    客户端接收到了服务端的请求报文,然后转换为ESTABLISHED状态,表示连接已建立。

  • 服务端:LISTEN–>SYN-RCVD
    服务端接收到了客户端的请求报文,也给客户端发送请求连接报文,之后等待客户端确认,转换为SYN-RCVD,表示已接收到客户端的请求。

(3)第三次握手

  • 客户端:SYN-SENT–>ESTABLISHED
    给服务端发送确认信息,然后转换为ESTABLISHED状态,表示连接已建立。

  • 服务端:SYN-RCVD–>ESTABLISHED
    接收到了客户端发来的确认之后,就转换状态为ESTABLISHED,表示已经建立连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值