OPNET学习手册经验本_第1页
OPNET学习手册经验本_第2页
OPNET学习手册经验本_第3页
OPNET学习手册经验本_第4页
OPNET学习手册经验本_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OPNET初学者建议

1、学习不要指望看中文资料,首先要认真的学习英文的OPNET帮助里面的GeneralTutorials。(以OPNET

10.0.A为例)必须边看边做!Tutorials里面的3部分,BasicLessons的前5节必须做,ModelerLessons的前4节必须做,第3部分可以先不作,以上各小节,边做边归纳,可以保证大家对OPNET整个建模的了解。

2、现在开始练兵了,不要指望马上进入你要做的模型,也不要太急,盲目的在原来库的模型上修改。个人建议,不管你做有线还是无线的研究,那么请你先把自带的ethcoax_net这个模型认真看懂,因为他的原理比较简单。可以说不了解协议就去搭建模型是极为错误和危险的,所以先把802.3的协议看懂(基本上每本网络书上都有),然后认真学习ethcoax_net这个模型,基本做到每句话干什么。任何不懂的请你在英文帮助里面找,帮助的索引做的非常好,每个语句也有详细说明。

3、因为现在已经有两本OPNET的书了,大家可以买来看看。会有帮助的,其实这个论坛上的很多问题,大家完成了前两步,再找找书看都可以解决。

4、做自己的模型。迈出这一步是有一定难度的,值得提醒大家的是先把你要做的协议、流程完全搞清楚再下手。复杂的系统需要走软件工程设计的步骤,工具总是工具,它不是最重要的。自己的模型在做的过程中遇到问题,最好的老师是OPNET里面自带的库模型,比如无线部分,WLAN模块里面有很多可以借鉴的地方,等等。(不过WLAN模型确实写的不怎么样,但OPNET代码的某些设计对我们编程值得借鉴,呵呵)请记住,库带的模型是最好的老师!

第一,要想了解OPNET,OPNET帮助文档第一部分是非常、非常、非常重要的,包括OPNET离散事件仿真的概念、通信的机理等等,是OPNET的基础中的基础,对于理解OPNET是必不可少的。第一次看可能会有很多不懂的地方,不过OPNET用多了,自然就理解了。

第二,要想熟练掌握OPNET,能够用OPNET建模,那么必须熟练掌握C/C++语言,积累一定的编程、调试经验以及阅读分析源代码的能力。用VC的话,MSDN是必备的(谭浩强的书都可以丢了,基本上算是垃圾)。

第三,要想精通OPNET,能够灵活自如地应用OPNET,还需要熟悉OPNET的各部件、各功能,包括ACE、FlowAnalysis、TerranModeling、NetDoctor、HLA等等一系列工具/接口OPNET调试经验总结基于DebugginginOPNETwithMicrosoftVisualC++调试的文档(资料下载区提供),有一些经验总结如下:

(1)修改Preference中的环境变量时,/Od与/Zi之间要有空格,另外注意O不是0。

(2)除了修改bind_shobj_flags、comp_flags、comp_flags_cpp外,还要修改bind_static_flags:即后面添加/DEBUG。可以从文档中的示意图中看出。记着,中间一定要有空格。

(3)如出现上述设置上的问题,可以从编译结果中查看问题。(建议可以故意在一个processmodel中加一条语法错误的语句,然后编译看列出的出错信息。)

(4)在attachprocess时,如果看不到任何process,尽量关闭不必要的程序,只留下opnet的project窗口和VC。如果还不行,就要给VC打SP5补丁了。不过有一种更简单的方法,就是在任务管理器中,在进程中找到op_runsim_dev.exe进程,右键,然后调试,即可和VC进行联调。

(5)修改Simulationmodel的environmentfiles时,一般不需将ForceCompile设为enable,因为调试时一般processmodel都已编译好。如果把ForceCompile设为enable的话,每次启动simulation都会把项目中包含的所有的processmodel重新编译,会耗很长时间。但是为了保证代码为最新改写过得,建议还是enable为好。

(6)如果不想让debug窗口自动关闭,可以把consle_exit_pause改为TRUE,仿真完后会提示Press<ENTER>tocontinue.按两次<ENTER>才会关闭debug窗口。

