处理信息分组的方法和使用该方法的电信设备的制作方法

文档序号:7966251阅读:267来源:国知局
专利名称:处理信息分组的方法和使用该方法的电信设备的制作方法
技术领域
本发明涉及一种处理信息分组的方法,并且还涉及一种使用该方法的电信设备。
背景技术
信息分组通常在电信设备中被接收、处理和发送;为此,提供了数据平面和控制平面。数据平面负责物理地处理(例如接收,传送,发送)信息分组,因此它必须适于以较高速度操作。控制平面负责控制数据平面并处理信息分组,以便数据平面实现正确的分组处理;因此,它适于以较低速度操作。数据平面和控制平面彼此互相通信;在一些情况下,数据平面需要将所接收的信息分组或其报头或其部分报头内部地发送给控制平面。
这是例如ISO(国际标准化组织)第2层交换机(即实现“分组交换”)的情况,其中,所述内部的传输对于更新它的转发表来说是必要的。这种类型的电信设备基于分组目的MAC(媒体访问控制)地址来选择下一跳(next hop),即将分组路由到何处或换言之使用哪个输出端口来(外部地)发送分组。所述设备根据输入的分组且更确切地根据输入分组的源MAC地址来学习如何实现这种选择;例如,如果具有源MAC地址“AAA”的分组在端口“K”被所述设备接收,则所有具有目的MAC地址“AAA”的分组将被路由到端口“K”;这种关联被存储在转发表中。
每次具有不为转发表所知的源MAC地址的分组被所述设备接收时,分组的报头就从数据平面被传送到控制平面以更新转发表。根据现有技术解决方案,通过FIFO(先进先出)存储器来实现这个传输。
如果具有不为转发表所知的相同源MAC地址的多个分组被连续接收,则直到控制平面的处理单元更新转发表,分组报头才被连续存储到FIFO存储器中。这意味着可能许多同样的信息将通过FIFO存储器从数据平面被传送到控制平面,这导致FIFO存储器存储容量的浪费、控制平面的处理单元处理容量的浪费,以及数据平面和控制平面之间总线容量的浪费;另外,当FIFO存储器为满时,不再能够存储分组报头到FIFO存储器中,并且存在信息分组没有被处理单元处理的风险。

发明内容
本发明的一般目的是克服现有技术的缺点,并且解决电信设备中数据平面和控制平面之间的一些通信问题。
本发明的更具体目的是提供一种有效且高效的方法和结构,用来更新第2层交换机的转发表。
通过根据本发明的在电信设备中处理信息分组的方法来实现这些目的,其中,所述电信设备包括第一处理装置、第二处理装置和存储装置,所述第一处理装置接收并发送信息分组,所述存储装置适于存储从所述第一处理装置发送给所述存储装置的数据,所述方法包括下列步骤A)借助于所述第一处理装置从电信网络接收信息分组;B)检查所述分组的预定特征的值是否已经被所述第二处理装置处理;C)如果在步骤B)的检查是否定的,则检查所述值是否已经被存储到所述存储装置中;以及D)如果在步骤C)的检查是否定的,则从所述第一处理装置至少发送所述值给所述存储装置,并将所述值存储在该存储装置中。
本发明的基本思想是避免不止一次地传输同样的信息。有利地,这可以通过以下操作来实现检查信息片段是否已经被存储到传送存储器装置中但还未被处理。
这种处理方法可以典型地用在电信设备中;事实上,这是本发明的另一个方面。


