IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP/IP协议专栏——以太网帧中的 Padding 和 Trailer 关系详解——网络入门和工程维护必看 -> 正文阅读

[网络协议]TCP/IP协议专栏——以太网帧中的 Padding 和 Trailer 关系详解——网络入门和工程维护必看

背景

先说下背景,最起先是来自于一个 ARP 数据包分析,单说起 ARP 数据包组成是比较简单,
但如下图所示,还是有些 Wireshark 技术点可以琢磨下,像是 Padding 和 Trailer 区别、相应的字节数大小、FCS 问题等等。
在这里插入图片描述
先从最简单的 ARP 数据包说起,以前的文章提到过:

1、最小IP帧:14 字节 ( Ethernet II 首部长度 ) + 46 字节 ( 数据字段最小长度要求 ) + 4 字节 ( FCS )= 64 字节
2、最小ARP帧:14 字节 ( Ethernet II 首部长度 ) 28 字节 ( ARP 请求或应答 ) + 18 字节 (Padding 填充数据 ) = 60 字节

在这里插入图片描述

以太网帧基于CSMA/CD技术(载波监听多点接入/碰撞检测),并且IEEE规定了这个碰撞域最小直径为64字节。
所以在网路中传输时,以太网帧字节数小于64帧,将由padding段填充

回到问题图:为什么有的报文仅带有padding字段,有的报文带有padding和trailer字段
在这里插入图片描述

因含有 802.1Q 字段的缘故,判断数据包取自 trunk 端口,而 802.1Q 字段为 4 字节长度,考虑到以太网帧 60 字节最小长度,Wireshark 解析会认为全 0 连续填充 (Padding) 的长度只需要 14 字节即可达到 18 字节的需求,而额外多出的数据标记成 Trailer(4字节),即:

14 字节 ( Ethernet II 首部长度 ) + 28 字节 ( ARP 请求或应答 ) + 4 字节 (802.1Q ) + 14字节 (Padding 填充数据 ) +Trailer(4字节)= 64 字节

原理

在 wireshark_dissector_packet-eth.c 中部分说明如下:
padding to meet the minimum 64 byte frame length.
Add an Ethernet trailer - which, for some captures, might be the FCS rather than a pad-to-60-bytes trailer.
Add the padding to the tree, unless it should be treated as part of the trailer and therefor be handed over to (one of) the
ethernet-trailer dissectors.
There can not have been padding when the length of the frame (including the trailer) is less than 60 bytes.
any frame that big needs no trailer, as there’s no need to pad an Ethernet packet past 60 bytes.
Calculate the amount of padding needed for a minimum sized frame.

可以认为 Trailer 是包含 Padding 的,什么时候解析成 Padding ?
一般是当数据帧长度小于 60 字节,需要进行全 0 填充以达到 60 字节最小长度时的部分会被认为是 Padding。
而额外多出的部分,需结合 FCS (4字节)判断有无的情况下,确认是否属于 Trailer。
再加上 Wireshark 强大的协议解析能力(ethernet-trailer dissectors),再确认属于哪一种 Trailer.

Call all ethernet trailer dissectors to dissect the trailer if we actually have a trailer.
No luck with the trailer dissectors, so just display the extra bytes as general trailer

Wireshark 解析器协议 Ethernet 部分,其中有三个相关选项:

1、Assume padding for short frames with trailer( Never、Zeros、Any)

Never 选项是不考虑探测任何 Padding,在以太网 payload 之后的任何字节都被视为 Trailer。
Zeros (默认)选项是为以太网帧最小长度连续填充全 0 字节的部分被视做 Padding,之外增加的部分被视为 Trailer.
Any选项是为以太网帧最小长度填充任意字节的部分被视做 Padding,之外增加的部分被视为 Trailer.

在这里插入图片描述

2、Fixed ethernet trailer length

默认值 0 。
考虑到 TAP 或是类似负载均衡的代理设备,可能在 Payload 之后 FCS 之前增加固定长度的 trailer(像是高精度时间戳等等)时,可调整该值进行具体分析。

If there’re some bytes left over, it could be a combination of:padding
to meet the minimum 64 byte frame length an FCS, if presentinformation
inserted by TAPs or other network monitoring equipment.

3、Assume packets have FCS

默认不勾选。
一般网卡都会剥离 FCS,所以 Wireshark 数据包分析时一般都没有 FCS 部分。
可能存在 DPDK 技术下所抓取的数据包包含 FCS 的情况下,分析时可勾选打开该选项。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 02:20:34  更:2022-09-15 02:22:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 5:59:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码