一种分段路由方法及装置转让专利

申请号 : CN201811027995.5

文献号 : CN108768848B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张荣博李昕王妍蒋童贺子荣黄凯波何浩星李洋熊炜伟

申请人 : 北京邮电大学

摘要 :

本发明实施例提供了一种分段路由方法及装置,该方法通过将所述第一端口序列划分成多个转发子段路径和第二端口序列,并利用第二端口序列生成每一所述转发子段路径交换的流表项;将每一所述流表项一一对应下发到每一所述转发子段路径的首位交换机;并根据每一首位交换机的流表项,将流中包头部的网络地址段替换为转发子路径的第二端口序列,按照每一转发子段路径的顺序进行转发,当流中包到达第一端口序列终端时恢复包头部的网络地址段。本发明实施例与典型转发模式兼容,应用本发明实施例能够减少控制器与交换机的交互次数,进而降低控制器的处理量。

权利要求 :

1.一种分段路由方法,其特征在于,应用于控制器,所述方法包括:根据入口交换机发送的流路径服务请求,利用预设的路由策略生成流的转发路径,并生成路径交换机的转发端口序列,作为第一端口序列;所述流路径服务请求为流选择路径的请求;

将所述第一端口序列划分成多个转发子段路径,并生成各个转发子段路径对应的转发端口序列,作为第二端口序列,其中,一个转发子段路径的末位交换机,也是相邻该转发子段路径中下一个转发子段路径的首位交换机;

利用每一所述转发子段路径对应的第二端口序列和每一所述转发子段路径中包含交换机的数量,生成每一所述转发子段路径交换的流表项;

发送应答信息至所述入口交换机,将每一所述流表项一一对应下发到每一所述转发子段路径的首位交换机;并根据每一首位交换机的流表项,将流按照每一转发子段路径的顺序进行转发,在路径出口交换机处恢复流中包头网络地址字段,所述应答信息为完成流选择路径后反馈的信息;

依据服务品质协议和最短路径原则,基于网络拓扑结构和端口映射,确定流的最短转发路径,作为流的转发路径;

所述按照生成的转发路径生成路径交换机的转发端口序列,包括:按照所述转发路径中所要转发交换机的顺序,将每个交换机出口的端口号按照交换机在所述转发路径中的位置进行排序,生成路径交换机的转发端口序列与序列标识;

所述将所述第一端口序列划分成多个转发子段路径,包括:

针对流,按照目标包转发路径中交换机的顺序,将当前交换机设置为端起始交换机,将当前交换机的出口端口号累加至当前段端口路径的长度,作为新的当前段端口路径的长度;所述段端口路径的长度为目标包待转发的交换机出口的端口号的累加;所述目标包为流中的任一IPV4包或IPV6包;

判断当前段端口路径的长度是否小于第一阈值,若当前段端口路径的长度小于第一阈值时,将下一交换机作为当前交换机,将当前交换机的出口端口号累加至当前段端口路径的长度,继续执行判断当前段端口路径的长度是否小于第一阈值的步骤;

若当前段端口路径的长度大于或等于第一阈值时,则判断当前路径的长度是否小于待划分的转发路径的长度;

如果小于,将下一交换机作为当前交换机,返回执行按照目标包转发路径中交换机的顺序,将当前交换机设置为端起始交换机的步骤;

如果等于,则路径分段结束;

所述根据每一首位交换机的流表项,将流按照每一转发子段路径的顺序进行转发,包括:针对流,当目标包的目标限制为1时,查找下一转发子段路径对应的流表项;其中,所述目标限制为用于表征包待要经过转发子段路径中交换机的端口长度之和加1;

根据所述下一转发子段路径对应的流表项,分别更新所述目标包的目标限制、源地址和目的地址,并将所述目标包按照当前转发子段路径对应的流表项指定的端口转出;

当所述目标包的目标限制不为1时,则按照如下第一表达式确定用于表征所述目标包待转发至当前第二转发端口序列中交换机出口的端口号;

所述第一表达式为:S+TTL-1-k;

其中,S为目标包包含的源地址的指针;k为转发子段路径中当前交换机端口的端口号长度,TTL为目标限制;

根据第二表达式,更新所述目标限制;

所述第二表达式为:TTL=TTL-k;

将所述目标包转发至确定的端口号对应的交换机。

2.根据权利要求1所述的方法,其特征在于,所述将所述第一端口序列划分成多个转发子段路径,包括:按照故障快速恢复原则和路径最大长度限制,对所述转发路径进行分段,得到转发子段路径,所述路径最大长度限制为转发子段路径对应的第二端口序列与序列标识的和不能超过流中包头网络地址字段的总和。

3.一种分段路由装置,其特征在于,应用于控制器,所述装置包括:转发路径生成模块,用于根据入口交换机发送的流路径服务请求,利用预设的路由策略生成流的转发路径;所述流路径服务请求为流选择路径的请求;

端口序列生成模块,用于生成路径交换机的转发端口序列,作为第一端口序列;

转发子段路径生成模块,用于将所述第一端口序列划分成多个转发子段路径,并生成各个转发子段路径对应的转发端口序列,作为第二端口序列,其中,一个转发子段路径的末位交换机,也是相邻该转发子段路径中下一个转发子段路径的首位交换机;

