【网络安全 | 网络协议】结合Wireshark讲解TCP三次握手

前言

TCP(传输控制协议)是一种面向连接的、可靠的传输层协议。在建立 TCP 连接时,需要进行三次握手,防止因为网络延迟、拥塞等原因导致的数据丢失或错误传输,确保双方都能够正常通信。

TCP三次握手在Wireshark数据包中是如何体现的?在此之前,先熟悉TCP三次握手的流程。

TCP三次握手流程

1.客户端发送 SYN 请求报文:

  • 客户端选择一个初始序列号(seq)并将 SYN 标志位置为 1,表示请求建立连接。
  • 客户端将该 SYN 报文发送给服务端,并进入 SYN_SET 状态,等待服务端的响应。

2.服务端接收 SYN 请求报文:

  • 服务端接收到客户端发来的 SYN 请求报文。
  • 服务端将 SYN 标志位置为 1,ACK 标志位置为 1,表示同意建立连接。
  • 服务端选择一个自己的初始序列号(seq)并分配资源,发送 SYN+ACK 响应报文给客户端。

3.客户端接收 SYN+ACK 响应报文:

  • 客户端接收到服务端发来的 SYN+ACK 响应报文。
  • 客户端将 ACK 标志位置为 1,表示确认服务端的同意。
  • 客户端将该 ACK 报文发送给服务端,建立起连接。

完成以上三个步骤后,TCP 连接建立成功,双方可以开始进行数据传输。

Wireshark抓包分析

第一步:开启抓包,ping百度

第二步:过滤目标主机地址

可以看到三个TCP数据包,接下来我们逐个分析。

第一次握手数据包

由上图可以看到,seq为0,表示客户端的初始序列号为0;ack为0,代表本机还未确认服务端的同意;syn为1并进入set状态,说明本机请求建立连接并等待baidu.com的响应

第二次握手数据包

由上图可以看到,seq为0,表示服务端的初始序列号为0;ack为1,代表baidu.com同意接受连接;syn为1并进入set状态,说明baidu.com等待本机的响应

第三次握手数据包

由上图可以看到,seq为1,表示客户端期望收到的下一个序列号是1;ack为1代表本机同意接受连接;syn为1并进入set状态,表示确认服务端(baidu.com)的同意(即确认服务器的序列号为0)

至此,TCP三次握手就完成了,客户端(本机)将与服务端建立起连接。

相关推荐
黄焖鸡能干四碗11 小时前
网络安全建设实施方案(Word文件参考下载)
大数据·网络·人工智能·安全·web安全·制造
Predestination王瀞潞15 小时前
5.4.2 通信->WWW万维网内容访问标准(W3C):WWW(World Wide Web) 核心技术规范
网络·网络协议·https·www
虾..16 小时前
TCP协议
网络·网络协议·tcp/ip
上去我就QWER16 小时前
详解HTTP协议中的multipart/form-data
网络·网络协议·http
Chockmans18 小时前
春秋云境CVE-2021-46436
web安全·网络安全·春秋云境·cve-2021-46436
Predestination王瀞潞19 小时前
5.3.2 通信->HTTP3超文本传输协议标准(IETF RFC 9114):Headers 请求头 响应头
网络·网络协议·tcp/ip
sugar__salt19 小时前
网络原理(五)——HTTP
网络·网络协议·http
新猿一马20 小时前
服务端安全开发注意事项
数据库·web安全·oracle
夜泉_ly20 小时前
泉面 TOP150 -TCP 和 UDP 的区别?
网络协议·tcp/ip·udp
特立独行的猫a20 小时前
ESP32小智AI的WebSocket 调试工具实现,小智AI后台交互过程揭秘(一、开篇介绍 )
人工智能·websocket·网络协议·esp32·小智ai