Nv2
Nv2 是 MikroTik 专有的无线协议,使用 TDMA 在 PtMP 网络中实现高效的媒体访问,支持 Atheros 802.11n 和旧版设备而无需硬件升级。它提供动态速率选择、QoS、加密、RADIUS 认证和同步功能,但与其他无线协议不兼容。
Nv2
Nv2 是 MikroTik 为 Atheros 802.11 无线芯片开发的专有无线协议。它基于 TDMA(Time Division Multiple Access)媒体访问技术,与常规 802.11 设备中使用的 CSMA(Carrier Sense Multiple Access)技术相对。TDMA 解决了隐藏节点问题并改善了媒体使用,从而带来更好的吞吐量和延迟——尤其是在 PtMP 网络中。
Nv2 受 Atheros 802.11n 芯片以及从 AR5212 开始的旧版 802.11a/b/g 芯片支持,但不受较旧的 AR5211 和 AR5210 芯片支持。这意味着 11n 和旧版设备可以参与同一网络,并且实现 Nv2 不需要硬件升级。
Nv2 网络中的媒体访问由 Nv2 Access Point 控制。AP 将时间划分为固定大小的 "periods"(周期),然后根据 AP 和客户端上的队列状态动态地将其分为下行(AP 到客户端)和上行(客户端到 AP)部分。上行时间进一步根据已连接客户端的带宽需求在它们之间划分。在每个周期开始时,AP 广播一个调度,告诉客户端何时应该发送以及可以使用多少时间。
为了允许新客户端连接,Nv2 AP 会定期为一个 "unspecified"(未指定)客户端分配上行时间。新客户端使用此时间间隔向 AP 发起注册。然后 AP 估计其自身与客户端之间的传播延迟,并开始定期为该客户端调度上行时间以完成注册和接收数据。
Nv2 基于每个客户端实现动态速率选择,并为数据传输实现 ARQ,从而在 Nv2 链路上实现可靠通信。
对于 QoS,Nv2 支持可变数量的优先级队列,并内置默认 QoS 调度器。这可以通过基于防火墙规则的细粒度 QoS 策略,或使用 VLAN priority 或 MPLS EXP 位在整个网络中传播的优先级信息来补充。
Nv2 协议每个接口最多支持 511 个客户端。
Nv2 Protocol Implementation Status
Nv2 包含以下功能:
| Feature | Description |
|---|---|
| TDMA media access | 用于媒体控制的 Time Division Multiple Access |
| WDS support | 无线分发系统(Wireless Distribution System)兼容性 |
| QoS support | 可变数量的优先级队列 |
| Data encryption | 传输数据的加密 |
| RADIUS authentication | 基于 RADIUS 的认证功能 |
| Statistics fields | 可用的统计和报告字段 |
| Fixed Downlink mode | 支持固定下行链路操作 |
| Uplink/Downlink ratio | 可配置的上行/下行比例支持 |
| Nv2 AP synchronization | AP 同步的实验性支持 |
Compatibility and Coexistence with Other Wireless Protocols
Nv2 协议与任何其他可用的无线协议或实现(无论是基于 TDMA 还是任何其他类型)都不兼容,也不基于它们。这意味着只有支持并启用了 Nv2 的设备才能参与 Nv2 网络。
常规 802.11 设备将无法识别或连接到 Nv2 AP。支持 Nv2 的 RouterOS 设备(即运行 RouterOS 5.0rc1 或更高版本)在发出 scan 命令时会看到 Nv2 AP,但只有在正确配置时才会连接到 Nv2 AP。
由于 Nv2 不使用 CSMA 技术,它可能会干扰在同一信道上运行的其他网络。同样,其他网络也可能干扰 Nv2 网络,因为每个非 Nv2 信号都被视为噪声。
关于兼容性和共存的关键点:
- 只有 RouterOS 设备可以参与 Nv2 网络。
- 只有 RouterOS 设备在扫描时会看到 Nv2 AP。
- Nv2 网络会干扰同一信道上的其他网络。
- Nv2 网络可能会受到同一信道上任何其他网络的影响,无论是否为 Nv2。
- 启用了 Nv2 的设备不会连接到任何其他基于 TDMA 的网络。
How Nv2 compares with Nstreme and 802.11
Nv2 vs 802.11
Nv2 与 802.11 之间的主要区别:
- 媒体访问由 AP 调度——这消除了隐藏节点问题,并允许实施集中式媒体访问策略——AP 控制每个客户端使用多少时间,并可以根据某种策略为客户端分配时间,而不是让每个设备竞争媒体访问。
- 减少传播延迟开销——Nv2 中没有逐帧 ACK——这显著提高了吞吐量,尤其是在长距离链路上,数据帧和随后的 ACK 帧的传播延迟会显著降低媒体使用的有效性。
- 减少每帧开销——Nv2 实现帧聚合和分段,以最大化分配的媒体使用并减少每帧开销(帧间间隔、前导码)。
Nv2 vs Nstreme
Nv2 与 Nstreme 之间的主要区别:
- 减少轮询开销——Nv2 AP 不是轮询每个客户端,而是广播一个上行调度,为多个客户端分配时间;这可以被视为 "group polling"(组轮询)——不会在逐个轮询每个客户端上浪费时间,从而为实际数据传输留下更多时间。这提高了吞吐量,尤其是在 PtMP 配置中。
- 减少传播延迟开销——Nv2 不必逐个轮询每个客户端;这允许基于到客户端的估计距离(传播延迟)创建上行调度,从而使媒体使用最有效。这提高了吞吐量,尤其是在 PtMP 配置中。
- 对延迟的更多控制——减少的开销、可调整的周期大小和 QoS 功能允许对网络中的延迟进行更多控制。
Configuring Nv2
wireless-protocol 设置控制选择和使用哪种无线协议。请注意,此设置的含义取决于接口角色(AP 或客户端),而角色取决于接口 mode 设置。在下面的表格中查找 wireless-protocol 的可能值及其含义。
| value | AP | client |
|---|---|---|
| unspecified | 基于旧的 nstreme 设置建立 nstreme 或 802.11 网络 | 基于旧的 nstreme 设置连接到 nstreme 或 802.11 网络 |
| any | 与 unspecified 相同 | 扫描所有匹配的网络,无论使用什么协议,使用所选网络的协议进行连接 |
| 802.11 | 建立 802.11 网络 | 仅连接到 802.11 网络 |
| nstreme | 建立 Nstreme 网络 | 仅连接到 Nstreme 网络 |
| Nv2 | 建立 Nv2 网络 | 仅连接到 Nv2 网络 |
| Nv2-nstreme-802.11 | 建立 Nv2 网络 | 扫描 Nv2 网络,如果找到合适的网络——连接,否则扫描 Nstreme 网络,如果找到合适的网络——连接,否则扫描 802.11 网络,如果找到合适的网络——连接。 |
| Nv2-nstreme | 建立 Nv2 网络 | 扫描 Nv2 网络,如果找到合适的网络——连接,否则扫描 Nstreme 网络,如果找到合适的网络——连接 |
请注意,wireless-protocol 值 Nv2-nstreme-802.11 和 Nv2-nstreme 并不指定某种混合或特殊类型的协议——这些值的实现是为了简化客户端在必须连接的网络协议可能发生变化时的配置。使用这些值有助于将网络迁移到 Nv2 协议。
大多数 Nv2 设置仅对 Nv2 AP 有意义——Nv2 客户端自动从 AP 适应必要的设置。以下设置与 Nv2 AP 相关:
- Nv2-queue-count - 指定 Nv2 网络中使用的优先级队列数量。更多细节请参见 QoS in Nv2 network。
- Nv2-qos - 控制帧到优先级队列的映射策略。更多细节请参见 QoS in Nv2 network。
- Nv2-cell-radius - 以 km 为单位指定到 Nv2 网络中最远客户端的距离。此设置影响 AP 为客户端发起连接而分配的竞争时隙的大小,以及用于估计到客户端距离的时隙大小。如果此设置太小,距离较远的客户端可能难以连接和/或断开连接并显示 "ranging timeout" 错误。尽管在正常运行期间此设置的影响应该可以忽略不计,但为了保持最大性能,建议非必要不要增大此设置,这样 AP 就不会保留实际上从未使用的时间,而是将其分配给实际数据传输。
- tdma-period-size - 以 ms 为单位指定 Nv2 AP 用于媒体访问调度的时间周期大小。较小的周期可能降低延迟(因为 AP 可以更早地为客户端分配时间),但会增加协议开销,从而降低吞吐量。另一方面——增大周期会提高吞吐量,但也会增加延迟。对于特别长的链路,可能需要增大此值以获得可接受的吞吐量。这种必要性可能是由于下行(从 AP 到客户端)和上行(从客户端到 AP)数据之间存在 "propagation gap"(传播间隙),在此期间不发生数据传输。这个间隙是必要的,因为客户端必须接收来自 AP 的最后一帧——这发生在 AP 传输后的传播延迟之后,只有到这时客户端才能传输——结果,来自客户端的帧在客户端传输后的传播延迟之后到达 AP(因此间隙是传播延迟的两倍)。距离越长,每个周期中必要的传播间隙就越大。如果传播间隙占周期的很大一部分,实际吞吐量可能变得无法接受,此时应以增加延迟为代价增大周期大小。基本上,必须仔细选择此设置的值,以最大化吞吐量,同时将延迟保持在可接受的水平。
- Nv2-mode - 指定使用动态还是固定的下行/上行比例。默认值为 "dynamic-downlink"。
"sync-master" - 作为 nv2-mode=fixed-downlink 工作(因此使用 nv2-downlink-ratio),但允许 slave 同步到此 master;"sync-slave" - 尝试同步到 master(或已同步的 slave),并从 master 适应 period-size 和 downlink ratio 设置。
- Nv2-downlink-ratio - 指定 Nv2 下行比例。上行比例根据 downlink-ratio 值自动计算。使用 dynamic-downlink 模式时,当链路完全饱和时也会使用 downlink-ratio。最小值为 20,最大值为 80。默认值为 50。
以下设置在 Nv2 AP 和 Nv2 客户端上都重要:
- Nv2-security - 指定 Nv2 安全模式,更多细节请参见 Security in Nv2 network。
- Nv2-preshared-key - 指定要使用的预共享密钥,更多细节请参见 Security in Nv2 network。
- nv2-sync-secret - 指定用于 Nv2 同步的密钥。Master 和 Slave 设备上的密钥应匹配,以建立同步状态。
Migrating to Nv2
使用 wireless-protocol 设置使在现有网络中迁移或评估 Nv2 协议变得非常简单,并尽可能减少停机时间。以下是推荐的步骤:
- 将 AP 升级到支持 Nv2 的版本,但暂不在 AP 上启用 Nv2。
- 将客户端升级到支持 Nv2 的版本。
- 将所有客户端配置为 wireless-protocol=Nv2-nstreme-802.11。客户端仍将使用之前使用的协议连接到 AP,因为 AP 尚未切换到 Nv2。
- 在 AP 上配置 Nv2 相关设置。
- 如果需要使用数据加密和安全认证,请在 AP 和客户端上配置 Nv2 安全相关设置(参见 Security in Nv2 network)。
- 在 AP 上设置 wireless-protocol=Nv2。这会使 AP 切换到 Nv2 协议。客户端现在应使用 Nv2 协议连接。
- 如果遇到某些问题,您可以简单地将其改回 AP 上之前使用的任何协议,从而轻松切换回先前的协议。
- 微调 Nv2 相关设置以获得可接受的延迟和吞吐量。
- 实施 QoS 策略以获得最大性能。
基本故障排除指南:
- 客户端连接困难或断开连接并显示 "ranging timeout" 错误 - 检查 Nv2-cell-radius 设置是否设置得当。
- 长距离链路上意外地低吞吐量,尽管信号和速率都正常 - 尝试增大 tdma-period-size 设置。
Nv2 AP Synchronization
此功能将通过减少相互之间的干扰,让同一位置上的多个 MikroTik Nv2 AP 以更好的方式共存。此功能将同步同一频率上 AP 的发送/接收时间窗口,以便所有已同步的 MikroTik Nv2 AP 在同一时间发送/接收。这允许在同一位置为多个 AP 复用相同的无线频率,从而在频率规划中提供更大的灵活性。
要建立 Nv2 同步设置:
- 对于 Nv2 同步,应选择一个 Master Nv2 AP,并应指定 "nv2-mode=sync-master" 以及 "nv2-sync-secret"。
- 对于 Nv2 Slave AP,应使用与 Master AP 相同的无线频率,并应指定 "nv2-mode=sync-slave" 以及与 Master AP 配置中相同的 "nv2-sync-secret"。
- 当 Master AP 启用时,Slave AP 将尝试通过将指定的 "nv2-sync-secret" 与 Master AP 匹配来开始搜索 Master AP。
- 找到 Master AP 后,Slave AP 将计算到 Master AP 的距离,因为 Master AP 可能位于不同的位置。
- 然后 Slave AP 开始作为 AP 运行,并从已同步的 Master AP 适应 period size 和 downlink ratio。
- 此外,在 Slave AP 运行后,其他 Slave AP 可以使用此 Slave AP 进行同步。
- Slave AP 定期侦听 Master AP,并检查 "nv2-sync-secret" 是否仍然匹配并再次适应参数。如果 Master AP 接口被禁用/启用,所有 Slave 也将被禁用,并将从头开始同步过程。
- 如果 Master AP 停止工作,Slave AP 也将停止工作,因为它们没有同步信息。
Configuration example
Master AP:
/interface/wireless/set wlan1 mode=ap-bridge ssid=Sector1 frequency=5220 nv2-mode=sync-master nv2-preshared-key=clients1 nv2-sync-secret=Tower1
Slave AP:
/interface/wireless/set wlan1 mode=ap-bridge ssid=Sector2 frequency=5220 nv2-mode=sync-slave nv2-preshared-key=clients2 nv2-sync-secret=Tower1
Slave AP 上的 Monitor 接口:
[admin@SlaveAP] /interface/wireless> monitor wlan1
status: running-ap
channel: 5220/20/an
wireless-protocol: nv2
noise-floor: -110dBm
registered-clients: 1
authenticated-clients: 1
nv2-sync-state: synced
nv2-sync-master: 4C:5E:0C:57:84:38
nv2-sync-distance: 1
nv2-sync-period-size: 2
nv2-sync-downlink-ratio: 50
Master AP 上的调试日志:
09:22:08 wireless,debug wlan1: 4C:5E:0C:57:85:BE attempts to sync
Slave AP 上的调试日志:
09:22:08 wireless,debug wlan1: attempting to sync to 4C:5E:0C:57:84:38
09:22:09 wireless,debug wlan1: synced to 4C:5E:0C:57:84:38
QoS in Nv2 network
Nv2 中的 QoS 通过可变数量的优先级队列实现。根据 802.1D-2004 推荐的规则,只有当所有更高优先级的队列为空时,才会考虑某个队列进行传输。在实践中,这意味着首先发送具有更高优先级队列中的所有帧,然后才考虑下一个队列。因此,必须谨慎设计 QoS 策略,以免更高优先级的队列使较低优先级的队列饥饿。
Nv2 网络中的 QoS 策略由 AP 控制,客户端从 AP 适应策略。在 AP 上,QoS 策略通过 Nv2-queue-count 和 Nv2-qos 参数配置。Nv2-queue-count 参数指定使用的优先级队列数量。帧到队列的映射由 Nv2-qos 参数控制。
Nv2-qos=default
在此模式下,传出帧首先由内置 QoS 策略算法检查,该算法根据数据包类型和大小选择队列。如果内置规则不匹配,则根据帧优先级字段选择队列,如同 Nv2-qos=frame-priority 模式。
Nv2-qos=frame-priority
在此模式下,QoS 队列根据帧优先级字段选择。请注意,帧优先级字段不是报头中的某个字段,因此它仅在数据包被给定设备处理时有效。帧优先级字段必须由防火墙规则显式设置,或由帧转发过程从入口优先级隐式设置,例如从 MPLS EXP 位设置。有关帧优先级字段的更多信息,请参见:
根据 802.1D 推荐的用户优先级到流量类别映射,队列基于帧优先级进行选择。映射取决于可用队列的数量(Nv2-queue-count 参数)。例如,如果队列数量为 4,映射如下(请注意此映射与 WMM 使用的映射有多相似):
- Priority 0,3 -> queue 0。
- Priority 1,2 -> queue 1。
- Priority 4,5 -> queue 2。
- Priority 6,7 -> queue 3。
如果队列数量为 2(默认),映射如下:
- priority 0,1,2,3 -> queue 0。
- priority 4,5,6,7 -> queue 1。
如果队列数量为 8(最大可能),映射如下:
- Priority 1 -> queue 0。
- Priority 2 -> queue 1。
- Priority 0 -> queue 2。
- Priority 3 -> queue 3。
- Priority 4 -> queue 4。
- Priority 5 -> queue 5。
- Priority 6 -> queue 6。
- Priority 7 -> queue 7。
有关其他映射、这些映射的原理讨论以及推荐做法,请参见 802.1D-2004。
Security in Nv2 network
Nv2 安全实现具有以下功能:
- 使用 128 位密钥的 AES-CCM 硬件加速数据加密。
- 用于密钥管理的 4 次握手(类似于 802.11i)。
- 预共享密钥认证方法(类似于 802.11i)。
- 定期更新的组密钥(用于广播和多播数据)。
作为专有协议,Nv2 不使用 802.11 的安全机制,因此安全配置不同。使用 Nv2 协议的接口会忽略 security-profile 设置。相反,安全性通过以下接口设置进行配置:
- Nv2-security - 此设置启用/禁用 Nv2 网络中的安全性使用。请注意,当 AP 上启用安全性时,它将不接受禁用了安全性的客户端。同样,启用了安全性的客户端也不会连接到不安全的 AP。
- Nv2-preshared-key - 用于认证的预共享密钥。数据加密密钥在 4 次握手期间从预共享密钥派生。为了两个设备建立连接,预共享密钥必须相同。如果预共享密钥不同,连接将超时,因为远程方将无法正确解释密钥交换消息。