基于多处理器的数据包处理装置以及数据包处理方法

文档序号:6598748阅读:134来源:国知局
专利名称:基于多处理器的数据包处理装置以及数据包处理方法
技术领域
本发明涉及网络中的数据包流等数据流的处理。
背景技术
网络中的数据流的处理的一个课题在于,对于多个用户提供无法在网络节点上共 存的多个高功能服务,并且,可以在网络的运用中追加或删除服务,以及可以变更服务的内 容。为了通过一个物理的网络提供这样的服务,需要网络的虚拟化,即需要看成如同使用对 每个用户或者每个用户组独立的网络。并且,在各个网络节点中,为了进行高功能服务的处 理,对于从通信线输入、向通信线输出的数据包流,需要以尽可能接近该通信线的最大传输 速度(线速)的速度进行处理。作为能够用于网络中的数据流处理的现有技术,具有以下四种技术。作为第一现有技术,可以举出一种计算机,其可以并行地,或者通过时间分割即分 时(time sharing)来并行地执行多个用户的程序。作为与分时系统有关的文献,具有非专 利文献1。在安装有Linux (注册商标)或Microsoft Windows (注册商标)等基于分时系统 的通用操作系统(OS)的计算机中,将处理器以及存储器等共享资源虚拟化,各个用户可以 如同独占地使用这些资源。基于任务切换来共享处理器资源。即,在存在多个进程以及线 程时,OS进行它们之间的任务切换。可以使用这样的计算机构成网络节点(所谓的软件路 由器),或者可以进行流数据处理。但是,在任务切换时要清除寄存器文件以及高速缓冲存储器,所以在进行了任务 切换后,立即需要从DRAM(动态随机存取存储器)重新加载数据以及程序。由于该切换导 致的延迟、数据以及程序的重新加载所需要的延迟、以及巨大的处理步骤数,无法进行接近 线速度的处理。作为第二现有技术,具有以下的虚拟软件技术在一个硬件上,通过时间分割使对 于每个用户不同的操作系统进行工作,由此来构筑每个用户的虚拟环境。非专利文献2记 述了使用虚拟化软件Xen (注册商标)对网络接口等硬件资源进行虚拟化,实现虚拟的节点 的方法。在虚拟化软件技术中,因为与分时系统相同也通过时间分割来使用处理器,所以 无法解决上述那样的由于任务切换而产生的问题。此外,虽然在网络中在用于通信的数据 包中包含发送者和接收者的3层(IP层)的地址,但是在交换机根据2层的信息传输数据 包时,在数据包中不包含对数据包进行中继的交换机的地址。但是,存在以下的问题在虚 拟化软件技术中,为了进行通信需要对网络接口附加地址,作为数据包的发送目的地,需要 指定该地址。作为第三现有技术,存在在专利文献1中记载的物理设备虚拟化技术。专利文献1 公开了以下的技术通过将单一的物理设备虚拟地多重化,将输入或者输出的数据分配给 多个用户的程序来进行处理。该物理设备的一例是网络接口。
在物理设备虚拟化技术中,因为也和分时系统相同地通过时间分割使用处理器, 所以无法解决上述那样的由于任务切换而产生的问题。此外,作为数据包的发送目的地,需 要指定被虚拟地多重化的网络接口的地址,这也同样是问题。作为第四现有技术,具有可编程的路由器以及交换机。相对于用户无法对现有的 路由器以及交换机进行编程,可编程路由器以及交换机通过搭载网络处理器或FPGA(Field Programmable Gate Array),可以从外部提供程序。在专利文献2中,记述了对于运行这样的程序的多个处理器核心 (processorcore)分配所输入的数据包的方法。但是,在该方法中,处理器核心执行的程序被预先固定,分配数据包的目的地也被 固定,因此无法在网络的运用中追加或者删除服务以及无法进行服务内容的变更。专利文献1特表2008-503015号公报专利文献2特表2008-523729号公报非专利文献1 ] John McCarthy, "REMINISCENCES ON THE HIST0RY0F TIME SHARING",Stanford University,1983 Winter or Spring,http://www-formal. Stanford, edu/jmc/history/timesharing/timesharing. html非专利文献 2Egi,N.,Greenhalgh,A.,Handley,M.,Hoerdt,M. , Mathy, L.,and Schooley, T. , "Evaluating Xen for Router Virtualization,,,16th Int' 1 Conference on Computer Communications and Networks(ICCCN 2007), pp. 1256-1261, August 2007.

发明内容
随着网络服务的高功能化,要求网络提供商在短期内开发出对于每个用户组不同 的、多种商务指向的高速服务。此外,为了研究开发新的网络架构,要求实现对于每个用户 (特别是研究者)不同的协议或数据处理。为了提供这样的服务或开发环境,非常希望在各 个网络节点中,在对每个用户组或服务而虚拟化的环境下,实现对于每个虚拟环境(即每 个用户组)不同的网络服务的灵活的程序运行,并且,通过该程序以线速度对数据包流进 行处理。如上所述,在通过一台硬件进行多个处理时,产生基于0S的任务切换,无法进行 线速度的处理。为了实现线速度的处理,并且实现灵活的编程,需要针对每个用户或服务构 成虚拟环境。S卩,第一,在从用户或服务请求加载程序时,需要设定为在不停止网络的动作,并 且不会由于动作延迟等导致数据包损失地,在属于该用户或服务应该所属的虚拟环境的处 理器中执行该程序(即,加载程序)。第二,在从用户或服务请求卸载程序时,需要不停止网络的动作或者不产生由于 延迟引起的数据包损失地,把被加载在属于该用户或服务应该所属的虚拟环境的处理器中 的程序删除(即卸载程序)。第三,在被加载了程序的、对每个虚拟环境分配的处理器中,需要不通过软件进行 任务切换地执行程序。第四,在输入了属于该用户或服务的数据包时,需要求出该用户或服务应该所属 的虚拟环境的识别符,通过线速度并且没有延迟地向分配给该虚拟环境的处理器传输该数据包。本发明的目的在于提供一种网络节点装置以及方法,能够解决上述的4个课题, 构筑对于每个用户或服务不同的虚拟环境,并且高速地进行数据流处理。本申请公开的具有代表性的发明是与网络连接的数据包处理装置,其中,所述数 据包处理装置具备多个处理器核心、与所述多个处理器核心连接的存储器,当接收到程序 的加载请求时,从所述多个处理器核心中选择还没有加载程序的处理器核心,对所述选择 的处理器核心加载所述程序,保存使通过所述加载请求指定的属性信息和加载了所述程序 的处理器核心相对应的第一对应信息,当接收到数据包时,确定与所述接收到的数据包对 应的属性信息,将所述接收到的数据包传输给与所述确定的属性信息对应的处理器核心。根据本发明的一个实施方式,针对每个用户或服务构筑了虚拟环境,将用户的数 据包高速地传输给该用户的程序运行的处理器核心。因此,实现线速度的处理,并且实现灵 活的编程。


图1是表示本发明的第一实施方式的数据包处理装置的全体结构的方框图。图2是表示本发明的第一实施方式的网络处理单元的结构的方框图。图3是表示本发明第一实施方式的网络处理单元的结构的另一例的方框图。图4是本发明的第一实施方式的处理器核心分配表的说明图。图5是表示本发明的第一实施方式的控制板接收到来自用户的程序加载请求时 执行的处理的流程图。图6是表示本发明的第一实施方式的控制板接收到来自用户的程序卸载请求时 执行的处理的流程图。图7A是本发明第一实施方式的网络接口内置的用户 识别符的第一对应表的说明图。图7B是本发明第一实施方式的网络接口内置的用户 识别符的第二对应表的说明图。图7C是本发明第一实施方式的网络接口内置的用户 识别符的第三对应表的说明图。图8是说明在本发明的第一实施方式中,在数据包到达了网络接口时的、数据包 向处理器核心的传输处理的说明图。图9是本发明第一实施方式的输出调度表的说明图。图10是表示本发明的第二实施方式的数据包处理系统的全体结构的方框图。符号说明101、1011数据包处理装置;111A 111C数据包处理板(PPB) ; 112A 112F网络 处理单元(NPU) ; 113A 113C虚拟环境-NPU调度表(NDT) ; 141、1013控制板(CB) ; 142CPU ; 143存储器;151A 151C网络接口(NIF) ; 152A 152C虚拟环境-板调度表(BDT) ; 181、 1012交换结构;2021/0控制装置;203虚拟环境-核心调度表(⑶T) ;211通用处理核心 (GPC) ;221数据包处理核心(PPC) ;231静态随机存取存储器(SRAM) ;241存储器控制装置; 242动态随机存取存储器(DRAM) ;251总线;261交换机;271高速缓冲存储器;401核心分
/服务识别信息和虚拟环境 /服务识别信息和虚拟环境 /服务识别信息和虚拟环境配表
具体实施例方式
最初说明本发明的实施方式的概要。为了解决上述的课题,本发明的实施方式的数据包处理装置使用用户/服务识别 信息和虚拟环境识别符的对应表、程序加载用以及数据包传输用的虚拟环境识别符和板 (board)、NPU、核心的对应表。虚拟环境与用户或服务等对应。用户将一个虚拟环境识别为一个独立的网络。虚 拟环境通过虚拟环境识别符来识别。即,虚拟环境识别符是与用户识别信息或服务识别信 息等对应的属性信息。例如,有时各个用户向数据包处理装置请求相互不同的处理。此时,各个用户与各 虚拟环境相对应。然后,把用于执行各个用户所请求的处理的程序加载到数据包处理装置 内的处理器中。或者,有时数据包处理装置应该执行的处理,针对用户所使用的每个服务而不同。 例如,有时各用户对于同一数据包请求不同的协议处理,但这无法在单一的环境中实现。此 时,各服务与各虚拟环境相对应。然后,把用于在各个服务中执行所请求的处理的程序加载 到数据包处理装置内的处理器中。数据包处理装置执行的处理的概要如下。首先,数据包处理装置在产生来自用户的程序加载请求之前,决定用户/服务识 别信息和虚拟环境识别符的对应表的内容。然后,当产生了加载请求时,第一,数据包处理 装置根据程序加载用虚拟环境识别符和板、NPU(处理器)、核心(处理器核心)的对应表, 将来分配的一个或多个核心(以及该核心所存在的板以及NPU)分配给该虚拟环境(用户 /服务)(即,在该对应表中记入如此分配的情况)。第二,数据包处理装置加载用户程序, 以便在已分配的核心中执行程序。第三,数据包处理装置在数据包传输用虚拟环境识别符 以及板、NPU、核心的对应表中的与该虚拟环境对应的条目中,与所述对应表一致地记入上 述的板、NPU以及核心的识别符。
在该用户的数据包到达处理装置时,数据包处理装置首先根据数据包的内容识 别用户或服务,使用用户/服务识别信息与虚拟环境识别符的对应表,求出虚拟环境识别 符。然后,数据包处理装置使用该虚拟环境识别符、数据包传输用虚拟环境识别符、以及板、 NPU、核心的对应表,对该核心传输数据包。在请求卸载时,数据包处理装置根据请求信息中包含的用户/服务识别信息,使 用用户/服务识别信息和虚拟环境识别符的对应表,求出虚拟环境识别符。然后,数据包处 理装置从程序加载用以及数据包传输用的虚拟环境识别符和板、NPU、核心的对应表中,删 除与被卸载的程序有关的条目的内容。然后,说明用于实现上述处理的详细的实施方式。
最初说明本发明的第一实施方式。图1是表示本发明的第一实施方式的数据包处理装置101的全体结构的方框图。数据包处理装置101由以下各部构成1个或多个数据包处理板(PPB) 111、各自 与网络连接的1个或多个网络接口(NIF)151、控制板(CB) 141、和将它们连接的交换结构(switch fabric) 181。在图1中,作为例子,表示具备n个数据包处理板111以及m个网络接口 151的数 据包处理装置101。但是,在图1中只将n个数据包处理板111中的三个表示为数据包处 理板111A、111B以及111C,只将m个网络接口 151中的三个表示为网络接口 151A、151B以 及151C。在本实施方式中,在进行对数据包处理板111A 111C中的任意一个数据包处理 板都通用的说明时,对它们进行统称,记载为数据包处理板111。同样地,在进行对网络接 口 151A、151B以及151C中的任意一个网络接口都通用的说明时,对它们进行统称,记载为 网络接口 151。数据包处理板111包含1个或多个网络处理单元(NPU)112、以及虚拟环境-NPU调 度表(NDT)113。虚拟环境-NPU调度表113是作为要素而包含虚拟环境识别符、NPU的识别 符的组合的表。在图1中,作为例子,表示了各数据包处理板111包含两个网络处理单元112的例 子。数据包处理板111A具备网络处理单元112A以及112B,数据包处理板111B具备网络处 理单元112C以及112D,数据包处理板111C具备网络处理单元112E以及112F。在本实施 方式中,在进行对网络处理单元112A 112F中的任何一个网络处理单元都通用的说明时, 对它们进行统称,记载为网络处理单元112。在图1的例子中,数据包处理板111A具备虚拟环境-NPU调度表113A,数据包处 理板111B具备虚拟环境-NPU调度表113B,数据包处理板111C具备虚拟环境-NPU调度表 113C。在本实施方式中,在进行对虚拟环境-NPU调度表113A 113C中的任何一个虚拟环 境-NPU调度表都通用的说明时,对它们进行统称,记载为虚拟环境-NPU调度表113。对各个数据包处理板111赋予了整数值的识别符,对各个网络处理单元112也赋 予了整数值的识别符。例如,在图1的数据包处理板111A中显示的“PPB #0”表示对数据 包处理板(PPB)lllA赋予了识别符(此时为识别号码)“0”。虽然在图1中进行了省略,但各个数据包处理板111还包含与各个网络处理单元 112连接的存储器(参照后述的图2以及图3)。图1表示了将各个数据包处理板111作为独立的板来安装的例子。但是,各个数 据包处理板111还可以作为具有与其相同功能的任何形式的数据包处理模块来进行安装。网络接口 151包含虚拟环境-板调度表(BDT) 152。虚拟环境-板调度表152作为 要素而包含虚拟环境识别符和板识别符的组合。在图1的例子中,网络接口 151A包含虚拟环境-板调度表152A,网络接口 151B包 含虚拟环境_板调度表152B,网络接口 151C包含虚拟环境-板调度表152C。在本实施方 式中,在进行对虚拟环境_板调度表152A 152C中的任意一个虚拟环境-板调度表都通 用的说明时,对它们进行统称,记载为虚拟环境-板调度表152。控制板141包含通用CPU142、与通用CPU142连接的主存储装置(存储器)143。在图1中,虚拟环境-NPU调度表113使虚拟环境识别符(EID)与NPU —对一地对 应,虚拟环境_板调度表152使虚拟环境识别符与板一对一地对应。例如,虚拟环境-NPU 调度表113A使虚拟环境识别符“800”和NPU识别符“1” 一对一地对应,虚拟环境-板调度 表152A使虚拟环境识别符“800”与板识别符“0” 一对一地对应。但是,虚拟环境-NPU调 度表113也可以使多个NPU对应于一个虚拟环境识别符。同样地,虚拟环境-板调度表152也可以使多个板与一个虚拟环境识别符对应。在图1中,因为需要把输入数据包处理板111的数据包分配给多个网络处理单元 112,所以需要虚拟环境-NPU调度表113。但是,在一个数据包处理板111只包含一个网络 处理单元112的情况下,或者在各数据包处理板111通过网络处理单元112的数量的接口 与交换结构181连接时,因为不需要分配数据包,所以不需要虚拟环境-NPU调度表113。经由网络接口 151以及交换结构181,把从网络输入的数据包传输给数据包处理 板111来对其进行处理。然后,经由交换结构181将数据包传输给其他数据包处理板111, 或者经由网络接口 151输出到网络。根据网络接口 151所包含的虚拟环境-板调度表152, 来决定在网络接口 151中将所输入的数据包传输到多个数据包处理板111中的哪个数据包 处理板。此外,根据虚拟环境-NPU调度表113,来决定把应该在数据包处理板111中处理的 数据包传输到多个网络处理单元112中的哪一个网络处理单元。网络接口识别符为“0”的网络接口 151A(NIF #0)的虚拟环境-板调度表152A包 含有虚拟环境识别符“617”和板识别符“ 1,,的配对、以及虚拟环境识别符“800”和板识别 符“0”的配对。在以下的说明中,例如将识别符“617”和识别符“1”的配对记载为“617-1”这样。板识别符为“0”的数据包处理板111A(PPB #0)的虚拟环境-NPU调度表113A,作 为虚拟环境识别符和与其对应的NPU识别符的配对,包含有“800-1,,这样的配对。板识别 符为“1”的数据包处理板111B(PPB #1)的虚拟环境-NPU调度表113B包含“617-2”这样 的配对。在图1中,因为在各数据包处理板111上存在多个网络处理单元112,所以需要使 用虚拟环境-NPU调度表113来选择网络处理单元112,但是在一个数据包处理板111仅包 含一个网络处理单元112的情况下,可以省略虚拟环境-NPU调度表113。即使在数据包处理板111上存在多个网络处理单元112的情况下,但在数据包处 理板111能够针对每个网络处理单元112独立地输入输出数据包时,即从交换结构181向 各网络处理单元112的布线独立时,也仍然能够省略虚拟环境-NPU调度表113。图2是表示本发明第一实施方式的网络处理单元(NPU) 112的结构的方框图。图2所示的网络处理单元112由以下各部构成一个通用处理核心(GPC)211、多 个数据包处理核心(PPC) 221、I/O控制装置(I/O Controller) 202、SRAM(静态随机存取存 储器)231、存储器控制装置(Memory Controller) 241、以及将它们连接的总线251。对各个 数据包处理核心221赋予了整数值的识别符。通用处理核心211主要用于控制处理(例如程序的加载、卸载处理),数据处理主 要在多个数据包处理核心221中并行地执行。1/0控制装置202与网络处理单元112的外 部,即位于数据包处理板111上的交换机261连接。此外,1/0控制装置202包含以虚拟环 境识别符与核心识别符的配对为要素的表,即虚拟环境_核心调度表(CDT) 203。在网络处理单元112如图2那样包含多个数据包处理核心221时,虚拟环境-核 心调度表203存储数据包处理核心221的识别符来作为核心识别符。另一方面,在网络处 理单元112如图3那样包含多个通用处理核心211时,虚拟环境-核心调度表203存储通 用处理核心211的识别符来作为核心识别符。SRAM231是小容量但延迟小的主存储装置。存储器控制装置241与网络处理单元112外部,即位于数据包处理板111上的DRAM(动态随机存取存储器)242连接。DRAM242
是大容量但延迟稍大的主存储装置。在图2中,虚拟环境-核心调度表203使虚拟环境识别符与核心一对一地对应。但 是,虚拟环境_核心调度表203也可以使多个核心与一个虚拟环境识别符对应。交换机261把经由交换结构181到达数据包处理板111的数据包数据传输给I/O 控制装置202。I/O控制装置202经由总线251将数据包数据传输给SRAM231,或者经由存 储器控制装置241传输给DRAM242。在SRAM231或DRAM242中存储的数据在数据包处理核 心221中进行处理,然后再次被存储在SRAM231或DRAM242中,或者经由I/O控制装置202 被输出到网络处理单元112的外部。例如,在图2所示的NPU112是板识别符为“0”的数据包处理板111A(PPB#0)中的 NPU识别符“ 1”的NPU112时,I/O控制装置202的虚拟环境-核心调度表203包含“800-2” 的配对,来作为虚拟环境识别符和与其对应的核心识别符的配对。图3是表示本发明第一实施方式的网络处理单元(NPU) 112的结构的另一例的方 框图。图3所示的网络处理单元112由以下各部构成多个通用处理核心(GPC)211、I/0 控制装置(I/O Controller) 202、高速缓冲存储器271以及将它们连接的总线251。在通用处理器211中并行地执行数据处理。并且,通用处理核心211也进行控制 处理(例如程序的加载、卸载处理)。高速缓冲存储器271是容量小但延迟小的存储装置 (例如SRAM),仅存储从通用处理核心211或I/O控制装置202存储在主存储装置中的数据 中的最近被存取的数据。除此以外的数据经由存储器控制装置241被存储在DRAM242中。 存储器控制装置241通常自动地控制从高速缓冲存储器271向DRAM242的数据传输以及从 高速缓冲存储器的数据删除,但是还具有对于主存储装置的特定的地址范围禁止该操作的 功能。例如,在图3所示的NPU112是板识别符为“1”的数据包处理板111B(PPB#1)中的 NPU识别符“2”的NPU112时,I/O控制装置202的虚拟环境-核心调度表203包含“617-1” 这样的配对,来作为虚拟环境识别符和与其对应的核心识别符的配对。图4是本发明的第一实施方式的核心分配表401的说明图。核心分配表401被存储在控制板141上的存储器143中,使程序加载用虚拟环 境识别符和板、NPU以及核心相对应。具体地说,核心分配表401包含使虚拟环境识别符 (EID)414、用于识别对该环境分配的核心的板识别符(BID)411、NPU识别符(NID)412以及 核心识别符(CID)413相对应的信息。通过在网络处理单元112内唯一识别核心(即,数据包处理核心211或通用处理 核心211)的核心识别符413、在数据包处理板111内唯一识别网络处理单元112的NPU识 别符412、以及在数据包处理装置101内唯一识别数据包处理板111的板识别符411的组 合,可以在数据包处理装置101内唯一地识别各个核心。在核心分配表401中,虚拟环境识别符“800”与通过板识别符“0”、NPU识别符“1” 以及核心识别符“2”识别的核心相对应(行423),虚拟环境识别符“617”与通过板识别符 “1”、NPU识别符“2”以及核心识别符“1”识别的核心相对应(行414)。这表现了对通过虚 拟环境识别符“ 800 ”识别的虚拟环境分配了通过板识别符“ 0 ”、NPU识别符“ 1 ”以及核心识别符“2”识别的核心,以及对通过虚拟环境识别符“617”识别的虚拟环境分配了通过板识 别符“ 1 ”、NPU识别符“ 2,,以及核心识别符“ 1,,识别的核心。另一方面,没有记入与通过板识别符“0”、NPU识别符“1”以及核心识别符“0”识 别的核心、以及通过板识别符“0 ”、NPU识别符“ 1,,以及核心识别符“ 1,,识别的核心相对应 的虚拟环境识别符414 (行421以及行422)。这表现了这些核心未使用(S卩,没有分配给任 何虚拟环境)。核心分配表401,在网络处理单元112如图2那样包含多个数据包处理核心221 时,存储数据包处理核心221的识别符作为核心识别符。另一方面,如图3那样在网络处理 单元112包含多个通用处理核心211时,核心分配表401,存储通用处理核心211的识别符 作为核心识别符。用户的程序加载请求以及程序卸载请求,从数据包处理装置101的外部经由网络 接口 151到达控制板141。程序加载请求包含用户/服务识别信息或虚拟环境识别符、请求 的核心数、应该加载的程序或其识别信息(URL等)。程序卸载请求包含用户/服务识别信 息或虚拟环境识别符、请求的核心数。但是,在请求核心数为“1”时,可以省略请求核心数。图5是表示本发明的第一实施方式的控制板141在接收到来自用户的程序加载请 求时执行的处理501的流程图。当开始执行处理501时,首先,在步骤511中,控制板141根据核心分配表401对 请求源虚拟环境分配核心,将该分配结果记入核心分配表401中。即,控制板141在核心分 配表401中,确定与请求的核心数相同数量的虚拟环境识别符(EID)414的栏为空栏的行, 在所确定的行的虚拟环境识别符414中记入请求源的虚拟环境识别符。通过选择该行,选 择板识别符411、NPU识别符412以及核心识别符413的各个值。然后,在步骤512中,通用处理核心211对已分配的核心(即,与在步骤511中确 定的行对应的通用处理核心211或数据包处理核心221)加载程序,启动已分配的核心。程 序通常存储在由DRAM242以及存储器控制装置241 (在图3的例子中还有高速缓冲存储器 271)构成的主存储装置、或内置核心的命令高速缓冲存储器中,但也可以存储在SRAM231 中。在主存储装置或核心被多个核心共享时,当在它们中存储了程序之后,在对象核心的寄 存器中加载存储有程序的区域的先头地址。在图2的结构中,数据包处理核心221专用于数据包处理,所以有时无法进行程序 的加载以及启动。此时,网络处理单元112中包含的通用处理核心211无法进行加载以及 启动处理。然后,在步骤513中,在虚拟环境-核心调度表203、虚拟环境-NPU调度表113、虚 拟环境_板调度表152中记入分配结果。S卩,以和在处理501中确定的板识别符、NPU识别 符以及核心识别符与虚拟环境识别符的组合相一致的方式,决定这些表中的一行的内容。 根据来自控制板141的指示,由I/O控制装置202、数据包处理板111以及网络接口 151执 行该记入。在此,以下面的情况为例子来说明图5的处理,该情况为在没有将“800”作为图 4的行423的虚拟环境识别符414进行存储的时刻,接收到指定虚拟环境识别符“800”以及 请求核心数“ 1,,的程序加载请求。此时,在步骤511中,控制板141确定虚拟环境识别符414的栏为空栏的1行,例如行423,作为该行423的虚拟环境识别符414记入“800”。在如上那样确定了行423时,在步骤512中,控制板141把要向与行423对应的核 心加载程序的请求发送给包含该核心的数据包处理板111。此时,对通过板识别符“0”识 别的数据包处理板111内的、通过NPU识别符“1”识别的网络处理单元112所包含的、通过 核心识别符“2”识别的核心加载程序。在该核心为通用处理核心211时,该通用处理核心 211自身可以执行程序的加载。在该核心是数据包处理核心221时,与该数据包处理核心 221连接的通用处理核心211执行程序的加载。在步骤513中,控制板141向数据包处理装置101内的各部发送为了与行423的 内容相一致而更新各表的请求。网络接口 151按照请求,在虚拟环境-板调度表152中追 加使虚拟环境识别符“800”和板识别符“0”相对应的行(参照图1的虚拟环境-板调度 表152A 152C)。通过板识别符“0”识别的数据包处理板111 (在图1的例子中为数据包 处理板111A),在虚拟环境-NPU调度表113中追加使虚拟环境识别符“800”和NPU识别符 “1”对应的行。通过NPU识别符“1”识别的网络处理单元112(在图1的例子中为网络处 理单元112B)内的I/O控制装置202在虚拟环境-核心调度表203中追加使虚拟环境识别 符“800”和识别符“2”对应的行。结果,在各个调度表中存储与核心分配表401的至少一 部分相同的内容。图6是表示在本发明第一实施方式的控制板141接收到来自用户的程序卸载请求 时执行的处理601的流程图。当开始执行处理601时,首先,在步骤611中,控制板141从核心分配表401中删 除通过程序卸载请求指定的虚拟环境的分配结果。然后,在步骤612中,从虚拟环境-板调度表152、虚拟环境-NPU调度表113、虚拟 环境_核心调度表203中删除该虚拟环境的分配结果。最后,在步骤613中,通用处理核心211在已分配的核心(S卩,通用处理核心211 或数据包处理核心221)中停止程序,然后进行卸载。图7A至图7C是本发明的第一实施方式的网络接口 151内置的用户/服务识别信 息和虚拟环境识别符的对应表的说明图。网络接口 151当接收到数据包时,根据图7所示的对应表,确定与该数据包对应的 虚拟环境识别符。如已经说明的那样,虚拟环境与用户(例如发送了数据包的用户或请求 了数据包的用户)或者服务(例如发送或请求了数据包的用户所使用的服务)相对应。因 此,虚拟环境识别符可以和数据包中包含的用户识别信息或服务识别信息直接对应。或者, 在用户或服务与数据包中包含的地址对应时,可以使虚拟环境识别符与数据包中包含的地 址相对应。图7A所示的对应表包含使虚拟环境识别符与地址对应的信息,图7B所示的对应 表包含使虚拟环境识别符与用户识别信息对应的信息,图7C所示的对应表包含使虚拟环 境识别符与服务识别信息对应的信息。以下详细说明各对应表。图7A所示的对应表701,假定通过IP地址、IP协议(TCP、UDP等)以及端口(TCP 端口或UDP端口 )这三者构成的组合,识别用户或服务(即,存在从上述三者组成的组合到 用户或服务的多对一的映射)。在数据包到达控制板141时,将数据包中包含的IP地址、 IP协议以及端口用作检索键来检索对应表701,由此可以求出虚拟环境识别符栏(EID)中存储的、对应的虚拟环境识别符。对应表701包含如下的内容。与IP地址“192. 168. 1. 2MP协议“TCP”以及端口 “80”对应的虚拟环境识别符为“800”。此外,与IP地址“ 192. 168. 2. 3”、IP协议“UDP”以 及端口 “4052”对应的虚拟环境识别符为“617”。例如,当所到达的数据包中包含IP地址 “192. 168. 1. 2”、IP协议“TCP”以及端口 “80”时,确定虚拟环境识别符“800”。图7B所示的对应表702,假定通过数据包中包含的用户ID识别用户。在数据包到 达控制板141时,将数据包中包含的用户ID用作检索键来检索表711,由此可以求出在虚拟 环境识别符栏(EID)中存储的、对应的虚拟环境识别符。在通过GRE (Generic Routing Encapsulation)协议将数据包封装时,可以在GRE 头部的Key栏中存储用户识别符。在这样的数据包到达时,通过从Key栏中取出用户ID,可 以求出该数据包应该所属的虚拟环境的识别符。在通过MPLS或其他的隧道协议对数据包 进行了编码时,也同样可以根据隧道协议包含的信息识别用户或服务,并使用该信息求出 虚拟环境识别符。对应表702包含以下的内容。与用户ID “500”对应的虚拟环境识别符为“800”。 此外,与用户ID “501”对应的虚拟环境识别符为“617”。图7C所示的对应表703,假定通过数据包中包含的服务ID来识别服务。在数据包 到达控制板141时,将数据包中包含的服务ID用作检索键来检索表721,由此可以求出在虚 拟环境识别符栏(EID)中存储的、对应的虚拟环境识别符。此时,在通过GRE协议对数据包 进行了封装时,也可以在GRE头部的Key栏中存储服务识别符。在这样的数据包到达时,通 过从Key栏中取出服务ID,可以求出该数据包应该所属的虚拟环境的识别符。对应表703包含以下的内容。与服务ID “IntranetOOl”对应的虚拟环境识别符 为“800”。此外,与服务ID “WeblOl”对应的虚拟环境识别符为“617”。以下,对对应表701、702以及703中的用户/服务识别信息和程序加载请求以及 程序卸载请求中的用户/服务识别信息的关系进行补充说明。两者没有必要相同,如果通 过表等预先给出了两者的对应关系,则在处理501和处理601时通过使两者对应,可以对加 载了程序的核心调度(dispatch)数据包。图8是表示在本发明的第一实施方式中,数据包到达网络接口 151时的、数据包向 核心的传输处理的说明图。当数据包到达网络接口 151时,首先,网络接口 151使用对应表701、711或721,求 出与数据包中包含的用户/服务识别信息对应的虚拟环境识别符(步骤801)。例如,在用 户ID为“500”时,根据图7B求出虚拟环境识别符“800”。然后,网络接口 151把在步骤801中确定的虚拟环境识别符作为关键字,检索虚拟 环境-板调度表(BDT) 152,由此求出与虚拟环境识别符对应的板识别符。然后,网络接口 151通过控制交换结构181,向具有所确定的板识别符的数据包处理板(PPB) 111传输数据 包(步骤802)。在虚拟环境识别符为“800”时,作为板识别符求出“0”,对板识别符“0”的 数据包处理板111 (在图1以及图8的例子中显示为“PPB #0”的数据包处理板111A)传输 数据包。然后,数据包传输目的地的数据包处理板111将虚拟环境识别符作为关键字,检 索该数据包处理板111内的虚拟环境-NPU调度表(NDT) 113,由此求出对应的NPU识别符,向具有该NPU识别符的网络处理单元(NPU)112传输数据包(步骤803)。在图8的例子中, 检索虚拟环境-NPU调度表113A。在虚拟环境识别符为“800”时,作为NPU识别符求出“1”, 向NPU识别符“1”的网络处理单元112传输数据包。并且,数据包传输目的地的网络处理单元(NPU) 112内的I/O控制装置202将虚拟 环境识别符作为关键字来检索虚拟环境_核心调度表(CDT) 203,由此求出对应的核心识别 符,向具有该核心识别符的核心传输数据包(步骤804)。在虚拟环境识别符为“800”时,作 为核心识别符而求出“2”,向核心识别符“2”的核心传输数据包。
在发送目的地的核心中,按照用户的加载请求加载的程序进行工作。该程序通过 使用SRAM231或高速缓冲存储器271,可以以较小的延迟执行处理,因此可以进行线速度的处理。有时自动地删除在高速缓冲存储器271中包含的数据以及程序,因此有时阻碍线 速度的处理。为了防止该问题,指定所述数据以及程序的地址范围,进行禁止从高速缓冲存 储器271自动删除的设定即可。该程序在执行了数据包的处理后,可以将该数据包传输给其他的特定的数据包处 理板111,或者传输给特定的网络接口 151。在发送目的地的数据包处理板111中还执行图 8所述的处理,由此,将虚拟环境识别符作为关键字,决定网络处理单元112以及核心。在板选择、NPU选择以及核心选择时,在存在与一个虚拟环境识别符对应的多个板 识别符、NPU识别符或核心识别符时,选择它们中的任何一个,向所选择的板、NPU、或者核心 传输数据包即可。此时可以使用随机数来分配数据包。或者可以检测该板、NPU、或者核心 的使用状况,选择当前没有被使用、或者所具有的未处理的数据包数(输入队列中包含的 数据包数等)较少的板、NPU、或者核心,来分配数据包。此外,在一个数据包处理板111只包含一个网络处理单元112时,或者在各个数据 包处理板111通过网络处理单元112的数量的接口与交换结构181相连接时,因为不需要 分配数据包,所以不需要虚拟环境-NPU调度表113。此时,当数据包到达网络接口 151时, 如下那样执行数据包向核心的传输处理。当数据包到达网络接口 151时,首先,网络接口 151使用对应表701、711或721,求 出与数据包中包含的用户/服务识别信息对应的虚拟环境识别符。然后,网络接口 151把在步骤801中确定的虚拟环境识别符作为关键字,检索虚拟 环境_板调度表(BDT) 152,由此求出与虚拟环境识别符对应的板识别符。然后,网络接口 151控制交换结构181,由此向与确定的板识别符对应的数据包处 理板(PPB) 111传输数据包。然后,向被传输了数据包的数据包处理板(PPB)Ill的网络处 理单元(NPU) 112传输数据包。并且,数据包传输目的地的网络处理单元(NPU) 112内的I/O控制装置202将虚拟 环境识别符作为关键字,检索虚拟环境-核心调度表(CDT) 203,由此求出对应的核心识别 符,向具有该核心识别符的核心传输数据包。如此,根据第一实施方式,通过使多个板识别符、NPU识别符或核心识别符与一个 虚拟环境识别符对应,可以针对每个用户或者每个服务自由地决定处理能力。并且,根据 板、NPU、或者核心的使用状况决定数据包的传输目的地,由此可以更加有效地利用核心及 其附带的计算资源。
以上结束了本发明第一实施方式的基本部分的说明,以下进行与第一实施方式有 关的补充说明。第一补充说明与迁移处理有关。在第一实施方式中,有时在一个网络处理单元112中,多个用户组或多个服务同时工作。但是,根据网络处理单元112的设计,有时无法在使 多个核心中的一部分核心保持工作的状态不变,对另一部分核心加载程序。此时,代替程序 加载请求时的处理501,进行以下那样的迁移处理即可。例如,说明在对网络处理单元112A中包含的多个核心的一部分核心加载了程序, 对剩余的核心还没有加载程序,对网络处理单元112B的任何一个核心都没有加载程序的 时刻,对新程序的加载请求进行处理的情况。此时,控制板141还向网络处理单元112B加载在网络处理单元112A中工作的全 部程序。但是,在网络处理单元112B可以直接使用已经加载到主存储装置等中的程序时, 不需要重新进行加载。可以根据核心分配表401确认在网络处理单元112B的任何一个核心中都还没有 加载程序。即,根据核心分配表401选择网络处理单元112B。代替在图5的步骤511中说明的核心的分配,而执行上述的网络处理单元112B的 选择。通过与步骤512相同的方法向所选择的网络处理单元112B的核心加载程序。然后,与步骤513相同,设定各表。但是,此时仅仅不执行步骤513中的虚拟环 境-板调度表(BDT)152的设定。即,在对网络处理单元112B的各个核心加载了程序后,在 网络处理单元112A中继续处理输入给网络接口 151的数据包。控制板141还把请求加载的程序加载到网络处理单元112B的还没有加载程序的 核心中。与步骤512同样地执行该加载。在该处理后,在网络处理单元112B中处理对网络 接口 151输入的属于该虚拟环境的数据包。在此,对于全部的程序,执行延迟的虚拟环境-板调度表152的设定,由此在网络 处理单元112B中处理到此为止在网络处理单元112A中处理过的全部的数据包。即,由此 实现了迁移。在迁移结束后,不使用网络处理单元112A。因此,控制板141将网络处理单元112A 内的全部核心变更为未使用状态,按照处理601卸载已加载的程序。通过该处理,还从核心 分配表401中删除用于网络处理单元112A的设定。但是,在第二网络处理单元112中也使 用该程序时,不进行卸载。通过上述的迁移处理,在多核心的网络处理单元112中,即使在核心正在工作无 法更换程序的情况下,也可以在保持程序的运行持续不断的状态下,向多个用户分配一个 网络处理单元112。第二补充说明关于向针对每个虚拟环境而不同的网络输出数据包的处理。使用图9进行第二补充说明。图9是本发明的第一实施方式的输出调度表的说明图。关于从数据包处理板111经由网络接口 151输出给网络的数据包,通过在网络接 口 151中保存输出调度表911,可以进行以下那样的处理。输出调度表911决定虚拟环境与在该虚拟环境中执行的数据包的地址的删除或 者变换的对应。具体地说,输出调度表911包含虚拟环境识别符(EID)、网络接口的端口号码(Port)、数据包输出处理类型(TYPE)、以及地址变换表(CNV)的组合。在图9的例子中,与虚拟环境识别符“617”以及端口号码“0”对应的数据包输出 处理类型为“1”。在该例子中,网络接口 151在对端口“0”输出虚拟环境识别符为“617”的 数据包时,删除数据包所具有的全部地址信息来进行输出。即,网络接口 151在想要从此输 出的数据包包含IP地址时,删除该IP地址,在包含MAC地址时,还删除该MAC地址。
例如,关于该虚拟环境识别符“617”,在从该端口 “0”仅仅连接了一个通信对象, 所以不需要附加地址时,作为与它们对应的数据包输出处理类型,设定“1”。在上述的例子 中,将发送目的地以及发送源的地址都删除,但可以通过变更数据包处理类型,仅保留发送 源的地址。当在输出调度表911中虚拟环境识别符为“617”并且端口号码为“1”时,数据包输 出处理类型为“2”。在该例子中,网络接口 151在向端口“1”输出虚拟环境识别符为“617” 的数据包时,删除数据包所具有的3层的地址信息来进行输出。如果3层为IP层,则删除 IP头部(header)。在数据包不具有3层的地址信息时,原样地进行输出。与数据包输出处理类型为“1”的情况相同,也可以只保留发送源地址,但是因为此 时无法使用因特网协议,所以使用可以仅由发送源地址指定的、替代的协议。在虚拟环境识 别符为“617”并且端口号码为“1”时,因为没有指定地址变换表,所以网络接口 151不进行 地址变换。在输出调度表911中,在虚拟环境识别符为“800”时,数据包输出处理类型为“3”。 此时,因为没有指定端口号码,所以对于全部的端口应用相同的数据包输出处理类型。在输 出的数据包的虚拟环境识别符为“800”时,网络接口 151不删除数据包所具有的地址信息 地进行输出。如果数据包具有3层的地址信息,则网络接口 151直接进行输出,但在不具有3 层的地址信息时,根据2层的地址信息求出3层的地址信息,在数据包中插入3层头部。当 在3层交换机(例如后述的3层交换机1012)中接收ARP (Address ResolutionProtocol) 数据包时,如果在针对每个网络接口 151而存在的ARP表(省略图示)中保存MAC地址和 IP地址的对应,则在输出数据包时可以求出与MAC地址对应的IP地址,来插入3层头部。 在虚拟环境识别符为“800”时,因为没有指定地址变换表,所以不进行地址变换。在输出调度表911中在虚拟环境识别符为“452”时,数据包输出处理类型为“3”。 艮口,网络接口 151在输出虚拟环境识别符为“452”的数据包时,不删除数据包中包含的地址 fn息ο在输出调度表911中指定了与虚拟环境识别符“452”对应的地址变换表912。因 为数据包处理类型为“3”,所以网络接口 151如下那样变换3层的地址。网络接口 151首先在IAddr栏中检索数据包所包含的地址。在数据包包含的地址为“193. 168. 1.2”时,IAddr的值“192. 168. 1.*”与该地址 匹配(“*”是通配符)。因此,网络接口 151把数据包包含的地址改写为与上述检索到的 IAddr对应的OAddr, BP “192. 168. 3. 2”。但是,因为在OPort栏中指定了 “*”,所以网络接 口 151按照地址的下8比特的内容,变更端口。即,执行NAPT变换(Network Address Port Translation)。在数据包包含的地址为“192. 168. 2. 3”时,检索结果是,作为IAddr, “192. 168. 2/24”匹配(“24”为有效比特数)。因此,网络接口 151将检索到的IAddr的先头的24比特改写为与其对应的OAddr、S卩“192. 168. 4”。因为没有指定OPort栏,所以不进行端口的改写。在数据包包含的地址为“192. 168. 3. 255”时,检索结果是,作为IAddr, “192. 168. *. 255”匹配。因此,网络接口 151将地址的上位16比特改写为“ 10. 1 ”,将地址 的下位8比特改写为“255”。其余的8比特维持原样。此时也没有指定OPort栏,所以不进 行端口的改写。为了进行数据包的高速传输,需要在高速存储器上放置地址变换表912,所以需要 抑制其总存储量。在从输出调度表911的多个栏中指示同一内容的地址变换表912时,通 过指示同一输出调度表911可以抑制存储量。代替针对每个网络接口 151具有地址变换表 912,可以通过多个网络接口 151共享地址变换表912,来进一步抑制存储量。在数据包处理类型为“1”时,因为在输出数据包中不包含地址,所以无法指定地址 变换表。在数据包处理类型为2时,因为在输出数据包中包含2层的地址,所以地址变换表 变换2层的地址。在以太网(注册商标,以下相同)中,每次独立地处理一个MAC地址,所 以不进行范围指定地,在地址变换表中每次指定一个地址的配对。在数据包处理装置101中分离了数据包处理板111和网络接口 151,但也可以在数 据包处理板111上装配网络接口。此时,可以不把在数据包处理板111的处理中输出的数 据包发送给网络接口 151,而从数据包处理板111上的网络接口向网络进行发送。在该发送 时,可以使用数据包处理板111上的输出调度表911以及地址变换表912,进行向针对每个 虚拟环境不同的网络输出数据包的处理。在从数据包处理板111经由网络接口 151输出数据包时,能够从网络接口 151 — 并输出来自其他数据包处理板111或者来自其他网络接口 151的数据包。但是,通过使用 以上的结构,可以从数据包处理板111上的网络接口仅输出在数据包处理板111中进行处 理后的数据包。因此,在数据包处理板111中,测量在数据包处理板111中处理后的流量, 可以根据该流量进行整形(shaping)等流量控制。以下说明本发明的第二实施方式。图10是表示本发明的第二实施方式的数据包处理系统的全体结构的方框图。图10所示的系统实现与第一实施方式的数据包处理装置101等价的功能。具体地说,图10所示的系统具备多个数据包处理装置(PPE) 1011、3层交换机1012 以及控制装置1013。多个数据包处理装置(PPE) 1011通过3层交换机1012以及IOGbit以 太网相连。3层交换机1012还装配IOGbit以太网接口(省略图示),由此与其他装置连接。控制装置1013直接或间接地与3层交换机1012连接。控制装置1013包含控制 板141,控制板141包含通用CPU142以及主存储装置143。数据包处理装置1011与数据包处理板111相同,包含一个或多个网络处理单元 (NPU) 112以及虚拟环境-NPU调度表(NDT) 113。虚拟环境-NPU调度表(NDT) 113是将虚拟 环境识别符与NPU识别符的组合作为要素的表。数据包处理装置1011与数据包处理板111相同,可以作为任何形式的处理模块来 进行安装。例如,作为数据包处理装置1011,可以使用在第一实施方式中所示的数据包处理 板 111。在图10中,作为例子表示了 η个数据包处理装置1011。但是,在图10中,只将η个数据包处理装置1011中的三个数据包处理装置表示为数据包处理装置1011A、1011B以 及1011C。在本实施方式中,在进行对数据包处理装置101IA 1011C中的任意一个都通用 的说明时,对它们进行统称,记载为数据包处理装置1011。
对各个数据包处理装置1011赋予由整数值构成的识别符。例如,在图10的数据包 处理装置1011A中显示的“PPE #0”表示对数据包处理装置(PPE) 1011A赋予了识别符“0”。数据包处理装置1011A具备网络处理单元112A、112B以及虚拟环境-NPU调度 表113A,数据包处理装置1011B具备网络处理单元112C、112D以及虚拟环境-NPU调度 表113B,数据包处理装置1011C具备网络处理单元112E、112F以及虚拟环境-NPU调度表 113C。与第一实施方式相同,把网络处理单元112A 112F也记载为网络处理单元112。将 虚拟环境-NPU调度表113A 113C也记载为虚拟环境-NPU调度表113。网络处理单元112 以及虚拟环境-NPU调度表113与在第一实施方式中说明的相同。3层交换机1012具有策略路由功能。从网络输入的数据包,经由3层交换机1012被传输给数据包处理装置1011来进 行处理,并且经由3层交换机1012传输给其他数据包处理装置1011,或者输出到网络。根 据3层交换机1012具有的策略路由的设定内容,来决定把对3层交换机1012输入的数据 包传输到多个数据包处理装置1011中的哪一个。即,在第一实施方式中,在接收到程序加 载请求时的处理501以及接收到程序卸载请求时的处理601中,控制板141设定了虚拟环 境-板调度表152。与之相对,在第二实施方式中,控制板141进行以下那样的策略路由的 设定。与第一实施方式相同,根据虚拟环境-NPU调度表113决定把在数据包处理装置1011 中应该处理的数据包传输给多个网络处理单元112中的哪一个。如下那样根据策略路由来决定数据包处理装置1011。3层交换机1012为了进行 策略路由的设定,使用如下那样的命令(该命令等同于针对Alaxala(注册商标)公司的3 层交换机AX7800S命令)。policy-list 10 ppel 192. 168. 10. 2. . . (1)policy-group to_ppel list 10…(2)flow filter user617 in list 100 any any action policy_group to_ ppel. . . (3)命令(1)表现了数据包处理装置1011B(PPE #1)与3层交换机1012的网络接口 “ppel”连接,对数据包处理装置1011B(PPE #1)赋予了 IP地址“192. 168. 10. 2”,以及作为 识别号码赋予了 “10”。命令(2)表现了仅通过识别号码为“0”的一个要素构成策略路由的设定,对于该 设定赋予了 “t0_ppel”的名称。命令(3)表现了对于到达为了只由特定的用户组使用而设定的VLAN接口(对每 个VLAN虚拟化的网络接口 ) “user617”的数据包,应用“to_ppel”的策略路由。结果,通过命令(1) (3),使VLAN号码“617”和通过识别符“1”识别的数据包 处理装置1011B(PPE #1)对应。在对于“user617”分配了 VLAN号码“617”时,当输入了具 有VLAN号码617的数据包时,将该数据包传输给数据包处理装置1011B (PPE #1)来进行处 理。在本实施方式中,使VLAN与虚拟环境相对应。
为了对属于该用户组的用户的数据包设定VLAN号码“617”,使该用户的设备和3层交换机1012之间的某个交换机具备VLAN功能,使用该交换机的标签VLAN功能来设定 VLAN号码“617”即可。在只有该用户组使用该交换机的特定的端口时,不需要识别在该端 口输入的数据包的用户或者服务,对全部数据包设定VLAN号码617即可。当根据命令(1)设定了 3层交换机1012时,作为具有VLAN号码“617”的数据包 的传输目的地,选择与网络接口“ppel”连接的IP地址“192. 168. 10.2”。即,作为该数据包 的发送目的地MAC地址,3层交换机1012设定与通过ARP (Address Resolution Protocol) 接收到的IP地址“192. 168. 10. 2”对应的MAC地址。当在网络接口 “ppel”上连接了多个 数据包处理装置1011时,在命令(1)中必须指定IP地址。但是,如果与网络接口 “ppel” 连接的数据包处理装置1011只为一个,则不需要指定IP地址。即,可以代替命令(1)而使 用以下的命令。policy-list 10 ppel......(1,)此时,3层交换机1012在数据包从数据包处理装置1011到达网络接口 “ppel ”时, 通过与“ppel”对应地保存该数据包的发送源的MAC地址,可以唯一地决定具有VLAN号码 “617”的数据包的发送目的地MAC地址。根据该方法,不需要对数据包处理装置1011赋予IP地址,可以节约IP地址。并 且,根据情况因为不需要在数据包处理装置1011中装配因特网协议的堆栈,所以可以使程
序小型化。此外,在进行了设定,以使数据包处理装置1011不根据数据包的发送目的地地址 接收到达的该数据包时(例如,在进行了相当于Linux中的promiscuous mode的设定时), 3层交换机1012在从网络接口“ppel”输出数据包时,即使不变更其发送目的地地址以及发 送源地址地进行送出,也可以将该数据包送到数据包处理装置1011。该方法只可以用于具 有特定的虚拟环境识别符的数据包。即,关于具有其他虚拟环境识别符的数据包,可以改写 发送目的地地址,从“ppel”以外的网络接口送出。根据该方法,数据包处理装置1011可以 使用原本对该数据包附加的发送目的地地址以及发送源地址进行处理。并且,在进行了设定,以使数据包处理装置1011不根据数据包的发送目的地地 址接收到达的该数据包时,即使在要输出的数据包中不包含发送目的地地址,3层交换机 1012也可以将该数据包送到数据包处理装置1011。因此,可以删除该数据包的发送目的地 地址栏。并且,如果不需要发送源地址,则还可以删除发送源地址。但是,删除了这些地址 的数据包没有遵循以太网标准(IEEE标准)。该方法也只可以用于具有特定的虚拟环境识 别符的数据包。根据该方法,可以与地址的量对应地抑制传输数据量。根据以上的第二实施方式,即使在取代重新开发全部装置,而使用AX7800S这样 的现有的3层交换机时,也可以得到本发明的主要效果。
权利要求
一种数据包处理装置,其与网络连接,其特征在于,所述数据包处理装置具备多个处理器核心以及与所述多个处理器核心连接的存储器,当接收到程序的加载请求时,选择所述多个处理器核心中的还没有加载程序的处理器核心,对所述选择的处理器核心加载所述程序,保存使通过所述加载请求指定的属性信息和加载了所述程序的处理器核心相对应的第一对应信息,当接收到数据包时,确定与所述接收到的数据包对应的属性信息,将所述接收到的数据包传输给与所述确定的属性信息对应的处理器核心。
2.根据权利要求1所述的数据包处理装置,其特征在于,所述数据包处理装置根据所述第一对应信息,选择所述还没有加载程序的处理器核心。
3.根据权利要求1所述的数据包处理装置,其特征在于,所述数据包处理装置保存使地址、用户的识别符和服务的识别符中的至少一个、以及 所述属性信息对应的第二对应信息,当接收到所述数据包时,根据所述第二对应信息,确定与所述接收到的数据包中包含 的地址、用户的识别符和服务的识别符中的至少一个对应的所述属性信息。
4.根据权利要求1所述的数据包处理装置,其特征在于,所述数据包处理装置具备传输所述数据包的交换机、与所述交换机连接的多个数据 包处理模块、与所述交换机以及所述网络连接的多个网络接口、以及控制所述数据包处理 装置的控制部,所述各数据包处理模块具备多个网络处理单元, 所述各网络处理单元具有多个所述处理器核心,所述第一对应信息包含第三对应信息、第四对应信息、第五对应信息以及第六对应信息?所述第三对应信息由所述控制部保存,使所述属性信息、所述处理器核心的识别信息、 包含所述处理器核心的所述网络处理单元的识别信息、包含所述网络处理单元的所述数据 包处理模块的识别信息相对应,所述第四对应信息包含与至少使所述第三对应信息中的所述属性信息和所述处理器 核心的识别信息相对应的信息相同的信息,所述第五对应信息包含与至少使所述第三对应信息中的所述属性信息和所述网络处 理单元的识别信息相对应的信息相同的信息,所述第六对应信息包含与至少使所述第三对应信息中的所述属性信息和所述数据包 处理模块的识别信息相对应的信息相同的信息,所述各网络接口保存所述第六对应信息,当从所述网络接收到所述数据包时,根据所 述第六对应信息,对与所述确定的属性信息对应的所述数据包处理模块传输所述接收到的 数据包,所述各数据包处理模块保存所述第五对应信息,当接收到所述数据包时,根据所述第 五对应信息,对与所述确定的属性信息对应的所述网络处理单元传输所述接收到的数据包,所述各网络处理单元保存所述第四对应信息,当接收到所述数据包时,根据所述第四 对应信息,对与所述确定的属性信息对应的所述处理器核心传输所述接收到的数据包。
5.根据权利要求4所述的数据包处理装置,其特征在于,所述各个网络接口还保存对与属性信息对应的所述数据包的地址的变换或者删除进 行决定的信息,当从所述网络接收到所述数据包时,根据所述确定的属性信息以及所述决定地址的变 换或者删除的信息,变换或者删除所述接收到的数据包的地址,将包含所述变换后的地址的数据包或者删除了所述地址的数据包传输给所述数据包 处理模块。
6.根据权利要求1所述的数据包处理装置,其特征在于,所述数据包处理装置具备与所述网络连接,传输所述数据包的交换机、与所述交换机 连接的多个数据包处理模块、以及控制所述数据包处理装置的控制部, 所述各数据包处理模块具备多个网络处理单元, 所述各网络处理单元具有多个所述处理器核心,所述第一对应信息包含第三对应信息、第四对应信息、以及第五对应信息, 所述第三对应信息由所述控制部保存,使所述属性信息、所述处理器核心的识别信息、 包含所述处理器核心的所述网络处理单元的识别信息、包含所述网络处理单元的所述数据 包处理模块的识别信息相对应,所述第四对应信息包含与至少使所述第三对应信息中的所述属性信息和所述处理器 核心的识别信息相对应的信息相同的信息,所述第五对应信息包含与至少使所述第三对应信息中的所述属性信息和所述网络处 理单元的识别信息相对应的信息相同的信息,所述控制部根据所述第三对应信息,向所述交换机传输使所述确定的属性信息和所述 数据包处理模块对应的命令,所述交换机当从所述网络接收到所述数据包时,根据所述命令,对与所述确定的属性 信息对应的所述数据包处理模块传输所述接收到的数据包,所述各数据包处理模块保存所述第五对应信息,当接收到所述数据包时,根据所述第 五对应信息,对与所述确定的属性信息对应的所述网络处理单元传输所述接收到的数据 包,所述各个网络处理单元保存所述第四对应信息,当接收到所述数据包时,根据所述第 四对应信息,对与所述确定的属性信息对应的所述处理器核心传输所述接收到的数据包。
7.根据权利要求1所述的数据包处理装置,其特征在于,所述数据包处理装置具备第一网络处理单元以及第二网络处理单元, 第一网络处理单元以及第二网络处理单元分别具有多个所述处理器核心, 所述数据包处理装置,在已经对所述第一网络处理单元具备的所述多个处理器核心中 的至少一个处理器核心加载了程序,还没有对其他至少一个处理器核心加载程序,并且还 没有对所述第二网络处理单元具备的任何所述处理器核心加载程序的时刻,当接收到程序 的加载请求时,把加载到所述第一网络处理单元具备的多个所述处理器核心中的至少一个处理器核心的程序加载到所述第二网络处理单元具备的所述多个处理器核心中的至少一 个处理器核心,并且,把通过所述接收到的加载请求指定的程序加载到所述第二网络处理单元具备的 所述多个处理器核心中的、还没有加载程序的处理器核心。
8.根据权利要求1所述的数据包处理装置,其特征在于,所述数据包处理装置具备传输所述数据包的交换机、与所述交换机连接的多个数据 包处理模块、与所述交换机以及所述网络连接的多个网络接口、以及控制所述数据包处理 装置的控制部,所述各数据包处理模块具备网络处理单元, 所述各网络处理单元具有多个所述处理器核心,所述第一对应信息包含第三对应信息、第四对应信息、以及第五对应信息, 所述第三对应信息由所述控制部保存,使所述属性信息、所述处理器核心的识别信息、 包含所述处理器核心的所述网络处理单元的识别信息、包含所述网络处理单元的所述数据 包处理模块的识别信息相对应,所述第四对应信息包含与至少使所述第三对应信息中的所述属性信息和所述处理器 核心的识别信息相对应的信息相同的信息,所述第五对应信息包含与至少使所述第三对应信息中的所述属性信息和所述数据包 处理模块的识别信息相对应的信息相同的信息,所述各网络接口保存所述第五对应信息,当从所述网络接收到所述数据包时,根据所 述第五对应信息,对与所述确定的属性信息对应的所述数据包处理模块传输所述接收到的 数据包,所述各数据包处理模块对所述网络处理单元传输所述接收到的数据包, 所述网络处理单元保存所述第四对应信息,当接收到所述数据包时,根据所述第四对 应信息,对与所述确定的属性信息对应的所述处理器核心传输所述接收到的数据包。
9.一种数据包处理方法,是与网络连接的数据包处理装置执行的数据包处理方法,其 特征在于,所述数据包处理装置具备多个处理器核心以及与所述多个处理器核心连接的存储器, 所述数据包处理方法包含当接收到程序的加载请求时,选择所述多个处理器核心中的还没有加载程序的处理器 核心的第一步骤;对所述选择的处理器核心加载所述程序的第二步骤;保存使通过所述加载请求指定的属性信息和加载了所述程序的处理器核心相对应的 第一对应信息的第三步骤;当接收到数据包时,确定与所述接收到的数据包对应的属性信息的第四步骤;以及 将所述接收到的数据包传输给与所述确定的属性信息对应的处理器核心的第五步骤。
10.根据权利要求9所述的数据包处理方法,其特征在于,所述第一步骤包含根据所述第一对应信息,选择所述还没有加载程序的处理器核心的步骤。
11.根据权利要求9所述的数据包处理方法,其特征在于,所述数据包处理装置保存使地址、用户的识别符和服务的识别符中的至少一个、以及 所述属性信息对应的第二对应信息,所述第四步骤包含根据所述第二对应信息,确定与所述接收到的数据包中包含的地 址、用户的识别符和服务的识别符中的至少一个对应的所述属性信息的步骤。
12.根据权利要求9所述的数据包处理方法,其特征在于,所述数据包处理装置具备传输所述数据包的交换机、与所述交换机连接的多个数据 包处理模块、与所述交换机以及所述网络连接的多个网络接口、以及控制所述数据包处理 装置的控制部,所述各数据包处理模块具备多个网络处理单元, 所述各网络处理单元具有多个所述处理器核心,所述第一对应信息包含第三对应信息、第四对应信息、第五对应信息以及第六对应信息?所述第三对应信息由所述控制部保存,使所述属性信息、所述处理器核心的识别信息、 包含所述处理器核心的所述网络处理单元的识别信息、包含所述网络处理单元的所述数据 包处理模块的识别信息相对应,所述第四对应信息包含与至少使所述第三对应信息中的所述属性信息和所述处理器 核心的识别信息相对应的信息相同的信息,所述第五对应信息包含与至少使所述第三对应信息中的所述属性信息和所述网络处 理单元的识别信息相对应的信息相同的信息,所述第六对应信息包含与至少使所述第三对应信息中的所述属性信息和所述数据包 处理模块的识别信息相对应的信息相同的信息, 所述各网络处理单元保存所述第四对应信息, 所述各数据包处理模块保存所述第五对应信息, 所述各网络接口保存所述第六对应信息, 所述第五步骤包含所述各网络接口当从所述网络接收到所述数据包时,根据所述第六对应信息,对与所 述确定的属性信息对应的所述数据包处理模块传输所述接收到的数据包的第六步骤;所述各数据包处理模块当接收到所述数据包时,根据所述第五对应信息,对与所述确 定的属性信息对应的所述网络处理单元传输所述接收到的数据包的第七步骤;以及所述各网络处理单元当接收到所述数据包时,根据所述第四对应信息,对与所述确定 的属性信息对应的所述处理器核心传输所述接收到的数据包的第八步骤。
13.根据权利要求12所述的数据包处理方法,其特征在于,所述各个网络接口还保存对与属性信息对应的所述数据包的地址的变换或者删除进 行决定的信息,所述第六步骤包含所述各个网络接口当从所述网络接收到所述数据包时,根据所述 确定的属性信息以及所述决定地址的变换或者删除的信息,变换或者删除所述接收到的数 据包的地址,将包含所述变换后的地址的数据包或者删除了所述地址的数据包传输给所述 数据包处理模块。
14.根据权利要求9所述的数据包处理方法,其特征在于,所述数据包处理装置具备与所述网络连接,传输所述数据包的交换机、与所述交换机 连接的多个数据包处 理模块、以及控制所述数据包处理装置的控制部, 所述各数据包处理模块具备多个网络处理单元, 所述各网络处理单元具有多个所述处理器核心, 所述第一对应信息包含第三对应信息、第四对应信息以及第五对应信息, 所述第三对应信息由所述控制部保存,使所述属性信息、所述处理器核心的识别信息、 包含所述处理器核心的所述网络处理单元的识别信息、包含所述网络处理单元的所述数据 包处理模块的识别信息相对应,所述第四对应信息包含与至少使所述第三对应信息中的所述属性信息和所述处理器 核心的识别信息相对应的信息相同的信息,所述第五对应信息包含与至少使所述第三对应信息中的所述属性信息和所述网络处 理单元的识别信息相对应的信息相同的信息, 所述各网络处理单元保存所述第四对应信息, 所述各数据包处理模块保存所述第五对应信息,所述方法还包含所述控制部根据所述第三对应信息,向所述交换机传输使所述确定的 属性信息和所述数据包处理模块对应的命令的步骤, 所述第五步骤包含所述交换机当从所述网络接收到所述数据包时,根据所述命令,对与所述确定的属性 信息对应的所述数据包处理模块传输所述接收到的数据包的步骤;所述各数据包处理模块当接收到所述数据包时,根据所述第五对应信息,对与所述确 定的属性信息对应的所述网络处理单元传输所述接收到的数据包的步骤;以及所述各个网络处理单元当接收到所述数据包时,根据所述第四对应信息,对与所述确 定的属性信息对应的所述处理器核心传输所述接收到的数据包的步骤。
15.根据权利要求9所述的数据包处理方法,其特征在于,所述数据包处理装置具备第一网络处理单元以及第二网络处理单元, 第一网络处理单元以及第二网络处理单元分别具有多个所述处理器核心, 所述第二步骤包含在已经对所述第一网络处理单元具备的所述多个处理器核心中的 至少一个处理器核心加载了程序,还没有对其他至少一个处理器核心加载程序,并且还没 有对所述第二网络处理单元具备的任何所述处理器核心加载程序时,把加载到所述第一网 络处理单元具备的多个所述处理器核心中的至少一个处理器核心的程序加载到所述第二 网络处理单元具备的所述多个处理器核心中的至少一个处理器核心的步骤;以及把通过所述接收到的加载请求指定的程序加载到所述第二网络处理单元具备的所述 多个处理器核心中的、还没有加载程序的处理器核心的步骤。
16.根据权利要求9所述的数据包处理方法,其特征在于,所述数据包处理装置具备传输所述数据包的交换机、与所述交换机连接的多个数据 包处理模块、与所述交换机以及所述网络连接的多个网络接口、以及控制所述数据包处理 装置的控制部,所述各数据包处理模块具备网络处理单元, 所述各网络处理单元具有多个所述处理器核心,所述第一对应信息包含第三对应信息、第四对应信息以及第五对应信息, 所述第三对应信息由所述控制部保存,使所述属性信息、所述处理器核心的识别信息、 包含所述处理器核心的所述网络处理单元的识别信息、包含所述网络处理单元的所述数据 包处理模块的识别信息相对应,所述第四对应信息包含与至少使所述第三对应信息中的所述属性信息和所述处理器 核心的识别信息相对应的信息相同的信息,所述第五对应信息包含与至少使所述第三对应信息中的所述属性信息和所述数据包 处理模块的识别信息相对应的信息相同的信息, 所述各网络处理单元保存所述第四对应信息, 所述各网络接口保存所述第五对应信息, 所述第五步骤包含所述各网络接口当从所述网络接收到所述数据包时,根据所述第五对应信息,对与所 述确定的属性信息对应的所述数据包处理模块传输所述接收到的数据包的第六步骤;所述各数据包处理模块当接收到所述数据包时,对所述网络处理单元传输所述接收到 的数据包的第七步骤;以及所述各网络处理单元当接收到所述数据包时,根据所述第四对应信息,对与所述确定 的属性信息对应的所述处理器核心传输所述接收到的数据包的第八步骤。
全文摘要
本发明提供一种基于多处理器的数据包处理装置以及数据包处理方法,可以对每个用户或者每个服务构筑不同的虚拟环境,并且高速地进行数据流处理。作为与网络连接的数据包处理装置,所述数据包处理装置具有多个处理器核心、以及与所述多个处理器核心连接的存储器,当接收到程序的加载请求时,选择所述多个处理器核心中的还没有加载程序的处理器核心,对所述选择的处理器核心加载程序,保存使通过所述加载请求指定的属性信息与加载了所述程序的处理器核心相对应的第一对应信息,当接收到数据包时,确定与所述接收到的数据包对应的属性信息,将所述接收到的数据包传输给与所述确定的属性信息对应的处理器核心。
文档编号G06F9/50GK101847106SQ201010117820
公开日2010年9月29日 申请日期2010年2月12日 优先权日2009年2月20日
发明者金田泰 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1