CN112866002B - 面向多播流量的带内遥测方法、交换设备节点以及计算机可读存储介质 - Google Patents
面向多播流量的带内遥测方法、交换设备节点以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112866002B CN112866002B CN202011245597.8A CN202011245597A CN112866002B CN 112866002 B CN112866002 B CN 112866002B CN 202011245597 A CN202011245597 A CN 202011245597A CN 112866002 B CN112866002 B CN 112866002B
- Authority
- CN
- China
- Prior art keywords
- int
- data
- multicast
- egr
- info
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 42
- 239000000203 mixture Substances 0.000 claims description 3
- 238000011084 recovery Methods 0.000 abstract description 14
- 238000001514 detection method Methods 0.000 abstract description 7
- 230000007246 mechanism Effects 0.000 abstract description 5
- 230000008520 organization Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/555—Error detection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种面向多播流量的带内遥测方法、交换设备节点以及计算机可读存储介质,无论单路多播还是多路多播,该方法只在第一个包插入INT元数据,其他复制包INT报头全部清空,这样最大限度的降低了INT报头的冗余量以及占用的网络负载;该带内遥测方法所述采用的存储结构,利用redis的hash加set的结构完成全部数据的组织和保存;根据该存储结构,本发明提出了相应的多播树恢复算法和丢包检测机制,监控中心的监控程序可以定期扫描redis数据库,批量完成对多个多播树、网络拓扑的恢复和检测,通过分析“图”的结构和属性,间接分析多播是否存在丢包。
Description
技术领域
本发明涉及网络遥测技术领域,特别是面向多播流量的带内遥测方法、交换设备节点以及计算机可读存储介质。
背景技术
随着业务应用的推陈出新和用户规模的不断增长,网络呈现出“高速率、大规模、多接入、不可预期”的特点。人们对网络的需求不断提高,对其服务质量不断提出新的要求。如何高效的监测和管理网络流量,快速定位网络故障,已经成为现有网络和未来网络发展的巨大挑战。
传统的网络测量协议,例如SNMP,由于其低效的轮询方式,并不能保证测量结果的及时性以及覆盖率。主机驱动的Pingmesh利用服务器发送ping探测数据包,以提供网络范围的端到端延迟测量。但是这种方式并不能探测到每一跳的状态数据,例如转发时延、队列积压程度等。
随着协议无关的转发架构以及P4编程语言的出现,使得业界引入了带内网络遥测(In-band Network Telemetry,简称INT)技术。带内网络遥测(INT)由Barefoot、Arista、Dell、Intel和VMware于2015年共同提出,是一种不需要网络控制平面干预,网络数据平面收集和报告网络状态的框架。在带内网络遥测架构中,交换设备转发处理携带遥测指令(Telemetry instructions)的数据包。当遥测数据包经过该设备时,这些遥测指令告诉具备网络遥测功能的网络设备应该收集并写入何种网络状态信息。数据包处理流程如下:1.普通数据报文到达带内网络遥测系统的第一个交换节点时,带内网络遥测模块插入INT头部,将INT头部所指定的遥测信息封装成元数据(MetaData,MD)插入到INT头部之后;2.报文转发到中间节点时,设备匹配INT头部后插入MD;3.报文转发到带内网络遥测系统最后一跳时,交换设备匹配INT头部插入最后一个MD并提取全部遥测信息并通过gRPC等方式转发到遥测服务器。4.遥测服务器解析遥测报文内的遥测信息,上报给上层遥测应用程序。应用INT技术可以为数据中心的故障检测、流量工程、网络可视化等提供有效支撑。
INT技术的提出更多是基于单播流量。而多播流量在当今网络中也是一种非常重要的流量类型,有其自身的特点。多播是一种点对多点的通信方式,是节省网络带宽的有效方法之一。当需要将一个节点的数据传送到多个节点时,无论是采用重复的单播通信方式,还是采用广播方式,都会严重浪费网络带宽。多播能使一个或多个多播源只把数据包发送给特定的多播组,而只有加入该多播组的主机才能接收到数据包。目前,IP多播技术被广泛应用在网络音频/视频广播、AOD/VOD、网络视频会议、多媒体远程教育、和虚拟现实游戏等方面。针对多播流量,如果只是简单应用传统的INT方案,会大大增加网络测量的代价,比如大量重复的INT metadata数据会随着数据包的复制而多次复制,大大占用网络带宽;重复的INT metadata数据上传到监控服务器时,增大监控程序的计算处理时延等。所以,本发明提出了面向多播流量的带内遥测技术,优化传统INT技术应用在多播流量上的不足。
发明内容
为了解决上述技术问题,本发明基于INT和P4提出一种轻量化的,面向多播流量的带内遥测方法。
本发明提供的面向多播流量的带内遥测方法包括以下步骤:
步骤一,根据路由表,交换设备节点对数据包进行复制处理,只在第一个包插入INT元数据,将其他复制包INT报头全部清空;
步骤二,所述交换设备节点对数据包进行转发,记录当前交换设备节点的设备id;
步骤三,在最后一跳,交换设备节点解析INT元数据以及路径数据信息,发送到监控中心并保存在数据库中;
步骤四,所述监控中心通过IDENTIFICATION字段在所述数据库中获取多条多播路径数据,绘制出带属性的多播树拓扑图,分析拓扑图并结合每个图内结点的属性判断是否丢包。
进一步的,针对单路多播的网络环境,所述步骤一为:
步骤1.1,根据路由表,所述交换设备节点查找到多个待发出的egress端口,以及每个端口对应的egress_rid(复制id);
步骤1.2,判断当前处理的复制包的egress_rid,如果egress_rid等于1,插入当前交换机设备的INT metadata数据到INT_INFO中,如果当前是最后一跳,INT metadata中复制包个数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;
步骤1.3,如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据;BRANCH_SW_ID字段记录当前交换机设备节点的id。
进一步的,针对多路多播的网络环境,所述步骤一为:
步骤1.1,根据路由表,所述交换设备节点查找到多个待发出的egress端口,以及每个端口对应的egress_rid(复制id);
步骤1.2,获取上次采集时间LT和当前时间CT;
步骤1.3,记录当前交换机设备id到PATH_INFO报头中,同时PATH_HEADER字段内数据加1;
步骤1.4,判断当前处理的复制包的egress_rid,如果egress_rid等于1,并且CT–LT的值大于T,所述T为INT metadata采集时间间隔,那么当前交换设备节点的INTmetadata数据记录到INT_INFO中,如果当前是最后一跳,INT metadata中复制包各数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;用CT更新LT的值;
步骤1.5,如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据。
更进一步的,所述数据库为redis数据库,针对单路多播的网络环境,所述redis数据库的结构为:
redis数据库中通过hash存储所有INT元数据:使用IP报头的IDENTIFICATION字段作为name值,各INT_INFO中交换设备节点的id作为key值,INT_INFO其他数据组成字符串作为value值存储;路径数据通过set存储:使用IP报头的IDENTIFICATION字段作为key值,BRANCH_SW_ID、INT_INFO中各个交换设备节点的id组成字符串作为value值存储;多个多播的不同IDENTIFICATION分别作为key值,使用特定name。
或者,针对多路多播的网络环境,所述redis数据库的结构为:
redis中通过hash存储所有INT元数据:使用IP报头的IDENTIFICATION字段作为name值,各个INT_INFO中交换设备节点的id作为key值,INT_INFO其他数据组成字符串作为value值存储;路径数据通过set存储:使用IP报头的IDENTIFICATION字段作为key值,PATH_INFO中各个交换设备节点的id组成字符串作为value值存储,多个多播的不同IDENTIFICATION,分别作为key值,使用特定name。
进一步的,所述步骤四具体为:
步骤4.1,在所述监控中心中,通过IDENTIFICATION字段在所述数据库中获取多条多播路径数据;每条数据中,每个交换设备节点的id作为图的结点,相邻两个交换设备节点的id相连作为图的边,通过IDENTIFICATION字段、switch id字段获取INT元数据作为结点的属性,恢复多播树拓扑图;
步骤4.2,分析拓扑图并结合每个结点的属性字段REP_COUNT判断是否存在丢包。
更近一的,所述步骤4.2中,判断是否存在丢包的依据为:在拓扑图中,如果对应结点引申出的边的个数和REP_COUNT字段的值不匹配,则可以判断出现了丢包的情况。
本申请提供两种面向多播流量的交换设备节点,其中,针对单路多播的网络环境,所述交换设备节点包括第一处理单元,所述第一处理单元,根据路由表,查找到多个待发出的egress端口,以及每个端口对应的egress_rid(复制id);
所述交换设备节点包括第二处理单元,所述第二处理单元判断当前处理的复制包的egress_rid,如果egress_rid等于1,插入当前交换机设备节点的INT metadata数据到INT_INFO中,如果当前是最后一跳,INT metadata中复制包个数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据;BRANCH_SW_ID字段记录当前交换机设备节点的id。
针对多路多播的网络环境,所述交换设备节点包括第一处理单元,所述第一处理单元根据路由表,查找到多个待发出的egress端口,以及每个端口对应的复制id;
所述交换设备节点包括第二处理单元,所述第二处理单元获取上次采集时间LT和当前时间CT;
所述交换设备节点包括第三处理单元,所述第三处理单元,记录当前交换机设备id到PATH_INFO报头中,同时PATH_HEADER字段内数据加1;
所述交换设备节点包括第四处理单元,所述第四处理单元判断当前处理的复制包的egress_rid(复制id),如果egress_rid等于1,并且CT–LT的值大于T,所述T为INTmetadata采集时间间隔,那么当前交换设备节点的INT metadata数据记录到INT_INFO中,如果当前是最后一跳,INT metadata中复制包各数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;用CT更新LT的值;如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据。
本文提出一种计算机可读存储介质,存储有计算机可执行指令,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行面向多播流量的带内遥测方法。
有益效果
(1)利用本发明技术可降低多播转发过程中整个网络的INT数据冗余量。
(2)利用本发明技术可降低发送到监控服务器的数据量。
(3)利用本发明技术可减少多播过程中的丢包率。
(4)利用本发明技术可辅助探测未知的网络拓扑结构。
(5)利用本发明技术可以判断丢包的交换机位置。
附图说明
图1为single MPINT转发算法的网络拓扑图;
图2为single MPINT转发算法的伪代码结构示意图;
图3为multi MPINT转发算法的网络拓扑图;
图4为multi MPINT转发算法的伪代码结构示意图;
图5为多播树恢复检测算法的伪代码结构示意图;
图6为采用本申请方法与传统INT方法的网络冗余量对比图;
图7为采用本申请方法与传统INT方法关于发送到监控服务器的数据量对比图;
图8为针对单路多播的网络环境的redis数据库结构图;
图9为针对多路多播的网络环境的redis数据库结构图。
具体实施方式
下面结合附图和具体实例对本发明做更进一步的解释:
实施例1
本发明提供的面向多播流量的带内遥测方法包括以下步骤:
步骤一,根据路由表,交换设备节点对数据包进行复制处理,只在第一个包插入INT元数据,将其他复制包INT报头全部清空;
步骤二,所述交换设备节点对数据包进行转发,记录当前交换设备节点的设备id;
步骤三,在最后一跳,交换设备节点解析INT元数据以及路径数据信息,发送到监控中心并保存在数据库中;
步骤四,所述监控中心通过IDENTIFICATION字段在所述数据库中获取多条多播路径数据,绘制出带属性的多播树拓扑图,分析拓扑图并结合每个图内结点的属性判断是否丢包。
在我们的发明中,我们提出了针对多播流量的带内网络遥测方法(Multi-PathIn-band Network Telemetry,简称MPINT)。对于单路多播,即每次监测一个多播流量,我们设计了single MPINT;对于多路多播,即同时监测多个多播流量,我们在single MPINT的基础上提出了multi MPINT。
single MPINT数据包包头封装
ETHER和IP:常规ETHER和IP报头。
BRANCH_SW_ID:复制结点的交换机设备ID。
INT_HEADER:INT_INFO的个数。
INT_INFO:一组INT metadata数据。每个INT metadata数据记录相关交换机设备的状态信息,包括设备ID、数据出入端口,队列情况,转发时延,数据包复制个数等。
UDP/TCP:常规UDP或TCP报头。
PAYLOAD:数据
进一步的,针对单路多播的网络环境,所述步骤一为:
步骤1.1,根据路由表,所述交换设备节点查找到多个待发出的egress端口,以及每个端口对应的egress_rid(复制id);
步骤1.2,判断当前处理的复制包的egress_rid,如果egress_rid等于1,插入当前交换机设备的INT metadata数据到INT_INFO中,如果当前是最后一跳,INT metadata中复制包个数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;
步骤1.3,如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据;BRANCH_SW_ID字段记录当前交换机设备节点的id。
在多播过程中,不需要复制数据包的交换机结点,直接在INT_INFO中插入INTmetadata数据;需要复制数据包的交换机结点,对于复制包1,在INT_INFO中正常插入当前switch的INT metadata数据;对于复制包N(N>1),清除数据包INT_INFO中所有的INTmetadata历史数据,并在BRANCH_SW_ID中记录当前交换机的设备id。
以图1所示网络拓扑为例,多播转发从A开始,到G、H、J、K、L、M结束,说明singleMPINT算法的执行过程:
第一步:数据包从A转发到B,数据包中记录A的INT metadata数据;初始并不存在复制,复制结点ID记录特殊值,例如0;
第二步:数据包在B进行复制转发,复制包1记录B的INT metadata数据后,复制结点ID保持0不变,发送到C;复制包2和3清除A的INT metadata数据后,复制结点ID记录为B,转发给D和E;
第三步:数据包在C进行复制转发,复制包1记录C的INT metadata数据后,复制结点ID保持0不变,发送到F;复制包2清除A和B的INT metadata数据后,复制结点ID记录为C,转发到G;
第四步:数据包在D和E分别进行转发,由于不存在复制,复制结点ID保持B不变,直接记录INT数据即可。
后续结点遵循以上原则,进行转发,直到多播转发结束。整个多播转发过程中的INT数据记录情况如图所示。
如图2所示,展示了single MPINT的算法伪代码,算法实现细节描述:
在交换机egress控制流中:
1、根据路由表,查找到多个待发出的egress端口,以及每个端口对应的egress_rid,(在流表中预先设置);
2、判断当前处理的复制包的egress_rid。
1)如果egress_rid等于1,插入当前交换机设备的INT metadata数据到INT_INFO中,如果当前是最后一跳,INT metadata中复制包个数字段REP_COUNT记录为0;INT_HEADER字段加一。
2)如果egress_rid不等于1,这是INT_HEADER字段清零;删除INT_INFO中所有数据;BRANCH_SW_ID字段记录当前交换机设备id。
进一步的,针对多路多播的网络环境,multi MPINT数据包包头封装结构如下:
ETHER和IP:常规ETHER和IP报头。
PATH_HEADER:转发过程中经过的交换机个数。
PATH_INFO:一组转发过程中经过的交换机的设备ID。
INT_HEADER:INT_INFO的个数。
INT_INFO:一组INT metadata数据。每个INT metadata数据记录相关交换机设备的状态信息,包括设备ID、数据出入端口,队列情况,转发时延,数据包复制个数等。
U/T:常规UDP或TCP报头。
PAYLOAD:数据。
所述步骤一为:
步骤1.1,根据路由表,所述交换设备节点查找到多个待发出的egress端口,以及每个端口对应的egress_rid(复制id);
步骤1.2,获取上次采集时间LT和当前时间CT;
步骤1.3,记录当前交换机设备id到PATH_INFO报头中,同时PATH_HEADER字段内数据加1;
步骤1.4,判断当前处理的复制包的egress_rid,如果egress_rid等于1,并且CT–LT的值大于T,所述T为INT metadata采集时间间隔,那么当前交换设备节点的INTmetadata数据记录到INT_INFO中,如果当前是最后一跳,INT metadata中复制包各数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;用CT更新LT的值;
步骤1.5,如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据。
在多播过程中,数据包每经过一个交换机,在PATH_HEADER字段中记录当前交换机的设备id。在不需要复制数据包的交换机结点,直接在INT_INFO中插入INT metadata数据。需要复制数据包的交换机结点,对于复制包1,在INT_INFO中正常插入当前交换机的INTmetadata数据;对于复制包N(N>1),清除数据包INT_INFO中所有的INT metadata历史数据。对于特定时间间隔内,已经采集过INT metadata数据的交换机不再重复采集INT metadata数据。
以图3所示网络拓扑为例,说明算法2的过程:
多播1转发从A开始,到H、L、M结束。多播2从Z开始,到Y、X、V结束,其中I到M存在路径重复。
假设I和M的INT metadata数据已经在多播1中采集上报,那么在T时间间隔内,多播2的转发过程如下:
第一步:数据包在Z进行复制转发。复制包1记录Z的INT metadata数据后,记录下Z的结点ID,发送到I;复制包2清除掉所有INT数据,记录下Z的结点ID,发送到Y;
第二步:数据包在I进行复制转发。复制包1中,由于T时间内,已经采集过INTmetadata数据,所以不再记录,记录下I的结点ID,发送给M;复制包2清除Z的INT数据后,记录下I的结点ID,发送给X;
第三步:Y结点,由于不存在复制且没有路径重叠,直接记录INT metadata数据和结点ID;
第四步:M结点,由于INT数据在T时间内已经采集,不再记录INT metadata数据,记录下M的结点ID后转发到V;
第五步:V结点,由于不存在复制且没有路径重叠,直接记录INT metadata数据和结点ID。
整个多播转发过程中的INT metadata数据记录情况如图所示。
图4展示了multi MPINT的算法伪代码,算法执行流程细节描述:
设INT metadata采集时间间隔为T,在交换机egress控制流中:
1、根据路由表,查找到多个待发出的egress端口,以及每个端口对应的复制id(egress_rid,在流表中预先设置);
2、获取上次采集时间LT(保存在寄存器中)和当前时间CT;
3、记录当前交换机设备id到PATH_INFO报头中,同时PATH_HEADER字段加一;
4、判断当前处理的复制包的egress_rid。
3)如果egress_rid等于1,这时如果CT-LT大于T,那么当前交换机设备的INTmetadata数据记录到INT_INFO中,如果当前是最后一跳,INT metadata中复制包个数字段REP_COUNT记录为0;INT_HEADER字段加一;LT用CT更新。
4)如果egress_rid不等于1,这是INT_HEADER字段清零;删除INT_INFO中所有数据。
应用本发明技术的算法,可以有效的降低多播转发过程中整个网络的冗余度。即降低多播转发过程中,整个网络上注入的INT报头的字节数总和。多播过程中,数据包的复制,不再会复制INT metadata信息。而且随着多播深度的增加,降低的效果越明显。以k-aryfat tree拓扑为例,单个INT元数据大小为32Bytes,假设T时间内发生两个多播,多播1和多播2路径完全重叠。此时,随着pods数的增加,single MPINT和multi MPINT的冗余量远小于传统INT技术,如图6所示。
应用本发明技术的算法,在多播转发过程中,无论数据包经过多少次复制,在最后一跳上传INT metadata数据时,途经的每个交换机的INT metadata数据只会上传1次。上传的数据量达到理论上的最小值。同样以k-ary fat tree拓扑为例,随着pod数的增加,MPINT的上传量,无论single MPINT还是multi MPINT,每个结点的INT只会上报一次,显著小于传统INT。
更进一步的,本申请采用数据库为redis数据库,针对单路多播的网络环境,所述redis数据库的结构如图8所示,具体结构如下:
redis数据库中通过hash存储所有INT元数据:使用IP报头的IDENTIFICATION字段作为name值,各INT_INFO中交换设备节点的id作为key值,INT_INFO其他数据组成字符串作为value值存储;路径数据通过set存储:使用IP报头的IDENTIFICATION字段作为key值,BRANCH_SW_ID、INT_INFO中各个交换设备节点的id组成字符串作为value值存储;多个多播的不同IDENTIFICATION分别作为key值,使用特定name。
或者,针对多路多播的网络环境,所述redis数据库的结构如图9所示,具体结构如下:
redis中通过hash存储所有INT元数据:使用IP报头的IDENTIFICATION字段作为name值,各个INT_INFO中交换设备节点的id作为key值,INT_INFO其他数据组成字符串作为value值存储;路径数据通过set存储:使用IP报头的IDENTIFICATION字段作为key值,PATH_INFO中各个交换设备节点的id组成字符串作为value值存储,多个多播的不同IDENTIFICATION,分别作为key值,使用特定name。
进一步的,在监控服务器中,通过IDENTIFICATION字段在redis中获取多条多播路径数据。具体过程为:
步骤4.1,在所述监控中心中,通过IDENTIFICATION字段在所述数据库中获取多条多播路径数据;每条数据中,每个交换设备节点的id作为图的结点,相邻两个交换设备节点的id相连作为图的边,通过IDENTIFICATION字段、switch id字段获取INT元数据作为结点的属性,恢复多播树拓扑图;
步骤4.2,分析拓扑图并结合每个结点的属性字段REP_COUNT判断是否存在丢包。
更近一步的,所述步骤4.2中,判断是否存在丢包的依据为:在拓扑图中,如果对应结点引申出的边的个数和REP_COUNT字段的值不匹配,则可以判断出现了丢包的情况。
图5展示了多播树恢复检测算法的伪代码:算法执行流程细节描述:
1、监控服务器循环监测redis,获取多个IDENTIFICATION的List L;
2、循环L中每个IDENTIFICATION id:
1)通过id获取PATH_INFO的值;
2)将PATH_INFO中每个交换机的设备id作为“图”的结点,对应INT_INFO的值作为结点的属性;
3)连接相邻两个结点,作为“图”的边。
3、图画好后,遍历图中每个结点,获取结点属性REP_COUNT(如果结点属性中没有该字段,说明在采集时间间隔T内该结点不需要采集INT metadata,那么可以通过控制器获取该值)。如果“图”中该结点的出度和REP_COUNT不等,那么判断当前出现了丢包。
由于多播过程中,途经的交换机的INT metadata数据只会保存一份,并不会因为数据包的复制导致INT metadata的多次复制,所以转发出的多个数据包的总大小会小于使用原始INT的场景。那么,数据包达到下一跳交换机时,占用的交换机缓存会更小,因为缓存不足而导致的丢包的概率更低,从而降低多播过程中的丢包率。
在未知拓扑的网络中,应用本发明技术的算法,可以通过多次恢复不同多播树的方法,进而探测一定范围的网络拓扑结构。
在恢复多播拓扑后,结合上传的INT metadata数据,以及拓扑图的完整性,可以初步定为丢包的交换机位置。
实施例2
本申请提供两种面向多播流量的交换设备节点,其中,针对单路多播的网络环境,所述交换设备节点包括第一处理单元,所述第一处理单元,根据路由表,查找到多个待发出的egress端口,以及每个端口对应的egress_rid(复制id);
所述交换设备节点包括第二处理单元,所述第二处理单元判断当前处理的复制包的egress_rid,如果egress_rid等于1,插入当前交换机设备节点的INT metadata数据到INT_INFO中,如果当前是最后一跳,INT metadata中复制包个数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据;BRANCH_SW_ID字段记录当前交换机设备节点的id。
针对多路多播的网络环境,所述交换设备节点包括第一处理单元,所述第一处理单元根据路由表,查找到多个待发出的egress端口,以及每个端口对应的egress_rid(复制id);
所述交换设备节点包括第二处理单元,所述第二处理单元获取上次采集时间LT和当前时间CT;
所述交换设备节点包括第三处理单元,所述第三处理单元,记录当前交换机设备id到PATH_INFO报头中,同时PATH_HEADER字段内数据加1;
所述交换设备节点包括第四处理单元,所述第四处理单元判断当前处理的复制包的egress_rid,如果egress_rid等于1,并且CT–LT的值大于T,所述T为INT metadata采集时间间隔,那么当前交换设备节点的INT metadata数据记录到INT_INFO中,如果当前是最后一跳,INT metadata中复制包各数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;用CT更新LT的值;如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据。
(1)MPINT算法核心——复制包的处理
本发明提出了一种针对多播流量的带内遥测算法MPINT,无论single MPINT还是multi MPINT,最重要的核心就是对数据包的复制处理,只在第一个包插入INT元数据,其他复制包INT报头全部清空。这样最大限度的降低了INT报头的冗余量以及占用的网络负载。
(2)MPINT报头协议设计
MPINT的报头协议设计,尤其是对路径数据的设计,是后续恢复多播树的必不可少的部分。对于single MPINT,由于只监控一路多播流量,所以报头只需一个“挂载点”的字段BRANCH_SW_ID记录交换机id;对于multi MPINT,转发路径数据全部记录在PATH_INFO中,保证在多路多播流量存在路径重叠时,后续恢复多播树正确。
(3)上传数据的存储结构
针对遥测数据上传到监控中心后的数据存储,本发明提出了一种简单有效的存储结构。利用redis的hash+set的结构完成全部数据的组织和保存。其中hash有两个,第一个hash保存所有多播的IDENTIFICATION,第二个hash保存每个IDENTIFICATION下的每个设备的INT元数据。而每一次多播的路径数据,在每一路的最后一跳,统一添加到set中,保证一个多播流量的路径数据只存在一条。
(4)多播树恢复方法
在监控中心,根据(3)中设计的存储结构,本发明提出了相应的多播树恢复算法。监控中心的监控程序可以定期扫描redis数据库,批量完成对多个多播树、网络拓扑的恢复和检测。
(5)丢包分析机制
本发明提出了一种通过分析“图”的结构和属性,间接分析是否多播是否存在丢包的机制。同时,每个交换机的INT元数据作为“图”上结点的属性,除了分析是否丢包,还可以扩展更多的分析功能,比如某个交换机数据包积压可以提示告警等。
本发明的技术关键点为:
(1)MPINT算法核心——复制包的处理
本发明提出了一种针对多播流量的带内遥测算法MPINT。无论single MPINT还是multi MPINT,最重要的核心就是对数据包的复制处理,只在第一个包插入INT元数据,其他复制包INT报头全部清空。这样最大限度的降低了INT报头的冗余量以及占用的网络负载。
(2)MPINT报头协议设计
MPINT的报头协议设计,尤其是对路径数据的设计,是后续恢复多播树的必不可少的部分。对于single MPINT,由于只监控一路多播流量,所以报头只需一个“挂载点”的字段BRANCH_SW_ID记录交换机id;对于multi MPINT,转发路径数据全部记录在PATH_INFO中,保证在多路多播流量存在路径重叠时,后续恢复多播树正确。
(3)上传数据的存储结构
针对遥测数据上传到监控中心后的数据存储,本发明提出了一种简单有效的存储结构。利用redis的hash+set的结构完成全部数据的组织和保存。其中hash有两个,第一个hash保存所有多播的IDENTIFICATION,第二个hash保存每个IDENTIFICATION下的每个设备的INT元数据。而每一次多播的路径数据,在每一路的最后一跳,统一添加到set中,保证一个多播流量的路径数据只存在一条。
(4)多播树恢复方法
在监控中心,根据(3)中设计的存储结构,本发明提出了相应的多播树恢复算法。监控中心的监控程序可以定期扫描redis数据库,批量完成对多个多播树、网络拓扑的恢复和检测。
(5)丢包分析机制
本发明提出了一种通过分析“图”的结构和属性,间接分析是否多播是否存在丢包的机制。同时,每个交换机的INT元数据作为“图”上结点的属性,除了分析是否丢包,还可以扩展更多的分析功能,比如某个交换机数据包积压可以提示告警等。
以上内容是结合具体的实施例对本发明所作的详细说明,不能认定本发明具体实施仅限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明保护的范围。
Claims (10)
1.面向多播流量的带内遥测方法,其特征在于,所述带内遥测方法包括以下步骤:
步骤一,根据路由表,交换设备节点对数据包进行复制处理,只在第一个包插入INT元数据,将其他复制包INT报头全部清空;
步骤二,所述交换设备节点对数据包进行转发,记录当前交换设备节点的设备id;
步骤三,在最后一跳,交换设备节点解析INT元数据以及路径数据信息,发送到监控中心并保存在数据库中;
步骤四,所述监控中心通过IDENTIFICATION字段在所述数据库中获取多条多播路径数据,绘制出带属性的多播树拓扑图,分析拓扑图并结合每个图内结点的属性判断是否丢包。
2.根据权利要求1所述的面向多播流量的带内遥测方法,其特征在于,针对单路多播的网络环境,所述步骤一为:
步骤1.1,根据路由表,所述交换设备节点查找到多个待发出的egress端口,以及每个端口对应的egress_rid;
步骤1.2,判断当前处理的复制包的egress_rid,如果egress_rid等于1,插入当前交换机设备的INT metadata数据到INT_INFO中,如果当前是最后一跳,INT metadata中复制包个数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;
步骤1.3,如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据;BRANCH_SW_ID字段记录当前交换机设备节点的id。
3.根据权利要求1所述的面向多播流量的带内遥测方法,其特征在于,针对多路多播的网络环境,所述步骤一为:
步骤1.1,根据路由表,所述交换设备节点查找到多个待发出的egress端口,以及每个端口对应的egress_rid;
步骤1.2,获取上次采集时间LT和当前时间CT;
步骤1.3,记录当前交换机设备id到PATH_INFO报头中,同时PATH_HEADER字段内数据加1;
步骤1.4,判断当前处理的复制包的egress_rid,如果egress_rid等于1,并且CT – LT的值大于T,所述T为INT metadata采集时间间隔,那么当前交换设备节点的INT metadata数据记录到INT_INFO中,如果当前是最后一跳,INT metadata中复制包各数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;用CT更新LT的值;
步骤1.5,如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据。
4.根据权利要求2所述的面向多播流量的带内遥测方法,其特征在于,所述数据库为redis数据库,针对单路多播的网络环境,所述redis数据库的结构为:
redis数据库中通过hash存储所有INT元数据:使用IP报头的IDENTIFICATION字段作为name值,各INT_INFO中交换设备节点的id作为key值,INT_INFO其他数据组成字符串作为value值存储;路径数据通过set存储:使用IP报头的IDENTIFICATION字段作为key值,BRANCH_SW_ID、INT_INFO中各个交换设备节点的id组成字符串作为value值存储;多个多播的不同IDENTIFICATION分别作为key值,使用特定name。
5.根据权利要求3所述的面向多播流量的带内遥测方法,其特征在于,所述数据库为redis数据库,针对多路多播的网络环境,所述redis数据库的结构为:
redis 数据库中通过hash存储所有INT元数据:使用IP报头的IDENTIFICATION字段作为name值,各个INT_INFO中交换设备节点的id作为key值,INT_INFO其他数据组成字符串作为value值存储;路径数据通过set存储:使用IP报头的IDENTIFICATION字段作为key值,PATH_INFO中各个交换设备节点的id组成字符串作为value值存储,多个多播的不同IDENTIFICATION,分别作为key值,使用特定name。
6.根据权利要求1所述的面向多播流量的带内遥测方法,其特征在于,所述步骤四具体为:
步骤4.1,在所述监控中心中,通过IDENTIFICATION字段在所述数据库中获取多条多播路径数据;每条数据中,每个交换设备节点的 id作为图的结点,相邻两个交换设备节点的id相连作为图的边,通过IDENTIFICATION字段、switch id字段获取INT元数据作为结点的属性,恢复多播树拓扑图;
步骤4.2,分析拓扑图并结合每个结点的属性字段REP_COUNT判断是否存在丢包。
7.根据权利要求6所述的面向多播流量的带内遥测方法,其特征在于,所述步骤4.2中,判断是否存在丢包的依据为:在拓扑图中,如果对应结点引申出的边的个数和REP_COUNT字段的值不匹配,则可以判断出现了丢包的情况。
8.面向多播流量的交换设备节点,其特征在于,所述交换设备节点包括第一处理单元,所述第一处理单元,根据路由表,查找到多个待发出的egress端口,以及每个端口对应的egress_rid;
所述交换设备节点包括第二处理单元,所述第二处理单元判断当前处理的复制包的egress_rid,如果egress_rid等于1,插入当前交换机设备节点的INT metadata数据到INT_INFO中,如果当前是最后一跳,INT metadata中复制包个数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据;BRANCH_SW_ID字段记录当前交换机设备节点的id。
9.面向多播流量的交换设备节点,其特征在于,所述交换设备节点包括第一处理单元,所述第一处理单元根据路由表,查找到多个待发出的egress端口,以及每个端口对应的egress_rid;
所述交换设备节点包括第二处理单元,所述第二处理单元获取上次采集时间LT和当前时间CT;
所述交换设备节点包括第三处理单元,所述第三处理单元,记录当前交换机设备id到PATH_INFO报头中,同时PATH_HEADER字段内数据加1;
所述交换设备节点包括第四处理单元,所述第四处理单元判断当前处理的复制包的egress_rid,如果egress_rid等于1,并且CT – LT的值大于T,所述T为INT metadata采集时间间隔,那么当前交换设备节点的INT metadata数据记录到INT_INFO中,如果当前是最后一跳,INT metadata中复制包各数字段REP_COUNT记录为0;INT_HEADER字段内数据加1;用CT更新LT的值;如果egress_rid不等于1,INT_HEADER字段清零;删除INT_INFO中所有数据。
10.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被计算机执行用于实现如权利要求1至7任一项所述的面向多播流量的带内遥测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011245597.8A CN112866002B (zh) | 2020-11-10 | 2020-11-10 | 面向多播流量的带内遥测方法、交换设备节点以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011245597.8A CN112866002B (zh) | 2020-11-10 | 2020-11-10 | 面向多播流量的带内遥测方法、交换设备节点以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112866002A CN112866002A (zh) | 2021-05-28 |
CN112866002B true CN112866002B (zh) | 2023-04-07 |
Family
ID=75996243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011245597.8A Active CN112866002B (zh) | 2020-11-10 | 2020-11-10 | 面向多播流量的带内遥测方法、交换设备节点以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112866002B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113489652A (zh) * | 2021-07-08 | 2021-10-08 | 恒安嘉新(北京)科技股份公司 | 一种数据流放大方法、装置、汇聚分流器以及存储介质 |
CN113810225B (zh) * | 2021-09-03 | 2024-04-30 | 中科南京信息高铁研究院 | Sdn网络的带内网络遥测探测路径规划方法及系统 |
CN114465924B (zh) * | 2021-12-24 | 2023-12-22 | 阿里巴巴(中国)有限公司 | 网络设备测试方法、数据包发生方法和交换芯片 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108243123A (zh) * | 2016-12-23 | 2018-07-03 | 中兴通讯股份有限公司 | 广播报文的处理方法、装置、控制器和交换机 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259344B (zh) * | 2017-11-29 | 2020-12-29 | 新华三技术有限公司 | 遥测Telemetry方法和装置 |
CN108199924B (zh) * | 2018-01-26 | 2020-02-18 | 北京邮电大学 | 基于带内网络遥测的全网流量可视化方法及装置 |
US10911355B2 (en) * | 2018-12-06 | 2021-02-02 | Cisco Technology, Inc. | Multi-site telemetry tracking for fabric traffic using in-band telemetry |
CN109672591B (zh) * | 2019-01-21 | 2022-05-17 | 中国科学技术大学 | 实时可编程的抽样带内网络遥测的方法 |
CN111224839B (zh) * | 2019-12-26 | 2022-05-31 | 长沙星融元数据技术有限公司 | 一种带内网络遥测功能的验证方法、装置、存储介质及电子设备 |
-
2020
- 2020-11-10 CN CN202011245597.8A patent/CN112866002B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108243123A (zh) * | 2016-12-23 | 2018-07-03 | 中兴通讯股份有限公司 | 广播报文的处理方法、装置、控制器和交换机 |
Also Published As
Publication number | Publication date |
---|---|
CN112866002A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112866002B (zh) | 面向多播流量的带内遥测方法、交换设备节点以及计算机可读存储介质 | |
US10887209B2 (en) | In-Situ OAM for multicast path, telemetry data collection and receive-only service function proof of transit | |
US7843845B2 (en) | Diagnostic tool and method for troubleshooting multicast connectivity flow problem(s) in a layer 2 aggregation network | |
US10075371B2 (en) | Communication system, control apparatus, packet handling operation setting method, and program | |
JP7424725B2 (ja) | マルチキャストパケット処理方法、デバイスおよびコンピュータプログラム | |
US11716273B2 (en) | On-path telemetry for multicast traffic | |
CN109617956B (zh) | 一种数据处理方法和装置 | |
CN109275044B (zh) | 一种实现ip组播流灵活调度的系统 | |
CN109168050A (zh) | 一种基于sdn的视频组播方法 | |
CN111934936A (zh) | 网络状态检测方法、装置、电子设备及存储介质 | |
CN110619066B (zh) | 一种基于目录树的信息获取方法和装置 | |
CN107968753A (zh) | 修改媒体接入控制地址转发表的方法和装置 | |
US20110128957A1 (en) | Multicast tree state replication | |
Zheng et al. | Multipath in-band network telemetry | |
CN110115011B (zh) | 组播业务处理方法及接入设备 | |
CN103368770B (zh) | 基于网关级拓扑的自适应alm覆盖网络构建及维护系统 | |
CN111787368A (zh) | 一种服务器测试方法和装置 | |
CN109361546B (zh) | 一种基于视联网的程序预警方法和装置 | |
CN111510341A (zh) | 一种视联网的网络测试方法及装置 | |
WO2016161716A1 (zh) | 一种组播数据流监测方法、装置及组播转发设备 | |
JP2017216613A (ja) | 転送装置および転送方法 | |
CN110381029B (zh) | 一种监控资源同步方法及装置 | |
CN110768854B (zh) | 一种基于视联网的数据统计方法以及装置 | |
CN110505429B (zh) | 一种会场处理方法及系统 | |
CN111355927A (zh) | 基于视联网的监控设备确定方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
OR01 | Other related matters | ||
OR01 | Other related matters |