一种报文处理方法及系统与流程

文档序号:23097453发布日期:2020-11-27 12:59阅读:96来源:国知局
一种报文处理方法及系统与流程

本发明涉及通信技术领域,尤其是涉及一种报文处理方法及系统。



背景技术:

随着业务应用的推陈出新和用户规模的不断增长,网络呈现出“高速率、大规模、多接入、不可预期”的特点。传统网络管控方式和手段已经难以解决现有网络和未来网络的挑战。因此,网络管理者迫切需要颠覆传统网络监测及故障排除方法,提出能够应对网络状态测量、网络失效检测、故障定位与恢复等场景用例的实时灵活的测量解决方案。

带内网络遥测(in-bandnetworktelemetry,int)是一种不需要网络控制平面干预,由网络数据平面直接收集和报告网络状态的框架。在带内网络遥测架构中,交换设备转发处理携带遥测指令(telemetryinstructions)的数据包。当遥测数据包经过该设备时,这些遥测指令告诉具备网络遥测功能的网络设备应该收集并写入何种网络状态信息。

但是在现有技术中,要想在网络中使用遥测功能,报文所经过的所有交换设备都必须支持带内网络遥测技术,而对于传统交换设备而言,遇到无法识别的intheader和metadata(遥测信息元数据)时,将会丢弃此报文。

对于一个数据中心内部而言,随着支持带内网络遥测技术的交换设备的广泛使用,通过带内网络遥测技术可实现数据中心内部的网络状态测量、网络失效检测、故障定位与恢复等。但对于公共分组网络来说,支持带内网络遥测技术的交换设备的使用仍然是凤毛麟角。

随着分布式数据/计算中心架构的更快普及,越来越多的跨数据中心之间的网络需要进行精确测量,为合理高效地调整网络路由提供可靠依据。因此,如何将带内网络遥测技术应用到使用传统交换设备的公共分组网络中,成为亟需解决的问题。



技术实现要素:

本发明实施例提供一种报文处理方法及系统,以解决上述技术问题,从而能够将带内网络遥测技术应用到使用传统交换设备的公共分组网络中。

为了解决上述技术问题,本发明实施例提供了一种报文处理方法,包括步骤:

第一交换设备接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务进行遥测信息采集,继而将所述原始报文与采集到的第一遥测信息添加至封装报文;其中,所述第一交换设备包含所述第一带内网络遥测模块;

所述第一交换设备以所述封装报文作为隧道净荷,并添加隧道首部进行封装得到隧道报文,将所述隧道报文通过预先建立的隧道连接通道发送至第二交换设备;其中,所述第二交换设备包含第二带内网络遥测模块;

所述第二交换设备接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述遥测任务进行遥测信息采集,并将采集到的第二遥测信息添加至所述封装报文中;

所述第二交换设备对所述封装报文进行转发,或,提取出所述封装报文中的所有遥测信息并发送至遥测服务器。

进一步地,所述第一交换设备接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务进行遥测信息采集,继而将所述原始报文与采集到的第一遥测信息添加至封装报文,具体为:

第一交换设备接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务在所述原始报文中插入int头部;

根据所述int头部的指令进行遥测信息采集,将采集到的第一遥测信息插入至所述int头部之后,以得到所述封装报文。

进一步地,所述第二交换设备接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述遥测任务进行遥测信息采集,并将采集到的第二遥测信息添加至所述封装报文中,具体为:

所述第二交换设备接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中。

进一步地,所述第二交换设备接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中,具体为:

所述第二交换设备接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文;

通过所述第二带内网络遥测模块根据预设的遥测任务类型对所述int头部进行类型字段匹配;

当所述类型字段匹配成功时,根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中。

进一步地,所述第二交换设备对所述封装报文进行转发,或,提取出所述封装报文中的所有遥测信息并发送至遥测服务器,具体为:

所述第二交换设备判断自身是否为遥测终点;

若否,则对所述封装报文进行转发;

若是,则提取出所述封装报文中的所有遥测信息并发送至遥测服务器。

为了解决相同的技术问题,本发明还提供了一种报文处理系统,包括第一交换设备、第二交换设备、遥测服务器;

所述第一交换设备,用于接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务进行遥测信息采集,继而将所述原始报文与采集到的第一遥测信息添加至封装报文;其中,所述第一交换设备包含所述第一带内网络遥测模块;

