首页> 中国专利> 基于多处理器的数据包处理装置以及数据包处理方法

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

摘要

本发明提供一种基于多处理器的数据包处理装置以及数据包处理方法,可以对每个用户或者每个服务构筑不同的虚拟环境,并且高速地进行数据流处理。作为与网络连接的数据包处理装置,所述数据包处理装置具有多个处理器核心、以及与所述多个处理器核心连接的存储器,当接收到程序的加载请求时,选择所述多个处理器核心中的还没有加载程序的处理器核心,对所述选择的处理器核心加载程序,保存使通过所述加载请求指定的属性信息与加载了所述程序的处理器核心相对应的第一对应信息,当接收到数据包时,确定与所述接收到的数据包对应的属性信息,将所述接收到的数据包传输给与所述确定的属性信息对应的处理器核心。

著录项

  • 公开/公告号CN101847106A

    专利类型发明专利

  • 公开/公告日2010-09-29

    原文格式PDF

  • 申请/专利权人 株式会社日立制作所;

    申请/专利号CN201010117820.0

  • 发明设计人 金田泰;

    申请日2010-02-12

  • 分类号G06F9/455;G06F9/50;

  • 代理机构北京银龙知识产权代理有限公司;

  • 代理人许静

  • 地址 日本东京都

  • 入库时间 2023-12-18 00:44:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-06

    未缴年费专利权终止 IPC(主分类):G06F9/455 授权公告日:20130918 终止日期:20170212 申请日:20100212

    专利权的终止

  • 2013-09-18

    授权

    授权

  • 2010-11-17

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20100212

    实质审查的生效

  • 2010-09-29

    公开

    公开

说明书

技术领域

本发明涉及网络中的数据包流等数据流的处理。

背景技术

网络中的数据流的处理的一个课题在于,对于多个用户提供无法在网络节点上共存的多个高功能服务,并且,可以在网络的运用中追加或删除服务,以及可以变更服务的内容。为了通过一个物理的网络提供这样的服务,需要网络的虚拟化,即需要看成如同使用对每个用户或者每个用户组独立的网络。并且,在各个网络节点中,为了进行高功能服务的处理,对于从通信线输入、向通信线输出的数据包流,需要以尽可能接近该通信线的最大传输速度(线速)的速度进行处理。

作为能够用于网络中的数据流处理的现有技术,具有以下四种技术。

作为第一现有技术,可以举出一种计算机,其可以并行地,或者通过时间分割即分时(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 HISTORYOF TIME SHARING”,Stanford University,1983 Winter or Spring,http://www-formal.stanford.edu/jmc/history/timesharing/timesharing.html

【非专利文献2】Egi,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.

发明内容

随着网络服务的高功能化,要求网络提供商在短期内开发出对于每个用户组不同的、多种商务指向的高速服务。此外,为了研究开发新的网络架构,要求实现对于每个用户(特别是研究者)不同的协议或数据处理。为了提供这样的服务或开发环境,非常希望在各个网络节点中,在对每个用户组或服务而虚拟化的环境下,实现对于每个虚拟环境(即每个用户组)不同的网络服务的灵活的程序运行,并且,通过该程序以线速度对数据包流进行处理。

如上所述,在通过一台硬件进行多个处理时,产生基于OS的任务切换,无法进行线速度的处理。为了实现线速度的处理,并且实现灵活的编程,需要针对每个用户或服务构成虚拟环境。

即,第一,在从用户或服务请求加载程序时,需要设定为在不停止网络的动作,并且不会由于动作延迟等导致数据包损失地,在属于该用户或服务应该所属的虚拟环境的处理器中执行该程序(即,加载程序)。

第二,在从用户或服务请求卸载程序时,需要不停止网络的动作或者不产生由于延迟引起的数据包损失地,把被加载在属于该用户或服务应该所属的虚拟环境的处理器中的程序删除(即卸载程序)。

第三,在被加载了程序的、对每个虚拟环境分配的处理器中,需要不通过软件进行任务切换地执行程序。

第四,在输入了属于该用户或服务的数据包时,需要求出该用户或服务应该所属的虚拟环境的识别符,通过线速度并且没有延迟地向分配给该虚拟环境的处理器传输该数据包。

本发明的目的在于提供一种网络节点装置以及方法,能够解决上述的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交换结构;202I/O控制装置;203虚拟环境-核心调度表(CDT);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)111A赋予了识别符(此时为识别号码)“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中并行地执行。I/O控制装置202与网络处理单元112的外部,即位于数据包处理板111上的交换机261连接。此外,I/O控制装置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/O控制装置(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)。这表现了这些核心未使用(即,没有分配给任何虚拟环境)。

