数据包基类

class os_ken.lib.packet.packet_base.PacketBase

协议(以太网、ipv4 等)头部的一个基类。

classmethod get_packet_type(type_)

按协议的类似字典的获取方法。

为协议实现者提供便利。仅供内部使用。

abstract classmethod parser(buf)

解码协议头。

此方法仅在解码数据包时使用。

在字节数组 buf 的偏移量 0 处解码协议头。返回以下三个对象:

  • 一个描述解码后的头对象。

  • 一个适当于数据包其余部分的 packet_base.PacketBase 子类。如果数据包的其余部分应被视为原始有效负载,则为 None。

  • 数据包的其余部分。

classmethod register_packet_type(cls_, type_)

按协议的类字典设置方法。

为协议实现者提供便利。仅供内部使用。

serialize(payload, prev)

编码协议头。

此方法仅在编码数据包时使用。

编码协议头。返回一个包含头的字节数组。

payload 是将立即跟随此头的其余数据包。

prev 是外部协议头的 packet_base.PacketBase 子类。如果当前头是外部头,则 prev 为 None。例如,对于 tcp.serialize,prev 是 ipv4 或 ipv6。