1.1 EMANE基本原理
读本文章之前,建议先读core的基本原理,在上篇文章中提到,core中容器通过veth对连接到网桥上,在容器内的一端叫eth0,通过eth0产生流量发到网桥上,然后再到其他容器节点。
而无线节点会多一个ctrl0作为传输网卡,连接到网桥上,如图1.1。emane作为core的一个插件就是起到监听eth0产生的包,并进行处理然后发送到ctrl0。接收端emane收到ctrl0的包,进行处理后发送到eth0。
图1.1 emane架构
其处理过程分两层,即物理层与mac层,通过前端的各种参数,控制丢包,从而实现对无线中进行模拟。
图1.2 emane参数
1.2 物理层原理
如图1.3所示,emane物理层简单来说,在发送端,会在包里面封装各种参数,然后到接收端之后会解包,计算各种东西,然后计算接收功率比较接收灵敏度,进行丢包。可以发现他的物理层做的十分粗糙,已经称不上物理层了。所以针对不同的通信场景来说,需要重构该物理层。
图1.3 emane物理层流程
1.3 MAC原理
如图1.3所示,emane的MAC层有rfpipe,tdma,ieee80211abg模型。简单来说,就是在发送端通过令牌进行流量控制,然后根据包长以及速率进行延迟发送,接收端接收后,通过传播时延等进行延迟处理,然后通过计算信噪比进行丢包。tdma与ieee80211abg在此基础上实现了信道访问控制。ieee80211abg通过csma/ca实现信道访问控制,tdma因为时间精度的问题并不适合做分布式。
图1.4 emane中mac流程