(7)编译的时候产生调试信息的参数是/Z7或/Zi,(注意:/Z8并不是合法的参数)。调试时还需要关闭编译器的优化功能,所以还要加上/Od。连接的时候需要保留调试信息,所以在bind_shobj_flags后面要加上/DEBUG。

(8)configsimulation里面的debug,目的是让op_runsim运行在debug模式下,等效于console下面的-debug。force_compile的作用是每次编译时都重建所有的模块,以使你在VC下面看到的源程序都是最新的。

(9)在VC调试时,从断点后开始单步运行,最后总会走到一个向汇编中的机器代码的地方。odb那边也不能敲任何命令。这很正常,那个汇编的地方就是OPNET的内核之类的东西。不用管它,在VC里面再选run就行了。程序会运行到VC的下一个断点,或者ODB重新可以敲命令了。

(10)最基本的一个问题,在OPNET调试时,报错:

bind_so_msvc:Unabletoexecutebindprogram(Win32errorcode:2)

CheckthatVisualC++hasbeeninstalledcorrectly,andthat

itsBINdirectoryisincludedinthePathenvironmentvariable.

那么可以按照一般的方法来手动添加环境变量,但是就笔者经验,即使当时通过,之后可能还会出现问题。最彻底的办法就是VC和OPNET重装一遍,先安装VC,安装时,要选择注册环境变量。OPNET也不能偷懒,就一步一步按顺序安装吧OPNET常见问题1.如何设置全局变量?

在.h文件里定义变量,然后在process的HEADBLOCK里include

这个头文件,就可以使用全局变量了。

2.OPNET中如何更方便的看程序?

1.opnet中的设:

preferences->editor_prog

2.sourceinsight的设置

operation->preferences->symbolLookups->Projectsymbolpath->AddProjectto

Path

(添加自己创建一个包含所有opnetmodel和include目录的project)

当然,这个有些不足,就是那个sv,tv,hb等中定义的内容,不能进行关联。

3.OPNET中的函数FIN,FRET以及FOUT都是什么功能?

为了使一个用户定义的函数被执行,该函数必须与一个特殊的堆栈跟踪代码相连。堆

栈跟踪技术靠在函数的入口点和出口点插入预处理器宏

指令完成(一个函数只有一个入口点,但可以有多个出口点(由C语言的return声明决定

))。这些宏指令为:FIN、FOUT和FRET。FIN被插入到

函数的入口点,FOUT被插入到函数的出口点,但却不返回任何值,FRET被插入到函数的

出口点,返回一个值。注意这些宏指令不需要以分号结

束(它们自我包含),FIN的参数中也不需要双引号。

Opnet提供的所有的示例模型都包含了这些宏指令,并且建议用户定义的函数也包含这

些宏指令。如果FIN、FOUT、和FRET被正确插入了用户

代码中,我们就可以使用op_vuerr来找出程序错误的位置,哪怕是在一个嵌套的模型函

数调用中。

4.localstatistics和globalstatistics的区别?

localstatistics表示的是本地的统计量,而globalstatistics是全局的统计量,

比如你做了一个节点模型,此节点发送数据包,然后编程把发送的数据包数分别写入

一个localstatistics和globalstatistics中,假如你在工程中用到了两个这样的

节点,那么你可以分别viewresult每一个节点发送的数据包数,而globalstatistics

则是这两个节点一共发送的数据包数。

5.Objid和userid的区别?

Objid是系统分配的,全局唯一,整数。userid是自己可以设置的,可以不唯一。

6.如何将模块添加到OPNET中?

edit->preferences->mod_dirs添加模块路径即可。

7.为什么每次新建一个project都给我保存在c:\op_models目录下,我想换一个地

方,怎么设置?

edit->preferences->mod_dirs中,新建一个路径,并作为第一路径即可。

8.想查找一个变量的使用场合,包括不同process,不同node中的header和funtion,如

何做?

在OPNET中变量是在一个PROCESS中存在的。不同的PROCESS之间则是通过进程之间的通信

机制来共享信息的。因此你查找变量的作用范围应该是

在一个PROCESS内的。编译后每个PROCESS会产生一个C或C++文件。在那个文件里就可以

查到变量的应用地方。不同的进程可能具有相同的

ATTRIBUTE.而为了减少NODE的ATTRIBUTE数目可以采用MERGE/RENAMEATTRIBUTE的方式

。这时这些ATTRIBUTE具体对应到各个PROCESS的哪个

ATTRIBUTE可以通过NODEINTERFACE菜单下的MERGE/RENAMEATTRIBUTE找到。

9.请问OPNET怎样将图导出来?

一:可以从Topology->ExportTopology->……导出Project的几种图形,有bitmap,ht

ml等格式。node,process都可以从file中的Export

Bitmap导出拓扑图。

二:对于分析出来的曲线,按鼠标右键,其中有个ExportGraphDatatoSpreadshee

t,然后会有提示说你文件保存在什么地方,一般缺省

是保存在c:\op_admin\tmp目录下。文件你可以用UltraEdit打开来看,是两列数据

,一列是仿真时间,一列是仿真数据,然后你就可以想

用什么工具画图就无所谓了。

补充:其实很好用的还有就是直接抓图,效果不错。

9.请问OPNET怎样将图导出来?

一:可以从Topology->ExportTopology->……导出Project的几种图形,有bitmap,ht

ml等格式。node,process都可以从file中的Export

Bitmap导出拓扑图。

二:对于分析出来的曲线,按鼠标右键,其中有个ExportGraphDatatoSpreadshee

t,然后会有提示说你文件保存在什么地方,一般缺省

是保存在c:\op_admin\tmp目录下。文件你可以用UltraEdit打开来看,是两列数据

,一列是仿真时间,一列是仿真数据,然后你就可以想

用什么工具画图就无所谓了。

补充:其实很好用的还有就是直接抓图,效果不错。

10.在opnet中关于时延的问题。

数据速率是用来和包长结合计算传输时延的,而“delay”属性是用来描述电波的传播时

延的。在点到点链路属性里,“delay”就是总传播时

延;在多点链路里,“delay”指单位距离的传播时延。用户可以修改传播时延的计算

方法,那个“DistanceRelated”就是表示在自定义的

传播时延pipelinestage里基于距离计算传播时延。

11..在opnet中关于统计一些速率方面的参数。

统计流速率的时候,首先应该在LocalStatistics中将这个统计项的CaptureMode设成

sum/time,然后在程序中每次收到一个数据包,就将

这个包的长度L写入,比如op_stat_write(handle,L),随后再马上调用一个op_stat_wr

ite(handle,0)来结束这次写入,就可以了。

12.关于beginintrpt和endsimintrpt

仿真0时刻时需要进行的初始化,则需要设beginintrpt,仿真结束时刻需要进行一些工

组,则需要enableendsimintrpt

13.用VC调试的时候,statevariable的值无法看到,怎么办?

用op_sv_ptr这个指针。它指向了所有的状态变量。

14.关于ElapsedtimeandSimulationtime?

一个是仿真程序运行的时间,反映仿真程序执行的速度。而另一个是所仿真的系统的时

间进度,反映当前的仿真执行的进度。

仿真时间的修改是通过事件的发生来进行的。譬如说你在0s时作一件事持续时间为5秒,

5秒钟结束后会触发一个事件,这个事件将系统的仿真

时间改为5s。你使用OPNET的模型,它在接收到事件时会进行相应的仿真时间的更新。而

你自己也可根据需要更新仿真时间。你采用

op_intrpt_schedule_self(op_sim_time()+需要的时间,intrptcode),就可以在当前时

刻的所需的时间以后产生一个中断,从而触发一个事件

,系统的仿真事件也就被更新为此时间。OPNET中数据的收集方式是可选的,可以选择为

逐点的,也可以选择按照漏斗进行平滑的根据自己的需

要而定。

15.OPNet运行时无法进行C代码编译的解决办法

当你出现这种情况时,OPNet总是提示说comp_msvc不能执行,因为VisualC++没有正

确安装,这时你需要修改系统的环境变量。具体方法如

下(Win2000):

1.正确安装VC++,缺省目录为(以下均以缺省目录为例)

C:\ProgramFiles\Mic

rosoftVisualStudio

2.在桌面鼠标右击"我的电脑"图标,选择"属性".在出现的界面中,选择"高级",然

后选择"环境变量"。

3.这里需要修改用户的"用户变量",而不是"系统变量"增加下列参数:

变量名include

变量值C:\ProgramFiles\MicrosoftVisualStudi0\VC98\atl\include;

C:\ProgramFiles\MicrosoftVisualStudio\VC98\mfc\include;

C:\ProgramFiles\MicrosoftVisualStudio\VC98\include

变量名lib

变量值C:\ProgramFiles\MicrosoftVisualStudio\VC98\mfc\lib

C:\ProgramFiles\MicrosoftVisualStudio\VC98\lib

变量名MSDevDir

变量值C:\ProgramFiles\MicrosoftVisualStudio\Common\MSDev98

变量名path

变量值C:\ProgramFiles\MicrosoftVisualStudio\Common\Tools\WinNT

C:\ProgramFiles\MicrosoftVisualStudio\Common\MSDev98\bin

C:\ProgramFiles\MicrosoftVisualStudio\Common\Tools\ProgramFiles\

MicrosoftVisualStudio\VC98\bin

4.

按"确定"按钮,退出设置.

如果你在安装VC的时候让安装程序来修改环境变量就完全可以就避免这些步骤.

16..请问opnet中的移动台的trajectory(即运动轨迹)能否用一个专门的代码来生成

,而不是用鼠标事先画出?如何实现opnet与此段代码的

交互?

要做到运动轨迹的交互性,你得修改一些process和pipeline。运动的结果无非是和基

站的距离变化,然后利用衰落模型得到snr,ber等参数

,所以你可以修改dra_propdel.ps.c,umts_ue_dra_power,umts_dra_snr等process.

如在dra_propdel.ps.c中把start_pro_distance用自己

的距离函数代替即可。

17.前面提到的随机性服从一些随机分布,如高斯分布、泊松分布等等,我想问一下,

opnet中有没有现成的概率分布函数供调用?如何调用

用op_dist_outcome这一类的函数,在onlinedocument中介绍的很详细。

18.对opnet的认识,它是在project、node以及process三个域上进行仿真,而且好像代

码都是在process域中的进入、退出以及转化这些地方

编写,那么要实现的移动台随机产生的代码好像没有一个公共的全局性的平台可以放置

(就像C语言中的全局变量声明段)?这个问题如何解决

函数应该在process的FB中,FSM只是调用而已,全局变量通常在外部.h中,也可在HB中

19.OPNET的输出结果选项“Asis”,“Average”,“Time_average”有什么区别?

在这些选项下得到的曲线不一样:

Asis,就是不做任何处理,

Average就是做平均

Time_average就是做时间平均

20.请问OPNET中的animation指什么?

激活节点变化过程记录功能并记录statistic的变化过程。

21.OPNET中如何删除一个senario,而保留工程?

在menu->senarios->managesenarios里。

22.请问OPNET中的animation指什么?

激活节点变化过程记录功能,并记录statistic的变化过程,可以作为动画演示。

23.opnet的节点域中处理模块之间如何共享变量?

可以试试以下2种方法:

1。在HB中定义全局变量

2。添加节点属性,然后使用op_ima_xxx_xxx()函数,就是那个IMA包。

24.在nodeinterfaces里面设置属性为set,promoted和hidden有什么意义?

hidden可以在仿真的时候看不到设置的这个参数,promoted可以在仿真的过程中根据需

要改变参数的值

25.我在学习opnet的tutorial的packetswitching1时最后仿真出现下面的错误,请问

如何解决?

CreatinglibraryPS_pksw_net-scenario1.i0.nt.libandobjectPS_pksw_net-

io1.i0.nt.exp

dpt_propdel.i0.ps.o:errorLNK2001:unresolvedexternalsymbol_link_de

PS_pksw_net-scenario1.i0.nt.so:fatalerrorLNK1120:1unresolvedexter

在运行仿真时,选择declareexternal

file,将link_delay.h文件包含即可。

26.请问opnet里如何提取统计信息作为反馈控制变量?例如将丢失率提取出来后,通过

函数将其反馈回模型中进行控制。

可以试试stat_intrpt函数。

27.模型中的数据线中的srcstream[n]和deststream[n]中括号中的序号n分别表示

什么意思?

op_pk_get(STRMNUM)的参数,会根据n来选择数据线的。

28.pipelinestage的函数是怎么调用的啊?为什么我的数据在被接收端的时候那几个

pipeline函数并没有执行完呢?只执行了3个函数,后

面就没有了,结果数据不知道扔哪去了,上层也没有stream中断是怎么回事呢?

pipelinestate函数体接口是规定的,由KP调用。在stage2有连通性的检查,如果f

alse,则以后的stage都不需执行了。

29.仔细察看了一下程序,FIN和FOUT都是配对的。在一个Idle的状态中,什么操作也没

做。但是程序执行了好长时间之后,突然告诉说

Abnormalfunctionstackfunction。就是在Idle状态出的错。可是哪个状态根本就是

空操作。而在.pr.c文件中,发现所有的process的.pr.c

文件中的那个最全的函数都是只有FIN,没有FOUT的。请问出现上述错误还有可能是何原

因?

查看事件列表,有可能是事件列表满的缘故,你可以试着改变preference里面的一个event_speed_parameter参数出现该问题的设置不同,出现

的时间也会不同。

30.请问OPNET的背景路由流量的如何配置?

三种方法:

applicationconfigi.

conersationpair

linkload

31.怎样在mac层获取在pipelinestage中计算的某些参数的数值,如接收功率的数值?

可以用pwr=op_td_get_dbl(pkptr,OPC_TDA_RA_RCVD_POWER)。

32.我对某个pipeline函数做了一点修改然后以另外一个名字另存了一下,但是在模块

中却不能把原来的pipeline函数改成重新命名的

pipeline函数这是怎么回事啊?

你修改后的文件名要与函数名相同,然后得用OPNET自带的EXTERNALINTERFACE提供的工

具编译就可以了。OPNET与VC调试经验总结

基于DebugginginOPNETwithMicrosoftVisualC++调试的文档(资料下载区提供)

,有一些经验总结如下:

(1)修改Preference中的环境变量时,/Od与/Zi之间要有空格,另外注意O不是0。

(2)除了修改bind_shobj_flags、comp_flags、comp_flags_cpp外,还要修改bind_static_flags:即后面添加/DEBUG。可以从文档中的示意

图中看出。记着,中间一定要有空格。

(3)如出现上述设置上的问题,可以从编译结果中查看问题。(建议可以故意在一个p

rocessmodel中加一条语法错误的语句,然后编译看列

出的出错信息。)

(4)在attachprocess时,如果看不到任何process,尽量关闭不必要的程序,只留下

opnet的project窗口和VC。如果还不行,就要给VC打SP5

补丁了。不过有一种更简单的方法,就是在任务管理器中,在进程中找到op_runsim_de

v.exe进程,右键,然后调试,即可和VC进行联调。

(5)修改Simulationmodel的environmentfiles时,一般不需将ForceCompile设为e

nable,因为调试时一般processmodel都已编译好。如

果把ForceCompile设为enable的话,每次启动simulation都会把项目中包含的所有的p

rocessmodel重新编译,会耗很长时间。但是为了保证

代码为最新改写过得,建议还是enable为好。

(6)如果不想让debug窗口自动关闭,可以把consle_exit_pause改为TRUE,仿真完后会

提示Press<ENTER>tocontinue.按两次<ENTER>才会

关闭debug窗口。

(7)编译的时候产生调试信息的参数是/Z7或/Zi,(注意:/Z8并不是合法的参数)。

调试时还需要关闭编译器的优化功能,所以还要加

上/Od。连接的时候需要保留调试信息,所以在bind_shobj_flags后面要加上/DEBUG。

(8)configsimulation里面的debug,目的是让op_runsim运行在debug模式下,等效

于console下面的-debug。force_compile的作用是每次

编译时都重建所有的模块,以使你在VC下面看到的源程序都是最新的。

(9)在VC调试时,从断点后开始单步运行,最后总会走到一个向汇编中的机器代码的地

方。odb那边也不能敲任何命令。这很正常,那个汇编

的地方就是OPNET的内核之类的东西。不用管它,在VC里面再选Go(F5)就行了。程序会运行到VC的下一个断点,或者ODB重新可以敲命令了。

(10)最基本的一个问题,在OPNET调试时,报错:

bind_so_msvc:Unabletoexecutebindprogram(Win32errorcode:2)

CheckthatVisualC++hasbeeninstalledcorrectly,andthat

itsBINdirectoryisincludedinthePathenvironmentvariable.

那么可以按照一般的方法来手动添加环境变量,但是就笔者经验,即使当时通过,之后

可能还会出现问题。最彻底的办法就是VC和OPNET重装一

遍,先安装VC,安装时,要选择注册环境变量。OPNET也不能偷懒,就一步一步按顺序安

装吧。(11)

这些都是笔者和一些使用OPNET的朋友的一些总结,有什么不足还望大家赐教,互相交流,共同进步!

OPNET信道模型概述

在OPNET模型中,当包被传送到发送器请求发送后,实际中的情况是包将立

即被发送到通信信道上进行传输,因此OPNET必须对通信

信道进行建模,也就是在模型中要实现物理层的特征,以便将信道对包产生的传输效果

考虑进整个网络模型。OPNET将信道对包产生的传输效果

建模为若干个计算阶段(称为pinpelinestage),最终来判断该包能否被接收到。

Pipeline的典型参数是一个packet指针,也就是说,pipeline是针对每

个包来计算它在物理信道上的传输效果的。为了承载

pipiline所需或计算的信道参数,每个包都包含着由transmissiondataattribute(T

DA)的一组值构成的存储区,当包的传输效果计算进入某

一pipelinestage时,系统内核为TDA分配初始值或者根据计算结果来设置TDA值。这一

组TDA值可以为后续的pipelinestage提供计算的依据

OPNET将传输信道划分为三种:点对点链路(pointtopointLink),

总线式链路(busLink)和无线链路(radioLink)

。每一种链路由若干个标准的,缺省的pipelinestage组成。用户可以对缺省的pipeli

nestage进行修改以适应用户所需的信道类型:用户可

以在pipeline里定义自己的TDA,还可以调用系统内核里的支持对TDA进行操作的内核过

程(KP)来编程实现自己的信道模型。

OPNET中缺省的pipelinestage模型文件后缀名为.ps.c,经编译后形成的

目标文件后缀名为.ps.o。所有的三种信道的缺省

pipelinestage文件都存储在<opnet目录>/<版本目录>/models/std/links/文件夹下面

。用户若要自己编写pipelinestage来代替缺省模型

,则需先编写.ps.c后缀的c或c++文件,然后编译形成.ps.o目标文件。

点对点链路的pipeline模型

由四个缺省的pipelinestage组成,具体描述如下:

1)传输时延阶段:模型文件dpt_txdel.ps.c。传输时延描述的是第一个比特发送时间

到最后一个比特发送时间之间的时间间隔。

计算方法:从包里读取传输该包的信道的标志号(ID);有了信道ID后,即可读取信道

的数据速率;读取包的长度;传输时延=包长/数据速

率;把计算而得的传输时延值写到包的TDA里。

2)传播时延阶段:模型文件dpt_propdel.ps.c。传播时延描述的是第一个比特开始发

送时间到第一个比特到达时间之间的时间间隔。

计算方法:从包里读取传输该包的链路标志号(ID);有了链路ID,即可读取链路的"

delay"属性值;把该传播时延值写进包的TDA中;

3)误码数目分配阶段:模型文件dpt_error.ps.c。

计算方法:读取链路的标志号(ID);读取链路的误码率"ber"属性值,即单个比特可能

误码的概率;读取包长;计算"正好发生k个比特误码"

的概率P(k),那么可以得到"至多发生k个比特误码"的概率P=P(0)+P(1)+……+P(

k);产生一个在{0,1}内平均分布的随机数r;如果随

机数r小于等于"至多发生k个比特误码"的概率P,那么就"认定"k就是这个包在信道上传

输的误码数目;如果r大于P,那么就将k的值加1,反复

计算以得到算法能够接受的误码数目;将误码数目写进包的TDA里。

4)纠错阶段:模型文件dpt_ecc.ps.c。

计算方法:读取接收器的标志号(ID);读取接收器能纠正的误码数目门限值"eccthr

eshold"属性值;读取前面计算的错误数目;将错误数目

与纠错门限"eccthreshold"比较,判决该包是否能被正确接收;将判断结果写进包的

TDA里。

总线链路的pipeline模型

由六个缺省的pipelinestage组成,其中第一个阶段针对每个传输只计算一次,而后面

的五个阶段针对各个可能接收到这次传输的接收器分别

计算一次。

具体描述如下:

1)传输时延阶段:模型文件dbu_txdel.ps.c。

计算方法:与点对点链路情况一致。

2)封闭性计算阶段:模型文件dbu_closure.ps.c。

这个阶段的意义在于判断各个接收器节点是否能够接收到这次传输,即链路的封闭性。

针对每个接收器都有一个判断结果。有了这个结果以后

系统内核就可以决定是否再为该接收器执行后面的计算进程。这个判断的好处

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论