赵力力,李 文,蒋元兵,康宗绪,王建兵
(1.重庆金美通信有限责任公司,重庆 400030;2.军事科学院系统工程研究院,北京 100141)
传输控制协议 /网际协议(Transmission Control Protocol / Internet Protocol,TCP/IP)是不同网络实体实现信息互通的协议族,在20世纪80年代提出并得到迅速发展,已成为现代因特网基础和标准协议[1]。只要遵循TCP/IP协议,不同主机、网络设备之间即使传输介质和操作系统各异,也能实现网内或跨网通信[2]。随着通信技术的迅猛发展,互联网用户数量也在急剧增加,网络不断兴建大量的信息化基础设施,包括各种各样的二层交换机、三层交换机、以太网无源光网络(Ethernet Passive Optical Network,EPON)以及服务器等。此外,大型互联网公司为了给不同地域的用户提供低时延高带宽的可靠服务,在世界各地逐步部署数据服务中心,如Google公司在世界各地部署的数据中心超过30个,这些数据中心内的服务器数量高达4.5×105台[3]。
近年来,网络规模日益剧增,网络流量也在不断增长,根据思科(Cisco)2017年发布的技术白皮书,到2022年,全球联网设备数量将达到人口总数的3倍以上[4]。数据中心之上的应用和数据中心之间的同步都会产生巨大的流量,并且传统的服务器下行数据到客户端模式逐渐被数据中心同步流量所取代。Cisco的研究报告表明,截至2020年,数据中心内的服务器下行数据流量仅为数据中心同步流量的1/3,同时数据中心之间的流量还在急剧增长,每月能够达到330 TB至330 PB,这给数据中心供应商产生了数以亿计的经济成本[5]。在这种背景下,广域网资源利用率成为热点研究课题。
目前,解决广域网资源利用率最成功的方法就是软件定义网络(Software Defined Network,SDN)。2006年,斯坦福大学的Clean Slate课题开始研究SDN技术,McKeown N教授的研究团队提出了OpenFlow的技术概念用于校园网络的试验创新[6]。在SDN的概念中,将网络控制面与转发面进行分离,网络状态被集中控制,底层网络设备提供统一的管理和编程接口供上层应用使用。2009年,MIT Technology Review杂志将SDN评选为未来十大突破性技术之一[7]。
许多大型互联网公司都在广域网中进行了SDN的尝试,以提高网络利用率,并取得了显著的成果。Google采用SDN来改造的就是数据中心之间互联的广域网,改造后的网络被称为B4网络[8]。在B4网络中,每个数据中心都部署物理设备层的物理交换机和局部网络控制层的控制器,而全局控制层的网关和流量工程(Traffic Engineering,TE)服务器则部署在全局统一的控制地。改造之后B4网络的链路带宽利用率接近100%,链路成本大大降低,网络服务更加稳定。
微软公司的软件驱动广域网(software-driver Wide Area Network,SWAN)与 B4 系统基本原理类似,同样利用SDN,通过OpenFlow接口控制开放式网络设备,采用流量工程算法,实现了数据中心私有广域网链路的高效利用。微软声称,与使用多协议标记交换流量工程(Multi-Protocol Label Switching-TE,MPLS-TE)的58.3%带宽利用率相比,SWAN带宽利用率可以达到99%,并且同时提高了数据流转发的公平性和网络更新的速度等[9]。
除了SDN技术外,传统的集成模型技术在流量工程方面具备较好的拓展性和灵活性。利用资源预留 协 议(Resource Reservation Protocol,RSVP) 建 立MPLS-TE隧道,通过多协议标签交换技术来提高网络的带宽利用率[10]。
除了SDN和RSVP外,本文介绍了一种协议无关的源路由技术方法,也可以提高IP数据网络的资源利用率。
在IP网络中,业务数据报文从源节点到目的节点的最优路径是由单播路由协议计算得出,如果网络中存在多条传播路径,则需要从拓扑数据库中去掉最优路径后再次运行最短路径优先(Shortest Path First,SPF)算法,从而计算出次优路径。通过SPF算法可以得到网络内两个节点之间的最短路径,其带来的问题是当网络中任意一条链路状态发生变化后,将引起全网链路数据同步,当业务报文沿着计算出的次优路径传输时会和链路状态泛洪竞争带宽资源。
基于以上考虑,提出一种协议无关的IP业务数据引流方法,该方法采用泛搜索机制来计算次优路径,利用严格的源路由来引导数据流按照次优路径传输。
前向路径探询示意如图1所示,当发送终端的数据业务报文进入三层交换机后,通过匹配关键字段(源IP地址、目的IP地址、源UDP端口号、目的UDP端口号以及服务类型),引导该数据报文进入CPU的软件应用程序,启动根据数据目的IP地址进行前向路径探寻的过程。前向路径探寻采用泛洪方式在排除最优路径指定的出接口后,向三层交换机的其他所有接口发送Explore-Packet(探询报文)。由源三层交换机维护Explore-Packet的序号,每发送一个Explore-Packet,探询序号加1。序号作为查询计数使用,不同的查询计数因前向消息和后向消息的各种判断导致处理方式有所不同,如果三层交换机收到的探询和确认报的序号文小于当前记录序号,则不进行相关处理。
前向探询路径上的所有三层交换机节点收到探寻报文后需要记录报文中的原节点信息、目的节点信息、序号信息、前向邻居IP地址、接口信息以及是否发送确认报文,并在收到确认报文时记录后向邻居IP地址和接口信息。
前向探询报文需要携带每个发送接口的IP地址信息,以便确认报文正确封装;后向确认报文需要携带每个发送接口的IP地址信息,以便业务端引导数据流使用。
后向路径确认示意图如图2所示。前向路径探寻的终点是目的节点的网关三层交换机,该节点判断自身是终点三层交换机的方法是目的节点的IP地址落入直连路由的范围内。当三层交换机收到前向探询报文后,向前向路径的三层交换机依次发送单播后向路径确认报文。网络中的中间三层交换机根据后向确认报文携带的前向路径能够推算出引用的本地信息,获取前向邻居信息后向其发送确认报文。每个三层交换机需要保证后向确认消息不会向同一个出接口发送相同的确认消息,这样才能确保选出的业务次优链路不会重合。
图2 后向路径确认
结合图1和图2所示过程,原始节点终端开始向目的节点终端192.10.14.2发送数据业务。第一跳三层交换机节点A根据五元组信息匹配到相应信息后将符合条件的数据报文进行启动前向路径探寻处理。
节点A以目的节点IP地址192.10.14.2进行查询路由表,取得路由接口,然后向所有非路由接口发送泛洪请求报文。节点C收到此探寻报文后,将报文的源IP地址192.10.11.1的地址记录下来放入探寻报文后,继续沿着非路由接口进行泛洪。节点E收到此探寻报文后,将报文的源IP地址192.10.12.1的地址记录下来放入探寻报文后,继续沿着非路由接口进行泛洪。节点F收到此探寻报文后,因为192.10.14.2的地址落入直连路由的网段内,判断自身是终点三层交换机,开始进行后向路径确认过程。确认报文将依次经过的节点即为前向探寻报文中记录的节点地址:192.10.13.1、192.10.12.1、192.10.11.1。后向确认报文将按照前向探寻报文的反向进行单播逐级传递,最终确认报文到达原始节点A,完成路径确认,得到完成的路径为192.10.11.2,192.10.12.2、192.10.13.2。
三层交换机的前向邻居信息和后向邻居信息完整后启动邻居维护定时器,维护前向和后向节点的邻居关系。当邻居超时脱网后,删除记录的邻居信息。如果前向邻居超时,则三层交换机直接删除记录的邻居信息;如果是后向邻居超时,则需要向申请地节点发送邻居消失通告消息。
业务源通过以上泛搜索机制获取到次优路径上的三层交换机IP地址,并通过严格源路由方式将用户业务数据引导至网关设备。严格源路由规定IP数据要经过路径上的每一个路由器,相邻路由器之间不得有中间路由器,并且经过路由器的顺序不可更改。
如图1和图2所示,经过前向路径探寻和后向路径确认,原始节点A获取了特定业务的规划路径192.10.11.2、192.10.12.2、192.10.13.2。通过严格源路由的方式,为特定业务报文封装特定的IP头部选项。在IP头部选项中将整个路径的IP地址都封装在里面,然后每个接收节点按照标准的IP头部选项处理即可。IP数据报文到达目的三层交换机后,将被恢复为原始IP报文,IP头部选项字段内的内容已被清零,然后继续按照标准路由的方式将该报文送到目的终端计算机。
本文研究了一种协议无关的与业务主路径不重合的次优传输路径生成方法,采用源路由方式引导业务报文按照生成的次优路径从源节点传输到目的节点。该方法在次优路径生成过程中无需获取全网拓扑,并且不占用主路径的链路带宽,非常适用于窄带链路构成的网络。