gpt4 book ai didi

c++ - 有没有办法让关联的 MN 到达接入点?

转载 作者:行者123 更新时间:2023-11-28 06:06:25 28 4
gpt4 key购买 nike

我正在使用 INET 并想模拟一个由三个接入点 (AP) 和一个移动节点 (MN) 组成的场景,可能每个 AP 在其范围内都有其他关联的 MN,我想要的是:而 MN (在我的场景中)四处移动并从 AP 获取信标,在与 AP 关联之前,我能否获得与每个 AP 关联的其他 MN 的数量?我探索了许多源代码,我在 ieee80211MgmtAP 中找到了 MACaddressTable 和类似 stalist 的东西,它们对我有用吗?并将它们用作关联 MN 的总数,那么我如何评估stalist的长度?还是 MAC 地址表?

否则我必须在 AP 端放置一个计数器来计数并通过信标帧发送它吗?如果是这样,请给我一些指南或捷径问候....

最佳答案

  1. 在 IEEE 802.11 中,AP 发送有关关联站数量的信息。因此,为了广播此信息,您必须将自己的修改/扩展引入 IEEE 802.11 协议(protocol),例如信标帧中的新字段。
  2. 在 INET 模型中,AP 将自己的站点存储在 staList 中 map 。要在本地计算当前关联站的数量,您可以使用以下代码:

    STAList::const_iterator it;
    int assocSta = 0;
    for (it = staList.begin(); it != staList.end(); ++it) {
    if (it->second.status == ASSOCIATED)
    assocSta++;
    }

如果你想修改标准信标帧,首先,你必须假设你想在信标帧中添加一个新字段的确切位置,例如在现有字段之后,以及该字段应具有的大小。然后:

  • 在类 int noOfAssociatedStas; 中添加一个新字段(例如 Ieee80211BeaconFrameBody)在文件中 Ieee80211MgmtFrames.msg并在 Ieee80211BeaconFrame 中正确长度定义
  • Ieee80211Serializer.ccelse if (dynamic_cast<const Ieee80211BeaconFrame *>(pkt)) 之后添加新字段的序列化,例如:

    unsigned int numSta = Frame->getBody().getNoOfAssociatedStas();
    b.writeByte(numSta); // assuming that the new field is 1 byte length

  • Ieee80211Serializer.ccdeserializecase 0x80: //ST_BEACON 之后添加新字段的反序列化例如:
    unsigned int numSta = b.readByte();

请注意,添加新字段的位置(第二个项目符号)必须与读取它的位置(第三个项目符号)完全匹配。

关于c++ - 有没有办法让关联的 MN 到达接入点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32298968/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com