【网络】网络抓包与协议分析

网络抓包与协议分析

一. 以太网帧格式分析

这是以太网数据帧的基本格式,包含目的地址(6 Byte)、源地址(6 Byte)、类型(2 Byte)、数据(46~1500 Byte)、FCS(4 Byte)。

  1. Mac 地址类型

    分为单播地址、组播地址、广播地址。

    单播地址:是指第一个字节的最低位是 0 的 MAC 地址。

组播地址: 是指第一个字节的最低位是 1 的 MAC 地址。

在这里插入图片描述

广播地址:广播地址是发送至网络上所有设备的特殊地址,全为1(FF:FF:FF:FF:FF:FF)。
在这里插入图片描述

  • OUI(Organizationally-Unique Identifier): 厂商代码
  1. 头部信息

    目的Mac地址:标识帧的接收者,6个字节;

    源Mac地址:标识帧的发送者,6个字节;

    以太类型:指示帧中数据的类型,2个字节,例如:IPv4 (0x0800)、ARP (0x0806)。
    在这里插入图片描述

  2. 长度

    以太网帧的头部位14个字节,以太帧尾占4个字节,所搭载的数据长度位461500个字节。总的长度应为641518字节。

  3. 封装

    以太网帧将上层协议的数据封装在帧的数据部分,并通过类型(2 Byte)进行标识。

二. ARP协议分析

2.1 ARP数据包分析

在这里插入图片描述

我们通过Wireshark随机抓取一个ARP数据包,并分析其格式:

在这里插入图片描述

比如抓到的这个ARP数据包:

  • 由于ARP是网络层的协议,故前面14个字节为底层(数据链路层)封装的以太帧头:分别表示目的Mac(广播)、源Mac、类型(0x0806:ARP)。

  • 接下来是ARP协议的内容:
    在这里插入图片描述

  • 在最后,有一串0来补全,让数据帧长度满足最小长度64字节。

在这里插入图片描述

此处是补全为60个字节,加上以太帧尾4个字节,达到64个字节。

2.2 ARP协议工作过程

当主机 A 需向主机 B 发送数据且在 ARP 缓存中未找到 B 的 IP 与 MAC 对应关系时,A 广播 ARP 请求报文,包含 A 的 IP、MAC 及 B 的 IP。网络中只有 B 响应请求,以单播发回包含自己 IP、MAC 及 A 的 IP、MAC 的应答报文。A 收到应答后将 B 的 IP 与 MAC 对应关系存入 ARP 缓存。

三. ICMP协议分析

ICMP(Internet Control Message Protocol)即互联网控制报文协议,是 TCP/IP 协议族的一个子协议。
通过Ping程序,我们能够很容易地抓取到ICMP数据包。

3.1 ICMP格式:

在这里插入图片描述

  • Type字段表示ICMP消息的类型;
  • Code字段表示ICMP消息类型细分的子类型;
  • Checksum字段表示ICMP报文的校验和。
3.2 ICMP抓包

我们可以在命令提示符种Ping某个公网地址,就会产生ICMP报文。
在这里插入图片描述
此处的ICMP类型就是Echo请求报文。

3.3 ICMP功能
  1. 确认IP包是否成功到达目的地址
  2. 通知在发送过程中IP包被丢弃的原因

四.抓取DNS数据并分析UDP协议

dns是一个应用层协议,其传输层有时会使用TCP协议,有时会使用UDP协议。对于个人用户来说,大部分的使用场景都是UDP协议。

  • UDP使用场景:一般的域名解析查询,例如查询一个网站的 IP 地址等操作,通常使用 UDP 进行通信。

  • TCP使用场景:主要用于DNS服务器同步数据。

抓取DNS数据

在这里插入图片描述

在抓取的DNS数据中,前14个字节为以太帧头,接下来20个字节为IPv4头,接下来8个字节为UDP头,其余的为DNS数据。

UDP协议分析

在这里插入图片描述

UDP头长度为8个字节,依次为源端口(2 Byte)、目的端口(2 Byte)、数据总长度(2 Byte)、校验和(2 Byte)。

在这里插入图片描述

五. TCP协议分析

在这里插入图片描述

抓取TCP报文段

