You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网络填充(Network Padding)是什么?Scapy中ARP欺骗代码填充解析

网络填充(Padding)的作用

以太网帧有最小长度硬性要求:从目的MAC到帧校验序列(FCS)的总长度必须至少是64字节(你之前看到的“64比特”是错误信息,应该是字节)。如果你的上层数据包(比如ARP)加上以太网头部后总长度不够64字节,设备(交换机、网卡)会把这个帧认定为无效的“runt帧”直接丢弃,根本不会传给接收方处理。

填充的核心目的就是凑够这个最小长度,填充内容没有强制规定——用0、用字符或者任意字节都行,接收方会自动忽略超出协议规定长度的填充数据。


你代码里scapy.Padding(load="X"*18)的含义

先算清楚长度:

  • 以太网头部(scapy.Ether):固定14字节(6字节目的MAC + 6字节源MAC + 2字节协议类型)
  • ARP数据包(scapy.ARP):固定28字节(ARP协议的标准长度)
  • 两者加起来是14+28=42字节,离以太网帧要求的最小有效长度(60字节,不含4字节FCS)还差18字节,所以需要补18字节的填充。

scapy.Padding(load="X"*18)就是在ARP数据包后面追加18个ASCII字符X的字节数据,让整个以太网帧的有效部分(Ether+ARP+Padding)刚好达到60字节,加上网卡自动添加的4字节FCS后,总长度就是64字节,完全符合以太网的要求。

你用X填充完全没问题,接收方解析ARP包时只会处理前28字节的ARP内容,后面的填充数据会被直接忽略,不影响ARP欺骗的功能。


内容的提问来源于stack exchange,提问作者il.giaco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:13:10