所述第一交换设备,还用于以所述封装报文作为隧道净荷,并添加隧道首部进行封装得到隧道报文,将所述隧道报文通过预先建立的隧道连接通道发送至所述第二交换设备;其中,所述第二交换设备包含第二带内网络遥测模块;

所述第二交换设备,用于接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述遥测任务进行遥测信息采集,并将采集到的第二遥测信息添加至所述封装报文中;

所述第二交换设备,还用于对所述封装报文进行转发,或,提取出所述封装报文中的所有遥测信息并发送至所述遥测服务器。

进一步地,所述第一交换设备,用于接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务进行遥测信息采集,继而将所述原始报文与采集到的第一遥测信息添加至封装报文,具体为:

所述第一交换设备用于接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务在所述原始报文中插入int头部;

根据所述int头部的指令进行遥测信息采集,将采集到的第一遥测信息插入至所述int头部之后,以得到所述封装报文。

进一步地,所述第二交换设备,用于接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述遥测任务进行遥测信息采集,并将采集到的第二遥测信息添加至所述封装报文中,具体为:

所述第二交换设备用于:接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中。

进一步地,所述第二交换设备,用于接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中,具体为:

所述第二交换设备用于:接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文;通过所述第二带内网络遥测模块根据预设的遥测任务类型对所述int头部进行类型字段匹配;当所述类型字段匹配成功时,根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中。

进一步地,所述第二交换设备用于对所述封装报文进行转发,或,提取出所述封装报文中的所有遥测信息并发送至遥测服务器,具体为:

所述第二交换设备用于判断自身是否为遥测终点;

若否,则对所述封装报文进行转发;

若是,则提取出所述封装报文中的所有遥测信息并发送至遥测服务器。

与现有技术相比,本发明具有如下有益效果:

本发明实施例提供了一种报文处理方法及系统,所述方法包括步骤:第一交换设备接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务进行遥测信息采集并添加至封装报文;第一交换设备以封装报文作为隧道净荷进行封装得到隧道报文,并将其通过预先建立的隧道连接通道发送至第二交换设备;第二交换设备去掉隧道首部后获取得到封装报文,通过第二带内网络遥测模块进行遥测信息采集,并将采集到的第二遥测信息添加至封装报文中;第二交换设备对封装报文进行转发,或,提取出封装报文中的所有遥测信息并发送至遥测服务器。本发明通过采用隧道技术应用于网络遥测系统,从而能够将带内网络遥测技术应用到使用传统交换设备的公共分组网络中。

附图说明

图1是本发明一实施例提供的报文处理方法的流程示意图;

图2是本发明一实施例提供的带内网络遥测系统示意图;

图3是本发明一实施例提供的隧道技术原理示意图;

图4是本发明一实施例提供的报文处理方法的工作原理示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,本发明实施例提供了一种报文处理方法,包括步骤:

s1、第一交换设备接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务进行遥测信息采集,继而将所述原始报文与采集到的第一遥测信息添加至封装报文;其中,所述第一交换设备包含所述第一带内网络遥测模块。

在本发明实施例中,进一步地,步骤s1具体为:

第一交换设备接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务在所述原始报文中插入int头部;

根据所述int头部的指令进行遥测信息采集,将采集到的第一遥测信息插入至所述int头部之后,以得到所述封装报文。

s2、所述第一交换设备以所述封装报文作为隧道净荷,并添加隧道首部进行封装得到隧道报文,将所述隧道报文通过预先建立的隧道连接通道发送至第二交换设备;其中,所述第二交换设备包含第二带内网络遥测模块;

s3、所述第二交换设备接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述遥测任务进行遥测信息采集,并将采集到的第二遥测信息添加至所述封装报文中;

在本发明实施例中,进一步地,步骤s3具体为:

所述第二交换设备接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中。

在本发明实施例中,进一步地,所述第二交换设备接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中,具体为:

所述第二交换设备接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文;

通过所述第二带内网络遥测模块根据预设的遥测任务类型对所述int头部进行类型字段匹配;

当所述类型字段匹配成功时,根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中。

s4、所述第二交换设备对所述封装报文进行转发,或,提取出所述封装报文中的所有遥测信息并发送至遥测服务器。

在本发明实施例中,进一步地,步骤s4,具体为:

所述第二交换设备判断自身是否为遥测终点;

若否,则对所述封装报文进行转发;

若是,则提取出所述封装报文中的所有遥测信息并发送至遥测服务器。

需要说明的是,如图2所示,带内网络遥测的数据包处理流程如下:

