关于无线Mesh网络信道分配策略的探讨

来源:飞鸿范文帮 1W

1 引言

关于无线Mesh网络信道分配策略的探讨

近年来,无线mesh 网络(wireless mesh network,wmn)以其特有的优势引起了人们的广泛关注,成为研究的热点[1]。现有的无线网络协议(如802.11)提供了若干个互不干扰的信道,即这些信道可以同时在同一个范围内使用而不会造成干扰[2]。通过在无线mesh 网络中应用多信道,可以提高系统吞吐量,改善网络性能。

2 无线mesh 网络多信道mac 协议

无线 mesh 网络是一种高容量、高速率和分布式网络。它具有多跳、自组织和自愈合的特点[3]。传统的多跳无线网络大部分都是由单网卡节点组成的,当前的无线mesh 网络,基本上也是采用单信道mac 协议,限制了整个网络数据传输速率与网络容量,不能满足人们日益增长的需求。在无线mesh 网络中,通过使用多信道mac 协议,使不同的节点在不同的信道上同时通信,可以有效的减少碰撞和干扰,从而提高系统的吞吐量。

如图 1 所示,根据不同的硬件平台,多信道mac 协议可分为单接口多信道和多接口多信道。单接口多信道协议节点只有一个接口,任一时刻每个网络节点上只能有一个活跃的信道。但不同的节点可以同时工作在不同的信道上,这样就增加了系统容量。如何协调mesh 节点在多信道的条件下工作,是多信道单接口mac 协议的研究重点。而且节点通信时需要来回切换信道,信道切换产生的时延会导致系统性能下降。此类协议的典型代表是mmac 协议和ssch 协议。多接口多信道mac 协议每个网络节点配置多个接口,每个接口带有独立的mac 层和物理层,可使用不同的频段,节点在这些频段上的通信是完全独立的,可以同时进行。dca(dynamic channel assignment)、mup(multi-radiounification protocal)、pcam(primary channel assignment based mac)可归入这种类型[4]。

3 信道分配策略

本文提出了一种混合信道多信道协议hmcp,它假定网络中每个节点有m 个接口(m≥2),但每个节点的接口总数始终少于信道总数。假设节点上有f(1≤f<m)个接口为“固定的”接口,分配给这些接口的信道也是固定的。节点上固定信道是基于平衡两跳范围内邻节点的固定信道来分配的。其余的信道则动态的分配给其他m-f 个接口,这些接口称为“可换接口”,这些信道间是可以相互切换的。任何节点间的通信都必须在固定信道上进行,因为这样才能保证节点能够监听到消息。如果节点s 想要给节点d 发送消息,首先节点s 会检测它是否与节点d 共享一条固定信道。如果是,节点s 会在此接口连接的固定信道上发送消息给节点d。如果两个节点不在同一条固定信道上,节点s 则需要通过可换接口切换到节点d 的一条固定信道上去,然后再开始通信。当邻节点d 有多个固定收发器的时候,我们可以加一些智能算法让节点s 检测使用哪个固定信道与节点d 通信。

hmcp 简化了需要提前知道信道切换表再在节点间进行协调的过程。每个节点仅仅需要知道与之通信的节点的固定信道即可。混合信道的分配策略也具有信道动态分配的优点,比如说,任何节点能够在任意时间内访问任何信道。同时,该协议保持了固定信道分配策略的简明性,舍弃了可换信道切换策略的复杂性。该信道分配策略的一个主要问题就是增加了广播开销。广播消息需要在节点的所有信道上发送。这样,这个节点周围的所有节点都能收到广播消息。因此,当一个节点要发送一条广播消息时,它会通过固定接口发送一条广播消息的副本到固定信道上。同时,它一个一个发送广播消息的副本到可换接口的各个信道上。

这在发送广播消息的时候会带来时延。

4 信道切换延迟

当一个节点的接口数目少于信道数目时,信道切换则成为必然。但是,可以通过尽可能的减少无线接口上信道切换的次数来减小信道切换的开销。实验中,每个节点有两个无线接口和5 个信道。其中一个接口连接固定信道,而另外一个接口需要在其余的4 个信道间进行切换。当一个节点上的接口收到一个数据包时,它会检测需要往哪个信道上发送这个数据包。

如果在固定信道上发送,那么就交付给无线网卡来处理连接固定信道的接口来发送这个数据包。否则,如果数据包在可换接口的某条信道上发送,需要在可换接口上切换到发送数据包的指定信道上发送。它还需要决定何时可换接口切换到指定信道上。如果当收到数据包后需要在不同的信道上进行传送,则它会在可换接口上不停切换信道到对应信道上,这样,信道切换带来的开销会非常高的。当一个节点要发送多个数据流且这些数据流要经过的下一跳信道不同时这种情况就会发生。此外,如果将一个数据包放在缓存区中等待可换接口切换到指定信道上的时间过长,这种时延也是导致系统性能降低的原因。

4.1 信道切换开销的降低

本文采取的策略是在决定切换信道前先等待一段时间再在可换接口上切换信道,在这个信道上停留的最少时间是一段固定的时间,这段固定时间用chan_min_time 表示,默认设置为20ms,同时,还限定一个数据包的最大时延。这个策略的细节如下。

一 旦在可换接口上切换到另一个信道时, 那么, 在这个信道上至少停留chan_min_time(默认设置为20ms)。事实上,无论何时收到一帧数据需要在可换接口上传输时,它会检测该帧是否要在可换接口的当前信道上传输。这时,有两种情况可能发生:

(1) 如果当前可换接口连接的信道就是要发送该帧的信道,无线网卡直接发送此帧。这么做的前提是,可换接口上没有其他帧正在等待发送到其他信道上并且发送此帧的时间开销没有超过该信道允许的最大时间(chan_max_time 默认设置为60ms) 。

