在OPNET模型中,当包被传送到发送器请求发送后,实际中的情况是包将立即被发送到通信信道上进行传输,因此OPNET必须对通信信道进行建模,也就是在模型中要实现物理层的特征,以便将信道对包产生的传输效果考虑进整个网络模型。OPNET将信道对包产生的传输效果建模为若干个计算阶段(称为pinpeline stage),最终来判断该包能否被接收到。
Pipeline的典型参数是一个packet指针,也就是说,pipeline是针对每个包来计算它在物理信道上的传输效果的。为了承载pipiline所需或计算的信道参数,每个包都包含着由transmission data attribute(TDA)的一组值构成的存储区,当包的传输效果计算进入某一pipeline stage时,系统内核为TDA分配初始值或者根据计算结果来设置TDA值 。这一组TDA值可以为后续的pipeline stage提供计算的依据。
OPNET将传输信道划分为三种:点对点链路(point to point Link),总线式链路(bus Link)和无线链路(radio Link)。每一种链路由若干个标准的,缺省的pipeline stage组成。用户可以对缺省的pipeline stage 进行修改以适应用户所需的信道类型:用户可以在pipeline里定义自己的TDA,还可以调用系统内核里的支持对TDA进行操作的内核过程(KP)来编程实现自己的信道模型。
OPNET中缺省的pipeline stage模型文件后缀名为.ps.c,经编译后形成的目标文件后缀名为.ps.o。所有的三种信道的缺省pipeline stage 文件都存储在<opnet目录>/<版本目录>/models/std/links/文件夹下面 。用户若要自己编写pipeline stage来代替缺省模型,则需先编写.ps.c后缀的c或c++文件,然后编译形成.ps.o目标文件。 |