根据下面结合附图的描述,本发明及其优点将变得显而易见。
图1示出了根据本发明的电信设备的非常简化且局部的框图。
具体实施例方式
下面的描述和附图仅用于解释的目的,因此不应被理解为对本发明的限制。
图1中示出了电信设备,特别是第2层交换机,其称作TA。输入的信息分组由设备TA在多个输入端口IN-p接收,而输出的信息分组由设备TA从多个输出端口OUT-p发送。
输入的分组被提供给交换引擎SE;另外,输入的分组被提供给协议解码器PD;协议解码器甚至可以是交换机的部件。
交换引擎是本领域技术人员所知的,并且包括也为本领域技术人员所知的多个部件(图1中未示出);对于本发明,只要阐明交换引擎SE利用内部转发表FT来实现其功能就足够了。结合协议解码器PD的交换引擎SE实现数据平面功能,并且可以被认为是高速处理装置。
处理单元PU包括在设备TA中,用于实现控制平面功能;单元PU如通常那样是基于微处理器的;单元PU可以被认为是低速处理装置。单元PU的功能之一是更新转发表FT。为此,单元PU需要接收关于输入分组的信息。在图1的实施例中,这种信息由交换引擎SE通过适当的电路传送给单元PU。上述全部内容对于本领域技术人员是已知的,因此本说明书将不提供进一步的细节。
根据现有技术解决方案,上面提及的传输是通过以FIFO存储器形式的存储装置来被实现的,即顺序存取存储器(sequential access memory)。关于这方面,图1中示出的解决方案不同于现有技术解决方案;事实上,使用双端口RAM存储器DPR,即随机存取存储器。双端口存储器是可以由连接到其两个不同端口的两个不同实体同时读和写的存储器。
存储器DPR具有连接到交换引擎SE的第一端口p1和连接到单元PU的第二端口p2;字母“A”是指端口的地址线,而字母“D”是指端口的数据线。在图1的实施例中,存储器DPR由256个字位置(word location)组成,字长是56比特。
另外,散列处理器(hash processor)HP包括在图1的实施例中;这用于当交换引擎SE需要将数据写入存储器DPR中或从存储器DPR读数据时生成地址。
在进一步描述本发明之前,认为简要提及下文将涉及的“散列法(hashing)”的概念是有益的。为了更好理解这个概念,可以参考DonaldE.Knuth的“The Art of Computer Programming-Sorting andSearching”,卷3,第二版,6.4段。“散列法”是指将称为关键字(key)的字符串转换为具有固定长度且通常比原始字符串短的另一个字符串。散列法通常用于在数据库中为对象编索引和检索对象,这是由于通过使用较短的被转换关键字查找对象比通过使用原始关键字查找对象更加容易。散列算法称为“散列函数”。有价值的散列函数不应当产生始自两个不同数据的相同散列值;当这种情况发生时,一般认为发生了“冲突”。提供低冲突风险的散列函数通常被认为是可接受的。
根据本发明的方法用在电信设备中,例如设备TA,该设备包括例如块SE的第一处理装置(典型地是高速处理装置)、例如单元PU的第二处理装置(典型地是低速处理装置),以及例如存储器DPR的存储装置;第一处理装置适于从电信网络接收并向电信网络发送信息分组;存储装置适于(优选地专用于)存储从第一处理装置发送到存储装置的数据,并且下文中被称作传送存储装置。
通常,本发明的方法包括以下步骤A)借助于第一处理装置而从电信网络接收信息分组,B)检查该分组的预定特征的值是否已经被第二处理装置处理,C)如果在步骤B)的检查是否定的,则检查该值是否已经被存储在存储装置中,以及D)如果在步骤C)的检查是否定的,则从第一处理装置至少发送该值给存储装置,并将该值存储在存储装置中。
显然,通过该方法,从第一处理装置仅将被接收信息分组的任何特征值发送一次给存储装置(并且然后从存储装置发送给第二处理装置);这样,第一处理装置可以具有低处理容量,并且传送存储装置可以具有低存储容量;另外,信息分组不被第二处理装置处理的风险较低。
要被第二处理装置处理的信息分组的特征根据应用而变化;典型地,该特征是整个分组报头或部分报头。信息分组可以是例如IP分组,MAC分组等。信息分组的特征可以是例如源地址,目的地址或其组合。IP地址(IPv4格式)由32比特组成,而MAC地址由48比特组成。所述特征可以以编码的格式或以明码(即未编码)的格式或以参考的格式(即特征值被存储且可以被找到的位置)而被发送。
为了更新第2层交换机的转发表,所述特征主要包括所接收分组的源MAC地址。
总之,为了更新转发表,即图1实施例中的FT,控制平面的处理单元,即图1实施例中的单元PU,需要知道接收分组的设备的端口。最佳的可能性是将接收端口地址也认为是要发送给控制平面处理单元的分组特征的一部分;在这种情况下,对于转发表“不知道的”每个信息分组,其源MAC地址(48比特)和接收端口地址(例如7比特)二者都被写入传送存储装置中适当的存储位置。可选地,传送存储装置可以为设备的每个端口提供至少一个存储位置。当转发表“不知道的”信息分组被接收时,其源MAC地址被写入传送存储装置中对应于其接收端口的存储位置中;这样,接收端口地址以间接方式被发送。由于许多分组从每个端口被接收,为设备的每个端口提供一组(例如两个或三个或四个)存储位置可能是必要的,从而能够面对短时间内接收来自相同端口的许多“未知”分组的情况。
在包括转发表的电信设备中,如图1的设备TA,上面定义的方法的步骤B)的检查,可以通过检查存储在转发表中的数据来实现。在图1的实施例中,交换引擎SE检查每个被接收分组的源MAC地址是否被存储在表FT中。表FT有利地通过TCAM(Ternary Content AddressableMemory,三态内容可寻址存储器)而被实现。不像标准的计算机存储器,例如RAM,其中用户提供存储地址并且存储器返回存储在该地址的数据字(data word),CAM被设计成用户提供数据字,并且CAM进行搜索以发现该数据字是否被存储于CAM中的任何地方。如果数据字被发现,则CAM典型地返回被发现数据字所在的存储地址;在一些结构中,CAM还返回数据字或其它关联的数据段。
上文定义的方法的步骤C)的检查,可以通过检查存储在传送存储装置中的数据来实现。典型地,这可以通过从传送存储装置读数据来实现。这是图1实施例的情况,其中交换引擎SE检查还未被存储在表FT中的被接收分组的源MAC地址是否被存储在存储器DPR中;为此,交换引擎SE从存储器DPR读取数据。
上文定义的方法的步骤D)的存储,可以通过至少将分组特征值存储在传送存储装置中的通过散列函数而生成的存储地址处来实现。这是图1实施例的情况,其中交换引擎SE为存储器DPR(更明确地为其端口p1的数据线D-p1)和散列处理器HP二者提供要写入存储器DPR的MAC地址。散列处理器HP生成MAC地址的散列值并将该散列值提供给存储器DPR,更明确地提供给其端口p1的地址线A-P1。然后交换引擎SE向存储器DPR请求“写”操作。在某种程度上,存储器DPR对于每个MAC地址具有不同的字位置,其可以被设备TA适当地处理。这并不完全真实,因为“冲突”是可能的,并且因此同一散列值可能对应于两个不同的MAC地址;总之,这在适当选择散列函数的情况下以较低的可能性发生。
如果散列函数被用于将信息分组特征存储到传送存储器中,则相同的散列函数可以有利地用于实现上文定义的方法的步骤C)的检查。这是图1实施例的情况,当交换引擎SE需要检查MAC地址是否已经被存储在存储器DPR中时,它提供这个MAC地址给散列处理器HP。散列处理器HP生成该MAC地址的散列值,并将该散列值提供给存储器DPR,更明确地提供给其端口p1的地址线A-p1。然后交换引擎SE向存储器DPR请求“读”操作。所述散列函数可以通过散列表来实现,如图1的实施例中那样;这样,散列函数不需要计算。
第二处理装置通过读取传送存储装置来接收分组特征的值。在图1的实施例中,处理单元PU通过以下操作来读存储器DPR发送地址给存储器DPR的端口p2(更明确地发送地址给其地址线A-p2),并且从存储器DPR的端口p2(更明确地从其数据线D-p2)接收数据。根据第一可能性,单元PU每次仅读取一个包括例如MAC地址和端口地址的存储字,然后处理所读取的信息,例如更新转发表FT。根据第二可能性,单元PU读取传送存储装置中的所有字,即整个传送存储装置,然后每次处理一个字。这种全局的读取是循环地且优选地周期性地被实现的。如果选择周期性读取,则准确控制例如转发表的更新是可能的。
一旦存储字已经被单元PU读取并处理,它不再被第二次读取并处理是有益的。确保这个结果的最佳(且容易的)方式是为每个存储字位置提供标签,例如一个附加比特,其表示包含于字中的信息是有效的(即还未被单元PU读取且处理)还是无效的(已经被单元PU读取且处理)。根据这个最佳方式,第一处理装置,即图1实施例中的交换引擎SE,在将特征存储到传送存储装置中时还需要存储这个标签,适当地设置,并且第二处理装置,即图1实施例中的单元PU,在读取并处理来自传送存储装置的特征之后需要重新设置这个标签。因此,第二处理装置适当地在已经在传送存储装置上实现读操作之后,在该传送存储装置上实现写操作。如果读取是“逐字”完成的,则重新设置适当地在“逐字”之后被完成;如果读取被“同时” (确切地是一个字紧接着另一个)完成,则重新设置可以适当地在“同时”之后被完成。在一些类型的存储装置中,写并且删除其存储位置而不是设置并且重新设置标签是可能的。
上文描述的方法可以有效地用在电信设备中以处理信息分组,如图1的设备TA。所述电信设备包括第一处理装置、第二处理装置和存储装置。第一处理装置适于从电信网络接收/向电信网络发送信息分组,并且适于检查所接收信息分组的预定特征的值是否已经被第二处理装置处理。存储装置适于存储从第一处理装置发送给存储装置的数据。第一处理装置还适于检查所述值是否已经被存储在存储装置中,如果所述值还未被第二处理装置处理,则执行该检查;第一处理装置还适于从该第一处理装置发送所述值给存储装置,并将所述值存储在存储装置中,如果所述值还未被存储在存储装置中则执行所述发送和存储。
第一处理装置适于通过检查所述值是否被存储在转发表中,来检查所述值是否已经被处理。
所述电信设备还包括连接到存储装置和第一处理装置的散列处理器,该散列处理器适于为存储装置生成地址,其中,第一处理装置还适于通过利用所生成的地址来读存储装置,检查所述值是否已经被存储在存储装置中。
如果传送存储装置通过双端口RAM设备而被实现,这是由于其两个存取端口中一个可以由发送实体使用而另一个可以由接收实体使用,则该方法可以以特别有效且高效的方式来实现。
如果所述电信设备包括转发表,则该方法可以用于更新所述表;这特别是适于实现第2层分组交换的电信设备的情况。
权利要求
1.一种在电信设备(TA)中处理信息分组的方法,所述电信设备包括第一处理装置(SE)、第二处理装置(PU)和存储装置(DPR),所述第一处理装置(SE)接收并发送信息分组,所述存储装置(DPR)适于存储从所述第一处理装置(SE)发送给所述存储装置的数据,所述方法包括下列步骤A)借助于所述第一处理装置(SE)从电信网络接收信息分组;B)检查所述分组的预定特征的值是否已经被所述第二处理装置(PU)处理;其特征在于,该方法还包括下列步骤C)如果在步骤B)的检查是否定的,则检查所述值是否已经被存储到所述存储装置中;以及D)如果在步骤C)的检查是否定的,则从所述第一处理装置(SE)至少发送所述值给所述存储装置,并将所述值存储在所述存储装置(DPR)中。
2.根据权利要求1的方法,其中,所述预定特征包括所述分组的源地址。
3.根据权利要求2的方法,其中,所述电信设备(TA)包括多个端口(IN-p)用于接收信息分组,所述分组已经在所述多个端口中的一个端口处被接收,并且其中,所述预定特征还包括所述端口的端口地址。
4.根据前面权利要求中任一个的方法,其中,所述电信设备(TA)包括转发表(FT),并且其中,在步骤B)的所述检查是通过检查所述值是否被存储在所述转发表(FT)中来实现的。
5.根据前面权利要求中任一个的方法,其中,存储到所述存储装置(DPR)中的所述检查是通过使用通过散列函数(HP)而生成的地址来实现的。
6.根据前面权利要求中任一个的方法,其中,在步骤D)的所述存储是通过至少将所述值存储到所述存储装置(DPR)中的通过散列函数(HP)而生成的存储地址处来实现的。
7.根据前面权利要求中任一个的方法,其中,所述第二处理装置(PU)还通过读取所述存储装置(DPR)来接收所述值,并且然后将所述存储装置(DPR)中的所述值标记为已读取且已处理。
8.根据权利要求7的方法,其中,所述第二处理装置(PU)特别地循环且优选地周期性读取所述存储装置(DPR)中的所有数据,并且然后将所述存储装置(DPR)中的所有数据标记为已读取且已处理。
9.一种电信设备(TA),其包括第一处理装置(SE)、第二处理装置(PU)和存储装置(DPR),所述第一处理装置(SE)适于从电信网络接收/向电信网络发送信息分组,并且适于检查被接收信息分组的预定特征的值是否已经被所述第二处理装置处理,所述存储装置(DPR)适于存储从所述第一处理装置(SE)发送给所述存储装置的数据,其特征在于,所述第一处理装置还适于-检查所述值是否已经被存储在所述存储装置中,如果所述值还未被所述第二处理装置处理,则执行所述检查;以及-从所述第一处理装置发送所述值给所述存储装置,并且将所述值存储在所述存储装置中,如果所述值还未被存储到所述存储装置中,则执行所述传输和所述存储。
10.根据权利要求9的电信设备(TA),其中,所述第一处理装置适于通过检查所述值是否被存储在转发表中,检查所述值是否已经被处理。
11.根据权利要求9或10的电信设备(TA),其还包括连接到所述存储装置(DPR)和所述第一处理装置(SE)的散列处理器(HP),该散列处理器适于为所述存储装置(DPR)生成地址,其中,所述第一处理装置适于通过利用所生成的地址读所述存储装置,来检查所述值是否已经被存储到所述存储装置中。
全文摘要
公开了一种处理信息分组的方法,其适用于电信设备(TA),该电信设备包括第一处理装置(SE)、第二处理装置(PU)和存储装置(DPR)。该方法包括下列步骤A)借助于第一处理装置(SE)从电信网络接收信息分组;B)检查该分组的预定特征的值是否已经被第二处理装置(PU)处理;C)如果在步骤B)的检查是否定的,则检查该值是否已经被存储到存储装置中;以及D)如果在步骤C)的检查是否定的,则从第一处理装置(SE)发送该值给存储装置,并将该值存储在存储装置(DPR)中。该方法可以有利地用在电信设备中,特别是第2层交换机。
文档编号H04L12/56GK1953418SQ20061011068
公开日2007年4月25日 申请日期2006年8月7日 优先权日2005年10月19日
发明者M·莫代纳, C·科斯坦蒂尼, G·鲍博 申请人:阿尔卡特公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1