CN113259143B - 信息处理方法、设备、系统及存储介质 - Google Patents

信息处理方法、设备、系统及存储介质 Download PDF

Info

Publication number
CN113259143B
CN113259143B CN202010082309.5A CN202010082309A CN113259143B CN 113259143 B CN113259143 B CN 113259143B CN 202010082309 A CN202010082309 A CN 202010082309A CN 113259143 B CN113259143 B CN 113259143B
Authority
CN
China
Prior art keywords
event
message
information
data
packet
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
Application number
CN202010082309.5A
Other languages
English (en)
Other versions
CN113259143A (zh
Inventor
孙晨
刘洪强
周禹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010082309.5A priority Critical patent/CN113259143B/zh
Priority to PCT/CN2020/083981 priority patent/WO2021155637A1/zh
Publication of CN113259143A publication Critical patent/CN113259143A/zh
Application granted granted Critical
Publication of CN113259143B publication Critical patent/CN113259143B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Abstract

本申请实施例提供一种信息处理方法、设备、系统及存储介质。在本申请实施例中,网络交换设备具有可编程的数据平面,利用数据平面的可编程性,使能数据平面准确、及时地选取事件报文,并基于事件报文精准、快速地向数据处理端上报事件信息,数据处理端保存事件信息,以事件信息为基础面向网络管理员提供查询操作,为网络管理员准确、快速地定位网络问题提供了基础,可解决网络问题定位准确度差、速度慢等问题。

Description

信息处理方法、设备、系统及存储介质
技术领域
本申请涉及互联网技术领域,尤其涉及一种信息处理方法、设备、系统及存储介质。
背景技术
数据中心的网络规模越来越庞大,单个集群可能包含上千台交换机、上万台服务器、上十万台光电线路。在这样庞大的网络中,由于各种软件、硬件的配置的问题或故障,网络应用会时常遇到各种性能问题,例如连接中断、带宽下降、延时上升等等。这些性能问题会引发严重的服务质量下降,并对网络运营商造成损失。
现有技术中常用的应用性能异常处理方式,可称之为“在线修复、离线诊断”。首先,网络管理员定位出发生故障的设备或链路。然后,由于数据中心网络具有较好的冗余性,网络管理员可以在不影响网络应用正常运行的情况下,安全地隔离故障设备或链路。最后,网络管理员在不影响网络应用正常运行的情况下,线下诊断故障原因。
在实际应用中,网络管理员定位发生故障的设备或链路的方式,通常是:结合从多个来源收集到的粗粒度信息,并根据经验猜测网络是否存在问题,如果存在,问题可能在哪里。这种猜测可能存在错误,其验证也耗费大量时间,并拖慢定位进度,导致故障设备或链路的定位时间往往达到分钟级甚至小时级。
发明内容
本申请的多个方面提供一种信息处理方法、设备、系统及存储介质,用以解决网络问题定位准确度差、速度慢等问题。
本申请实施例提供一种网络交换设备,包括:可编程的数据平面;可编程的数据平面被编程,以用于:从经过网络交换设备的数据流中,选取发生设定事件的事件报文;基于事件报文向数据处理端提供事件信息,事件信息用于描述发生设定事件的相关信息,可供定位与设定事件相关的网络问题。
本申请实施例还提供一种信息处理方法,适用于网络交换设备,网络交换设备具有可编程的数据平面,该方法由被编程后的数据平面实现,该方法包括:从经过网络交换设备的数据流中,选取发生设定事件的事件报文;基于事件报文向数据处理端提供事件信息,事件信息用于描述发生设定事件的相关信息,可供定位与设定事件相关的网络问题。
本申请实施例还提供一种信息处理方法,适用于数据处理端,该方法包括:接收网络交换设备发送的事件信息,事件信息用于描述经过网络交换设备的数据流发生设定事件的相关信息;保存事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与设定事件相关的网络问题。
本申请实施例还提供一种信息处理方法,适用于数据处理端,该方法包括:接收网络交换设备发送的事件报文及其对应的事件元数据,事件报文是经过网络交换设备的数据流中发生设定事件的报文;从事件报文以及对应的事件元数据中提取事件信息,事件信息用于描述发生设定事件的相关信息;保存事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与设定事件相关的网络问题。
本申请实施例还提供一种数据处理设备,包括:存储器、处理器以及通信组件;存储器,用于存储计算机程序;处理器,与存储器耦合,用于执行计算机程序,以用于:通过通信组件接收网络交换设备发送的事件信息,事件信息用于描述经过网络交换设备的数据流发生设定事件的相关信息;保存事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与设定事件相关的网络问题。
本申请实施例还提供一种数据处理设备,包括:存储器、处理器以及通信组件;存储器,用于存储计算机程序;处理器,与存储器耦合,用于执行计算机程序,以用于:通过通信组件接收网络交换设备发送的事件报文及其对应的事件元数据,事件报文是经过网络交换设备的数据流中发生设定事件的报文;从事件报文及其对应的事件元数据中提取事件信息,事件信息用于描述发生设定事件的相关信息;保存事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与设定事件相关的网络问题。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现本申请实施例提供的可由数据处理设备执行的信息处理方法中的步骤。
本申请实施例还提供一种配置方法,适用于网络交换设备,网络交换设备包括可编程的数据平面,该方法包括:响应于配置操作,获取可编程的数据平面所需的配置文件;将配置文件配置至可编程的数据平面中,以完成配置操作;其中,可编程的数据平面被配置为:从经过网络交换设备的数据流中,选取发生设定事件的事件报文;基于事件报文向数据处理端提供事件信息,事件信息用于描述发生设定事件的相关信息,可供定位与设定事件相关的网络问题。
本申请实施例还提供一种数据中心系统,包括:多台服务器、多台网络交换设备以及数据处理设备;多台服务器与数据处理设备分别与多台网络交换设备通信连接;多台网络交换设备中至少部分网络交换设备包括可编程的数据平面,且可编程的数据平面被编程,可用于:从经过可编程的数据平面所属的网络交换设备的数据流中,选取发生设定事件的事件报文;基于事件报文向数据处理端提供事件信息,事件信息用于描述发生设定事件的相关信息,可供定位与设定事件相关的网络问题;数据处理设备,用于获取可编程的数据平面提供的事件信息,保存事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与设定事件相关的网络问题。
在本申请实施例中,网络交换设备具有可编程的数据平面,利用数据平面的可编程性,使能数据平面准确、及时地选取事件报文,并基于事件报文精准、快速地向数据处理端上报事件信息,数据处理端保存事件信息,以事件信息为基础面向网络管理员提供查询操作,为网络管理员准确、快速地定位网络问题提供了基础,可解决网络问题定位准确度差、速度慢等问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请示例性实施例提供的一种数据中心系统的结构示意图;
图1b为本申请示例性实施例提供的另一种数据中心系统的结构示意图;
图1c为本申请示例性实施例提供的检测链路丢包事件的原理的示意图;
图1d为本申请示例性实施例提供的可编程数据平面的一种工作原理示意图;
图1e为本申请示例性实施例提供的事件栈结构以及向事件栈存取事件信息的示意图;
图1f为本申请示例性实施例提供的可编程数据平面的另一种工作原理示意图;
图2a为本申请示例性实施例提供的一种网络交换设备的结构示意图;
图2b为本申请示例性实施例提供的另一种网络交换设备的结构示意图;
图3a为本申请示例性实施例提供的一种配置方法的流程示意图;
图3b为本申请示例性实施例提供的一种信息处理方法的流程示意图;
图4a为本申请示例性实施例提供的另一种信息处理方法的流程示意图;
图4b为本申请示例性实施例提供的又一种信息处理方法的流程示意图;
图5a为本申请示例性实施例提供的一种数据处理设备的结构示意图;
图5b为本申请示例性实施例提供的另一种数据处理设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种网络系统,该网络系统包括:多台网络设备、多台网络交换设备以及数据处理设备。多台网络设备与多台网络交换设备通信连接,多台网络交换设备与数据处理设备通信连接。当然,多台网络设备之间也可以直接或间接通信连接,多台网络交换设备之间也可以直接或间接通信连接。这些设备之间的通信连接方式可以是有线连接,也可以是无线连接。
在本实施例中,并不限定网络设备的实现形式,可以是任何能够接入网络系统的计算机设备,例如可以是智能手机、平板电脑、个人电脑、笔记本电脑、IoT设备等终端设备,也可以是传统服务器、云服务器、服务器阵列、机柜、大型机等服务器设备。同理,在本实施例中,也不限定网络交换设备的实现形式,可以是任何具有设备互联和数据交换、转发等功能的设备,例如可以是交换机、路由器或集线器等。同理,在本实施例中,也不限定数据处理设备的实现形式,可以是任何具有通信和数据处理能力的设备,例如可以是智能手机、平板电脑、个人电脑或笔记本电脑等终端设备,也可以是传统服务器、云服务器、服务器阵列、机柜、大型机等服务器设备。
可选地,可以将网络系统中的一台或多台网络设备作为本实施例中的数据处理设备;当然,也可以在网络系统中单独部署数据处理设备,对此不做限定。
在本实施例中,网络交换设备具有控制平面和数据平面。其中,至少部分网络交换设备的数据平面可被编程,即网络系统中至少部分网络交换设备具有可编程的数据平面。利用数据平面的可编程性,可使能数据平面准确、及时地选取事件报文,并基于事件报文精准、快速地向数据处理设备上报事件信息;相应地,数据处理设备可保存事件信息,以事件信息为基础面向网络管理员提供查询操作,为网络管理员准确、快速地定位网络问题提供了基础,可解决网络问题定位准确度差、速度慢等问题。
在本实施例中,并不限定网络系统的实现形态。例如,网络系统可以实现为城域网、局域网、企业网或校园网等,也可以实现为数据中心、集群或机房等,或者还可以实现为公有云、私有云、边缘云或混合云等云网络。在图1a中以数据中心为例对网络系统进行图示,图1a所示网络系统可被称为数据中心系统。
如图1a所示,该数据中心系统包括:多台服务器11、多台网络交换设备12以及数据处理设备13。其中,服务器11主要负责执行各种计算任务,可认为是端侧设备,服务器11仅是端侧设备的一种示例,并不限于此;网络交换设备12主要作用是实现服务器11之间的互联,可认为是网络侧设备。多台服务器11之间通过多台网络交换设备12进行互联,服务器11之间的网络数据(例如各种报文)可经过网络交换设备12进行转发。
如图1a所示,一台服务器11可以直接与一台、两台或两台以上的网络交换设备12通信连接,也可以直接与其他服务器11通信连接,并将其他服务器11作为中继,间接与一台、两台或两台以上的网络交换设备12通信连接。这里的通信连接可以是有线连接,也可以是无线连接。
需要说明的是,在数据中心系统中,除了包括服务器11、网络交换设备12以及数据处理设备13之外,还包括一些光电线路,用于实现服务器11、网络交换设备12以及数据处理设备13之间的互联。在本实施例中,并不限定服务器11和网络交换设备12的数量,可由数据中心系统的规模决定。例如,在一些规模较大的数据中心系统中,单个集群可能包含上千台网络交换设备,上万台服务器,以及上十万台光电线路。
在本实施例中,并不限定网络交换设备12的实现形态,例如可以包括路由器、交换机或集线器等。例如,在图1a所示的数据中心系统中,网络交换设备12包括交换机和路由器,但并不限于此。
无论是哪种实现形态的网络交换设备,在本实施例中,如图1a所示,每台网络交换设备12具备控制平面和数据平面,控制平面与数据平面分离。控制平面相当于网络交换设备12的大脑,运行于一定硬件结构(例如处理器、芯片或板卡等)上,实现网络交换设备12的控制逻辑。数据平面主要实现网络交换设备12的数据交换功能,也运行于一定硬件结构(例如芯片、板卡或线卡等)上。其中,控制平面具有可编程性,这点与现有技术相同或类似,在此不再赘述。
在本实施例中,在多台网络交换设备12中,至少部分网络交换设备12的数据平面具有可编程性,即在多台网络交换设备12中,至少部分网络交换设备12具有可编程的数据平面。其中,至少部分网络交换设备12具有可编程的数据平面包括两种情况:
情况1:在多台网络交换设备12中,全部网络交换设备12均具有可编程的数据平面。
情况2:在多台网络交换设备12中,部分网络交换设备12具备可编程的数据平面,部分网络交换设备12具有不可编程的数据平面。其中,不可编程的数据平面是指数据平面所能实现的功能是固化好的,网络用户无法改变。可编程的数据平面是指数据平面所能实现的功能是可编程的,网络用户可以根据自己的应用需求自定义数据平面的功能,实现与协议无关的网络数据处理流程。
在图1a所示数据中心系统中,以情况2为例,即部分网络交换设备12具有可编程的数据平面,部分网络交换设备12具有不可编程的数据平面为例进行图示。其中,全部网络交换设备12均具备可编程的数据平面的数据中心系统如图1b所示。
特别说明:对于不具有可编程数据平面的网络交换设备,若其同样具备与本申请实施例中可编程数据平面相同或类似的能力,则同样适用于本申请实施例。在本申请实施例中,重点针对具备可编程数据平面的网络交换设备12展开描述。
在本实施例中,对于具备可编程数据平面的网络交换设备12,利用其数据平面的可编程性,对数据平面进行编程致使其数据平面至少实现以下功能:从经过其所属网络交换设备12的数据流中,选取发生设定事件的事件报文;基于事件报文向数据处理设备13提供事件信息。
其中,经过一台网络交换设备12的数据流是指在一次通信过程中由一个服务器11经网络交换设备12依次发往另一服务器11的各种报文的集合。经过一台网络交换设备12的数据流可能是一条,也可能是多条。无论是一条数据流还是多条数据流,可编程的数据平面能够识别出每条数据流中发生的设定事件,并可选取发生设定事件的事件报文。其中,事件报文是数据流中发生设定事件的报文,或者是数据流中遇到设定事件的报文。
其中,事件信息用于描述发生设定事件的相关信息,可供定位与设定事件相关的网络问题(例如故障位置或设备)。在本实施例中,并不对事件信息的内容进行限定,凡是能够描述发生设定事件的相关信息均适用于本申请实施例。例如,事件信息可以包括以下至少一种:设定事件的类型(反映发生的是哪种事件类型)、发生设定事件的详情信息(反映发生设定事件的详细信息)、以及发生设定事件的数据流信息(反映哪条数据流发生了设定事件)。其中,发生设定事件的数据流信息可以是任何能够反映发生设定事件数据流的信息,例如可以是报文的五元组或二元组等信息。设定事件的详情信息包括但不限于:发生设定事件的原因、发生设定事件的位置(例如端口、队列等)、设定事件发生后引起的结果、发生设定事件的时间等。根据事件类型的不同,发生设定事件的详情信息也会有所不同,可参见下面示例。
在本实施例中,并不对设定事件进行限定,可以是任何与网络故障有关的事件,具体可根据监控需求、系统特性、系统中的应用特点等因素灵活设定。例如,本申请实施例中的设定事件可以包括但不限于:拥塞事件、暂停事件、丢包事件以及换路事件等中的至少一种。其中,设定事件不同,可编程数据平面从数据流中选取发生设定事件的事件报文的方式也会有所不同,相应地,发生设定事件的详情信息以及设定事件对应的事件信息也会有所不同。下面将结合几种设定事件的定义,对选择事件报文的方式以及对应的事件信息进行示例性说明。
拥塞(congestion)事件:拥塞在数据中心系统及其它网络中都较为常见。例如,假设数据中心系统中的服务器11上部署有MapReduce(映射/归约)等应用,这些应用产生了一类名为incast的流量特征,即多个发送方服务器同时向同一个接收方服务器发送数据。在这种情况下,负责向接收方服务器转发数据的网络交换设备12的端口会经历队列堆积,在其中排队的报文会经历排队延时,形成拥塞。另外,如果数据中心系统采用不公平的负载均衡策略,也可能造成拥塞。
网络交换设备12具有多个入端口和多个出端口,一个报文从一个入端口进入网络交换设备12,在网络交换设备12的内部报文会被交换到一个出端口,从该出端口将报文送出网络交换设备12。对于拥塞事件,可编程的数据平面可以针对网络交换设备12的各出端口,判断各出端口对应的队列中报文的排队延时是否超出设定时延阈值,或判断各出端口对应的队列的长度是否超出设定的长度阈值。若判断结果为是,则确定该出端口上发生了拥塞事件,相应地,该出端口对应的队列中的报文即为发生了拥塞事件的事件报文。
对于拥塞事件,其详情信息可以包括但不限于:发生拥塞的网络交换设备的信息(如IP地址)发生拥塞的端口信息(如端口号),发生拥塞的队列信息(如队列编号)),发生拥塞的大概时间,以及报文的排队延时或队列长度等;相应地,对应的事件信息可以包括但不限于如下信息:发生拥塞的网络交换设备的信息(如IP地址)/端口信息(如端口号)/队列信息(如队列编号),遇到拥塞的数据流信息(如五元组或其余可用来标识一条数据流的特征),发生拥塞的大概时间,以及报文的排队延时或队列长度等。
暂停(Pause)事件:若数据中心系统是无损网络,则在无损网络中,对任一网络交换设备来说,若其出端口对应的队列的长度超出设定长度阈值,则该网络交换设备可向其上游设备(即向该网络交换设备的该出端口发送报文的设备)发送PFC(英文为:PriorityFlow Control)流控报文,使其上游设备暂停发送报文,直至该出端口对应的队列逐渐排空。然而,在某些场景下,如PFC死锁、队列堵死等情况下,队列不会被排空,上游设备中的报文将会持续被暂停。一旦恶化,可能会形成全网范围内的PFC风暴及流量停发。在本申请实施例中,可以利用数据平面的可编程性,使能数据平面自主识别被暂停的事件报文并向数据处理设备13提供暂停事件对应的事件信息,以便及时、准确地发现PFC风暴、流量停发等问题。
对于暂停事件,基于可编程性,数据平面可记录网络交换设备中各出端口或队列是否处于暂停发送状态。基于此,对于接收到的报文,若该报文需要被路由到网络交换设备的某个出端口(简称为目标出端口),则可编程数据平面可以检测该目标出端口或其对应的队列是否处于暂停发送状态;若是,则确定发生了暂停事件,该报文是经历了暂停事件的事件报文。
对于暂停事件,其详情信息可以包括但不限于:发生暂停的网络交换设备的信息(如IP地址)发生暂停的端口信息(如端口号),发生暂停的队列信息(如队列编号)),以及发生暂停的大概时间等;相应地,对应的事件信息可以包括但不限于如下信息:发生暂停事件的网络交换设备的信息(如IP地址)/端口信息(如端口号)/队列信息(如队列编号),遇到暂停事件的数据流信息(如五元组),遇到暂停事件的时间。
丢包(Drop)事件:在数据平面中,报文可能因为多种原因被丢弃,如拥塞丢包、流水线丢包、链路静默丢包等。丢包可能造成应用性能急剧下降,造成损失。数据平面的丢包事件可以粗略分为设备丢包和链路丢包。对于设备丢包事件,数据平面可以判断其流水线是否对报文作出了丢弃决定,或出端口对应的队列是否由于拥塞丢弃报文。若是,则确定发生过了设备丢包事件(例如流水线丢包事件或拥塞丢包事件),被丢弃的报文即为发生设备丢包事件的事件报文。
相比之下,链路丢包事件往往难以检测,其原因如下:由于链路故障、折断、污损、接头松动等问题,报文在链路上可能会经历比特翻转事件,即部分比特传输发生错误,从而导致到达链路对端的报文无法通过报文格式校验,会被直接丢弃;另外,由于接收到的报文是错误的,所以无法识别出是哪个数据流经历了链路丢包事件。在本申请实施例中,链路丢包事件中的“链路”包含在上下游两个网络交换设备的数据平面之间所有经过的模块以及连接线路。
对于一个工作正常的链路,上游网络交换设备发送的正确报文个数与下游网络交换设备收到的正确报文个数理论上是相等,且应该是连贯的。基于此,在本实施例中,基于可编程数据平面,提出一种基于报文编号的链路丢包检测方法。如图1c所示,以上游的网络交换设备A向下游的网络交换设备B发送报文为例,该方法包括以下操作:
步骤1:网络交换设备A在将待发送的报文发送出去之前,其可编程数据平面先对待发送的报文进行编号,并在本地缓存每个待发送的报文的编号及其所属的数据流信息。
如图1c所示,网络交换设备A在本地维护一个环形缓存区(Ring buffer),用来缓存待发送报文的编号及其所属的数据流信息,并通过一计数器记录已经缓存的报文个数。由于环形缓冲区的大小有限,在环形缓存区的空间用光时,将从头开始顺次替换。需要说明的是,利用环形缓存区来缓存报文编号及数据流信息仅为示例性实施方式,并不限于这一种缓存方式。例如,也可以采用非环形缓存区来缓存报文编号及数据流信息。
步骤2:网络交换设备A将携带了编号的报文发送至对端的网络交换设备B。
步骤3:网络交换设备B进行丢包检测,即检查收到的正确报文的编号是否连续;若不连续,认为发生了链路丢包事件。
在图1c中,网络交换设备A依次向网络交换设备B发送了编号为10-16的报文,但是网络交换设备B接收到了编号为10-12以及14-16的报文,未接收到编号为13的报文。网络交换设备B在接收到编号为14的报文时,可确定丢失了编号为13的报文,确定发生了链路丢包事件。
步骤4:网络交换设备B向网络交换设备A发送丢包通知消息,该丢包通知消息中携带缺失报文的编号。
步骤5:网络交换设备A接收到丢包通知消息后,查找本地缓存的报文编号以确定发生链路丢包事件的事件报文及其数据流信息。
进一步,如图1c所示,网络交换设备A还可以根据丢包通知消息中携带的缺失报文的编号,结合环形缓存区中记录的信息,确定发生链路丢包的事件报文及其对应的数据流信息。
对于丢包事件,其详情信息可以包括但不限于:发生丢包的网络交换设备的信息(如IP地址)发生丢包的端口信息(如端口号),发生丢包的队列信息(如队列编号)),发生丢包的大概时间,以及发生丢包的原因等;相应地,对应的事件信息可以包括但不限于如下信息:发生丢包事件的网络交换设备的信息(如IP地址)/端口信息(如端口号)/队列信息(如队列编号),发生丢包的链路信息,发生丢包的数据流信息,发生丢包事件的时间,丢包的原因等。
换路事件:为了保证数据中心系统具有高可靠性,数据中心系统通常具有较高冗余性,在两台服务器11之间可能存在多条等价路径。为充分利用冗余链路的带宽,数据中心系统中运行着如等价多路径(Equal Cost Multiple Path,ECMP)等负载均衡算法,将流量分发到多条路径上。然而,在遇到链路故障、网络交换设备故障、协议故障等情况时,一条或多条链路无法正常使用。负载均衡算法会将数据流重新分配到新的路径上。或者,数据中心系统中运行的路由交换协议(例如BGP、OSPF、IS-IS)的正常收敛,或因为遇到链路故障、网络交换设备故障等异常情况造成的收敛,也会将数据流重新分配到新的路径上。这些情况称之为换路,及时、准确地捕捉换路事件有助于帮助快速诊断网络故障。
对于换路事件,可编程数据平面可针对每个待发送的报文,检测待发送的报文所属的数据流信息是否是第一次出现,即可编程数据平面会学习经过本网络交换设备的数据流是否是一条新流。若是新流,则确定该数据流是从其他路径换过来的,认为发生了换路事件。当然,对于第一次出现在数据中心系统中的数据流,在本实施例中,也会将其归为发生换路事件的范畴内。
对于换路事件,其详情信息可以包括但不限于:发生换路的网络交换设备的信息(如IP地址)发生换路的端口信息(如端口号),发生换路的队列信息(如队列编号)),发生换路的大概时间以及换路后的新路径(相当于发生换路事件的结果)等;相应地,对应的事件信息可以包括但不限于如下信息:发生换路事件的网络交换设备的信息(如IP地址)/端口信息(如端口号)/队列信息(如队列编号),发生换路事件的数据流信息,出现换路事件的时间信息以及换路后的新路径等。
在一可选实施例中,在从数据流中选取事件报文的过程中,还可以生成事件报文对应的事件元数据。事件元数据是对设定事件进行描述的数据,包括但不限于:设定事件的类型以及发生设定事件的详情信息。在选取事件报文的过程中,可以识别所发生的事件类型以及发生事件的设备/端口/队列、时间、原因、结果等信息,可以将这些信息作为事件报文对应的事件元数据。
无论采用何种方式,在从经过网络交换设备的数据流中选取到发生设定事件的事件报文并生成事件报文对应的事件元数据之后,可编程的数据平面可基于事件报文及其对应的事件元数据,向数据处理设备13提供事件信息。其中,可编程的数据平面向数据处理设备提供事件信息的实现方式包括但不限于以下两种:
方式1:可编程的数据平面从事件报文及其对应的事件元数据中提取事件信息,向数据处理设备提供事件信息。在方式1中,是直接向数据处理设备13提供事件信息。
方式2:可编程的数据平面向数据处理设备发送事件报文及其对应的事件元数据,以供数据处理设备从事件报文及其对应的事件元数据中提取事件信息。在方式2中,是间接向数据处理设备13提供事件信息。
下面结合图1d-图1e对可编程数据平面采用方式1的详细实施方式进行示例性说明,并结合图1f对可编程数据平面采用方式2的详细实施方式进行示例性说明。
如图1d所示,为方式1下可编程数据平面的一种整体工作原理,包括以下操作:
(1-1)事件报文选取:可编程数据平面从经过其所属网络交换设备的数据流中,选取发生设定事件的事件报文并生成事件报文对应的事件元数据。
实际应用中,对任一数据流来说,其中遇到事件的报文仅占很小一部分,事件报文的选取能够极大降低需要监控的网络流量,与复制全量报文相比,开销可以降低一至两个数量级。
在图1d中,假设可编程数据平面从经过其所属网络交换设备的数据流中,选取到发生事件E1的事件报文为6个,发生事件E2的事件报文为5个,发生事件E3的事件报文为4个,发生事件E4的事件报文为5个,以及发生事件E5的事件报文为4个。事件E1-E5代表不同事件。图1d中,不同样式的长形框(或方形框)表示不同数据流下的事件报文及其对应的事件元数据。其中,数据流s1和s2发生了事件E1和E4;数据流s3发生了事件E1、E4和E5;数据流s4发生了事件E2;数据流s5发生了事件E2和E4;数据流s6、s7发生了事件E3和E5。
对于不同设定事件,选取发生设定事件的事件报文的方式也会有所不同。其中,针对拥塞事件、暂停事件、丢包事件以及换路事件选取事件报文方式可参见前述实施例,在此不再赘述。
(1-2)事件报文去冗余:可编程数据平面对事件报文进行去冗余处理,得到去冗余后的目标事件报文及其对应的事件元数据。
对任一事件来说,在选取到的事件报文中,可能包含同一数据流下的多个事件报文。如图1d所示,对事件E1,选取到数据流s1下2个事件报文,选取到数据流s3下3个事件报文;对事件E2,选取到数据流s4下2个事件报文,选取到数据流s5下3个事件报文;对事件E3,选取到数据流s6下2个事件报文,选取到事件流s7下2个事件报文;对事件E4,选取到数据流s5下2个事件报文;对事件E5,选取到数据流s7下2个事件报文。
然而,事件的上报仅需包含事件的详情信息及数据流信息即可,与事件报文的个数没有必然关系。基于此,在本操作中对事件报文进行去除冗余处理,优选地,可以以同一条数据流保留一个事件报文为目标,对事件报文进行去冗余处理。这种方式可以在保证事件覆盖率的情况下,进一步降低事件上报流量,节约流量的传输、处理和存储开销。在本实施例中,并不限定对事件报文进行去冗余采用所采用的方法,下面举例说明。
可选地,可以采用基于哈希的去重方法,即每种事件,对发生该事件的各事件报文或事件报文的报文头或报文头中的流信息进行哈希处理,得到哈希值,将哈希值相同的事件报文去除。例如,可以采用Bloom Filter技术实现。
可选地,还可以采用基于精确匹配的去重方法,即对每种事件,准确学习和记录发生该事件的事件报文所属的数据流信息,将属于这些数据流信息的后续事件报文丢弃,达到去冗余的目的。
可选地,还可以将对事件报文去冗余的约束条件设置为:假阴性为0,即所有经历时间的数据流至少有一个事件报文,同时最小化假阳性,即尽量去除属于同一数据流的报文冗余。针对该约束条件,本申请实施例提供了一种新型的分级分组投票去重方法。在该方法中,可编程数据平面维护一张信息表,为便于区分,将该信息表称为第一信息表;可选地,第一信息表可以是哈希表、精确匹配表、链表、散列等多种数据结构实现。第一信息表中的每个表项用于记录一条数据流信息及其对应的事件报文数量,其中,事件报文数量可以通过计数器记录。
基于上述,针对接收到的每个事件报文,计算该事件报文所属的数据流信息的哈希值,并将该哈希值作为索引,在第一信息表中进行匹配。若未匹配到与该哈希值对应的目标表项,将该事件报文作为目标事件报文,并将该事件报文所属的数据流信息记录到一个空表项中,开始对该数据流信息对应的事件报文数量进行计数。
进一步,若匹配到与该哈希值对应的目标表项,则将目标表项中记录的数据流信息与该事件报文所属的数据流信息进行比较。若目标表项中记录的数据流信息与该事件报文所属的数据流信息相同,则将目标表项对应的事件报文数量加1,并将该事件报文丢弃。若目标表项中记录的数据流信息与该事件报文所属的数据流信息不相同,则将目标表项对应的事件报文数量减1;并判断减1后的事件报文数量是否为0。若减1后的事件报文数量为0,则将该事件报文作为目标事件报文,并将目标表项中记录的数据流信息替换为该事件报文所属的数据流信息,并重新对事件报文数量进行计数。若减1后的事件报文数量不为0,则将该事件报文丢弃。
采用上述方法,可以提高大数据流留在第一信息项中的概率,确保无假阴性,并尽可能降低假阳性。
需要注意的是,在可编程数据平面资源足够的情况下,上述方法还可以采用多级串联的方式。可选地,不同级别可以采用不同的哈希算法。相同的数据流信息在不同级别会被哈希到不同表项中,从而进一步减少假阳性。
需要注意的是,在可编程数据平面资源受限的情况下,上述方法可以拆分至数据平面中多级流水线中实现。例如,可以在第一级流水线中,确认数据流信息中的IP地址部分是否相同;在第二级流水线中,确认数据流信息中的端口部分是否相同;等等。上述方案还可以进一步拆分为更细的粒度,例如在第一级流水线仅确认数据流信息中的源IP地址是否相同,在第二级流水线中仅确认数据流信息中的目的IP地址是否相同,在第三级流水线中确认数据流信息中的端口部分是否相同,等。其中,具体拆分方式取决于网络交换设备中各级流水线的资源情况。
(1-3)事件信息提取:可编程数据平面从目标事件报文及其对应的事件元数据中提取事件信息。
事件报文及其对应的事件元数据中均包含有与事件相关的信息,故可以从事件报文及其对应的事件元数据中提取事件信息,即一部分事件信息来自于事件元数据,一部分事件信息来自于事件报文。一个事件报文中包括很多信息,例如报文头和报文载荷,这些信息中有一些与事件无关的信息,例如报文头中除去可以标识数据流的信息之外其它信息以及报文载荷,属于无用信息。在本操作中,从事件报文中提取与事件相关的部分事件信息,所提取的与事件相关信息的大小(例如为20字节)远小于事件报文,这可进一步降低事件上报流量。对事件元数据中的信息,可以全部作为事件信息上报,也可以选择其中部分上报,对此不做限定。如图1d所示,经过事件信息提取操作后,可得到事件E1-E5对应的事件信息,这些事件信息的大小明显小于事件E1-E5下的事件报文及其对应事件元数据的大小。
在一可选实施例中,可编程数据平面可以维护事件栈(Event Stack),用于暂存事件信息。如图1e所示,事件栈包含一个栈顶计数器(Stack Top Counter)和事件存储两部分。栈顶计数器用于记录事件栈中暂存的事件信息的个数。事件存储用于存储事件信息。可选地,事件存储可以包括一个或多个栈块。基于事件栈,在提取到事件信息后,可以将事件信息存储至事件栈中至少一个栈块中。需要注意的是,对于不同的可编程数据平面,其存储位宽可能有所不同,所以不同可编程数据平面所维护的事件栈中栈块的最大存储能力会有所不同。但是,对同一可编程数据平面来说,各栈块的最大存储能力(即最大位宽)一般是相同的。
可选地,若事件信息的大小小于或等于栈块的最大位宽,可以将事件信息完整地存储至一个栈块中。若事件信息的大小大于栈块的最大位宽,则可以将事件信息拆分为多个信息块,将多个信息块存储至多个栈块中,每个信息块的大小小于或等于栈块的最大位宽。如图1e所示,假设栈块的最大位宽是64比特,事件信息的大小为20字节,则可以将事件信息拆分为3个信息块,3个信息块的大小分别为64比特(即8字节)、64比特和32比特(即4字节),然后将3个信息块存储至图1e所示的3个栈块内,第三个栈块仅占用了32比特,还有32比特的剩余空间。需要说明的是,除了上述拆分方式之外,也可以将20字节的事件信息拆分为5个32比特的信息块,将5个信息块存储至5个栈块内。
在从事件报文及其对应的事件元数据中提取事件信息之后,可以对事件报文进行相应处理。例如,对于经历拥塞事件或换路事件的事件报文,可被转发出网络交换设备,而对于经历丢包事件或暂停事件的事件报文,在提取事件信息后可被丢弃。对于暂停事件,可以将发生暂停事件的报文复制一份作为事件报文,由于是事件报文是复制报文,故将其丢弃并不会影响原始报文的后续处理。
(1-4)事件信息批处理:将指定数量个事件信息拼接成一个数据包,将数据包发送给网络交换设备的控制平面或数据处理设备。
如图1d所示,事件信息提取操作去除了事件报文中的无用信息,每个数据流的事件信息比较小,有利于减小存储开销。然而,若将每个事件信息放入一个数据包中上送,会产生大量的小包,这会降低事件信息接收方(即控制平面或数据处理设备)的吞吐量,这会降低事件信息接收方处理事件信息的效率。鉴于此,在本操作中,采用批处理技术,将指定数量个事件信息合并放在一个数据包中上送,可减少数据传输量,有利于提高事件信息接收方(即控制平面或数据处理设备)的吞吐量。
在一可选实施例中,将数据包作为一个载体,触发栈块pop(出栈)栈顶元素的操作,提取栈顶的事件信息;将栈顶的事件信息与已携带的事件信息拼接。若此时,数据包携带的事件信息个数达到指定数量,则将数据包发送出去;然后,复制该数据包,并清空其内容开始下一轮事件信息的收集和拼接。若此时,数据包携带的事件信息个数未达到指定数量,则将数据包循环送回事件栈中,并继续收集栈顶的事件信息,直至数据包携带的事件信息个数达到指定数量为止。在图1e中,实线所示为向栈块内压入(push)事件信息的过程,虚线所示为数据包从栈块内pop栈顶事件信息进行拼接的过程。
(1-5)事件信息去冗余:控制平面或数据处理设备对数据包中的事件信息进行去冗余处理。
考虑到可编程数据平面的资源、可编程性等限制,可能无法对事件报文做到完全去冗余。如图1d所示,经过去冗余后,事件E1下依旧存在数据流s3的2个事件报文。鉴于此,在经合并后的事件信息可被上送至网络交换设备的控制平面或数据处理设备,之后,可以充分利用控制平面或数据处理设备中处理器(CPU)的处理能力和存储资源,对事件信息进一步去冗余,争取做到一个数据流发生任一事件的事件信息仅出现一次,消除假阳性。在图1d中,以事件信息去冗余操作由数据处理设备实施为例进行图示。
在本实施例中,并不限定对事件信息进行去冗余处理的方式。可选地,在网络交换设备的控制平面(即CPU)或数据处理设备的CPU可以维护第二信息表,第二信息表记录有已经发送给数据处理端的事件信息。第二信息表可以是哈希表、精确匹配表、链表、散列等多种数据结构实现。基于此,在接收到携带有指定数量个事件信息的数据包后,可以从数据包中解析出指定数量个事件信息;对解析出的每个事件信息,检查第二信息表中是否已有相应记录;若是,说明该事件信息是冗余的,可以将该事件信息丢弃;若否,则保留该事件信息,将未被丢弃的事件信息记录到第二信息表中。可选地,若事件信息去冗余操作由网络交换设备的控制平面执行,则可以还可以将未被丢弃的事件信息重新封装为新的数据包,并发送给数据处理设备。对于第二信息表是哈希表的情况下,可以将事件信息进行哈希,将哈希值与哈希表中的哈希值进行比较;若该哈希值已经存在哈希表中,则说明该事件信息是冗余的,可以将其丢弃;反之,说明该事件信息需要被保留。
此外,若事件信息去冗余操作由网络交换设备的控制平面(即CPU)实施,则网络交换设备的控制平面(即CPU)在对事件信息进行去冗余后,还需要将去冗余后的事件信息重新封装成新的数据包,将数据包发送给数据处理设备。可选地,在该过程中,还可以包括:(1-6)流量整形操作,即网络交换设备的控制平面(即CPU)可以对要上报的数据包进行流量整形,以防止突发事件信息产生大量的上送流量冲击网络及数据处理设备。一种流量整形方式为:网络交换设备的控制平面(即CPU)先将需要上送的数据包缓存在CPU本地,然后,以相对稳定的速率向数据处理设备发送。当然,其他流量整形方式也适用于网络交换设备的控制平面(即CPU)。
在一可选实施例中,网络交换设备的控制平面(即CPU)与数据处理设备之间通过TCP等可靠传输层协议建立可靠连接。基于此,网络交换设备的控制平面(即CPU)可以通过TCP等可靠连接,将整形后的数据包发送给数据处理设备。其中,可靠传输层协议可以实现丢包重传功能,可以保证事件信息的完整性,有利于保证网络管理员基于事件信息定位网络问题的准确性。
在另一可选实施例中,网络交换设备的控制平面(即CPU)与数据处理设备之间通过UDP等不可靠传输层协议建立不可靠连接。基于此,网络交换设备的控制平面(即CPU)可以通过UDP等不可靠连接,将整形后的数据包发送给数据处理设备。这种方式的优势是对网络交换设备的开销较低,但缺点是可能出现丢包,无法保证事件信息的完整性。基于此,数据处理后端在接收到数据包之后,可对接收到的数据包进行完整性校验。
可选地,在采用不可靠连接的情况下,一种对数据完整性的校验方法为:网络交换设备的控制平面(即CPU)为每个传输的事件信息的数据包添加序列号,并在发出数据包之后在本地缓存该数据包一段时间;相应地,数据处理设备接收到数据包之后,可以检测数据包的序列号是否连续;若发现收到的数据包的序列号与之前已收到的数据包的序列号不连续,则可以将缺失数据包的序列号通知给网络交换设备的控制平面(即CPU),网络交换设备的控制平面(即CPU)将重新发送该数据包。在该方式中,通过追踪数据包的序列号的方式,可解决丢包问题,有利于保证事件信息的完整性。
(1-7)事件信息保存:数据处理设备13获取可编程的数据平面提供的事件信息,保存事件信息,例如将事件信息存入数据库中,并面向网络管理员提供查询操作,以供网络管理员定位与设定事件相关的网络问题。
可选地,数据处理设备13可以按照事件类型对事件信息进行分类存储。对每个事件信息包括:事件类型(例如拥塞、暂停、换路或丢包),发生事件的数据流信息,与事件相关的详情信息(例如发生原因、发生端口/队列,发生时间等)等。根据事件类型的不同,事件信息也会有所不同。下面对不同事件对应的事件信息进行举例说明:
拥塞事件:交换机、出端口、出队列、流标识(如<源IP、目的IP、源端口、目的端口、协议>构成的五元组,或<源IP、目的IP>构成的二元组等)、排队延时、队列长度、时间戳(表示拥塞事件发生时间);
暂停事件:交换机、入端口、出端口、出队列、流标识、时间戳(表示暂停事件发生时间);
丢包事件:丢包位置(如交换机流水线、交换机缓存或链路)、丢包原因、流标识、时间戳(表示丢包事件发生时间);
换路事件:交换机、入端口、出端口、出队列、流标识、时间戳(表示换路事件发生时间)。
基于上述较为丰富的事件信息,数据处理设备13可以向网络管理员提供各种维度的查询操作,例如包括但不限于以下至少一种:数据流维度的查询操作、事件维度的查询操作、设备维度的查询操作以及时间维度的查询操作。其中,数据流维度的查询操作是指以指定数据流为查询对象,查询指定数据流在指定时间发生过哪些事件。事件维度的查询操作是指以指定事件为查询对象,查询指定时间发生指定事件的数据流有哪些。设备维度的查询操作是指以指定设备为查询对象,查询指定设备在指定时间段发生过哪些事件。时间维度的查询操作是指以指定时间为查询对象,查询指定时间内各数据流发生过哪些事件。当然,这些维度也可以任意方式进行聚合,形成聚合查询维度。
在此说明:在图1d所示实施例中,包括:(1-1)事件报文选取、(1-2)事件报文去冗余、(1-3)事件信息提取、(1-4)事件信息批处理、(1-5)事件信息去冗余、(1-6)流量整形操作和(1-7)事件信息保存。其中,(1-2)事件报文去冗余、(1-4)事件信息批处理、(1-5)事件信息去冗余和(1-6)流量整形操作均为可选操作,这些可选操作可以择一使用,也可以以任意方式组合使用。另外,在采用上述方式1的情况下,除了(1-1)事件报文选取和(1-3)事件信息提取之外,由可编程数据平面实现的其它操作可以根据需求灵活地移到数据处理设备端实现,得到不同的变形方案。下面介绍几种变形方案。
变形方案1:上述操作(1-1)-(1-4)由可编程数据平面实现,操作(1-5)和(1-7)由数据处理设备实现。
变形方案2:上述操作(1-1)-(1-3)由可编程数据平面实现,操作(1-5)和(1-7)由数据处理设备实现。
变形方案3:上述操作(1-1)和(1-3)由可编程数据平面实现,操作(1-5)和(1-7)由数据处理设备实现。
如图1f所示,为方式2下可编程数据平面的一种工作原理,包括以下操作:
(2-1)事件报文选取:可编程数据平面从经过其所属网络交换设备的数据流中,选取发生设定事件的事件报文并生成事件报文对应的事件元数据。
(2-2)事件报文去冗余:可编程数据平面对事件报文进行去冗余处理,得到去冗余后的目标事件报文及其对应的事件元数据,将目标事件报文及其对应的事件元数据发送给数据处理设备。
(2-3)事件信息提取:数据处理设备从目标事件报文及其对应的事件元数据中提取事件信息。
(2-4)事件信息去冗余:数据处理设备对数据包中的事件信息进行去冗余处理。
(2-5)事件信息保存:数据处理设备保存事件信息,例如将事件信息存入数据库中,并面向网络管理员提供查询操作,以供网络管理员定位与设定事件相关的网络问题。
在图1f所示实施例中,操作(2-1)与图1d所示实施例中的操作(1-1)相同,操作(2-1)中对事件报文进行去冗余过程与图1d所示实施例中操作(1-2)中对事件报文进行去冗余过程相同,故在此均不做赘述。在图1f所示实施例中,操作(2-3)和(2-4)的原理与图1d所示实施例中操作(1-3)和(1-4)的原理相同,区别在于:在图1d所示实施例中这些操作由数据平面(硬件)实施,在图1f所示实施例中这些操作由数据处理端(软件)实施。故详细实施过程在此不再赘述。
在此说明:在图1f所示实施例中,包括:(2-1)事件报文选取、(2-2)事件报文去冗余、(2-3)事件信息提取、(2-4)事件信息去冗余和(2-5)事件信息保存。其中,(2-2)事件报文去冗余和(2-4)事件信息去冗余均为可选操作,这些可选操作可以择一使用,也可以以任意方式组合使用。另外,在采用上述方式2的情况下,除了(2-1)事件报文选取之外,(2-2)事件报文去冗余也可以移到数据处理设备端实现,得到变形方案4。
变形方案4:上述操作(2-1)由可编程数据平面实现,操作(2-2)-(2-5)由数据处理设备实现。
在极端情况下,上述操作(2-1)也可以移到数据处理设备实现,即得到变形方案5,即上述(2-1)-(2-5)均由数据处理设备实现。在变形方案5中,可编程数据平面可以将数据流的全部报文(无论是否经历事件)上报给数据处理设备,由数据处理设备选取发生设定事件的事件报文,进行事件信息提取等操作。
在此说明,在上述各实施例中,由数据处理设备执行的各种操作具体可由数据处理设备的CPU执行。
在数据中心系统中,可能由于各种软件、硬件配置的问题或故障,网络应用会时常遇到各种性能问题,如连接中断、带宽下降、延时上升等。为了诊断故障原因,网络管理员需要快速、准确地定位出发生故障的设备或链路。在本申请上述实施例中,基于网络交换设备的可编程数据平面,可以将网络问题的定位与系统中数据流遇到的事件关联起来,为快速、准确地定位网络问题提供了机会。具体地,通过对网络交换设备的数据平面进行编程,由数据平面独立地从数据流中精准、及时地识别数据流中遇到设定事件的事件报文。基于这种方案,网络管理员能够全面抓取网络故障导致对流量的影响,同时最小化开销。进一步,基于数据平面的可编程性,该方案能够持续、并发、实时监控数据流中遇到的事件,包括但不限于:丢包、拥塞、路径变化、暂停等事件,甚至包括传统方法难以诊断的链路静默丢包事件。
进一步,本申请实施例方案还具有如下技术效果:
(1)流事件全覆盖。本申请利用数据平面的可编程性,使能数据平面主动上报全量流事件信息,并通过数据完整性校验保证后端能完整收到所有流事件,实现流事件的全覆盖,使网络监控进入前所未有的细粒度时代。
(2)处理开销最低。本申请利用数据平面的可编程性,精准上报流事件信息,去除所有无用或冗余的信息,保证数据传输和处理开销最小化。
(3)提升网络稳定性。基于全量流事件,网络管理员能够以较高(例如100%)的信心证明网络清白,或实现秒级网络故障的定位,进一步提高网络稳定性。
在上述实施例中,主要介绍了可编程数据平面的功能,并未限定可编程数据平面的实现结构,凡是能够实现上述实施例中描述的各种功能的实现结构均适用于本申请实施例的可编程数据平面。例如,本申请实施例的可编程数据平面可以采用流水线结构。当然,也可以采用非流水线结构。进一步,不同厂商的流水线结构在具体实现上也会各有千秋。在本申请下述实施例中给出一种具体的流水线结构。
图2a为本申请示例性实施例提供的一种网络交换设备的结构示意图。如图2a所示,该网络交换设备20包括:控制平面21和可编程的数据平面22。控制平面21与可编程的数据平面22分离,但两者之间可通信。控制平面21相当于网络交换设备的大脑,负责实现网络交换设备的控制逻辑,例如协议报文转发、协议表项计算、维护等都属于控制平面21的范畴。可编程的数据平面22负责网络交换设备的数据交换功能,例如报文的接收、解封装、封装、转发等都属于可编程的数据平面22的范畴。
在本实施例中,数据平面22具有可编程性,基于数据平面22的可编程性,允许用户根据自己的应用需求自定义数据平面22的功能。在本实施例中,数据平面22被编程,具有以下功能:可从经过网络交换设备20的数据流中,选取发生设定事件的事件报文;基于事件报文向数据处理端提供事件信息,所述事件信息用于描述发生设定事件的相关信息,可供定位与设定事件相关的网络问题。
其中,经过网络交换设备20的数据流可能是一条,也可能是多条,无论是一条数据流还是多条数据流,可编程的数据平面22能够识别出每条数据流中发生的设定事件,并可选取发生设定事件的事件报文。其中,事件报文是数据流中发生设定事件的报文,或者是数据流中遇到设定事件的报文。
其中,事件信息用于描述发生设定事件的相关信息,可供定位与设定事件相关的网络问题(例如故障位置或设备)。在本实施例中,并不对事件信息的内容进行限定,凡是能够描述发生设定事件的相关信息均适用于本申请实施例。例如,事件信息可以包括以下至少一种:设定事件的类型、设定事件的详情信息以及发生设定事件的数据流信息(。其中,发生设定事件的数据流信息可以是任何能够反映发生设定事件数据流的信息,例如可以是报文的五元组或二元组等信息。设定事件的详情信息包括但不限于:发生设定事件的原因、发生设定事件的位置(例如端口、队列等)、设定事件发生后引起的结果、发生设定事件的时间等。根据事件类型的不同,发生设定事件的详情信息也会有所不同。
在本实施例中,并不对设定事件进行限定,可以是任何与网络故障有关的事件,具体可根据监控需求、系统特性、系统中的应用特点等因素灵活设定。例如,本申请实施例中的设定事件可以包括但不限于:拥塞事件、暂停事件、丢包事件以及换路事件等中的至少一种。关于拥塞事件、暂停事件、丢包事件以及换路事件的详细说明可参见前述系统实施例中的描述,在此不再赘述。
在本实施例中,可编程的数据平面22为流水线结构。如图2a所示,可编程的数据平面22依次包括:入端流水线(ingress pipeline)221、缓存管理单元(Memory managementunit,MMU)222和出端流水线(egress pipeline)223。
入端流水线221、MMU 222以及出端流水线223依次对经过网络交换设备20的数据流进行报文接收处理、报文交换处理和报文发送处理。即,一条数据流中的报文首先到达入端流水线221,入端流水线221对报文进行接收处理;这里的接收处理包括但不限于:将报文暂存至入端缓存中,对报文进行正确性校验,为报文查找路由表以确定报文对应的目标出端口等。MMU 222主要对网络交换设备20的缓存进行管理,管理网络交换设备20各出端口对应的队列(一个队列占用部分缓存区域),负责将报文从入端缓存中拷贝到目标出端口对应的队列中,等等。出端流水线223主要负责将每个出端口对应队列中的报文发送出去,在发送出去之前还可以对报文进行校验等。
在本实施例中,入端流水线221、MMU 222以及出端流水线223除了具有上述传统报文处理功能之外,还可被编程以实现事件上报功能。具体地,入端流水线221还用于在对经过网络交换设备20的数据流进行报文接收处理的过程中,选取发生设定事件的事件报文,并将选取的事件报文及其对应的事件元数据上报给出端流水线223;MMU 222还用于在对经过网络交换设备20的数据流进行报文交换处理的过程中,选取发生设定事件的事件报文,并将选取的事件报文及其对应的事件元数据上报给出端流水线223;出端流水线223,还用于在对经过网络交换设备20的数据流进行报文发送处理的过程中,选取发生设定事件的事件报文,并根据本端选取的事件报文及其对应的事件元数据以及由入端流水线221和MMU222上报的事件报文及其对应的事件元数据向数据处理端上报事件信息。
需要说明的是,在不同报文处理过程中可能发生的事件类型会有所不同,因此,在报文接收处理的过程中发生的设定事件,在报文交换处理的过程中发生的设定事件,以及在报文发送处理的过程中发生的设定事件可能会有所不同。例如,在设定事件包括:拥塞事件、丢包事件、暂停事件以及换路事件的情况下,在报文接收处理的过程中可能发生流水线丢包事件和/或暂停事件,在报文交换处理的过程中可能发生缓存丢包事件,在报文发送处理的过程中可能发生拥塞事件、换路事件、流水线丢包事件和/或链路丢包事件等。其中,缓存丢包事件、链路丢包事件以及流水线丢包事件都属于丢包事件。相应地,入端流水线221需要在报文接收处理的过程中,选取发生丢包事件和/或暂停事件的事件报文,并将发生丢包事件和/或暂停事件的事件报文以及对应的事件元数据上报给出端流水线223;MMU 222需要在报文交换处理的过程中,选取发生缓存丢包事件的事件报文,并将发生缓存丢包事件的事件报文以及对应的事件元数据上报给出端流水线223;出端流水线223需要在报文发送处理的过程中,选取发生拥塞事件、换路事件、流水线丢包事件和/或链路丢包事件的事件报文,进而根据自身选取出的事件报文及其对应的事件元数据和接收到的事件报文及其对应的事件元数据向数据处理端上报事件信息。
在本申请实施例中,并不限定入端流水线221、MMU 222以及出端流水线223的具体实现结构,凡是可以选取相应事件报文的实现结构均适用于本申请实施例。在本申请下述实施例中,针对端流水线221、MMU 222以及出端流水线223分别给出一种示例性的实现结构。
如图2b所示,入端流水线221的一种实现结构包括:入端事件检测模块2211。入端事件检测模块2211主要用于在报文接收处理的过程中,选取发生设定事件的事件报文,生成事件报文对应的事件元数据,并将事件报文及其对应的事件元数据上报给出端流水线223。
除入端事件检测模块2211之外,入端流水线221还包括:一些用于对报文进行接收处理的流水线模块,主要包括图2b中示出的查表模块2212(Tables lookup)。查表模块2212主要用于为接收到的各报文查找路由表,如果查找到该报文对应的路由信息,则可以确定该报文对应的目标出端口。在确定报文对应的目标出端口之后,报文会被拷贝到目标出端口对应的队列中,等待出端流水线223将其从该出端口发送出去。
在查路由表过程中,如果未查找到该报文对应的路由信息,或者,查找到的目标出端口故障,就会丢弃该报文(即发生流水线丢包事件)。另外,在将报文拷贝到目标出端口对应的队列中之前,需要检测目标出端口的工作状态。出端口的工作状态包括:正常发送状态、暂停发送状态和故障状态。若目标出端口的工作状态处于暂停发送状态,则意味着该报文遇到了暂停事件,无法被及时拷贝到目标出端口对应的队列中。进一步可选地,入端流水线221还可以包括对接收到的报文进行格式等各种校验的校验模块;如果报文未通过校验,会被丢弃(即发生流水线丢包事件);如果报文通过校验,查表模块2212就会为报文进行查表。当然,用于对报文进行校验的校验模块为可选模块,而非必选模块。
进一步,根据报文接收处理的过程中可能发生的事件类型以及设定事件的类型,入端事件检测模块2211可以包括:入端流水线丢包检测模块202和暂停事件检测模块201中的至少一个。
其中,入端流水线丢包检测模块202,用于检测在报文接收处理的过程中是否发生流水线丢包事件,并在为是的情况下,生成事件元数据,将发生流水线丢包事件的报文作为事件报文连通事件元数据一并上报给出端流水线223。其中,报文接收处理的过程由入端流水线221中的流水线(例如校验模块和查表模块2212)执行,故将报文接收处理过程中的丢包事件称为流水线丢包事件。
根据报文接收处理过程的不同,入端流水线丢包检测模块202检测是否发生流水线丢包事件的方式也会有所不同。在一可选实施例中,报文接收处理的过程包括针对接收到的各报文查路由表的过程,则入端流水线丢包检测模块202具体可用于:检测针对接收到的各报文查路由表的过程中是否发生丢包;若检测到查路由表过程中发生丢包,确定发生流水线丢包事件。在另一可选实施例中,报文接收处理的过程包括针对接收到的各报文查路由表的过程和针对接收到的各报文的校验过程,则入端流水线丢包检测模块202具体可用于:检测针对接收到的各报文查路由表的过程中是否发生丢包,并检测针对接收到的各报文的校验过程中是否发生丢包;若检测到任一过程中发生丢包,确定发生流水线丢包事件。在又一可选实施例中,报文接收处理的过程包括针对接收到的各报文的校验过程,则入端流水线丢包检测模块202具体可用于:检测针对接收到的各报文的校验过程中是否发生丢包;若检测到检验过程中发生丢包,确定发生流水线丢包事件。
其中,暂停事件检测模块201,用于检测在报文接收处理的过程中是否发生暂停事件,并在为是的情况下,生成事件元数据,将发生暂停事件的报文作为事件报文连同事件元数据一并上报给出端流水线223。其中,可以将发生暂停事件的报文复制一份作为事件报文,以降低事件上报对后续报文处理的影响。若网络交换设备20中某个出端口的工作状态处于暂停发送状态,且接收到的报文中有报文还需要路由至该出端口,则认为发生了暂停事件。基于此,暂停事件检测模块201具体用于:在接收到的报文需要被路由至目标出端口的情况下,检测目标出端口是否处于暂停发送状态,若是,确定发生暂停事件。
进一步,如图2b所示,入端流水线221还包括:入端链路丢包检测模块2213,用于检测经过网络交换设备20的数据流是否发生链路丢包事件,并在为是的情况下,向上游设备发送丢包通知消息,以通知上游设备发生了链路丢包事件。
关于链路丢包事件的检测可由网络交换设备20和其上游设备相互配合实现。具体地,上游设备在向网络交换设备20发送报文之前,可为报文添加编号,并在本地缓存报文的编号及其数据流信息一段时间。对网络交换设备20来说,其会接收到带有编号的报文,入端链路丢包检测模块2213具体通过检测来自上游设备的报文的编号是否连续,来判断链路上是否发生丢包;若连续,确定链路上未发生丢包;若不连续,确定链路上发生了丢包,即发生了链路丢包事件。对入端链路丢包检测模块2213来说,通过将接收到的报文的编号进行比较,可以获知丢失报文的编号,但是却无法知道丢失报文具体是谁,也无法知道丢失报文所属的数据流信息,这些信息只有上游设备知道,故入端链路丢包检测模块2213在确定发生链路丢包事件的情况下,可将丢失报文的编号携带在丢包通知消息中一并上报给上游设备,这样上游设备不仅可以确定发生了链路丢包事件,还可以确定发生链路丢包事件的事件报文及其所属的数据流信息,进而可向数据处理端进行事件上报。
对于进入网络交换设备20的报文,查表模块2212会为报文查找对应的目标出端口,在为报文查找到目标出端口的情况下,报文会被缓存到目标出端口对应的队列中,等待发送。在该缓存过程中,如果目标出端口的队列已满,则该报文会被丢弃(即发生缓存丢包事件)。基于此,如图2b所示,MMU 222的一种实现结构包括:缓存丢包检测模块2221,用于检测在向各出端口对应的队列中缓存报文的过程中是否发生缓存丢包事件,并在为是的情况下,生成事件元数据,将发生缓存丢包事件的报文作为事件报文连通事件元数据一并上报给出端流水线223。
如图2b所示,出端流水线223的一种实现结构包括:事件报文处理模块2232和出端事件检测模块2231。其中,出端事件检测模块2231,主要用于在报文发送处理的过程中,选取发生设定事件的事件报文,并将事件报文及其对应的事件元数据上报给事件报文处理模块2232。事件报文处理模块2232用于接收入端流水线221(具体是入端流水线221中各个入端事件检测模块2211)以及MMU222(具体是指MMU 222中的缓存丢包检测模块2221)上报的事件报文及其对应的事件元数据,并接收出端事件检测模块2231发送的事件报文及其对应的事件元数据,根据这些事件报文及其对应的事件元数据向数据处理端提供事件信息。
除出端事件检测模块2231之外,出端流水线223还包括:一些用于对报文进行发送处理的流水线模块,例如对待发送的报文进行格式等各种校验的校验模块;如果报文未通过校验,会被丢弃(即发生流水线丢包事件);如果报文通过校验,报文会被发送出去。当然,用于对报文进行校验的校验模块为可选模块,而非必选模块。另外,报文被缓存至目标出端口对应的队列中之后,会等待发送。在等待发送过程中,可能会因为出端口拥塞而被丢包。进一步,在报文被发送出去之后,也可能会发生链路丢包。再者,报文也由可能因为原本链路故障而被重新分配到网络交换设备20所在的链路上,即还可能发生换路事件。
进一步,根据报文发送处理的过程中可能发生的事件类型以及设定事件的类型,如图2b所示,出端事件检测模块2231可以包括:拥塞事件检测模块203、换路事件检测模块204、出端流水线丢包检测模块205和出端链路丢包检测模块206中的至少一个。
拥塞事件检测模块203,用于检测网络交换设备20的各出端口是否发生拥塞事件,并在为是的情况下,生成事件元数据,将发生拥塞事件的报文作为事件报文连同事件元数据一并发送给事件报文处理模块2232。可选地,拥塞事件检测模块203具体用于:针对各出端口,判断该出端口对应的队列中报文的排队延时是否超出设定时延阈值,或者判断该出端口对应的队列的长度是否超出设定的长度阈值;若是,确定该出端口发生了拥塞事件。该出端口上排队的报文即为发生拥塞事件的事件报文。
换路事件检测模块204,用于检测网络交换设备20中是否发生换路事件,并在为是的情况下,生成事件元数据,将发生换路事件的报文作为事件报文连同事件元数据一并发送给事件报文处理模块2232。可选地,换路事件检测模块204具体用于:针对每个待发送的报文,检测该待发送的报文所属的数据流信息(例如五元组或二元组)是否是第一次出现;若是,确定发生换路事件。
出端流水线丢包检测模块205,用于检测在报文发送处理的过程中是否发生流水线丢包事件,并在为是的情况下,生成事件元数据,将发生流水线丢包事件的报文作为事件报文连同事件元数据一并发送给事件报文处理模块2232。在一可选实施例中,报文发送处理的过程包括:对每个待发送的报文进行校验的过程,则出端流水线丢包检测模块205具体用于:检测在对每个待发送的报文进行校验的过程中是否发生丢包,若是,确定发生流水线丢包事件。
出端链路丢包检测模块206,用于检测在报文发送处理的过程中是否发生链路丢包事件,并在为是的情况下,生成事件元数据,将发生链路丢包事件的报文作为事件报文连同事件元数据一并发送给事件报文处理模块2232。
在一可选实施例中,网络交换设备20可与其下游设备相互配完成链路丢包检测。具体地,出端链路丢包检测模块206在将每个待发送的报文发送出去之前,对每个待发送的报文进行编号,以供下游设备根据报文编号协助判断是否发生链路丢包事件;以及检测是否接收到下游设备在确定发生链路丢包事件时返回的丢包通知消息,若是,确定发生链路丢包事件。下游设备会接收到网络交换设备20发送的带有编号的报文,通过判断报文编号是否连续可以确定其与网络交换设备20之间的链路上是否发生丢包。进一步,在发生链路丢包的情况下,下游设备还可以将缺失报文的编号携带在丢包通知消息中一并提供给网络交换设备20中的出端链路丢包检测模块206。出端链路丢包检测模块206具体还用于:在本地缓存每个待发送的报文的编号及其所属的数据流信息;以及根据丢包通知消息中携带的缺失报文的编号,确定发生链路丢包的事件报文及其所属的数据流信息。
如图2b所示,事件报文处理模块2232分别与入端流水线丢包检测模块202、暂停事件检测模块201、缓存丢包检测模块2221、拥塞事件检测模块203、换路事件检测模块204、出端流水线丢包检测模块205和出端链路丢包检测模块206通信连接。入端流水线丢包检测模块202、暂停事件检测模块201、缓存丢包检测模块2221、拥塞事件检测模块203、换路事件检测模块204、出端流水线丢包检测模块205和出端链路丢包检测模块206可通过内部端口(Internal port)将选取出的事件报文及其对应的事件元数据发送给事件报文处理模块2232。
在一可选实施例中,事件报文处理模块2232具体用于:将接收到的事件报文及其对应的事件元数据发送给数据处理端,以供数据处理端从事件报文及其对应的事件元数据中提取事件信息。可选地,事件报文处理模块2232可以直接将接收到的事件报文及其对应的事件元数据发送给数据处理端。或者,事件报文处理模块2232可以对接收到的事件报文进行去冗余处理,得到目标事件报文,将目标事件报文及其对应的事件元数据发送给数据处理端。其中,对事件报文进行去冗余处理,可以在保证事件覆盖率的情况下,进一步降低事件上报流量,节约流量的传输、处理和存储开销。关于去冗余处理的方式可参见下述实施例中的描述,暂不详述。
在另一可选实施例中,事件报文处理模块2232具体用于:从接收到的事件报文及其对应的事件元数据中提取事件信息,并将事件信息提供给数据处理端。进一步可选地,事件报文处理模块2232可以对接收到的事件报文进行去冗余处理,得到目标事件报文;之后,从目标事件报文及其对应的事件元数据中提取事件信息,将事件信息提供给数据处理端。其中,对事件报文进行去冗余处理,可以在保证事件覆盖率的情况下,进一步降低事件上报流量,节约流量的传输、处理和存储开销。
在本实施例中,并不限定事件报文处理模块2232对事件报文进行去冗余处理所采用的方式,例如可以采用基于哈希的去重方法,或者采用基于精确匹配的去重方法,或者采用本申请实施例提供的分级分组投票去重方法。其中,采用的去重方法不同,事件报文处理模块2232的实现结构就会不同。在本申请实施例中,以采用本申请实施例提供的分级分组投票去重方法为例,给出事件报文处理模块2232的一种实现结构。
在分级分组投票去重方法中,事件报文处理模块2232可以以一条数据流保留一个事件报文为目标,对接收到的事件报文进行去冗余处理,得到目标事件报文。事件报文处理模块2232包括:去冗余子模块,并会维护第一信息表;第一信息表中的每个表项用于记录一条数据流信息及其对应的事件报文数量。
其中,去冗余子模块用于:针对接收到的每个事件报文,将该事件报文所属的数据流信息的哈希值作为索引,在该第一信息表中进行匹配;若未匹配到对应的目标表项,将该事件报文作为目标事件报文,并将该事件报文所属的数据流信息记录到一个空表项中,开始对事件报文数量进行计数;若匹配到对应的目标表项,且目标表项中记录的数据流信息与该事件报文所属的数据流信息相同,则将目标表项对应的事件报文数量加1;若匹配到对应的目标表项,但目标表项中记录的数据流信息与该事件报文所属的数据流信息不相同,则将目标表项对应的事件报文数量减1;以及若减1后的事件报文数量为0,则将该事件报文作为目标事件报文,并将目标表项中记录的数据流信息替换为该事件报文所属的数据流信息,并重新对事件报文数量进行计数。
进一步,事件报文处理模块2232还包括:事件提取子模块、事件栈以及批处理子模块。其中,事件栈包括栈顶计数器和至少一个栈块。
事件提取子模块,用于从去冗余子模块得到的目标事件报文及其对应的事件元数据中提取事件信息,将事件信息存储至事件栈中的至少一个栈块中。可选地,事件提取子模块具体用于:在事件信息的大小大于栈块的最大位宽时,将事件信息拆分为多个信息块,将多个信息块存储至多个栈块中;每个信息块的大小小于或等于所述最大位宽。事件提取子模块所实现的各操作的详细描述,可参见前述实施例,在此不再赘述。
栈顶计数器,用于记录至少一个栈块中暂存的事件信息的个数。批处理子模块,用于从至少一个栈块中提取指定数量个事件信息,将指定数量个事件信息拼接成一个数据包,将该数据包提供给数据处理端。指定数量可根据数据平面的流水线资源、带宽以及应用场景等因素灵活设定,对此不做限定。例如,指定数量可以是5,8,10等。
可选地,批处理子模块可直接将携带有事件信息的数据包发送给数据处理端;或者,也可以将携带有事件信息的数据包上报给网络交换设备20的控制平面21,由控制平面21将该数据包发送给数据处理端。批处理子模块所实现的各操作的详细描述,可参见前述实施例,在此不再赘述。
进一步,控制平面21在将数据包发送给数据处理端之前,还可以对数据包中携带的事件信息进行去冗余,以在保证事件覆盖率的情况下,进一步降低事件上报流量,节约流量的传输、处理和存储开销。
如图2b所示,控制平面21包括:处理器211和存储器212;存储器212用于存储计算机程序;处理器211执行计算机程序,以用于:对数据包中的事件信息进行去冗余处理,得到新的数据包;并将新的数据包发送给数据处理端。
进一步,处理器211可在本地维护第二信息表,第二信息表用于记录已经发送给数据处理端的事件信息。基于此,处理器211具体用于:从接收到的数据包中解析出指定数量个事件信息;针对解析出的每个事件信息,检查第二信息表中是否已有相应记录;若是,则丢弃该事件信息;进而,将未被丢弃的事件信息重新封装为新的数据包。进一步,处理器211还用于:将未被丢弃的事件信息记录到第二信息表中,以便对后续接收到的事件信息进行去冗余。
进一步,处理器211还用于对发往网络交换设备新的数据包进行流量整形,以防止突发事件信息产生大量的上送流量冲击网络及数据处理端。关于对事件信息进行去冗余和流量整形的相关描述,可参见前述系统实施例,在此不再赘述。
图3a为本申请示例性实施例提供的一种配置方法的流程示意图。该方法用于对上述实施例提供的网络交换设备进行配置,主要用于对网络交换设备中可编程的数据平面进行功能配置。如图3a所示,该方法包括以下步骤:
31a、响应于配置操作,获取网络交换设备中可编程的数据平面所需的配置文件。
32a、将上述配置文件配置至可编程的数据平面中,以完成配置操作;其中,可编程的数据平面被配置为:从经过网络交换设备的数据流中,选取发生设定事件的事件报文;基于事件报文向数据处理端提供事件信息;所述事件信息用于描述发生设定事件的相关信息,可供定位与设定事件相关的网络问题。
在本实施例中,可以使用各种硬件编程语音来生成数据平面所需的配置文件。例如,可以采用但不限于:和编译工具等,例如可以采用P4(英文为programming protocol-independent packet processor)语言,P4语言是一种主要用于数据平面的编程语言。在生成配置文件之后,可以通过数据平面支持的接口将配置文件上传至数据平面中。
在本实施例中,网络交换设备的数据平面是可编程的,网络用户可以根据自己的应用需求自定义数据平面的功能,实现与协议无关的网络数据处理流程。关于数据平面被编成后所具有的功能,可参见前述实施例的描述,在此不再赘述。
图3b为本申请示例性实施例提供的一种信息处理方法的流程示意图。该方法适用于图2a-2b所示实施例中的网络交换设备,具体适用于网络交换设备中可编程的数据平面,但并不限于前述实施例中的可编程数据平面。该方法同样适用于一些具有与前述实施例中可编程数据平面相同或类似功能的不可编程数据平面。如图3b所示,该方法包括:
31b、从经过网络交换设备的数据流中,选取发生设定事件的事件报文;
32b、基于事件报文向数据处理端提供事件信息,事件信息用于描述发生设定事件的相关信息,可供定位与设定事件相关的网络问题。
其中,事件信息用于描述发生设定事件的相关信息,可供定位与设定事件相关的网络问题(例如故障位置或设备)。在本实施例中,并不对事件信息的内容进行限定,凡是能够描述发生设定事件的相关信息均适用于本申请实施例。例如,事件信息可以包括以下至少一种:设定事件的类型、设定事件的详情信息以及发生设定事件的数据流信息。其中,发生设定事件的数据流信息可以是任何能够反映发生设定事件数据流的信息,例如可以是报文的五元组或二元组等信息。设定事件的详情信息包括但不限于:发生设定事件的原因、发生设定事件的位置(例如端口、队列等)、设定事件发生后引起的结果、发生设定事件的时间等。根据事件类型的不同,发生设定事件的详情信息也会有所不同。
在本实施例中,并不对设定事件进行限定,可以是任何与网络故障有关的事件,具体可根据监控需求、系统特性、系统中的应用特点等因素灵活设定。在一可选实施例中,上述设定事件包括以下至少一种类型:拥塞事件、暂停事件、丢包事件以及换路事件。关于拥塞事件、暂停事件、丢包事件以及换路事件的定义和说明,可参见前述实施例,在此不再赘述。
在一可选实施例中,上述从经过网络交换设备的数据流中,选取发生设定事件的事件报文,包括以下至少一种选取操作:
在对经过网络交换设备的数据流进行报文接收处理的过程中,选取发生设定事件的事件报文并生成事件报文对应的事件元数据;
在对经过网络交换设备的数据流进行报文交换处理的过程中,选取发生设定事件的事件报文并生成事件报文对应的事件元数据;
在对经过网络交换设备的数据流进行报文发送处理的过程中,选取发生设定事件的事件报文并生成事件报文对应的事件元数据。
进一步,上述在对经过网络交换设备的数据流进行报文接收处理的过程中,选取发生设定事件的事件报文,包括以下至少一种操作:
检测在报文接收处理的过程中是否发生流水线丢包事件,并在为是的情况下,将发生流水线丢包事件的报文作为事件报文;
检测在报文接收处理的过程中是否发生暂停事件,并在为是的情况下,将发生暂停事件的报文作为事件报文。可选地,可以将发生暂停事件的报文复制一份作为事件报文,以降低事件上报对后续报文处理的影响。
进一步,上述在对经过网络交换设备的数据流进行报文交换处理的过程中,选取发生设定事件的事件报文,包括:检测在向网络交换设备的多个出端口对应的队列中缓存报文的过程中是否发生缓存丢包事件,在为是的情况下,将发生缓存丢包事件的报文作为事件报文。
进一步,上述在对经过网络交换设备的数据流进行报文发送处理的过程中,选取发生设定事件的事件报文,包括以下至少一种操作:
检测网络交换设备的各出端口是否发生拥塞事件,并在为是的情况下,将发生拥塞事件的报文作为事件报文;
检测网络交换设备中是否发生换路事件,并在为是的情况下,将发生换路事件的报文作为事件报文;
检测在报文发送处理的过程中是否发生流水线丢包事件,并在为是的情况下,将发生流水线丢包事件的报文作为事件报文;
检测在报文发送处理的过程中是否发生链路丢包事件,并在为是的情况下,将发生链路丢包事件的报文作为事件报文。
在一可选实施例中,基于事件报文向数据处理端提供事件信息,包括:将事件报文及其对应的事件元数据发送给数据处理端,以供数据处理端从事件报文及其对应的事件元数据中提取事件信息;或者,从事件报文及其对应的事件元数据中提取事件信息,并将事件信息提供给数据处理端。
进一步可选地,在将事件报文及其对应的事件元数据发送给数据处理端之前,或者在从事件报文及其对应的事件元数据中提取事件信息之前,该方法还包括:以一条数据流保留一个事件报文为目标,对事件报文进行去冗余处理,得到目标事件报文。
在一可选实施例中,对事件报文进行去冗余处理,得到目标事件报文,包括:针对每个事件报文,将该事件报文所属的数据流信息的哈希值作为索引,在第一信息表中进行匹配;第一信息表中的每个表项用于记录一条数据流信息及其对应的事件报文数量;若未匹配到对应的目标表项,将事件报文作为目标事件报文,并将该事件报文所属的数据流信息记录到一个空表项中,开始对事件报文数量进行计数;若匹配到对应的目标表项,且目标表项中记录的数据流信息与该事件报文所属的数据流信息相同,则将目标表项对应的事件报文数量加1;若匹配到对应的目标表项,但目标表项中记录的数据流信息与事件报文所属的数据流信息不相同,则将目标表项对应的事件报文数量减1;以及若减1后的事件报文数量为0,则将该事件报文作为目标事件报文,并将目标表项中记录的数据流信息替换为该事件报文所属的数据流信息,并重新对事件报文数量进行计数。
在一可选实施例中,从事件报文及其对应的事件元数据中提取事件信息之后,所述方法还包括:将事件信息存储至事件栈中的至少一个栈块中。相应地,将事件信息提供给数据处理端,包括:从至少一个栈块中提取指定数量个事件信息,将指定数量个事件信息拼接成一个数据包,将数据包提供给数据处理端。
在一可选实施例中,将数据包提供给数据处理端,包括:数据平面直接将数据包发送给数据处理端;或者数据平面将数据包上报给控制平面,以供控制平面将数据包发送给数据处理端。
在一可选实施例中,所述方法还包括:控制平面对数据包中的事件信息进行去冗余处理,得到新的数据包;控制平面将新的数据包发送给数据处理端。
进一步可选地,控制平面对数据包中的事件信息进行去冗余处理,得到新的数据包,包括:从数据包中解析出指定数量个事件信息;针对解析出的每个事件信息,检查第二信息表中是否已有相应记录;若是,则丢弃事件信息;将未被丢弃的事件信息重新封装为新的数据包;其中,第二信息表记录有已经发送给数据处理端的事件信息。
进一步可选地,所述方法还包括:控制平面在发送新的数据包过程中,对新的数据包进行流量整形。
在本实施例中,网络交换设备具有可编程的数据平面,利用数据平面的可编程性,使能数据平面准确、及时地选取事件报文,并基于事件报文精准、快速地向数据处理端上报事件信息,数据处理端保存事件信息,以事件信息为基础面向网络管理员提供查询操作,为网络管理员准确、快速地定位网络问题提供了基础,可解决网络问题定位准确度差、速度慢等问题。
图4a为本申请示例性实施例提供的另一种信息处理方法的流程示意图。该方法适用于数据处理端。如图4a所示,该方法包括:
41a、接收网络交换设备发送的事件信息,事件信息用于描述经过网络交换设备的数据流发生设定事件的相关信息;
42a、保存事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与设定事件相关的网络问题。
关于网络交换设备如何从数据流中选取事件报文以及如何从事件报文中提取事件信息的内容,可参见前述实施例,在本实施例中不做详述。
在一可选实施例中,事件信息包括以下至少一种:设定事件的类型、设定事件的详情信息以及发生设定事件的数据流信息。
在一可选实施例中,上述查询操作包括以下至少一种:数据流维度的查询操作、事件维度的查询操作、设备维度的查询操作以及时间维度的查询操作。
在一可选实施例中,接收网络交换设备发送的事件信息,包括:接收网络交换设备发送的数据包;从数据包解析出多个事件信息。通过数据包携带多个事件信息,可实现对事件信息的批处理,有利于减少数据传输量,有利于提高数据处理设备的吞吐量。
在一可选实施例中,在保存事件信息之前,还包括:对事件信息进行去冗余处理。这可减少事件信息的冗余,节约存储资源。
在本实施例中,以事件信息为基础面向网络管理员提供查询操作,为网络管理员准确、快速地定位网络问题提供了基础,可解决网络问题定位准确度差、速度慢等问题。
图4b为本申请示例性实施例提供的又一种信息处理方法的流程示意图。该方法适用于数据处理端。如图4b所示,该方法包括:
41b、接收网络交换设备发送的事件报文及其对应的事件元数据,事件报文是经过网络交换设备的数据流中发生设定事件的报文;
42b、从事件报文及其对应的事件元数据中提取事件信息,事件信息用于描述发生设定事件的相关信息;
43b、保存事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与设定事件相关的网络问题。
关于网络交换设备如何从数据流中选取事件报文的内容,可参见前述实施例,在本实施例中不做详述。
在一可选实施例中,在从事件报文及其对应的事件元数据中提取事件信息之前,还包括:以一条数据流保留一个事件报文为目标,对事件报文进行去冗余处理,得到目标事件报文。相应地,从事件报文及其对应的事件元数据中提取事件信息,具体为:从目标事件报文及其对应的事件元数据中提取事件信息。由于数据处理端的处理能力较为强大,此处去冗余处理可以采用多种方法,例如基于哈希的去重方法,基于精准匹配的去重方法,等等。
在一可选实施例中,在保存事件信息之前,还包括:对事件信息进行去冗余处理。同理,由于数据处理端的处理能力较为强大,此处去冗余处理可以采用多种方法,例如基于哈希的去重方法,基于精准匹配的去重方法,等等。
需要说明的是,考虑到数据处理端的处理能力较为强大,如果能够彻底对事件报文进行去冗余,则可以无需执行对事件信息进行去冗余的操作。当然,也可以不执行对事件报文进行去冗余的操作,仅执行对事件信息进行去冗余的操作。当然,两个去冗余操作均执行,同样适用于本申请实施例。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤41b至步骤43b的执行主体可以为设备A;又比如,步骤41b和42b的执行主体可以为设备A,步骤43b的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如41b、42b等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图5a为本申请示例性实施例提供的一种数据处理设备的结构示意图。如图5a所示,该设备包括:存储器51a、处理器52a以及通信组件53a。
存储器51a,用于存储计算机程序,并可被配置为存储其它各种数据以支持在数据处理设备上的操作。这些数据的示例包括用于在数据处理设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器51a可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器52a,与存储器51a耦合,用于执行存储器51a中的计算机程序,以用于:通过通信组件53a接收网络交换设备发送的事件信息,事件信息用于描述经过网络交换设备的数据流发生设定事件的相关信息;保存事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与设定事件相关的网络问题。
在一可选实施例中,事件信息包括以下至少一种:设定事件的类型、设定事件的详情信息以及发生设定事件的数据流信息。关于这些信息的详细说明,可参见前述实施例。
在一可选实施例中,查询操作包括以下至少一种:数据流维度的查询操作、事件维度的查询操作、设备维度的查询操作以及时间维度的查询操作。
在一可选实施例中,处理器52a在接收网络交换设备发送的事件信息时,具体用于:接收网络交换设备发送的数据包;从数据包解析出多个事件信息。通过数据包携带多个事件信息,可实现对事件信息的批处理,有利于减少数据传输量,有利于提高数据处理设备的吞吐量。
在一可选实施例中,处理器52a在保存事件信息之前,还用于:对事件信息进行去冗余处理。这可减少事件信息的冗余,节约存储资源。
进一步,如图5a所示,该数据处理设备还包括:显示器57a、电源组件58a、音频组件59a等其它组件。图5a中仅示意性给出部分组件,并不意味着数据处理设备只包括图5a所示组件。另外,图5a中虚线框内的组件为可选组件,而非必选组件,具体可视数据处理设备的产品形态而定。本实施例的数据处理设备可以实现为台式电脑、笔记本电脑、智能手机等终端设备,也可以是常规服务器、云服务器或服务器阵列等服务端设备。若本实施例的数据处理设备实现为台式电脑、笔记本电脑、智能手机等终端设备,可以包含图5a中虚线框内的组件;若本实施例的数据处理设备实现为常规服务器、云服务器或服务器阵列等服务端设备,则可以不包含图5a中虚线框内的组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现图4a所示方法实施例中的各步骤。
图5b为本申请示例性实施例提供的另一种数据处理设备的结构示意图。如图5b所示,该设备包括:存储器51b、处理器52b以及通信组件53b。
存储器51b,用于存储计算机程序,并可被配置为存储其它各种数据以支持在数据处理设备上的操作。这些数据的示例包括用于在数据处理设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器51b可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器52b,与存储器51b耦合,用于执行存储器51b中的计算机程序,以用于:通过通信组件53b接收网络交换设备发送的事件报文及其对应的事件元数据,事件报文是经过网络交换设备的数据流中发生设定事件的报文;从事件报文及其对应的事件元数据中提取事件信息,事件信息用于描述发生设定事件的相关信息;保存事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与设定事件相关的网络问题。
在一可选实施例中,查询操作包括以下至少一种:数据流维度的查询操作、事件维度的查询操作、设备维度的查询操作以及时间维度的查询操作。
在一可选实施例中,处理器52b在从事件报文中提取事件信息之前,还用于:以一条数据流保留一个事件报文为目标,对事件报文进行去冗余处理,得到目标事件报文。相应地,处理器52b在从事件报文及其对应的事件元数据中提取事件信息时,具体用于:从目标事件报文及其对应的事件元数据中提取事件信息。
在一可选实施例中,处理器52b在保存事件信息之前,还用于:对事件信息进行去冗余处理。
进一步,如图5b所示,该数据处理设备还包括:显示器57b、电源组件58b、音频组件59b等其它组件。图5b中仅示意性给出部分组件,并不意味着数据处理设备只包括图5b所示组件。另外,图5b中虚线框内的组件为可选组件,而非必选组件,具体可视数据处理设备的产品形态而定。本实施例的数据处理设备可以实现为台式电脑、笔记本电脑、智能手机等终端设备,也可以是常规服务器、云服务器或服务器阵列等服务端设备。若本实施例的数据处理设备实现为台式电脑、笔记本电脑、智能手机等终端设备,可以包含图5b中虚线框内的组件;若本实施例的数据处理设备实现为常规服务器、云服务器或服务器阵列等服务端设备,则可以不包含图5b中虚线框内的组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现图4b所示方法实施例中的各步骤。
上述图5a和图5b中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频选取(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述图5a和图5b中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述图5a和图5b中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述图5a和图5b中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音选取模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (54)

1.一种网络交换设备,其特征在于,包括:可编程的数据平面;所述可编程的数据平面依次包括:入端流水线、缓存管理单元和出端流水线;
所述入端流水线,用于在对经过所述网络交换设备的数据流进行报文接收处理的过程中,选取发生设定事件的事件报文,并将所述事件报文及其对应的事件元数据上报给所述出端流水线;
所述缓存管理单元,用于在对经过所述网络交换设备的数据流进行报文交换处理的过程中,选取发生设定事件的事件报文,并将所述事件报文及其对应的事件元数据上报给所述出端流水线;
所述出端流水线,用于在对经过所述网络交换设备的数据流进行报文发送处理的过程中,选取发生设定事件的事件报文,并根据本端选取出的事件报文及其对应的事件元数据和所述入端流水线以及所述缓存管理单元上报的事件报文及其对应的事件元数据向数据处理端上报事件信息,所述事件信息是从所述事件报文及其对应的事件元数据中提取的,用于描述发生所述设定事件的相关信息,可供定位与所述设定事件相关的网络问题。
2.根据权利要求1所述的设备,其特征在于,所述事件信息包括以下至少一种:所述设定事件的类型、所述设定事件的详情信息以及发生所述设定事件的数据流信息。
3.根据权利要求2所述的设备,其特征在于,所述设定事件包括以下至少一种类型:拥塞事件、暂停事件、丢包事件以及换路事件。
4.根据权利要求1所述的设备,其特征在于,所述可编程的数据平面为流水线结构。
5.根据权利要求1所述的设备,其特征在于,所述入端流水线包括以下至少一个入端事件检测模块:
入端流水线丢包检测模块,用于检测在所述报文接收处理的过程中是否发生流水线丢包事件,并在为是的情况下,生成事件元数据,将发生流水线丢包事件的报文作为事件报文连同所述事件元数据一并上报给所述出端流水线;
暂停事件检测模块,用于检测在所述报文接收处理的过程中是否发生暂停事件,并在为是的情况下,生成事件元数据,将发生暂停事件的报文作为事件报文连同所述事件元数据一并上报给所述出端流水线。
6.根据权利要求5所述的设备,其特征在于,所述报文接收处理的过程包括针对接收到的各报文查路由表的过程和/或校验过程;
所述入端流水线丢包检测模块具体用于:检测针对接收到的各报文查路由表的过程和/或校验过程中是否发生丢包,若是,确定发生流水线丢包事件。
7.根据权利要求5所述的设备,其特征在于,所述暂停事件检测模块具体用于:在接收到的报文需要被路由至目标出端口的情况下,检测所述目标出端口是否处于暂停发送状态,若是,确定发生暂停事件。
8.根据权利要求5所述的设备,其特征在于,所述入端流水线还包括:
入端链路丢包检测模块,用于检测经过所述网络交换设备的数据流是否发生链路丢包事件,并在为是的情况下,向上游设备发送丢包通知消息,以通知上游设备发生了链路丢包事件。
9.根据权利要求8所述的设备,其特征在于,所述入端链路丢包检测模块具体用于:检测来自上游设备的报文的编号是否连续;若不连续,确定发生链路丢包事件。
10.根据权利要求1-9任一项所述的设备,其特征在于,所述缓存管理单元包括:缓存丢包检测模块;
所述缓存丢包检测模块,用于检测在向所述网络交换设备的多个出端口对应的队列中缓存报文的过程中是否发生缓存丢包事件,并在为是的情况下,生成事件元数据,将发生缓存丢包事件的报文作为事件报文连同所述事件元数据一并上报给所述出端流水线。
11.根据权利要求1-9任一项所述的设备,其特征在于,所述出端流水线包括:事件报文处理模块和以下至少一个出端事件检测模块:
拥塞事件检测模块,用于检测所述网络交换设备的各出端口是否发生拥塞事件,并在为是的情况下,生成事件元数据,将发生拥塞事件的报文作为事件报文连同所述事件元数据一并发送给所述事件报文处理模块;
换路事件检测模块,用于检测所述网络交换设备中是否发生换路事件,并在为是的情况下,生成事件元数据,将发生换路事件的报文作为事件报文连同所述事件元数据一并发送给所述事件报文处理模块;
出端流水线丢包检测模块,用于检测在所述报文发送处理的过程中是否发生流水线丢包事件,并在为是的情况下,生成事件元数据,将发生流水线丢包事件的报文作为事件报文连同所述事件元数据一并发送给所述事件报文处理模块;
出端链路丢包检测模块,用于检测在所述报文发送处理的过程中是否发生链路丢包事件,并在为是的情况下,生成事件元数据,将发生链路丢包事件的报文作为事件报文连同所述事件元数据一并发送给所述事件报文处理模块;
所述事件报文处理模块,用于根据接收到的事件报文和所述事件元数据,向所述数据处理端提供事件信息。
12.根据权利要求11所述的设备,其特征在于,所述拥塞事件检测模块具体用于:针对各出端口,判断所述出端口对应的队列中报文的排队延时是否超出设定时延阈值,或者判断所述出端口对应的队列的长度是否超出设定的长度阈值;若是,确定所述出端口发生了拥塞事件。
13.根据权利要求11所述的设备,其特征在于,所述换路事件检测模块具体用于:针对每个待发送的报文,检测所述待发送的报文所属的数据流信息是否是第一次出现;若是,确定发生换路事件。
14.根据权利要求11所述的设备,其特征在于,所述报文发送处理的过程包括对每个待发送的报文进行校验的过程;
所述出端流水线丢包检测模块具体用于:检测在对每个待发送的报文进行校验的过程中是否发生丢包,若是,确定发生流水线丢包事件。
15.根据权利要求11所述的设备,其特征在于,所述出端链路丢包检测模块具体用于:在将每个待发送的报文发送出去之前,对每个待发送的报文进行编号,以供下游设备根据报文编号协助判断是否发生链路丢包事件;以及
检测是否接收到下游设备在确定发生链路丢包事件时返回的丢包通知消息,若是,确定发生链路丢包事件。
16.根据权利要求15所述的设备,其特征在于,所述出端链路丢包检测模块具体用于:
在本地缓存每个待发送的报文的编号及其所属的数据流信息;以及
根据所述丢包通知消息中携带的缺失报文的编号,确定发生链路丢包的事件报文及其所属的数据流信息。
17.根据权利要求11所述的设备,其特征在于,所述事件报文处理模块具体用于:
将接收到的事件报文及其对应的事件元数据发送给所述数据处理端,以供所述数据处理端从所述事件报文及其对应的事件元数据中提取事件信息;或者
从接收到的事件报文及其对应的事件元数据中提取事件信息,并将所述事件信息提供给所述数据处理端。
18.根据权利要求17所述的设备,其特征在于,所述事件报文处理模块还用于:在将接收到的事件报文及其对应的事件元数据发送给所述数据处理端之前,或者在从接收到的事件报文及其对应的事件元数据中提取事件信息之前,以一条数据流保留一个事件报文为目标,对接收到的事件报文进行去冗余处理,得到目标事件报文。
19.根据权利要求18所述的设备,其特征在于,所述事件报文处理模块包括:去冗余子模块和第一信息表,所述第一信息表中的每个表项用于记录一条数据流信息及其对应的事件报文数量;
所述去冗余子模块用于:针对接收到的每个事件报文,将所述事件报文所属的数据流信息的哈希值作为索引,在所述第一信息表中进行匹配;
若未匹配到对应的目标表项,将所述事件报文作为目标事件报文,并将所述事件报文所属的数据流信息记录到一个空表项中,开始对事件报文数量进行计数;
若匹配到对应的目标表项,且目标表项中记录的数据流信息与所述事件报文所属的数据流信息相同,则将目标表项对应的事件报文数量加1;
若匹配到对应的目标表项,但目标表项中记录的数据流信息与所述事件报文所属的数据流信息不相同,则将目标表项对应的事件报文数量减1;以及若减1后的事件报文数量为0,则将所述事件报文作为目标事件报文,并将目标表项中记录的数据流信息替换为所述事件报文所属的数据流信息,并重新对事件报文数量进行计数。
20.根据权利要求19所述的设备,其特征在于,所述事件报文处理模块还包括:事件提取子模块、事件栈以及批处理子模块,所述事件栈包括栈顶计数器和至少一个栈块;
所述事件提取子模块,用于从所述目标事件报文及其对应的事件元数据中提取事件信息,将所述事件信息存储至所述至少一个栈块中;
所述栈顶计数器,用于记录所述至少一个栈块中暂存的事件信息的个数;
所述批处理子模块,用于从所述至少一个栈块中提取指定数量个事件信息,将所述指定数量个事件信息拼接成一个数据包,将所述数据包提供给所述数据处理端。
21.根据权利要求20所述的设备,其特征在于,所述事件提取子模块具体用于:从所述目标事件报文中提取发生所述设定事件的数据流信息,并从所述目标事件报文对应的事件元数据中提取所述设定事件的类型和所述设定事件的详情信息,作为所述事件信息。
22.根据权利要求20所述的设备,其特征在于,所述事件提取子模块具体用于:在所述事件信息的大小大于所述栈块的最大位宽时,将所述事件信息拆分为多个信息块,将所述多个信息块存储至多个栈块中;每个信息块的大小小于或等于所述最大位宽。
23.根据权利要求20所述的设备,其特征在于,还包括:控制平面;
所述批处理子模块具体用于:
直接将所述数据包发送给所述数据处理端;
或者
将所述数据包上报给所述控制平面,以供所述控制平面将所述数据包发送给所述数据处理端。
24.根据权利要求23所述的设备,其特征在于,所述控制平面包括:处理器和存储器;
所述存储器,用于存储计算机程序,所述处理器执行所述计算机程序,以用于:
对所述数据包中的事件信息进行去冗余处理,得到新的数据包;并将新的数据包发送给所述数据处理端。
25.根据权利要求24所述的设备,其特征在于,所述处理器具体用于:
从所述数据包中解析出所述指定数量个事件信息;
针对解析出的每个事件信息,检查第二信息表中是否已有相应记录;若是,则丢弃所述事件信息;
将未被丢弃的事件信息重新封装为新的数据包;其中,所述第二信息表记录有已经发送给所述数据处理端的事件信息。
26.根据权利要求25所述的设备,其特征在于,所述处理器还用于:将未被丢弃的事件信息记录到所述第二信息表中。
27.根据权利要求25所述的设备,其特征在于,所述处理器还用于:
在发送所述新的数据包过程中,对所述新的数据包进行流量整形。
28.一种信息处理方法,适用于网络交换设备,其特征在于,所述网络交换设备具有可编程的数据平面,所述可编程的数据平面依次包括:入端流水线、缓存管理单元和出端流水线;所述方法由被编程后的数据平面实现,所述方法包括:
所述入端流水线在对经过所述网络交换设备的数据流进行报文接收处理的过程中,选取发生设定事件的事件报文并生成所述事件报文对应的事件元数据;
所述缓存管理单元在对经过所述网络交换设备的数据流进行报文交换处理的过程中,选取发生设定事件的事件报文并生成所述事件报文对应的事件元数据;
所述出端流水线在对经过所述网络交换设备的数据流进行报文发送处理的过程中,选取发生设定事件的事件报文并生成所述事件报文对应的事件元数据;
基于所述事件报文向数据处理端提供事件信息,所述事件信息是从所述事件报文及其对应的事件元数据中提取的,用于描述发生所述设定事件的相关信息,可供定位与所述设定事件相关的网络问题。
29.根据权利要求28所述的方法,其特征在于,所述事件信息包括以下至少一种:所述设定事件的类型、所述设定事件的详情信息以及发生所述设定事件的数据流信息。
30.根据权利要求29所述的方法,其特征在于,所述设定事件包括以下至少一种类型:拥塞事件、暂停事件、丢包事件以及换路事件。
31.根据权利要求28所述的方法,其特征在于,在对经过所述网络交换设备的数据流进行报文接收处理的过程中,选取发生设定事件的事件报文,包括以下至少一种操作:
检测在所述报文接收处理的过程中是否发生流水线丢包事件,并在为是的情况下,将发生流水线丢包事件的报文作为事件报文;
检测在所述报文接收处理的过程中是否发生暂停事件,并在为是的情况下,将发生暂停事件的报文作为事件报文。
32.根据权利要求28所述的方法,其特征在于,在对经过所述网络交换设备的数据流进行报文交换处理的过程中,选取发生设定事件的事件报文,包括:
检测在向所述网络交换设备的多个出端口对应的队列中缓存报文的过程中是否发生缓存丢包事件,在为是的情况下,将发生缓存丢包事件的报文作为事件报文。
33.根据权利要求28所述的方法,其特征在于,在对经过所述网络交换设备的数据流进行报文发送处理的过程中,选取发生设定事件的事件报文,包括以下至少一种操作:
检测所述网络交换设备的各出端口是否发生拥塞事件,并在为是的情况下,将发生拥塞事件的报文作为事件报文;
检测所述网络交换设备中是否发生换路事件,并在为是的情况下,将发生换路事件的报文作为事件报文;
检测在所述报文发送处理的过程中是否发生流水线丢包事件,并在为是的情况下,将发生流水线丢包事件的报文作为事件报文;
检测在所述报文发送处理的过程中是否发生链路丢包事件,并在为是的情况下,将发生链路丢包事件的报文作为事件报文。
34.根据权利要求28-33任一项所述的方法,其特征在于,基于所述事件报文向数据处理端提供事件信息,包括:
将所述事件报文及其对应的事件元数据发送给所述数据处理端,以供所述数据处理端从所述事件报文及其对应的事件元数据中提取事件信息;
或者
从所述事件报文及其对应的事件元数据中提取事件信息,并将所述事件信息提供给所述数据处理端。
35.根据权利要求34所述的方法,其特征在于,在将所述事件报文及其对应的事件元数据发送给所述数据处理端之前,或者在从所述事件报文及其对应的事件元数据中提取事件信息之前,所述方法还包括:
以一条数据流保留一个事件报文为目标,对事件报文进行去冗余处理,得到目标事件报文。
36.根据权利要求35所述的方法,其特征在于,以一条数据流保留一个事件报文为目标,对事件报文进行去冗余处理,得到目标事件报文,包括:
针对每个事件报文,将所述事件报文所属的数据流信息的哈希值作为索引,在第一信息表中进行匹配;所述第一信息表中的每个表项用于记录一条数据流信息及其对应的事件报文数量;
若未匹配到对应的目标表项,将所述事件报文作为目标事件报文,并将所述事件报文所属的数据流信息记录到一个空表项中,开始对事件报文数量进行计数;
若匹配到对应的目标表项,且目标表项中记录的数据流信息与所述事件报文所属的数据流信息相同,则将目标表项对应的事件报文数量加1;
若匹配到对应的目标表项,但目标表项中记录的数据流信息与所述事件报文所属的数据流信息不相同,则将目标表项对应的事件报文数量减1;以及若减1后的事件报文数量为0,则将所述事件报文作为目标事件报文,并将目标表项中记录的数据流信息替换为所述事件报文所属的数据流信息,并重新对事件报文数量进行计数。
37.根据权利要求36所述的方法,其特征在于,从所述事件报文及其对应的事件元数据中提取事件信息之后,还包括:将所述事件信息存储至事件栈中的至少一个栈块中;
将所述事件信息提供给所述数据处理端,包括:
从所述至少一个栈块中提取指定数量个事件信息,将所述指定数量个事件信息拼接成一个数据包,将所述数据包提供给所述数据处理端。
38.根据权利要求37所述的方法,其特征在于,将所述数据包提供给所述数据处理端,包括:
直接将所述数据包发送给所述数据处理端;
或者
将所述数据包上报给所述网络交换设备的控制平面,以供所述控制平面将所述数据包发送给所述数据处理端。
39.根据权利要求38所述的方法,其特征在于,还包括:
所述控制平面对所述数据包中的事件信息进行去冗余处理,得到新的数据包;
所述控制平面将新的数据包发送给所述数据处理端。
40.根据权利要求39所述的方法,其特征在于,所述控制平面对所述数据包中的事件信息进行去冗余处理,得到新的数据包,包括:
从所述数据包中解析出所述指定数量个事件信息;
针对解析出的每个事件信息,检查第二信息表中是否已有相应记录;若是,则丢弃所述事件信息;
将未被丢弃的事件信息重新封装为新的数据包;其中,所述第二信息表记录有已经发送给所述数据处理端的事件信息。
41.根据权利要求40所述的方法,其特征在于,还包括:
所述控制平面在发送所述新的数据包过程中,对所述新的数据包进行流量整形。
42.一种信息处理方法,适用于数据处理端,其特征在于,所述方法包括:
接收网络交换设备发送的事件信息,所述事件信息是所述网络交换设备从事件报文及其对应的事件元数据中提取的,用于描述经过所述网络交换设备的数据流发生设定事件的相关信息;所述事件报文是所述网络交换设备按照权利要求28-41任一项所述方法中的步骤生成的;
保存所述事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与所述设定事件相关的网络问题。
43.根据权利要求42所述的方法,其特征在于,所述事件信息包括以下至少一种:所述设定事件的类型、所述设定事件的详情信息以及发生所述设定事件的数据流信息。
44.根据权利要求43所述的方法,其特征在于,所述查询操作包括以下至少一种:数据流维度的查询操作、事件维度的查询操作、设备维度的查询操作以及时间维度的查询操作。
45.根据权利要求42所述的方法,其特征在于,接收网络交换设备发送的事件信息,包括:
接收网络交换设备发送的数据包;
从所述数据包解析出多个所述事件信息。
46.根据权利要求42-45任一项所述的方法,其特征在于,在保存所述事件信息之前,还包括:对所述事件信息进行去冗余处理。
47.一种信息处理方法,适用于数据处理端,其特征在于,所述方法包括:
接收网络交换设备发送的事件报文及其对应的事件元数据,所述事件报文是所述网络交换设备按照权利要求28-41任一项所述方法中的步骤生成的;
从所述事件报文及其对应的事件元数据中提取事件信息,所述事件信息用于描述发生所述设定事件的相关信息;
保存所述事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与所述设定事件相关的网络问题。
48.根据权利要求47所述的方法,其特征在于,在从所述事件报文及其对应的事件元数据中提取事件信息之前,还包括:
以一条数据流保留一个事件报文为目标,对所述事件报文进行去冗余处理,得到目标事件报文;
从所述事件报文及其对应的事件元数据中提取事件信息,具体为:从所述目标事件报文及其对应的事件元数据中提取事件信息。
49.根据权利要求47或48所述的方法,其特征在于,在保存所述事件信息之前,还包括:对所述事件信息进行去冗余处理。
50.一种数据处理设备,其特征在于,包括:存储器、处理器以及通信组件;
所述存储器,用于存储计算机程序;
所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:
通过所述通信组件接收网络交换设备发送的事件信息,所述事件信息是所述网络交换设备从事件报文及其对应的事件元数据中提取的,用于描述经过所述网络交换设备的数据流发生设定事件的相关信息;所述事件报文是所述网络交换设备按照权利要求28-41任一项所述方法中的步骤生成的;
保存所述事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与所述设定事件相关的网络问题。
51.一种数据处理设备,其特征在于,包括:存储器、处理器以及通信组件;
所述存储器,用于存储计算机程序;
所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:
通过所述通信组件接收网络交换设备发送的事件报文及其对应的事件元数据,所述事件报文是所述网络交换设备按照权利要求28-41任一项所述方法中的步骤生成的;
从所述事件报文及其对应的事件元数据中提取事件信息,所述事件信息用于描述发生所述设定事件的相关信息;
保存所述事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与所述设定事件相关的网络问题。
52.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求42-49任一项所述方法中的步骤。
53.一种配置方法,适用于网络交换设备,其特征在于,所述网络交换设备包括可编程的数据平面;所述配置方法包括:
响应于配置操作,获取所述可编程的数据平面所需的配置文件;
将所述配置文件配置至所述可编程的数据平面中,以完成配置操作;
其中,所述可编程的数据平面依次包括:入端流水线、缓存管理单元和出端流水线;所述入端流水线被配置为:在对经过所述网络交换设备的数据流进行报文接收处理的过程中,选取发生设定事件的事件报文,并将所述事件报文及其对应的事件元数据上报给所述出端流水线;
所述缓存管理单元被配置为:在对经过所述网络交换设备的数据流进行报文交换处理的过程中,选取发生设定事件的事件报文,并将所述事件报文及其对应的事件元数据上报给所述出端流水线;
所述出端流水线被配置为:在对经过所述网络交换设备的数据流进行报文发送处理的过程中,选取发生设定事件的事件报文,并根据本端选取出的事件报文及其对应的事件元数据和所述入端流水线以及所述缓存管理单元上报的事件报文及其对应的事件元数据向数据处理端上报事件信息;所述事件信息是从所述事件报文及其对应的事件元数据中提取的,用于描述发生所述设定事件的相关信息,可供定位与所述设定事件相关的网络问题。
54.一种数据中心系统,其特征在于,包括:多台服务器、多台网络交换设备以及数据处理设备;所述多台服务器与所述数据处理设备分别与所述多台网络交换设备通信连接;
所述多台网络交换设备中至少部分网络交换设备包括可编程的数据平面,且所述可编程的数据平面依次包括:入端流水线、缓存管理单元和出端流水线;
所述入端流水线,用于在对经过所述网络交换设备的数据流进行报文接收处理的过程中,选取发生设定事件的事件报文,并将所述事件报文及其对应的事件元数据上报给所述出端流水线;
所述缓存管理单元,用于在对经过所述网络交换设备的数据流进行报文交换处理的过程中,选取发生设定事件的事件报文,并将所述事件报文及其对应的事件元数据上报给所述出端流水线;
所述出端流水线,用于在对经过所述网络交换设备的数据流进行报文发送处理的过程中,选取发生设定事件的事件报文,并根据本端选取出的事件报文及其对应的事件元数据和所述入端流水线以及所述缓存管理单元上报的事件报文及其对应的事件元数据向数据处理端上报事件信息,所述事件信息是从所述事件报文及其对应的事件元数据中提取的,用于描述发生所述设定事件的相关信息,可供定位与所述设定事件相关的网络问题;
所述数据处理设备,用于获取所述可编程的数据平面提供的事件信息,保存所述事件信息,并面向网络管理员提供查询操作,以供网络管理员定位与所述设定事件相关的网络问题。
CN202010082309.5A 2020-02-07 2020-02-07 信息处理方法、设备、系统及存储介质 Active CN113259143B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010082309.5A CN113259143B (zh) 2020-02-07 2020-02-07 信息处理方法、设备、系统及存储介质
PCT/CN2020/083981 WO2021155637A1 (zh) 2020-02-07 2020-04-09 信息处理方法、设备、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010082309.5A CN113259143B (zh) 2020-02-07 2020-02-07 信息处理方法、设备、系统及存储介质

Publications (2)

Publication Number Publication Date
CN113259143A CN113259143A (zh) 2021-08-13
CN113259143B true CN113259143B (zh) 2023-04-18

Family

ID=77200709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010082309.5A Active CN113259143B (zh) 2020-02-07 2020-02-07 信息处理方法、设备、系统及存储介质

Country Status (2)

Country Link
CN (1) CN113259143B (zh)
WO (1) WO2021155637A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645100A (zh) * 2021-08-13 2021-11-12 福建天泉教育科技有限公司 一种基于元数据标签的全链路压力测试方案及系统
CN113740748A (zh) * 2021-09-03 2021-12-03 深圳市新威尔电子有限公司 基于can总线发送报文的电池检测方法
CN114189426B (zh) * 2021-10-29 2023-08-11 苏州浪潮智能科技有限公司 代理服务自适应带配置回复方法、系统、装置及存储介质
CN114389972B (zh) * 2022-02-22 2024-03-26 清华大学 一种丢包检测方法及装置、存储介质
CN115277504B (zh) * 2022-07-11 2024-04-05 京东科技信息技术有限公司 一种网络流量监控方法、装置和系统
CN115955419B (zh) * 2023-03-08 2023-06-09 湖南磐云数据有限公司 数据中心带宽流量主动告警及异常流量监控系统
CN117041272B (zh) * 2023-10-07 2024-01-30 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109787833A (zh) * 2019-01-23 2019-05-21 清华大学 网络异常事件感知方法和系统
CN110493140A (zh) * 2019-08-26 2019-11-22 中国人民解放军国防科技大学 信息网络系统中链路事件的感知方法及其运行系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7212534B2 (en) * 2001-07-23 2007-05-01 Broadcom Corporation Flow based congestion control
WO2015196403A1 (zh) * 2014-06-26 2015-12-30 华为技术有限公司 软件定义网络的服务质量控制方法及设备
CN106487572A (zh) * 2015-09-02 2017-03-08 中兴通讯股份有限公司 报文的处理方法及装置
CN105812179B (zh) * 2016-03-09 2019-02-15 中国科学院信息工程研究所 一种协议无关转发网络事件处理方法
DE112019001214T5 (de) * 2018-03-08 2020-11-19 Barefoot Networks, Inc. Erzeugung von Pfadausfallmeldung an Weiterleitungselement
CN108471389B (zh) * 2018-03-12 2020-06-12 电子科技大学 一种基于服务功能链的交换机系统
CN108768714A (zh) * 2018-05-22 2018-11-06 郑州云海信息技术有限公司 一种数据中心综合管理系统及其网络安全实现方法
CN109495311B (zh) * 2018-11-30 2022-05-20 锐捷网络股份有限公司 一种网络故障检测方法及装置
CN110661716B (zh) * 2019-09-16 2022-07-19 锐捷网络股份有限公司 网络丢包的通知方法、监控装置、交换机和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109787833A (zh) * 2019-01-23 2019-05-21 清华大学 网络异常事件感知方法和系统
CN110493140A (zh) * 2019-08-26 2019-11-22 中国人民解放军国防科技大学 信息网络系统中链路事件的感知方法及其运行系统

Also Published As

Publication number Publication date
WO2021155637A1 (zh) 2021-08-12
CN113259143A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN113259143B (zh) 信息处理方法、设备、系统及存储介质
US20210328928A1 (en) Offline, intelligent load balancing of sctp traffic
US20160065423A1 (en) Collecting and Analyzing Selected Network Traffic
US9717011B2 (en) Event management in telecommunications networks
US8798051B2 (en) Information and communication processing system, method, and network node
CN110557342B (zh) 用于分析和减轻丢弃的分组的设备
CN107438012B (zh) 一种负载均衡服务转发方法、系统、均衡装置和宿主机
US11902130B2 (en) Data packet loss detection
CN112637015B (zh) 一种基于psn实现rdma网络的丢包检测方法及装置
CN107026790B (zh) 一种转发控制方法及设备
CN112073234A (zh) 一种故障检测方法、装置、系统、设备及存储介质
US8675498B2 (en) System and method to provide aggregated alarm indication signals
CN103281257A (zh) 一种协议报文处理方法和设备
JP2017060074A (ja) ネットワーク分析装置、ネットワーク分析システム、及びネットワークの分析方法
US10805206B1 (en) Method for rerouting traffic in software defined networking network and switch thereof
US11695856B2 (en) Scheduling solution configuration method and apparatus, computer readable storage medium thereof, and computer device
US11206176B2 (en) Preventing failure processing delay
US7965658B2 (en) Shortening of communication cutoff time
US11860744B2 (en) Communication network data fault detection and mitigation
US20240039851A1 (en) Method and system to predict the ingress interface of internet traffic
CN109347678B (zh) 一种路由环路的确定方法及装置
WO2016041346A1 (zh) 一种控制网络数据流量的方法及装置
EP3474489B1 (en) A method and a system to enable a (re-)configuration of a telecommunications network
EP2528275A1 (en) System and method to provide aggregated alarm indication signals
CN116723154A (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