在数据包中添加一个新位

问题描述

比如有两个节点 A 和 B,A 会向 B 发送一些 IPv6 数据包。我可以在数据包中添加一个新位作为每个数据包的特征,例如数据包 ID,这样我可以通过以下方式区分这些数据包

解决方法

如果您使用 RPL,您可能可以为此目的使用 RPL hop-by-hop 扩展标头中的一些位。检查结构 struct uip_ext_hdr_opt_rpl - 它有一个成员变量 flags,不是当前使用的所有位。设置和读取此标头的相关代码位于 rpl-ext-header.c 下的文件 net 中。

也可能出于您的目的使用一些 IEEE 802.15.4 标头位甚至 IPv6 主标头位,但这会破坏与这些标准的兼容性,并且可能更难实现在更高级别的 RPL 标头。

如果您绝对不想破坏与任何东西的兼容性,我认为唯一安全的选择是添加您自己的 IPv6 扩展标头。这样会更安全,但空间效率较低。