chan_max_time 为一帧数据在可换接口上的信道队列中等待被发送的最大时间。

(2) 另一种情况是,如果当前可换接口连接的信道不是要发送该帧的信道,那么,把该帧放到一个缓冲区中,同时启动一个定时器。定时器运行chan_min_time 后,可换接口可能切换到发送该帧的信道上,新切换过来的信道就会把缓冲区的这帧数据处理掉。

要降低信道切换的时延,可换接口应该花尽可能多的时间在不同信道上发送数据以及尽可能少的空闲时间和信道切换时间。为了降低信道切换的时延,本文约定可换接口上信道间切换最小时间间隔为chan_min_time。这么做是希望在信道上能够发送更多的数据,但是系统负载会增加。对于一个系统来说,如果一条信道上很轻的负载而其他信道上很重的负载,这是不合时宜的。

4.2 信道切换延迟对往返时间的影响

信道切换延迟影响着两节点之间路径的往返时间,往返时间用rtt 表示。由于建立的mesh 网络节点分布密度相当高,节点之间的传播时间可以忽略不计。不同路径的rtt 由这条路径上不同节点间处理和传输数据包的时间决定,而不是由传播时延决定。

多跳路径的rtt 用ping 命令来测量,ping 命令功能是发送icmpecho 数据包[5]。本文将基于hmcp 多跳路径的rtt 与单信道下多跳路径的rtt 进行比较。由于单信道中没有信道切换,比较这两种情况有助于理解信道切换延迟对多跳路径的rtt 影响。单信道网络中,不同路径的rtt 差距只有数毫秒。而在hmcp 实验中,信道切换延迟决定了路径的rtt。

首先,在源节点和目的节点间建立一条正向和反向的单一路径,即从目的节点到源节点的反向路径与正向路径中的节点是相同的,只是节点顺序为逆序。在这种情况下,无论何时路径中信道改变,每个中间节点的信道切换延迟决定了rtt。在混合多信道协议中,信道改变意味着路径上的连续节点监听着不同的固定信道。对于这种路径,中间节点在不同信道上(固定信道在下一跳)传送数据到目的节点并且在不同信道上(固定信道在前一跳)回传给源节点。由于每个节点上只有一个可换信道接口,因此,多跳信道转换中,每个中间节点在传送数据到目的节点和回传给源节点的过程中不得不切换信道。正如前面所提到的,可换接口每切换一次信道时,在信道上停留的时间至少为chan_min_time(目前设置为20ms)。当可换接口上的其他信道接收到数据帧时,chan_min_time 定时器开始计时。

因此,多跳路径的rtt 每增加一跳,rtt 要增加chan_min_time*2。因为中间节点要发送数据到目的节点, 可换接口需要连接到下一跳的接收信道, 在这之前要等待chan_min_time。之后中间节点要回传数据到源节点,需要切换信道到前一跳的接收信道上,这也要等待chan_min_time。因此,每跳rtt 都要增加chan_min_time*2(=40ms)的延迟。表1 显示的是单信道和多信道下的rtt。在hmcp 实验中多跳路径的最小rtt 也符合前面讨论的结论。平均rtt ≈ chan_min_time*2(number_of_hops-1),这里number_of_hops>1。

在hmcp 实验中,多跳路径的最大rtt 值稍微偏高,主要是在网络中广播hello 信息的原因。每个节点广播一条hello 消息,这条hello 信息包含了它的固定信道和邻节点信息。

这些信息每hello_time_interval(默认设置为5s)发送一次。因此,每5s 每个节点都会广播一条信息出去。在hmcp 中,所有信道都会发送广播信息。目前,每个节点使用5 个信道,固定接口发送数据包到固定信道上,可换接口发送数据包到其他四个信道上。每hello_time_interval 节点需要在可换接口上切换3 个信道广播hello 数据包。因此,如果一个数据包在某个信道上要被转发,此时此信道正在发送广播消息,那么这个数据包可能要等3 个信道切换完后才被发送。因此,在某个节点上,如果数据包排列在广播信息后发送,数据包可能会有3*20=60ms 的延迟。最大rtt 之所以偏高的原因就在此。由于在一条路径的不同节点上广播hello 消息,icmpecho 或者icmpechoreply 可能会延迟。ping数据包每分钟发送一次,而hello 消息每5 分钟发送一次。因此,平均每5 个ping 数据包被hello 消息影响一次。其他4 个ping 数据包的rtt ≈chan_min_time*2*(number_of_hops-1),这里number_of_hops>1。

而多跳路径的最小rtt 比理论值稍微低点。这也是由于受hello 消息机制的影响。虽然路径中的节点在可换接口上通过切换信道来广播hello 消息,但是可能有这样一种情况发生:

可换接口广播hello 消息最后切换到的信道正好是发送数据包下一跳的固定信道。在这种情况下,当节点在hello 消息发送完后收到icmpecho 数据包,该节点不需要切换信道来发送icmpecho 数据包到下一跳节点。

5 结论

虽然多信道无线mesh 网络相对于单信道网络来说,系统吞吐量以及网络性能都会有很大的提高。但是多信道无线mesh 网络中节点上的接口需要频繁的切换信道,这给系统带来了一定的开销。

本文提出了信道分配策略以及讨论了信道切换延迟对双接口多信道无线mesh 网络性能的影响。首先,本文给出了信道分配和降低信道切换延迟的策略,接着,实验仿真了信道切换延迟对往返时间的影响,本文将数据流在hmcp 网络与单信道网络中传输的rtt 进行比较。实验仿真结果表明,信道切换延迟决定了数据流的往返时间,其中广播消息对往返时间也会有一定的影响。

热门标签