2

Veins 是否支持 802.11p 单播通信?

我检查了 Veins 框架中“Mac1609_4”类的源代码。参考以下代码片段:

WaveShortMessage*  wsm =  dynamic_cast<WaveShortMessage*>(macPkt-> decapsulate());

long dest = macPkt->getDestAddr();

DBG_MAC << "Received frame name= " << macPkt->getName()
        << ", myState=" << " src=" << macPkt->getSrcAddr()
        << " dst=" << macPkt->getDestAddr() << " myAddr="
        << myMacAddress << std::endl;

if (macPkt->getDestAddr() == myMacAddress) {
    DBG_MAC << "Received a data packet addressed to me." << std::endl;
    statsReceivedPackets++;
    sendUp(wsm);
}

似乎实现的 MAC 层可以接收单播数据包,但我找不到任何方法来发送单播通信所需的 MAC 层确认。请问有什么建议吗?

还有 Christoph Sommer 等人的出版物。单播通信在 802.11p 中被认为是有害的。是不是因为论文中提到的原因,Veins 框架不支持单播通信?

4

2 回答 2

2

最近,在静脉 4.7 中提供了一个实验性实现。可以在静脉网站的更改日志内容中看到: “向 IEEE 802.11p 添加实验性单播支持”

要使用,您只需在调用populateWSM方法时使用接收者的对象 id更新每条消息(有关更多详细信息,请参阅方法签名):

populateWSM(bsm, idReceiver);

此外,您需要将Mac1609_4类的useAcks参数设置为true。只需在 omnetpp.ini 文件中添加这一行:

*.**.nic.mac1609_4.useAcks = true

但是需要注意的是,此实现不适用于频道切换。尝试使用频道切换运行时,会引发以下错误消息:

错误:单播模型不支持频道切换 -- 在模块中 (Mac1609_4)

此致。

于 2019-01-28T18:42:22.153 回答
1

Veins 框架不支持单播传输。在此处出版物的第 IIIC 节中,据报道 Veins 的 MAC 层已扩展为支持单播传输,这意味着官方版本不包含此功能。

该论文发表于 2015 年,而最新版本的 Veins 4.3 于上个月发布。由于最新版本的“变更日志”中没有提到单播传输,这意味着仍然不支持单播传输。

于 2016-03-03T09:35:18.030 回答