在这里插入图片描述

  • 比如抓到的这个TCP数据段,可以观察到源端口、目的端口、序号、确认序号等信息。

  • 但我们也发现现在呢不再是6个标志位,而是9个标志位。我们抓取的是FINACK为1的数据段,这是“四次挥手”中的第三次挥手。

  • 此处抓到的TCP数据段,头部长度为20个字节,即没有选项。但我们依然可以看到一些选项的踪迹,比如此处的窗口扩展因子 ( Window size scaling factor)就是选项的一部分,因为没有选项,故此处是未知的。

    在这里插入图片描述

六. HTTP协议分析

为了更方便的抓取到HTTPS的数据包,我们使用Fiddler进行抓包,比如抓到的学校的办事大厅的数据包:

HTTP的头部是以文本形式 (键值对) 进行组织的,比如此处用到了GET方法、协议是HTTP/1.1、Host是ehall.dlut.edu.cn。也可以看到客户端携带Cookie作为个人身份标识来访问服务器。

在这里插入图片描述

同时,我们也能看到返回的HTTP数据,第一行依次为 协议、状态码、状态。

七. 思考及感悟

  1. 使用了显示过滤器后,Wireshark 的抓包工作量会减少吗?

不会,Wireshark 的显示过滤器是在数据包已经被捕获后,对已捕获的数据包进行筛选显示,它并不影响抓包的过程。

  1. MAC 帧的长度和 IP 数据报的长度有怎样的关系?

MAC帧是在IP数据包的头部和尾部分别加上帧头(14 Byte)和帧尾(4 Byte)。

MAC 帧长度在以太网中最小 64 字节,最大 1518 字节。IP 数据报长度可变,若过长可能需分片封装在多个 MAC 帧中;若过短可能需填充以满足 MAC 帧最小长度要求。

  1. 心得感悟

常常使用Wireshark、Fiddler等抓包工具有助于我们更好的理解网络中各个层次的结构,让我们对网络有更好的理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/887052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安宝特方案 | AR助力紧急救援,科技守卫生命每一刻!

在生死时速的紧急救援战场上,每一秒都至关重要!随着科技的发展,增强现实(AR)技术正在逐步渗透到医疗健康领域,改变着传统的医疗服务模式。 安宝特AR远程协助解决方案,凭借其先进的技术支持和创新…

2025职业院校技能大赛信息安全管理与评估(河北省) 任务书

2025职业院校技能大赛信息安全管理与评估--河北省 任务书 模块一网络平台搭建与设备安全防护任务1:网络平台搭建 (50分)任务2:网络安全设备配置与防护(250分) 模块二网络安全事件响应、数字取证调查、应用程…

vscode 远程连接ssh 密钥方式

目录 1. powershell 生成key: 2. 在服务器上安装公钥 3).为了确保连接成功,输入如下指令以保证以下文件权限正确: 3 开启 ssh 密钥登录 vscode 远程连接配置 python连接 python实现 1. powershell 生成key: 在命令行执行s…

【数据库入门】关系型数据库入门及SQL语句的编写

1.数据库的类型: 数据库分为网状数据库,层次数据库,关系型数据库和非关系型数据库四种。 目前市场上比较主流的是:关系型数据库和非关系型数据库。 关系型数据库使用结构化查询语句(SQL)对关系型数据库进行…

【通俗理解】ELBO(证据下界)——机器学习中的“情感纽带”

【通俗理解】ELBO(证据下界)——机器学习中的“情感纽带” 关键词提炼 #ELBO #证据下界 #变分推断 #机器学习 #潜变量模型 #KL散度 #期望 #对数似然 第一节:ELBO的类比与核心概念【尽可能通俗】 ELBO,即证据下界,在…

react后台管理系统(二)

​🌈个人主页:前端青山 🔥系列专栏:React篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:react后台管理系统(二) 前言 本文档旨在详细说明如何在一个基于React的应用程序中实现左侧菜单…

【学习笔记】AD智能PDF导出(装配文件)

2.下一步“NEXT” 3.选择文件名称,下一步“NEXT” 4.可选导出原材料的BOM表 右键选择装配图“Create Assembly Drawings” 5.可以双击下图方框,或者右键需要编辑的标题,选择“Properties”,勾选如下图 6.装配文件,添加…

在win10环境部署opengauss数据库(包含各种可能遇到的问题解决)

适用于windows环境下通过docker desktop实现opengauss部署,请审题。 文章目录 前言一、部署适合deskdocker的环境二、安装opengauss数据库1.配置docker镜像源2.拉取镜像源 总结 前言 注意事项:后面docker拉取镜像源最好电脑有科学上网工具如果没有科学上…

如何构建高效的接口自动化测试框架?

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 在选择接口测试自动化框架时,需要根据团队的技术栈和项目需求来综合考虑。对于测试团队来说,使用Python相关的测试框架更为便捷。无论选…

AI Prompt Engineering

AI Prompt Engineering 简介 Prompt Engineering, 提示工程,是人工智能领域的一项技术,它旨在通过设计高效的提示词(prompts)来优化生成式 AI(如 GPT、DALLE 等)的输出。提示词是用户与生成式 AI 交互的核…

【bug】使用transformers训练二分类任务时,训练损失异常大

使用transformers训练二分类任务时,训练损失异常大 问题分析 问题 training_loss异常大,在二分类损失中,收敛在1~2附近,而eval_loss却正常(小于0.5) 分析 参考: Bug in gradient accumulation…

基于SpringBoot实现的城镇保障性住房管理系统(代码+论文)

🎉博主介绍:Java领域优质创作者,阿里云博客专家,计算机毕设实战导师。专注Java项目实战、毕设定制/协助 📢主要服务内容:选题定题、开题报告、任务书、程序开发、项目定制、论文辅导 💖精彩专栏…

springboot基于SpringBoot的社区居民诊疗健康管理系统

摘 要 社区居民诊疗健康管理系统的建设强化了社区医疗服务与居民之间的联系,优化了健康服务供给,提高了医疗资源的利用效率。它不仅有助于提升居民的健康素养和自我管理能力,也是推动实现全民健康信息化、构建以人为本的健康服务体系的重要步…

VSCode 间距太小

setting->font family 使用:Consolas, Courier New, monospace 字体

IntelliJ+SpringBoot项目实战(九)--整合Thymyleaf模版引擎

一、Thymeleaf 基本介绍 Thymeleaf是一款模板引擎产品,是一款优秀的面向JAVA的XML/XHTML/HTML5页面模板,具有丰富的标签语言和函数。因此,在使用SpringBoot开发前端网页,经常选择Thymeleaf。 在前后端分离框架流行的今天&a…

Python中常用的函数介绍

Python中常用的几种函数 1、input函数 input()函数:主要作用是让用户输入某个内容并接收它。 #输入你的年龄 >>> age input("my age is :") my age is :20 执行代码后输入年龄,年龄被存放到age变量中,执行print后终端会…

【动手学深度学习Pytorch】1. 线性回归代码

零实现 导入所需要的包: # %matplotlib inline import random import torch from d2l import torch as d2l import matplotlib.pyplot as plt import matplotlib import os构造人造数据集:假设w[2, -3.4],b4.2,存在随机噪音&…

亿咖通科技应邀出席微软汽车行业智享会,分享ECARX AutoGPT全新实践

11月14日,全球出行科技企业亿咖通科技(纳斯达克股票代码:ECX)应邀于广州参加由微软举行的汽车行业智享会,揭晓了亿咖通科技对“AI定义汽车”时代的洞察与技术布局,分享了亿咖通科技汽车垂直领域大模型ECARX…

鸿蒙开发学习|Promise的介绍与在鸿蒙中的使用

Promise的介绍与在鸿蒙中的使用 异步编程 学习Promise的开始,我们要先了解异步编程 一般代码的执行是单线程的机制,就是按次序执行,执行完一个任务后,再执行下一个,如果我们在页面加载的同时时候执行一个请求,拿到数据后映射到界面上,这时我们就需要异步操作来执行这个请求 异…

第二课 Model模型资源导入设置检查与优化

上期我们学习了最简单的audio音效的优化,接下来我们继续model模型资源的优化,我将汇总各路大神关于模型优化的思路和方法供你和我学习。 首先我们还是要把我们优化的目标重申一遍: 优化的目标 1.文件体积尽可能小 2.内存占用尽可能小 3.…