【网络安全 | 网络协议】结合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三次握手就完成了,客户端(本机)将与服务端建立起连接。

相关推荐
穿条秋裤到处跑22 分钟前
前端连接websocket服务报错 Unexpected response code: 301
websocket·网络协议·nginx
浩浩测试一下1 小时前
网络安全实战指南:从安全巡检到权限维持的应急响应与木马查杀全(命令查收表)
linux·安全·web安全·ubuntu·网络安全·负载均衡·安全架构
千码君20161 小时前
什么是数据链路层的CRC检测以及为什么要放到帧尾?
服务器·网络·网络协议·以太网·奇偶校验·crc检测·以太网帧
后院那片海2 小时前
Web基础与HTTP协议
网络·网络协议·http
问道飞鱼3 小时前
【知识科普】HTTPS 加密中信息的可见性详解
网络协议·http·https·ssl·tls
mooyuan天天6 小时前
Webug3.0通关笔记17 中级进阶(第01-05关)
web安全·文件包含·sql注入·webug靶场
开***能6 小时前
高炉项目中DeviceNET到Ethernet的转换奥秘
网络·网络协议·自动化
努力也学不会java7 小时前
【网络原理】 网络编程套接字
java·开发语言·网络·网络协议·tcp/ip·php
✿ ༺ ོIT技术༻8 小时前
Linux:TCP保证可靠性的方案(2)
网络·网络协议·tcp/ip
vortex59 小时前
网络安全入门综述
安全·web安全·网络安全