论文笔记——Wireless SDN Mobile Ad Hoc Network:from Theory to Practice.


目录

Wireless SDN Mobile Ad Hoc Network:from Theory to Practice.

https://ieeexplore.ieee.org/abstract/document/7996340

2017 IEEE International Conference on Communications (ICC)

自翻:https://github.com/leeshy-tech/PaperTranslate/blob/main/wireless_SDN_mobile.md

D2D (device to device) MANET (移动自组织网络) VANET(车辆自组织网络)

本地流量:信息流的源和目的距离很近的数据连接。

根据思科[1]最近的一份报告,通过无线网络传输的数据流量正在不断增加,不久将超过有线流量。在未来的5G场景中,无线流量的模式将对本地流量产生越来越大的需求。

使用当前的网络标准,即使是本地数据也要通过蜂窝网络传输到一个集中的实体,然后再重新分发。对于本地流量的交换来说,这种方法显然不是最优的。一种更有前途的方法依赖于设备到设备(D2D)技术[4],其中设备可以在MANET或者VANET[6]中以分布式方式组织。

在没有集中控制的情况下,每个节点必须独立行动,做出路由决策,并在移动网络中动态地适应快速变化的拓扑结构。前人提出了一些解决方案:

  • 按需距离矢量(AODV)协议,它仅在需要时才寻找路由路径,适合流量偶发的场景。
  • 优化的链路状态路由(OLSR)协议,当几个源-目的对之间的流量比较正常的情况下,预先定义网络中每个可能的节点对之间的路由的主动协议。
  • 区域路由(ZRP)协议,将网络划分为多个集群,如果源节点和目的节点在同一个集群中,则使用OLSR等主动路由策略;否则,采用反应性策略,如AODV。

OLSR的主要问题:它需要节点之间频繁的控制消息交换,以维护每个节点上更新的网络拓扑。ZRP能够显著减少控制消息的数量,因为更新的拓扑信息只需要在每个集群中的节点之间进行维护,但是当一个包被发送到一个属于不同集群的节点时,会引入显著的延迟,因为新的路径应该以响应式的方式搜索。

在节点具有移动性的条件下,必须在减少开销(网络中交换的控制信息)和完全掌握网络拓扑之间做出权衡,如果要设计更好的传输路线,则要更频繁地交换控制信息,不仅耗费了更多的带宽资源,而且也增加了设备的处理压力。

为了适应这种网络不断变化的移动特性,我们参考SDN范例,将数据平面(包括节点之间本地交换的所有数据流量)与控制平面(包括所有的控制报文和本地路由决策)隔开。他们实现的结构是,设备中有两个用于 DP (data plane)和 CP(control plane) 的无线接口,设备以星形拓扑结构与集中式单元CU连接,CU以集中的方式做出路由决策,几乎实时地了解拓扑。这个框架的两个主要优点:

  • ad hoc网络中引入的开销是最小的,每个节点只需要知道它的邻居并且把该信息传给CU。
  • 根本上减少了每个节点的复杂性,因为路由算法运行在CU。
  • DP MAC协议:采用了ieee802.11的P2P模式独立基本服务集(IBSS)[16],这是ieee802.11的特设模式标准,根据我们的方法的需要,将交换能力完全控制给上层。

  • SDN协议:OpenFlow。

  • 无线交换机:Open vSwitch (OVS)。

  • 控制器:ON开发的Open Network Operating System (ONOS)。

  • 平台:Rasp berry Pi(树莓派)Model B+,Linux操作系统

为了实现SDN架构,需要修改交换机设备的Linux内核,允许CU直接控制节点的路由。

/image/Paper/image-20220305203058587.png

图中左侧为标准 Linux 内核协议栈中从物理层 (PHY) 到应用层 (APP) 的逻辑数据流,

以太网帧通过铜缆(在 PHY 层)到达设备,并被发送到以太网驱动程序(在 MAC 层),在删除 PHY 标头并将它们发送到以太网堆栈之前检查它们的完整性。 在以太网堆栈中,在将数据包发送到路由所在的 NET 层之前,MAC 标头也被删除。

如果从无线接口接收到 Wi-Fi 数据包,则数据包首先被发送到 Wi-Fi 驱动程序,在那里去除 PHY 包头,然后由特定模块处理,将 Wi-Fi 数据包转换为以太网数据包,随后被发送到以太网堆栈。

在 SDN 块中,数据报可以根据从 SDN 控制器接收到的规则进行修改。 特别是,为了控制路由路径,SDN控制器强加的规则涉及修改相应数据报的MAC头。 在这些修改之后,数据报将被发送回 SDN 网桥,并转发到以太网堆栈进行与左侧情况相同的处理。

如图所示,涉及从源节点(S)到目的地 (D)的两跳传输。 数据包由 S 生成。它首先传输到辅助节点 (H),然后由 H 中继到 D。

/image/Paper/image-20220305203811795.png

  • 数据包由主机 S (hS) 生成,它在 IP 报头和 MAC 报头中指定目标主机 D (hD) 的地址。 hS 不知道到达 hD 所需的任何路由信息。 它只是通过有线信道将数据包传输到节点 S (sS) 的交换机,该交换机负责无线传输它。
  • sS 正在运行 SDN 模块,该模块根据从 SDN 控制器接收到的指令修改 MAC 层的源地址和目标地址。 MAC头中的源和目的地分别变成sS和sH(节点H的交换机)。 然后,数据包可以被 sS 发送,也可以被 sH 接收。
  • 由于数据包中的目的MAC地址为sH,因此数据包由sH进一步处理,并向sS发回确认(ACK)。sH 执行类似的过程,修改目的MAC地址,数据包可以被转发到目的节点(sD)的交换机。
  • 最后,sD 根据来自 SDN 控制器的另一条规则,将源 MAC 地址和目标 MAC 地址分别修改为 hS 和 hD。 这个过程,称为 MAC 恢复,是必要的,以便 hD 识别数据包是由 hS 发送的,而不需要来自 SDN 框架的任何进一步信息。

