郑鸿恺,胡建华,宋广佳
(浙江农林大学 暨阳学院,浙江 诸暨)
传统网络在演进过程中受到了诸多的限制,最典型的是网络设备的封闭性。主要表现在网络设备运行的操作系统与应用(App)是相对固定的,从而导致所实现的功能也相对固定。虽然对外保留有少量接口,比如简单网络管理协议(Simple Network Management Protocol,SNMP)接口,但这些很难满足现代网络需求,使得传统网络很难从宏观上对网络进行灵活的调整与部署[1-2]。软件定义网络(Software Defined Network,SDN)的出现给网络注入了新的活力,其提出的转发与控制分离、控制器集中管控、全局调度等思想让网络设备不再封闭,而是提供灵活的转发行为,具体实现何种功能可由控制器来指定,可提供丰富多样的网络功能[3-5]。但不可忽视的是SDN 技术进一步将网络进行分层,将原有的网络设备从单一整体拆分成多个层,而层间通信会给网络带来二外的通信开销,导致网络性能下降。
本文通过理论分析与量化测量的方式将SDN 的Reactive 交换模式数据传输与以太网进行了对比分析。对数据传输过程中涉及到的交换机转发、ARP 协议与ICMP 协议的SDN 实现原理进行了对比分析,并设计了多个实验场景,从延迟、带宽、CPU 和内存开销等角度将Reactive 转发模式与以太网进行了对比实验,剖析了现代SDN技术相对传统以太网技术的优势与不足。
网际层,也可以称之为IP 层,其在网络传输中的重要性不言而喻,它可以说是整个网络体系结构的腰部,起到承上启下的作用,因此有IP over everything 和Everything over IP 这种说法。一般来说,IP 协议负责将数据运输至目标节点,而具体由哪个应用来接收或处理这些数据,由UDP 或者TCP 协议来实现。当然,IP 层不只有Internet Protocol 一种协议,还有ARP、ICMP、RARP 等协议与其配合,共同完成了数据传输的功能。SDN的引入虽然给网络演化带来了更多可能性,但SDN的Reactive 模式导致协议性能下降的问题始终困扰着产业界。
针对SDN 的Reactive 带来的性能下降问题,很多文献都进行了针对性的研究。文献[6]认为Reactive 模式导致控制器和交换机之间的流量大增,随着网络规模扩大,控制器的负载也急剧增加。其提出SDN-TBM方案,将控制器与交换机之间的流量从对称转换为非对称,即对于特定flow,只有起始节点与终点需要和控制器进行交互,而路径上的其他节点不会给控制器带来负载。文献[7]针对Reactive 交换模式导致的SDN 扩展问题,提出了一种量化评估模型,该模型可以计算出每增加一个流,需要在网络中传输的消息数以及每个交换机需要新增的规则数,这为ISP 进行组网和网络升级提供了数据支持。
文献[8]认为,在Reactive 模式的SDN-WAN 中,随着节点数的增加,控制流也会大幅增加,这会引起控制器负载增加,控制面与数据面通信开销和延迟增大。其提出SPRM方案,SPRM利用预计算与预安装流表的方法来提前部署转发路径,同时预计算得到的多条路径也为可能出现的链路失败提供了冗余路径。文献[9]从原始的SDN报文参数基础上抽象出流属性,然后利用反应值和反应表形成一种新的SDN编程框架。利用该框架,可以大幅减少Reactive 模式下由网络规模增大引起的海量路由请求,并缩短了新流的处理时延。在广域网在容灾方面,SDN 的交换机恢复时间需求也要高于以太网交换机,SDN 的时间成本是以太网的2 倍以上[10]。目前的研究表明,有必要将Reactive 模式与以太网在数据传输方面进行量化比较。
实验环境设计如下:
虚拟机2 台,配置为CPU AMD Ryzen 3960x 主频3.8GHz,内存DDR4 4G,硬盘SSD 40G。操作系统Linux Ubuntu,版本18.04;网络拓扑软件Mininet,版本2.3.0d5;SDN 控制器为Ryu,版本4.15;交换机软件为Open vSwitch,版本2.9.2。
实验网络拓扑为线性,即若干交换机串联结构,如图1 所示。实验分为4 个场景进行,每个场景中包括5次测试,测试中网络交换机数量取值在1-9 之间。测试项目包括ARP 过程、ICMP 过程、TCP 数据传输和UDP数据传输。实验采集数据包括延迟、吞吐、CPU和内存开销。
图1 网络拓扑
ARP 实验过程为主机h1 发出ARP Request 报文,该报文是一个广播,然后接收主机h2 的ARP Reply 报文,然后计算ARP 时延,实验结果如图2 所示。
图2 地址解析延迟对比
在以太网中,主机h1 发出的ARP Request 报文,由于帧的目的地址是ffff-fff-fff,所以在以太网交换机上会产生广播,该广播会一直扩散到h2 所在交换机。如果交换机数量为m,每交换机端口数为n,则广播报文量为m*(n-1)。由于在广播过程中所有交换机都会完成MAC地址学习,所以h2 产生的ARP Reply 会以单播的形式到达h1。这一过程总报文量为:
在SDN 中,由于初始流表为空,所以当h1 的ARP Request 到达第一个交换机的时候,交换机会产生packetin 报文到控制器,控制器会通过packetout 来指导交换机进行广播,并下发流表。当广播的ARP Request到达第二个交换机时,会重复发生在第一个交换机上的事件。所以报文总量至少为:
所以ARP 过程在SDN 网络中产生的报文是多于以太网的,增量至少为3 m,且通信延迟也远高于以太网交换机,这在图3 中能明确体现这一点,并且随着网络节点数的增加,这种差距越发明显。
图3 ICMP 延迟对比
由于ICMP 报文是由IP 报文承载的,所以为了封装IP 报文,主机必须要有目标的MAC地址,也就是说ARP过程完成之后才能进行ICMP 报文传送。所以ICMP 报文的时延要高于ARP 时延。随着网络节点数的增加,以太网时延呈线性增长,SDN 环境呈指数增长,如图3 所示。
对于以太网来说是一个单播过程,ICMP 产生的Echo Request 和Echo Reply就是两个普通的帧,由于之前的ARP 过程让交换机完成了MAC 地址学习,所以这两个报文都可以被正常转发,不会引起广播。
对于SDN 网络来说,由于ICMP 报文和ARP 是两种完全不同的协议。所以ICMP 报文会在交换机上产生流表,所以每个Echo Request 报文都会触发packetin 报文到控制器,控制器会产生packetout 报文,并且通过flow mod 报文下发流表。所以总报文量不少于:
本实验过程为h1 传送20GB 数据给h2,然后测试网络吞吐率。这里ARP 过程和IMCP 过程在初期会让SDN交换机有略微影响,但随着MAC 学习的完成和地址主机ARP 缓存的产生,这种影响会逐渐消失。对于以太网来说,只有初期的ARP 过程互让TCP 有略微的延迟。总体来说以太网交换机的吞吐要高于SDN 交换机,可见交换机和控制器的互动过程是影响TCP 效率的,两者的吞吐都随着网络交换机数量的增加而下降,详见图4。
图4 TCP 吞吐对比
本实验中h1 同样是传送20GB 数据给h2,测试网络吞吐率。从图5 可知,在局域网这种丢包率低、可靠性高的网络中,UDP 的传输效率是高于TCP 的。同样,随着网络节点数的增加而下降,以太网环境吞吐率高于SDN环境。
图5 UDP 吞吐对比
如图6 所示,在内存开销方面,以太网和SDN 极为接近,SDN 网络的内存开销略高于以太网,但并不明显,均值差距仅为0.076%。CPU开销方面SDN 网络略高于以太网,均值差距为0.58%。所以可见,对于SDN和以太网来说,在利用硬件性能上,两者几乎相同。
图6 CPU 和内存开销对比
SDN 给网络通信技术带来了巨大的颈进步,尤其是控制器集中管控、灵活多变的App 设计,让网络设备不再封闭,网络扩展性增强,功能丰富多样。但SDN化未必总能带来优势。量化分析与实验表明,由于SDN 控制面与数据面的分离,Reactive 模式下交换机等网络设备的行为需要由控制器来指导,转发表需要依赖制器部署,因此其通信效率受到一定影响,在ARP 协议、ICMP 协议和数据传输方面表现尤为明显,在硬件使用效率上也略低于以太网设备,有针对性的、系统性的优化是推动SDN进一步发展的关键。