一种sdn域间路由信息传递方法

文档序号:10660733阅读:237来源:国知局
一种sdn域间路由信息传递方法
【专利摘要】本发明公开了一种SDN域间路由信息传递方法,属于互联网技术领域,提高SDN域间路由信息传递的灵活性、可扩展性和可靠性。该方法包括:源SDN域控制器生成视图请求报文,并通过多次转发将请求报文发送至目的SDN域控制器,每次转发过程中,请求报文所在SDN域控制器根据SDN域之间的商业关系将请求报文发送至相邻SDN域控制器;目的SDN域控制器收到请求报文后生成对应的应答报文,并通过多次转发将应答报文发送至源SDN域控制器,每次转发过程中,将其与请求报文转发路径上其上一跳SDN域控制器之间的链路信息加入到应答报文中;源SDN域控制器根据应答报文生成域间网路视图,并根据域间网络视图传递域间多维路由信息。
【专利说明】
一种SDN域间路由信息传递方法
技术领域
[0001]本发明涉及互联网技术领域,具体的说,涉及一种SDN域间路由信息传递方法。
【背景技术】
[0002]软件定义网络(Software Defined Networking,SDN)将传统网络紧親合的控制平面与数据平面相分离,并通过开放网络接口打破厂商锁定的现状,使控制平面可以对不同厂商的网络设备统一编程和管理。同时SDN提供细粒度的流管控策略,支持灵活可定义的转发与管理。当前SDN已在企业网、数据中心网和内容提供商网络中引起了广泛关注并得到了部署。但是,关于域间SDN网络的互连互通研究还没有引起足够的重视。
[0003]目前,域间SDN网络采用传统BGP协议进行域间路由信息的宣告。而在通过BGP协议选路过程中,存在域间链路拥塞的问题,可靠性、可扩展性也较低。
[0004]因此,亟需一种能够提高域间路由信息传递灵活性、可扩展性和可靠性的SDN域间路由ig息传递方法。

【发明内容】