对于大多数 Wi-Fi 适配器,如果 固件的MAC 和目的地不匹配,则固件中会丢弃数据包,因此修改 MAC 地址是多跳传送数据包的必要步骤。

/image/Paper/image-20220305204517460.png

实验场景由具有三个 SDN 节点的 SDN MANET 组成,标记为 S、H 和 D,如上一节所示,部署如图所示。每个节点由一个 RPi Model B+ 和一个 Wi -Fi 适配器(Ralink RT5370 USB)组成,DP 中的传输使用 IEEE 802.11g ad-hoc 模式。 三个 SDN 节点配备了 OVS-2.4.0,并连接到运行 ONOS 控制器的 CU 和我们的 MANET 应用程序 [12]。

第二个网络名为 OLSR MANET,它使用相同位置和相同拓扑的相同三个节点(S、H 和 D)进行比较。 实际上,在第二个网络中,节点没有配备我们的 SDN 框架,但它们正在运行分布式路由策略 OLSR。

在这两个网络中,数据流量都是在节点 S 使用流量生成器 iPerf3 [35] 生成的,该流量生成器会创建一个随机 TCP 流,流向目的地节点 D。实验时间为 N 秒,时间间隔为 1秒。 对于每个间隔 τn,n = 1,…,N,端到端吞吐量以每秒比特 (bps) 为单位测量为: T(τn)= TCP  RWND ×8 RTT  T\left(\tau_{n}\right)=\frac{\text { TCP } \text { RWND } \times 8}{\text { RTT }} 其中 TCP RWND 是间隔 τi 期间 TCP 会话的平均接收窗口大小,RTT 是平均往返时间,即从发送的 TCP 段的第一个比特传输到接收到该 TCP 段的 TCP ACK的最后一个比特所经过的时间。

为了比较 SDN MANET 和 OLSR MANET 在拓扑突然变化的情况下的行为,我们改变了图a的全连接拓扑为图b的多跳拓扑(S和D之间没有直接连接)。实现的方法是,在节点的 MAC 层设计一个模块来模拟 S 和 D 之间的链路故障,该模块可以拒绝来自 S 的所有数据包(对于 节点 D),或来自 D(对于节点 S)。 这样,我们可以在我们的实验中完美地控制 S 和 D 之间的链路何时发生故障,或者何时重新启动。

对于 SDN MANET 和 OLSR MANET,每个实验重复 M = 20 次。 结果中显示的平均吞吐量为: Tˉ(τn)=m=1MTm(τn)M \bar{T}\left(\tau_{n}\right)=\frac{\sum_{m=1}^{M} T_{m}\left(\tau_{n}\right)}{M} 其中 Tm(τn) 是第 m 次实验在时间间隔 τn 期间获得的吞吐量。

/image/Paper/image-20220305205040956.png

在时间 t = 10,S 和 D 之间的直接链路发生故障。 SDN控制器立即收到此事件的通知,并迅速做出反应,将新的SDN规则强加给节点S和H。这样,节点S将所有发往D的数据包发送给H,H将这些数据包转发给D。 SDN MANET 的吞吐量立即恢复到初始吞吐量的一半,因为从 S 到 D 的新路径现在有两跳。

OLSR MANET 能够识别链路故障并通过仅在 t = 25 时将路径更改为 D 来对其做出反应,延迟约 15 秒,从而导致严重的吞吐量中断。 这个结果是意料之中的,因为 OLSR 有一个完全分布式的路由算法,它需要大量时间来更新。

/image/Paper/image-20220305205240650.png

在第二个实验中,我们观察了当初始拓扑是图b中的拓扑时,SDN MANET 和 OLSR MANET 经历的平均吞吐量,即 S 和 D 之间的两跳路径。 在 t = 10 时,S 和 D 之间的直接链接也被激活,如图a所示。 正如预期的那样,我们观察到,在 SDN MANET 的情况下,网络能够迅速对拓扑的变化做出反应,并且吞吐量在 t > 10 时几乎翻了一番。另一方面,OLSR MANET 的延迟约为 20 秒。

/image/Paper/image-20220305205348684.png

在第三个实验中,有一系列连续的拓扑变化。 在 t = 0 时,拓扑是图a中的拓扑(S 和 D 之间有直接链路),然后在 t = 30 时,拓扑变为图b中的拓扑(两跳) ,然后在 t = 60 时再次切换到图a,最后在 t = 90 时切换到图b。

同样在这种情况下,实验重复 20 次,结果取所有试验的平均值。 对于每个拓扑变化,我们观察到 SDN MANET 如何能够几乎立即对拓扑变化做出反应,而 OLSR MANET 对变化的反应有一定的延迟,正如预期的那样,会导致显著的吞吐量损失。

在这项工作中,我们提出了一个 SDN MANET 的实际实现,它提供了 D2D 数据传输的所有优点,同时具有集中网络管理的灵活性。

为了展示 SDN MANET 的优势以及所提供的所有软件的有效性,我们将我们的 SDN MANET 与以分布式方式管理的 ad hoc 网络进行了比较。 我们用几个简单的例子强调了我们方法的显着优势,特别是对于快速变化的网络拓扑。

在未来的工作中,我们计划处理大规模的 SDN MANET,解决可能出现的可扩展性问题。