Wireshark TS | 报文长度为什么小于64?

问题背景

来自于知乎的几个问题,都是有关于 ARP 和 64 字节方面,主要如下:

  1. ARP报文长度为什么可以小于64?

  2. wireshark下抓取arp报文长度不全为42B?

  3. 为什么Wireshark抓到的ARP包长度小于64?


问题分析

以下就上述三个问题简单分析一下,首先是问题 1 和 2 :
BW64-01

为什么可以小于 64 ?
64 字节的说法,我想大家应该都知道是什么样的组成。

14 字节 ( Ethernet II 首部长度 ) + 46 字节 ( 数据字段最小长度要求 ) + 4 字节 ( CRC ) = 64 字节

因此数据字段的最小长度是 46 字节,这意味着如果是 ARP 数据包,则 46 字节的组成如下

28 字节 ( ARP 请求或应答 ) + 18 字节 ( Padding 填充数据 ) = 46 字节


为什么其中一个 ARP 报文长度显示是 42 ?
原因是 Wireshark 的抓包方式(或者说是原理,最后附简图,详细的可以看下官网说明)和位置,Wireshark 抓包位置如果是在本地,那么对于本地产生所发出的数据包,是在进网卡之前所抓取的包,而填充数据以及 CRC 一般是由网卡硬件/驱动程序完成,所以 42 字节的组成并不包含填充数据和 CRC 部分。

14 字节 ( Ethernet II 首部长度 ) + 28 字节 ( ARP 请求或应答 ) = 42 字节


为什么另一个 ARP 报文长度显示是 60 ?
综合以上,就很好理解了,60 是来自对方的 ARP 响应包,包含了填充数据 (对方网卡完成),但不含 CRC 部分 (本地网卡剥离,可以说普通网卡基本都会剥离它,Wireshark 看不到 CRC 部分)。

14 字节 ( Ethernet II 首部长度 ) + 46 字节 ( 数据字段最小长度要求 ) = 60 字节


问题扩展

来自于问题 3 ,56 字节的 ARP 数据包 ??
BW-02

和正常的 60 字节的 ARP 数据包,做下对比
BW-03

之前回答问题大概分析了下,不过提问人并没有进一步反馈抓包环境,也就没有进一步求证了,权当以下是标准答案了 😎


为什么 ARP 报文长度显示是 56 ?
对比看了下源mac,一个apple,一个huawei,应该是两个设备网卡支持 802.1Q 标记与否的区别。apple 支持,所以发出来的 arp 数据包,就包含有 4 字节 的 802.1Q 标记,填充字段为 14 字节。中间过了个路由交换设备,去除 802.1Q 标记,但不会再补充填充字段。所以 56 字节组成是:

14 字节 ( Ethernet II 首部长度 ) + 42 字节 ( 28 字节 ARP 数据包 + 14 字节填充数据 ) = 56 字节


问题总结

当然不仅仅是 ARP 报文,对于以太网帧 64 或者 60 字节长度来说,数据字段最小长度要求始终是 46 字节 ,再根据不同的以太网类型和长度,决定是否需要 Padding 。




附:Wireshark function blocks

BW-04


感谢阅读,更多技术文章可关注个人公众号:Echo Reply ,谢谢。
### 使用Wireshark捕获和分析视频流数据 #### 选择合适的网络接口 启动Wireshark后,选择用于捕获流量的网络接口。如果不确定哪个接口正在传输目标视频流,则可以先开启所有可用接口进行初步测试。 #### 设置捕捉过滤条件 为了减少不必要的数据量,在开始捕捉前设置恰当的BPF(Berkeley Packet Filter)。对于基于HTTP/HTTPS协议传输的视频服务如抖音短视频平台,可采用`http`作为实时显示筛选表达式来定位相关请求响应报文;而对于通过RTP或RTMP等专用媒体分发渠道传送的内容,则应依据具体应用层协议特征构建相应规则[^4]。 #### 配置解码选项 针对不同类型的多媒体流传送机制调整Wireshark内部处理方式: - 对于经由UDP承载且遵循RTP标准封装格式的数据单元,在接收到首个疑似匹配项之后,可通过右键菜单选取“Decode As...”功能将其重新解释为该类消息结构; - 若涉及更复杂的会话初始化流程比如RTSP控制命令序列,则需进一步确认关联TCP连接,并同样运用上述方法指定其按照对应语法规则解析[^1]。 #### 提取有效载荷信息 一旦完成基本配置并获取了一定量样本集,即可着手提取感兴趣部分——即实际编码后的音画素材片段。这通常意味着要深入探究特定PDU(Protocol Data Unit)内的Payload区域,寻找那些符合预期模式串特征的目标字节序列。例如当面对MPEG-TS格式时,应当留意每188字节长度固定不变且起始标志位恒定等于0x47的特点[^3]。 #### 数据导出与后续操作 最后一步便是考虑怎样将所获得的结果转换成易于观看的形式。一方面可以直接利用内置插件尝试重建原始文件;另一方面也可以借助外部工具链实现更加精细定制化的加工过程。以H.264为例,存在专门设计用来接收NALU级输入源进而重组成为合法容器格式的应用程序可供选用。 ```bash # 示例:使用ffmpeg从TS流中抽取音频视频轨道并合成为一个MP4文件 ffmpeg -i input.ts -c copy output.mp4 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值