ICMPv6

class os_ken.lib.packet.icmpv6.echo(id_=0, seq=0, data=None)

用于回显请求和回显应答消息的 ICMPv6 子编码器/解码器类。

此与 os_ken.lib.packet.icmpv6.icmpv6 一起用于 ICMPv6 回显请求和回显应答消息。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

id

标识符

seq

序列号

data

数据

class os_ken.lib.packet.icmpv6.icmpv6(type_=0, code=0, csum=0, data=b'')

ICMPv6 (RFC 2463) 头部编码器/解码器类。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

type_

类型

code

代码

csum

校验和 (0 表示编码时自动计算)

data

有效载荷。

os_ken.lib.packet.icmpv6.echo 对象、os_ken.lib.packet.icmpv6.nd_neighbor 对象、os_ken.lib.packet.icmpv6.nd_router_solicit 对象、os_ken.lib.packet.icmpv6.nd_router_advert 对象、os_ken.lib.packet.icmpv6.mld 对象,或一个字节数组。

classmethod parser(buf)

解码协议头。

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

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

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

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

  • 数据包的其余部分。

serialize(payload, prev)

编码协议头。

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

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

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

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

class os_ken.lib.packet.icmpv6.mld(maxresp=0, address='::')

用于 MLD 侦听器查询、MLD 侦听器报告和 MLD 侦听器完成消息的 ICMPv6 子编码器/解码器类。(RFC 2710)

http://www.ietf.org/rfc/rfc2710.txt

此与 os_ken.lib.packet.icmpv6.icmpv6 一起使用。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

maxresp

毫秒内的最大响应时间。仅在查询消息中才有意义。

address

一个组地址值。

class os_ken.lib.packet.icmpv6.mldv2_query(maxresp=0, address='::', s_flg=0, qrv=2, qqic=0, num=0, srcs=None)

用于 MLD v2 侦听器查询消息的 ICMPv6 子编码器/解码器类。(RFC 3810)

http://www.ietf.org/rfc/rfc3810.txt

此与 os_ken.lib.packet.icmpv6.icmpv6 一起使用。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

maxresp

毫秒内的最大响应时间。仅在查询消息中才有意义。

address

一个组地址值。

s_flg

设置为 1 时,路由器会抑制计时器进程。

qrv

查询器的鲁棒性变量。

qqic

查询器以秒为单位的间隔时间。

num

多播服务器的数量。

srcs

多播服务器的 IPv6 地址列表。

class os_ken.lib.packet.icmpv6.mldv2_report(record_num=0, records=None)

用于 MLD v2 侦听器报告消息的 ICMPv6 子编码器/解码器类。(RFC 3810)

http://www.ietf.org/rfc/rfc3810.txt

此与 os_ken.lib.packet.icmpv6.icmpv6 一起使用。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

record_num

组记录的数量。

records

os_ken.lib.packet.icmpv6.mldv2_report_group 的列表。如果没有记录,则为 None。

class os_ken.lib.packet.icmpv6.mldv2_report_group(type_=0, aux_len=0, num=0, address='::', srcs=None, aux=None)

用于 MLD v2 侦听器报告组记录消息的 ICMPv6 子编码器/解码器类。(RFC 3810)

此与 os_ken.lib.packet.icmpv6.mldv2_report 一起使用。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

type_

v3 的组记录类型。

aux_len

辅助数据长度,以 32 位字为单位。

num

多播服务器的数量。

address

一个组地址值。

srcs

多播服务器的 IPv6 地址列表。

aux

辅助数据。

class os_ken.lib.packet.icmpv6.nd_neighbor(res=0, dst='::', option=None)

用于邻居探测和邻居通告消息的 ICMPv6 子编码器/解码器类。(RFC 4861)

此与 os_ken.lib.packet.icmpv6.icmpv6 一起使用。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

res

邻居通告的 R、S、O 标志。邻居探测的“保留”字段的 3 个 MSB。

dst

目标地址

option

os_ken.lib.packet.icmpv6.nd_option 的派生对象或一个字节数组。如果没有选项,则为 None。

class os_ken.lib.packet.icmpv6.nd_option_mtu(mtu=1500)

用于邻居发现 MTU 选项的 ICMPv6 子编码器/解码器类。(RFC 4861)

此与 os_ken.lib.packet.icmpv6.nd_router_advert 一起使用。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

mtu

MTU。

class os_ken.lib.packet.icmpv6.nd_option_pi(length=0, pl=0, res1=0, val_l=0, pre_l=0, res2=0, prefix='::')

用于邻居发现前缀信息选项的 ICMPv6 子编码器/解码器类。(RFC 4861)

此与 os_ken.lib.packet.icmpv6.nd_router_advert 一起使用。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

长度

选项的长度。(0 表示编码时自动计算)

pl

前缀长度。

res1

前缀信息的 L、A、R* 标志。

val_l

有效生存时间。

pre_l

首选生存时间。

res2

此字段未使用。必须初始化为零。

prefix

IP 地址或 IP 地址的前缀。

*R 标志在 (RFC 3775) 中定义

class os_ken.lib.packet.icmpv6.nd_option_sla(length=0, hw_src='00:00:00:00:00:00', data=None)

用于邻居发现源链路层地址选项的 ICMPv6 子编码器/解码器类。(RFC 4861)

此与 os_ken.lib.packet.icmpv6.nd_neighbor、os_ken.lib.packet.icmpv6.nd_router_solicit 或 os_ken.lib.packet.icmpv6.nd_router_advert 一起使用。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

长度

选项的长度。(0 表示编码时自动计算)

hw_src

链路层地址。注意:如果地址长于 6 个字节,则此字段包含地址的前 6 个字节。此实现假定地址至少有 6 个字节。

data

一个字节数组,其中包含剩余的链路层地址和填充。在编码数据包时,用户有责任提供协议要求的 8 字节对齐所需的填充。

class os_ken.lib.packet.icmpv6.nd_option_tla(length=0, hw_src='00:00:00:00:00:00', data=None)

用于邻居发现目标链路层地址选项的 ICMPv6 子编码器/解码器类。(RFC 4861)

此与 os_ken.lib.packet.icmpv6.nd_neighbor 一起使用。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

长度

选项的长度。(0 表示编码时自动计算)

hw_src

链路层地址。注意:如果地址长于 6 个字节,则此字段包含地址的前 6 个字节。此实现假定地址至少有 6 个字节。

data

一个字节数组,其中包含剩余的链路层地址和填充。在编码数据包时,用户有责任提供协议要求的 8 字节对齐所需的填充。

class os_ken.lib.packet.icmpv6.nd_router_advert(ch_l=0, res=0, rou_l=0, rea_t=0, ret_t=0, options=None)

用于路由器通告消息的 ICMPv6 子编码器/解码器类。(RFC 4861)

此与 os_ken.lib.packet.icmpv6.icmpv6 一起使用。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

ch_l

当前跃点限制。

res

M、O 标志用于路由器通告。

rou_l

路由器生存时间。

rea_t

可达时间。

ret_t

重传计时器。

选项

os_ken.lib.packet.icmpv6.nd_option 或 bytearray 的派生对象列表。如果没有选项,则为 None。

class os_ken.lib.packet.icmpv6.nd_router_solicit(res=0, option=None)

路由器请求消息的 ICMPv6 子编码器/解码器类。(RFC 4861)

此与 os_ken.lib.packet.icmpv6.icmpv6 一起使用。

一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。

属性

描述

res

此字段未使用。必须初始化为零。

option

os_ken.lib.packet.icmpv6.nd_option 的派生对象或一个字节数组。如果没有选项,则为 None。