流表项生成模块,用于利用每一所述转发子段路径对应的第二端口序列和每一所述转发子段路径中包含交换机的数量,生成每一所述转发子段路径交换的流表项;

下发模块,用于发送应答信息至所述入口交换机,将每一所述流表项一一对应下发到每一所述转发子段路径的首位交换机;

流转发模块,用于根据每一首位交换机的流表项,将流按照每一转发子段路径的顺序进行转发,在路径出口交换机恢复流中包头网络地址字段,所述应答信息为完成流选择路径后反馈的信息;

所述转发路径生成模块包括:

最短转发路径确定模块,用于依据服务品质协议和最短路径原则,基于网络拓扑结构与交换机端口映射,确定流的最短转发路径,作为流的转发路径;

所述端口序列生成模块包括:

转发路径得到子模块,用于按照所述转发路径中所要转发交换机的顺序,将每个交换机出口的端口号按照交换机在所述转发路径中的位置进行排序,生成路径交换机的转发端口序列与序列标识;

所述转发子段路径生成模块包括:

第一累加子模块,用于针对流,按照目标包转发路径中交换机的顺序,将当前交换机设置为端起始交换机,将当前交换机的出口端口号累加至当前段端口路径的长度,作为新的当前段端口路径的长度;所述段端口路径的长度为目标包待转发的交换机出口的端口号的累加;所述目标包为流中的任一IPV4包或IPV6包;

第一判断子模块,用于判断当前段端口路径的长度是否小于第一阈值,若当前段端口路径的长度不为第一阈值时,触发第二累加子模块;若当前段端口路径的长度大于或等于第一阈值时,触发第二判断子模块;

第二累加子模块,用于将下一交换机作为当前交换机,将当前交换机的出口端口号累加至当前段端口路径的长度,触发所述第一判断子模块;

所述第二判断子模块,用于判断当前路径的长度是否小于待划分的转发路径的长度;

如果小于,将下一交换机作为当前交换机,触发累加子模块;如果等于,则路径分段结束;

所述流转发模块包括:

流表项查找子模块,用于针对流,当目标包的目标限制为1时,查找下一转发子段路径对应的流表项;当所述目标包的目标限制不为1时,触发端口号确定子模块;其中,所述目标限制为用于表征包待要经过转发子段路径中交换机的端口长度之和加1;

第一更新子模块,用于根据所述下一转发子段路径对应的流表项,分别更新所述目标包的目标限制、源地址和目的地址,并将所述目标包按照当前转发子段路径对应的流表项指定的端口转出;

所述端口号确定子模块,用于按照如下第一表达式确定用于表征所述目标包待转发至当前第二转发端口序列中交换机出口的端口号;

所述第一表达式为:S+TTL-1-k;

其中,S为目标包包含的源地址的指针;k为转发子段路径中当前交换机端口的端口号长度,TTL为目标限制;

第二更新子模块,用于根据第二表达式,更新所述目标限制;

所述第二表达式为:TTL=TTL-k;

目标包转发子模块,用于将所述目标包转发至确定的端口号对应的交换机。

4.根据利要求3所述的装置,其特征在于,所述转发子段路径生成模块包括:分段子模块,用于按照故障快速恢复原则和路径最大长度限制,对所述转发路径进行分段,得到转发子段路径。

说明书 :

一种分段路由方法及装置

技术领域

[0001] 本发明涉及计算机网络技术领域,特别是涉及一种分段路由方法及装置。

背景技术

[0002] 随着计算机网络技术快速发展,基于策略的流路由以及灵活的包(分组)转发控制方式得到了广泛的关注。但是细粒度与灵活的流转发使得交换机不得不维护大量的流表信
息,这使得管理者不得不开发应用技术来减少交换机需要维护的网络状态信息。
[0003] 基于上述情况,目前出现了各种流汇聚技术,诸如隧道等在核心网络中得到推广应用。现有的隧道方法虽然减少了核心网络中的流状态维护数量,但隧道使得不同服务要
求的流不得不聚合到同一个隧道,从而使得网络服务质量变成粗粒度的控制。

发明内容

