CN103503386B - 网络设备以及处理报文方法 - Google Patents
网络设备以及处理报文方法 Download PDFInfo
- Publication number
- CN103503386B CN103503386B CN201280010872.5A CN201280010872A CN103503386B CN 103503386 B CN103503386 B CN 103503386B CN 201280010872 A CN201280010872 A CN 201280010872A CN 103503386 B CN103503386 B CN 103503386B
- Authority
- CN
- China
- Prior art keywords
- programmable processor
- message
- agreement
- heading
- action
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/321—Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供了一种网络设备,包括可编程处理器以及不可编程处理器;可编程处理器包括第一控制端口;不可编程处理器包括第二控制端口,第二控制端口用于耦合第一控制端口;可编程处理器用于接收第一报文,第一报文的报文头对应的协议是第一协议;第一控制端口和第二控制端口用于连接可编程处理器和不可编程处理器,可编程处理器和不可编程处理器用于合作对第一报文执行第一协议,不可编程处理器用于确定可编程处理器对第一报文执行的第一协议的动作,可编程处理器用于执行动作。此外,本发明实施例还提供了处理报文的方法。根据上述技术方案,有助于减少对可编程处理器的存储空间的占用。
Description
技术领域
本发明涉及通信领域,特别是网络设备以及处理报文方法。
背景技术
可编程处理器已广泛应用于通信领域。网络处理器(networkprocessor,NP)是一种典型的可编程处理器。目前,很多路由器和交换机中都包含了NP。为实现对报文的处理,可编程处理器中可以包含用于执行多个协议的代码。例如,为实现对网际协议(InternetProtocol,IP)报文的处理,可编程处理器中可以包含用于执行IP的代码。
为执行某种协议,需要在可编程处理器中加载用于执行该协议的代码,占用了可编程处理器的存储空间。
发明内容
为减少对可编程处理器的存储空间的占用,本发明实施例提供了网络设备以及处理报文的方法。
第一方面,提供了一种网络设备,包括可编程处理器以及不可编程处理器;
所述可编程处理器包括第一控制端口;
所述不可编程处理器包括第二控制端口,所述第二控制端口用于耦合所述第一控制端口;
所述可编程处理器用于接收第一报文,所述第一报文的报文头对应的协议是第一协议;
所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述不可编程处理器,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议,所述不可编程处理器用于确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器用于执行所述动作。
从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
在第一方面提供的网络设备的第一种可能的实现方式中,所述动作包括:
所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议;或者
所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
根据第一方面提供的网络设备,或者第一方面提供的网络设备的第一种可能的实现方式,在第一方面提供的网络设备的第二种可能的实现方式中,
所述第二控制端口用于接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
所述不可编程处理器用于根据所述输入信息获取输出信息;
所述第二控制端口还用于向所述可编程处理器发送所述输出信息,以使所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
根据第一方面提供的网络设备的第二种可能的实现方式,在第一方面提供的网络设备的第三种可能的实现方式中,获取所述输出信息包括:
所述不可编程处理器通过与协处理器交互获得中间数据;
所述不可编程处理器根据所述中间数据获取所述输出信息。
根据第一方面提供的网络设备的第三种可能的实现方式,在第一方面提供的网络设备的第四种可能的实现方式中,所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率(committedaccessrate,CAR)协处理器以及计数器(counter)。
根据第一方面提供的网络设备,第一方面提供的网络设备的第一种可能的实现方式,第一方面提供的网络设备的第二种可能的实现方式,第一方面提供的网络设备的第三种可能的实现方式,或者第一方面提供的网络设备的第四种可能的实现方式,在第一方面提供的网络设备的第五种可能的实现方式中,
所述可编程处理器还包括用于执行第三协议的代码。
根据第一方面提供的网络设备,第一方面提供的网络设备的第一种可能的实现方式,第一方面提供的网络设备的第二种可能的实现方式,第一方面提供的网络设备的第三种可能的实现方式,第一方面提供的网络设备的第四种可能的实现方式,或者第一方面提供的网络设备的第五种可能的实现方式在第一方面提供的网络设备的第六种可能的实现方式中,所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
第二方面,提供了一种处理报文的方法,包括:
可编程处理器接收第一报文,所述第一报文的报文头对应的协议是第一协议,所述可编程处理器包括第一控制端口;
所述可编程处理器和不可编程处理器合作对所述第一报文执行所述第一协议,其中,所述不可编程处理器确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器执行所述动作,所述不可编程处理器包括第二控制端口,所述第二控制端口耦合所述第一控制端口,所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述不可编程处理器。
从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
在第二方面提供的方法的第一种可能的实现方式中,所述可编程处理器执行所述动作包括:
所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议;或者
所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
根据第二方面提供的方法,或者第二方面提供的方法的第一种可能的实现方式,在第二方面提供的方法的第二种可能的实现方式中,
所述可编程处理器确定所述动作包括:
所述第二控制端口接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
所述不可编程处理器根据所述输入信息获取输出信息;
所述第二控制端口向所述可编程处理器发送所述输出信息;
所述可编程处理器执行所述动作包括:
所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
根据第二方面提供的方法的第二种可能的实现方式,在第二方面提供的方法的第三种可能的实现方式中,所述不可编程处理器获取所述输出信息包括:
所述不可编程处理器通过与协处理器交互获得中间数据;
所述不可编程处理器根据所述中间数据获取所述输出信息。
根据第二方面提供的方法的第三种可能的实现方式,在第二方面提供的方法的第四种可能的实现方式中,所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率协处理器以及计数器。
根据第二方面提供的方法,第二方面提供的方法的第一种可能的实现方式,第二方面提供的方法的第二种可能的实现方式,第二方面提供的方法的第三种可能的实现方式,或者第二方面提供的方法的第四种可能的实现方式,在第二方面提供的方法的第五种可能的实现方式中,所述可编程处理器还包括用于执行第三协议的代码。
根据第二方面提供的方法,第二方面提供的方法的第一种可能的实现方式,第二方面提供的方法的第二种可能的实现方式,第二方面提供的方法的第三种可能的实现方式,第二方面提供的方法的第四种可能的实现方式,或者第二方面提供的方法的第五种可能的实现方式,在第二方面提供的方法的第六种可能的实现方式中,所述可编程处理器执行所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种网络设备的结构示意图;
图2为本发明实施例提供的一种处理报文的方法的流程示意图;
图3为本发明实施例提供的一种处理报文的方法的流程示意图;
图4为本发明实施例提供的一种处理报文的方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种网络设备的结构示意图。参见图1,所述网络设备包括可编程处理器102以及不可编程处理器104。
所述可编程处理器102包括第一控制端口106。
所述不可编程处理器104包括第二控制端口108,所述第二控制端口108用于耦合所述第一控制端口106。
所述可编程处理器102用于接收第一报文,所述第一报文的报文头对应的协议是第一协议。
所述第一控制端口106和所述第二控制端口108用于连接所述可编程处理器102和所述不可编程处理器104,所述可编程处理器102和所述不可编程处理器104用于合作对所述第一报文执行所述第一协议,所述不可编程处理器104用于确定所述可编程处理器102对所述第一报文执行的所述第一协议的动作,所述可编程处理器102用于执行所述动作。
举例来说,所述可编程处理器102可以是NP。所述不可编程处理器102可以是专用集成电路(application-specificintegratedcircuit,ASIC)。
举例来说,所述可编程处理器102与所述不可编程处理器104可以通过互联电路(interconnectingcircuit)实现耦合。例如,所述互连电路的一端用于与所述第一控制端口106直连。所述互连电路的另一端用于与所述第二控制端口108直连。所述互联电路可以是芯片内部的电路。所述互联电路可以是交叉开关(crossbar)。
举例来说,所述网络设备可以是芯片、印刷电路板(printedcircuitboard,PCB)或者网络装置。
如果所述网络设备是芯片,则所述网络设备可以是片上系统(SystemonaChip,SoC)。
如果所述网络设备是印刷电路板,则所述印刷电路板包括芯片。所述芯片包括所述可编程处理器102和所述不可编程处理器104。所述印刷电路板可以是线路处理单元(lineprocessingunit,LPU)。
如果所述网络设备是网络装置,则所述网络装置包括印刷电路板。所述印刷电路板包括芯片。所述芯片包括所述可编程处理器102和所述不可编程处理器104。举例来说,所述网络装置可以是路由器、交换机、防火墙或者负载均衡器。所述印刷电路板可以是LPU。
所述第一协议的处理流程包括,根据所述第一协议的规定以及对应所述第一协议的报文头中的信息,确定对包含所述报文头的报文执行的动作。
本发明实施例不对所述第一协议的类型以及所述动作进行限定。
从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
可选地,图1所示的网络设备中,所述第一协议可以是开放系统互连参考模型(OpenSystemInterconnectReferenceModel,OSIRM)定义的第X层的协议,X为2、2.5、3、4、5、6和7中的至少一个。
可选地,图1所示的网络设备中,所述动作包括:
所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
举例来说,所述第一报文可以是被封装的二层隧道协议(Layer2TunnelingProtocol,L2TP)报文。所述第一报文的报文头包括网际协议(InternetProtocol,IP)头以及用户数据报协议(UserDatagramProtocol,UDP)头。所述第二报文可以是L2TP报文。所述第二报文的报文头是L2TP头。所述可编程处理器对所述L2TP报文执行所述L2TP,具体可以是所述可编程处理器对所述L2TP报文进行隧道转发。
可选地,图1所示的网络设备中,所述动作包括:
所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
举例来说,所述第二不可编程处理器能够用于执行传输控制协议(TransmissionControlProtocol,TCP)。所述第一报文可以是被封装的TCP报文。所述第一报文的报文头可以是IP头。所述第二报文可以是TCP报文。所述第二报文的报文头是TCP头。所述TCP头中包括源TCP端口和目的TCP端口。所述可编程处理器可以向所述第二不可编程处理器发送所述源TCP端口和目的TCP端口。所述第二不可编程处理器可以根据所述源TCP端口和目的TCP端口确定所述第二协议的动作。所述第二协议的动作可以是TCP转发。
可选地,图1所示的网络设备中,
所述第二控制端口用于接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
所述不可编程处理器用于根据所述输入信息获取输出信息;
所述第二控制端口还用于向所述可编程处理器发送所述输出信息,以使所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
可选地,图1所示的网络设备中,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述第一协议的处理流程可以是转发处理流程。所述转发处理流程包括:确定报文头中用于匹配的信息;在转发表中查找与所述用于匹配的信息匹配的转发表项;以及,根据所述转发表项确定对包含所述报文头的报文执行的动作。
举例来说,所述转发处理流程对应的所述第一协议可以是OSIRM定义的第2层的协议、第2.5层的协议或者第3层的协议。所述第2层的协议可以是以太网(Ethernet)协议、同步数字体系承载报文(packetoversynchronousdigitalhierarchy,POS)协议或者异步传输模式(AsynchronousTransferMode,ATM)协议。所述第2.5层的协议可以是多协议标签交换(MultiprotocolLabelSwitching,MPLS)协议。所述第3层的协议可以是IP。
举例来说,如果所述第一协议是IP,则所述报文头是IP头。所述信息可以是所述IP头中的目的IP地址。根据所述输入信息获取所述输出信息,可以是根据所述目的IP地址确定路由表中与所述目的IP地址匹配的路由表项。所述输出信息可以是所述路由表项中的下一跳的标识。所述下一跳可以是用于转发所述第一报文的出接口。所述出接口可以是物理出接口。所述动作可以是IP转发。
举例来说,如果所述第一协议是媒体访问控制(MediaAccessControl,MAC)协议,则所述报文头是MAC协议头。所述信息可以是所述MAC协议头中的目的MAC协议地址。根据所述输入信息获取所述输出信息可以是根据所述目的MAC协议地址确定MAC协议表中与所述目的MAC协议地址匹配的MAC协议表项。所述输出信息可以是所述MAC协议表项中的用于转发所述第一报文的出接口的标识。所述出接口可以是物理出接口或者逻辑出接口。所述动作可以是MAC协议转发。
从上述技术方案可以看出,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。现有技术中,所述可编程处理器需要先获取所述输入信息,然后根据所述输入信息获取所述输出信息,最后根据所述输出信息对所述第一报文执行所述动作。本领域的技术人员可以理解,不可编程处理器是单纯的硬件,而可编程处理器则是软件和硬件的结合。通常情况下,不可编程处理器的执行效率高于可编程处理器。因此,相对于现有技术,上述技术方案可以用于提高执行效率。
可选地,图1所示的网络设备中,所述动作具体可以是转发、丢弃、封装或者发送至网络装置的控制平面的中央处理单元(CentralProcessingUnit,CPU)。所述可编程处理器102以及不可编程处理器104承载在所述网络装置上。
举例来说,所述转发可以是IP转发、MPLS转发或者MAC协议转发。
可选地,图1所示的网络设备中,获取所述输出信息包括:
所述不可编程处理器通过与协处理器交互获得中间数据;
所述不可编程处理器根据所述中间数据获取所述输出信息。
举例来说,所述协处理器可以是ASIC。
可选地,图1所示的网络设备中,所述协处理器可以包括下述中的至少一个:查找协处理器、CAR协处理器以及计数器。
举例来说,如果所述协处理器为查找协处理器,所述查找协处理器可以通过查找映射表获得所述中间数据。所述映射表可以是最长前缀匹配表、精确匹配表、访问控制列表(accesscontrollist,ACL)或者线性表。所述ACL可以承载在三态内容可寻址存储器(ternarycontentaddressablememory,TCAM)中。
举例来说,所述映射表可以是转发表。所述中间数据可以是下一跳的标识。
举例来说,如果所述协处理器为CAR协处理器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
举例来说,如果所述协处理器为计数器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
可选地,图1所示的网络设备中,所述可编程处理器102还可以包括用于执行第三协议的代码。
本领域的技术人员可以理解,所述可编程处理器102可以包括算术逻辑单元(arithmeticlogicunit,ALU)以及非易失性的存储介质。所述非易失性的存储介质可以用于承载所述用于执行第三协议的处理流程的代码。所述ALU可以执行所述用于执行第三协议的处理流程的代码。
举例来说,所述第三协议可以是开放系统互连参考模型定义的第Y层的协议,Y为2、2.5、3、4、5、6和7中的至少一个。
关于所述第三协议的处理流程,具体请参考所述第一协议的处理流程,此处不再赘述。需要指出的是,所述第三协议不同于所述第一协议。
可选地,图1所示的网络设备中,所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
图2为本发明实施例提供的一种处理报文方法的流程示意图。图1所示的网络设备可以用于执行所述方法。参见图2,所述方法包括:
202、可编程处理器接收第一报文,所述第一报文的报文头对应的协议是第一协议,所述可编程处理器包括第一控制端口;
204、所述可编程处理器和不可编程处理器合作对所述第一报文执行所述第一协议,其中,所述不可编程处理器确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器执行所述动作。
所述不可编程处理器包括第二控制端口,所述第二控制端口耦合所述第一控制端口,所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述不可编程处理器。
举例来说,所述可编程处理器可以是NP。所述不可编程处理器可以是ASIC。
举例来说,所述可编程处理器与所述不可编程处理器可以通过互联电路实现耦合。例如,所述互连电路的一端用于与所述第一控制端口直连。所述互连电路的另一端用于与所述第二控制端口直连。所述互联电路可以是芯片内部的电路。所述互联电路可以是crossbar。
举例来说,所述网络设备可以是芯片、PCB或者网络装置。
如果所述网络设备是芯片,则所述网络设备可以是SoC。
如果所述网络设备是印刷电路板,则所述印刷电路板包括芯片。所述芯片包括所述可编程处理器和所述不可编程处理器。所述印刷电路板可以是LPU。
如果所述网络设备是网络装置,则所述网络装置包括印刷电路板。所述印刷电路板包括芯片。所述芯片包括所述可编程处理器和所述不可编程处理器。举例来说,所述网络装置可以是路由器、交换机、防火墙或者负载均衡器。所述印刷电路板可以是LPU。
所述第一协议的处理流程包括,根据所述第一协议的规定以及对应所述第一协议的报文头中的信息,确定对包含所述报文头的报文执行的动作。
本发明实施例不对所述第一协议的类型以及所述动作进行限定。
从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
可选地,所述第一协议可以是OSIRM定义的第X层的协议,X为2、2.5、3、4、5、6和7中的至少一个。
可选地,图2所示的方法中,所述可编程处理器执行所述动作可以包括:
所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
举例来说,所述第一报文可以是被封装的二层隧道协议(Layer2TunnelingProtocol,L2TP)报文。所述第一报文的报文头包括网际协议(InternetProtocol,IP)头以及用户数据报协议(UserDatagramProtocol,UDP)头。所述第二报文可以是L2TP报文。所述第二报文的报文头是L2TP头。所述可编程处理器对所述L2TP报文执行所述L2TP,具体可以是所述可编程处理器对所述L2TP报文进行隧道转发。
可选地,图2所示的方法中,所述可编程处理器执行所述动作可以包括:
所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
举例来说,所述第二不可编程处理器能够用于执行TCP。所述第一报文可以是被封装的TCP报文。所述第一报文的报文头可以是IP头。所述第二报文可以是TCP报文。所述第二报文的报文头是TCP头。所述TCP头中包括源TCP端口和目的TCP端口。所述可编程处理器可以向所述第二不可编程处理器发送所述源TCP端口和目的TCP端口。所述第二不可编程处理器可以根据所述源TCP端口和目的TCP端口确定所述第二协议的动作。所述第二协议的动作可以是TCP转发。
可选地,图2所示的方法中,所述可编程处理器确定所述动作包括:
302、所述第二控制端口接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
304、所述不可编程处理器根据所述输入信息获取输出信息;
306、所述第二控制端口向所述可编程处理器发送所述输出信息;
所述可编程处理器执行所述动作包括:
所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
关于302、304以及306,请参见图3。
可选地,图2所示的方法中,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述第一协议的处理流程可以是转发处理流程。所述转发处理流程包括:确定报文头中用于匹配的信息;在转发表中查找与所述用于匹配的信息匹配的转发表项;以及,根据所述转发表项确定对包含所述报文头的报文执行的动作。
举例来说,所述转发处理流程对应的所述第一协议可以是OSIRM定义的第2层的协议、第2.5层的协议或者第3层的协议。所述第2层的协议可以是Ethernet协议、POS协议或者ATM协议。所述第2.5层的协议可以是多协议标签交换MPLS协议。所述第3层的协议可以是IP。
举例来说,如果所述第一协议是IP,则所述报文头是IP头。所述信息可以是所述IP头中的目的IP地址。根据所述输入信息获取所述输出信息,可以是根据所述目的IP地址确定路由表中与所述目的IP地址匹配的路由表项。所述输出信息可以是所述路由表项中的下一跳的标识。所述下一跳可以是用于转发所述第一报文的出接口。所述出接口可以是物理出接口。所述动作可以是IP转发。
举例来说,如果所述第一协议是MAC协议,则所述报文头是MAC协议头。所述信息可以是所述MAC协议头中的目的MAC协议地址。根据所述输入信息获取所述输出信息可以是根据所述目的MAC协议地址确定MAC协议表中与所述目的MAC协议地址匹配的MAC协议表项。所述输出信息可以是所述MAC协议表项中的用于转发所述第一报文的出接口的标识。所述出接口可以是物理出接口或者逻辑出接口。所述动作可以是MAC协议转发。
从上述技术方案可以看出,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。现有技术中,所述可编程处理器需要先获取所述输入信息,然后根据所述输入信息获取所述输出信息,最后根据所述输出信息对所述第一报文执行所述动作。本领域的技术人员可以理解,不可编程处理器是单纯的硬件,而可编程处理器则是软件和硬件的结合。通常情况下,不可编程处理器的执行效率高于可编程处理器。因此,相对于现有技术,上述技术方案可以用于提高执行效率。
可选地,图2所示的方法中,所述动作具体可以是转发、丢弃、封装或者发送至网络装置的控制平面的CPU。所述可编程处理器以及不可编程处理器承载在所述网络装置上。
举例来说,所述转发可以是IP转发、MPLS转发或者MAC协议转发。
可选地,图2所示的方法中,所述不可编程处理器获取所述输出信息包括:
402、所述不可编程处理器通过与协处理器交互获得中间数据;
404、所述不可编程处理器根据所述中间数据获取所述输出信息。
举例来说,所述协处理器可以是ASIC。
关于402以及404,请参见图4。
可选地,图2所示的方法中,
所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率协处理器以及计数器。
举例来说,如果所述协处理器为查找协处理器,所述查找协处理器可以通过查找映射表获得所述中间数据。所述映射表可以是最长前缀匹配表、精确匹配表、ACL或者线性表。所述ACL可以承载在TCAM中。
举例来说,所述映射表可以是转发表。所述中间数据可以是下一跳的标识。
举例来说,如果所述协处理器为CAR协处理器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
举例来说,如果所述协处理器为计数器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
可选地,图2所示的方法中,
所述可编程处理器还包括用于执行第三协议的代码。
本领域的技术人员可以理解,所述可编程处理器可以包括ALU以及非易失性的存储介质。所述非易失性的存储介质可以用于承载所述用于执行第三协议的处理流程的代码。所述ALU可以执行所述用于执行第三协议的处理流程的代码。
举例来说,所述第三协议可以是OSIRM定义的第Y层的协议,Y为2、2.5、3、4、5、6和7中的至少一个。
关于所述第三协议的处理流程,具体请参考所述第一协议的处理流程,此处不再赘述。需要指出的是,所述第三协议不同于所述第一协议。
可选地,图2所示的方法中,所述可编程处理器执行所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (20)
1.一种网络设备,其特征在于,包括可编程处理器以及第一不可编程处理器;
所述可编程处理器包括第一控制端口;
所述第一不可编程处理器包括第二控制端口,所述第二控制端口用于耦合所述第一控制端口;
所述可编程处理器用于接收第一报文,所述第一报文的报文头对应的协议是第一协议;
所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述第一不可编程处理器,所述可编程处理器和所述第一不可编程处理器用于根据所述第一协议合作对所述第一报文进行处理,其中,所述第一不可编程处理器用于确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器用于执行所述动作。
2.根据权利要求1所述的网络设备,其特征在于,所述动作包括:
所述可编程处理器根据第二协议对第二报文进行处理,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议;或者
所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
3.根据权利要求1或2所述的网络设备,其特征在于,
所述第二控制端口用于接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
所述第一不可编程处理器用于根据所述输入信息获取输出信息;
所述第二控制端口还用于向所述可编程处理器发送所述输出信息,以使所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
4.根据权利要求3所述的网络设备,其特征在于,获取所述输出信息包括:
所述第一不可编程处理器通过与协处理器交互获得中间数据;
所述第一不可编程处理器根据所述中间数据获取所述输出信息。
5.根据权利要求4所述的网络设备,其特征在于,
所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率协处理器以及计数器。
6.根据权利要求3所述的网络设备,其特征在于,
所述可编程处理器还包括用于执行第三协议的代码。
7.根据权利要求1、2、4、5或者6所述的网络设备,其特征在于,
所述可编程处理器还包括用于执行第三协议的代码。
8.根据权利要求1、2、4、5或者6中任一所述的网络设备,其特征在于,所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
9.根据权利要求3所述的网络设备,其特征在于,所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
10.根据权利要求7所述的网络设备,其特征在于,所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
11.一种处理报文的方法,其特征在于,包括:
可编程处理器接收第一报文,所述第一报文的报文头对应的协议是第一协议,所述可编程处理器包括第一控制端口;
所述可编程处理器和第一不可编程处理器根据所述第一协议合作对所述第一报文进行处理,其中,所述第一不可编程处理器确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器执行所述动作,所述第一不可编程处理器包括第二控制端口,所述第二控制端口耦合所述第一控制端口,所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述第一不可编程处理器。
12.根据权利要求11所述的方法,其特征在于,所述可编程处理器执行所述动作包括:
所述可编程处理器根据第二协议对第二报文进行处理,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议;或者
所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
13.根据权利要求11或12所述的方法,其特征在于,
所述可编程处理器确定所述动作包括:
所述第二控制端口接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
所述第一不可编程处理器根据所述输入信息获取输出信息;
所述第二控制端口向所述可编程处理器发送所述输出信息;
所述可编程处理器执行所述动作包括:
所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
14.根据权利要求13所述的方法,其特征在于,所述第一不可编程处理器获取所述输出信息包括:
所述第一不可编程处理器通过与协处理器交互获得中间数据;
所述第一不可编程处理器根据所述中间数据获取所述输出信息。
15.根据权利要求14所述的方法,其特征在于,
所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率协处理器以及计数器。
16.根据权利要求13所述的方法,其特征在于,
所述可编程处理器还包括用于执行第三协议的代码。
17.根据权利要求11、12、14、15或者16所述的方法,其特征在于,
所述可编程处理器还包括用于执行第三协议的代码。
18.根据权利要求13所述的方法,其特征在于,所述可编程处理器执行所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
19.根据权利要求17所述的方法,其特征在于,所述可编程处理器执行所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
20.根据权利要求11、12、14、15或者16所述的方法,其特征在于,所述可编程处理器执行所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/088062 WO2014101192A1 (zh) | 2012-12-31 | 2012-12-31 | 网络设备以及处理报文方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103503386A CN103503386A (zh) | 2014-01-08 |
CN103503386B true CN103503386B (zh) | 2016-05-25 |
Family
ID=49866753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280010872.5A Active CN103503386B (zh) | 2012-12-31 | 2012-12-31 | 网络设备以及处理报文方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150304462A1 (zh) |
EP (1) | EP2930890B1 (zh) |
CN (1) | CN103503386B (zh) |
WO (1) | WO2014101192A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104698341A (zh) * | 2015-03-10 | 2015-06-10 | 广东电网有限责任公司佛山供电局 | 配电线路雷击故障点定位方法和系统 |
CN106452807B (zh) * | 2015-08-04 | 2020-12-29 | 深圳市中兴微电子技术有限公司 | 一种网络处理器及报文处理数据的获取方法 |
WO2017202272A1 (en) * | 2016-05-26 | 2017-11-30 | Huawei Technologies Co., Ltd. | System and method of software defined switches between light weight virtual machines using host kernel resources |
CN110837488B (zh) * | 2019-07-15 | 2022-10-11 | 华为技术有限公司 | 报文传输方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257457A (zh) * | 2008-03-31 | 2008-09-03 | 华为技术有限公司 | 网络处理器复制报文的方法和网络处理器 |
CN101420358A (zh) * | 2007-10-27 | 2009-04-29 | 华为技术有限公司 | 存储网络转发网络设备、装置与方法 |
CN101567846A (zh) * | 2009-05-27 | 2009-10-28 | 杭州华三通信技术有限公司 | 路由选择方法及其系统、业务处理单元和可编程接口板 |
WO2010046622A1 (en) * | 2008-10-22 | 2010-04-29 | Arm Limited | Integrated circuit incorporating an array of interconnected processors executing a cycle-based program |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141705A (en) * | 1998-06-12 | 2000-10-31 | Microsoft Corporation | System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed |
US20030046330A1 (en) * | 2001-09-04 | 2003-03-06 | Hayes John W. | Selective offloading of protocol processing |
CN100440854C (zh) * | 2004-06-25 | 2008-12-03 | 中国科学院计算技术研究所 | 一种网络处理器的数据包接收接口部件及其存储管理方法 |
US7613813B2 (en) * | 2004-09-10 | 2009-11-03 | Cavium Networks, Inc. | Method and apparatus for reducing host overhead in a socket server implementation |
CN101335644B (zh) * | 2008-07-30 | 2011-05-11 | 中兴通讯股份有限公司 | 网络处理器动态加载微码的方法 |
US8996644B2 (en) * | 2010-12-09 | 2015-03-31 | Solarflare Communications, Inc. | Encapsulated accelerator |
US8774213B2 (en) * | 2011-03-30 | 2014-07-08 | Amazon Technologies, Inc. | Frameworks and interfaces for offload device-based packet processing |
-
2012
- 2012-12-31 WO PCT/CN2012/088062 patent/WO2014101192A1/zh active Application Filing
- 2012-12-31 CN CN201280010872.5A patent/CN103503386B/zh active Active
- 2012-12-31 EP EP12891031.2A patent/EP2930890B1/en not_active Not-in-force
-
2015
- 2015-06-29 US US14/754,352 patent/US20150304462A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420358A (zh) * | 2007-10-27 | 2009-04-29 | 华为技术有限公司 | 存储网络转发网络设备、装置与方法 |
CN101257457A (zh) * | 2008-03-31 | 2008-09-03 | 华为技术有限公司 | 网络处理器复制报文的方法和网络处理器 |
WO2010046622A1 (en) * | 2008-10-22 | 2010-04-29 | Arm Limited | Integrated circuit incorporating an array of interconnected processors executing a cycle-based program |
CN101567846A (zh) * | 2009-05-27 | 2009-10-28 | 杭州华三通信技术有限公司 | 路由选择方法及其系统、业务处理单元和可编程接口板 |
Also Published As
Publication number | Publication date |
---|---|
CN103503386A (zh) | 2014-01-08 |
EP2930890A1 (en) | 2015-10-14 |
EP2930890B1 (en) | 2018-04-25 |
WO2014101192A1 (zh) | 2014-07-03 |
EP2930890A4 (en) | 2015-11-18 |
US20150304462A1 (en) | 2015-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11444868B2 (en) | Systems and methods for software defined networking service function chaining | |
CN106664261A (zh) | 一种配置流表项的方法、装置和系统 | |
CN103503386B (zh) | 网络设备以及处理报文方法 | |
US10855480B2 (en) | Systems and methods for processing packets in a computer network | |
CN106341338B (zh) | 一种报文的转发方法及装置 | |
CN105706391A (zh) | 通过索引的本地化来增加组播规模 | |
US9716592B1 (en) | Traffic distribution over multiple paths in a network while maintaining flow affinity | |
US20200403849A1 (en) | Service fault locating method and apparatus | |
CN109861913A (zh) | 一种跨内部网关协议的前缀标识通告方法和装置 | |
CN105721303A (zh) | 一种路由控制方法、网络设备及控制器 | |
CN109873766B (zh) | 报文传输方法和装置 | |
WO2016106506A1 (zh) | 一种路由方法和设备 | |
US10230623B2 (en) | End point scaling on segment routing fabrics | |
CN106330553A (zh) | 报文转发方法及装置 | |
CN104660597A (zh) | 三层认证方法、装置及三层认证交换机 | |
CN104488237A (zh) | 一种报文处理的方法、报文设备和系统 | |
CN110661713B (zh) | 一种报文转发方法及装置 | |
CN106209637A (zh) | 从虚拟可扩展局域网至虚拟局域网的报文转发方法和设备 | |
CN102325077B (zh) | 分支机构间的通信方法及分支机构的出口路由器 | |
CN104205745B (zh) | 报文处理的方法与设备 | |
CN101699796B (zh) | 一种基于流信任的数据报文高速转发的方法、系统及路由器 | |
CN107749826A (zh) | 一种数据包转发方法及系统 | |
CN102938711B (zh) | 网口信息配置方法及网络设备 | |
CN106209554B (zh) | 跨虚拟可扩展局域网的报文转发方法和设备 | |
CN103534999A (zh) | 报文转发的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |