【问题标题】:Broadcasting in Aloha omnet exampleAloha omnet 示例中的广播
【发布时间】:2018-03-14 04:30:47
【问题描述】:

我必须在aloha项目中进行广播才能找到节点的邻居。

请通过编写我自己的代码告诉我如何在其中进行广播。 我已经尝试过这个 for 循环,但它在那里不起作用。

for(int k=0;k<n;k++)
{
    send(msgB->dup(),"gate$o",k);
}
delete msgB;

谢谢

【问题讨论】:

    标签: omnet++


    【解决方案1】:

    Aloha 是一个无线网络(即主机之间没有连接),因此您应该使用sendDirect() 呼叫向其他主机发送消息。有一个 for 循环很好,但 send() 调用假定用于发送的门连接到目标(不是)。

    【讨论】:

    • 我将 sendDirect() 函数更改为以下循环,但在函数句柄消息 Host.cc 第 62 行 for(int i=0; i dup(), radioDelay, duration, gate("checknode")); } 删除PK;我需要在句柄消息函数中写一些东西吗?
    • 是的。处理接收到的消息的代码。另一方面,Aloha 是一个客户端-服务器示例,而不是 ad-hoc 网络,因此您的要求(即查找邻居节点)在这种情况下没有意义。没有邻居,因为主机从不直接相互通信。 (这就是模拟失败的原因。主机不希望从外界收到任何东西)。您可能为模拟项目选择了错误的起点 (aloha)。
    • 谢谢鲁迪。请你给我推荐一个很好的简单例子,帮助我理解频道访问机制并找到邻居。我必须专门在 MAC 层上处理 ad-hoc 节点时间同步。
    • 我也是计算机网络算法的新手。我必须做很多工作才能理解它们。
    • 如果你想使用无线网络,INET 无线教程是必读的:omnetpp.org/doc/inet/api-current/tutorials/wireless 之后你应该看看 ad-hoc 网络,可能是关于路由的。但这实际上取决于您的确切项目目标(即您的模拟应该有多详细以及您想要实现的目标)。当您在谈论“邻居”时,我假设至少您项目中的无线电应该具有有限的传输范围,因此来自 OMNeT++ 示例(aloha)的简单无线示例将不会这样做。你需要看看 INET。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多