[0005]本发明的目的在于提供一种SDN域间路由信息传递方法,提高SDN域间路由信息传递的灵活性、可扩展性和可靠性。
[0006]本发明提供一种SDN域间路由信息传递方法,该方法包括:
[0007]源SDN域控制器生成域间网络视图请求报文,并通过多次转发将请求报文发送至目的SDN域控制器,每次转发过程中,请求报文所在SDN域控制器根据SDN域之间的商业关系将请求报文发送至相邻SDN域控制器;
[0008]目的SDN域控制器收到请求报文后生成对应的域间网络视图应答报文,并通过多次转发将应答报文发送至源SDN域控制器,每次转发过程中,应答报文所在SDN域控制器基于请求报文转发路径将应答报文发送至相邻SDN域控制器,并将其与请求报文转发路径上其上一跳SDN域控制器之间的链路信息加入到应答报文中;
[0009]源SDN域控制器根据应答报文生成域间网路视图,并根据域间网络视图传递域间多维路由信息。
[0010]在源SDN域控制器生成域间网络视图请求报文的步骤中包括:
[0011]在请求报文中设置TTL值;
[0012]在所述将请求报文发送至相邻SDN域控制器的步骤中包括:
[0013]请求报文所在SDN域控制器在收到请求报文后将所述TTL值减I;
[0014]若所述TTL值减I后大于0,则将请求报文发送至相邻SDN域控制器。
[0015]在所述源SDN域控制器生成域间网络视图请求报文的步骤中包括:
[0016]在请求报文中设置自身SDN域编号;
[0017]在所述将请求报文发送至相邻SDN域控制器的步骤中包括:
[0018]请求报文所在SDN域控制器判断请求报文中是否有自身的SDN域编号;
[0019]若没有,则请求报文所在SDN域控制器将自身SDN域编号加入请求报文并将请求报文发送至相邻SDN域控制器。
[0020]在将所述请求报文发送至相邻SDN域控制器的步骤中包括:
[0021]根据请求报文所在SDN域与向其发送该请求报文的上一跳SDN域的商业关系以及所述请求报文所在SDN域与其相邻下一跳SDN域的商业关系获取请求报文可以通过的下一跳SDN域控制器;
[0022]所述请求报文所在SDN域向该请求报文可以通过的下一跳SDN域控制器发送请求报文。
[0023]在所述将请求报文发送至相邻SDN域控制器的步骤中包括:
[0024]请求报文所在SDN域控制器对其发送了请求报文的下一跳SDN域控制器进行记录,若当前请求报文可以通过的下一跳SDN域控制器已被记录,则不向该已被记录的SDN域控制器发送当前请求报文。
[0025]在所述根据域间网络视图传递域间多维路由信息包括:
[0026]源SDN域应用程序从所述域间网络视图中选择路由信息传递路径;
[0027]源SDN域控制器向所述路由信息传递路径上的SDN域控制器转发源SDN域的多维路由信息;
[0028]所述路由信息传递路径上的SDN域控制器根据所述多维路由信息生成流表规则并下发到域内。
[0029]在所述将请求报文发送至相邻SDN域控制器的步骤中包括:
[0030]请求报文所在SDN域控制器记录向其发送所述请求报文的上一跳SDN控制器和该上一跳SDN控制器发送的所述请求报文可以通过的下一跳SDN域控制器;
[0031 ]在所述将应答报文发送至相邻SDN域控制器的步骤中包括:
[0032]将记录的所述请求报文可以通过的下一跳SDN域控制器发送来的应答报文发送至记录的发送该所述请求报文的上一跳SDN控制器。
[0033]在所述将请求报文发送至相邻SDN域控制器的步骤中包括:
[0034]请求报文所在SDN域控制器设置针对向其发送所述请求报文的上一跳SDN域控制器的应答时间并在发送所述请求报文后开始计时,应答时间为所述请求报文内当前TTL值减I后与相邻SDN域控制器最大往返时延的乘积;
[0035]在所述将应答报文发送至相邻SDN域控制器的步骤中包括:
[0036]在针对某一相邻SDN域控制器的应答时间到时时,应答报文所在SDN域控制器将收至IJ的下一跳为该相邻SDN域控制器的所述应答报文发送至该相邻SDN域控制器。
[0037]本发明提供的SDN域间路由信息传递方法,还包括:
[0038]收到请求报文的SDN域控制器将所述请求报文可以通过的下一跳SDN域控制器告知发送该请求报文的SDN域控制器;
[0039]所述发送该请求报文的SDN域控制器生成包括有其与收到该请求报文的SDN域控制器之间的链路信息和所述该请求报文可以通过的下一跳SDN域控制器的超时应答报文;
[0040]SDN域控制器在应答时间内未收到对应的应答报文,则其通过多次转发将超时应答报文发送至源SDN域控制器,每次转发过程中,超时应答报文所在SDN域控制器基于请求报文转发路径将超时应答报文发送至相邻SDN域控制器,并将其与请求报文转发路径上其上一跳SDN域控制器之间的链路信息和向其发送该超时应答报文的上一跳SDN域控制器加入到所述超时应答报文中。[0041 ]在将所述请求报文发送至相邻SDN域控制器的步骤中包括:
[0042]若收到的多个所述请求报文可以通过的下一跳SDN域控制器相同,则请求报文所在SDN域控制器设置的针对发送该多个所述请求报文的多个上一跳SDN域控制器的应答时间相同;[〇〇43]在所述将应答报文发送至相邻SDN域控制器的步骤中包括:[〇〇44] 应答报文所在SDN域控制器在转发应答报文时,还将发送该应答报文的上一跳SDN 域控制器加入到应答报文中;[〇〇45]在针对某一相邻SDN域控制器的应答时间到时时,应答报文所在SDN域控制器根据收到的下一跳为该相邻SDN域控制器的应答报文以及超时应答报文中的上一跳SDN域控制器信息将应答报文以及超时应答报文合并,并将合并后获得的应答报文发送至该相邻SDN 域控制器。
[0046]本发明提供的SDN域间路由信息传递方法,为域间路由信息交换提供了一种可扩展、可收敛的域间路由协议。该方法遵循现有SDN域之间的商业关系,基于SDN域级别的路径选择方式,通过源域在域间网络中向目的域转发请求报文,目的域按照请求报文路径返回带有途径路径信息的应答报文的方式,获取域间网络视图,SDN域上层应用可以使用该具有细粒度域间信息的域间网络视图定制其需求的域间路径,从而实现域间多维以及多路径路由信息在SDN域网络间传递。并且本发明提供的路由信息传递方法,通过在报文中设置TTL 值和SDN域编号以及在请求报文转发途径的域记录已发送下一跳域的方式减少了请求发送数量、避免了重复发送和循环发送,还通过在每个转发途径的域设置多级应答时钟的方式, 保证了返回域间视图的快速收敛和安全性,从而实现对于域间多路径的聚合。本方法支持 SDN域上层应用可使用具有细粒度域间信息的域间网络视图定制其需求的域间路径,规避了发生网络拥塞和链路故障的路径,提高了域间路由信息传输的可靠性。
[0047]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。【附图说明】
[0048]为了更清楚的说明本发明实施例中的技术方案,下面将对实施例描述中所需要的附图做简单的介绍:
[0049]图1是本发明实施例提供的SDN域间路由信息传递方法的流程图;
[0050]图2是本发明实施例提供的SDN域间路由信息传递方法的体系结构图;
[0051]图3是本发明实施例一提供的发送请求报文的域间SDN网络模型的示意图;[〇〇52]图4是本发明实施例一提供的发送应答报文的域间SDN网络模型的示意图;
[0053]图5是本发明实施例一提供的域间SDN网络模型的域间网络视图;
[0054]图6是本发明实施例二提供的发送超时应答报文的网络模型的示意图。【具体实施方式】
[0055]以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合, 所形成的技术方案均在本发明的保护范围之内。[〇〇56]本发明实施例中,将属于一个管理者管控的SDN域网络称为SDN域,将属于多个管理者管控的SDN域网络称为域间SDN网络。本发明实施例提供一种SDN域间路由信息传递方法,如图1和图2所示,该方法包括:步骤101、步骤102和步骤103。[〇〇57]在步骤101中,源SDN域控制器生成域间网络视图请求报文,并通过多次转发将域间网络视图请求报文发送至目的SDN域控制器。每次转发过程中,请求报文所在SDN域控制器根据SDN域之间的商业关系将请求报文发送至相邻SDN域控制器。由于域间SDN网络具有自治性,源SDN域通过域间网络视图请求报文向其邻居发出申请请求,与邻居协商请求其提供除通过BGP选择的默认路由之外的其他可到达目的前缀的路径信息。若该邻居同意为其提供但该邻居不是直接与目的SDN域相连,则该邻居继续向他的邻居转发域间网络视图请求报文,直到目的SDN域。在请求报文的转发过程中,SDN域控制器基于传统的SDN域商业关系选择转发路径,各SDN域控制器向其邻居域发送报文时需要先判断其与邻居域的商业关系,在商业关系符合传输条件的情况下再进行报文传输。[〇〇58]在步骤102中,目的SDN域控制器收到请求报文后生成对应的域间网络视图应答报文,并通过多次转发将应答报文发送至源SDN域控制器,每次转发过程中,应答报文所在SDN 域控制器基于请求报文转发路径将应答报文发送至相邻SDN域控制器,并将其与请求报文转发路径上其上一跳SDN域控制器之间的链路信息加入到应答报文中。域间网络视图应答报文对应接收到的域间网络视图请求报文生成,并按照该请求报文的转发路径返回源SDN 域控制器,在返回的转发过程中,每个途经的SDN域控制器将自身返回路径的下一跳链路信息加入到应答报文中,该返回路径的下一跳链路也就是请求报文转发路径上一跳链路。在应答报文回到源SDN控制器后,该报文中就包含了其返回路径上的所有链路信息。[〇〇59]在步骤103中,源SDN域控制器根据应答报文中的链路信息生成域间网路视图,并根据域间网络视图传递域间多维路由信息。更为具体的,当源SDN域控制器获得域间网络视图后,它所在域的应用程序可根据网络视图中各链路的信息如带宽等,选择出满足其需求的一条用于域间路由的路径。然后,应用程序调用由源SDN域控制器提供的接口,向选择的路径上的其他域的控制器发送多维路由信息,多维路由信息包括:域间路径序列号和用于描述该应用的多维流信息,如源IP、目的IP以及端口号等。当前互联网是基于目的IP地址前缀进行路由的,而目的IP地址前缀无法区分不同的应用。目前,跨域的视频会议需要保证低延时,而跨域的大数据传递需要高带宽。多维路由信息的传递方法可有效的支持灵活的域间路由策略。当前,不同的应用可由源IP地址和TCP端口号共同标识。域间应用源SDN域控制器将其选择的这条路径的多维路由信息发送给在位于路径上与其相邻的第一个邻域SDN控制器。该邻域控制器收到后,再根据域间路径序列号的顺序,将具体的流信息和路径信息发送给路径上的与其邻接的下一跳的SDN控制器,直至目的前缀所在域的控制器。所有控制器在收到流信息和域间域间路径序列号后,计算自己域内的转发路径,并下发流表规则。当所有域的流表规则都安装好后,数据流就被转发。
[0060]本发明实施例提供的SDN域间多维路由信息传递方法基于SDN域级别的路径选择方式,有利于提高域间路由协议的扩展性。并且通过一种域间视图交换机制来获取并提供域间多路径信息,支持SDN域上层应用使用具有细粒度域间信息的域间网络视图定制其需求的域间路径,并在路径上下发多维路由信息根据不同应用的需求选择域间路径,同时也规避了发生网络拥塞和链路故障的路径,提高了域间路由信息传输的可靠性。
[0061]进一步,由于当前互联网具有50000多个自治域且自治域之间的连接关系十分复杂。若在当前自治域大规模部署SDN网络,源SDN域发出的请求经过一级一级的发送,将会越来越多。因此,为了避免域间多维视图请求爆炸,在步骤101中,源SDN域控制器在请求报文中设置TTL值来限制请求报文的生存期,请求报文所在SDN域控制器在收到请求报文后将 TTL值减1,也就是说每当请求报文路过一个SDN±或,该域的控制器将TTL中的值减1。若TTL值减1后大于0,则该域的控制器将请求报文发送至相邻SDN域控制器。若TTL值减为0,则该报文在网络中消失,从而避免该报文一直生存在网络中不断的传播。[〇〇62] 进一步的,为了避免网络中视图请求报文的循环发送,在步骤101中,源SDN域控制器在请求报文中设置自身SDN域编号,并且在报文转发过程中,请求报文所在SDN域控制器首先判断请求报文中是否有自身的SDN域编号,若没有,则请求报文所在SDN域控制器将自身SDN域编号加入请求报文并将请求报文发送至相邻SDN域控制器。而当请求报文所在SDN 域控制器发现收到的请求报文中有自己的SDN域编号时,则表示该请求报文产生传输循环, 则停止继续转发这个请求报文,从而避免请求报文的循环发送。[〇〇63]在SDN域间网络通信中,一个重要的问题是如何保证域间的隐私性,并不是所有的域间链路都可以返回给每个向他请求的邻居。因此,在步骤101中,请求报文所在SDN域控制器需要根据SDN域之间的商业关系获取其上一跳SDN域控制器发送的请求报文可以通过的下一跳SDN域控制器,然后向该可以通过的下一跳SDN域控制器发送请求报文。在这里定义三种域AS,令FromAS,CurrentAS,ToAS表示三个域之间的商业关系。CurrentAS表示当前接收到域间网络视图请求报文的SDN域。FromAS表示发送报文请求到CurrentAS的SDN域。ToAS 表示CurrentAS将请求报文发送到哪些邻域。
[0064]在本发明的一种实施方式中,依据互联网域间商业关系进行域间多维路由信息的传递。由于目前关于SDN域的研究仅限于同一管控域之内,而真实的互联网是跨域并依据商业关系的。针对这个问题本发明依据现有互联网真实商业关系进行域间多维路由信息的传递。当三个相邻的AS符合以下的商业关系时,报文是可以转发的。
[0065]1、在CurrentAS与FromAS之间的关系是供应商-顾客(Provider-Customer),并且 CurrentAS与ToAS的关系是供应商-顾客或对等-对等(Peer-Peer)。
[0066]2、在CurrentAS与FromAS之间的关系是对等-对等,并且CurrentAS与ToAS之间的商业关系是供应商-顾客。
[0067]3、CurrentAS与 FromAS之间的顾客-供应商(Cus tomer-Provider),并且 Current AS 与ToAS之间的关系是供应商-顾客。[〇〇68]在本发明实施例中,每个SDN域控制器在收到邻域发来的请求报文时,会检查每一个〈FromAS,CurrentAS,ToAS>三者之间的关系是否满足上述要求,然后获得请求报文可以通过的的下一跳SDN域控制器,从而保证域间网络视图返回的安全性。[〇〇69]更为具体的,请求报文所在SDN域控制器会记录向其发送请求报文的上一跳SDN控制器和该上一跳SDN控制器发送的请求报文可以通过的下一跳SDN域控制器。请求报文所在SDN域控制器将向其发送请求报文的上一跳SDN控制器记录在一个应答列表ReplyLi st中, 将ReplyList中的SDN控制器与其基于商业关系可以通过的下一跳SDN控制器的对应关系记录在一个下一跳列表NextHopList中。
[0070]相对应的,该SDN域控制器在转发应答报文时,将记录的请求报文可以通过的下一跳SDN域控制器所发送来的应答报文发送至记录的发送该请求报文的上一跳SDN控制器。即该SDN域控制器查询ReplyList,查看需要向哪些记录的SDN域控制器转发报文,然后查看 NextHopList中的对应关系,将收到的应答报文转发至ReplyList中对应的SDN域控制器。
[0071]进一步的,在步骤101中,请求报文所在SDN域控制器对其发送了请求报文的下一跳SDN域控制器进行记录,若当前请求报文可以通过的下一跳SDN域控制器已被记录,则不再向该已被记录的SDN域控制器发送当前请求报文,避免对一个下一跳SDN域控制器重复发送同一请求报文。当SDN域控制器将收到请求报文转发到一个下一跳SDN域控制器后,将该下一跳SDN域控制器记录在一个等候列表中WaitList中,之后接收到的请求报文可以通过的下一跳SDN±或若和WaitList中所记录的重合,贝lj不向该WaitList中所记录的SDN域控制器转发该之后接收到的请求报文。从而使得请求报文在原SDN域控制器与目的SDN域控制器之间的转发路径上没有重叠路径,减少域间请求报文数量,进而之后按照请求报文路径返回的应答报文的转发路径也没有重叠,从而实现对于SDN域间多路径的聚合。[〇〇72]进一步的,在步骤101中,请求报文所在SDN域控制器设置针对向其发送请求报文的上一跳SDN域控制器的应答时间并在发送请求报文后开始计时,应答时间为请求报文内当前TTL值与相邻SDN域控制器之间最大往返时延的乘积,即针对当前报文TTL值的不同为 SDN域设置多级时钟。进而在步骤102中,在针对某一相邻SDN域控制器的应答时间到时时, 应答报文所在SDN域控制器将收到的下一跳为该相邻SDN域控制器的应答报文发送至该相邻SDN域控制器。若已某一相邻SDN域控制器的应答时间到时候后才收到下一跳为该相邻 SDN域控制器的应答报文,则不进行该应答报文的转发,从而实现对于返回应答报文的筛选,去除转发链路过多或延时过高的路径信息留下符合要求的链路信息用以形成域间网络视图,避免由于各域无法及时收到所有回复导致域间网络视图无法收敛的情况,实现对于 SDN域间多路径的聚合,保证域间视图的快速收敛。[〇〇73]由于当前互联网有5万多个自治域,源域发出的请求经过一级一级的发送,很可能会在网络中不断的发送下去,导致各域无法及时收到所有回复,域间网络视图无法收敛。由于域间视图需要保护域间隐私,本专利中设置多级时钟来保证域间视图的快速收敛。[〇〇74] 进一步的,在步骤101中,请求报文所在SDN域控制器在收到请求报文后将请求报文可以通过的下一跳SDN域控制器告知发送该请求报文的SDN域控制器。在一种具体的实施方式中,收到请求报文的SDN域将对应该请求报文的NextHopLi st中的结果附在ACK消息中返回给发送请求的SDN域。[〇〇75]进而,发送该请求报文的SDN域控制器收到ACK消息后,生成包括有其与收到该请求报文的SDN域控制器之间的链路信息和该请求报文可以通过的下一跳SDN域控制器(即 NextHopList中的结果)的超时应答报文。
[0076]在域间网络返回应答报文时,若SDN域控制器在应答时间内未收到对应的应答报文,则其通过多次转发将超时应答报文发送至源SDN域控制器,每次转发过程中,超时应答报文所在SDN域控制器基于请求报文转发路径将超时应答报文发送至相邻SDN域控制器,并将其与请求报文转发路径上其上一跳SDN域控制器之间的链路信息和向其发送该超时应答报文的上一跳SDN域控制器加入到超时应答报文中。超时应答报文的返回传输机制与应答报文相同,对应请求报文的转发路径进行返回,即超时应答报文所在SDN域控制器查询 ReplyList,查看需要向哪些记录的SDN域控制器转发超时应答报文,然后查看NextHopList 中的对应关系,将收到的超时应答报文转发至R印lyList中对应的SDN域控制器。[〇〇77]在步骤101中,若某一 SDN域控制器收到的多个请求报文可以通过的下一跳SDN域控制器(即NextHopList中的结果)相同,则请求报文所在SDN域控制器设置的针对发送该多个所述请求报文的多个上一跳SDN域控制器的应答时间相同,即请求报文所在SDN域控制器对于NextHopList中结果相同的SDN域控制器设置相同的应答时间,在应答时间到时时,合并收到的上述NextHopList中结果相同的的应答报文,请求报文所在SDN域控制器根据 NextHopList中的对应关系同时将合并后的应答报文发送至对应的多个下一跳。[〇〇78]当请求报文所在的某一 SDN域控制器设置针对向其发送请求报文的上一跳SDN域控制器的应答时间并在转发请求报文后开始计时,若又从另一条路径到达了另一个商业关系(S卩NextHopList中的结果)相同的请求,为避免重复发送请求,该SDN控制器不再转发后到达的请求。但后到达的请求所在的路径有可能长于先到达请求的路径,即发送后到达请求的SDN域控制器上的应答时间可能短于发送先到达请求的SDN域控制器上的应答时间,而根据上述方案由于先后到达的请求报文的NextHopList中的结果相同,因此请求报文所在 SDN域控制器针对发送先后到达的请求报文的上一跳SDN域控制设置的应答时间相同。则当应答报文返回时,该SDN域控制器在已设置的较长的应答时间到时时,将应答报文转发给上述两个向其发送请求报文的SDN域控制器,但此时发送后到达请求的SDN域控制器收到应答报文后,其上的应答时间可能已经超时,应答报文不能进行转发,导致该条返回路径的应答报文无法回到源SDN域控制器,使得域间网络视图丢失部分链路信息。为了避免上述情况的发生,在本发明中,SDN域控制器在发出请求报文后,会收到该请求报文接收方返回的请求报文在该请求报文接收方可以通过的下一跳,并由此生成超时应答报文,在应答报文不能进行转发时,将超时应答报文发出并经由请求报文的路径返回。[〇〇79]相应的,在步骤102中,应答报文所在SDN域控制器在转发应答报文时,还将发送该应答报文的上一跳SDN域控制器加入到应答报文中。在针对某一相邻SDN域控制器的应答时间到时时,应答报文所在SDN域控制器根据收到的下一跳为该相邻SDN域控制器的应答报文以及超时应答报文中的上一跳SDN域控制器信息将应答报文以及超时应答报文合并,并将合并后获得的应答报文发送至该相邻SDN域控制器。
[0080]即基于超时应答报文和应答报文携带的报文返回链路信息和对应链路记录的上一跳,应答报文途径的SDN域控制器或源SDN域控制器可以将收到的具有同样下一跳的多个应答报文、或者具有同样下一跳的超时应答报文和应答报文进行合并,将其中具有相同上一跳SDN域控制器的返回链路信息进行合并,应答报文途径的SDN域控制器可将合并后的应答报文继续发送至其相邻SDN域控制器,源SDN域控制器可在合并后对应生成域间网路视图,将超时应答报文中因超时丢失的链路与应答报文中的链路合并,避免了超时链路的丢失。
[0081]实施例一:[〇〇82]在本实施例中,以一个具体的域间SDN网络模型为例来对本发明实施例提供的SDN域间路由信息传递方法进行更为详细的说明。如图3所示,该域间SDN网络模型包括域1至域 7共7个SDN±或,源SDN域为域1,目的域为域7。[〇〇83]首先域1从BGP协议的RIB-Out表中获取其到域7的路径长度,该长度为4。然后将域间网络视图请求报文的TTL设为4+hopLimit,在本发明实施例中设hopLimit = 2,则域1将 TTL设为6并将它放入请求报文发送至域2和域3。然后,域1存储域2和域3到它的WaitList 中,WaitList =[域2,域3]。[0〇84] 域2收到域1发送来的请求后,域2首先将域1记录在ReplyList里,ReplyList=[域 1]。同时,域2根据域间商业关系计算域1可以通过的下一跳为域4,将域1的下一跳信息记录在NextHopList中:[域1 ]=[域4]。然后域2将TTL-1 = 5作为域2的TTL值。然后将该TTL放入请求报文中发送给域4,并为域1设置一个应答定时器,应答定时器的应答时间为TTL* UnitTime,UnitTime可设为两个SDN±或之间的最大往返时延,可由实际网络测量确定,域1的应答时间5Uni tTime,应答定时器在请求报文发送给域4后开始计时。[0〇85] 同理,域3收到域1发送来的请求后,域3首先将域1记录在ReplyList里。ReplyList =[域1]。同时,域3根据域间商业关系计算域1可以通过的下一跳为域4,将域1的下一跳信息记录在NextHopList中:[域1 ]=[域4]。然后将TTL-1 = 5作为域3的TTL值。然后将该TTL放入请求报文中发送给域4,并为域1设置应答定时器,应答时间5UnitTime。[0〇86] 假设域4首先收到域2发来的请求,域4首先将域2记录在ReplyList里。ReplyList =[域2]。然后域4根据域间商业关系计算域2可以通过的下一跳,如图4所示,域4检查当前请求报文的〈FromAS,CurrentAS,ToAS>三者之间的关系,其中〈域2,域4,域5>是供应商-顾客-供应商的关系,根据域间的Valley-Free原则,即顾客不会为其两个供应商转发流量,不符合本发明实施例上文中定义的可转发流量的商业关系,因此不能转发请求报文,因此域2 可以通过的下一跳为域6,将域2的下一跳信息记录在NextHopList中:[域2]=[域6]。然后将TTL-1=4作为域4的TTL值。然后将该TTL放入请求报文中发送给域6,并将域6记录在 WaitList里,WaitList =[域6],同时为域2设置应答定时器,应答时间4UnitTime。[0〇87] 域4接下来收到域3发来的请求,域4首先将域3记录在ReplyList里,ReplyList = [域2,域3]。然后域4根据域间商业关系计算域3可以通过的下一跳为域5和域6,将域2的下一跳信息记录在NextHopList中:[域2]=[域5,域6]。然后域4查看WaitList,由于域6已经发送过请求,域4就不再向域6发送请求,域5尚未发送过请求,域4将TTL-1 = 4作为域4的TTL 值。然后将该TTL放入请求报文中发送给域5,同时为域3设置应答定时器,应答时间 4UnitTime。域5和域6收到请求报文后将该请求发送给域7。
[0088]在本发明的一种实施方式中,域间网络视图是由多个{链路信息:下一跳域列表} 这样的数据结构组合而成的,其中链路信息为多维信息,包括(域A,域B,带宽,…等),其中 ±或八,域B为域间链路连接的两个SDN±或,用于标识该域间链路。
[0089]如图4所示,当目的域7收到来自域5和域6发来的域间网络视图请求时,如果它愿意提供域间视图,域7将会把域7与域6之间的链路7的链路信息等放入应答报文中发送给域 6,其返回的报文内容为{链路7:[空]},将链路8的信息放入应答消息返回给域5,其返回的报文内容为{链路8:[空]}。报文内容中,链路7表示链路7的信息,包括:链路7连接的两个 SDN域节点:域6,域7以及链路带宽等,[空]表示视图中链路7的下一跳域列表,即发送该应答报文的上一跳SDN域控制器列表,由于域7为目的域,因此其下一跳域列表为空。下文中应答报文均采用上述表示方式。
[0090]域6收到应答报文后,它首先会查看它的ReplyList,查看需要向哪些域回复视图。 域6的ReplyList=[域4]。然后域6查看其存储的域4的NextHopLisLNextHopList [域4]= [域7]。然后域6在域4的应答时间到时时,将域6和域4之间的链路6信息以及收到的域7发来的视图信息即链路7信息一起返回给域4。其返回的报文内容为{链路6:[域7],链路7:[空]}。[〇〇91]域5收到应答报文后,它首先会查看它的ReplyList,查看需要向哪些域回复视图。 域5的ReplyList=[域4]。然后域5查看其存储的域4的NextHopLisLNextHopList [域4]= [域7]。然后域5在域4的应答时间到时时,将域5和域4之间的链路5信息以及收到的域7的视图信息即链路8信息一起返回给域4。其返回的报文内容为{链路5:[域7],链路8:[空]}。 [〇〇92]域4收到域5和域6发来的视图信息后,它首先会查看它的ReplyList,查看需要向哪些域回复视图。域4的ReplyList=[域2,域3]。之后,查看其之前针对域2和域3记录的下一跳信息,域2的记录NextHopList[域2]=[域6],NextHopList[域3]=[域5,域6]。
[0093]接下来,域4在域2的应答时间到时时,将域4与域2之间的链路2的信息加上从域6 收到的聚合后的信息一起发送给域2,该信息为{链路2:[域5],链路6:[域7],链路7:[空]}。
[0094]域4在域3的应答时间到时时,将从域5和域6收到的信息合并,然后将域4与域3之间的链路2的信息加上从域5和域6收到的聚合后的信息一起发送给域3。该信息为{链路4: [域5,域6 ],链路5:[域7 ],链路6:[域7 ],链路7:[空],链路8:[空]}。[〇〇95]同上,域2将域2与域1之间的链路1的信息加上从域4收到的聚合后的信息一起发送给域1,该信息为{链路1:[域2],链路2:[域6],链路6:[域7],链路7:[空]}。域3将域3与域 1之间的链路3的信息加上从域4收到的聚合后的信息一起发送给域1,该信息为{链路3:[域 4 ],链路4:[域5,域6 ],链路5:[域7 ],链路6:[域7 ],链路7:[空],链路8:[空]}。
[0096]最后,域1将从域2和域3收到的视图合并为域间网络视图提供给上层应用,如图5 所示,该域间网络视图包括域1收到的可以到达域7的所有链路信息。域1的上层应用程序根据网络视图中各链路的信息如带宽等,计算出满足其需求的一条到域7的路由路径,如图中路径:{链路1:[域2],链路2:[域6],链路6:[域7],链路7:[空]}。然后,应用程序调用域1控制器提供的接口,向该的路径上的其他域(域2、域4、域6以及域7)的控制器发送用于描述该应用的多维流信息,并将其选择的这条路径的域间路径序列号发送给在位于路径上与其相邻的域2。域2控制器收到后,再根据域间路径序列号的顺序,将具体的流信息和路径信息发送给路径上的域4控制器,直至域7控制器。所有控制器在收到流信息和域间域间路径序列号后,计算自己域内的转发路径,并下发流表规则。当域2、域4、域6以及域7的流表规则都安装好后,数据流就被转发。[〇〇97] 实施例二:[〇〇98]本实施例主要对超时应答报文的传递方法进行详细的说明,其他技术步骤与实施例一基本相同,在此不再赘述。[〇〇99] 如图6所示,域1到域8的最短路径为4,设hopLimi t为1,则域1的TTL为5,域1发送请求到域2和域3。之后域2和域3将收到的TTL减1,各自将域1的应答时间设置为4UnitTime,并将TTL = 4放入请求中发送给后续的SDN±或。之后,域2发送请求到域5,域3发送请求到域4。此时,域5和域4将收到的TTL值减1,分别将域2和域3的应答时间设为3UnitTime。域5收到域2的请求后,计算域2可以经过的下一跳SDN±或,并记录在NextHopList中:[域2] = {域6,域7}, 将NextHopList以及链路3信息通过ACK消息返回给域2,然后发送请求到域6和域7,同时域2 的应答时间开始计时。之后,域3发送请求到域4,域4将域3的应答时间设置为3UnitTime,并发送请求发送给域5。域5收到来自域4的请求后,计算域4可以通过的下一跳SDN域,并记录在NextHopList中:[域4] = {域6,域7},并返回这个NextHopList给域4。之后,由于域4和域2 的NextHopList相同,且域5已经发送请求到域6和域7并已经设置了应答时间,则域5不再重复向域6和域7发送请求,并将域4的应答时间设置与域2相同,即将域4记录在域2的定时器的返回列表中。当请求报文一级一级发送到域8后,各SDN域一级一级向前返回应答报文。当系统到达3UnitTime时,域5应答时间到达,根据定时器的返回列表发送回复消息到域2和域 4。但是,当域5发送的回复消息到达域4时,域4返回域3应答报文的应答时间已在3Un i tT ime 时到时,域4不能讲应答报文域3。则域4到域5之间的链路5丢失。但域4之前已经根据从域5 收到的ACK以及链路5信息生成超时应答报文:{链路5(域4,域5):[域6,域7]},并将这个超时应答报文在3UnitTime时返回给了域3,进而一级一级返回域1。域1收到超时应答报文和应答报文后,域1对比应答报文和超时应答报文中各链路节点的NextHopList中的SDN域值, 进行合并,即通过对比相同的NextHopList{域6,域7},可以将域1-域3-域4-域5这条路径与应答报文中的路径合并起来。
[0100]本发明提供的一种SDN域间路由信息传递方法,为域间路由信息交换提供了一种可扩展、可收敛的域间路由协议。该方法遵循现有SDN域之间的商业关系,基于SDN域级别的路径选择方式,通过源域在域间网络中向目的域转发请求报文,目的域按照请求报文路径返回带有途径路径信息的应答报文的方式,获取域间网络视图,SDN域上层应用可以使用该具有细粒度域间信息的域间网络视图定制其需求的域间路径,从而实现域间多维以及多路径路由信息在SDN域网络间传递。并且本发明提供的路由信息传递方法,通过在报文中设置 TTL值和SDN域编号以及在请求报文转发途径的域记录已发送下一跳域的方式减少了请求发送数量、避免了重复发送和循环发送,还通过在每个转发途径的域设置多级应答时钟的方式,保证了返回域间视图的快速收敛和安全性,从而实现对于域间多路径的聚合。本方法支持SDN域上层应用可使用具有细粒度域间信息的域间网络视图定制其需求的域间路径, 规避了发生网络拥塞和链路故障的路径,提高了域间路由信息传输的可靠性。
[0101]虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化, 但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
【主权项】
1.一种SDN域间路由信息传递方法,其特征在于,包括: 源SDN域控制器生成域间网络视图请求报文,并通过多次转发将请求报文发送至目的SDN域控制器,每次转发过程中,请求报文所在SDN域控制器根据SDN域之间的商业关系将请求报文发送至相邻SDN域控制器; 目的SDN域控制器收到请求报文后生成对应的域间网络视图应答报文,并通过多次转发将应答报文发送至源SDN域控制器,每次转发过程中,应答报文所在SDN域控制器基于请求报文转发路径将应答报文发送至相邻SDN域控制器,并将其与请求报文转发路径上其上一跳SDN域控制器之间的链路信息加入到应答报文中; 源SDN域控制器根据应答报文生成域间网路视图,并根据域间网络视图传递域间多维路由信息。2.根据权利要求1所述的SDN域间路由信息传递方法,其特征在于,在源SDN域控制器生成域间网络视图请求报文的步骤中包括: 在请求报文中设置TTL值; 在所述将请求报文发送至相邻SDN域控制器的步骤中包括: 请求报文所在SDN域控制器在收到请求报文后将所述TTL值减I; 若所述TTL值减I后大于O,则将请求报文发送至相邻SDN域控制器。3.根据权利要求1所述的SDN域间路由信息传递方法,其特征在于,在所述源SDN域控制器生成域间网络视图请求报文的步骤中包括: 在请求报文中设置自身SDN域编号; 在所述将请求报文发送至相邻SDN域控制器的步骤中包括: 请求报文所在SDN域控制器判断请求报文中是否有自身的SDN域编号; 若没有,则请求报文所在SDN域控制器将自身SDN域编号加入请求报文并将请求报文发送至相邻SDN域控制器。4.根据权利要求1所述的SDN域间路由信息传递方法,其特征在于,在将所述请求报文发送至相邻SDN域控制器的步骤中包括: 根据请求报文所在SDN域与向其发送该请求报文的上一跳SDN域的商业关系以及所述请求报文所在SDN域与其相邻下一跳SDN域的商业关系获取请求报文可以通过的下一跳SDN域控制器; 所述请求报文所在SDN域向该请求报文可以通过的下一跳SDN域控制器发送请求报文。5.根据权利要求1所述的SDN域间路由信息传递方法,其特征在于,在所述将请求报文发送至相邻SDN域控制器的步骤中包括: 请求报文所在SDN域控制器对其发送了请求报文的下一跳SDN域控制器进行记录,若当前请求报文可以通过的下一跳SDN域控制器已被记录,则不向该已被记录的SDN域控制器发送当前请求报文。6.根据权利要求1所述的SDN域间路由信息传递方法,其特征在于,在所述根据域间网络视图传递域间多维路由信息包括: 源SDN域应用程序从所述域间网络视图中选择路由信息传递路径; 源SDN域控制器向所述路由信息传递路径上的SDN域控制器转发源SDN域的多维路由信息; 所述路由信息传递路径上的SDN域控制器根据所述多维路由信息生成流表规则并下发到域内。7.根据权利要求4所述的SDN域间路由信息传递方法,其特征在于,在所述将请求报文发送至相邻SDN域控制器的步骤中包括: 请求报文所在SDN域控制器记录向其发送所述请求报文的上一跳SDN控制器和该上一跳SDN控制器发送的所述请求报文可以通过的下一跳SDN域控制器; 在所述将应答报文发送至相邻SDN域控制器的步骤中包括: 将记录的所述请求报文可以通过的下一跳SDN域控制器发送来的应答报文发送至记录的发送该所述请求报文的上一跳SDN控制器。8.根据权利要求7所述的SDN域间路由信息传递方法,其特征在于,在所述将请求报文发送至相邻SDN域控制器的步骤中包括: 请求报文所在SDN域控制器设置针对向其发送所述请求报文的上一跳SDN域控制器的应答时间并在发送所述请求报文后开始计时,应答时间为所述请求报文内当前TTL值减I后与相邻SDN域控制器最大往返时延的乘积; 在所述将应答报文发送至相邻SDN域控制器的步骤中包括: 在针对某一相邻SDN域控制器的应答时间到时时,应答报文所在SDN域控制器将收到的下一跳为该相邻SDN域控制器的所述应答报文发送至该相邻SDN域控制器。9.根据权利要求8所述的SDN域间路由信息传递方法,其特征在于,还包括: 收到请求报文的SDN域控制器将所述请求报文可以通过的下一跳SDN域控制器告知发送该请求报文的SDN域控制器; 所述发送该请求报文的SDN域控制器生成包括有其与收到该请求报文的SDN域控制器之间的链路信息和所述该请求报文可以通过的下一跳SDN域控制器的超时应答报文; SDN域控制器在应答时间内未收到对应的应答报文,则其通过多次转发将超时应答报文发送至源SDN域控制器,每次转发过程中,超时应答报文所在SDN域控制器基于请求报文转发路径将超时应答报文发送至相邻SDN域控制器,并将其与请求报文转发路径上其上一跳SDN域控制器之间的链路信息和向其发送该超时应答报文的上一跳SDN域控制器加入到所述超时应答报文中。10.根据权利要求9所述的SDN域间路由信息传递方法,其特征在于,在将所述请求报文发送至相邻SDN域控制器的步骤中包括: 若收到的多个所述请求报文可以通过的下一跳SDN域控制器相同,则请求报文所在SDN域控制器设置的针对发送该多个所述请求报文的多个上一跳SDN域控制器的应答时间相同; 在所述将应答报文发送至相邻SDN域控制器的步骤中包括: 应答报文所在SDN域控制器在转发应答报文时,还将发送该应答报文的上一跳SDN域控制器加入到应答报文中; 在针对某一相邻SDN域控制器的应答时间到时时,应答报文所在SDN域控制器根据收到的下一跳为该相邻SDN域控制器的应答报文以及超时应答报文中的上一跳SDN域控制器信息将应答报文以及超时应答报文合并,并将合并后获得的应答报文发送至该相邻SDN域控制器。
【文档编号】H04L12/715GK106027388SQ201610320101
【公开日】2016年10月12日
【申请日】2016年5月13日
【发明人】毕军, 付永红, 陈泽
【申请人】清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1