公有云Linux模拟TCP三次挥手与四次握手(Wireshark抓包验证版)

目录

  • 写在前面
  • 环境准备
  • 实验步骤
    • [1. 安装`nc`工具](#1. 安装nc工具)
    • [2. 使用nc打开一个连接](#2. 使用nc打开一个连接)
      • [2.1 公有云-安全组放行对应端口(可选)](#2.1 公有云-安全组放行对应端口(可选))
    • [3. 打开Wireshark抓包工具](#3. 打开Wireshark抓包工具)
    • [4. 新开终端,进行连接](#4. 新开终端,进行连接)
    • [5. 查看抓包文件,验证TCP三次握手与四次挥手](#5. 查看抓包文件,验证TCP三次握手与四次挥手)

写在前面

一直都是抓本地的包,这次试着抓一下用公有云ECS做实验的包。

与平常的本地虚拟机相比,相同实验环境需多出2部,会标记出。

环境准备

shell 复制代码
宿主机:笔记本Win11
       Wireshark:3.6.7
虚拟机:Ctyun ECS
       OS:openEuler22.03
       EIP:需绑定一个弹性公网ip

实验步骤

1. 安装nc工具

该实验需要使用到nc命令打开端口,一般这个不是默认安装的

shell 复制代码
#确定nc所在软件包
yum provides nc
Last metadata expiration check: 2:14:22 ago                                                    on 2024-05-12T16:50:35 CST.
nmap-2:7.92-4.oe2203sp2.x86_64 : A tool for
     ...: network discovery and security
     ...: auditing.
Repo        : OS
Matched from:
Provide    : nc

#安装nmap
yum install -y nmap

2. 使用nc打开一个连接

使用以下命令,打开9999端口的连接

shell 复制代码
nc -kl 9999

#-k:保持连接
#-l:打开端口

2.1 公有云-安全组放行对应端口(可选)

如果实验环境是公有云,需要在对应ECS的安全组中放行在步骤2中用nc指定打开的端口

3. 打开Wireshark抓包工具

  1. 打开wireshark,选择当前连接互联网的网卡,我这里是WLAN无线网卡

  2. 因为公网网卡包过多,提前过滤tcp.port==9999,以便观察。

4. 新开终端,进行连接

可以通过telnet ip 端口的方式连接该端口。如果是公有云主机,没做步骤3.1的话,将可能无法连接。

5. 查看抓包文件,验证TCP三次握手与四次挥手

此时回到Wireshark查看抓包

TCP三次握手

下图红框框住的就是tcp三次握手的报文。

关于具体的TCP三次握手不在本文赘述,如不了解,请自行搜索

数据传输

定位到PSH标志位的数据包,通过右键该数据包,追踪流->TCP流。我们可以看到这次数据传输时传输的内容。

因此使用的是telnet连接,所以可以查看到内容。


TCP四次挥手

下图被红框框住的3个数据包,就是TCP四次挥手。

TCP四次挥手第2和第3个包分别是ACK和FIN标志位的包。

实际上,主机会将这两个包合并发送出来,以提高效率、减小开销

这不仅仅存在于TCP,其他很多协议也有相同的合并报文的操作。

相关推荐
M158227690553 小时前
跨协议互通利器|SG-PN-EIP (S)-220 Profinet 转 EtherNet/IP 网关,打通欧美 PLC 通讯壁垒
网络·网络协议·tcp/ip
FoldWinCard4 小时前
D5 Linux 网络及端口命令
linux·运维·服务器
零涂毕业设计5 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
tedcloud1236 小时前
OmniRoute怎么部署?开源AI模型路由平台Linux部署教程
linux·服务器·人工智能·开源·音视频
霸道流氓气质6 小时前
KMS 密钥管理服务(Key Management Service)原理与实践
linux·服务器·数据库
SakitamaX6 小时前
LVS(Linux Virtual Server)概念详解
linux·运维·lvs
小张同学a.6 小时前
Linux系统管理
linux·运维
阿龙的工作记录6 小时前
深入理解Linux设备驱动模型
linux·嵌入式硬件·工作记录
代码村新手7 小时前
Linux的基本指令
linux·运维·服务器
hkj88087 小时前
Ubuntu 切换java版本
java·linux·ubuntu