协议处于网络层:
macAddr = arp->getMacAddr(netwAddr);
pkt->setControlInfo(new MacControlInfo(macAddr));

协议处于应用层
方法一:手动收集从网络层送达的数据包,并用map记录之
std::map<int, int> nbrNetwAddrs;
 NetwControlInfo* cInfo;
 cInfo = dynamic_cast<NetwControlInfo*> (msg->removeControlInfo());
 nbrNetwAddrs[src] = cInfo->getNetwAddr(); // 记录邻居的网络层地址

发送时使用nbrNetwAddrs中的网络层地址信息即可

方法二:使用omnet的层次模型直接可以获得网络层地址,但这样就假定了应用层可以通过某种方法获得网络层地址,而协议并不关心
 int netwAddr = simulation.getModule(contact)->getParentModule()->getSubmodule("net")->getId();
 pkt->setControlInfo(new NetwControlInfo(netwAddr));