核心分配表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中记入分配结果。即,以和在处理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在已分配的核心(即,通用处理核心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.2”、IP协议“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“Intranet001”对应的虚拟环境识别符为“800”。此外,与服务ID“Web101”对应的虚拟环境识别符为“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)111的网络处理单元(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”的数据包时,不删除数据包中包含的地址信息。

在输出调度表911中指定了与虚拟环境识别符“452”对应的地址变换表912。因为数据包处理类型为“3”,所以网络接口151如下那样变换3层的地址。

网络接口151首先在IAddr栏中检索数据包所包含的地址。

在数据包包含的地址为“193.168.1.2”时,IAddr的值“192.168.1.*”与该地址匹配(“*”是通配符)。因此,网络接口151把数据包包含的地址改写为与上述检索到的IAddr对应的OAddr、即“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、即“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以及10Gbit以太网相连。3层交换机1012还装配10Gbit以太网接口(省略图示),由此与其他装置连接。

控制装置1013直接或间接地与3层交换机1012连接。控制装置1013包含控制板141,控制板141包含通用CPU142以及主存储装置143。

数据包处理装置1011与数据包处理板111相同,包含一个或多个网络处理单元(NPU)112以及虚拟环境-NPU调度表(NDT)113。虚拟环境-NPU调度表(NDT)113是将虚拟环境识别符与NPU识别符的组合作为要素的表。

数据包处理装置1011与数据包处理板111相同,可以作为任何形式的处理模块来进行安装。例如,作为数据包处理装置1011,可以使用在第一实施方式中所示的数据包处理板111。

在图10中,作为例子表示了n个数据包处理装置1011。但是,在图10中,只将n个数据包处理装置1011中的三个数据包处理装置表示为数据包处理装置1011A、1011B以及1011C。在本实施方式中,在进行对数据包处理装置1011A~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 ppe1 192.168.10.2...(1)

policy-group to_ppe1 list 10...(2)

flow filter user617 in list 100 any any action policy_group to_ppe1...(3)

命令(1)表现了数据包处理装置1011B(PPE #1)与3层交换机1012的网络接口“ppe1”连接,对数据包处理装置1011B(PPE #1)赋予了IP地址“192.168.10.2”,以及作为识别号码赋予了“10”。

命令(2)表现了仅通过识别号码为“0”的一个要素构成策略路由的设定,对于该设定赋予了“to_ppe1”的名称。

命令(3)表现了对于到达为了只由特定的用户组使用而设定的VLAN接口(对每个VLAN虚拟化的网络接口)“user617”的数据包,应用“to_ppe1”的策略路由。

结果,通过命令(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”的数据包的传输目的地,选择与网络接口“ppe1”连接的IP地址“192.168.10.2”。即,作为该数据包的发送目的地MAC地址,3层交换机1012设定与通过ARP(Address Resolution Protocol)接收到的IP地址“192.168.10.2”对应的MAC地址。当在网络接口“ppe1”上连接了多个数据包处理装置1011时,在命令(1)中必须指定IP地址。但是,如果与网络接口“ppe1”连接的数据包处理装置1011只为一个,则不需要指定IP地址。即,可以代替命令(1)而使用以下的命令。

policy-list 10 ppe1......(1’)

此时,3层交换机1012在数据包从数据包处理装置1011到达网络接口“ppe1”时,通过与“ppe1”对应地保存该数据包的发送源的MAC地址,可以唯一地决定具有VLAN号码“617”的数据包的发送目的地MAC地址。

根据该方法,不需要对数据包处理装置1011赋予IP地址,可以节约IP地址。并且,根据情况因为不需要在数据包处理装置1011中装配因特网协议的堆栈,所以可以使程序小型化。

此外,在进行了设定,以使数据包处理装置1011不根据数据包的发送目的地地址接收到达的该数据包时(例如,在进行了相当于Linux中的promiscuous mode的设定时),3层交换机1012在从网络接口“ppe1”输出数据包时,即使不变更其发送目的地地址以及发送源地址地进行送出,也可以将该数据包送到数据包处理装置1011。该方法只可以用于具有特定的虚拟环境识别符的数据包。即,关于具有其他虚拟环境识别符的数据包,可以改写发送目的地地址,从“ppe1”以外的网络接口送出。根据该方法,数据包处理装置1011可以使用原本对该数据包附加的发送目的地地址以及发送源地址进行处理。

并且,在进行了设定,以使数据包处理装置1011不根据数据包的发送目的地地址接收到达的该数据包时,即使在要输出的数据包中不包含发送目的地地址,3层交换机1012也可以将该数据包送到数据包处理装置1011。因此,可以删除该数据包的发送目的地地址栏。并且,如果不需要发送源地址,则还可以删除发送源地址。但是,删除了这些地址的数据包没有遵循以太网标准(IEEE标准)。该方法也只可以用于具有特定的虚拟环境识别符的数据包。根据该方法,可以与地址的量对应地抑制传输数据量。

根据以上的第二实施方式,即使在取代重新开发全部装置,而使用AX7800S这样的现有的3层交换机时,也可以得到本发明的主要效果。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号