一种报文的传输方法和装置与流程

文档序号:13092515阅读:120来源:国知局
技术领域本发明涉及通信技术领域,尤其涉及一种报文的传输方法和装置。

背景技术:
ARP(AddressResolutionProtocol,地址解析协议)协议是一个位于TCP(TransmissionControlProtocol,传输控制协议)/IP(InternetProtocol,网络互连协议)协议栈中的协议,对应于数据链路层,基本功能是将网络层地址解析为数据连接层的MAC(MediaAccessControl,媒体访问控制)地址,以保证通信的进行。ARP的工作过程如下所示:1、当网络设备需要解析一个IP地址对应的MAC地址时,会广播发送ARP请求报文。2、该IP地址对应的其它网络设备接收到ARP请求报文后,会返回ARP应答报文,并根据ARP请求报文中的网络设备的IP地址和MAC地址的对应关系建立ARP表项,以便后续查ARP表项进行报文转发。3、发送ARP请求报文的网络设备接收到ARP应答报文后,根据ARP应答报文中的其它网络设备的IP地址和MAC地址的对应关系建立ARP表项,以便后续查ARP表项进行报文转发。由于转发芯片能够存储的ARP表项的数量受到转发芯片规格的限制,当网络设备建立的ARP表项的数量很多时,转发芯片无法存储所有ARP表项,网络设备在向转发芯片下发ARP表项时,无法将所有的ARP表项均下发到转发芯片上。例如,转发芯片能够存储的ARP表项的数量为2万条,且网络设备建立的ARP表项的数量为10万条,则网络设备只能向转发芯片下发2万条ARP表项,另外8万条ARP表项无法被下发到转发芯片上。

