一种报文传输方法、CPU以及网络设备技术

技术编号:14411043 阅读:79 留言:0更新日期:2017-01-11 22:16
本申请提供一种报文传输方法、CPU以及网络设备,该方法包括:接收网络控制器接收到网络报文,内存镜像控制器将该网络报文存储到本端CPU对应的第一缓冲区,并向对端CPU发送该网络报文的写操作,以使所述对端CPU存储该网络报文;内存镜像控制器接收到对端CPU的网络报文的写操作时,将该网络报文存储到本端CPU对应的第二缓冲区;内存镜像控制器接收到网络报文的读操作时,从本端CPU对应的第二缓冲区读取该网络报文并发送。通过本申请的技术方案,网络报文的转发性能较高,缩短了网络报文的传输时间,提高了网络报文的转发效率。

【技术实现步骤摘要】

本申请涉及通信领域,尤其涉及一种报文传输方法、CPU以及网络设备
技术介绍
网络设备(如路由器、交换机等)是以CPU(CentralProcessingUnit,中央处理器)为核心,进行网络报文的处理与转发,如图1所示,为网络设备的CPU的结构示意图。在CPU内部集成有CPU核、内存控制器、网络控制器1和网络控制器2。网络控制器1在接收到网络报文后,通过内存控制器,将网络报文写入到系统内存的Buffer(缓冲区)中。CPU核从Buffer中获取网络报文,并对网络报文进行修改(如修改网络报文的源IP地址、目的IP地址等),并将修改后的网络报文存储到系统内存的Buffer中,以替换修改前的网络报文。网络控制器2从Buffer中获取到修改后的网络报文,并完成网络报文的发送。为了提高网络设备的处理能力,可以在CPU内集成多个CPU核,如图2所示,为集成多个CPU核的结构示意图。但是,由于制造工艺等原因,在CPU内集成的CPU核的数量有限,为了进一步提高网络设备的处理能力,在网络设备内部可以部署多个CPU,这多个CPU之间通过总线连接起来,如图3所示,为两个CPU互联的结构示意图,在每个CPU内均可以集成多个CPU核。如图3所示,网络控制器1在接收到网络报文后,将网络报文写入到系统内存1的Buffer1中。假设由网络控制器2发送该网络报文,则网络控制器2可以通过内存控制器,从Buffer1中获取到该网络报文,网络报文的转发性能较高。但是,如果由网络控制器4发送该网络报文,则网络控制器4需要经过两个互联控制器和一个内存控制器,才能够从Buffer1中获取到该网络报文,且互联控制器之间的交互是一个非常耗时的操作,因此,网络报文的转发性能较差。
技术实现思路
本申请提供一种报文传输方法,应用于网络设备的中央处理器CPU上,所述网络设备包括至少两个CPU,每个CPU对应一个系统内存,且系统内存中包括有为该CPU划分的第一缓冲区以及第二缓冲区;所述方法包括:接收网络控制器接收到网络报文,内存镜像控制器将该网络报文存储到本端CPU对应的第一缓冲区,并向对端CPU发送该网络报文的写操作,以使所述对端CPU存储该网络报文;内存镜像控制器接收到对端CPU的网络报文的写操作时,将该网络报文存储到本端CPU对应的第二缓冲区;内存镜像控制器接收到网络报文的读操作时,从本端CPU对应的第二缓冲区读取该网络报文并发送,该网络报文为对端CPU的接收网络控制器接收到的网络报文;所述对端CPU为除本端CPU以外的任一CPU。本申请提供一种中央处理器CPU,所述CPU对应系统内存,所述系统内存中包括有为所述CPU划分的第一缓冲区以及第二缓冲区;所述CPU包括:接收网络控制器,用于接收到网络报文;内存镜像控制器,用于通过内存控制器将该网络报文存储到本端CPU对应的第一缓冲区,并通过互联控制器向对端CPU发送该网络报文的写操作,以使所述对端CPU存储该网络报文;通过互联控制器接收到对端CPU的网络报文的写操作时,通过内存控制器将该网络报文存储到本端CPU对应的第二缓冲区;接收到网络报文的读操作时,通过内存控制器从本端CPU对应的第二缓冲区读取该网络报文并发送,该网络报文为对端CPU的接收网络控制器接收到的网络报文;所述对端CPU为除本端CPU以外的任一CPU。本申请提供一种网络设备,包括至少两个上述的中央处理器CPU。基于上述技术方案,本申请实施例中,当CPU发送网络报文时,可以从本端CPU对应的第二缓冲区内获取网络报文,而不用从对端CPU对应的第一缓冲区内获取网络报文,因此,网络报文不需要跨CPU传输,不需要经过两个互联控制器,在一个CPU内就可以完成网络报文的传输,网络报文的转发性能较高,缩短了网络报文的传输时间,提高了网络报文的转发效率。附图说明为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是网络设备的CPU的结构示意图;图2是集成多个CPU核的结构示意图;图3是两个CPU互联的结构示意图;图4和图5是本申请一种实施方式中的应用场景示意图;图6是本申请一种实施方式中的报文传输方法的流程图。具体实施方式在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本申请实施例中提出一种报文传输方法,该方法可以应用于网络设备(如路由器、交换机等)的CPU上,且该网络设备可以包括至少两个CPU。其中,各CPU均可以是基于SOC(SystemonChip,系统级芯片)的CPU。在每个CPU内,可以包括至少一个CPU核、一个内存控制器、至少两个网络控制器(包括至少一个用于接收网络报文的网络控制器,为了方便描述,后续称为接收网络控制器;至少一个用于发送网络报文的网络控制器,为了方便描述,后续称为发送网络控制器)、一个内存镜像控制器、一个互联控制器。在一个例子中,以图4为本申请实施例的应用场景示意图,以网络设备包括CPU1和CPU2为例进行说明,CPU1和CPU2通过总线连接起来,实际应用中,CPU的数量还可以更多。以每个CPU内包含一个CPU核为例进行说明,实际应用中,CPU核的数量还可以更多。以每个CPU内包含两个网络控制器为例进行说明,实际应用中,网络控制器的数量还可以更多。在CPU1内,网络控制器1为接收网络控制器,用于接收网络报文;网络控制器2为发送网络控制器,用于发送网络报文。在CPU2内,网络控制器3为接收网络控制器,用于接收网络报文;网络控制器4为发送网络控制器,用于发送网络报文。在一个例子中,如图4所示,可以在CPU内配置内存镜像控制器,该内存镜像控制器是用于执行内存镜像功能的硬件装置。在后续过程中,会详细介绍该内存镜像控制器的内存镜像功能。其中,该内存镜像控制器可以为一个独立的控制器,实现内存镜像功能。也可以将内存镜像控制器的内存镜像功能部署在现有的控制器上,如部署在内存控制器或者互联控制器上,在现有的控制器上实现内存镜像功能。为了方便描述,以一个独立的控制器为例进行说明。在一个例子中,如图5所示,在CPU内部,CPU内的各CPU核、各网络控制器以及该内存镜像控制器可以挂接到CPU片内高速总线上。此外,内存镜像控制器可以与内存控制器连接,且内存镜像控制器可以与互联控制器连接。该内存控制器连接到系统内存,该互联控制器连接另一个CPU的互联控制器。在一个例子中,每个CPU对应一个系统内存,本文档来自技高网
...
一种报文传输方法、CPU以及网络设备

【技术保护点】
一种报文传输方法,应用于网络设备的中央处理器CPU上,其特征在于,所述网络设备包括至少两个CPU,每个CPU对应一个系统内存,且系统内存中包括有为该CPU划分的第一缓冲区以及第二缓冲区;所述方法包括:接收网络控制器接收到网络报文,内存镜像控制器将该网络报文存储到本端CPU对应的第一缓冲区,并向对端CPU发送该网络报文的写操作,以使所述对端CPU存储该网络报文;内存镜像控制器接收到对端CPU的网络报文的写操作时,将该网络报文存储到本端CPU对应的第二缓冲区;内存镜像控制器接收到网络报文的读操作时,从本端CPU对应的第二缓冲区读取该网络报文并发送,该网络报文为对端CPU的接收网络控制器接收到的网络报文;所述对端CPU为除本端CPU以外的任一CPU。

【技术特征摘要】
1.一种报文传输方法,应用于网络设备的中央处理器CPU上,其特征在于,所述网络设备包括至少两个CPU,每个CPU对应一个系统内存,且系统内存中包括有为该CPU划分的第一缓冲区以及第二缓冲区;所述方法包括:接收网络控制器接收到网络报文,内存镜像控制器将该网络报文存储到本端CPU对应的第一缓冲区,并向对端CPU发送该网络报文的写操作,以使所述对端CPU存储该网络报文;内存镜像控制器接收到对端CPU的网络报文的写操作时,将该网络报文存储到本端CPU对应的第二缓冲区;内存镜像控制器接收到网络报文的读操作时,从本端CPU对应的第二缓冲区读取该网络报文并发送,该网络报文为对端CPU的接收网络控制器接收到的网络报文;所述对端CPU为除本端CPU以外的任一CPU。2.根据权利要求1所述的方法,其特征在于,所述内存镜像控制器将该网络报文存储到本端CPU对应的第一缓冲区,并向对端CPU发送该网络报文的写操作,包括:所述内存镜像控制器接收所述接收网络控制器发送的网络报文的写操作,从该写操作中解析出子地址信息为本端CPU对应的第一缓冲区中的地址,则将该网络报文存储到本端CPU对应的第一缓冲区;所述内存镜像控制器将该写操作中的子地址信息替换为对端CPU对应的第二缓冲区中的地址,并将修改后的写操作发送给所述对端CPU。3.根据权利要求1所述的方法,其特征在于,所述将该网络报文存储到本端CPU对应的第二缓冲区,包括:所述内存镜像控制器从接收的写操作中解析出子地址信息为本端CPU对应的第二缓冲区中的地址,则将该网络报文存储到本端CPU对应的第二缓冲区。4.根据权利要求2所述的方法,其特征在于,该方法还包括:CPU核读取本端CPU对应的第一缓冲区中的网络报文进行修改;CPU核向内存镜像控制器发送修改后的网络报文的写操作;内存镜像控制器从该写操作中解析出子地址信息为本端CPU对应的第一缓冲区中的地址,则将所述修改后的网络报文存储到本端CPU对应的第一缓冲区;内存镜像控制器向对端CPU发送修改后的网络报文的写操作,以使对端CPU存储修改后的网络报文,该写操作携带的子地址信息为对端CPU对应的第二缓冲区中的地址。5.根据权利要求3所述的方法,其特征在于,该方法还包括:CPU核读取本端CPU对应的第二缓冲区中的网络报文进行修改;CPU核向内存镜像控制器发送修改后的网络报文的写操作;内存镜像控制器从该写操作中解析出子地址信息为本端CPU对应的第二缓冲区中的地址,则将所述修改后的网络报文存储到本端CPU对应的第二缓冲区;内存镜像控制器根据本端CPU对应的第二缓冲区中的地址确定对应的第一缓冲区的地址,将修改后的网络报文的写操作的子地址信息替换为确定出的第一缓冲区的地址,并发送给确定出的第一缓冲区对应的CPU,以使该CPU存储该修改后的网络报文。6.根据权利要求1所述的方法,其特征在于,所述从本端CPU对应的第二缓冲区读取该网络报文并发送,包括:所述内存镜像控制器从所述读操作中解析出子地址信息为对端CPU对应的第一缓冲区中的地址,确定对应的本端CPU对应的第二缓冲区中的地址,从本端CPU对应的第二缓冲区读取该网络报文,通过发送网络控制器发送;其中,所述读操作是所述对端CPU确定由本端CPU的发送网络控制器发送该网络报文时发出的;或者,所述内存镜像控制器从所述读操作中解析出子地址信息为本端CPU对应的第二缓冲区中的地址,从本端CPU对应的第二缓冲区读取该网络报文,通过发送网络控制器发送;其中,所述读操作是本端CPU的CPU核确定由本端CPU的发送网络控制器发送该网络报文时发出的。7.根据权利要求1至6任一所述的方法,其特征在于,本端CPU对应的第一缓冲区中的地址与除本端CPU外的任一CPU对应的第二缓冲区中的地址存在映射关系。8.一种中央处理器CPU,其特征在于,所述CPU对应系统内存,所述系统内存中包括有为所述CPU划分的第一缓冲区以及第二缓冲区;所述CPU包括:接收网络控制器,用于接收到网络报文;内存镜像控制器,用于通过内存控制器将该网络报文...

【专利技术属性】
技术研发人员:赵志宇
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1