Ns3Packet 学习笔记

Ns3Packet 学习笔记
每个网络数据包包含一个字节缓冲区、一组字节标签、一组数据包标签和元数据。

字节缓冲区存储添加到数据包的报头和尾部的序列化内容。这些报头的串行化表示 期望与真实网络分组逐位匹配(尽管没有什么强迫你这样做),这意味着分组缓冲器的内容反应了真实分组的内容。

元数据描述了字节缓冲区中序列化的头和尾的类型。元数据的维护是可选的,默认情况下是禁用的。要启用它,您必须调用数据包::启用打印,这将允许您从数据包::打印获得非空输出。如果您希望只启用元数据检查,并且不需要任何打印功能,您可以调用数据包::启用检查:其运行时成本低于数据包::启用打印。

这组标签包含模拟特定的信息,这些信息不能存储在数据包字节缓冲区中,因为协议头或尾没有符合标准的字段来存储这些信息。所谓的“字节”标签用于标记数据包字节缓冲区中的字节子集,而“数据包”标签用于标记数据包本身。这两种标签的主要区别在于当包被复制、分段和重组时会发生什么:“字节”标签跟在字节后面,“包”标签跟在包后面。这两种标签之间的另一个重要区别是,字节标签不能被移除,并且期望被写入一次,并且被读取多次,而分组标签期望被写入一次,读取多次,并且恰好被移除一次。

为一个新协议实现一个新类型的头或尾是非常容易的,创建ns3::Header或ns3::Trailer基类的子类,并实现它们各自的API文档中描述的方法就可以了。

实现一种新类型的标记需要大致相同的工作量,这项工作在ns3::Tag记应用编程接口文档中有所描述。

class Packet : public SimpleRefCount
{
public:
Packet (); //创新一个新的空数据包
Packet (const Packet &o); //copy数据包o
Packet &o

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值