【发布时间】:2019-04-29 23:15:43
【问题描述】:
“帧校验序列”是整个以太网帧的 32 位 CRC“校验和”,从 DMAC 开始,涵盖 SMAC、类型和有效负载。它作为以太网帧的最后四个字节传输,就在数据包间间隙之前。
我希望 Scapy 的 Ether() 方法具有该字段的数据包属性的参数。它没有。
请注意,IP() 和 TCP()/UDP() 等 Scapy 方法包含一个校验和参数(“chksum”),用于为这些协议定义的附加校验和。
例如...
> IP( raw(UDP(chksum=0) / IP(version=4, chksum(0)) )
<IP version=0 ihl=0 tos=0x35 len=53 id=28 flags= frag=0 ttl=69 proto=hopopt chksum=0x14 src=0.1.0.0 dst=64.0.0.0 |<Raw load='\x7f\x00\x00\x01\x7f\x00\x00\x01' |>>
> ls(Ether)
dst : DestMACfield = (None)
src : SourceMACfield = (None)
type : XShortEnumField = (36864)
> Ether( raw(Ether()) )
<Ether dst=ff:ff:ff:ff:ff:ff src=12:34:56:78:9a:bc type=LOOP |>
> Ether.chksum()
AttributeError: chksum
【问题讨论】: