TCP三次握手与四次挥手


本文主要介绍TCP的三次握手与四次挥手过程,属于是基础知识了,还不太明白这块内容的小伙伴们可以看一下。

背景知识

TCP/IP网络模型

在这里插入图片描述

  1. 网络层(IP层)时不可靠的,他不能保证网络包的交付,不保证网络包的按序交付,也不保证网络包中数据的完整性;
  2. 传输层的TCP协议负责保障网络数据包的可靠性,能够确保接收端的网络包时无损坏、无间隔、非冗余和按序排列的。

TCP的定义

TCP是面向连接的、可靠的、基于字节流之间的传输层通信协议。

特征说明
面向连接一对一连接
可靠的TCP能够保证报文完整到达对端
基于字节流不限制传输消息的大小

TCP头部格式

在这里插入图片描述

名称作用
序列号用来解决包乱序的问题
确认应答号用来解决丢包的问题
ACK确认应答标志位
RST连接异常标志位
SYN建立连接标志位
FIN断开连接标志位

TCP建立连接(三次握手)

在这里插入图片描述

  1. 服务端首先开始监听某个端口,进入LISTEN状态;
  2. 客户端随机初始化序列号,填入TCP头部格式中的 序列号 字段,把 SYN 字段置为1,将报文发送至服务端,向服务端发起连接,进入SYS_SENT状态;
  3. 服务端收到连接请求后,自己也随机初始化一个序列号,填入TCP头部格式中的 序列号 字段,其次把 确认应答号 字段填入客户端发来的序列号+1,再把 SYNACK 字段置为1,将报文发送给客户端,进入SYN_RCVD状态;
  4. 客户端收到服务端的反馈报文后,再向服务端发送最后一个应答报文,把 确认应答号 字段填入服务端发来的序列号+1,再把 ACK 字段置为1,将报文发送给服务端,进入ESTABLISHED状态;
  5. 服务端收到ACK报文后,也进入ESTABLISHED状态,至此完成三次握手过程。

TCP断开连接(四次挥手)

在这里插入图片描述

  1. 客户端准备断开连接,将TCP头部格式中的 FIN 字段置为1,向服务端发送报文,进入FIN_WAIT_1状态,此时客户端不再发送数据,但还能够接收数据;
  2. 服务端收到客户端发来的断开连接请求后,立刻向客户端发送ACK应答报文,进入CLOSED_WAIT状态,此时服务端可能还有数据要处理和发送;
  3. 客户端收到服务端的ACK应答报文后,进入FIN_WAIT_2状态;
  4. 服务端全部数据处理、发送完后,发送FIN报文给客户端,表示可以关闭连接,服务端进入LAST_ACK状态;
  5. 客户端收到服务端的FIN报文后,回复一个ACK应答报文,进入TIME_WAIT状态;;
  6. 服务端收到ACK应答报文后,进入CLOSE状态关,闭连接;
  7. 客户端在经过2MSL后,进入CLOSE状态,关闭连接,至此完成四次挥手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值