1)普通数据报文到达带内网络遥测系统的第一个交换节点时,带内网络遥测模块通过在交换设备上设置的采样方式匹配并镜像出该报文,根据遥测任务的需要在四层头部后插入int头部,将int头部所指定的遥测信息封装成元数据(metadata,md)插入到int头部之后;其中,osi(开放系统互连)将互联网连接的一系列网络协议分为七层,其中第四层叫传输层,比如tcp或udp。四层头部后面就是tcp或udp的包头与包数据之间;

2)报文转发到中间节点时,交换设备匹配int头部成功后插入md;需要说明的是,所有参与遥测任务的交换设备要统一步调,即由一个控制器事先统一通知交换设备int头部格式定义。当收到携带int头部和md的报文时,交换设备就可以与之前控制器通知的int头部格式定义进行比对。匹配成功就继续按要求插入md,匹配失败则丢弃此报文;

3)报文转发到带内网络遥测系统最后一跳时,交换设备匹配int头部插入最后一个md并提取全部遥测信息并转发到遥测服务器;

4)遥测服务器解析遥测报文内的遥测信息,上报给上层遥测应用程序。

请参见图3,另外需要说明的是,隧道技术本身是一种通过使用分组网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据包(或净荷)可以是不同协议的数据帧或报文。隧道协议将这些其他协议的数据帧或报文重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的净荷数据能够通过分组网络传递。被封装的数据包在隧道的两个端点之间通过分组网络进行路由。被封装的数据包在分组网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解包并转发到最终目的地。

可以理解的是,为了解决现有技术中普通报文增加遥测信息后会被传统交换设备丢弃的问题,以达到带内网络遥测技术在使用传统交换设备的分组网络中应用的目的,本发明提供一种报文处理方法,包括以下步骤:

1.支持带内网络遥测功能的两个交换设备之间路由可达并建立隧道连接,隧道所经过的分组网络上包含一个或多个交换设备(可以是传统的不支持带内网络遥测功能的交换设备);需要说明的是,建立隧道连接是一种常见技术,如在二层建立隧道所使用的l2tp协议和在三层建立隧道所使用的ipsec和gre。无论哪种协议,隧道两端只需完成协商并将协商结果填在隧道首部即可,并不关心隧道净荷的内容。因此本发明也不必关心用哪个协议来建立隧道连接,只需把携带遥测信道的报文放到隧道净荷中完整送到对端即可;

2.普通数据报文到达第一个支持带内网络遥测功能的交换设备时,其带内网络遥测模块通过在交换设备上设置的采样方式匹配并镜像出该报文,根据遥测任务的需要在四层头部后插入int(in-bandnetworktelemetry,带内网络遥测)头部,将int头部所指定的遥测信息封装成元数据(metadata,md)插入到int头部之后;如果是已插入了int头部的数据报文,则本交换设备的带内网络遥测模块将首先进行int头部匹配,匹配成功后再次插入一个md;

需要说明的是,比如本次遥测任务是检查指定报文经过每个交换设备时的时间,其结果可以用于判断报文所所经过每条路径的用时。那么int就可以包含本次遥测任务的类型等信息,md则填写报文经过本交换设备的精确时间。当完成本次遥测任务时,最后md就是包含多个时间点信息;

控制器先通知所有交换设备要进行一次“路径用时遥测”,那么发起此次任务的交换设备会在int头部中的某一个字段填写的本次遥测任务的类型为“路径用时遥测”,所有收到此报文的交换设备会读取int头部中的遥测任务类型字段,确认与之前控制器通知的“路径用时遥测”相同,则匹配成功,不同则认为匹配失败;

前后两次md分别填写的报文经过这两个交换设备时的时间,时间差就是两个设备之间路径传输用时了。和其它路径用时比较,就可以判断那条路径快哪条路径慢,从而进一步为路由调度或网络问题排查提供依据;

3.封装了遥测信息的报文作为隧道净荷,在第一个交换设备封装的报文上增加隧道首部后通过隧道发出;

4.封装了遥测信息和隧道首部的报文经过分组网络路由到隧道终点、即第二个支持带内网络遥测功能的交换设备时,去掉隧道首部,并交给此交换设备内部的带内网络遥测模块;

5.第二个支持带内网络遥测功能的交换设备的带内网络遥测模块匹配int头部成功后插入一个md(第二个交换设备获取的遥测信息),继而,如果此交换设备是遥测终点,则提取全部遥测信息后转发到遥测服务器,同时不带任何遥测信息的原始数据报文将被继续路由到最终目的地;如果此交换设备不是遥测终点,则不用提取遥测信息,直接向下一个支持带内网络遥测功能的交换设备转发即可。

请参见图4,基于上述方案,为了更清晰地描述本发明技术方案,下面列举具体例子进行说明:

前提条件:

1)交换设备1和交换设备2(第一交换设备和第二交换设备)都支持带内网络遥测技术,并配置了相同的int定义;

2)交换设备1和交换设备2之间路由可达,并且已预先建立好一个隧道连接。

步骤1:用户1发送一个目的地为用户2的报文,报文包含头部(packetheader)和数据(data),报文到达交换设备1;

步骤2:交换设备1中的带内网络遥测模块在上述报文中插入intheader和metadata-1;

步骤3:交换设备1在上述报文前插入隧道报文头部tunnelheader,并将上述报文整体作为隧道报文净荷,完成隧道报文封装;

步骤4:交换设备1将封装好的上述隧道报文通过隧道发往交换设备2;

步骤5:交换设备2从隧道中收到上述隧道报文;

步骤6:交换设备2将上述隧道报文的隧道报文头部tunnelheader去掉,保留隧道报文净荷,完成隧道报文还原;

步骤7:交换设备2在上述还原后的报文中插入metadata-2;

步骤8:交换设备2将上述报文中的intheader和metadata-1、metadata-2整体分离出来,交给遥测服务器处理;

步骤9:上述分离出遥测数据后剩下的报文就是用户1发出的原始报文,由交换设备2继续转发给用户2。

从上述实施步骤可以看出,在用户1和用户2无感知的情况下,遥测系统完成了这条从用户1到用户2的整个路由的状态遥测,遥测数据可以用于网络状态测量、网络失效检测、故障定位与恢复等等。

需要说明的是,对于以上方法或流程实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本发明实施例所必须的。

为了解决相同的技术问题,本发明还提供了一种报文处理系统,包括第一交换设备、第二交换设备、遥测服务器;

所述第一交换设备,用于接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务进行遥测信息采集,继而将所述原始报文与采集到的第一遥测信息添加至封装报文;其中,所述第一交换设备包含所述第一带内网络遥测模块;

所述第一交换设备,还用于以所述封装报文作为隧道净荷,并添加隧道首部进行封装得到隧道报文,将所述隧道报文通过预先建立的隧道连接通道发送至所述第二交换设备;其中,所述第二交换设备包含第二带内网络遥测模块;

所述第二交换设备,用于接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述遥测任务进行遥测信息采集,并将采集到的第二遥测信息添加至所述封装报文中;

所述第二交换设备,还用于对所述封装报文进行转发,或,提取出所述封装报文中的所有遥测信息并发送至所述遥测服务器。

进一步地,所述第一交换设备,用于接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务进行遥测信息采集,继而将所述原始报文与采集到的第一遥测信息添加至封装报文,具体为:

所述第一交换设备用于接收到原始报文后,通过第一带内网络遥测模块根据预设的遥测任务在所述原始报文中插入int头部;

根据所述int头部的指令进行遥测信息采集,将采集到的第一遥测信息插入至所述int头部之后,以得到所述封装报文。

进一步地,所述第二交换设备,用于接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述遥测任务进行遥测信息采集,并将采集到的第二遥测信息添加至所述封装报文中,具体为:

所述第二交换设备用于:接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中。

进一步地,所述第二交换设备,用于接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文,通过所述第二带内网络遥测模块根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中,具体为:

所述第二交换设备用于:接收到所述隧道报文并去掉所述隧道首部后获取得到所述封装报文;通过所述第二带内网络遥测模块根据预设的遥测任务类型对所述int头部进行类型字段匹配;当所述类型字段匹配成功时,根据所述int头部的指令进行遥测信息采集,并将采集到的第二遥测信息插入至所述封装报文中。

进一步地,所述第二交换设备用于对所述封装报文进行转发,或,提取出所述封装报文中的所有遥测信息并发送至遥测服务器,具体为:

所述第二交换设备用于判断自身是否为遥测终点;

若否,则对所述封装报文进行转发;

若是,则提取出所述封装报文中的所有遥测信息并发送至遥测服务器。

可以理解的是上述系统项实施例,是与本发明方法项实施例相对应的,本发明实施例提供的一种报文处理系统,可以实现本发明任意一项方法项实施例提供的报文处理方法。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1