1、硕 士 学 位 论 文基于数据平面可编程的带状态转发技术研究基于数据平面可编程的带状态转发技术研究I摘要随着互联网业务需求增加和规模增长,数据中心网络这一计算、存储和通信资源的超大规模集合体也面临着自动化管理运维的瓶颈。结合互联网整体架构演进的趋势,软件定义网络和网络功能虚拟化技术开始部署,使得数据中心的承载技术从传统“烟囱式”的堆叠模式,转变为“分布式的运作,集中式的管控”的模式,而基于虚拟化技术进行 underlay 和 overlay 的解耦虽然为多租户提供多样的业务隔离服务,但是也增加了运维的难度,大二层技术的推广无形中使运维的代价指数倍增长。传统的软件定义网络体系将控制功能从数据平面
2、中剥离出来,数据平面仅完成“哑”的转发功能,因此我们通过带状态转发技术提升数据平面的状态表达能力,释放数据平面的处理资源,为数据平面的自动化运维提供基础。本文针对基于数据平面可编程的带状态转发技术及相关应用进行研究,具体包括一下几个方面:首先,研究数据平面带状态转发技术的状态获取、本地状态处理和携带状态信息随业务流数据包进行转发机制,但是由于在传统设备中部署困难且无法灵活实时配置,暂时没有得到推广,结合数据平面可编程技术协议无关、硬件无关和现场实时下发等特点,研究基于数据平面可编程技术的带状态转发技术,并且在硬件环境上搭建带状态转发技术验证,接入真实流量,以在接近真实非线性环境下验证该技术的可
3、行性和可靠性。其次,针对目前软件定义数据中心网络中短时拥塞难以捕捉、出现频率高和造成丢包重传等痛点,以及现有软件定义网络体系下集中控制器至数据平面的处理回路长的问题,结合基于数据平面可编程的带状态转发技术在数据平面直接对短时拥塞问题进行控制,提出了基于带状态转发的短时拥塞控制方法,同时利用集中控制器上的 APP 对业务终端弹出的状态信息所显示的拥塞后续状况进行跟踪评价,如出现无法解决的严重拥塞,则进行全局流量调度。最后,在搭建的技术验证上检验基于带状态转发的短时拥塞控制技术的可行性和有效性。基于 Facebook 数据中心大量部署的 clos 拓扑,构建小型数据中心场景,并且与 DRILL 方
4、法、 HULA 方法和 HEDERA 方法进行比较,实验表明,该方法在网络资源负载均衡性和用户体验质量上皆有较大优化,且数据平面额外的状态处理并没有造成严重的额外负载。关键词:数据平面可编程;带状态转发;软件定义网络;数据中心网络;短时拥塞控制 硕士学位论文IIAbstractWith the increase in the demand for Internet services and the increase in scale, the ultra-large-scale aggregation of computing, storage and communication resour
5、ces in data center networks also faces the bottleneck of automated management and maintenance. Combining with the trend of the evolution of the overall Internet architecture, software defined network and network function virtualization technologies have begun to be deployed, which has transformed th
6、e data center bearing technology from a traditional “chimney-type” stacking model to a model of “distributed operation, centralized management and control”. While the decoupling of underlay and overlay based on virtualization technology provides isolation of multiple service for multi-tenancy, but i
7、t also increases the difficulty of operation and maintenance. The promotion of second-tier technology virtually increases the cost of operation and maintenance by an exponential increase. The traditional software-defined network architecture strips out the control function from the data plane, and t
8、he data plane only completes the “dumb“ forwarding function. Therefore, we use the stateful forwarding technology to improve the data planes state expression capability and release the data planes processing resources. It provides the basis for automatical operation and maintenance. This article foc
9、uses on state forwarding based on data plane programming and related applications, including several aspects:First of all, the state forwarding of the data plane technology, including local state processing and carrying state information with the service flow data packet forwarding mechanism is stud
10、ied, but due to the difficulty of deployment in traditional devices and in flexibly real-time configuration, it has not been popularized for the time being. Date plane programming technology with the features including protocol-independent, hardware-independent, and on-the-spot delivery in real-time
11、. Research on state forwarding technology based on data plane programming technology, and built on the hardware environment with state-forwarding technology, access to real traffic in order to approach verifies the feasibility and reliability of the technology in a true nonlinear environment.Secondl
12、y, to solve the problem of short-time congestion in the software-defined data center network, make use of the stateful forwarding based on data plane programming. The short-time congestion problem is a pain point which result in packet loss and retransmission with high frequency of occurrence, and t
13、he method that the long processing loop from the centralized controller to the data plane in the 基于数据平面可编程的带状态转发技术研究IIIexisting software-defined network system makes it harder. A short-term congestion control method based on state forwarding is proposed, the short-time congestion problem is directly
14、 controlled in the data plane, and the state information populated by the APP on the centralized terminal controller is used. The follow-up status of the displayed congestion is tracked and evaluated. If there is serious congestion that cannot be resolved, global traffic scheduling is performed.Fina
15、lly, the feasibility and effectiveness of the short-term congestion control technology with state forwarding are deployed on the technical verification of the construction. Based on the clos topology of Facebook data centers deployed widely, a small data center scenario is constructed and compared s
16、hort-term congestion control method based on state forwarding with the DRILL method, the HULA method, and the HEDERA method. Experiments show that this method is optimized for both load balancing of network resources and the quality of experience, further more the additional state processing of the
17、data plane does not cause a serious extra load.Keywords:Data Plane Programming; Stateful Forwarding; Software Defined Network; Data Center Network; Short-term Congestion Control 硕士学位论文IV目 录摘要 .IAbstract.II1 绪论 .11.1 研究背景及意义 .11.2 国内外研究现状 .31.2.1 数据平面可编程技术现状 .31.2.2 可编程硬件支持 .41.2.3 P4 语言应用现状 .51.3 本文
18、的主要内容及结构安排 .52 软件定义数据中心网络相关研究 .72.1 软件定义数据中心网络总体架构 .72.2 软件定义数据中心网络功能模块 .82.3 软件定义数据中心网络拓扑 .92.4 软件定义数据中心网络流量特性 .102.5 软件定义数据中心网络拥塞问题 .122.6 数据中心网络拥塞控制方法 .122.7 本章小结 .153 基于数据平面可编程的带状态转发技术验证 .163.1 数据包带状态转发流程 .163.1.1 状态测量和获取流程 .163.1.2 带状态转发过程 .173.1.3 带状态转发包格式 .183.2 带状态转发技术验证 .213.2.1 技术验证总体流程 .2
19、23.2.2 基于智能网卡的可编程数据平面设计 .223.2.3 控制平面设计 .243.2.4 应用服务器和客户端接入 .293.2.5 状态信息数据库接入 .293.2.6 状态信息提取验证 .293.3 本章小结 .324 基于带状态转发的数据中心短时拥塞控制方法 .334.1 短时拥塞问题概述 .334.2 基于带状态转发的短时拥塞控制方法 .344.2.1 本地拥塞发现与流量分割方法 .364.2.2 本地分流规则 .364.2.3 全局调度策略 .384.3 本章小结 .40基于数据平面可编程的带状态转发技术研究V5 实验结果与分析 .415.1 基于 clos 拓扑的 Faceb
20、ook 数据中心场景介绍 .415.2 实验场景网络参数 .425.3 实验比较对象 .435.4 实验结果与分析 .435.4.1 交付成功率对比 .445.4.2 平均端到端时延对比 .455.4.3 流量分布指数对比 .465.4.4 数据平面最大 CPU 占用和内存占用 .475.4.5 仿真结果总结 .495.5 本章小结 .496 总结与展望 .506.1 总结 .506.2 展望 .50参考文献 .52硕士期间研究成果 .55致谢 .56基于数据平面可编程的带状态转发技术研究11 绪论 1.1 研究背景及意义互联网发展至今,已经成为全球政治经济等领域不可或缺的底层基础设施,由上世
21、纪 70 年代开始,互联网体系已经基本发展完全,以 IP 网络和 TCP/IP 体系为核心、各类业务网为边缘接入的形式,构建形成当前的网络架构。传统网络架构通过上层应用的组合和替换,来应对网络承载的多样性但是网络架构的整体演进进程依旧困难重重,原因是核心的网络层协议扩展性不强,协议与硬件设备紧耦合,部署升级困难,导致(1)网络在 QOS 整合、边缘用户随时接入和网络深度管理与运维等方面上暴露大量问题;(2)IPV4/IPV6 的过渡、内容分发网络等新型网络需求的产生 1,使目前传统的 IP网络架构和 TCP/IP 体系很难满足日益发展的网络需求,需要对目前互联网体系暴露出来的问题进行研究。针对
22、传统 IP 网络架构和 TCP/IP 网络体系所暴露出来的问题,目前主要是采用针对性地修补局部“补丁 ”的方式来迭代地解决这些问题,如在传统网络体系中,针对 ad-hoc 网络、 LTE 网络的出现,增加新的无线通信协议和无线通信设备。通过以修补局部痛点的形式来解决传统网络架构下的问题,并没有考虑网络在演进过程中的核心矛盾点,虽然该方法的修补回路短、见效快,显然存在显著的缺陷, (1)修正局部补丁的方法只能在低标度网络下解决区域性的问题;(2)扩展功能比较弱,不利于未来在功能上的增减修改;(3)使得系统更加冗余庞杂,不利于网络管理人员的运维,违背了互联网的体系结构简单设计原则;(4)灵活性等根
23、本问题并未得到解决,不利于网络未来的整体演进。因此我们需要对整体网络体系进行全局重构,以摆脱传统 IP 网络架构和TCP/IP 网络体系的束缚,向未来新型网络平滑过渡。目前针对网络体系的研究项目主要有 NDN(Name Data Networking) 2、XIA(eXpressive Internet Architecture) 3等,软件定义网络( Software Defined Network, SDN) 4面向网络演进需求的、转发行为可编程架构,以其良好的高级编程语言特性和丰富的社区资源,引起了巨大的关注,也是未来网络的一种重要发展方向。硕士学位论文2应 用 平 面控 制 平 面数
24、据 平 面南 向 协 议北 向 接 口负 载 均 衡 防 火 墙 Openstack图 1-1 SDN 架构示意图如上图 1-1 所示,传统 SDN 架构将控制平面和数据平面进行分离,通过集中控制机制对网络进行管理和维护,网络维护者可以对控制平面进行灵活编程,以支持网络功能的不断演进。控制平面和数据平面之间通过南向协议相连接,openflow 协议 5为传统 SDN 体系中主要的南向通信协议,openflow 针对数据平面的行为模式,提出一种新的转发功能抽象形式流表(flow table) ,作为自顶向下的操作接口和数据平面转发功能的抽象描述,数据平面内的 openflow 交换机仅遵循控制平
25、面所下发配置的流表来作为行为规则,进行转发数据包操作。在传统 SDN 网络中,任何网络事件的出现都通过 packet-in 消息上报至控制平面做集中决策,但是随着网络事件的增多,集中式的控制器很容易造成网络管理的瓶颈 6,同时引发控制平面和数据平面之间南向通道的拥塞,openflow 交换机会一直等待控制器的响应,这不仅降低了网络资源的利用率,还增加了数据包的处理时延。因此在 SDN 体系集中控制的条件下,需要一种数据平面的自主处理模式,以释放数据平面的处理能力,缓解控制平面的集中处理压力,同时缩短面向事件的处理时延。数据平面带状态转发 7从传统的 openflow 的典型的“匹配+动作”的转发范式中演进而来,转变为“匹配 +状态+动作”的数据包处理带状态转发模式,增强了数据平面的表达能力,使 SDN 体系下数据平面从原本 “傻瓜式”的转发模式,转变为智能化的,具备维护和处理网络、流和包的状态信息的处理模式。但是,由于传统分布式路由网络和传统 SDN 网络中无法对数据平面进行协