TCP协议及三次握手的过程

本文详细介绍了TCP协议的基本概念、作用以及工作模式,重点解析了TCP的三次握手过程,包括每次握手的标志位变化和数据包信息。通过Wireshark捕获的数据包分析,展示了三次握手过程中序列号和确认号的演变,帮助理解TCP连接建立的可靠性和顺序保证。
摘要由CSDN通过智能技术生成

在这里插入代码片@TOC

TCP协议以及三次握手

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


1、TCP协议是什么?

传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在 TCP 协议中,通过三次握手建立连接。通信结束后,还需要断开连接。如果在发送数据包时,没有正确被发送到目的地时,将会重新发送数据包

2、TCP协议的作用

TCP 协议是以面向连接的方式进行通信的,其作用如下:

  • 面向流的处理:TCP 以流的方式处理数据。换句话说,TCP 可以一个字节一个字节地接收数据,而不是一次接收一个预订格式的数据块。TCP 把接收到的数据组成长度不等的段,再传递到网际层。
  • 重新排序:如果数据以错误的顺序到达目的地,TCP 模块能够对数据重新排序,来恢复原始数据。
  • 流量控制:TCP 能够确保数据传输不会超过目的计算机接收数据的能力。
  • 优先级与安全:为 TCP 连接设置可选的优先级和安全级别。
  • 适当的关闭:以确保所有的数据被发送或接收以后,再进行关闭连接。

3、TCP工作模式

TCP 协议的数据包进行传输采用的是服务器端和客户端模式。发送 TCP 数据请求方为客户端,另一方则为服务器端。客户端要与服务器端进行通信,服务器端必须开启监听的端口,客户端才能通过端口连接到服务器,然后进行通信。

*4、TCP三次握手

第一次握手

第 1 次握手建立连接时,客户端向服务器发送 SYN 报文(SEQ=x,SYN=1),并进入 SYN_SENT 状态,等待服务器确认,如图所示。

在这里插入图片描述

第二次握手

第 2 次握手实际上是分两部分来完成的,即 SYN+ACK(请求和确认)报文。

  • 服务器收到了客户端的请求,向客户端回复一个确认信息(ACK=x+1)。
  • 服务器再向客户端发送一个 SYN 包(SEQ=y)建立连接的请求,此时服务器进入 SYN_RECV 状态,如图所示。

在这里插入图片描述

第三次握手

第 3 次握手,是客户端收到服务器的回复(SYN+ACK 报文)。此时,客户端也要向服务器发送确认包(ACK)。此包发送完毕客户端和服务器进入 ESTABLISHED 状态,完成 3 次握手,如图所示。

在这里插入图片描述

SEQ 表示请求序列号,ACK 表示确认序列号,SYN 和 ACK 为标志位

分析握手过程中字段的变化

我们知道每一次握手时,TCP 报文中标志位的值是不同的。为了更好地分析 3 次握手时每个标志位的变化,下面以抓包方式分析每个数据包的信息。

使用 Wireshark 捕获 TCP 连接数据包并进行分析。
  1. 捕获到 3 次握手包,如图所示:
    在这里插入图片描述

图中,第 22 个数据包的源 IP 地址为 192.168.59.135,目标 IP 地址为 192.168.59.131。

在 Transmission Control Protocol 中可以看到,Flags 为 SYN,并且值设置为 1,表示该数据包是主机 192.168.59.135 向主机 192.168.59.131 发起的请求,希望建立 TCP 连接。

Sequence number 表示请求序列号 EQ,值为 0,是由主机 192.168.59.135 随机生成的

  1. 选择第 23 个数据包进行查看,如图所示。
    在这里插入图片描述

该数据包源 IP 地址为 192.168.59.131,目标 IP 地址为 192.168.59.135。

在 Transmission Control Protocol 中可以看到,Flags 为(SYN,ACK),并且将 SYN 置为 1,表示该数据包是主机 192.168.59.131 用来回复主机 192.168.59.135 发送的 TCP 连接请求。

Acknowledgment number 表示 ACK,值为 1。该值是回复主机 192.168.59.135 发来的连接请求 SEQ,因此在 SEQ 的基础上加 1,以代表确认。

Sequence number 值为 0,该值是由主机 192.168.59.131 生成的,是向主机 192.168.59.135 发送的 SYN,表示同意该主机发来的连接请求。

  1. 选择第 24 个数据包进行查看,如图所示。

在这里插入图片描述

源 IP 地址为 192.168.59.135,目标 IP 地址为 192.168.59.131。

在 Transmission Control Protocol 中可以看到,Flags 为 ACK。表示该数据包是主机 192.168.59.135 对主机 192.168.59.131 发来的同意连接数据包后做出的确认回复。

Acknowledgment number 的值为 1,该值是在主机 192.168.59.131 发来的 SEQ 的基础上加 1 得到的。

Sequence number 的值为 1,表示收到主机 192.168.59.131 发来的同意连接数据包后,再次向该主机发送连接请求,表示要连接了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值