Wireshark网络抓包工具入门指南

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: Wireshark是一款功能强大的开源网络协议分析器,它允许用户捕获和查看网络接口上传输的详细数据包信息。无论是网络故障排查、安全分析还是开发调试,Wireshark都能提供深入的网络洞察。本文旨在为初学者提供Wireshark的基本使用方法,帮助快速掌握网络抓包技巧。

 

目录

引言

安装抓包工具

抓包基础概念

抓包步骤

流程

抓包工具头的分析

14.3 以太网的完整帧格式

粘包与拆包现象解析及解决方案

发生原因

解决方案

14.3.1以太网头

14.3.2 IP头

14.3.3 UDP头

14.3.4 TCP头


引言

Wireshark是一款功能强大的开源网络协议分析器,它允许用户捕获和查看网络接口上传输的详细数据包信息。无论是网络故障排查、安全分析还是开发调试,Wireshark都能提供深入的网络洞察。本文旨在为初学者提供Wireshark的基本使用方法,帮助快速掌握网络抓包技巧。

安装抓包工具

  • Linux环境下
  • 打开终端,输入命令:sudo apt-get install wireshark
  • Windows环境下
  • 下载并安装Wireshark或其他图形界面抓包工具,如Shark for Windows(俗称“小飞机”)。

              官网地址:Wireshark · Download

抓包基础概念

抓包,实质上是捕获网络接口上流经的所有数据包,以进行网络通信分析。为了保证数据包的完整捕获,操作者需要具备对网络接口的完全访问权限,因此,在Linux环境下启动Wireshark时,常需要使用sudo以获得管理员权限。

抓包步骤

  1. 运行服务器:在Linux虚拟机上启动服务器,准备接收来自外部的网络请求。
  2. 启动抓包工具:在另一台计算机上(如Windows环境),打开Wireshark或类似工具。
  3. 选择网络接口:在抓包工具中选择正确的网络接口,准备开始捕获数据包。
  4. 过滤无关数据包:利用抓包工具的过滤功能,如Wireshark中的Display Filters,排除无关的数据包,聚焦于感兴趣的通信数据。
  5. 模拟客户端通信:在抓包工具所在的操作系统上,如Windows,使用小飞机或其他客户端软件,向Linux服务器发送请求,触发网络通信。
  6. 分析捕获的数据包:观察抓包工具中显示的数据包列表,分析通信细节,如源地址、目的地址、协议类型、数据负载等信息。

image.gif 编辑

流程

image.gif 编辑

image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑

抓包工具头的分析

image.gif 编辑

14.3 以太网的完整帧格式

image.gif 编辑

对于网络层最大数据帧长度是1500字节(MTU: 最大传输单元)

对于链路层最大数据长度是1518字节(1500(网络层)+14(以太网)+4(CRC检错))

粘包与拆包现象解析及解决方案

发生原因

TCP粘包或拆包的情况主要由以下几个因素引起:

  1. 发送缓冲区空间限制:当要发送的数据量超过TCP发送缓冲区的剩余空间时,数据将被拆分成多个数据包进行发送。
  2. MSS约束:若单次待发送数据量大于MSS(最大报文段长度),TCP协议会自动将数据拆分,确保每个数据包都不超过MSS。
  3. 数据量小于缓冲区大小:如果发送的数据量小于TCP发送缓冲区的容量,且发送频率高,可能导致多次写入的数据在一次发送中被合并,从而产生粘包现象。
  4. 接收端处理延迟:接收端应用层未能及时处理接收缓冲区中的数据,导致新到达的数据包与前一个数据包合并,形成粘包。

解决方案

针对粘包与拆包问题,常见解决策略包括:

  1. 包首部添加长度信息:发送端为每个数据包添加包首部,其中至少包含数据包长度信息。接收端通过读取包首部的长度字段,准确识别每个数据包的边界。
  2. 固定数据包长度:将数据包统一封装为固定长度,不足部分通过填充(如使用\0字符)达到预设长度。接收端按固定长度读取数据,自然区分各个数据包。
  3. 数据包间设置边界标志:在数据包之间插入特殊符号作为边界标识,接收端依据这些边界符号将连续的数据流拆分成独立的数据包。
14.3.1以太网头

以太网中封装了 目的mac地址  以 及 源mac地址, 还有ip类型, 以太网又称之为mac头 -快递员

切换网络时, ip地址会改变, mac地址不会改变 image.gif 编辑

14.3.2 IP头

笔试题:  type类型都有哪些?    

0x0800  只接收发往本机的mac的ip类型的数据帧

0x0806  只接收发往本机的ARP类型的数据帧

 ARP: ARP协议用于将IP地址解析为MAC地址。

                 当一个计算机需要向另一个计算机发送数据时,它需要知道目标计算机的MAC地址,而不是IP地址。

 RARP: RARP协议则是与ARP相反的过程,它用于将MAC地址解析为IP地址。

0x8035  只接受发往本机的RARP类型的数据帧

0x0003  接收发往本机的MAC所有类型: ip,arp,rarp数据帧, 接收从本机发出去的数据帧,

               当打开混杂模式打开的情况下,会接收到非发往本地的MAC数据帧

image.gif 编辑

image.gif 编辑

14.3.3 UDP头

image.gif 编辑

14.3.4 TCP头
Seq: 序列号    用于 非应答包 的数据段
Ack:  应答号     用于应答 非应答包
             非应答包:   SYN握手包    FIN挥手包   PSH数据报
在 PSH中:            Ack = Seq + len;
在 SYN和FIN中:   Ack = Seq + 1;
SYN:    握手包, 建立连接的时候才会产生的包
FIN:     挥手包,  断开连接的时候才会产生的包
PSH:   数据包,  传输数据的时候才会产生的包
ACK: 应答包   应答时产生

image.gif

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1天前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
10 5
|
8天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
15天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
21天前
|
网络协议 安全 Linux
网络工具ping的使用方式
【10月更文挑战第19天】网络工具ping的使用方式
42 6
|
1月前
|
弹性计算 人工智能 运维
Terraform从入门到实践:快速构建你的第一张业务网络(上)
本次分享主题为《Terraform从入门到实践:快速构建你的第一张业务网络》。首先介绍如何入门和实践Terraform,随后演示如何使用Terraform快速构建业务网络。内容涵盖云上运维挑战及IaC解决方案,并重磅发布Terraform Explorer产品,旨在降低使用门槛并提升用户体验。此外,还将分享Terraform在实际生产中的最佳实践,帮助解决云上运维难题。
123 1
Terraform从入门到实践:快速构建你的第一张业务网络(上)
|
20天前
|
Java
[Java]Socket套接字(网络编程入门)
本文介绍了基于Java Socket实现的一对一和多对多聊天模式。一对一模式通过Server和Client类实现简单的消息收发;多对多模式则通过Server类维护客户端集合,并使用多线程实现实时消息广播。文章旨在帮助读者理解Socket的基本原理和应用。
16 1
|
3天前
|
消息中间件 编解码 网络协议
Netty从入门到精通:高性能网络编程的进阶之路
【11月更文挑战第17天】Netty是一个基于Java NIO(Non-blocking I/O)的高性能、异步事件驱动的网络应用框架。使用Netty,开发者可以快速、高效地开发可扩展的网络服务器和客户端程序。本文将带您从Netty的背景、业务场景、功能点、解决问题的关键、底层原理实现,到编写一个详细的Java示例,全面了解Netty,帮助您从入门到精通。
13 0
|
15天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9-2):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
|
1月前
|
机器学习/深度学习 存储 自然语言处理
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
|
2天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。