技术实现要素:
本发明提供一种报文的传输方法,该方法应用在网络设备上,所述网络设备包括中央处理器和多个转发芯片,所述方法包括以下步骤:所述中央处理器确定地址解析协议ARP表项对应的转发芯片,并将所述ARP表项下发到所述转发芯片;所述中央处理器获得所述ARP表项在每个转发芯片上对应的路由,并将获得的路由分别下发到对应的转发芯片;转发芯片在接收到报文时,获得所述报文对应的路由,并利用所述路由对应的ARP表项确定由本转发芯片或者其它转发芯片发送所述报文;如果由本转发芯片发送所述报文,则所述转发芯片利用所述路由对应的ARP表项发送所述报文;如果由其它转发芯片发送所述报文,则所述转发芯片将所述报文发送给所述其它转发芯片,由所述其它转发芯片利用所述路由对应的ARP表项发送所述报文。所述中央处理器确定ARP表项对应的转发芯片的过程,具体包括:所述中央处理器利用转发芯片的数量、ARP表项的数量、各转发芯片能够存储的最大ARP表项数量,确定ARP表项对应的转发芯片;或者,所述中央处理器获得各转发芯片上存储的ARP表项的数量,并确定所述ARP表项对应的转发芯片为ARP表项的数量最少的转发芯片;或者,所述中央处理器获得所述ARP表项对应的出接口关联的转发芯片,并确定所述ARP表项对应的转发芯片为所述出接口关联的转发芯片;或者,所述中央处理器获得各转发芯片关联的三层接口的数量,并利用各转发芯片关联的三层接口的数量,确定ARP表项对应的转发芯片;或者,所述中央处理器获得路由协议学习到路由的接口关联的转发芯片,并确定所述路由对应的ARP表项对应的转发芯片为所述接口关联的转发芯片。所述中央处理器获得所述ARP表项在每个转发芯片上对应的路由,具体包括:针对所述ARP表项下发的转发芯片,所述中央处理器获得所述ARP表项在该转发芯片上对应的第一路由,其中,所述第一路由包括的索引值为所述ARP表项的位置信息;针对所述ARP表项下发的转发芯片之外的其它每个转发芯片,所述中央处理器获得所述ARP表项在其它转发芯片上对应的第二路由,其中,所述第二路由包括的索引值为特定ARP表项的位置信息。所述转发芯片利用所述路由对应的ARP表项确定由本转发芯片或者其它转发芯片发送所述报文的过程,具体包括:当所述报文对应的路由包括的索引值为所述ARP表项的位置信息时,则所述转发芯片利用所述路由中包括的所述ARP表项的位置信息,查找到所述ARP表项,并利用所述ARP表项的出接口确定由本转发芯片发送所述报文;其中,所述ARP表项的出接口为指向其它设备的接口;或者,当所述报文对应的路由包括的索引值为特定ARP表项的位置信息时,则所述转发芯片利用所述路由中包括的所述特定ARP表项的位置信息,查找到所述特定ARP表项,并利用所述特定ARP表项的出接口确定由其它转发芯片发送所述报文;所述特定ARP表项的出接口为指向其它转发芯片的接口。所述转发芯片或者所述其它转发芯片利用所述路由对应的ARP表项发送所述报文的过程,具体包括:所述转发芯片或者所述其它转发芯片从所述路由对应的ARP表项中,获得出接口、目的媒体访问控制MAC地址和接口索引,并通过所述接口索引查询预先配置的接口索引表,得到所述接口索引对应的MAC地址;其中,所述接口索引表中预先记录了接口索引与MAC地址的对应关系;所述转发芯片或者所述其它转发芯片将所述报文的源MAC地址修改为所述接口索引对应的MAC地址,并将所述报文的目的MAC地址修改为获得的所述目的MAC地址,并通过所述出接口发送修改后的报文。本发明提供一种报文的传输装置,所述报文的传输装置应用在网络设备上,所述网络设备包括中央处理器和多个转发芯片,所述报文的传输装置具体包括处理模块、与多个转发芯片对应的多个转发模块,所述处理模块位于所述中央处理器内,且每个转发芯片内包括一个转发模块;其中:所述处理模块,用于确定地址解析协议ARP表项对应的转发芯片,并将所述ARP表项下发到所述转发芯片;获得所述ARP表项在每个转发芯片上对应的路由,并将获得的多个路由分别下发到对应的转发芯片;所述转发模块,用于在接收到报文时,获得所述报文对应的路由,并利用所述路由对应的ARP表项确定由转发模块所在的转发芯片或者其它转发芯片发送所述报文;如果确定由转发模块所在的转发芯片发送所述报文,则所述转发模块利用所述路由对应的ARP表项发送所述报文;如果确定由其它转发芯片发送所述报文,则所述转发模块将所述报文发送给其它转发芯片,由其它转发芯片内的转发模块利用所述路由对应的ARP表项发送所述报文。所述处理模块,具体用于在确定ARP表项对应的转发芯片的过程中,利用转发芯片的数量、ARP表项的数量、各转发芯片能够存储的最大ARP表项数量,确定ARP表项对应的转发芯片;或者,获得各转发芯片上存储的ARP表项的数量,并确定所述ARP表项对应的转发芯片为ARP表项的数量最少的转发芯片;或者,获得所述ARP表项对应的出接口关联的转发芯片,并确定所述ARP表项对应的转发芯片为所述出接口关联的转发芯片;或者,获得各转发芯片关联的三层接口的数量,并利用各转发芯片关联的三层接口的数量,确定ARP表项对应的转发芯片;或者,获得路由协议学习到路由的接口关联的转发芯片,并确定所述路由对应的ARP表项对应的转发芯片为所述接口关联的转发芯片。所述处理模块,具体用于在获得所述ARP表项在每个转发芯片上对应的路由的过程中,针对所述ARP表项下发的转发芯片,获得所述ARP表项在该转发芯片上对应的第一路由,其中,所述第一路由包括的索引值为所述ARP表项的位置信息;针对所述ARP表项下发的转发芯片之外的其它每个转发芯片,获得所述ARP表项在其它转发芯片上对应的第二路由,其中,所述第二路由包括的索引值为特定ARP表项的位置信息。所述转发模块,具体用于在利用所述路由对应的ARP表项确定由所述转发模块所在的转发芯片或者其它转发芯片发送所述报文的过程中,当所述报文对应的路由包括的索引值为所述ARP表项的位置信息时,则利用所述路由中包括的所述ARP表项的位置信息,查找到所述ARP表项,并利用所述ARP表项的出接口确定由所述转发模块所在的转发芯片发送所述报文;其中,所述ARP表项的出接口为指向其它设备的接口;或者,当所述报文对应的路由包括的索引值为特定ARP表项的位置信息时,则利用所述路由中包括的所述特定ARP表项的位置信息,查找到所述特定ARP表项,并利用所述特定ARP表项的出接口确定由其它转发芯片发送所述报文;其中,所述特定ARP表项的出接口为指向其它转发芯片的接口。所述转发模块,具体用于在利用所述路由对应的ARP表项发送所述报文的过程中,从所述路由对应的ARP表项中,获得出接口、目的媒体访问控制MAC地址和接口索引,并通过所述接口索引查询预先配置的接口索引表,得到所述接口索引对应的MAC地址;其中,所述接口索引表中预先记录了接口索引与MAC地址的对应关系;将所述报文的源MAC地址修改为所述接口索引对应的MAC地址,并将所述报文的目的MAC地址修改为当前获得的所述目的MAC地址,并通过所述出接口发送修改后的报文。基于上述技术方案,本发明实施例中,网络设备通过将ARP表项下发到多个转发芯片中的一个转发芯片,而不是将ARP表项下发到多个转发芯片中的每个转发芯片,从而可以利用所有转发芯片的资源,增加了转发芯片能够存储的ARP表项的数量。进一步的,还可以通过增加转发芯片的数量,来提高网络设备能够存储的ARP表项的数量。例如,每个转发芯片能够存储的ARP表项的数量为2万条时,通过在网络设备上配置5个转发芯片,使得所有的转发芯片能够存储的ARP表项的数量为10万条,当建立的ARP表项的数量为10万条时,则网络设备的所有转发芯片能够存储所有的ARP表项。附图说明图1是本发明一种实施方式中的应用场景的示意图;图2是本发明一种实施方式中的报文的传输方法的流程图;图3是本发明一种实施方式中的网络设备的硬件结构图;图4是本发明一种实施方式中的报文的传输装置的结构图。具体实施方式针对现有技术中存在的问题,本发明实施例中提出了一种报文的传输方法,该方法应用在网络设备上,该网络设备包括中央处理器和多个转发芯片,以图1为本发明实施例的应用场景示意图。其中,该中央处理器具体可以为CPU(CentralProcessingUnit,中央处理器)。在由多个单板组合的框式网络设备中,转发芯片具体可以为单板。在由多个盒式设备级联成的网络设备中,转发芯片具体可以为盒式设备。其中,在框式网络设备中,包括机框、电源、多个单板等,单板具体可以包括但不限于主控板、业务板、接口板等。主控板是一种带有中央处理器的特殊单板,用于控制整台框式网络设备,包括控制层面和数据层面两部分。业务板是一种带有中央处理器和转发芯片的处理业务转发的单板,该业务板的所有转发表项来自主控板,包括中央处理器转发和芯片转发两部分。接口板是只带有转发芯片的单板,只具备芯片转发功能。在级联成的网络设备中,级联设备可能有几个盒式设备或几个框式设备组成,即通过一种虚拟化技术将几台独立的设备虚拟成一台网络设备。在上述应用场景下,如图2所示,该报文的传输方法可以包括以下步骤:步骤201,中央处理器确定ARP表项对应的转发芯片,并将该ARP表项下发到该转发芯片。其中,针对多个ARP表项中的每个ARP表项,中央处理器确定该ARP表项对应的转发芯片,将该ARP表项下发到该转发芯片。本发明实施例中,可以采用分布式ARP表项存储方式,按照预设算法确定ARP表项对应的一个转发芯片,并将该ARP表项下发到该转发芯片,即不同的转发芯片会存储不同的ARP表项,不用每个转发芯片均存储所有ARP表项。通过网络设备的多个转发芯片,共同完成大容量的ARP表项存储。本发明实施例中,针对多个ARP表项中的每个ARP表项,中央处理器确定ARP表项对应的转发芯片的过程,具体可以包括但不限于如下方式:方式一,基于预设算法,中央处理器可以根据转发芯片的数量以及ARP表项的数量,确定ARP表项对应的转发芯片以及每个转发芯片上下发的ARP表项的数量,具体的预设算法可以根据实际需要任意设置,在此不再赘述。方式二,中央处理器利用转发芯片的数量、ARP表项的数量、各转发芯片能够存储的最大ARP表项数量,确定ARP表项对应的转发芯片。在该方式中,中央处理器可以根据各转发芯片的ARP表项规格(即转发芯片能够存储的最大ARP表项数量),转发芯片的数量、ARP表项的数量进行ARP表项对应的转发芯片的划分。例如,网络设备中的ARP表项的数量为100条,转发芯片的数量为3个,这3个转发芯片的ARP表项规格分别为80,40,60。基于此,在3个转发芯片下发的ARP表项的数量分别为(80/(80+40+60))*100,(40/(80+40+60))*100,(60/(80+40+60))*100。在该方式中,中央处理器是根据各个转发芯片的ARP表项的规格,占用所有转发芯片的ARP表项的总规格的比例,来为转发芯片分配ARP表项的,即中央处理器不考虑任何条件,随机分配ARP表项所要下发的转发芯片。方式三、中央处理器获得各转发芯片上存储的ARP表项的数量,并确定该ARP表项对应的转发芯片为ARP表项的数量最少的转发芯片。其中,当各转发芯片的ARP表项规格(即转发芯片能够存储的最大ARP表项数量)相同时,则中央处理器可以直接利用转发芯片的数量、ARP表项的数量,确定ARP表项对应的转发芯片,即中央处理器可以直接确定ARP表项对应的转发芯片为ARP表项的数量最少的转发芯片。方式四、中央处理器获得ARP表项对应的出接口关联的转发芯片,并确定该ARP表项对应的转发芯片为该出接口关联的转发芯片。其中,中央处理器可以根据学习到的ARP表项的出接口确定该ARP表项对应的转发芯片,即ARP表项优先被下发该出接口关联的转发芯片。其中,中央处理器可以判断出接口关联的转发芯片上存储的ARP表项的数量是否大于预设数值。当该出接口关联的转发芯片上存储的ARP表项的数量不大于预设数值时,则中央处理器可以确定该ARP表项对应的转发芯片为该出接口关联的转发芯片;当该出接口关联的转发芯片上存储的ARP表项的数量大于该预设数值时,则中央处理器采用其它方式确定ARP表项对应的转发芯片,如采用方式二或者方式三确定ARP表项对应的转发芯片。其中,ARP表项对应的出接口是指:当通过某出接口1接收到ARP请求报文时,则基于ARP请求报文生成的ARP表项对应的出接口为出接口1。其中,预设数值小于转发芯片能够存储的ARP表项的最大数量,预设数值可以根据实际经验任意设置,如设置为ARP表项的最大数量的80%。在该方式中,基于实际的网络规划,可以假定ARP表项对应的出接口关联的转发芯片上所连接的业务,使用本ARP表项的频率最高。方式五、中央处理器获得各转发芯片关联的三层接口的数量,并利用各转发芯片关联的三层接口的数量,确定ARP表项对应的转发芯片。中央处理器可以统计所有三层接口关联的转发芯片,各转发芯片关联的三层接口的数量,并将ARP表项优先下发给关联三层接口的数量最多的转发芯片,然后依次往后排。例如,网络设备中ARP表项的总数为100条,有3个转发芯片,这3个转发芯片关联的三层接口的数量分别为10个,5个,3个。基于此,根据各转发芯片关联三层接口的数量占总三层接口数量的比例,确定ARP表项对应的转发芯片,即在3个转发芯片下发的ARP表项的数量为(10/(10+5+3))*100,(5/(10+5+3))*100,(3/(10+5+3))*100。此外,方式五还可以与方式四结合起来使用,即中央处理器根据各转发芯片关联的三层接口的数量占总三层接口数量的比例,以及ARP表项优先下发出接口关联的转发芯片等规则,综合考虑ARP表项对应的转发芯片。方式六、中央处理器获得路由协议学习到路由的接口关联的转发芯片,并确定该路由对应的ARP表项对应的转发芯片为该接口关联的转发芯片。其中,在动态路由协议学习到路由时,还可以记录学习到路由的接口。在路由下发至系统内核时,可以根据学习到路由的接口关联的转发芯片以及路由对应的ARP表项,记录该ARP表项与该接口关联的转发芯片的对应关系,并确定该ARP表项对应的转发芯片为该接口关联的转发芯片。其中,如果通过方式六,中央处理器无法确定出ARP表项对应的转发芯片,则可以采用方式五确定出ARP表项对应的转发芯片。如果通过方式六,中央处理器确定出的ARP表项对应的转发芯片的数量为多个,则可以采用方式五从多个转发芯片中,确定出ARP表项对应的一个转发芯片。在该方式中,考虑了路由学习的因素,正常情况下,路由从哪个接口学习过来,则从这个接口上来的业务报文匹配这条路由的机率就很大。需要注意的是,在实际应用中,中央处理器可以实时的向转发芯片下发ARP表项,即中央处理器在得到一个ARP表项后,直接确定该一个ARP表项对应的转发芯片。中央处理器也可以批量的向转发芯片下发ARP表项,即中央处理器同一时间需要确定批量的ARP表项对应的转发芯片。针对上述方式一和方式二,可以适用于批量的向转发芯片下发ARP表项的应用场景。此外,针对上述方式一、方式二、方式三、方式四、方式五和方式六,可以适用于实时的向转发芯片下发ARP表项的应用场景,也可以适用于批量的向转发芯片下发ARP表项的应用场景。步骤202,中央处理器获得ARP表项在每个转发芯片上对应的路由,并将获得的每个路由分别下发到该路由对应的转发芯片。本发明实施例中,中央处理器获得ARP表项在每个转发芯片上对应的路由的过程,具体可以包括但不限于:针对ARP表项下发的转发芯片,中央处理器获得该ARP表项在该转发芯片上对应的第一路由,其中,该第一路由包括的索引值为该ARP表项的位置信息。针对ARP表项下发的转发芯片之外的其它每个转发芯片,中央处理器获得该ARP表项在其它转发芯片上对应的第二路由,其中,该第二路由包括的索引值为特定ARP表项的位置信息。其中,第一路由和第二路由只是为了区分不同转发芯片对应的不同路由。其中,中央处理器在获得路由时,路由的获得过程与ARP表项的获得过程是两个独立过程,二者不具备关联关系,即不需要基于ARP表项获得路由。上述ARP表项在每个转发芯片上对应的路由的表述,是由于在下发路由时,路由包括的索引值与ARP表项在相应的转发芯片的位置有关,并不代表该路由是基于ARP表项生成的。实际上,很多条路由可以共享ARP表项。其中,第一路由中并不仅限于索引值,还可以包括目的IP地址、下一跳地址、路由优先级等信息,第二路由中并不仅限于索引值,还可以包括目的IP地址、下一跳地址、路由优先级等信息,对于其它信息后续不再赘述。如图1所示,假设ARP表项1对应的转发芯片为转发芯片1,则ARP表项1被下发到转发芯片1。针对ARP表项1下发的转发芯片1,中央处理器获得ARP表项1在转发芯片1上对应的第一路由1,第一路由1包括的索引值为ARP表项1在转发芯片1的位置信息,如转发芯片1上包括100个ARP表项,ARP表项1在转发芯片1的位置信息可以为第15个ARP表项。针对转发芯片1之外的转发芯片2、转发芯片3和转发芯片4,中央处理器获得ARP表项1在其它转发芯片(如转发芯片2、转发芯片3和转发芯片4等)上对应的第二路由1,该第二路由1包括的索引值为特定ARP表项的位置信息,即特定ARP表项在其它转发芯片的位置信息。如其它转发芯片(如转发芯片2、转发芯片3和转发芯片4等)上包括100个ARP表项,特定ARP表项在其它转发芯片的位置信息可以为第1个ARP表项。需要注意的是,中央处理器需要在每个转发芯片上下发特定ARP表项,该特定ARP表项的出接口为指向其它转发芯片的接口。例如,在转发芯片1上下发特定ARP表项1、特定ARP表项2和特定ARP表项3,该特定ARP表项1的出接口为指向转发芯片2的接口,该特定ARP表项2的出接口为指向转发芯片3的接口,该特定ARP表项3的出接口为指向转发芯片4的接口。此外,还需要分别在转发芯片2、转发芯片3和转发芯片4上下发特定ARP表项,具体的下发过程与转发芯片1的下发过程类似,在此不再赘述。进一步的,中央处理器可以将第一路由1下发到转发芯片1上,并将相应的第二路由1分别下发到对应的转发芯片2、转发芯片3和转发芯片4上。步骤203,转发芯片在接收到报文时,获得该报文对应的路由,并利用该路由对应的ARP表项确定由本转发芯片或者其它转发芯片发送该报文。本发明实施例中,转发芯片利用路由对应的ARP表项确定由本转发芯片或者其它转发芯片发送报文的过程,具体可以包括但不限于如下方式:当该报文对应的路由包括的索引值为该ARP表项的位置信息时,则转发芯片利用该路由中包括的该ARP表项的位置信息,查找到该ARP表项,并利用该ARP表项的出接口确定由本转发芯片发送该报文;其中,该ARP表项的出接口为指向其它设备的接口。或者,当报文对应的路由包括的索引值为特定ARP表项的位置信息时,则转发芯片利用该路由中包括的特定ARP表项的位置信息,查找到特定ARP表项,并利用特定ARP表项的出接口确定由其它转发芯片发送该报文;其中,特定ARP表项的出接口为指向其它转发芯片的接口。其中,转发芯片在接收到报文时,利用该报文的目的IP地址查询本转发芯片维护的所有路由。如果没有匹配该报文的目的IP地址的路由,则无法获得该报文对应的路由,直接丢弃该报文。如果有匹配该报文的目的IP地址的路由,则获得匹配该报文的目的IP地址的路由,执行后续处理。如图1所示,转发芯片1在接收到匹配第一路由1的报文时,由于该第一路由1包括的索引值为ARP表项1在转发芯片1的位置信息(如第15个ARP表项),因此,转发芯片1利用该第一路由1中包括的ARP表项1的位置信息,查找到该ARP表项1。由于该ARP表项1的出接口为指向其它设备的接口,因此转发芯片1利用该ARP表项1的出接口确定由本转发芯片1发送该报文。转发芯片2在接收到匹配第二路由1的报文时,由于该第二路由1包括的索引值为特定ARP表项在转发芯片2的位置信息(如第1个ARP表项),因此,转发芯片2利用该第二路由1中包括的特定ARP表项的位置信息,查找到该特定ARP表项。由于该特定ARP表项的出接口为指向转发芯片1的接口,因此转发芯片2利用该特定ARP表项的出接口(即指向转发芯片1的接口)确定由由转发芯片1发送该报文。步骤204,如果由本转发芯片发送报文,则转发芯片利用路由对应的ARP表项发送该报文;如果由其它转发芯片发送报文,则转发芯片将该报文发送给其它转发芯片,由其它转发芯片利用路由对应的ARP表项发送该报文。本发明实施例中,转发芯片或者其它转发芯片利用路由对应的ARP表项发送报文的过程,具体可以包括但不限于如下方式:转发芯片或者其它转发芯片从路由对应的ARP表项中,获得出接口、目的MAC地址和接口索引,并通过该接口索引查询预先配置的接口索引表,得到该接口索引对应的MAC地址;其中,该接口索引表中预先记录了接口索引与MAC地址的对应关系。进一步的,转发芯片或者其它转发芯片将该报文的源MAC地址修改为该接口索引对应的MAC地址,并将该报文的目的MAC地址修改为当前从ARP表项中获得的目的MAC地址,并通过该出接口发送修改后的报文。其中,当网络设备存在多个出接口,且不同的出接口配置有不同的MAC地址时,可以预先在转发芯片上配置接口索引表,该接口索引表用于记录接口索引与MAC地址之间的对应关系,且该接口索引用于表示相应的出接口,且在ARP表项中记录了该出接口与该接口索引的对应关系。基于此,通过该接口索引查询预先配置的接口索引表,可以得到出接口对应的MAC地址。如图1所示,转发芯片1利用第一路由1包括的索引值(如第15个ARP表项)获得对应的ARP表项,即转发芯片1上的第15个ARP表项。转发芯片1从ARP表项1中获得出接口1、目的MAC地址1和接口索引1,通过接口索引1查询预先配置的接口索引表,得到接口索引1对应的MAC地址2。转发芯片1将报文的源MAC地址修改为MAC地址2,并将报文的目的MAC地址修改为目的MAC地址1,并通过出接口1发送修改后的报文。如图1所示,转发芯片2确定由转发芯片1发送报文时,基于该报文对应的路由包括的索引值找到特定ARP表项,并利用该特定ARP表项的出接口(即指向转发芯片1的接口),转发芯片2可以通过该接口将报文发送给转发芯片1。进一步的,在转发芯片2将该报文发送给转发芯片1之后,转发芯片1接收来自转发芯片2的报文。由于该报文匹配到第一路由1,且第一路由1包括的索引值为ARP表项1在转发芯片1的位置信息(如第15个ARP表项),因此,转发芯片1确定由本转发芯片1发送该报文。转发芯片1利用第一路由1包括的索引值(如第15个ARP表项)获得对应的ARP表项,即转发芯片1上的第15个ARP表项。转发芯片1从ARP表项1中获得出接口1、目的MAC地址1和接口索引1,通过接口索引1查询预先配置的接口索引表,得到接口索引1对应的MAC地址2。转发芯片1将报文的源MAC地址修改为MAC地址2,并将报文的目的MAC地址修改为目的MAC地址1,并通过出接口1发送修改后的报文。本发明实施例中,在创建ARP表项,并将ARP表项下发转发芯片之后,还可以在下发时告诉转发芯片此ARP表项是否有效,并记录此ARP表项在该转发芯片中的索引值。在向转发芯片下发路由时,基于此ARP表项在该转发芯片中的索引值,向不同的转发芯片所下发的路由中会包括不同的ARP表项的索引值,具体过程已经在上面描述,在此不再赘述。本发明实施例中,在ARP表项由无效到有效或由有效到无效时,还可以根据记录的ARP表项的索引值更新转发芯片中的ARP表项。本发明实施例中,可以根据路由的出接口和下一跳查找和其关联的ARP表项,如果查找到,则根据路由信息和ARP表项的索引值,下发路由到转发芯片。如果没有查找到,则先根据出接口和下一跳创建ARP表项,并下发ARP表项到转发芯片,记录ARP表项在转发芯片中的索引值,然后根据路由信息和ARP表项的索引值,下发路由到转发芯片。基于上述技术方案,本发明实施例中,网络设备通过将ARP表项下发到多个转发芯片中的一个转发芯片,而不是将ARP表项下发到多个转发芯片中的每个转发芯片,从而可以利用所有转发芯片的资源,增加了转发芯片能够存储的ARP表项的数量。进一步的,还可以通过增加转发芯片的数量,来提高网络设备能够存储的ARP表项的数量。例如,每个转发芯片能够存储的ARP表项的数量为2万条时,通过在网络设备上配置5个转发芯片,使得所有的转发芯片能够存储的ARP表项的数量为10万条,当建立的ARP表项的数量为10万条时,则网络设备的所有转发芯片能够存储所有的ARP表项。基于与上述方法同样的发明构思,本发明实施例中还提供一种报文的传输装置,该报文的传输装置应用在网络设备上,该网络设备包括中央处理器和多个转发芯片,该报文的传输装置具体包括处理模块、与多个转发芯片对应的多个转发模块,该处理模块位于中央处理器内,且每个转发芯片内包括一个转发模块。其中,该报文的传输装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的网络设备的中央处理器,将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本发明提出的报文的传输装置所在的网络设备的一种硬件结构图,该网络设备可以包括中央处理器、网络接口、内存、非易失性存储器、负责处理报文的转发芯片等;从硬件结构上来讲,该网络设备还可能是分布式设备。如图4所示,为本发明实施例中提出的报文的传输装置的结构图,所述报文的传输装置具体可以包括:处理模块和转发模块;其中:所述处理模块11,用于确定地址解析协议ARP表项对应的转发芯片,并将所述ARP表项下发到所述转发芯片;获得所述ARP表项在每个转发芯片上对应的路由,并将获得的多个路由分别下发到对应的转发芯片;所述转发模块12,用于在接收到报文时,获得所述报文对应的路由,并利用所述路由对应的ARP表项确定由转发模块所在的转发芯片或者其它转发芯片发送所述报文;如果确定由转发模块所在的转发芯片发送所述报文,则所述转发模块利用所述路由对应的ARP表项发送所述报文;如果确定由其它转发芯片发送所述报文,则所述转发模块将所述报文发送给其它转发芯片,由其它转发芯片内的转发模块利用所述路由对应的ARP表项发送所述报文。所述处理模块11,具体用于在确定ARP表项对应的转发芯片的过程中,利用转发芯片的数量、ARP表项的数量、各转发芯片能够存储的最大ARP表项数量,确定ARP表项对应的转发芯片;或者,获得各转发芯片上存储的ARP表项的数量,并确定所述ARP表项对应的转发芯片为ARP表项的数量最少的转发芯片;或者,获得所述ARP表项对应的出接口关联的转发芯片,并确定所述ARP表项对应的转发芯片为所述出接口关联的转发芯片;或者,获得各转发芯片关联的三层接口的数量,并利用各转发芯片关联的三层接口的数量,确定ARP表项对应的转发芯片;或者,获得路由协议学习到路由的接口关联的转发芯片,并确定所述路由对应的ARP表项对应的转发芯片为所述接口关联的转发芯片。所述处理模块11,具体用于在获得所述ARP表项在每个转发芯片上对应的路由的过程中,针对所述ARP表项下发的转发芯片,获得所述ARP表项在该转发芯片上对应的第一路由,其中,所述第一路由包括的索引值为所述ARP表项的位置信息;针对所述ARP表项下发的转发芯片之外的其它每个转发芯片,获得所述ARP表项在其它转发芯片上对应的第二路由,其中,所述第二路由包括的索引值为特定ARP表项的位置信息。所述转发模块12,具体用于在利用所述路由对应的ARP表项确定由所述转发模块所在的转发芯片或者其它转发芯片发送所述报文的过程中,当所述报文对应的路由包括的索引值为所述ARP表项的位置信息时,则利用所述路由中包括的所述ARP表项的位置信息,查找到所述ARP表项,并利用所述ARP表项的出接口确定由所述转发模块所在的转发芯片发送所述报文;其中,所述ARP表项的出接口为指向其它设备的接口;或者,当所述报文对应的路由包括的索引值为特定ARP表项的位置信息时,则利用所述路由中包括的所述特定ARP表项的位置信息,查找到所述特定ARP表项,并利用所述特定ARP表项的出接口确定由其它转发芯片发送所述报文;其中,所述特定ARP表项的出接口为指向其它转发芯片的接口。所述转发模块12,具体用于在利用所述路由对应的ARP表项发送所述报文的过程中,从所述路由对应的ARP表项中,获得出接口、目的媒体访问控制MAC地址和接口索引,并通过所述接口索引查询预先配置的接口索引表,得到所述接口索引对应的MAC地址;其中,所述接口索引表中预先记录了接口索引与MAC地址的对应关系;将所述报文的源MAC地址修改为所述接口索引对应的MAC地址,并将所述报文的目的MAC地址修改为当前获得的所述目的MAC地址,并通过所述出接口发送修改后的报文。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1