[0004] 本发明实施例的目的在于提供一种分段路由方法及装置,能够使得网络服务质量实现低成本细粒度控制。具体技术方案如下:
[0005] 一种分段路由方法,应用于控制器,所述方法包括:
[0006] 根据入口交换机发送的流路径服务请求,利用预设的路由策略生成流的转发路径,并生成路径交换机的转发端口序列,作为第一端口序列;所述流路径服务请求为流选择路径的请求;
[0007] 将所述第一端口序列划分成多个转发子段路径,并生成各个转发子段路径对应的转发端口序列,作为第二端口序列,其中,一个转发子段路径的末位交换机,也是相邻该转发子段路径中下一个转发子段路径的首位交换机;
[0008] 利用每一所述转发子段路径对应的第二端口序列和每一所述转发子段路径中包含交换机的数量,生成每一所述转发子段路径交换的流表项;
[0009] 发送应答信息至所述入口交换机,将每一所述流表项一一对应下发到每一所述转发子段路径的首位交换机;并根据每一首位交换机的流表项,将流按照每一转发子段路径
的顺序进行转发,在路径出口交换机恢复流中包头网络地址字段,所述应答信息为完成流
选择路径后反馈的信息。
[0010] 进一步地,所述利用预设的路由策略生成流的转发路径,包括:
[0011] 依据服务品质协议和最短路径原则,基于网络拓扑结构和端口映射,确定流的最短转发路径,作为流的转发路径。
[0012] 进一步地,所述按照生成的转发路径生成路径交换机的转发端口序列,包括:
[0013] 按照所述转发路径中所要转发交换机的顺序,将每个交换机出口的端口号按照交换机在所述转发路径中的位置进行排序,生成路径交换机的转发端口序列与序列标识。
[0014] 进一步地,所述将所述第一端口序列划分成多个转发子段路径,包括:
[0015] 按照故障快速恢复原则和路径最大长度限制,对所述转发路径进行分段,得到转发子段路径,所述路径最大长度限制为转发子段路径对应的第二端口序列与序列标识的和
不能超过流中包头网络地址字段的总和。
[0016] 进一步地,所述将所述第一端口序列划分成多个转发子段路径,包括:
[0017] 针对流,按照目标包转发路径中交换机的顺序,将当前交换机设置为端起始交换机,将当前交换机的出口端口号累加至当前段端口路径的长度,作为新的当前段端口路径
的长度;所述段端口路径的长度为目标包待转发的交换机出口的端口号的累加;所述目标
包为流中的任一IPV4包或IPV6包;
[0018] 判断当前段端口路径的长度是否小于第一阈值,若当前段端口路径的长度小于第一阈值时,将下一交换机作为当前交换机,将当前交换机的出口端口号累加至当前段端口
路径的长度,继续执行判断当前段端口路径的长度是否小于第一阈值的步骤;
[0019] 若当前段端口路径的长度大于或等于第一阈值时,则判断当前路径的长度是否小于待划分的转发路径的长度;
[0020] 如果小于,将下一交换机作为当前交换机,返回执行按照目标包转发路径中交换机的顺序,将当前交换机设置为端起始交换机的步骤;
[0021] 如果等于,则路径分段结束。
[0022] 进一步地,所述根据每一段连接交换机的流表项,将流按照每一转发子段路径的顺序进行转发,包括:
[0023] 针对流,当目标包的目标限制为1时,查找下一转发子段路径对应的流表项;其中,所述目标限制为用于表征包待要经过转发子段路径中交换机的端口长度之和加1;
[0024] 根据所述下一转发子段路径对应的流表项,分别更新所述目标包的目标限制、源地址和目的地址,并将所述目标包按照当前转发子段路径对应的流表项指定的端口转出;
[0025] 当所述目标包的目标限制不为1时,则按照如下第一表达式确定用于表征所述目标包待转发至当前第二转发端口序列中交换机出口的端口号;
[0026] 所述第一表达式为:S+TTL-1-k;
[0027] 其中,S为目标包包含的源地址的指针;k为转发子段路径中当前交换机端口的端口号长度,TTL为目标限制;
[0028] 根据第二表达式,更新所述目标限制;
[0029] 所述第二表达式为TTL=TTL-k;TTL为目标限制,k为转发子段路径中当前交换机出口的端口号的长度;
[0030] 将所述目标包转发至确定的端口号对应的交换机。
[0031] 一种分段路由装置,应用于控制器,所述装置包括:
[0032] 转发路径生成模块,用于根据入口交换机发送的流路径服务请求,利用预设的路由策略生成流的转发路径;所述流路径服务请求为流选择路径的请求;
[0033] 端口序列生成模块,用于生成路径交换机的转发端口序列,作为第一端口序列;
[0034] 转发子段路径生成模块,用于将所述第一端口序列划分成多个转发子段路径,并生成各个转发子段路径对应的转发端口序列,作为第二端口序列,其中,一个转发子段路径的末位交换机,也是相邻该转发子段路径中下一个转发子段路径的首位交换机;
[0035] 流表项生成模块,用于利用每一所述转发子段路径对应的第二端口序列和每一所述转发子段路径中包含交换机的数量,生成每一所述转发子段路径交换的流表项;
[0036] 下发模块,用于发送应答信息至所述入口交换机,将每一所述流表项一一对应下发到每一所述转发子段路径的首位交换机;
[0037] 流转发模块,用于根据每一首位交换机的流表项,将流按照每一转发子段路径的顺序进行转发,在路径出口交换机恢复流中包头网络地址字段,所述应答信息为完成流选
择路径后反馈的信息。
[0038] 进一步地,所述转发路径生成模块包括:
[0039] 最短转发路径确定模块,用于依据服务品质协议和最短路径原则,基于网络拓扑结构与交换机端口映射,确定流的最短转发路径,作为流的转发路径。
[0040] 进一步地,所述第一端口序列生模块包括:
[0041] 转发路径得到子模块,用于按照所述转发路径中所要转发交换机的顺序,将每个交换机出口的端口号按照交换机在所述转发路径中的位置进行排序,生成路径交换机的转
发端口序列与序列标识。
[0042] 进一步地,所述转发子段路径生成模块包括:
[0043] 分段子模块,用于按照故障快速恢复原则和路径最大长度限制,对所述转发路径进行分段,得到转发子段路径。
[0044] 在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的分段路
由方法。
[0045] 在本发明实施的又一方面,本发明实施例还提供了一种包含应用程序接口的计算机程序产品,当其在网络控制器上运行时,使得其他计算机应用可以执行上述任一所述的
分段路由方法。
[0046] 本发明实施例提供的一种分段路由方法及装置,可以通过将所述第一端口序列划分成多个转发子段路径和第二端口序列,并利用第二端口序列生成每一所述转发子段路径
交换的流表项;发送应答信息至所述入口交换机,将每一所述流表项一一对应下发到每一
所述转发子段路径的首位交换机;并根据每一首位交换机的流表项,将流按照每一转发子
段路径的顺序进行转发,相对于现有技术,本发明实施例提供的方法根据每一首位交换机
的流表项,将流按照每一转发子段路径的顺序进行转发,能够使得网络服务质量实现细粒
度控制。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0048] 图1为本发明实施例提供一种分段路由方法的流程图;
[0049] 图2为本发明实施例提供一种划分转发子段路径方法的流程图;
[0050] 图3为本发明实施例提供一种流转发的流程图;
[0051] 图4为本发明实施例提供一种分段路由装置的流程图;
[0052] 图5为本发明实施例提供一种应用程序系统的结构示意图。

具体实施方式

[0053] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0054] 参见图1,图1为本发明实施例提供一种分段路由方法的流程图,应用于控制器,具体为:
[0055] S110,根据入口交换机发送的流路径服务请求,利用预设的路由策略生成流的转发路径,并生成路径交换机的转发端口序列,作为第一端口序列;所述流路径服务请求为流选择路径的请求。
[0056] 其中,入口交换机可以理解为新流进入的第一个交换机。一个流是由一系列包构成的;包是格式化的数据单元,通常包含控制信息和载荷数据。控制信息可以包括:源IP地址和目的地IP地址、类似校验和的错误检测码、排序信息等。通常在包头部和尾部发现控制信息,而载荷数据在两者之间。
[0057] 另外,该包的头部信息中TTL(TTL,Time To Live,最大限制)标识的值为80H。
[0058] 路由策略是利用网络状态与网络拓扑为网络流选择所经过的途径的技术,主要用于控制流的转发路径。
[0059] 在本步骤中,上述流路径服务请求包括该流中每一包的头部信息,控制器根据该每一包的头部信息,利用预设的路由策略生成流的转发路径。
[0060] 举例而言,如果一个流中的第一个包的源地址为A,目的地址为B,如何将第一包从A转发至B,具体为:按照路由策略生成第一包的转发路径,该转发路径的转发端口序列分别为各个交换机的出口的端口号,依次为1-2-12-13-6-8-10-3-6-7-78-56-34-23,流中的各个包按照转发端口序列对应的各个交换机进行转发。
[0061] 在一种实现方式中,利用预设的路由策略生成流的转发路径,包括:
[0062] 依据服务品质协议和最短路径原则,基于网络拓扑结构和端口映射,确定流的最短转发路径,作为流的转发路径。
[0063] 其中,服务品质协议可以理解为服务提供者与客户之间的一书面协议,用来保证可计量的网络性能达到所定义的品质。
[0064] 最短路径原则可以理解为使源地址到目的地址的路径达到最短的原则。
[0065] 可见,本实现方式通过依据服务品质协议和最短路径原则,基于网络拓扑结构,确定流的最短转发路径,能够降低流转发的网络时延,同时能够降低网络资源浪费。
[0066] 在一种实现方式中,上述按照生成的转发路径生成路径交换机的转发端口序列,包括:
[0067] 按照所述转发路径中所要转发交换机的顺序,将每个交换机出口的端口号按照交换机在所述转发路径中的位置进行排序,生成路径交换机的转发端口序列与序列标识。
[0068] 举例而言,根据该转发路径中各个交换机的顺序,则各个交换机的出口端口号依次为1、2、12、13、6、8、10、3、6、7、78、56、34、23,利用1、2、12、13、6、8、10、3、6、7、78、56、34、
23,生成路径交换机的转发端口序列为1-2-12-13-6-8-10-3-6-7-78-56-34-23。
[0069] 可见,本实现方式通过将每个交换机出口的端口号按照交换机在所述转发路径中的位置进行排序,生成路径交换机的转发端口序列以及序列标识,能够快速准确实现流的
转发。
[0070] S120,将所述第一端口序列划分成多个转发子段路径,并生成各个转发子段路径对应的转发端口序列,作为第二端口序列,其中,一个转发子段路径的首位交换机,也是相邻该转发子段路径中上一个转发子段路径的末位交换机。
[0071] 需要说明的是,各个转发子段路径中的各个交换机端口编码编码长度不同(各个交换机依据自己的端口数目进行独自等长编码),包中的指针在经过一个端口减去此端口
长度,从而在到达转发子段路径中的末端交换机时,其值为1。
[0072] 另外,转发子段路径的流表项的维护,包括每一首位交换机的段路径标记与段路径的更替,并根据段端口路径,将流按照每一转发子段路径的顺序进行转发,并在所有段转发完成后恢复流中包的标识。
[0073] 举例而言,基于上述示例,第一端口序列1-2-12-13-6-8-10-3-6-7-78-56-34-23划分成3个第二端口序列,依次为:1-2-12-13,13-6-8-10,10-3-6-7;7-78-56-24-23,可见
13即是转发子段路径对应的1-2-12-13中末位交换机的出口端口号,也是与转发子段路径
对应的1-2-12-13相邻的转发子段路径对应的13-6-8-10中首位交换机的出口端口号,同
理,10即是转发子段路径对应的13-6-8-10中末位交换机的出口端口号,也是转发子段路径对应的10-3-6-7中首位交换机的出口端口号;7即是转发子段路径对应的10-3-6-7中的末
位交换机,也是转发子段路路径对应的7-78-56-24-23中的首位交换机。
[0074] 在一种实现方式中,上述将所述第一端口序列划分成多个转发子段路径,包括:
[0075] 按照故障快速恢复原则和路径最大长度限制,对所述转发路径进行分段,得到转发子段路径,所述路径最大长度限制为转发子段路径对应的第二端口序列与序列标识的长
度和不能超过流中包头网络地址字段的长度总和。
[0076] 其中,故障快速恢复原则可以理解为子段落路径可替换的容量实时网络状态未达到最优的失败恢复。
[0077] 也可以说,基于网络状态信息(网络拓扑、链路容量、交换机状态)、申请流的源地址和目的地址,按照最短路径原则生成各个转发子段路径。
[0078] 可见,本实现方式按照故障快速恢复原则和路径最大长度限制,对所述转发路径进行分段,能够提高流转发效率。
[0079] 在另一实现方式中,如图2所示,上述将所述第一端口序列划分成多个转发子段路径,包括如下S121~S122:
[0080] S121,针对流,按照目标包转发路径中交换机的顺序,将当前交换机设置为端起始交换机,将当前交换机的出口端口号累加至当前段端口路径的长度,作为新的当前段端口路径的长度;所述段端口路径的长度为目标包待转发的交换机出口的端口号的累加;所述
目标包为流中的任一IPV4包或IPV6包;
[0081] S122,判断当前段端口路径的长度是否小于第一阈值,若当前段端口路径的长度小于第一阈值时,执行S123;若当前段端口路径的长度大于或等于第一阈值时,执行S124;
[0082] S123,将下一交换机作为当前交换机,将当前交换机的出口端口号累加至当前段端口路径的长度,返回执行S122;
[0083] S124,判断当前段端口路径的长度是否小于待划分的转发子段路径的长度;如果小于,执行S125,如果等于,则路径分段结束。
[0084] S125,将下一交换机作为当前交换机,返回执行S121;
[0085] 其中,上述针对流均可以理解为针对流中每一包,均按照步骤S121~S125执行。
[0086] 上述第一阈值可以理解为段端口路径长度的极限值,这个极限值的长度对应IP包中网络地址段的长度,对于IPv4流为64位,对于IPv6为256位。
[0087] 上述端口路径长度可以理解为路径中各端口存储所需位数的和,路径长度指路径中包含的交换机个数。
[0088] 上述交换机出口的端口号均为二进制。
[0089] 需要说明的是当前段端口路径的长度的初始值为0。
[0090] S123中的返回执行S122可以理解为执行S122~S123;S125的返回执行S121可以理解为执行S121~S125。
[0091] 举例而言,基于上述示例,如果目标包为IPV4,目标包要转发至转发路径的转发端口序列为1-2-12-13-6-8-10-3-6-7-78-56-34-23,按照目标包转发至转发路径中交换机的顺序,第一个交换机的出口端口号1累加至当前段端口路径的长度,则当前段端口路径的长度为1,判断1是否小于64位长度,若小于,按照目标包转发至转发路径中交换机的顺序,第二个交换机的出口端口号10(2)累加至当前段端口路径的长度,得到110,则110为新的当前段端口路径的长度,则可知110也小于64位长度;第二个交换机的出口端口号1100(12)累加至当前段端口路径的长度,也就是说,在110的基础上,继续累加当前交换机出口的端口号,得到1101100,将1101100作为新的当前段端口路径的长度,则可知1101100也小于64位长
度;第二个交换机的出口端口号1101(13)累加至当前段端口路径的长度,以1101100为基
础,累加当前交换机出口的端口号,得到11011001101,将11011001101作为新的当前段端口路径的长度,依次推理,直至当前端口路径的长度大于或等于64位长度,则判断当前段端口路径的长度是否小于待划分的转发子段路径的长度,如果小于待划分的转发子段路径的长
度,则继续累加当前段端口路径的长度,直至当前端口段路径的长度等于待划分的转发子
段路径长度,则得到一个转发子段路径,则按照目标包待转发的交换机顺序,将下一交换机的出口端口号作为当前端口路径的长度,按照上述涉及的一个转发子段路径的方法得到其
他转发子段路径,从而实现转发路径的分段。
[0092] 可见,本实现方式能够快速、高效地实现划分目标包待要转发的转发路径。
[0093] S130,利用每一所述转发子段路径对应的第二端口序列和每一所述转发子段路径中包含交换机的数量,生成每一所述转发子段路径交换的流表项。
[0094] 由本步骤可知,一个转发子段路径对应一个流表项,该流表项包含该转发子段路径的第二端口序列和该转发子段路径的交换机的数量。
[0095] 上述流表项的动作域可以为替换下一段子路径的端口序列,其中,下一段子路径可以理解为在一个转发子段路径中,如1-2-3-4,则1-2-3-4的下一段子路径的端口序列为
2-3-4,则2-3-4下一段子路径的端口序列为3-4,3-4下一段子路径的端口序列为4。
[0096] S140,发送应答信息至所述入口交换机,将每一所述流表项一一对应下发到每一所述转发子段路径的首位交换机。
[0097] 在本步骤中,一个转发子段路径对应的流表项对应一个转发子段路径,将每一流表项对应下发至每一转发子段路径的首位交换机。
[0098] 举例而言,基于上述示例,控制器将第一个转发子段路径对应的流表项发送至第一包,该流表项包括第二端口序列1-2-12-13,交换机数量4;将第二个转发子段路径对应的流表项发送至第一包,该流表项包括第二端口序列13-6-8-10,交换机数量4;将第三个转发子段路径对应的流表项发送至第一包,该流表项包括第二端口序列10-3-6-7,交换机数量
4;将第四个转发子段路径对应的流表项发送至第一包,该流表项包括第二端口序列7-78-
56-24-23,交换机数量4。
[0099] S150,根据每一首位交换机的流表项,将流按照每一转发子段路径的顺序进行转发,在路径的出口交换机处恢复流中包头网络地址字段,所述应答信息为完成流选择路径
后反馈的信息。
[0100] 在本步骤中,入口交换机在收到应答信息后,确定流选择路径已经完成,则依据每一转发子段路径中首位交换机收到的流表项,控制按照每一转发子段路径的顺序进行转发。
[0101] 其中,由上述可知,流包括一系列的包,则包转发可以理解为通过网络中的节点将包从一个通信链路中继到另一通信链路的过程。
[0102] 另外,路径的出口交换机指的是转发路径的出口交换机或是最后一个转发子段路径的末交换机。
[0103] 在一种实现方式中,如图3所示,上述根据每一段连接交换机的流表项,将流按照每一转发子段路径的顺序进行转发,包括如下S151~S156:
[0104] S151,针对流,判断目标包的目标限制是否为1,当目标包的目标限制为1时,执行S152;当所述目标包的目标限制不为1时,执行S154;其中,所述目标包为流中任一PV4包或ID IPV6包,所述目标限制为用于表征包待要经过转发子段路径中交换机的端口长度之和加1;
[0105] S152,查找下一转发子段路径对应的流表项;
[0106] S153,根据所述下一转发子段路径对应的流表项,分别更新所述目标包的目标限制、源地址和目的地址,并将所述目标包按照当前转发子段路径对应的流表项指定的端口
转出;
[0107] S154,按照如下第一表达式确定用于表征所述目标包待转发至当前第二转发端口序列中交换机出口的端口号;
[0108] 所述第一表达式为:S+TTL-1-k;
[0109] 其中,S为目标包包含的源地址的指针;k为转发子段路径中当前交换机端口的长度,TTL为目标限制;
[0110] S155,根据第二表达式,更新所述跳数限制;
[0111] 所述第二表达式为TTL=TTL-k;
[0112] S156,将所述目标包转发至确定的端口号对应的交换机。
[0113] 其中,上述针对流均可以理解为针对流中每一包,均按照步骤S151~S156执行。
[0114] 为了对上述的实现方式的更加清楚,上述实现方式还可以描述为:
[0115] 针对流中每一包,判断目标包是IPV4包还是IPV6包;
[0116] 如目标包为IPV6包,当目标包的跳数限制(Hop Limit)为1时,查找下一转发子段路径对应的流表项;
[0117] 根据所述下一转发子段路径对应的流表项,分别更新所述IPV6包的跳数限制、源地址和目的地址;
[0118] 并将所述目标包按照当前转发子段路径对应的流表项指定的端口转出;
[0119] 当所述目标包的跳数限制不为1时,按照如下第一表达式确定用于表征所述目标包待转发至当前第二转发端口序列中交换机出口的端口号;
[0120] 所述第一表达式为S+TTL-1-k;
[0121] 其中,S为目标包包含的源地址的指针;k为转发子段路径中当前交换机端口的长度,TTL为目标限制;
[0122] 根据第二表达式,更新所述跳数限制;
[0123] 所述第二表达式为TTL=TTL-k;
[0124] 将所述目标包转发至确定的端口号对应的交换机;
[0125] 如目标包为IPV4包,当IPV4包在转发子段路径中转发的最大跳数(TTL,Time To Live)为1时,查找下一转发子段路径对应的流表项;
[0126] 查找下一转发子段路径对应的流表项;
[0127] 根据所述下一转发子段路径对应的流表项,分别更新所述IPV4包的最大跳数、源地址和目的地址;并将所述目标包按照当前转发子段路径对应的流表项指定的端口转出;
[0128] 当所述最大跳数不为1时,按照如下第一表达式确定用于表征所述目标包待转发至当前第二转发端口序列中交换机出口的端口号;
[0129] 所述第一表达式为:S+TTL-1-k;
[0130] 根据第二表达式,更新所述最大跳数;
[0131] 所述第二表达式为:TTL=TTL-k;
[0132] 将所述目标包转发至确定的端口号对应的交换机。
[0133] 举例而言,基于上述示例,入口交换机收到完成流选择路径后,流的第一包到达第一个转发子段路径的首位交换机后,获得该首位交换机的流表项,判断第一包是IPV4还是IPV6,若第一包为IPV4,则流表项中的信息为1-2-12-13,交换机数量为4;第一包从第一个转发子段路径的首位交换机的端口号1转出去后,进入第二个交换机,此时,流表项中的信息为2-12-13,交换机数量为3;流经第二个交换机的出口端口号2转出后转入第三个交换
机,此时流表项的信息为12-13,交换机数量为2;流经第三个交换机的出口端口号12转出后转至第四个交换机,此时,流表项的信息为13,交换机数量为1,完成了流在第一个转发子段路径的转发。由于第一个转发子段路径的末位交换机是第二个转发子段路径的首位交换
机,因此,流在完成第一个转发子段路径后很容易找到第二个转发子段路路径,则流的第一包则转发至第二个转发子段路径的首位交换机,则此时,流表项信息为13-6-8-10,交换机数量为4,以此类推,第一包依次转发至第二转发子段路径、第三转发子段路径和第四转发子段路径后从第四转发子段路径的交换机的出口端口号23转出到达目的地址,完成了流中
第一包的转发,如果流包括三个包,则第一包完成转发后,第二包和第三包依次按照第一包的转发步骤完成转发。
[0134] 可见,本实现方式可以快速准确地完成流中各个包的转发,相对于传统技术,控制器无需对包在每一转发子段路径中各个交换机间的转发进行处理,能够减少控制器与交换机的交互次数,进而降低控制器的处理量,从而能够实现网络服务质量的细粒度控制。
[0135] 由此可见,本发明实施例提供的方法通过将所述第一端口序列划分成多个转发子段路径和第二端口序列,并利用第二端口序列生成每一所述转发子段路径交换的流表项;
将每一所述流表项一一对应下发到每一所述转发子段路径的首位交换机;并根据每一首位
交换机的流表项,将流按照每一转发子段路径的顺序进行转发,相对于现有技术,本发明实施例提供的方法根据每一首位交换机的流表项,将流按照每一转发子段路径的顺序进行转
发,能够使得网络服务质量实现细粒度控制。
[0136] 无需控制每一转发路径下发流表项,
[0137] 与上述分段路由方法相对应,本发明实施例还提供了分段路由装置。
[0138] 参见图4,本发明实施例提供一种分段路由装置的结构示意图,具体为:
[0139] 转发路径生成模块401,用于根据入口交换机发送的流路径服务请求,利用预设的路由策略生成流的转发路径;所述流路径服务请求为流选择路径的请求;
[0140] 端口序列生成模块402,用于生成路径交换机的转发端口序列,作为第一端口序列;所述流路径服务请求为流选择路径的请求;
[0141] 转发子段路径生成模块403,用于将所述第一端口序列划分成多个转发子段路径,并生成各个转发子段路径对应的转发端口序列,作为第二端口序列,其中,一个转发子段路径的末位交换机,也是相邻该转发子段路径中下一个转发子段路径的首位交换机;
[0142] 流表项生成模块404,用于利用每一所述转发子段路径对应的第二端口序列和每一所述转发子段路径中包含交换机的数量,生成每一所述转发子段路径交换的流表项;
[0143] 下发模块405,用于发送应答信息至所述入口交换机,将每一所述流表项一一对应下发到每一所述转发子段路径的首位交换机;
[0144] 流转发模块406,用于根据每一首位交换机的流表项,将流按照每一转发子段路径的顺序进行转发,在路径出口交换机恢复流中包头网络地址字段,所述应答信息为完成流
选择路径后反馈的信息。
[0145] 在一种实现方式中,所述转发路径生成模块401可以包括:
[0146] 最短转发路径确定模块,用于依据服务品质协议和最短路径原则,基于网络拓扑结构与交换机端口映射,确定流的最短转发路径,作为流的转发路径。
[0147] 在一种实现方式中,所述端口序列生模块402可以包括:
[0148] 转发路径得到子模块,用于按照所述转发路径中所要转发交换机的顺序,将每个交换机出口的端口号按照交换机在所述转发路径中的位置进行排序,生成路径交换机的转
发端口序列与序列标识。
[0149] 在一种实现方式中,所述转发子段路径生成模块403可以包括:
[0150] 分段子模块,用于按照故障快速恢复原则和路径最大长度限制,对所述转发路径进行分段,得到转发子段路径,所述路径最大长度限制为转发子段路径对应的第二端口序
列与序列标识的和不能超过流中包头网络地址字段的总和。
[0151] 在一种实现方式中,所述转发子段路径生成模块403还可以包括:
[0152] 第一累加子模块,用于针对流,按照目标包转发路径中交换机的顺序,将当前交换机设置为端起始交换机,将当前交换机的出口端口号累加至当前段端口路径的长度,作为新的当前段端口路径的长度;所述段端口路径的长度为目标包待转发的交换机出口的端口
号的累加;所述目标包为流中的任一IPV4包或IPV6包;
[0153] 所述第一判断子模块,用于判断当前段端口路径的长度是否小于第一阈值,若当前段端口路径的长度不为第一阈值时,触发第二累加子模块;若当前段端口路径的长度大
于或等于第一阈值时,触发第二判断子模块;
[0154] 第二累加子模块,用于将下一交换机作为当前交换机,将当前交换机的出口端口号累加至当前段端口路径的长度,触发所述第一判断子模块;
[0155] 所述第二判断子模块,用于判断当前路径的长度是否小于待划分的转发路径的长度;如果小于,将下一交换机作为当前交换机,触发累加子模块;如果等于,则路径分段结束。
[0156] 在一种实现方式中,所述流转发模块406可以包括:
[0157] 流表项查找子模块,用于针对流,当目标包的目标限制为1时,查找下一转发子段路径对应的流表项;其中,所述目标限制为用于表征包待要经过转发子段路径中交换机的
端口长度之和加1;
[0158] 所述第一更新子模块,用于根据所述下一转发子段路径对应的流表项,分别更新所述目标包的目标限制、源地址和目的地址,并将所述目标包按照当前转发子段路径对应
的流表项指定的端口转出;
[0159] 所述端口号确定子模块,用于按照如下第一表达式确定用于表征所述目标包待转发至当前第二转发端口序列中交换机出口的端口号;
[0160] 所述第一表达式为:S+TTL-1-k;
[0161] 其中,S为目标包包含的源地址的指针;k为转发子段路径中当前交换机端口的端口号长度,TTL为目标限制;
[0162] 第二更新子模块,用于根据第二表达式,更新所述目标限制;
[0163] 所述第二表达式为:TTL=TTL-k;
[0164] 目标包转发子模块,用于将所述目标包转发至确定的端口号对应的交换机。
[0165] 由此可见,本发明实施例提供的装置本发明实施例通过将所述第一端口序列划分成多个转发子段路径和第二端口序列,并利用第二端口序列生成每一所述转发子段路径交
换的流表项;将每一所述流表项一一对应下发到每一所述转发子段路径的首位交换机;并
根据每一首位交换机的流表项,将流按照每一转发子段路径的顺序进行转发,相对于现有
技术,本发明实施例提供的方法根据每一首位交换机的流表项,将流按照每一转发子段路
径的顺序进行转发,能够使得网络服务质量实现细粒度控制。
[0166] 本发明实施例还提供了一种应用程序系统,如图5所示,包括控制器501、RESTful接口502、分段路由服务模块503和应用程序接口(API,Application Programming 
Interface)504,其中,用户可以通过RESTful接口502和应用程序接口使用分段路由服务模块503提供的功能。
[0167] 控制器501,用于获取网络状态与具体控制实施;
[0168] 分段路由服务模块503,具体用于:
[0169] 根据入口交换机发送的流路径服务请求,利用预设的路由策略生成流的转发路径,并生成路径交换机的转发端口序列,作为第一端口序列;所述流路径服务请求为流选择路径的请求;
[0170] 将所述第一端口序列划分成多个转发子段路径,并生成各个转发子段路径对应的转发端口序列,作为第二端口序列,其中,一个转发子段路径的末位交换机,也是相邻该转发子段路径中下一个转发子段路径的首位交换机;
[0171] 利用每一所述转发子段路径对应的第二端口序列和每一所述转发子段路径中包含交换机的数量,生成每一所述转发子段路径交换的流表项;
[0172] 发送应答信息至所述入口交换机,将每一所述流表项一一对应下发到每一所述转发子段路径的首位交换机;并根据每一首位交换机的流表项,将流按照每一转发子段路径
的顺序进行转发,在路径出口交换机恢复流中包头网络地址字段,所述应答信息为完成流
选择路径后反馈的信息。
[0173] 应用程序接口504用于用户将分段路由服务模块503功能嵌入自身的应用中。
[0174] RESTful接口502用于实现分段路由服务模块503功能的调用与测试。
[0175] 其中,RESTful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
[0176] 由此可见,执行本实施例提供的应用程序系统,本发明实施例通过将所述第一端口序列划分成多个转发子段路径和第二端口序列,并利用第二端口序列生成每一所述转发
子段路径交换的流表项;将每一所述流表项一一对应下发到每一所述转发子段路径的首位
交换机;并根据每一首位交换机的流表项,将流按照每一转发子段路径的顺序进行转发,相对于现有技术,本发明实施例提供的方法根据每一首位交换机的流表项,将流按照每一转
发子段路径的顺序进行转发,能够使得网络服务质量实现细粒度控制。
[0177] 上述的相关内容分段路由方法的实施方式与前述方法实施例部分提供的分段路由的管理方式相同,这里不再赘述。
[0178] 在本发明实施的又一方面,本发明实施例还提供了一种包含应用程序接口的计算机程序产品,当其在网络控制器上运行时,使得其他计算机应用可以执行上述任一所述的
分段路由方法。
[0179] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所
述的分段路由方法。
[0180] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的分段路由方法。
[0181] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或
部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计
算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者
是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以
是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0182] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0183] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、存储介质或计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较
简单,相关之处参见方法实施例的部分说明即可。
[0184] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。