在数据包中添加一个新位
Add a new bit in packet
例如,有两个节点A和B。A会向B发送一些IPv6数据包。我可以在数据包中添加一个新的位作为每个数据包的特征,比如数据包ID,这样我就可以区分这些数据包。
如果您正在使用 RPL,您可能可以使用 RPL hop-by-hop 扩展 header 中的一些位来达到此目的。检查结构 struct uip_ext_hdr_opt_rpl
- 它有一个成员变量 flags
,当前并未使用它的所有位。设置和读取这个header的相关代码在net
下的文件rpl-ext-header.c
中。
您也可以使用某些 IEEE 802.15.4 header 位甚至 IPv6 主要 header 位,但这会破坏与这些标准的兼容性,并且可能更巧妙地实现在 higher-level RPL header.
之上做某事
如果您绝对不想破坏与任何东西的兼容性,我认为唯一安全的选择是添加您自己的 IPv6 扩展 header。那会更安全,但更少 space-efficient.
例如,有两个节点A和B。A会向B发送一些IPv6数据包。我可以在数据包中添加一个新的位作为每个数据包的特征,比如数据包ID,这样我就可以区分这些数据包。
如果您正在使用 RPL,您可能可以使用 RPL hop-by-hop 扩展 header 中的一些位来达到此目的。检查结构 struct uip_ext_hdr_opt_rpl
- 它有一个成员变量 flags
,当前并未使用它的所有位。设置和读取这个header的相关代码在net
下的文件rpl-ext-header.c
中。
您也可以使用某些 IEEE 802.15.4 header 位甚至 IPv6 主要 header 位,但这会破坏与这些标准的兼容性,并且可能更巧妙地实现在 higher-level RPL header.
之上做某事如果您绝对不想破坏与任何东西的兼容性,我认为唯一安全的选择是添加您自己的 IPv6 扩展 header。那会更安全,但更少 space-efficient.