CN113225258B - 一种报文转发方法、装置、网络设备及系统 - Google Patents

一种报文转发方法、装置、网络设备及系统 Download PDF

Info

Publication number
CN113225258B
CN113225258B CN202010081309.3A CN202010081309A CN113225258B CN 113225258 B CN113225258 B CN 113225258B CN 202010081309 A CN202010081309 A CN 202010081309A CN 113225258 B CN113225258 B CN 113225258B
Authority
CN
China
Prior art keywords
path
hash
message
target
hash table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010081309.3A
Other languages
English (en)
Other versions
CN113225258A (zh
Inventor
王永灿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010081309.3A priority Critical patent/CN113225258B/zh
Publication of CN113225258A publication Critical patent/CN113225258A/zh
Application granted granted Critical
Publication of CN113225258B publication Critical patent/CN113225258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种报文转发方法、装置、网络设备及系统,该报文转发方法包括:获取待转发的目标报文的报文信息和目标报文的传入路径;根据报文信息确定目标报文的传出路径;在传入路径和传出路径相同的情况下,重新确定目标报文的传出路径;通过重新确定的传出路径转发目标报文。

Description

一种报文转发方法、装置、网络设备及系统
技术领域
本发明涉及网络技术领域,更具体地,涉及一种报文转发方法、一种报文转发装置、一种网络设备、一种计算机可读存储介质及一种报文转发系统。
背景技术
在数据中心网络中,通常使用动态路由协议来通告路径的更新,而多个设备间路由更新的生效时间存在时间差,导致存在瞬时的路由环路。路由环路会导致报文的回传,从而引发网络风暴,在RDMA(Remote Direct Memory Access,远程直接数据存取)等网络中,更会引发PFC(Priority-based Flow Control,基于优先级的流量控制)死锁(dead lock),导致网络瘫痪。
例如,在如图1所示的数据中心网络中,包括接入交换机、汇聚交换机、服务器。对于目的地址为服务器的报文,正常情况的转发路径为接入交换机1→汇聚交换机1→服务器。当汇聚交换机1与服务器之间的链路发生故障,由于汇聚交换机1最先感知到该故障,因此汇聚交换机1首先修改路由为指向接入交换机。由于接入交换机更晚感知到故障,因此接入交换机的路由还没来得及更新前,报文仍然会向接入交换机1发送。汇聚交换机1在收到报文后,由于路由已经更新为指向接入交换机,且有两个下一跳(包括接入交换机1和接入交换机2),因此需要通过哈希算法计算出下一跳。如果在汇聚交换机1上通过哈希计算得到的下一跳为接入交换机1,即将报文发送至接入交换机1,则报文发生了回送,将会产生网络风暴(流量转发路径为:接入交换机1→汇聚交换机1→接入交换机1→汇聚交换机1→接入交换机1)。如果在汇聚交换机1上通过哈希计算得到的下一跳为接入交换机2,即将报文发送至接入交换机2,接入交换机2将再次通过哈希算法计算出对应的下一跳,由于接入交换机1和接入交换机2一般为同一款交换机,路由相同时对同一条报文的哈希计算的结果相同,因此接入交换机2上通过哈希计算得到的下一跳还将为汇聚交换机1,即会将报文回送至汇聚交换机1,因此也会产生网络风暴(流量转发路径为:接入交换机1→汇聚交换机1→接入交换机2→汇聚交换机1→接入交换机2→汇聚交换机1)。
发明内容
本发明的一个目的是提供一种防止产生网络风暴的转发流量的新技术方案。
根据本发明的第一方面,提供了一种报文转发方法,包括:
获取待转发的目标报文的报文信息和所述目标报文的传入路径;
根据所述报文信息确定所述目标报文的传出路径;
在所述传入路径和所述传出路径相同的情况下,重新确定所述目标报文的传出路径;
通过重新确定的传出路径转发所述目标报文。
可选的,所述根据所述报文信息确定所述目标报文的传出路径包括:
获取预设的存储有多个等价路径的第一哈希表;
根据预设的第一哈希算法对所述报文信息进行哈希计算,得到第一哈希结果;
根据所述第一哈希结果从所述第一哈希表中选取所述目标报文的传出路径。
可选的,所述重新确定所述目标报文的传出路径包括:
获取预设的对应所述传入路径的第二哈希表;其中,所述第二哈希表中不包含所述传入路径;
根据所述第一哈希结果从所述第二哈希表中重新选取所述目标报文的传出路径。
可选的,所述根获取预设的对应所述传入路径的第二哈希表包括:
从所述第一哈希表的等价路径中排除所述传入路径,得到对应所述传入路径的所述第二哈希表。
可选的,所述重新确定所述目标报文的传出路径包括:
根据预设的第二哈希算法对所述报文信息重新进行哈希计算,得到第二哈希结果;
根据所述第二哈希结果从所述第一哈希表中重新选取所述目标报文的传出路径。
可选的,还包括:
在重新确定的传出路径与所述传入路径相同的情况下,丢弃所述目标报文。
可选的,所述根据所述第一哈希结果从所述第一哈希表中选取所述目标报文的传出路径包括:
确定所述第一哈希表中所包含的等价路径的数量;
对所述第一哈希结果和所述数量进行取模计算,得到余数;
根据所述余数从所述第一哈希表中选取所述目标报文的传出路径。
根据本发明的第二方面,提供了一种报文转发方法,包括:
获取待转发的目标报文的报文信息和所述目标报文的传入路径;
根据预设的第一哈希算法对所述报文信息进行哈希计算,得到第一哈希结果;
根据所述第一哈希结果从预设的存储有多个等价路径的第一哈希表中选取所述目标报文的传出路径;
在所述传入路径和所述传出路径相同的情况下,根据所述第一哈希结果从预设的对应所述传入路径的第二哈希表中重新选取所述目标报文的传出路径;其中,所述第二哈希表中不包含所述传入路径;
通过重新确定的传出路径转发所述目标报文。
根据本发明的第三方面,提供了一种报文转发装置,包括:
报文获取模块,用于获取待转发的目标报文的报文信息和所述目标报文的传入路径;
第一路径确定模块,用于根据所述报文信息确定所述目标报文的传出路径;
第二路径确定模块,用于在所述传入路径和所述传出路径相同的情况下,重新确定所述目标报文的传出路径;以及,
报文转发模块,用于通过重新确定的传出路径转发所述目标报文。
根据本发明的第四方面,提供了一种网络设备,包括:
根据本发明第三方面所述的装置;或者,
处理器和存储器,所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据本发明第一方面或第二方面所述的方法。
根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如本发明第一方面或第二方面所述的方法。
根据本发明的第五方面,提供了一种报文转发系统,包括:
服务器;
第一级交换机,与所述服务器连接,用于获取目标报文的报文信息和所述目标报文的传入路径;根据所述报文信息确定所述目标报文的传出路径;在所述传入路径和所述传出路径相同的情况下,重新确定所述目标报文的传出路径;通过重新确定的传出路径转发所述目标报文,以将所述目标报文转发至所述服务器中;
第二级交换机,与所述第一级交换机连接,用于将所述目标报文信息转发至所述第一级交换机中。
通过本实施例的方法,在第一次确定的传出路径与目标报文的传入路径相同的情况下,通过重新确定传出路径,可以避免在网络设备选中目标报文的传入路径发出的情况产生报文回传的问题,可以避免产生网络风暴。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1示出了现有技术中报文转发方式示意图。
图2示出了可用于实现本发明的实施例的网络设备的硬件配置的例子的框图。
图3示出了本发明的实施例的报文转发方法的流程图。
图4示出了本发明的实施例的确定传出路径的步骤的流程图。
图5a示出了第二哈希表的示意图。
图5b示出了本发明的实施例的数据中心网络的示意图。
图6示出了本发明实施例的报文转发方法的一个例子的流程图。
图7示出了本发明实施例的报文转发方法的另一个例子的流程图。
图8示出了本发明的实施例的报文转发装置的框图。
图9示出了本发明的实施例的网络设备的框图。
图10示出了本发明的实施例的报文转发系统的框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图2是示出可以实现本发明的实施例的网络设备1000的硬件配置的框图。
网络设备1000可以是便携式电脑、台式计算机、手机、平板电脑等。如图2所示,网络设备1000可以包括处理器1100、存储器1200。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。
图2所示的网络设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,网络设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明实施例提供的任意一项报文转发方法。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<方法实施例一>
在本实施例中,提供一种报文转发方法。该报文转发方法可以是由网络设备实施。具体的,可以是由如图2所示的网络设备1000实施。
在本实施例中,报文转发方法可以如图3所示,包括步骤S3100~S3400。
步骤S3100,获取待转发的目标报文的报文信息和目标报文的传入路径。
报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。
具体可以是解析该目标报文,得到目标报文的报文信息,具体包括源IP地址、源端口、目的IP地址、目的端口和传输层协议。
对于执行本发明的报文转发方法的网络设备而言,可以是具有多个等价路径可以用于转发目标报文。其等价路径可以是根据该网络设备所在的数据中心网络的连接关系预先确定的。
进一步地,如果数据中心网络中存在路径故障,可以是更新数据中心网络中每个网络设备的等价路径。
步骤S3200,根据报文信息确定目标报文的传出路径。
在本发明的一个实施例中,根据报文信息确定目标报文的传出路径可以包括如图4所示的步骤S3210~S3230:
步骤S3210,获取预设的存储有多个等价路径的第一哈希表。
具体的,该第一哈希表中,可以是存储有该网络设备用于转发目标报文的所有等价路径。
在一个实施例中,在该第一哈希表中,每个等价路径可以具有对应的编号。例如,第一哈希表中等价路径的数量为n,那么,等价路径可以是按照1~n进行编号。每个编号均具有唯一对应的等价路径。
在另一个实施例中,每个等价路径可以是分别设置在第一哈希表中的对应位置上。
步骤S3220,根据预设的第一哈希算法对报文信息进行哈希计算,得到第一哈希结果。
在本发明的一个实施例中,可以是从报文信息中提取参与哈希计算的关键字段,即哈希因子。再基于哈希因子,利用第一哈希算法进行计算,得到第一哈希结果。哈希因子可以是源IP地址、源端口、目的IP地址、目的端口和传输层协议中的至少一种。
哈希算法是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
第一哈希算法例如可以是MD4、MD5、SHA-1、crc32和crc16中的任意一种。
步骤S3230,根据第一哈希结果从第一哈希表中选取目标报文的传出路径。
在本发明的一个实施例中,根据第一哈希结果从第一哈希表中选取目标报文的传出路径的步骤可以进一步包括如下所示的步骤S3231~S3233:
步骤S3231,确定第一哈希表中所包含的等价路径的数量。
具体的,该第一哈希表中可以是存储有该网络设备用于转发目标报文的所有等价路径。对应的,该数量可以是该网络设备用于转发目标报文的所有等价路径的数量。
步骤S3232,对第一哈希结果和该数量进行取模计算,得到余数。
在一个实施例中,该第一哈希结果为m,第一哈希表中所包含的等价路径的数量为n,那么,该余数r的计算方式可以为r=m%n。
例如,该第一哈希结果为15,第一哈希表中所包含的等价路径的数量为6,那么,该余数可以为15%6=3。
步骤S3233,根据该余数从第一哈希表中选取目标报文的传出路径。
在第一哈希表中的每个等价路径具有对应的编号的实施例中,可以是从第一哈希表中查找编号为余数r的等价路径,作为目标报文的传出路径。
在每个等价路径分别设置在第一哈希表中的对应位置上的实施例中,可以是从第一哈希表中查找与余数r对应的位置上存储的等价路径,作为目标报文的传出路径。
步骤S3300,在传入路径和传出路径相同的情况下,重新确定目标报文的传出路径。
在本发明的一个实施例中,重新确定目标报文的传出路径的方式可以包括如下所示的步骤S3311~S3312:
步骤S3311,获取预设的对应传入路径的第二哈希表,其中,第二哈希表中不包含该传入路径。
在一个实施例中,可以是从第一哈希表的等价路径中排除该传入路径,得到对应该传入路径的第二哈希表。
例如,在如图5a所示的例子中,在第一哈希表中的等价路径包括路径1、路径2、路径3和路径4。如果目标报文通过路径1传入该网络设备,那么,对应于路径1的第二哈希表中的等价路径可以包括路径2、路径3和路径4。如果目标报文通过路径2传入该网络设备,那么,对应于路径2的第二哈希表中的等价路径可以包括路径1、路径3和路径4。如果目标报文通过路径3传入该网络设备,那么,对应于路径3的第二哈希表中的等价路径可以包括路径1、路径2和路径4。如果目标报文通过路径4传入该网络设备,那么,对应于路径4的第二哈希表中的等价路径可以包括路径1、路径2和路径3。
步骤S3312,根据第一哈希结果从第二哈希表中重新选取目标报文的传出路径。
在本发明的一个实施例中,可以是确定第二哈希表中所包含的等价路径的数量;对第一哈希结果和该数量进行取模计算,得到余数;根据该余数从第二哈希表中选取目标报文的传出路径。
在第二哈希表中的每个等价路径具有对应的编号的实施例中,可以是从第二哈希表中查找编号为该余数的等价路径,作为目标报文的传出路径。
在每个等价路径分别设置在第二哈希表中的对应位置上的实施例中,可以是从第二哈希表中查找与该余数对应的位置上存储的等价路径,作为目标报文的传出路径。
在本实施例中,由于第二哈希表中不包含传入路径,因此,重新确定的传出路径不可能与传入路径相同。
通过本实施例,目标报文按照预期的传出路径转发,完全可以避免在网络设备选中目标报文的传入路径发出的情况产生报文回传的问题,这样,就不会产生网络风暴,而且也不会导致目标报文丢失。
在本发明的另一个实施例中,重新确定目标报文的传出路径的方式可以包括如下所示的步骤S3321~S3322:
步骤S3321,根据预设的第二哈希算法对报文信息重新进行哈希计算,得到第二哈希结果。
具体的,该第二哈希算法和第一哈希算法不同。目标报文的报文信息在不同的哈希算法下进行哈希计算,大概率会得到不同的哈希结果,即大概率会得到不同于第一哈希结果的第二哈希结果。
步骤S3322,根据第二哈希结果从第一哈希表中重新选取目标报文的传出路径。
第二哈希结果和第一哈希结果不同,那么,根据第二哈希结果从第一哈希表中重新选取目标报文的传出路径、与根据第一哈希结果从第一哈希表中选取目标报文的传出路径也不同。
这样,可以减少网络设备选中目标报文的传入路径发出的情况产生报文回传的问题,降低网络风暴的产生概率。
在本实施例中,如果根据第二哈希结果从第一哈希表中重新选取目标报文的传出路径与传入路径依然相同,则可以丢弃目标报文。
这样,可以防止在传入路径和传出路径相同时,产生网络风暴的问题。同时,通过不同的哈希算法对目标报文的报文信息进行哈希计算,可以降低传出路径与传入路径相同的概率,进而可以降低报文的丢包率。
步骤S3400,通过重新确定的传出路径转发目标报文。
在本发明的实施例中,在第一次确定的传出路径与目标报文的传入路径相同的情况下,通过重新确定传出路径,可以避免在网络设备选中目标报文的传入路径发出的情况产生报文回传的问题,可以避免产生网络风暴。
<例子1>
图6为一个例子的报文转发方法的流程图。该例子以图5b所示的数据网络中心为例进行说明。具体的,报文转发方法可以是由数据网络中心的任一网络设备所实施,本例以网络设备2-2为例进行说明。
图5b所示的数据网络中心可以是应用在云计算场景下,网络设备1-1、网络设备1-2、网络设备1-3和网络设备1-4可以是转入交换机(PSW),网络设备2-1、网络设备2-2、网络设备2-3和网络设备2-4可以是汇聚交换机(ASW),网络设备3可以是服务器。目标报文可以是云计算场景中用户请求的流量,通过将目标报文发送给服务器,由服务器的计算设备执行相应的计算操作。
如图6所示,该报文转发方法包括如下所示的步骤:
步骤S6001,获取待转发的目标报文的报文信息和目标报文的传入路径。
在如图5b所示的数据中心网络中,目标报文的目的地址可以为网络设备3。可以是网络设备1-2将目标报文转发至网络设备2-2中。那么,目标报文信息的传入路径可以是网络设备1-2和网络设备2-2之间的路径。
步骤S6002,获取预设的存储有多个等价路径的第一哈希表。
在该第一哈希表中,根据目标报文的目的地址——网络设备3得到的、存储在第一哈希表中的等价路径可以包括:网络设备2-2与网络设备1-1之间的路径、网络设备2-2与网络设备1-2之间的路径、网络设备2-2与网络设备1-3之间的路径、网络设备2-2与网络设备1-4之间的路径。
步骤S6003,根据预设的第一哈希算法对报文信息进行哈希计算,得到第一哈希结果。
步骤S6004,根据第一哈希结果从第一哈希表中选取目标报文的传出路径。
步骤S6005,在传入路径和传出路径相同的情况下,获取预设的对应传入路径的第二哈希表,其中,第二哈希表中不包含该传入路径。
如果根据第一哈希结果从第一哈希表中选取的传出路径与目标报文的传入路径相同,即传出路径为网络设备2-2与网络设备1-2之间的路径,则获取该传入路径对应的第二哈希表。该第二哈希表中的等价路径可以包括:网络设备2-2与网络设备1-1之间的路径、网络设备2-2与网络设备1-3之间的路径、网络设备2-2与网络设备1-4之间的路径。
步骤S6006,根据第一哈希结果从第二哈希表中重新选取目标报文的传出路径。
步骤S6007,通过重新确定的传出路径转发目标报文。
由于第二哈希表中不包含传入路径,因此,重新选取的传出路径与传入路径不可能相同。这样,就可以有效避免发生报文回传的问题,避免产生网络风暴。
<例子2>
图7为另一个例子的报文转发方法的流程图。该例子以图5b所示的数据网络中心为例进行说明。具体的,报文转发方法可以是由数据网络中心的任一网络设备所实施,本例以网络设备1-3为例进行说明。
如图7所示,该报文转发方法包括如下所示的步骤:
步骤S7001,获取待转发的目标报文的报文信息和目标报文的传入路径。
在如图5b所示的数据中心网络中,目标报文的目的地址可以为网络设备3。可以是网络设备2-2将目标报文转发至网络设备1-3中。那么,目标报文信息的传入路径可以是网络设备2-2和网络设备1-3之间的路径。
步骤S7002,获取预设的存储有多个等价路径的第一哈希表。
在该第一哈希表中,根据目标报文的目的地址——网络设备3得到的、存储在第一哈希表中的等价路径可以包括:网络设备1-3与网络设备2-1之间的路径、网络设备1-3与网络设备2-2之间的路径、网络设备1-3与网络设备2-3之间的路径、网络设备1-3与网络设备2-4之间的路径。
步骤S7003,根据预设的第一哈希算法对报文信息进行哈希计算,得到第一哈希结果。
步骤S7004,根据第一哈希结果从第一哈希表中选取目标报文的传出路径。
步骤S7005,在传入路径和传出路径相同的情况下,根据预设的第二哈希算法对报文信息重新进行哈希计算,得到第二哈希结果。
如果根据第一哈希结果从第一哈希表中选取的传出路径与目标报文的传入路径相同,即传出路径为网络设备2-2和网络设备1-3之间的路径,则根据第二哈希算法重新对报文信息进行哈希计算。
该第二哈希算法和第一哈希算法不同。目标报文的报文信息在不同的哈希算法下进行哈希计算,大概率会得到不同的哈希结果,即大概率会得到不同于第一哈希结果的第二哈希结果。
步骤S7006,根据第二哈希结果从第一哈希表中重新选取目标报文的传出路径。
第二哈希结果和第一哈希结果不同,那么,根据第二哈希结果从第一哈希表中重新选取目标报文的传出路径、与根据第一哈希结果从第一哈希表中选取目标报文的传出路径也不同。
步骤S7007,通过重新确定的传出路径转发目标报文。
<方法实施例二>
在本实施例中,提供一种报文转发方法。该报文转发方法可以是由网络设备实施。具体的,可以是由如图2所示的网络设备1000实施。
在本实施例中,报文转发方法可以包括如下所示的步骤S8100~S8500。
步骤S8100,获取待转发的目标报文的报文信息和所述目标报文的传入路径。
该步骤S8100可以参照前述的步骤S3100,在此不再赘述。
步骤S8200,根据预设的第一哈希算法对所述报文信息进行哈希计算,得到第一哈希结果。
该步骤S8200可以参照前述的步骤S3220,在此不再赘述。
步骤S8300,根据所述第一哈希结果从预设的存储有多个等价路径的第一哈希表中选取所述目标报文的传出路径。
该步骤S8300可以参照前述的步骤S3230,在此不再赘述。
步骤S8400,在所述传入路径和所述传出路径相同的情况下,根据所述第一哈希结果从预设的对应所述传入路径的第二哈希表中重新选取所述目标报文的传出路径;其中,所述第二哈希表中不包含所述传入路径。
该步骤S8400可以参照前述的步骤S3311~S3312,在此不再赘述。
步骤S8500,通过重新确定的传出路径转发所述目标报文。
该步骤S8500可以参照前述的步骤S3400,在此不再赘述。
<装置实施例>
在本实施例中,提供一种报文转发装置8000,如图8所示,包括报文获取模块8100、第一路径确定模块8200、第二路径确定模块8300和报文转发模块8400。该报文获取模块8100用于获取待转发的目标报文的报文信息和目标报文的传入路径;该第一路径确定模块8200用于根据报文信息确定目标报文的传出路径;该第二路径确定模块8300用于在传入路径和传出路径相同的情况下,重新确定目标报文的传出路径;该报文转发模块8400用于通过重新确定的传出路径转发目标报文。
在本发明的一个实施例中,第一路径确定模块8200还用于:
获取预设的存储有多个等价路径的第一哈希表;
根据预设的第一哈希算法对报文信息进行哈希计算,得到第一哈希结果;
根据第一哈希结果从第一哈希表中选取目标报文的传出路径。
在本发明的一个实施例中,根据第一哈希结果从第一哈希表中选取目标报文的传出路径包括:
确定第一哈希表中所包含的等价路径的数量;
对第一哈希结果和数量进行取模计算,得到余数;
根据余数从第一哈希表中选取目标报文的传出路径。
在本发明的一个实施例中,重新确定目标报文的传出路径包括:
获取预设的对应传入路径的第二哈希表;其中,第二哈希表中不包含传入路径;
根据第一哈希结果从第二哈希表中重新选取目标报文的传出路径。
在本发明的一个实施例中,根获取预设的对应传入路径的第二哈希表包括:
从第一哈希表的等价路径中排除传入路径,得到对应传入路径的第二哈希表。
在本发明的一个实施例中,重新确定目标报文的传出路径包括:
根据预设的第二哈希算法对报文信息重新进行哈希计算,得到第二哈希结果;
根据第二哈希结果从第一哈希表中重新选取目标报文的传出路径。
在本发明的一个实施例中,报文转发装置8000还可以包括:
用于在重新确定的传出路径与传入路径相同的情况下,丢弃目标报文的模块。
本领域技术人员应当明白,可以通过各种方式来实现报文转发装置8000。例如,可以通过指令配置处理器来实现报文转发装置8000。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现报文转发装置8000。例如,可以将报文转发装置8000固化到专用器件(例如ASIC)中。可以将报文转发装置8000分成相互独立的单元,或者可以将它们合并在一起实现。报文转发装置8000可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
在本实施例中,报文转发装置8000可以具有多种实现形式,例如,报文转发装置8000可以是任何的提供网络访问服务的软件产品或者应用程序中运行的功能模块,或者是这些软件产品或者应用程序的外设嵌入件、插件、补丁件等,还可以是这些软件产品或者应用程序本身。
<网络设备实施例>
在本实施例中,还提供一种网络设备,在一方面,该网络设备可以包括前述的报文转发装置6000。
在另一方面,如图9所示,该网络设备9000可以包括存储器9100和处理器9200。该存储器9100用于存储指令;该指令用于控制处理器9200执行本发明任意实施例中提供的报文转发方法。
在本实施例中,该网络设备9000可以是路由器、交换机等任意具有对应的存储器9100以及处理器9200的网络设备。
在本实施例中,网络设备9000还可以包括其他的硬件装置,例如,可以是如图2所示的网络设备1000。
在本发明的一个实施例中,存储器9100和处理器9200可以是集成在一网络处理芯片中。
<计算机可读存储介质实施例>
在本实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现如本发明任意实施例的报文转发方法。
<报文转发系统实施例>
在本实施例中,该提供了一种报文转发系统,如图10所示,可以包括:
服务器1001;
第一级交换机1002,与服务器1001连接,用于获取目标报文的报文信息和目标报文的传入路径;根据报文信息确定目标报文的传出路径;在传入路径和传出路径相同的情况下,重新确定目标报文的传出路径;通过重新确定的传出路径转发目标报文,以将目标报文转发至服务器1001中;
第二级交换机1003,与第一级交换机连接,用于将目标报文信息转发至第一级交换机1002中。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (10)

1.一种报文转发方法,包括:
获取待转发的目标报文的报文信息和所述目标报文的传入路径;
根据所述报文信息确定所述目标报文的传出路径;
在所述传入路径和所述传出路径相同的情况下,重新确定所述目标报文的传出路径;
通过重新确定的传出路径转发所述目标报文,
其中,所述根据所述报文信息确定所述目标报文的传出路径包括:
获取预设的存储有多个等价路径的第一哈希表;
根据预设的第一哈希算法对所述报文信息进行哈希计算,得到第一哈希结果;
根据所述第一哈希结果从所述第一哈希表中选取所述目标报文的传出路径,
其中,所述重新确定所述目标报文的传出路径包括:
获取预设的对应所述传入路径的第二哈希表;其中,所述第二哈希表中不包含所述传入路径;
根据所述第一哈希结果从所述第二哈希表中重新选取所述目标报文的传出路径。
2.根据权利要求1所述的方法,所述获取预设的对应所述传入路径的第二哈希表包括:
从所述第一哈希表的等价路径中排除所述传入路径,得到对应所述传入路径的所述第二哈希表。
3.根据权利要求1所述的方法,所述重新确定所述目标报文的传出路径包括:
根据预设的第二哈希算法对所述报文信息重新进行哈希计算,得到第二哈希结果;
根据所述第二哈希结果从所述第一哈希表中重新选取所述目标报文的传出路径。
4.根据权利要求3所述的方法,还包括:
在重新确定的传出路径与所述传入路径相同的情况下,丢弃所述目标报文。
5.根据权利要求1所述的方法,所述根据所述第一哈希结果从所述第一哈希表中选取所述目标报文的传出路径包括:
确定所述第一哈希表中所包含的等价路径的数量;
对所述第一哈希结果和所述数量进行取模计算,得到余数;
根据所述余数从所述第一哈希表中选取所述目标报文的传出路径。
6.一种报文转发方法,包括:
获取待转发的目标报文的报文信息和所述目标报文的传入路径;
根据预设的第一哈希算法对所述报文信息进行哈希计算,得到第一哈希结果;
根据所述第一哈希结果从预设的存储有多个等价路径的第一哈希表中选取所述目标报文的传出路径;
在所述传入路径和所述传出路径相同的情况下,根据所述第一哈希结果从预设的对应所述传入路径的第二哈希表中重新选取所述目标报文的传出路径;其中,所述第二哈希表中不包含所述传入路径;
通过重新确定的传出路径转发所述目标报文。
7.一种报文转发装置,包括:
报文获取模块,用于获取待转发的目标报文的报文信息和所述目标报文的传入路径;
第一路径确定模块,用于根据所述报文信息确定所述目标报文的传出路径;
第二路径确定模块,用于在所述传入路径和所述传出路径相同的情况下,重新确定所述目标报文的传出路径;以及,
报文转发模块,用于通过重新确定的传出路径转发所述目标报文,
其中,所述第一路径确定模块还用于:
获取预设的存储有多个等价路径的第一哈希表;
根据预设的第一哈希算法对所述报文信息进行哈希计算,得到第一哈希结果;
根据所述第一哈希结果从所述第一哈希表中选取所述目标报文的传出路径,
其中,所述重新确定所述目标报文的传出路径包括:
获取预设的对应所述传入路径的第二哈希表;其中,所述第二哈希表中不包含所述传入路径;
根据所述第一哈希结果从所述第二哈希表中重新选取所述目标报文的传出路径。
8.一种网络设备,包括:
根据权利要求7所述的装置;或者,
处理器和存储器,所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至6中任一项所述的方法。
10.一种报文转发系统,包括:
服务器;
第一级交换机,与所述服务器连接,用于获取目标报文的报文信息和所述目标报文的传入路径;根据所述报文信息确定所述目标报文的传出路径;在所述传入路径和所述传出路径相同的情况下,重新确定所述目标报文的传出路径;通过重新确定的传出路径转发所述目标报文,以将所述目标报文转发至所述服务器中;
第二级交换机,与所述第一级交换机连接,用于将所述目标报文信息转发至所述第一级交换机中,
其中,所述第一级交换机还用于:
获取预设的存储有多个等价路径的第一哈希表;
根据预设的第一哈希算法对所述报文信息进行哈希计算,得到第一哈希结果;
根据所述第一哈希结果从所述第一哈希表中选取所述目标报文的传出路径,
其中,所述重新确定所述目标报文的传出路径包括:
获取预设的对应所述传入路径的第二哈希表;其中,所述第二哈希表中不包含所述传入路径;
根据所述第一哈希结果从所述第二哈希表中重新选取所述目标报文的传出路径。
CN202010081309.3A 2020-02-06 2020-02-06 一种报文转发方法、装置、网络设备及系统 Active CN113225258B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010081309.3A CN113225258B (zh) 2020-02-06 2020-02-06 一种报文转发方法、装置、网络设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010081309.3A CN113225258B (zh) 2020-02-06 2020-02-06 一种报文转发方法、装置、网络设备及系统

Publications (2)

Publication Number Publication Date
CN113225258A CN113225258A (zh) 2021-08-06
CN113225258B true CN113225258B (zh) 2023-04-07

Family

ID=77085490

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010081309.3A Active CN113225258B (zh) 2020-02-06 2020-02-06 一种报文转发方法、装置、网络设备及系统

Country Status (1)

Country Link
CN (1) CN113225258B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115208822B (zh) * 2022-09-15 2023-01-24 苏州浪潮智能科技有限公司 一种报文转发方法、装置、设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103297298A (zh) * 2013-06-27 2013-09-11 山东山大电力技术有限公司 用于智能变电站的网络风暴实时快速检测方法
CN107360096A (zh) * 2017-08-14 2017-11-17 北京优帆科技有限公司 一种vxlan报文的转发方法及系统
CN108337157A (zh) * 2017-12-22 2018-07-27 华为技术有限公司 一种网络中传输报文的方法和节点

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430164B2 (en) * 1998-05-04 2008-09-30 Hewlett-Packard Development Company, L.P. Path recovery on failure in load balancing switch protocols
US6968374B2 (en) * 2002-07-03 2005-11-22 Telefonaktiebolaget Lm Ericsson (Publ) Quality of service (QOS) mechanism in an internet protocol (IP) network
CN1265594C (zh) * 2002-11-19 2006-07-19 华为技术有限公司 提高网络带宽利用率的方法
CN100461764C (zh) * 2006-06-28 2009-02-11 华为技术有限公司 实现报文转发路径一致的方法和系统
CN102647340A (zh) * 2012-03-22 2012-08-22 中兴通讯股份有限公司 Rsvp-te隧道中的松散节点及其路径计算方法
CN104144120A (zh) * 2013-05-07 2014-11-12 杭州华三通信技术有限公司 转发信息配置方法及装置
CN105474587B (zh) * 2014-06-19 2019-02-12 华为技术有限公司 一种发送数据包的方法及装置
CN104283782B (zh) * 2014-10-14 2018-11-09 新华三技术有限公司 多协议标签交换网络中确定报文转发路径的方法和装置
CN106559324A (zh) * 2015-09-24 2017-04-05 华为技术有限公司 一种基于等价多路径转发报文的方法及网络设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103297298A (zh) * 2013-06-27 2013-09-11 山东山大电力技术有限公司 用于智能变电站的网络风暴实时快速检测方法
CN107360096A (zh) * 2017-08-14 2017-11-17 北京优帆科技有限公司 一种vxlan报文的转发方法及系统
CN108337157A (zh) * 2017-12-22 2018-07-27 华为技术有限公司 一种网络中传输报文的方法和节点

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CSRouter:服务可扩展的路由器体系结构;吕高锋等;《通信学报》(第07期);全文 *

Also Published As

Publication number Publication date
CN113225258A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN107819828B (zh) 数据传输方法、装置、计算机设备和存储介质
US7650429B2 (en) Preventing aliasing of compressed keys across multiple hash tables
US9002806B1 (en) Compression of data transmitted over a network
EP2880550B1 (en) Connection mesh in mirroring asymmetric clustered multiprocessor systems
CN110430135B (zh) 一种报文处理方法和装置
US10110472B2 (en) Failure protection for software defined networks using multi-topology routing based fast reroute
EP4068704A1 (en) Packet sending method, routing table entry generation method, device, and storage medium
US10015227B2 (en) Method and system for replicating a communication application on an auxiliary computing device
CN112968907B (zh) 数据传输方法、数据存储方法、数据查询方法、介质及设备
US11509567B2 (en) IP-based matching system
US8976644B2 (en) Multicast traffic forwarding on pruned interface
CN113225258B (zh) 一种报文转发方法、装置、网络设备及系统
CN110989934B (zh) 区块链节点数据存储方法、区块链系统及区块链节点
CN111355793A (zh) 一种基于HTML5和Python的大文件上传方法
WO2018153347A1 (en) Elastic consistency high availability in multiple boards
US9497285B1 (en) Connection bucketing in mirroring asymmetric clustered multiprocessor systems
US10079759B2 (en) Naming schemes and routing protocols in information centric networking networks
CN111107142B (zh) 业务访问方法和装置
CN118055444A (zh) 数据传输方法、设备以及计算机可读介质
CN115865895A (zh) 一种文件上传方法、装置及存储介质
CN108874530B (zh) 对报文转发设备的业务板进行扩容、缩容的方法和装置
US10484304B2 (en) Determining actions to be immediately performed on a network packet with an application specific integrated circuit
US11836382B2 (en) Data read method, data storage method, electronic device, and computer program product
JP2020013418A (ja) 情報処理方法、情報処理装置及びプログラム
US20250048104A1 (en) Enhancing Cybersecurity Protection through Diversified Transport Paths

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40056827

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant