Page 90 - 《软件学报》2020年第9期
P. 90

张雯雯  等:SDN 数据平面软件一致性测试用例生成方法                                                     2711


                                                                    [2]
         博士基于 SANE 实现了采用集中式控制器来管理网络的 Ethane  项目 .SANE/Ethane 项目正是 SDN 和
         OpenFlow 的前身.SDN 的核心在于:利用分层的思想,实现数据平面与控制平面相分离. SDN 的优势在于增强了
         传统网络灵活性,解决了传统网络可控性差的问题.
                                   [3]
             如图 1 所示,SDN 体系架构 分为 3 层:最底层为架构层(也被称为数据层、转发层),主要功能是实现数据
         转发;中间层为控制层,实现 SDN 的主要功能,集中存储网络设备的控制逻辑,其控制逻辑控制数据平面数据包
         转发;最上层为应用层,包含错综复杂的业务应用.控制层的控制逻辑通过 SDN 北向接口(northbound interface,
         简称 NBI)与应用层进行通信,使用户按实际需求定制开发.控制层和数据层通过 SDN 南向接口(southbound
         interface,简称 SBI)进行通信,控制数据层数据转发.


                                       业务层
                                                       应用程序

                                               A        A    A
                                                P     P      P
                                                I      I     I


                                       控制层
                                                    网络服务

                                                            SDN 控制器

                                                           南向接口


                                               网络设备 网络设备 网络设备
                                       数据层
                                                   网络设备    网络设备

                                        Fig.1    SDN network architecture
                                             图 1   SDN 网络架构

             交换机等路由设备是数据层的基本网络元素,不同的转发规则形成元素之间不同的数据通路连接.P4 编程
         语言具有设备无关性,用户无需关心底层元素的实现细节,仅仅通过简明易懂的编程就可以实现快捷开发迅速
         部署.因而,程序员可以通过可编程的控制逻辑控制整个 SDN 网络.具体来说,控制逻辑通过转换应用程序对数
         据层元素进行低级控制,同时提供相关信息,还可以根据策略协调对于有限网络资源的需求,从而真正实现了软
         件定义网络.
         1.2   P4编程语言介绍

             随着 SDN 的发展,OpenFlow 协议作为 SDN 的南向协议,一时间成为流行的标准用于控制平面和数据平面
         的交互.OpenFlow 假设交换机具有固定的、众所周知的行为,通常在交换机 ASIC 的数据表中描述.传统的高性
         能交换芯片支持一组固定的协议,因为它们直接在芯片中实现 IEEE 和 IETF 标准协议.用户无法更改其行为并
         添加新协议或测量和控制数据路径的新方法.
             然而 OpenFlow 并不真正控制交换机行为,它为我们提供了一种填充一组众所周知的表的方法.SDN 通常
         与 OpenFlow 协议相关联,OpenFlow 协议是 SDN 的南向接口,目前已经发布了许多版本,其匹配域个数也不断增
         加,但是每次更新匹配域,对应交换机的协议栈和数据包处理逻辑就要更新,降低了 OpenFlow 协议的可扩展性、
         可编程性,因此对其协议的推广造成负面影响.
                                                                                           [4]
             针对此问题,斯坦福大学的 Nick 教授及其团队研究出 P4 高级编程语言.2015 年 6 月在斯坦福大学 展开
         对 P4 的相关工作.P4 是一种协议独立的语言,提供了编码结构,其范围从通用 CPU 到网络处理器、FPGA 和定
   85   86   87   88   89   90   91   92   93   94   95