`

NS by Example 笔记(5)Packet

阅读更多

数据包 Packet

 

 

一个NS数据包包含一个报头的堆栈头文件和一个可选的数据空间(见 Figure 12)。"Simple Simulation Example"小节中简要提到, 数据包的报头格式被初始化在创建模拟对象Simulator object后, 所有已注册(或可能用到)的报头,比如 common header通常被任何需要它的对象使用、IP header、TCP header、RTP header (UDP使用RTP header)和 trace header, 并且每个报头的位移(offset of each header)在堆栈中记录。这样做的意义是无论是否一个特定的报头被使用, 一个由所有已注册的报头组成的堆栈被建立在代理分配一个数据包的时候,这样一个网络对象可以访问在数据包堆栈中的任何报头,并使用相应的offset值来处理。 




 
Figure 12. NS Packet Format

通常, 一个数据包只有header stack(数据空间的指针为null)。 尽管数据包可以通过分配数据空间来带有实际的数据(从应用程序中), 然而只有少数的应用程序和代理支持这个。 这是因为携带数据在非real-time模拟中是没有实际意义的。 然而, 如果想要程序和另一个程序通过网络对话的话, 就可能用到这个功能特征通过对底层代理实现做些修改。另一个方法是为应用程序建立一个新报头并修改底层代理去把收到的数据写入新的报头中。 第二种方法将会在"Add New Application and Agent"小节中见到。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics