omnet++:官方文档翻译总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了omnet++:官方文档翻译总结相关的知识,希望对你有一定的参考价值。
翻译总结自:Turning it Into a Real Network - OMNeT++ Technical Articles
接官方文档翻译总结(二),本节主要是真实网络的搭建
1、Part 4 - Turning it Into a Real Network
①多于两个节点的网络:Tictoc10
现在我们要迈出一大步了:创造多个tic module并把它们连入网络。
现在,我们构建一个简单的多节点网络:其中一个节点产生消息发往一个随机方向,该节点继续随机啊发送,……,剩下的节点执行同样的行为,直到它到达一个预先确定好的目的节点。
NED文件需要一些改变:
Txc module需要有多个input、output gates
simple Txc10 { parameters: @display("i=block/routing"); gates: input in[];//定义in[]和out[]标注一系列的进出口 output out[]; }
[ ]把单个gate变成了gate数组。数组大小(数组中gate的数量)决定了网络中输入输出端口的数量:
network Tictoc10 { submodules: tic[6]:Txc10; connections: tic[0].out++ --> {delay=100ms;} --> tic[1].in++; tic[0].in++ <-- {delay=100ms;} <-- tic[1].out++; tic[1].out++ --> { delay = 100ms; } --> tic[2].in++; tic[1].in++ <-- { delay = 100ms; } <-- tic[2].out++; tic[1].out++ --> { delay = 100ms; } --> tic[4].in++; tic[1].in++ <-- { delay = 100ms; } <-- tic[4].out++; tic[3].out++ --> { delay = 100ms; } --> tic[4].in++; tic[3].in++ <-- { delay = 100ms; } <-- tic[4].out++; tic[4].out++ --> { delay = 100ms; } --> tic[5].in++; tic[4].in++ <-- { delay = 100ms; } <-- tic[5].out++; }
上段NED代码中我们构建了6个module作为一个module vector,并将它们相连接,结果拓扑如下:
其中tic[0]产生消息。这一步是在initialize()中实现的,实现过程中需要借助函数getIndex()——这个函数返回module在vector中的下标。
代码的核心是forwardMessage()函数,当一个消息到达时,我们在处理消息的handleMessage()中调用这个函数。这个方法中产生了一个随机数,并将消息从这个随机数代表的gate中发送出去:
void Txc10::forwardMessage(cMessage * msg){ //在本例中,我们选择一个随机gate将消息发送出去 //这个随机数的取值范围为0~size(out[])-1 int n=gateSize("out"); int k=intuniform(0,n-1); EV<<"Forward message "<<msg<<" on port out["<<k<<"]\\n"; send(msg,"out",k); }
当消息到达tic[3]时,它的handleMessage()将会删除该消息(即目标节点是tic[3])
补充:使用过程中,你可能会发现这个简单的路由算法并不是十分有效的——包会经常在两个节点间循环反弹一会儿再发送到别的节点。我们可以改进这个算法——通过某些中间节点后不从输入端口发送出去。提示:cMessage::getArrivalGate(),cGate::getIndex()。另外,如果某个消息不经过端口发送出去,也就是说这个消息是一个self-message,那么getArrivalGate()将返回null。
以上是关于omnet++:官方文档翻译总结的主要内容,如果未能解决你的问题,请参考以下文章
[原][译][osgearth]样式表style中参数总结(OE官方文档翻译)
Hbase最新官方文档中文翻译与注解1-10|hbase简介与配置信息等
Hbase最新官方文档中文翻译与注解1-10|hbase简介与配置信息等