加入收藏 设为首页 联系站长
首页 | 虚拟动态 | Cisco模拟 | Juniper仿真 | 虚拟机 | 网络仿真 | 软件路由 | 技术专题 | 相关软件 | 交流论坛
>首页 -> 网络仿真 -> Opnet

TOP

总线链路的pipeline模型
[ 录入者:admin | 时间:2007-10-28 01:26:07 | 作者: | 来源: | 浏览:707次 ]
由六个缺省的pipeline stage组成,其中第一个阶段针对每个传输只计算一次,而后面的五个阶段针对各个可能接收到这次传输的接收器分别计算一次。
具体描述如下:
1) 传输时延阶段:模型文件dbu_txdel.ps.c。
计算方法:与点对点链路情况一致。
2) 封闭性计算阶段:模型文件dbu_closure.ps.c。
这个阶段的意义在于判断各个接收器节点是否能够接收到这次传输, 即链路的封闭性。针对每个接收器都有一个判断结果。有了这个结果以后系统内核就可以决定是否再为该接收器执行后面的计算进程。这个判断的好处是提高了仿真效率,因为若已知某接收器不能接收到这次传输,就不必为其计算传播时延,冲突等值,避免了进行不必要的计算。
计算方法:缺省认为所有bus上的站点都能接收到这次传输,因此直接把判断值写进包的TDA里。
3) 传播时延阶段:模型文件dbu_propdel.ps.c。
计算方法:读取链路的标志号(ID);读取链路的单位距离的传播时延"delay"属性值。注意在这里的delay属性与点对点链路的delay属性意义不一样。这里指的是单位距离的传播时延,而点对点链路中的delay直接指的是总传播时延。因为点对点只涉及到单条链路的传播时延,而总线链路要针对不同接收器即不同的传播距离计算出多个传播时延;读取收发器之间的距离间隔;二者乘积值即为传播时延,将其写进包的TDA里。
4) 冲突检测阶段:模型文件dbu_coll.ps.c。
在某个包的整个接收时间内(第一个比特到达时间到最后一个比特到达时间之间的时间间隔),可能会发生多次传输事件,于是对于该包来说,可能要遭遇多次冲突事件。在OPNET中,每当发生一次冲突事件,就调用本pipeline stage一次,以记录这次冲突事件。
这个pipeline stage对每个包传输不是总要调用,它只是在发生冲突时调用,而是否发生冲突是由系统内核来判别的。这个计算进程区别于其他的pipeline stage,有两个包指针参数:第一个是先到的分组,第二个是后到的分组(就是触发冲突事件的那一个)。
计算方法:如果前一个包刚好在后一个包开始传输时结束了接收,则不考虑为一次冲突。因此读取前一个包的结束时间,将其与当前仿真时间进行比较。如果相等或小于则不认为冲突。如果大于,则将前后两个包的记录冲突次数TDA都加一。
5) 误码数目分配阶段:模型文件dbu_error.ps.c。
计算方法:与点对点链路的计算方法一致,根据误码率计算误码数目。
6) 纠错阶段:模型文件dbu_ecc.ps.c。
包能被正确接收的判断标准与点对点链路稍有不同。首先是要求包未经冲突,然后将误码数目与纠错门限比较判断可正确接收与否。
计算方法:读取包的冲突数目;如果冲突数目不为0或节点被disabled,则直接判断为不能正确接收;将误码数目与纠错门限比较以决定能否正确接收,将判断结果写进包的TDA里。具体步骤与点对点链路一致。


[上一篇]点对点链路的pipeline模型 [下一篇]opnet 常见问题总结4
※相关文章
 

评论

称  呼:
内  容:

相关栏目

最新文章

热门文章

推荐文章

赞助商链接