WO2024066555A1 - 一种数据通信方法、交换芯片、通信节点及通信网络 - Google Patents
一种数据通信方法、交换芯片、通信节点及通信网络 Download PDFInfo
- Publication number
- WO2024066555A1 WO2024066555A1 PCT/CN2023/103157 CN2023103157W WO2024066555A1 WO 2024066555 A1 WO2024066555 A1 WO 2024066555A1 CN 2023103157 W CN2023103157 W CN 2023103157W WO 2024066555 A1 WO2024066555 A1 WO 2024066555A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- processing
- data
- data packet
- microservice
- switching chip
- Prior art date
Links
- 230000006854 communication Effects 0.000 title claims abstract description 127
- 238000004891 communication Methods 0.000 title claims abstract description 125
- 238000000034 method Methods 0.000 title claims abstract description 119
- 238000012545 processing Methods 0.000 claims abstract description 372
- 230000006870 function Effects 0.000 claims abstract description 116
- 230000008569 process Effects 0.000 claims abstract description 54
- 230000005540 biological transmission Effects 0.000 claims abstract description 15
- 239000010410 layer Substances 0.000 claims description 36
- 238000003860 storage Methods 0.000 claims description 12
- 239000012792 core layer Substances 0.000 claims description 9
- 230000002776 aggregation Effects 0.000 description 39
- 238000004220 aggregation Methods 0.000 description 39
- 230000015654 memory Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 12
- 238000012423 maintenance Methods 0.000 description 10
- 239000013256 coordination polymer Substances 0.000 description 8
- 230000006855 networking Effects 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 4
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 4
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 2
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 208000014347 autosomal dominant hyaline body myopathy Diseases 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- JITOKQVGRJSHHA-UHFFFAOYSA-M monosodium methyl arsenate Chemical compound [Na+].C[As](O)([O-])=O JITOKQVGRJSHHA-UHFFFAOYSA-M 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000234282 Allium Species 0.000 description 1
- 235000002732 Allium cepa var. cepa Nutrition 0.000 description 1
- 101100491335 Caenorhabditis elegans mat-2 gene Proteins 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 102100033121 Transcription factor 21 Human genes 0.000 description 1
- 101710119687 Transcription factor 21 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
- H04W28/082—Load balancing or load distribution among bearers or channels
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供一种数据通信方法、交换芯片、通信节点及通信网络,涉及通信技术领域,用于提高数据通信的灵活性。该交换芯片,应用于数据传输网中的通信节点,交换芯片包括多个微服务模块以及连接微服务模块的片上网络;微服务模块具有一项或多项处理功能;交换芯片用于获取第一数据包,第一数据包携带有地址信息和指示信息;根据指示信息,确定对第一数据包中的数据的处理流程;根据处理流程调用一个或多个微服务模块中的一项或多项处理功能对第一数据包中的数据进行处理;处理包括根据地址信息转发第二数据包。
Description
本申请要求于2022年09月26日提交国家知识产权局、申请号为202211176274.7、申请名称为“一种数据通信方法、交换芯片、通信节点及通信网络”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请的实施例涉及通信技术领域,尤其涉及一种数据通信方法、交换芯片、通信节点及通信网络。
数据中心网络(dater center network,DCN)通常采用层次化的组网模式,为数据中心内的众多服务器(server)提供全连接的网络,将不同服务器之间的数据进行交换。
层次化组网模式的网络通常包括三层,即接入层、汇聚层和核心层。接入层的下行端口与服务器连接,接入层的上行端口与汇聚层的下行端口连接,汇聚层的上行端口与核心层连接。接入层和汇聚层可以被划分为多个群组(Pod),通过汇聚层可以实现同一Pod内连接的不同服务器之间的数据流量交换,通过汇聚层和核心层可以实现不同Pod内连接的服务器之间的数据流量交换。由于每一层都可以包括多个通信节点,同一Pod内也会包括多个通信节点,从而在进行数据流量交换时,从任一源通信节点到目的通信节点之间都有多条可用的发送路径。
目前,DCN中的通信节点通常具有各种处理功能(流程),例如:包处理(packet processing,PP),负载均衡(load balancing,LB)以及拥塞控制(congestion control,CC)等等。上述的PP、LB、CC等处理功能往往是固化在通信节点的交换芯片中,用户或网络运维人员无法控制、修改。这造成已部署的网络无法及时跟上业务变化、或运维升级的要求;另一方面,这些处理功能往往由一些更基础的组件(building block,BB,例如BB包括缓存buffer以及处理逻辑)构成。这些固化在交换芯片中的BB仅能按照通信节点的设计按固定的流程实现固定的功能,无法组合形成处理新的业务或网络运维所需的能力。总之,目前的DCN网络在进行服务器之间的数据交换时,组网的通信节点功能固化,对数据处理的灵活性较低。
发明内容
本发明的实施例提供一种数据通信方法、交换芯片、通信节点及通信网络,用于提高数据通信的灵活性。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种交换芯片,应用于数据传输网中的通信节点。该通信节点包括:多个微服务模块以及连接微服务模块的片上网络;微服务模块具有一项或多项处理功能。首先,交换芯片用于获取第一数据包,第一数据包携带有地址信息和指示信息;其次,交换芯片用于根据指示信息,确定对第一数据包中的数据的处理流程;然后,交换芯片还用于根据处理流程调用一个或多个微服务模块中的一项或多项处理功能对第一数据包中的数据进行处理;处理包括根据地址信息转发第二数据包,其中第二数据包携带按照处理流程对第一数据包中的数据处理后的数据;其中,交换芯片配置有至少两个处理流程,指示信息用于指示至少两个处理流程中的一个,至少两个处理流程被配置了一个或多个微服务模块的不同的处理功能,或一个或多个微服务模块的顺序。
这样,交换芯片的结构具有多个微服务模块(micro-service module,MSM)以及连接微服务模块的片上网络(network on chip,NOC);并且微服务模块MSM具有一项或多项处理功能。因此在按照数据包中的地址信息对数据包进行转发时,可以按照数据包中的指示信息具体配置数据包的处理流程,例如,不同的指示信息可以对应不同的处理流程,并且不同的处理流程调用的微服务模块的数量、顺序以及微服务模块实现的处理功能可以不同,从而提高了数据传输网进行数据通信的灵活性。
在一种可能的实现方式中,指示信息包括处理标识,处理标识用于指示处理流程调用的一个或多个微服务模块执行的一项或多项处理功能。其中,该处理标识具体用于定义在不同的处理流程中一个或多个微服务模块对第一数据包中的数据进行处理时所执行的处理功能,这样,当不同的处理标识对应不同的处理功能时,对于不同的处理标识交换芯片可以实现灵活按照处理标识完
成对第一数据包新定义的不同处理流程。
在一种可能的实现方式中,指示信息包括配置信息,配置信息用于指示处理流程调用的一个或多个微服务模块的顺序。当然,本申请的实施例中,除了可以按照处理标识定义不同微服务模块中的具体处理功能,还可以根据配置信息定义在不同的处理流程中所调用的微服务模块的数量以及顺序,从而通过将所调用的微服务模块连接为不同的顺序实现对第一数据包中的数据进行不同的处理流程的处理。
在一种可能的实现方式中,片上网络,用于根据配置信息将顺序中指示的前一微服务模块处理后的数据发送至下一微服务模块。在该可能的实现方式中,由于多个微服务模块主要是通过片上网络连接,因此可以通过片上网络按照配置信息指示的顺序将前一微服务模块处理后的数据发送至下一微服务模块。
在一种可能的实现方式中,配置信息包括依照顺序排列的处理流程调用的一个或多个微服务模块的标识。例如,以微服务模块的编号(A,B,C,D…)作为微服务模块的标识供片上网络串接处理流程中微服务模块的顺序。那么,配置信息可以是下一微服务模块的编号;或者,处理流程中所有所需微服务模块的编号,然后完成一级微服务模块处理之后,依次去掉或者挪位(比如将已使用过的微服务模块的编号循环移动到所有编号的末端)。
在一种可能的实现方式中,指示信息携带于第一数据包的包头中的保留字段或扩展字段。例如,第一数据包可以是标准协议的数据包,第一数据包的报文结构包括包头(header)以及载荷(payload)。指示信息可以携带于包头的服务类型(type of service,ToS,8bits)中的保留字段(reserved,2bits);或者携带于可选项(IP option,或扩展字段)之后,设置长度可以是16bits或24bits或者其他长度。
在一种可能的实现方式中,微服务模块具有以下一项或多项处理功能:包处理PP、负载均衡LB以及拥塞控制CC。
在一种可能的实现方式中,微服务模块包括队列管理器QM,队列管理器QM具体用于按照指示信息指示的处理功能将第一数据包中的数据分配至相应的队列。
在一种可能的实现方式中,处理功能包括按照端口和服务等级Cos将第一数据包中的数据分配至相应的队列;或者,按照用户流和服务等级Cos将第一数据包中的数据分配至相应的队列。在该可能的实现方式中,以QM做为一个MSM为例,QM里的VOQ通常对应交换芯片的K个输出端口,通常也会再根据更高的粒度,比如按{Port,Cos}进行细分。即QM可以按照端口Port和服务等级Cos将第一数据包中的数据分配至相应的VOQ队列,则同一个端口对应不同的服务等级Cos时,可能会有更多的VOQ。但本申请的实施例中采用的MSM要求QM里的队列有一定的灵活性,不再严格按照{Port,Cos}设置,而是除了原本的{Port,Cos}设置之外,还可以按照其它维度设置。比如按照{FlowID,Cos}来设置,即QM可以按照用户流(可以是流标识FlowID)和服务等级Cos将第一数据包中的数据分配至相应的VOQ队列,其中FlowID用于标识用户流。因此,为区分QM不同的处理功能(按照{Port,Cos}或者按照{FlowID,Cos}将第一数据包中的数据分配至相应的VOQ队列),可以引入采用SID(ServiceID,服务标识)和Ver(Version,版本)作为处理标识的指示信息。其中,SID可用于区分使用QM的不同服务;Ver用于区分某个服务的不同版本。例如,定义SID=0表示QM按{Port,Cos}分配VOQ队列的处理功能;SID=1表示QM按{FlowID,Cos}来分配VOQ队列的处理功能。若SID=1,且Ver=0,则表示要求QM按{FlowID,Cos}来分配VOQ队列,且FlowID的识别方式为5-tuple方式;若SID=1,且Ver=1,则表示要求QM按{FlowID,Cos}来分配VOQ队列,但FlowID的识别方式可能不同于前文的5-tuple方式。
在一种可能的实现方式中,微服务模块,还用于通过处理流程调用的一项或多项处理功能处理第一数据包中的数据,生成表示处理结果的状态信息;并将状态信息携带于处理后的数据中。
在一种可能的实现方式中,微服务模块包括队列管理器QM,状态信息包括拥塞信息。
在一种可能的实现方式中,第一数据包的包头至少包括以下任一:IP协议的包头,或VXLAN协议的包头。
在一种可能的实现方式中,片上网络至少包括以下一种总线:交叉cross总线、环形ring总线或网格mesh总线。
第二方面,提供一种数据通信方法,应用于数据传输网中的通信节点中的交换芯片,交换芯片包括多个微服务模块以及连接微服务模块的片上网络;微服务模块具有一项或多项处理功能。该方法包括以下流程:获取第一数据包,第一数据包携带有地址信息和指示信息;根据指示信息,确定对第一数据包中的数据的处理流程;根据处理流程调用一个或多个微服务模块中的一项或多项处理功能对第一数据包中的数据进行处理,获取处理后的数据;处理包括根据地址信息转发第二数据包,其中第二数据包携带处理后的数据;其中,交换芯片配置有至少两个处理流程,指示信息用于指示至少两个处理流程中的一个,至少两个处理流程被配置了一个或多个微服务模块的不同的处理功能,或一个或多个微服务模块的顺序。
在一种可能的实现方式中,指示信息包括处理标识,处理标识用于指示处理流程调用的一个或多个微服务模块执行的一项或多项处理功能。
在一种可能的实现方式中,指示信息包括配置信息,配置信息用于指示处理流程调用的一个或多个微服务模块的顺序。
在一种可能的实现方式中,对第一数据包中的数据进行处理,包括:根据配置信息通过片上网络将顺序中指示的前一微服务模块处理后的数据发送至下一微服务模块。
在一种可能的实现方式中,配置信息包括依照顺序排列的处理流程调用的一个或多个微服务模块的标识。
在一种可能的实现方式中,指示信息携带于第一数据包的包头中的保留字段或扩展字段。
在一种可能的实现方式中,微服务模块具有以下一项或多项处理功能:包处理PP、负载均衡LB以及拥塞控制CC。
在一种可能的实现方式中,微服务模块包括队列管理器QM,对第一数据包中的数据进行处理,具体包括:通过QM按照指示信息指示的处理功能将第一数据包中的数据分配至相应的队列。
在一种可能的实现方式中,处理功能包括按照端口和服务等级COS将第一数据包中的分配至相应的队列;或者,按照用户流和服务等级COS将第一数据包中的数据分配至相应的队列。
在一种可能的实现方式中,对第一数据包中的数据进行处理,包括:通过微服务模块在处理流程调用的一项或多项处理功能处理第一数据包中的数据,生成表示处理结果的状态信息;并将状态信息携带于处理后的数据中。
在一种可能的实现方式中,微服务模块包括队列管理器QM,状态信息包括拥塞信息。
在一种可能的实现方式中,第一数据包的包头至少包括以下任一:IP协议的包头,或VXLAN协议的包头。
在一种可能的实现方式中,片上网络至少包括以下一种总线:交叉cross总线、环形ring总线或网格mesh总线。
其中,第二方面及其可能的实现方式实现的技术效果可以参考第一方面及其可能的实现方式中的描述不再赘述。
第三方面,提供一种交换芯片的配置方法,应用于数据传输网中的通信节点的交换芯片。该交换芯片包括多个微服务模块以及连接所述微服务模块的片上网络;微服务模块具有一项或多项处理功能;该方法包括:接收用户设备发送的指示信息,指示信息用于指示处理流程,处理流程用于交换芯片对获取的数据包中的数据进行处理;根据处理流程配置一个或多个微服务模块中的一项或多项处理功能;交换芯片配置有至少两个处理流程,指示信息用于指示至少两个处理流程中的一个,至少两个处理流程被配置了一个或多个微服务模块的不同的处理功能,或一个或多个微服务模块的顺序。
在第三方面中与第二方面的共同之处是指示信息的形式,以及指示信息对应的处理流程,区别在于第二方面提供的方案是将指示信息携带在数据包中,当数据包传输至相应的MSM时,直接根据指示信息对MSM的处理功能进行配置。在第三方面中,指示信息是由用户设备直接配置到交换芯片,交换芯片根据指示信息配置多个MSM组成的处理流程;即在之后交换芯片针对接收到的数据包按照该固定的处理流程进行处理。在用户或运维人员认为需要对数据包执行不同的处理流程时,可以通过用户设备向交换芯片发送新的指示信息重新向交换芯片配置一个新的处理流程。当然在配置好的处理流程中每个MSM对数据包的处理过程可以参照上述第二方面的描述,本示例
中不在赘述。
在一种可能的实现方式中,指示信息包括处理标识,处理标识用于指示处理流程调用的一个或多个微服务模块执行的一项或多项处理功能。
在一种可能的实现方式中,指示信息包括配置信息,配置信息用于指示处理流程调用的一个或多个微服务模块的顺序。
在一种可能的实现方式中,配置信息包括依照顺序排列的处理流程调用的一个或多个微服务模块的标识。
在一种可能的实现方式中,微服务模块具有以下一项或多项处理:包处理PP、负载均衡LB以及拥塞控制CC。
第四方面,提供一种交换芯片包括:接收单元、配置单元。接收单元,用于接收用户设备发送的指示信息,指示信息用于指示处理流程,所述处理流程用于交换芯片对获取的数据包中的数据进行处理;配置单元,用于根据处理流程配置一个或多个微服务模块中的一项或多项处理功能;交换芯片配置有至少两个处理流程,指示信息用于指示至少两个处理流程中的一个,至少两个处理流程被配置了一个或多个微服务模块的不同的处理功能,或一个或多个微服务模块的顺序。
在一种可能的实现方式中,指示信息包括处理标识,处理标识用于指示处理流程调用的一个或多个微服务模块执行的一项或多项处理功能。
在一种可能的实现方式中,指示信息包括配置信息,配置信息用于指示处理流程调用的一个或多个微服务模块的顺序。
在一种可能的实现方式中,配置信息包括依照顺序排列的处理流程调用的一个或多个微服务模块的标识。
在一种可能的实现方式中,微服务模块具有以下一项或多项处理:包处理PP、负载均衡LB以及拥塞控制CC。
其中,第四方面及其可能的实现方式实现的技术效果可以参考第三方面及其可能的实现方式中的描述不再赘述。
第五方面,提供一种通信节点,包括第一方面、第四方面或其任意一种可能的实现方式所述的交换芯片,通信节点包括交换机或服务器。
第六方面,提供一种通信网络,包括多个集群pod和核心层,多个pod中的每个pod包括汇聚层和接入层,汇聚层包括多个汇聚节点,核心层包括多个核心节点接入层包括多个接入节点,且接入节点的下行端口与需要进行数据流量交换的服务器连接,上行端口与汇聚节点的下行端口连接,汇聚节点的上行端口与核心节点连接;核心节点、汇聚节点以及接入节点中的一个或多个采用第五方面所述的通信节点。
第七方面,提供一种可读存储介质,该可读存储介质中存储有指令,当可读存储介质在设备上运行时,使得设备执行上述第三方面的方法。
其中,第五方面至第七方面实现的技术效果可以参考第一方面至第四方面及其可能的实现方式中的描述不再赘述。
图1为本申请的实施例提供的一种层次化组网模式的DCN的结构示意图;
图2为本申请的实施例提供的一种交换网系统的结构示意图;
图3为本申请的实施例提供的一种交换芯片的内部结构示意图;
图4为本申请的实施例提供的一种包含PP的通信节点的架构示意图;
图5为本申请的实施例提供的一种Flowlet方案的示意图;
图6为本申请的实施例提供的一种拥塞控制方案的示意图;
图7为本申请的实施例提供的一种交换芯片的硬件结构示意图;
图8为本申请的实施例提供的一种数据通信方法的流程示意图;
图9为本申请的实施例提供的一种报文的帧结构;
图10为本申请的实施例提供的一种ToS的结构;
图11为本申请的实施例提供的一种VXLAN封装的报文格式图;
图12为本申请的实施例提供的一种数据包的处理流程示意图;
图13为本申请的实施例提供的一种交换芯片的配置方法的流程示意图;
图14为本申请的实施例提供的一种交换芯片的结构示意图。
本申请的实施例提供的方案可以应用于图1提供的层次化组网模式的DCN。参见图1所示,该DCN中包括接入层、汇聚层和核心层,各个层中包括一定数量的通信节点,这些通信节点按照一定的方式连接形成通信网络。
例如:通信节点可以是具有不同数据处理能力的交换机。其中,在图1中接入层中包括多个接入(access)节点(也称作TOR,洋葱节点),汇聚层中包括多个汇聚(aggregation)节点,核心层包括多个核心(core)节点,且接入节点的下行端口与需要进行数据流量交换的服务器(server)连接,接入节点的上行端口与汇聚节点的下行端口连接,汇聚节点的上行端口与核心节点连接。
其中,汇聚层和接入层可以被划分为多个群组(Pod),一个Pod中可以包括多个接入节点和多个汇聚节点,且每个接入节点与多个汇聚节点全连接。与同一个汇聚节点连接的多个核心节点可以称为一个核心(core)平面,每个核心平面分别和各Pod中的不同汇聚节点连接。图1中仅以DCN包括3个Pod,一个Pod内包括3个接入节点和4个汇聚节点,每个核心平面包括两个核心节点为例进行说明。图1中的接入节点可以表示为A1~A9,汇聚节点可以表示为B1~B12,核心节点可以表示为C1~C8,3个Pod分别表示为Pod1~Pod3。
其中,当一个Pod内不同接入节点连接的服务器之间进行数据流量交换时,可以通过与接入节点在同一Pod内的汇聚节点实现,比如,接入节点A1和接入节点A3连接的服务器需要进行数据流量交换,则接入节点A1可以通过汇聚节点B1将其连接的服务器的数据流发送给接入节点A3。当不同Pod内的接入节点连接的服务器之间进行数据流量交换时,可以通过与接入节点在同一Pod内的汇聚节点、以及与汇聚节点连接的核心节点实现,比如,接入节点A1和接入节点A5连接的服务器需要进行数据流量交换,则接入节点A1可以将其连接的服务器的数据流发送给汇聚节点B1,由汇聚节点B1转发给核心节点C1,再由C1通过汇聚节点B5发送给接入节点A5。
如果把DCN三层组网中连接到同一核心平面的N个汇聚(aggregation)节点和一个核心(core)平面内的交换机(如果是两层组网,则是TOR和core)看做是一个NxN的交换网系统(switch fabric,或SF)。则参照图2所示,此SF包括N个源汇聚节点(统称为S,即source)和N个目的汇聚节点(统称为D,即destination)以及中间级的核心(core)交换机(即switch element,SE)组成。如图2所示,源汇聚(aggregation)节点可以表示为S1~SN,目的汇聚(aggregation)节点可以表示为D1~DN,核心(core)交换机可以表示为SE1~SEm。其中,S和D实际上是同一个汇聚(aggregation)交换机,且每个汇聚(aggregation)交换机都进一步分为多个端口:对S来说是输入端口(input port);对D来说是输出端口(output port)。该NxN的SF完成将从S接收到的数据包交换到D的操作。报文在S会先经PP处理,完成之后,也会生成元数据(metadata,或者称作中继数据、中介数据),并随数据包携带发送给SE。SE不具备PP能力(或者PP能力很弱),所以只是对数据包做简单的处理,完成去往目的D的转发即可,或将SE内部的状态加入到原本S生成的元数据内,并不会根据元数据做复杂处理。D收到从SE转发的数据包之后,会参考数据包所携带的元数据完成进一步的数据包处理。本申请的实施例可以应用于多种用于数据交换的通信网络,而不限于上述的NxN的交换系统或DCN,可以理解的是只要是采用类似的机制进行数据交换的通信网络都应该适用于本申请的实施例提供的方案。
通常,上述DCN或SF内的通信节点需相互配合,以按照业务所要求的服务级别协议(service level agreement,SLA)完成将从源server收到的数据包(packet)正确发送到目标server的目的。这里的SLA(或者服务质量,quality of service,QoS)包括延时(latency)、带宽(bandwidth)、丢包率(loss rate)等指标。上述延时和丢包率是业务可感知的服务。实际上,从网络运维人员来看,网络所提供的服务(service)还包括:故障检测,可视化(telemetry,即收集网络的状态,供运维人员调优网络用)等。从单个通信节点的角度来看,所提供的服务还包括:包处理(packet processing,PP)、负载均衡(load balancing,LB)、拥塞控制(congestion control,CC)等;
一般来说,通信节点的“服务”是SLA服务的基础。
参照图3所示,提供一种DCN网络中的通信节点中的交换芯片的内部结构。通常大容量的通信节点都包含多个管线(pipeline),为简化器件,图3中只相对详细地画出其中一条管线的结构。如图3所示,该交换芯片通过输入端口(input port)从外部(例如可以连接的其他通信节点或者服务器)接收数据包(packet)。经上行管线(ingress pipeline)处理(具体的,该上行管线中可以是进行上述的PP处理,PP处理过程可以结合下文关于图4中的描述详细解读)之后,进入QM(queue manager,队列管理)模块中维护的虚拟输出队列(virtual output queues,VOQs)。VOQs通常用以缓存去往不同输出端口(output port)的数据包。VOQs是业界常用的保障QoS,防止队头阻塞(head-of-line(HOL)blocking)的手段。对于K个输入、输出端口的交换芯片而言,每个QM中一般至少有K个VOQs对应K个出端口,通常也会再根据更高的粒度,比如按{Port,Cos}进行细分(即同一Port再按照Cos划分出不同的队列),则可能会有更多的VOQs。其中,Cos指服务级别(class of service)。图3中示意的上行管线侧有M个VOQs。VOQs会经调度器(Scheduler)调度输出,经纵横交换机(crossbar switch)之后,送下行管线(egress pipeline)处理。下行管线侧通常也会设置一个QM模块,负责维护N个输出队列(output queues,OQs),用于缓存去往对应输出端口的数据包packet。此外,按照QoS的要求,属于同一输出端口的OQs也可能会进一步划分为不同的Cos的队列。同样,OQs也要经一个调度器(Scheduler)调度发往对应的出端口;当然,在硬件上上行管线侧的QM和下行管线侧的QM可以集成于同一个QM;并且上行管线侧的调度器和下行管线侧的调度器可以集成于同一个调度器。
以下分别对PP、LB以及CC的具体过程说明如下:
对于PP过程,典型的DCN都是基于网际互联(internet protocol,IP)协议的网络,DCN内的每个通信节点通常都需包含包处理(PP)功能,用来对接收到的数据包进行处理,这些处理包括:协议分析(parser)、查找目的端口(table lookup)、包编辑(modification)、逆协议分析(deparser)等。参照图4所示,提供一种包含PP的典型的通信节点架构,每个通信节点通常包含多个端口(Port),如图4所示,可以包含64 Ports;以及多个并行的PP管线(pipeline)。例如图4中示出了包含4条并行的PP pipeline。每条PP pipeline又可分为上行管线(ingress pipeline)和下行管线(egress pipeline)。上、下行管线分别完成接收侧和发送侧所需的包处理。以ingress pipeline为例,一种实现方式是:用多级阶段(multiple-stage)的匹配/操作(match/action,MA)单元组成(比如图4中的32 stages(阶段)),每个stage表示通过MA对数据包进行一种处理。调度器在QM中维护的队列实现上行管线(ingress pipeline)处理后的数据包的存储,并调度至下行管线(egress pipeline)中进行后续处理(该过程具体可以参照图3的描述)。每条PP pipeline可具备可一定的可编程能力(programmability),每级MA可以按照用户预先开发的软件(通常称为microcode)要求,完成一定的包处理功能。简单来说,MA的级数越多,PP能支持的功能越复杂。图4只是给出PP基于pipeline实现的通信节点示意。实际上,通信节点内的具有可编程能力的PP还可以有其它实现方式。总的来说,一个通信节点内的PP能力是有限的。在实际应用中,复杂的业务或者协议处理往往超出通信节点PP pipeline的处理能力;尤其,目前的方案不具备在各通信节点之间将PP能力整合的能力。
对于LB过程,在DCN网络中从任一源接入(access)节点到目的接入节点之间都有多条路径可用:对图1中的access节点来说,同一pod中的每个aggregation节点都是一个可用路径;对一个aggregation节点来说,每个核心平面内的核心节点都是一个可用路径。服务器发出的数据需要均匀地负载均衡(load balance,LB)到各层的可用路径上,以最大化地利用DCN的带宽。目前,在DCN网络中按照流(Flow,指从同一个源接入节点发出,去往同一目的接入节点的数据)均衡的LB机制是:DCN内的各通信节点一律将流(Flow)用哈希(Hash)算法来做Hash计算(比如TCP(传输控制协议,transmission control protocol))流常用五元组(5-tuple),即源地址(source IP),源端口(source port),目的地址(destination IP),目的端口(destination port),和4层通信协议(the layer 4 protocol)来做为Hash算法的输入),根据Hash的结果在等价多路径路由(equal cost multiple path,ECMP)的多条可用路径中,选择其中一条作为该流的发送路径。在按照流均衡发送数据包的方式下,由于数据流的全部内容都是通过统一的
发送路径传递,实现不同服务器间的数据交换,这样不会乱序。比如,在图1所示的网络中,若源接入节点为A1,目的接入节点为A5,由于一个Pod内包括4个汇聚节点,一个汇聚节点与两个核心节点连接,则从A1到A5总共包括8条路径,若通过哈希短发选择最终的发送路径为A1-B1-C1-B5-A5。这种传统实现机制可统称为按流分发(Flow LB)。其优点是实现简单。且Hash算法保证属于同一条流的Packet都走同一条路径,不会产生乱序现象。所以接收端无需对接收到的Packet做重排序。但采用Hash算法选路的LB机制会产生哈希冲突(Hash collision)。也就是说Hash算法无法避免会将多个流往同一上行端口分发。比如,接入节点A1同时将多个数据流通过路径A1-B1-C1-B5-A5发送,即多个流同时突发流量,则会造成该路径上的端口拥塞。
Hash冲突会发生在TOR至Aggregation;或者Aggregation至核心节点的端口上。业界也有提出基于FlowLB算法的优化,例如Flowlet(小流)方案。如图5所示,一条TCP流经过节点A传输至节点B之间具有两条链路,如图5分别是A-C-D-B和A-E-F-B。则由于TCP通常是以突发(burst)方式发包;每一段burst就是一个Flowlet。如果两条链路的路径延时分别为d1,d2,那么只要同一条TCP流的两个Flowlet:Flowlet1,Flowlet2的间隔Gap>|d1-d2|,则这两个Flowlet可经不同路径发送,而无需担心乱序,如图5所示,Flowlet1(小流1)经由A-C-D-B传输完成后,Flowlet2(小流2)经由A-E-F-B传输。Flowlet是动态负载均衡(dynamic load balancing,DLB)的一种,相对服务器负载均衡(server load dalancing,SLB)而言,DLB允许属于同一条流的数据包动态地切换发送路径,从而令流量分布更均匀。Flowlet机制往往还需要下游的通信节点反馈拥塞(例如,以Delay来衡量)程度,供源节点参考。在当前网络中,这种反馈机制(和反馈的信息)往往也是固化在芯片中,无法改动。
对于CC过程,CC会直接影响DCN网络的系统性能(如,延时显著增加,甚至会造成丢包)。当前网络中普遍用的一些拥塞控制技术,包括:显示拥塞通告(explicit congestion notification,ECN)等。互联网工程任务组(The Internet Engineering Task Force,IETF)在ECN标准中,定义ECN信息由IP包头中的2bits来携带。实际上,学术界和工业界针对不同的业务场景需求,还产生了各种各样的CC机制,如量化拥塞通告(quantized congestion notification,QCN)等。如图6所示,通常的CC机制由拥塞点(CP,产生拥塞信息的通信节点),响应点RP(RP,响应拥塞信息的通信节点),以及中间反馈点(NP,反馈拥塞信息的通信节点)组成。通常在CP发生拥塞时,由CP按照一定的CC算法生成拥塞信息,通过NP或直接反馈至RP,RP在接收到该拥塞信息后,对转发的数据流的数据量进行调整以避免CP拥塞。在当前网络中,存在各类CC算法,通信节点可能具有支持多种CC算法的能力,然而,网络中的通信节点通常固化使用某个CC算法,用户最多只能修改该固化的CC算法的部分参数,而无法引入新算法。
综上所述,当前网络节点所提供的PP、LB以及CC等各类服务,实际上是定制的一些固化服务的集合,用户或网络运维人员无法控制、修改,这造成已部署的网络无法及时跟上业务变化、或运维升级的要求。另一方面,这些处理往往由一些更基础的组件(building block,BB,例如BB包括缓存buffer以及处理逻辑)构成。这些固化在交换芯片中的BB除了按固定的流程实现固定的功能之外,也缺乏有效的机制,将其组合形成处理新的业务或网络运维所需的能力。这将导致网络在进行服务器之间的数据交换时,对数据处理的灵活性较低。例如,在当前DCN组网内,各通信节点对收到的数据包处理基本完全独立处理,例如每个通信节点对接收到的数据包均需要将PP、LB以及CC等各类服务固定执行。以基于IP的DCN网络为例,各通信节点完全独立按照二层以太(Layer2 Ethernet),三层IP(Layer3 IP),等标准的流程来做PP处理,即每个通信节点在收到数据包后都需要按照协议进行协议解析、寻址等处理。不同之处在于各通信节点L2或L3的表项内容和大小有所不同而已,即使通信节点间有交互,如上文所述的CC机制,也是通过标准的协议来携带预先定义好的信息;然后再按预定的流程,调用固定的BB来进行处理。
基于上述的问题,本申请实施例提供的方案通过交换芯片提供多个微服务模块(micro-service module,MSM)以及将多个微服务模块连接的片上网络(network on chip,NOC)。其中,微服务模块具有一项或多项处理功能,例如,这些处理功能可以是PP、LB以及CC等中的一项或多项;则,在交换芯片对接收到的数据包按照地址信息进行转发的过程中,进一步按照数据包携带的指示信息确定对接收到的数据包中的数据的处理流程,并按照处理流程调用一个或多
个微服务模块中的一项或多项处理功能对数据包中的数据进行处理。这样,按照不同的指示信息对应的处理流程,交换芯片可以通过NOC将一个或多个MSM组合成为不同的处理流程,例如,不同的处理流程中可以包括按照不同顺序组合的MSM,并且不同的处理流程中可以在一个或多个MSM中配置不同的处理功能。这样,对于参与数据流处理的一个或多个通信节点,在单个的通信节点上,提高了对包含不同指示信息的数据包处理的灵活性。此外,对于需要多个通信节点联合处理时,常规技术是在每个节点都需要重复进行协议解析、寻址等处理,但是采用本申请的实施例提供的方案时,可以通过不同通信节点间的指示信息将多个通信节点上的处理流程进行串接,例如在前一通信节点的处理流程中已经有MSM执行过协议解析,则在下一通信节点中可以通过指示信息指示在该通信节点的处理流程中的MSM不在执行协议解析的处理,从而实现对数据包在多个通信节点的联合处理,避免在多个通信节点中重复执行相同的处理功能,简化了数据通信的过程。
图7为申请实施例提供的一种通信节点中的交换芯片的结构示意图,该通信节点可以为核心节点、汇聚节点、接入节点以及服务器。在实际应用中,网络中的核心节点、汇聚节点和接入节点可以为交换机、路由器、或者其他网络设备等。即本申请实施例提供的交换芯片可以应用于交换机以实现作为通信节点的交换机的通信功能,或者本申请的实施例提供的交换芯片也可以应用于服务器中的网卡(network interface card,NIC),以实现服务器与所连接的通信节点的通信功能。
参见图7,该交换芯片包括多个MSM71、NOC72、以太网接口73以及存储器74。其中,MSM71、以太网接口73以及存储器74连接于NOC72。MSM71通过运行或执行存储在存储器74内的软件程序和/或模块,以及调用存储在存储器74内的数据,执行该交换芯片的各种功能。MSM71可以是一个专用逻辑器件或者通用处理器,其对接收到的数据包中的数据具有一项或多项处理功能,例如具有以下一项或多项处理功能:包处理PP、负载均衡LB以及拥塞控制CC。该MSM可以包括一个或者多个模块,比如,包括中央处理单元(central processing unit,CPU)和网络处理器(network processor,NP),该网络处理器可以由专用集成电路(application-specific integrated circuit,ASIC)或现场可编程门阵列(field-programmable gate array,FPGA)芯片实现。在一些示例中,MSM71可以提供各种网络服务机制。MSM可包括前文中PP、端口、QM、Scheduler,也可以是上述模块的一部分。其目的是实现一个具体的功能,例如VOQ管理、队列调度、包处理、CC、LB等等;或是对某些信息(如上述文中的拥塞信息)进行计算处理等。在一些示例中,以图3中的QM为例,QM往往作为交换芯片内交换(switch)或者流量管理(traffic management)子系统的一部分。这里说的“子系统(subsystem)”泛指通信节点中一个完整交换芯片的一部分功能,比如PP子系统、交换子系统等。一个复杂功能的交换芯片往往由多个子系统组合而成。当然,子系统也可以进一步拆分出不同的MSM。例如,PP子系统也可以拆分出:查表(table lookup),统计等MSM;输入\输出端口(input/output port)子系统也可以拆分出:纠错(error correction)等MSM。总之,这里所说的MSM,可以理解为传统子系统中的一个单点、或者部分(当然,也可以扩展为整个子系统)的处理。存储器74可用于存储数据、软件程序以及模块,可以由任何类型的易失性或非易失性存储器或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘等等。以太网接口73即为该交换芯片的端口,一个交换芯片可以包括多个以太网接口,每个以太网接口可以被配置为该交换芯片所在通信节点的上行端口,也可以被配置为下行端口,且该通信节点可以通过上行端口和下行端口对数据流量进行转发;当然在一些示例中以太网接口也可以当做一种MSM。NOC72主要用于将多个MSM71连接,可以采用总线,例如互联总线bus、纵横总线crossbar等,或者也可以采用一种具有一定拓扑结构的连接网络,例如ring、mesh等。
当然,上述的MSM、存储器可以集成于同一个芯片当中,此外存储器也可以作为单独的存储芯片独立设置。
本领域技术人员可以理解,图7示出的该交换芯片的结构并不构成对其结构的限定。在实际应用中,该交换芯片还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于上述的交换芯片,在图8中,本申请实施例提供的一种数据通信方法的流程示意图,该方法应用于数据通信网络中的通信节点,参见图8,该方法包括以下几个步骤。
101、交换芯片获取第一数据包,第一数据包携带有地址信息和指示信息。
其中,在CCN中的数据通信过程主要是数据包在各个通信节点的交换芯片之间传输。因此CCN内的各通信节点之间可以通过标准协议互联,例如,Layer2的Ethernet,以及Layer3的IP协议互联。则,第一数据包可以是标准协议的数据包,例如参照图9所示,提供了能够第一数据包的报文结构,其包括包头(header)以及载荷(payload)。其中,包头中具体包括版本(version,4比特bits)、首部长度(lnternet header length,IHL,4bits)、服务类型(type of service,ToS,8bits)、总长度(total length,16bits)、标识符(identification(fragmentID),16bits)、标志(flag,3bits)、段偏移量(fragment offset,13bits)、生存时间(time to live,TTL,8bits)、协议号(protocal,8bits)、首部/头部校验和(header cheaksum,16bits),源地址(source IP address,SA,32bits)、目的地址(destination IP address,DA,32bits)、可选项(IP option,或扩展字段)。上述的地址信息直接携带在图9中的报文的帧结构中,例如:目的地址和源地址。指示信息可以携带在保留字段或扩展字段,例如,参照图10示出了一种ToS的具体结构,其包括:优先级(precedence,3bits)、延迟(delay,1bit)、吞吐量(throughput,1bit)、可靠性(reliability,1bit)以及保留字段(reserved,2bits);该指示信息具体可以携带于ToS的上述保留字段。或者,参照图8,该指示信息可以携带于扩展字段。当然,该指示信息还可以放在其他位置,例如扩展字段之后,设置长度可以是16bits或24bits或者其他长度。
在一些示例中,DCN网络可以采用重叠网(overlay)模型来提供服务。overlay模型中底层物理网络(underlay network)采用上文所述的DCN拓扑结构,并通过标准协议互连;上层虚拟网络(virtual network)通过可扩展的虚拟局域网隧道端点(virtual extensible local area network tunnel end point,VTEP)封装的可扩展的虚拟局域网(virtual extensible local area network,VXLAN)管道形式overlay在物理网络之上。对同一VXLAN内的用户而言,其体验等同于直接互连的网络,不同的VXLAN通过VXLAN的网络标识符(VXLAN Network Identifier,VNID)来区分。overlay网络的包(original Ethernet frame,原始以太网帧,即图8示出的报文结构)作为数据被封装在外层Underlay网络的包头之内;物理网络中的各节点只需要根据外层包头来转发报文即可。VXLAN封装的报文格式如图11所示,对于原始以太帧(original L2 frame,即图8示出的帧结构)增加VXLAN头header作为用户数据报协议(user datagram protocol,UDP)的数据,将外层UDP header和UDPheader以及UDP的数据外封装外层IP头(outer IP header)以及外层以太头(outer Ethernet header)。其中,本申请的实施例提供的指示信息也可以设置于VXLAN header的扩展字段,图11中仅仅示出一种IPv4的VXLAN帧报文格式,在其他示例中overlay的方案还有很多。
102、交换芯片根据指示信息,确定对第一数据包中的数据的处理流程。
具体的,交换芯片可以配置有至少两个处理流程,每个指示信息用于指示至少两个处理流程中的一个,至少两个处理流程被配置了一个或多个微服务模块MSM的不同的处理功能,或一个或多个微服务模块MSM的顺序。这样,在不同的处理流程中可以是包括不同顺序的多个MSM对第一数据包的处理,并在不同的处理流程中同一个MSM可以是对第一数据包执行的不同处理功能的处理。其中,指示信息包括处理标识,处理标识用于指示处理流程调用的一个或多个微服务模块执行的一项或多项处理功能。指示信息包括配置信息,配置信息用于指示处理流程调用的一个或多个微服务模块的顺序。
103、交换芯片根据处理流程调用一个或多个微服务模块中的一项或多项处理功能对第一数据包中的数据进行处理。
针对步骤103,在以下示例中主要对MSM如何在不同的处理流程中实现不同的处理功能,以及如何在不同的处理流程中实现多个MSM的顺序进行说明。
首先,对在不同处理流程中的同一MSM对数据包执行不同的处理功能为例举例进行说明。
示例性的,指示信息可以进一步包括处理标识,处理标识用于指示处理流程调用的一个或多
个微服务模块执行的一项或多项处理功能。以QM做为一个MSM为例,QM里的VOQ通常对应本交换芯片的K个输出端口,通常也会再根据更高的粒度,比如按{Port,Cos}进行细分。即QM可以按照端口Port和服务等级Cos将第一数据包中的数据分配至相应的VOQ队列,则同一个端口对应不同的服务等级Cos时,可能会有更多的VOQ。但本申请的实施例中采用的MSM要求QM里的队列有一定的灵活性,不再严格按照{Port,Cos}设置,而是除了原本的{Port,Cos}设置之外,还可以按照其它维度设置。比如按照{FlowID,Cos}来设置,即QM可以按照用户流(可以是流标识FlowID)和服务等级COS将第一数据包中的数据分配至相应的VOQ队列,其中FlowID用于标识用户流。在标准的TCP/IP网络中,常用五元组(5-tuple),即源IP(source IP)地址,源端口(source port),目的IP(destination IP)地址,目的端口(destination port),和传输协议(例如,4层协议,the layer 4 protocol)或者5-tuple的hash值来作为FlowID。
因此,为区分QM不同的处理功能(按照{Port,Cos}或者按照{FlowID,Cos}将第一数据包中的数据分配至相应的VOQ队列),可以引入采用SID(ServiceID,服务标识)和Ver(Version,版本)作为处理标识的指示信息。其中,SID可用于区分使用QM的不同服务;Ver用于区分某个服务的不同版本。例如,定义SID=0表示QM按{Port,Cos}分配VOQ队列的处理功能;SID=1表示QM按{FlowID,Cos}来分配VOQ队列的处理功能。若SID=1,且Ver=0,则表示要求QM按{FlowID,Cos}来分配VOQ队列,且FlowID的识别方式为5-tuple方式;若SID=1,且Ver=1,则表示要求QM按{FlowID,Cos}来分配VOQ队列,但FlowID的识别方式可能不同于前文的5-tuple方式。
这要求QM在入口处增加按处理标识{SID,Ver}对接收的PP进行分流的过程。如图12所示:在一个MSM接收到第一数据包时,可以根据处理标识{SID,Ver}确定对第一数据包的具体处理功能,如上所述根据{SID,Ver}不同的赋值,MSM可以对第一数据包执行用户自定义处理流程(1)中的处理功能,或者执行用户自定义处理流程(2)中的处理功能;当然,为了兼容目前的QM的固定处理流程,也可以是在MSM确定第一数据包未携带处理标识时,直接按照默认处理流程(例如可以是图3中描述的处理功能)中的处理功能对第一数据包进行处理。当然,如果该MSM执行的处理功能是转发数据包,则在处理完后生成携带按照处理流程对第一数据包中的数据处理后的数据的第二数据包,并根据地址信息转发第二数据包。
当然,以上“用户自定义处理流程”可以包括QM按不同的规则分配VOQ队列;当然在应用于其他模块时也可以是其它处理功能。如果提供的MSM是通用处理器,比如RISC-V核,则可以灵活按照处理标识完成其新定义的流程;如果是专用处理逻辑,则可能需要新增处理逻辑或者资源以完成处理标识特定的流程。当然,这些新增资源一律都可以被作为MSM被用户通过配置在数据包中的处理标识灵活调用。另外,上文只是例举了用SID和Ver来区分用户自定义处理流程,但实际上,还可以有其它的命名方式,以及不同的维度,比如{SID,Procedure,Ver},或者{Program,Session,Type}等等,其中Procedure(程序)、Program(代码)、Session(会话),Type(类型)等可以用来指示DCN网络中传输数据的其他指标,例如延时、队列深度等;但只要对处理流程中的MSM执行的处理功能能予以区分即可。
其次,对在不同的处理流程中实现多个MSM的顺序进行说明如下。
如上所述,由于多个微服务模块MSM均连接片上网络NOC,即NOC能够用于串接交换芯片各处提供处理功能的MSM。因此,当指示信息包括用于指示处理流程调用的一个或多个微服务模块MSM的顺序时,片上网络可以根据配置信息将顺序中指示的前一微服务模块处理后的数据发送至下一微服务模块,从而在一个处理流程中,当一个MSM对数据包处理完成后可以通过NOC按照处理流程指定的顺序发送至下一个MSM,直至实现整个处理流程。
以图4中的PP处理作为MSM的处理功能为例,MSM会根据处理标识{SID,Ver}做相应的处理,通常是按照要求封装相应的packet,再发送给下一个MSM处理。这里可以由NOC根据{SID,Ver}将MSM生成的数据(meta-data),或者packet发送给下一个MSM处理。当然,在一些示例中,指示信息也可以包括用于指示处理流程调用的一个或多个微服务模块MSM的顺序的配置信息。这样NOC可以直接根据顺序将MSM生成的数据(meta-data),或者packet发送给下一个MSM处理。在一些示例中,配置信息可以包括依照顺序排列的处理流程调用的一个或多个微服务模块的标识。例如,以MSM的编号(A,B,C,D…)作为MSM的标识供NOC串接处理流程中MSM的顺序。具体
的,配置信息可以是下一MSM的编号;或者,处理流程中所有所需MSM的编号,然后完成一级处理之后,依次去掉或者挪位(比如将已使用过的MSM的编号循环移动到所有编号的末端)。
参照表1所示,结合上述处理标识{SID,Ver}以及配置信息提供了指示信息的具体示例。
表1
以表1中的第一行的条目为例,当数据包被传输至当前编号为A的MSM时,MSMA按照指示信息中携带的SID=0,Ver=1对数据包执行处理流程,具体的MSMA按{Port,Cos}分配VOQ队列的处理功能,并按照不同于前文的5-tuple方式识别Port;然后将处理完的数据发送至MSMB继续处理。当然,表1的信息也可以是设置在交换芯片的存储器中;或者散布在MSM内;或者是由NOC结构维护;或者通过用户编写的软件指令实现(比如,用在RISC-V的结构中)。这样,指示信息也可以采用一个用于指示表1中的条目标识(例如可以是行号),当交换芯片接收到数据包后,可以根据指示信息对应的条目标识直接在表1中确定响应的处理标识和配置信息。
此外,需要说明的是本申请的实施例对指示信息中携带的处理标识的具体形式不做限定,例如:一个处理流程中的所有MSM可以对应一个处理标识,或者结合配置信息中的MSM的编号也可以为一个处理流程中的每个MSM分别配置一个处理标识,则当将MSM的编号与其对应的处理标识相映射时,MSM在接收到数据包后,可以根据MSM的编号以及编号对应的处理标识确定对数据包执行的处理功能。
此外,MSM还用于通过处理流程调用的一项或多项处理功能处理第一数据包中的数据,生成表示处理结果的状态信息;并将状态信息携带于处理后的数据中。以CC机制中的CP节点为例,CP负责产生拥塞信息。假定拥塞信息由图3中QM的VOQ提供(实际上也可以由OQ提供),也就是说QM可以作为提供拥塞信息的MSM。QM可根据ECN/QCN等机制,根据VOQ的深度产生拥塞信息;也可根据指示信息指的其它拥塞信息产生方式触发拥塞信息,例如用{SID,Ver}或其它方式予以区分;然后,将此拥塞信息再加上CC的状态信息,比如6bit延时统计(这是举例说明,表示可以不同于标准的2bitECN状态信息;实际上用户可以自定义各种不同维度和粒度的信息)。之后,将拥塞信息通过NOC传给作为PP的MSM;经PP以及端口处理之后,按照芯片间协商好的位置封装在数据包的包头内。
综上所述,交换芯片之间以及交换芯片内部MSM之间(通过NOC)采用上述基于指示信息的数据通信方法意味着:整个DCN网络各通信节点内的MSM处理可以关联起来。例如:在CP节点完成通过处理标识定义的拥塞信息采集之后;可以通过用户自定义拥塞信息的传递方式:比如是类似ECN处理,先将拥塞信息传给NP;再由NP传回RP;还是由CP直接产生数据包报文携带拥塞信息发送给RP;RP在接收到拥塞信息之后,可以根据预设的{SID,Ver}处理拥塞信息,并且RP上对拥塞信息的处理流程可以在RP的交换芯片内部由不同的MSM串接提供。此外,参照图1所示,A1节点从server收到数据包packet,完成标准的L2的MAC Addresss和L3的IP Address等PP处理之后,按需生成携带处理标识{SID,Ver}的指示信息,并携带目的节点A5的Address。后续的通信节点(例如B1、C1、B5、A5)识别{SID,Ver}之后,PP处理可直接根据所携带的目的节点A5的Address实现简化的路由处理,例如在该后续的通信节点可以不再执行A1节点已经执行过的PP处理。这样,可以极大优化内部网络节点的处理延时,并且可以获得简化处理之后的功耗降低的收益。另一方面,由于当前网络中各级通信节点内部一般都带有PP,这样可以通过合理的功能划分,将从S到D的数据交换过程,认为是数据包在上行和下行pipeline的处理(参照图4),而不同层次通信节点的PP处理,可以认为是承载了pipeline不同Stage的处理。这样,即可实现原本单一节点由于PP处理能力不足,而无法实现的更复杂功能。
这样,由于本申请的实施例提供的交换芯片的结构具有多个微服务模块以及连接微服务模块的片上网络;并且微服务模块具有一项或多项处理功能。因此在按照数据包中的地址信息对数据
包进行转发时,可以按照数据包中的指示信息具体配置数据包的处理流程,例如,不同的指示信息可以对应不同的处理流程,并且不同的处理流程调用的微服务模块的数量、顺序以及微服务模块实现的处理功能可以不同,从而提高了数据传输网进行数据通信的灵活性。
在上述示例中主要以数据包直接携带用于确定处理流程的指示信息为例进行说明,在一些示例中,也可以事先由用户设备对交换芯片配置对后续收到的数据包的处理流程,参照图13所示,提供一种交换芯片的配置方法,包括:
201、交换芯片接收用户设备发送的指示信息,指示信息用于指示处理流程,处理流程用于交换芯片对获取的数据包中的数据进行处理。
其中,指示信息包括配置信息,配置信息用于指示处理流程调用的一个或多个微服务模块的顺序。配置信息包括依照顺序排列的处理流程调用的一个或多个微服务模块的标识。
202、交换芯片根据处理流程配置一个或多个微服务模块中的一项或多项处理功能;交换芯片配置有至少两个处理流程,指示信息用于指示至少两个处理流程中的一个,至少两个处理流程被配置了一个或多个微服务模块的不同的处理功能,或一个或多个微服务模块的顺序。
与步骤101-103的共同之处是指示信息的形式,以及指示信息对应的处理流程,区别在于上述101-103提供的步骤是将指示信息携带在数据包中,当数据包传输至相应的MSM时,直接根据指示信息对MSM的处理功能进行配置。在步骤201-202中指示信息是由用户设备直接配置到交换芯片,交换芯片根据指示信息配置多个MSM组成的处理流程;即在之后交换芯片针对接收到的数据包按照该固定的处理流程进行处理。在用户或运维人员认为需要对数据包执行不同的处理流程时,可以通过用户设备向交换芯片发送新的指示信息重新向交换芯片配置一个新的处理流程。当然在配置好的处理流程中每个MSM对数据包的处理过程可以参照上述步骤101-103的描述,本示例中不在赘述。
上述主要从方法步骤的角度对本申请实施例提供的交换芯片的配置方法进行了介绍。可以理解的是,交换芯片为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的交换芯片的步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述交换芯片的配置方法示例对交换芯片进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图14示出了上述实施例中所涉及的交换芯片的一种可能的结构示意图,该交换芯片包括:接收单元301、配置单元302。
接收单元301,用于接收用户设备发送的指示信息,指示信息用于指示处理流程,所述处理流程用于交换芯片对获取的数据包中的数据进行处理;
配置单元302,用于根据处理流程配置一个或多个微服务模块中的一项或多项处理功能;交换芯片配置有至少两个处理流程,指示信息用于指示至少两个处理流程中的一个,至少两个处理流程被配置了一个或多个微服务模块的不同的处理功能,或一个或多个微服务模块的顺序。
可选的,指示信息包括处理标识,处理标识用于指示处理流程调用的一个或多个微服务模块执行的一项或多项处理功能。
可选的,指示信息包括配置信息,配置信息用于指示处理流程调用的一个或多个微服务模块的顺序。
可选的,配置信息包括依照顺序排列的处理流程调用的一个或多个微服务模块的标识。
可选的,微服务模块具有以下一项或多项处理:包处理PP、负载均衡LB以及拥塞控制CC。
在硬件实现上,上述配置单元302可以为处理器,例如可以是上述图7示出的MSM;接收单元301可以为接收器,该接收器可以与发送器构成通信接口例如图7中的以太网接口73。
在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当
一个设备(可以是单片机,芯片等)或者处理器执行图13所提供的配置方法的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施图13所提供的配置方法的步骤。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (34)
- 一种交换芯片,应用于数据传输网中的通信节点,其特征在于,包括多个微服务模块以及连接所述微服务模块的片上网络;所述微服务模块具有一项或多项处理功能;所述交换芯片用于:获取第一数据包,所述第一数据包携带有地址信息和指示信息;根据所述指示信息,确定对所述第一数据包中的数据的处理流程;根据所述处理流程调用一个或多个所述微服务模块中的一项或多项处理功能对所述第一数据包中的数据进行处理;所述处理包括根据所述地址信息转发第二数据包,其中所述第二数据包携带按照所述处理流程对所述第一数据包中的数据处理后的数据;其中,所述交换芯片配置有至少两个处理流程,所述指示信息用于指示所述至少两个处理流程中的一个,所述至少两个处理流程被配置了一个或多个所述微服务模块的不同的处理功能,或一个或多个所述微服务模块的顺序。
- 根据权利要求1所述的交换芯片,其特征在于,所述指示信息包括处理标识,所述处理标识用于指示所述处理流程调用的一个或多个所述微服务模块执行的一项或多项处理功能。
- 根据权利要求1或2所述的交换芯片,其特征在于,所述指示信息包括配置信息,所述配置信息用于指示所述处理流程调用的一个或多个所述微服务模块的顺序。
- 根据权利要求3所述的交换芯片,其特征在于,所述片上网络,用于根据所述配置信息将所述顺序中指示的前一所述微服务模块处理后的数据发送至下一所述微服务模块。
- 根据权利要求3或4所述的交换芯片,其特征在于,所述配置信息包括依照所述顺序排列的所述处理流程调用的一个或多个所述微服务模块的标识。
- 根据权利要求1-5任一项所述的交换芯片,其特征在于,所述指示信息携带于所述第一数据包的包头中的保留字段或扩展字段。
- 根据权利要求1-6任一项所述的交换芯片,其特征在于,所述微服务模块具有以下一项或多项处理功能:包处理PP、负载均衡LB以及拥塞控制CC。
- 根据权利要求1-7任一项所述的交换芯片,其特征在于,所述微服务模块包括队列管理器QM,所述队列管理器QM具体用于按照所述指示信息指示的处理功能将所述第一数据包中的数据分配至相应的队列。
- 根据权利要求8所述的交换芯片,其特征在于,所述处理功能包括按照端口和服务等级COS将所述第一数据包中的数据分配至相应的队列;或者,按照用户流和服务等级COS将所述第一数据包中的数据分配至相应的队列。
- 根据权利要求1-9任一项所述的交换芯片,其特征在于,所述微服务模块,还用于通过所述处理流程调用的一项或多项处理功能处理所述第一数据包中的数据,生成表示处理结果的状态信息;并将所述状态信息携带于处理后的数据中。
- 根据权利要求10所述的交换芯片,其特征在于,所述微服务模块包括队列管理器QM,所述状态信息包括拥塞信息。
- 根据权利要求6所述的交换芯片,其特征在于,所述第一数据包的包头至少包括以下任一:IP协议的包头,或VXLAN协议的包头。
- 根据权利要求1-12任一项所述的交换芯片,其特征在于,所述片上网络至少包括以下一种总线:交叉cross总线、环形ring总线或网格mesh总线。
- 一种数据通信方法,应用于数据传输网中的通信节点中的交换芯片,其特征在于,所述交换芯片包括多个微服务模块以及连接所述微服务模块的片上网络;所述微服务模块具有一项或多项处理功能;所述方法包括:获取第一数据包,所述第一数据包携带有地址信息和指示信息;根据所述指示信息,确定对所述第一数据包中的数据的处理流程;根据所述处理流程调用一个或多个所述微服务模块中的一项或多项处理功能对所述第一数据包中的数据进行处理,获取处理后的数据;所述处理包括根据所述地址信息转发第二数据包,其中所述第二数据包携带所述处理后的数据;其中,所述交换芯片配置有至少两个处理流程,所述指示信息用于指示所述至少两个处理流 程中的一个,所述至少两个处理流程被配置了一个或多个所述微服务模块的不同的处理功能,或一个或多个所述微服务模块的顺序。
- 根据权利要求14所述的数据通信方法,其特征在于,所述指示信息包括处理标识,所述处理标识用于指示所述处理流程调用的一个或多个所述微服务模块执行的一项或多项处理功能。
- 根据权利要求14或15所述的数据通信方法,其特征在于,所述指示信息包括配置信息,所述配置信息用于指示所述处理流程调用的一个或多个所述微服务模块的顺序。
- 根据权利要求16所述的数据通信方法,其特征在于,所述对所述第一数据包中的数据进行处理,包括:根据所述配置信息通过所述片上网络将所述顺序中指示的前一所述微服务模块处理后的数据发送至下一所述微服务模块。
- 根据权利要求16或17所述的数据通信方法,其特征在于,所述配置信息包括依照所述顺序排列的所述处理流程调用的一个或多个所述微服务模块的标识。
- 根据权利要求14-18任一项所述的数据通信方法,其特征在于,所述指示信息携带于所述第一数据包的包头中的保留字段或扩展字段。
- 根据权利要求14-19任一项所述的数据通信方法,其特征在于,所述微服务模块具有以下一项或多项处理功能:包处理PP、负载均衡LB以及拥塞控制CC。
- 根据权利要求14-20任一项所述的数据通信方法,其特征在于,所述微服务模块包括队列管理器QM,对所述第一数据包中的数据进行处理,具体包括:通过所述QM按照所述指示信息指示的处理功能将所述第一数据包中的数据分配至相应的队列。
- 根据权利要求21所述的数据通信方法,其特征在于,所述处理功能包括按照端口和服务等级COS将所述第一数据包中的分配至相应的队列;或者,按照用户流和服务等级COS将所述第一数据包中的数据分配至相应的队列。
- 根据权利要求14-22任一项所述的数据通信方法,其特征在于,所述对所述第一数据包中的数据进行处理,包括:通过所述微服务模块在所述处理流程调用的一项或多项处理功能处理所述第一数据包中的数据,生成表示处理结果的状态信息;并将所述状态信息携带于处理后的所述数据中。
- 根据权利要求23所述的数据通信方法,其特征在于,所述微服务模块包括队列管理器QM,所述状态信息包括拥塞信息。
- 根据权利要求18所述的数据通信方法,其特征在于,所述第一数据包的包头至少包括以下任一:IP协议的包头,或VXLAN协议的包头。
- 根据权利要求14-25任一项所述的数据通信方法,其特征在于,所述片上网络至少包括以下一种总线:交叉cross总线、环形ring总线或网格mesh总线。
- 一种交换芯片的配置方法,其特征在于,应用于数据传输网中的通信节点的交换芯片,所述交换芯片包括多个微服务模块以及连接所述微服务模块的片上网络;所述微服务模块具有一项或多项处理功能;该方法包括:接收用户设备发送的指示信息,所述指示信息用于指示处理流程,所述处理流程用于所述交换芯片对获取的数据包中的数据进行处理;根据所述处理流程配置一个或多个所述微服务模块中的一项或多项处理功能;所述交换芯片配置有至少两个处理流程,所述指示信息用于指示所述至少两个处理流程中的一个,所述至少两个处理流程被配置了一个或多个所述微服务模块的不同的处理功能,或一个或多个所述微服务模块的顺序。
- 根据权利要求27所述的交换芯片的配置方法,其特征在于,所述指示信息包括处理标识,所述处理标识用于指示所述处理流程调用的一个或多个所述微服务模块执行的一项或多项处理功能。
- 根据权利要求27或28所述的交换芯片的配置方法,其特征在于,所述指示信息包括配置信息,所述配置信息用于指示所述处理流程调用的一个或多个所述微服务模块的顺序。
- 根据权利要求29所述的交换芯片的配置方法,其特征在于,所述配置信息包括依照所述顺序排列的所述处理流程调用的一个或多个所述微服务模块的标识。
- 根据权利要求27-30任一项所述的交换芯片的配置方法,其特征在于,所述微服务模块具有以下一项或多项处理:包处理PP、负载均衡LB以及拥塞控制CC。
- 一种通信节点,其特征在于,包括如权利要求1-13任一项所述的交换芯片,所述通信节点包括交换机或服务器。
- 一种通信网络,其特征在于,包括多个集群pod和核心层,所述多个pod中的每个pod包括汇聚层和接入层,所述汇聚层包括多个汇聚节点,所述核心层包括多个核心节点所述接入层包括多个接入节点,且所述接入节点的下行端口与需要进行数据流量交换的服务器连接,上行端口与所述汇聚节点的下行端口连接,所述汇聚节点的上行端口与所述核心节点连接;所述核心节点、所述汇聚节点以及所述接入节点中的一个或多个采用如权利要求32所述的通信节点。
- 一种可读存储介质,其特征在于,所述可读存储介质中存储有指令,当所述可读存储介质在设备上运行时,使得所述设备执行上述权利要求14-31任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211176274.7A CN117768947A (zh) | 2022-09-26 | 2022-09-26 | 一种数据通信方法、交换芯片、通信节点及通信网络 |
CN202211176274.7 | 2022-09-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024066555A1 true WO2024066555A1 (zh) | 2024-04-04 |
Family
ID=90322524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/103157 WO2024066555A1 (zh) | 2022-09-26 | 2023-06-28 | 一种数据通信方法、交换芯片、通信节点及通信网络 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117768947A (zh) |
WO (1) | WO2024066555A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107689931A (zh) * | 2017-09-27 | 2018-02-13 | 广州海格通信集团股份有限公司 | 一种基于国产fpga的实现以太网交换功能系统及方法 |
CN108471389A (zh) * | 2018-03-12 | 2018-08-31 | 电子科技大学 | 一种基于服务功能链的交换机系统 |
CN108809854A (zh) * | 2017-12-27 | 2018-11-13 | 北京时代民芯科技有限公司 | 一种用于大流量网络处理的可重构芯片架构 |
CN108833299A (zh) * | 2017-12-27 | 2018-11-16 | 北京时代民芯科技有限公司 | 一种基于可重构交换芯片架构的大规模网络数据处理方法 |
CN113438186A (zh) * | 2021-06-09 | 2021-09-24 | 新华三技术有限公司 | 一种转发报文的方法及装置 |
-
2022
- 2022-09-26 CN CN202211176274.7A patent/CN117768947A/zh active Pending
-
2023
- 2023-06-28 WO PCT/CN2023/103157 patent/WO2024066555A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107689931A (zh) * | 2017-09-27 | 2018-02-13 | 广州海格通信集团股份有限公司 | 一种基于国产fpga的实现以太网交换功能系统及方法 |
CN108809854A (zh) * | 2017-12-27 | 2018-11-13 | 北京时代民芯科技有限公司 | 一种用于大流量网络处理的可重构芯片架构 |
CN108833299A (zh) * | 2017-12-27 | 2018-11-16 | 北京时代民芯科技有限公司 | 一种基于可重构交换芯片架构的大规模网络数据处理方法 |
CN108471389A (zh) * | 2018-03-12 | 2018-08-31 | 电子科技大学 | 一种基于服务功能链的交换机系统 |
CN113438186A (zh) * | 2021-06-09 | 2021-09-24 | 新华三技术有限公司 | 一种转发报文的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117768947A (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10181977B2 (en) | Cross-stratum optimization protocol | |
US10333779B2 (en) | System and method for providing a software defined protocol stack | |
US8942242B2 (en) | Method and apparatus for self-learning of VPNS from combinations of unidirectional tunnels in MPLS/VPN networks | |
EP2713567A1 (en) | Maintaining load balancing after service application with a netwok device | |
WO2019030552A1 (en) | ADVANCED NETWORK PATH TRACING | |
US11671483B2 (en) | In-band protocol-based in-network computation offload framework | |
EP3718269B1 (en) | Packet value based packet processing | |
US10805202B1 (en) | Control plane compression of next hop information | |
EP2472784A1 (en) | Methods and Apparatus for Standard Protocol Validation Mechanisms Deployed Over a Switch Fabric System | |
CN114205291B (zh) | 数据包的传输方法及装置 | |
CN113965518A (zh) | 一种报文处理的方法及设备 | |
WO2024066555A1 (zh) | 一种数据通信方法、交换芯片、通信节点及通信网络 | |
WO2022166465A1 (zh) | 一种报文处理方法及相关装置 | |
US11805071B2 (en) | Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus | |
WO2022147792A1 (zh) | 一种交换系统、交换网络和交换节点 | |
CN114338432A (zh) | 传输报文的方法、装置、设备及计算机可读存储介质 | |
Karrakchou et al. | EP4: An application-aware network architecture with a customizable data plane | |
WO2022063245A1 (zh) | 传输报文的方法、装置、设备及计算机可读存储介质 | |
WO2024002101A1 (zh) | 报文传输方法、装置、相关设备及存储介质 | |
US20240089198A1 (en) | Packet processing method and system, and network device | |
WO2023231438A1 (zh) | 报文发送的方法、网络设备及系统 | |
WO2024093778A1 (zh) | 一种报文处理方法以及相关装置 | |
WO2024001701A1 (zh) | 数据处理方法、装置及系统 | |
WO2023244872A2 (en) | A transport protocol for in-network computing in support of rpc-based applications | |
CN114501544A (zh) | 一种数据传输方法、装置和存储介质 |