本发明涉及通信,具体涉及一种wi-fi集中式协调功能pcf的协议栈仿真方法。
背景技术:
1、当前已有一种新型的基于共享内容和软件锁的仿真机制,其底层就是直接搭载在wi-fi分布式协调功能dcf的协议栈上,并利用协议栈能够开发的功能,来构造一种新型的无线网络仿真方式,因此可以直接对接真实的无线网络环境,大大扩展无线仿真的真实性和使用场景。而wi-fi集中式协调功能pcf的模拟仿真还需克服针对pcf的主要应用场景时,不能有效保证任何网元间的帧交互都与真实场景下保持高度一致;以及由于某一个网元在发送数据的同时,另一个网元发送数据或者接收数据所导致的数据不一致问题。
技术实现思路
1、针对上述存在的技术不足,本发明要解决的技术问题是提供一种wi-fi集中式协调功能pcf的协议栈仿真方法及系统,旨在解决pcf的主要应用场景时,不能有效保证任何网元间的帧交互都与真实场景下保持高度一致;以及由于某一个网元在发送数据的同时,另一个网元发送数据或者接收数据所导致的数据不一致的问题。
2、为解决上述技术问题,本发明采用如下技术方案:在pcf调度ap进入cfp周期的基本过程中,将基于linux平台的进程间共享内存作为无线信道的数据承载手段,并基于信道锁和读写锁实现无线信道上的数据传递;将参与无线信道竞争的网元分别抽象为一个节点,并采用有限状态机根据时间轴上发生的随机事件触发各所述节点的状态迁移,模拟pcf调度机制的基本问答场景、带有数据的问答场景、带有cf-ack帧的问答场景、带有数据和ack帧的问答场景四种场景;其中,pcf调度机制的基本问答场景和带有数据的问答场景下分别只有一个网元sta1和ap保持连接,且无/有ap没有针对sta1的缓存数据;带有cf-ack帧的问答场景下sta1、sta2两个网元与ap保持连接;带有数据和ack帧的问答场景下sta1、sta2两个网元与ap保持连接,且ap缓存了将要发往sta2的数据。
3、进一步地,模拟pcf调度机制的基本问答场景包括:ap同时获取信道锁和读写锁,在共享内存中写入cf-poll帧,目标地址是sta1,释放读写锁和信道锁供其他网元使用,sta1读取到cf-poll帧,目标地址是自身,sta1在共享内存中写入data帧,目的地址为ap,释放信道锁和读写锁,ap读取到data帧,目标地址是自身,同时获取信道锁和读写锁,在共享内存中写入cf-ack帧,目的地址为sta1,ap释放读写锁和信道锁,sta1读取到cf-ack帧,目标地址是自身。
4、进一步地,模拟pcf调度机制的带有数据的问答场景包括:
5、ap获取信道锁和读写锁,在共享内存中写入data+cf-poll帧,目的地址为sta1,释放读写锁和信道锁,sta1读取到data+cf-poll帧,目标地址是自身,sta1获取信道锁和读写锁,在共享内存中写入data+cf-ack帧,目的地址为ap,释放信道锁和读写锁,ap读取到data+cf-ack帧,目标地址是自身,获取信道锁和读写锁,在共享内存中写入cf-ack帧,目标地址是sta1,sta1读取到cf-ack帧,目标地址是自身。
6、进一步地,模拟pcf调度机制的带有cf-ack帧的问答场景包括:
7、ap获取信道锁和读写锁,在共享内存中写入cf-poll帧,目的地址为sta1,释放读写锁和信道锁,sta1读取到cf-poll帧,目标地址是自身,sta2读取到cf-poll帧,目标地址不是自身;sta1获取信道锁、读写锁,在共享内存中写入data帧,目的地址为ap,释放信道锁和读写锁,sta2读取到data帧,目标地址不是自身,ap读取到data帧,目标地址是自身;ap获取信道锁和读写锁,在共享内存中写入cf-poll+cf-ack帧,mac头中ra设定为sta1,ta设定为sta2,释放读写锁和信道锁,sta1读取到cf-poll+cf-ack帧,mac头中ra为自身,sta2读取到cf-poll+cf-ack帧,mac头中ta是自身;sta2在共享内存中写入data帧,目的地址为ap,释放信道锁和读写锁,ap读取到data帧,目标地址是自身,同时获取信道锁和读写锁,在共享内存中写入cf-ack帧,目的地址为sta2,ap释放读写锁和信道锁,sta1读取到cf-ack帧,目标地址是自身。
8、进一步地,模拟pcf调度机制的带有数据和ack的问答场景包括:
9、根据此前ap已接收到sta1发来的data帧,并且ap缓存了将要发往sta2的数据时,则ap获取信道锁和读写锁,在共享内存中写入data+cf-poll+cf-ack帧,mac头中ra为sta1,ta为sta2,释放读写锁和信道锁,sta1读取到data+cf-poll+cf-ack帧,ra是自身,sta2读取到data+cf-poll+cf-ack帧,ta是自身,获取信道锁和读写锁,在共享内存中写入data+cf-ack帧,目的地址为ap,释放信道锁和读写锁,ap读取到data+cf-ack帧,目标地址是自身,获取信道锁和读写锁,在共享内存中写入cf-ack帧,目标地址是sta2,释放信道锁和读写锁,sta1读取到cf-ack帧,目标地址不是自身,sta2读取到cf-ack帧,目标地址是自身。
10、进一步地,将基于linux平台的进程间共享内存作为无线信道的数据承载手段包括:将在无线信道上的数据传输和接收行为分别转化成对于所述共享内存的写入和读取操作;所述数据传输行为和接收行为分别为所述pcf调度ap进入cfp周期的基本过程中发送和接收相应帧的行为。
11、进一步地,采用有限状态机根据时间轴上发生的随机事件触发各所述节点的状态迁移包括:
12、将每个所述节点随时间的推移以及发生的随机事件所产生的变化抽象为初始状态、第一等待状态、第二等待状态、发送状态和接收状态五种状态之间的迁移;
13、将无线信道自身随时间的推移以及发生的随机事件所产生的变化抽象为空闲和忙碌两种状态。
14、进一步地,将每个所述节点随时间的推移以及发生的随机事件所产生的变化抽象为初始状态、第一等待状态、第二等待状态、发送状态和接收状态五种状态之间的迁移包括:
15、处于初始状态中的节点发送/接收完对应场景下的帧类型后等待下次发送/接收时,所述初始状态迁移为第一等待状态,同时信道锁和读写锁均空闲;
16、处于第一等待状态中的节点接收机收到数据时,所述第一等待状态迁移为接收状态,此时信道锁忽略、读写锁由空闲改为占用;
17、处于所述接收状态的节点数据接收完毕时,所述接收状态迁移为初始状态,此时信道锁忽略、读写锁由占用改为空闲;
18、处于所述第一等待状态的节点开始发送数据时,所述第一等待状态转为发送状态,此时信道锁和读写锁均由空闲改为占用;
19、处于所述第一等待状态的节点发送数据完成时,所述第一等待状态迁移为第二等待状态,此时信道锁和读写锁均由占用改为空闲;
20、处于所述处于所述第一等待状态的节点发送数据完成后,对端没收到/接收错误/无需回复时,所述第一等待状态迁移为第二等待状态,此时信道锁和读写锁均为空闲;
21、处于所述第二等待状态的节点再次等待一个单位时间间隔后准备进入下一次发送/接收,所述第二等待状态迁移为初始状态,此时信道锁和读写锁均空闲;
22、其中,所述第一等待状态为需要等待一个pifs时间间隔的状态,所述第二等待状态为需要等待一个单位时间间隔的等待状态。
23、进一步地,将无线信道自身随时间的推移以及发生的随机事件所产生的变化抽象为空闲和忙碌两种状态包括:
24、网元占用信道供自身使用时,所述无线信道处于忙碌状态,此时信道锁占用而与读写锁无关;
25、网元释放信道供其他使用时,所述无线信道处于空闲状态,此时信道锁空闲且与读写锁无关。
26、本发明所达到的有益效果:
27、本发明可高度还原无线信道的pcf调度机制,针对pcf的主要应用场景,此方法都能够有效保证任何网元间的帧交互都与真实场景下保持高度一致,通过读写锁、信道锁的应用,能够有效避免由于某一个网元在发送数据的同时,另一个网元发送数据或者接收数据所导致的数据不一致问题。