静脉中的单播通信
Unicast Communication in Veins
Veins是否支持802.11p单播通信?
我查看了 Veins 框架中 class "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 等人也有 publication。单播通信在 802.11p 中被认为是有害的。是不是因为文中提到的原因,Veins框架不支持单播通信?
Veins 框架不支持单播传输。在出版物 here 的第 IIIC 节中,据报道 MAC Veins 层被扩展以支持单播传输,这意味着正式版本不包括此功能。
该论文发表于 2015 年,而最新版本的 Veins 4.3 于上个月发布。由于最新版本的"Changelog"中没有提到单播传输,这意味着仍然不支持单播传输。
最近在veins 4.7中提供了一个实验性的实现。从 veins 网站的变更日志内容可以看出:
"Add experimental unicast support to IEEE 802.11p"
要使用,您只需在调用 populateWSM 方法时使用接收方的 object id 更新每条消息(参见更多细节的方法签名):
populateWSM(bsm, idReceiver);
另外,需要将Mac1609_4class的useAcks参数设置为真。
只需将此附加行放在 omnetpp.ini 文件中:
*.**.nic.mac1609_4.useAcks = true
但是请务必注意,此实现不适用于频道切换。当尝试 运行 切换频道时,抛出以下错误消息:
Error: Unicast model does not support channel switching -- in module (Mac1609_4)
此致。
Veins是否支持802.11p单播通信?
我查看了 Veins 框架中 class "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 等人也有 publication。单播通信在 802.11p 中被认为是有害的。是不是因为文中提到的原因,Veins框架不支持单播通信?
Veins 框架不支持单播传输。在出版物 here 的第 IIIC 节中,据报道 MAC Veins 层被扩展以支持单播传输,这意味着正式版本不包括此功能。
该论文发表于 2015 年,而最新版本的 Veins 4.3 于上个月发布。由于最新版本的"Changelog"中没有提到单播传输,这意味着仍然不支持单播传输。
最近在veins 4.7中提供了一个实验性的实现。从 veins 网站的变更日志内容可以看出: "Add experimental unicast support to IEEE 802.11p"
要使用,您只需在调用 populateWSM 方法时使用接收方的 object id 更新每条消息(参见更多细节的方法签名):
populateWSM(bsm, idReceiver);
另外,需要将Mac1609_4class的useAcks参数设置为真。 只需将此附加行放在 omnetpp.ini 文件中:
*.**.nic.mac1609_4.useAcks = true
但是请务必注意,此实现不适用于频道切换。当尝试 运行 切换频道时,抛出以下错误消息:
Error: Unicast model does not support channel switching -- in module (Mac1609_4)
此致。