目录

论文笔记——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。

SDN MANET的结构

  • 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操作系统

实现细节

修改MAC头

为了实现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\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 次。 结果中显示的平均吞吐量为: $$ \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,解决可能出现的可扩展性问题。