CN113810284A - 确定报文发送路径的方法及装置 - Google Patents
确定报文发送路径的方法及装置 Download PDFInfo
- Publication number
- CN113810284A CN113810284A CN202010547999.7A CN202010547999A CN113810284A CN 113810284 A CN113810284 A CN 113810284A CN 202010547999 A CN202010547999 A CN 202010547999A CN 113810284 A CN113810284 A CN 113810284A
- Authority
- CN
- China
- Prior art keywords
- information
- message
- path
- processed
- determining
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/121—Shortest path evaluation by minimising delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/06—Deflection routing, e.g. hot-potato routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种确定报文发送路径的方法及装置。该方法包括:获取待处理报文的第一等价路径表、包括第一表项信息的第一聚合流表和包括第二表项信息的第一精确匹配流表;根据待处理报文的报文字段和第一表项信息确定第一信息;根据报文字段、第二表项信息和第一信息确定第二信息;根据第二信息和第一等价路径表,确定待处理报文的第一发送路径。该方法通过将待处理报文的报文字段与第一精确匹配流表的表项信息匹配,确定是否切换路径,使得第一报文处理装置对应的多条发送路径中的流量负载较为均匀,避免了某些发送路径负载流量较大,发生丢包或增大传输时延的问题,也避免了某些发送路径流量负载较小,发生网络带宽利用率较低的问题。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种确定报文发送路径的方法及装置。
背景技术
在报文的传输过程中,发送端报文传输设备接收到待处理报文,将待处理报文发送至待处理报文对应的目的端报文传输设备时,如果两个报文传输设备之间存在多条发送路径,则发送端报文传输设备需要确定一条发送路径,以便通过该发送路径将待处理报文发送至目的端报文传输设备。
目前,发送端报文传输设备接收到待处理报文后,通常会根据待处理报文的报文信息,获取待处理报文的等价路径表,该等价路径表包括多条发送路径的路径信息,发送端报文传输设备可以在等价路径表中选取一个路径信息,后续可以使用该路径信息对应的发送路径将待处理报文发送至目的端报文传输设备。采用此种方式,容易将大量报文集中在同一条发送路径中发送,造成某些发送路径流量负载较大,发生拥塞丢包或增大传输时延的问题,而某些发送路径流量负载较小,导致网络带宽利用率较低。
发明内容
本申请提供了一种确定报文发送路径的方法及装置,以解决报文传输过程中由于发送路径选择不当,导致拥塞丢包、传输时延大以及网络带宽利用率低的问题。
第一方面,本申请提供了一种确定报文发送路径的方法,所述方法应用于第一报文处理装置,所述方法包括:获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表;所述第一聚合流表包括第一表项信息;所述第一精确匹配流表包括第二表项信息;根据所述待处理报文的报文字段和所述第一表项信息确定第一信息;根据所述报文字段、所述第二表项信息和所述第一信息确定第二信息;根据所述第二信息和所述第一等价路径表,确定所述待处理报文的第一发送路径。
本实现方式中,首先获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表,然后根据待处理报文的报文字段和第一聚合流表的表项信息确定第一信息,之后,根据待处理报文的报文字段、第一信息和第一精确匹配流表的表项信息确定第二信息,最后,根据第二信息和第一等价路径表确定待处理报文的第一发送路径。由于在确定待处理报文的第一发送路径的过程中,通过将待处理报文的报文字段与第一精确匹配流表的表项信息的匹配,可以选择将待处理报文对应的当前信息指示的发送路径作为第一发送路径,或者在当前信息指示的发送路径的流量负载较大时,可以将较为空闲的发送路径作为第一发送路径,从而使得第一报文处理装置对应的多条发送路径中的流量负载较为均匀,避免了某些发送路径负载流量较大,发生丢包或增大传输时延的问题,也避免了某些发送路径流量负载较小,发生网络带宽利用率较低的问题。
结合第一方面,在第一方面第一种可能的实现方式中,所述根据所述报文字段、所述第二表项信息和所述第一信息确定第二信息,包括:当所述第二表项信息包括与所述报文字段匹配的第一秘钥时,根据所述第一秘钥对应的表项内容确定是否使用第三信息;所述第三信息为所述第一秘钥对应的表项内容包括的新信息;当使用所述第三信息时,获取第一时延差;所述第一时延差为所述第一秘钥对应的表项内容包括的新旧路径时延差;获取第二时延差;所述第二时延差为所述待处理报文到达所述第一报文处理装置的时间与其所在流中前一条报文到达所述第一报文处理装置的时间的间隔;当所述第二时延差大于所述第一时延差时,确定所述第三信息为所述第二信息。
本实现方式中,在待处理报文的报文字段与第一精确匹配流表的秘钥匹配时,可以通过与该报文字段匹配的秘钥对应的表项内容,确定是否使用新信息,即确定是否可以更换发送路径,在确定可以使用新信息的情况下,进一步确定是否会影响待处理报文所在流中报文的发送顺序,如果不影响其所在流中报文的发送顺序,则可以根据新信息确定发送路径,从而使用负载较小的发送路径发送待处理报文,减小报文的传输时延。
结合第一方面,在第一方面第二种可能的实现方式中,所述方法还包括:当不使用所述第三信息时,获取第四信息;所述第四信息为所述第一秘钥对应的表项内容包括的当前信息;确定所述第四信息为所述第二信息。
本实现方式中,在待处理报文的报文字段与第一精确匹配流表的秘钥匹配时,可以通过与该报文字段匹配的秘钥对应的表项内容,确定是否使用新信息,即确定是否需要更换发送路径,在确定不需要使用新信息的情况下,根据当前信息确定发送路径,避免了当前信息对应的发送路径流量负载较小,发生网络带宽利用率较低的问题。
结合第一方面,在第一方面第三种可能的实现方式中,所述方法还包括:当所述第二时延差小于等于所述第一时延差时,获取第四信息;所述第四信息为所述第一秘钥对应的表项内容包括的当前信息;确定所述第四信息为所述第二信息。
本实现方式中,可以通过比较待处理报文所在流中报文的传输时延与新旧路径时延差的关系,确定更换待处理报文的发送路径是否会造成其所在流中报文发送顺序的混乱,当确定会造成其所在流中报文发送顺序的混乱时,使用当前信息确定发送路径,从而避免了更换路径造成其所在流中报文发送顺序的混乱,保证了更换发送路径的准确度。
结合第一方面,在第一方面第四种可能的实现方式中,所述根据所述报文字段、所述第二表项信息和所述第一信息确定第二信息,包括:当所述第二表项信息不包括与所述报文字段匹配的第一秘钥时,确定所述第一信息为所述第二信息。
本实现方式中,可以通过待处理报文的报文字段与第一精确匹配流表的秘钥的匹配,确定待处理报文所在的流是否为大象流,当第一精确匹配流表不包括与待处理报文的报文字段相匹配的秘钥时,说明待处理报文所在的流非大象流,可以根据当前信息确定发送路径,可以避免当前信息对应的发送路径流量负载较小,发生网络带宽利用率较低的问题。
结合第一方面,在第一方面第五种可能的实现方式中,所述根据所述待处理报文的报文字段和所述第一表项信息确定第一信息,包括:确定所述第一表项信息包含的表项的第一数量;对所述待处理报文的报文字段进行哈希计算,生成第一计算结果;根据所述第一计算结果和所述第一数量生成第一索引;根据所述第一索引和所述第一表项信息确定所述第一信息。
本实现方式中,首先确定第一表项信息包含的表项的第一数量;然后对待处理报文的报文字段进行哈希计算,生成第一计算结果;并且根据所述第一计算结果和所述第一数量生成第一索引;最后,根据所述第一索引和所述第一表项信息确定所述第一信息。第一信息的确定过程较为简单。
结合第一方面,在第一方面第六种可能的实现方式中,所述根据所述第二信息和所述第一等价路径表,确定所述待处理报文的第一发送路径,包括:确定所述第一等价路径表对应的路径索引的第二数量;对所述第二信息进行哈希计算,生成第二计算结果;根据所述第二计算结果和所述第二数量生成第二索引;确定所述待处理报文的第一发送路径;所述第一发送路径是指路径索引为所述第二索引时,匹配所述第一等价路径表得到的路径信息指示的发送路径。
本实现方式中,首先确定第一等价路径表对应的路径索引的第二数量;然后对第二信息进行哈希计算,生成第二计算结果;并且根据所述第二计算结果和所述第二数量生成第二索引;最后根据所述第二索引匹配所述第一等价路径表,得到第一发送路径的路径信息,第一发送路径的确定过程更加简单,适用性更好。
结合第一方面,在第一方面第七种可能的实现方式中,所述方法还包括:在所述待处理报文中添加一个报文头,该报文头包括所述第二信息和所述第一发送路径的信息。
本实现方式中,在发送待处理报文之前,在待处理报文中添加一个包括第二信息和第一发送路径的信息的报文头,使得后续报文处理装置可以得到该报文的报文信息和发送路径的信息,可以更加简单快速的对报文进行处理。
结合第一方面,在第一方面第八种可能的实现方式中,所述方法还包括:将所述待处理报文和所述第一信息上报给CPU。
本实现方式中,在第一精确匹配流表的第二表项信息不包括与待处理报文的报文字段相匹配的秘钥时,可以将待处理报文以及第一信息上报给CPU,使得CPU后续可以根据接收到的上报的报文及报文对应的第一信息,更新第一精确匹配流表,使得第一精确匹配流表更加符合应用场景的需求,适用性更好。
第二方面,本申请提供了一种确定报文发送路径的装置,该装置包括:获取模块和处理模块;所述获取模块,用于获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表;所述第一聚合流表包括第一表项信息;所述第一精确匹配流表包括第二表项信息;所述处理模块,用于根据所述待处理报文的报文字段和所述第一表项信息确定第一信息;根据所述报文字段、所述第二表项信息和所述第一信息确定第二信息;根据所述第二信息和所述第一等价路径表,确定所述待处理报文的第一发送路径。
本实现方式的装置,可以获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表,然后根据待处理报文的报文字段和第一聚合流表的表项信息确定第一信息,之后,根据待处理报文的报文字段、第一信息和第一精确匹配流表的表项信息确定第二信息,最后,根据第二信息和第一等价路径表确定待处理报文的第一发送路径。该装置由于在确定待处理报文的第一发送路径的过程中,通过将待处理报文的报文字段与第一精确匹配流表的表项信息的匹配,可以选择将待处理报文对应的当前信息指示的发送路径作为第一发送路径,或者在当前信息指示的发送路径的流量负载较大时,可以将较为空闲的发送路径作为第一发送路径,从而使得第一报文处理装置对应的多条发送路径中的流量负载较为均匀,避免了某些发送路径负载流量较大,发生丢包或增大传输时延的问题,也避免了某些发送路径流量负载较小,发生网络带宽利用率较低的问题。
结合第二方面,在第二方面第一种可能的实现方式中,所述处理模块具体用于:当所述第二表项信息包括与所述报文字段匹配的第一秘钥时,根据所述第一秘钥对应的表项内容确定是否使用第三信息;所述第三信息为所述第一秘钥对应的表项内容包括的新信息;当使用所述第三信息时,获取第一时延差;所述第一时延差为所述第一秘钥对应的表项内容包括的新旧路径时延差;获取第二时延差;所述第二时延差为所述待处理报文到达所述装置的时间与其所在流中前一条报文到达所述装置的时间的间隔;当所述第二时延差大于所述第一时延差时,确定所述第三信息为所述第二信息。
本实现方式的装置,在待处理报文的报文字段与第一精确匹配流表的秘钥匹配时,可以通过与该报文字段匹配的秘钥对应的表项内容,确定是否使用新信息,即确定是否可以更换发送路径,在确定可以使用新信息的情况下,进一步确定是否会影响待处理报文所在流中报文的发送顺序,如果不影响其所在流中报文的发送顺序,则可以根据新信息确定发送路径,从而使用负载较小的发送路径发送待处理报文,减小报文的传输时延。
结合第二方面,在第二方面第二种可能的实现方式中,所述处理模块还用于:当不使用所述第三信息时,获取第四信息;所述第四信息为所述第一秘钥对应的表项内容包括的当前信息;确定所述第四信息为所述第二信息。
本实现方式的装置,在待处理报文的报文字段与第一精确匹配流表的秘钥匹配时,可以通过与该报文字段匹配的秘钥对应的表项内容,确定是否使用新信息,即确定是否需要更换发送路径,在确定不需要使用新信息的情况下,根据当前信息确定发送路径,避免了当前信息对应的发送路径流量负载较小,发生网络带宽利用率较低的问题。
结合第二方面,在第二方面第三种可能的实现方式中,所述处理模块还用于:当所述第二时延差小于等于所述第一时延差时,获取第四信息;所述第四信息为所述第一秘钥对应的表项内容包括的当前信息;确定所述第四信息为所述第二信息。
本实现方式的装置,可以通过比较待处理报文所在流中报文的传输时延与新旧路径时延差的关系,确定更换待处理报文的发送路径是否会造成其所在流中报文发送顺序的混乱,当确定会造成其所在流中报文发送顺序的混乱时,使用当前信息确定发送路径,从而避免了更换路径造成其所在流中报文发送顺序的混乱,保证了更换发送路径的准确度。
结合第二方面,在第二方面第四种可能的实现方式中,所述处理模块具体用于:当所述第二表项信息不包括与所述报文字段匹配的第一秘钥时,确定所述第一信息为所述第二信息。
本实现方式的装置,可以通过待处理报文的报文字段与第一精确匹配流表的秘钥的匹配,确定待处理报文所在的流是否为大象流,当第一精确匹配流表不包括与待处理报文的报文字段相匹配的秘钥时,说明待处理报文所在的流非大象流,可以根据当前信息确定发送路径,可以避免当前信息对应的发送路径流量负载较小,发生网络带宽利用率较低的问题。
结合第二方面,在第二方面第五种可能的实现方式中,所述处理模块具体用于:确定所述第一表项信息包含的表项的第一数量;对所述待处理报文的报文字段进行哈希计算,生成第一计算结果;根据所述第一计算结果和所述第一数量生成第一索引;根据所述第一索引和所述第一表项信息确定所述第一信息。
本实现方式的装置,可以确定第一表项信息包含的表项的第一数量;然后对待处理报文的报文字段进行哈希计算,生成第一计算结果;并且根据所述第一计算结果和所述第一数量生成第一索引;最后,根据所述第一索引和所述第一表项信息确定所述第一信息,第一信息的确定过程较为简单。
结合第二方面,在第二方面第六种可能的实现方式中,所述处理模块具体用于:确定所述第一等价路径表对应的路径索引的第二数量;对所述第二信息进行哈希计算,生成第二计算结果;根据所述第二计算结果和所述第二数量生成第二索引;确定所述待处理报文的第一发送路径;所述第一发送路径是指路径索引为所述第二索引时,匹配所述第一等价路径表得到的路径信息指示的发送路径。
本实现方式的装置,可以确定第一等价路径表对应的路径索引的第二数量;然后对第二信息进行哈希计算,生成第二计算结果;并且根据所述第二计算结果和所述第二数量生成第二索引;最后根据所述第二索引匹配所述第一等价路径表,得到第一发送路径的路径信息,第一发送路径的确定过程更加简单,适用性更好。
结合第二方面,在第二方面第七种可能的实现方式中,所述处理模块还用于:在所述待处理报文中添加一个报文头,该报文头包括所述第二信息和所述第一发送路径的信息。
本实现方式的装置,在发送待处理报文之前,在待处理报文中添加一个包括第二信息和第一发送路径的信息的报文头,使得后续报文处理装置可以得到该报文的报文信息和发送路径的信息,可以更加简单快速的对报文进行处理。
结合第二方面,在第二方面第八种可能的实现方式中,所述处理模块还用于:将所述待处理报文和所述第一信息上报给CPU。
本实现方式的装置,在第一精确匹配流表的第二表项信息不包括与待处理报文的报文字段相匹配的秘钥时,可以将待处理报文以及第一信息上报给CPU,使得CPU后续可以根据接收到的上报的报文及报文对应的第一信息,更新第一精确匹配流表,使得第一精确匹配流表更加符合应用场景的需求,适用性更好。
第三方面,本申请实施例提供一种通信装置,所述通信装置包括处理器,当所述处理器执行存储器中的计算机程序或指令时,如第一方面所述的方法被执行。
第四方面,本申请实施例提供一种通信装置,所述通信装置包括处理器和存储器,所述存储器用于存储计算机程序或指令;所述处理器用于执行所述存储器所存储的计算机程序或指令,以使所述通信装置执行如第一方面中所示的相应的方法。
第五方面,本申请实施例提供一种通信装置,所述通信装置包括处理器、存储器和收发器;所述收发器,用于接收信号或者发送信号;所述存储器,用于存储计算机程序或指令;所述处理器,用于从所述存储器调用所述计算机程序或指令执行如第一方面所述的方法。
第六方面,本申请实施例提供一种通信装置,所述通信装置包括处理器和接口电路;所述接口电路,用于接收计算机程序或指令并传输至所述处理器;所述处理器运行所述计算机程序或指令以执行如第一方面所示的相应的方法。
第七方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质用于存储计算机程序或指令,当所述计算机程序或指令被执行时,使得第一方面所述的方法被实现。
第八方面,本申请实施例提供一种包括计算机程序或指令的计算机程序产品,当所述计算机程序或指令被执行时,使得第一方面所述的方法被实现。
为解决报文传输过程中由于发送路径选择不当,导致拥塞丢包、传输时延大以及网络带宽利用率低的问题,本申请提供了一种确定报文发送路径的方法及装置。该方法中,首先获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表,然后根据待处理报文的报文字段和第一聚合流表的表项信息确定第一信息,之后,根据待处理报文的报文字段、第一信息和第一精确匹配流表的表项信息确定第二信息,最后,根据第二信息和第一等价路径表确定待处理报文的第一发送路径。由于在确定待处理报文的第一发送路径的过程中,通过将待处理报文的报文字段与第一精确匹配流表的表项信息的匹配,可以选择将待处理报文对应的当前信息指示的发送路径作为第一发送路径,或者在当前信息指示的发送路径的流量负载较大时,可以将较为空闲的发送路径作为第一发送路径,从而使得第一报文处理装置对应的多条发送路径中的流量负载较为均匀,避免了某些发送路径负载流量较大,发生丢包或增大传输时延的问题,也避免了某些发送路径流量负载较小,发生网络带宽利用率较低的问题。
附图说明
图1为本申请提供的一种应用场景示意图;
图2为本申请提供的通信系统的一种实施方式的架构示意图;
图3为本申请提供的路由器的一种实施方式的结构示意图;
图4为本申请提供的确定报文发送路径的方法的一种实施方式的流程示意图;
图5为本申请提供的获取发送路径质量信息的方法的一种实施方式的流程示意图;
图6为本申请提供的一种测量报文的格式示意图;
图7为本申请提供的第二精确匹配流表的更新方法的一种实施方式的流程示意图;
图8为本申请提供的确定报文发送路径的装置的一种实施方式的结构框图;
图9为本申请提供的获取发送路径质量信息的系统的一种实施方式的结构框图;
图10为本申请提供的芯片的一种实施方式的结构框图。
具体实施方式
下面结合附图,对本申请的技术方案进行描述。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了便于理解本申请的技术方案,下面先对本申请提供的技术方案的应用场景进行示例性说明。
在报文的传输过程中,发送端报文传输设备接收到待处理报文后,在向待处理报文对应的目的端报文传输设备发送待处理报文时,如果存在多条发送路径,发送端报文传输设备需要选择一条发送路径发送待处理报文。
例如,参见图1,在图1所示的应用场景中,路由器A和路由器B之间存在三条发送路径,分别为路径1、路径2和路径3。路由器A接收到一个发送至路由器B的待处理报文时,将待处理报文发送给路由器B之前,需要在路径1、路径2和路径3中选择一条发送路径,然后通过该发送路径,将待处理报文发送至路由器B。
目前,路由器A接收到待处理报文后,通常会根据待处理报文的报文信息获取待处理报文的等价路径表,该等价路径表中包含路径1、路径2和路径3的路径信息,路由器A可以在该等价路径表的3个路径信息中选取一个路径信息,然后通过该路径信息指示的发送路径,将待处理报文发送至路由器B。采用此种方式,容易将大量报文集中在同一条发送路径中发送,造成某些发送路径流量负载较大,发生拥塞丢包或增大传输时延的问题,而某些发送路径流量负载较小,导致网络带宽利用率较低。
为了解决上述技术问题,本申请提供了一种确定报文发送路径的方法及装置。
本申请提供的技术方案可以应用于各种通信系统,示例性的,本申请提供的技术方案所适用的通信系统可以参见图2,图2为本申请提供的通信系统的一种实施方式的架构示意图,如图2所示,该通信系统可以包括第一报文传输设备201和第二报文传输设备202,第一报文传输设备201和第二报文传输设备202之间具有网络隧道203,第一报文传输设备201为网络隧道203的源节点,第二报文传输设备202为网络隧道203的目的节点,网络隧道203可以包括多条发送路径,例如图2示出的路径2031、2032、2033、2034和2035。
其中,网络隧道203可以是段路由V6(segmet routing v6,SRV6)隧道或者虚拟扩展局域网(virtual extensible local area network,VXLAN)隧道等。
第一报文传输设备201和第二报文传输设备202都可以为路由器。路由器的结构可以参见图3,图3为本申请提供的路由器的一种实施方式的结构示意图,如图3所示,路由器可以包括:输入接口模块301、网络处理器(network processor,NP)302、中央处理器(central processing unit,CPU)303、存储模块304和输出接口模块305。其中,输入接口模块301可以用于接收报文,例如待处理报文,输出接口模块305可以用于发送报文,例如经过处理后的待处理报文,此外,路由器中每一个部件的具体作用或功能还可以参考后续实施例的内容,此处不再详述。
本领域技术人员可以理解,图2和图3示出的通信系统和路由器的结构并不构成对本申请的通信系统和路由器的结构的限定,本申请提供的通信系统和路由器可以包括比图示更多或更少的部件,或者组合某些部件,或者采用不同的部件布置。本申请对此并不进行限定。
此外,本申请实施例描述的通信系统的网络架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面对本申请提供的确定报文发送路径的方法的实施例进行说明。
参见图4,图4为本申请提供的确定报文发送路径的方法的一种实施方式的流程示意图。该方法可以应用于第一报文处理装置,第一报文处理装置位于发送端,用于接收待处理报文,并将经过处理后的待处理报文发送至待处理报文对应的目的端。
例如,第一报文处理装置可以为图2所示的第一报文传输设备201,或者可以为第一报文传输设备201中的报文处理装置,当图2所示的第一报文传输设备201为图3所示的路由器时,第一报文处理装置可以为路由器的NP,该方法可以包括以下步骤:
步骤S101、获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表。
其中,待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表都可以由第一报文处理装置连接的CPU管理和下发,例如,第一报文处理装置连接的CPU可以为图2所示第一报文传输设备201的CPU,当图2所示的第一报文传输设备201为图3所示的路由器时,第一报文处理装置连接的CPU可以为路由器的CPU。
第一报文处理装置接收到待处理报文后,可以根据待处理报文的报文字段获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表。
可选的,待处理报文的报文字段可以为待处理报文的目的地址。可选的,待处理报文的报文字段还可以为待处理报文的五元组,即待处理报文的源地址、目的地址、源端口号、目的端口号和报文协议。
例如,第一报文处理装置可以根据待处理报文的五元组,查访问控制列表(accesscontrol lists,ACL),获取待处理报文的第一等价路径表。
根据待处理报文的报文字段获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表的具体内容还可以参见后续实施例的内容。
待处理报文的第一等价路径表包括多个路径信息,路径信息的数量与用于传输报文的发送路径的数量相同,一个路径信息用于指示一条发送路径。可选的,第一等价路径表包括的路径信息可以通过路径标识(例如路径ID)指示,也可以通过路径的其它信息(例如路径名称等)指示,本申请对此不进行限定。
第一等价路径表为线性表,通常可以通过路径索引匹配第一等价路径表,从而得到该路径索引对应的路径信息,例如路径ID。其中,一个路径信息可以对应一个路径索引。具体的,在得到路径索引后,将该路径索引作为输入值,输入至第一等价路径表中,可以得到输出值,输出值即为该路径索引对应的路径信息。
例如,可参见表1,第一等价路径表包括路径ID,每一个路径ID对应一个路径索引,将具体的路径索引作为输入值,输入至表1后,可以得到具体的路径ID。例如,将路径索引0输入至表1后,可以得到路径1,将路径索引1输入至表1后,可以得到路径2等。
路径索引 | 路径ID |
0 | 路径1 |
1 | 路径2 |
2 | 路径3 |
表1
待处理报文的第一聚合流表包括第一表项信息,第一表项信息可以包括多个用于唯一识别流的流指示信息,本申请中,将第一聚合流表包含的流指示信息记为第一流指示信息,第一流指示信息的数量可以根据实际应用场景的需求进行设置,例如,可以将第一流指示信息的数量设置为64。
可选的,第一流指示信息可以为流标签(flowlabel)或者源端口号,当第一报文处理装置为SRV6隧道的节点时,第一流指示信息可以为流标签,当第一报文处理装置为VXLAN隧道的节点时,第一流指示信息可以为源端口号。本领域技术人员可以理解,随着网络架构的演变和新业务场景的出现,第一流指示信息也可以为其它可以识别流的信息,本申请对此不进行限定。
第一聚合流表同样为线性表,可以通过信息索引匹配第一聚合流表,从而得到该信息索引对应的第一流指示信息。其中,一个第一流指示信息可以对应一个或多个信息索引,信息索引的数量也可以根据实际应用场景的需求进行设置,例如,可以将信息索引的数量设置为64k,当信息索引的数量为64k时,第一聚合流表共有64k个表项。具体的,在得到信息索引后,将该信息索引作为输入值,输入至第一聚合流表中,可以得到输出值,输出值即为该信息索引对应的第一流指示信息。
例如,可参见表2,第一聚合流表包括64个流标签,每一个流标签对应多个信息索引,共有64k个信息索引,所以第一聚合流表共有64k个表项。将具体的信息索引作为输入值,输入至表2中,可以得到相应的流标签。例如,将信息索引0输入至表2中,可以得到flowlabel 1,将信息索引1输入至表2中,可以得到flowlabel 2,将信息索引64k-64输入至表2中,可以得到flowlabel 1,将信息索引64k-63输入至表2中,可以得到flowlabel 2等。
表2
待处理报文的第一精确匹配流表又可以称为第一大象流表,第一精确匹配流表包括第二表项信息,第二表项信息可以包括多个秘钥和每个秘钥对应的表项内容,其中,每个秘钥对应的表项内容可以包括当前流指示信息,是否使用新的流指示信息,新旧流指示信息对应路径的时延差,新的流指示信息,以及流计数,即当前流中的报文数量等内容。
其中,当前流指示信息又可以简称为当前信息,例如当前信息可以为当前流标签。新的流指示信息又可以简称为新信息,例如新信息可以为新流标签。新旧流指示信息对应路径的时延差又可以简称为新旧路径时延差,例如新旧路径时延差可以为新旧流标签对应路径的时延差。是否使用新的流指示信息又可以简称为是否使用新信息,例如是否使用新信息可以为是否使用新流标签。
第一精确匹配流表的表项数量可以根据实际应用场景的需求设置,不过由于第一精确匹配流表通常占用的内存较大,所以第一精确匹配流表的规格设置较小,例如第一精确匹配流表的表项数量可以设置为256个。
例如,可以参见表3,第一精确匹配流表包括256个秘钥,每一个秘钥对应一个表项内容,每一个表项内容包括当前流标签,是否使用新流标签,新旧流标签对应路径的时延差,新流标签和流计数。
表3
第一精确匹配流表中的当前流指示信息和新的流指示信息与第一聚合流表中的第一流指示信息的内容一致,即,第一聚合流表中的第一流指示信息包括第一精确匹配流表中的当前流指示信息,也包括第一精确匹配流表中的新的流指示信息。例如,表2所示的第一聚合流表中的64个流标签包括表3所示的第一精确匹配流表的当前流标签和新流标签。
此外,待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表的具体作用或功能可以参见后续实施例的内容,此处不再详述。
步骤S102、根据所述待处理报文的报文字段和所述第一聚合流表的第一表项信息确定第一信息。
获取到待处理报文的第一聚合流表后,可以根据待处理报文的报文字段和第一聚合流表的第一表项信息确定第一信息,第一信息是指第一聚合流表的第一表项信息包含的与待处理报文的报文字段对应的第一流指示信息。
其中,待处理报文的报文字段用于识别待处理报文所在的流,例如,可以选取待处理报文的五元组作为待处理报文的报文字段,也可以选取待处理报文的五元组中的3个或4个参数作为待处理报文的报文字段。
可选的,根据待处理报文的报文字段和第一表项信息确定第一信息,可以按照下述方式实现:确定第一表项信息包含的表项的第一数量;对待处理报文的报文字段进行哈希计算,生成第一计算结果;根据第一计算结果和第一数量生成第一索引;根据第一索引和第一表项信息确定第一信息。
其中,对待处理报文的报文字段进行哈希计算,生成第一计算结果,可以按照下述方式实现:根据待处理报文的报文字段组成第一比特数据,将第一比特数据作为哈希计算模型的输入值进行哈希计算,得到的输出值即为第一计算结果。
根据第一计算结果和第一数量生成第一索引,可以按照下述方式实现:对第一计算结果和第一数量进行取余计算,将得到的余数确定为第一索引。
根据第一索引和第一表项信息确定第一信息,可以按照下述方式实现:根据第一索引匹配第一聚合流表的第一表项信息,得到第一信息,即,将第一索引作为输入值,输入至第一聚合流表,得到输出值,该输出值即为第一信息,其中,第一信息为第一表项信息中与第一索引对应的第一流指示信息。
下面以一个具体的例子对步骤S102进行说明。例如,待处理报文的第一聚合流表如表2所示,该第一聚合流表共有64k个表项,即第一数量为64k,根据待处理报文的五元组,即源地址、目的地址、源端口号、目的端口号和报文协议,组成128比特(bit)的第一比特数据,如果待处理报文的五元组组成的比特数据不足128比特,可以将五元组之外的空余位置记为0,然后,对该128比特的第一比特数据进行哈希计算,得到第一计算结果,该第一计算结果为32比特的比特数据,之后,使用32比特的比特数据除以64k,将得到的余数作为第一索引,使用该第一索引作为第一聚合流表的信息索引输入至第一聚合流表中,输出值即为第一信息,即输出值即为待处理报文对应的第一流指示信息。例如,得到的余数为2,则第一信息为flowlabel 3,即待处理报文对应的第一流指示信息为flowlabel 3。
步骤S103、根据所述报文字段、所述第一精确匹配流表的第二表项信息和所述第一信息确定第二信息。
得到待处理报文的第一精确匹配流表和第一信息后,首先确定第一精确匹配流表的第二表项信息中是否包括与待处理报文的报文字段(例如待处理报文的五元组)相匹配的第一秘钥,第一秘钥是指与待处理报文的报文字段相同的秘钥;当第二表项信息中不包括第一秘钥时,将第一信息确定为第二信息,第二信息用于确定第一报文处理装置实际发送待处理报文的发送路径,即用于确定待处理报文的第一发送路径。
例如,待处理报文的第一精确匹配流表如表3所示,表3中秘钥1至秘钥256中任意一个秘钥都与待处理报文的五元组不同,则认为表3所示的第一精确匹配流表的第二表项信息中不包含第一秘钥,则将第一信息确定为第二信息。
当第二表项信息中包括第一秘钥时,根据第二表项信息中第一秘钥对应的表项内容确定是否使用第三信息,第三信息是指第二表项信息中第一秘钥对应的表项内容包含的新信息,即,查第一精确匹配流表中第一秘钥对应的表项内容,确认其中“是否使用新信息”对应的是否为“是”,如果其中“是否使用新信息”对应的为“否”,表示不使用第三信息,当不使用第三信息时,获取第四信息,第四信息是指第二表项信息中第一秘钥对应的表项内容包含的当前信息,将第四信息确定为第二信息。
例如,待处理报文的第一精确匹配流表如表3所示,且待处理报文的五元组与key2相同,可知,第二表项信息包含第一秘钥,且第一秘钥为key2,然后查key2对应的表项内容可知,“是否使用新流标签”为“否”,表示不使用第三信息,即不使用新流标签,然后,查key2对应的表项内容可知,key2对应的表项内容包含的当前流标签为flowlabel 26,即第四信息为flowlabel 26,则第二信息为flowlabel 26。
当查第一秘钥对应的表项内容,确认其中“是否使用新信息”对应的为“是”时,表示使用第三信息。当使用第三信息时,首先获取第一时延差,第一时延差是指第一秘钥对应的表项内容包含的新旧路径时延差;并且,获取第二时延差,第二时延差是指待处理报文到达第一报文处理装置的时间,与待处理报文所在流中待处理报文的前一条报文到达第一报文处理装置的时间,两者之间的时间间隔;当第二时延差大于第一时延差时,表示将待处理报文的发送路径从当前信息指示的发送路径切换到新信息指示的发送路径,不会引起待处理报文所在流中报文的发送顺序的混乱,可以切换待处理报文的发送路径,则可以将第三信息确定为第二信息。
例如,待处理报文的第一精确匹配流表如表3所示,且待处理报文的五元组与key1相同,可知,第二表项信息包含第一秘钥,且第一秘钥为key1,然后查key1对应的表项内容可知,“是否使用新流标签”为“是”,表示使用第三信息,且第三信息为flowlabel 64,再次查key1对应的表项内容可知,“新旧流标签对应路径的时延差”为50微妙,即第一时延差为50微妙,通过记录每一个报文到达第一报文处理装置的时间可知,待处理报文到达第一报文处理装置的时间,与待处理报文所在流中待处理报文的前一条报文到达第一报文处理装置的时间,两者之间的时间间隔为60微妙,即第二时延差为60微妙,可知,第二时延差大于第一时延差,则可以将第三信息flowlabel 64确定为第二信息,即第二信息为flowlabel64。
当第二时延差小于等于第一时延差时,表示将待处理报文的发送路径从当前信息指示的发送路径切换到新信息指示的发送路径的话,会引起待处理报文所在流中报文的发送顺序的混乱,不可以切换待处理报文的发送路径,则获取第四信息,将第四信息确定为第二信息。
例如,待处理报文的第一精确匹配流表如表3所示,且待处理报文的五元组与key256相同,可知,第二表项信息包含第一秘钥,且第一秘钥为key256,然后查key256对应的表项内容可知,“是否使用新流标签”为“是”,表示使用第三信息,且第三信息为flowlabel 63,再次查key256对应的表项内容可知,“新旧流标签对应路径的时延差”为30微妙,即第一时延差为30微妙,通过记录每一个报文到达第一报文处理装置的时间可知,待处理报文到达第一报文处理装置的时间,与待处理报文所在流中待处理报文的前一条报文到达第一报文处理装置的时间,两者之间的时间间隔为20微妙,即第二时延差为20微妙,可知,第二时延差小于第一时延差,则获取第四信息,第四信息为flowlabel 58,将第四信息确定为第二信息,则第二信息为flowlabel 58。
可选的,当待处理报文的第一精确匹配流表的第二表项信息不包括第一秘钥时,可以将待处理报文和第一信息作为采样数据上报给第一报文处理装置连接的CPU。
可选的,当待处理报文的第一精确匹配流表的第二表项信息不包括第一秘钥时,还可以先确定待处理报文的报文长度是否超过预设字节长度(例如1000字节),如果待处理报文的报文长度超过预设字节长度,可以将待处理报文和第一信息作为采样数据上报给第一报文处理装置连接的CPU。
可选的,当待处理报文的第一精确匹配流表的第二表项信息不包括第一秘钥时,还可以先确定待处理报文的报文长度是否超过预设字节长度(例如1000字节),如果待处理报文的报文长度超过预设字节长度,可以将待处理报文作为采样数据进行存储,然后按照预设采样比例(例如1000:1)将采样数据上报给第一报文处理装置连接的CPU。
示例性的,上述第一报文处理装置可以为图3所示的NP 302,第一报文处理装置连接的CPU可以为图3所示的CPU303。第一报文处理装置可以将待处理报文作为采样数据存储至第一报文处理装置连接的存储装置,例如存储装置可以为图3所示的存储模块304。
在本申请一些可选的实施方式中,当确定待处理报文的第一精确匹配流表的第二表项信息包含第一秘钥时,还会在第一秘钥对应的表项内容包含的“流计数”对应的当前数字上加1,更新“流计数”对应的当前数字,以便对待处理报文所在的流包含的报文进行计数,后续可以根据每一条流包含的报文的数量确定该条流是否为大象流。
步骤S104、根据所述第二信息和所述第一等价路径表,确定所述待处理报文的第一发送路径。
可选的,根据第二信息和第一等价路径表,确定待处理报文的第一发送路径,可以按照下述方式实现:确定第一等价路径表对应的路径索引的第二数量;对第二信息进行哈希计算,生成第二计算结果;根据第二计算结果和第二数量生成第二索引;确定待处理报文的第一发送路径;所述第一发送路径是指路径索引为第二索引时,匹配所述第一等价路径表得到的路径信息指示的发送路径。
其中,对第二信息进行哈希计算,生成第二计算结果,可以按照下述方式实现:根据第二信息组成第二比特数据;将第二比特数据作为哈希计算模型的输入值,进行哈希计算,得到的输出值即为第二计算结果。
可选的,可以根据第二信息和0组成128比特的第二比特数据。
可选的,还可以根据第二信息,第一报文处理装置发送待处理报文时发送端的源地址和目的端的目的地址,以及0,组成第二比特数据。例如,当第一报文处理装置为SRV6隧道的源节点时,源地址和目的地址分别为SRV6隧道的源地址和目的地址,则可以根据第二信息,SRV6隧道的源地址和目的地址,以及0,组成第二比特数据。
可选的,还可以根据第二信息,第一报文处理装置发送待处理报文时发送端的源端口号和源地址,以及目的端的目的端口号和目的地址,组成第二比特数据。例如,当第一报文处理装置为VXLAN隧道的源节点时,源端口号、源地址、目的端口号和目的地址分别为VXLAN隧道的源端口号、源地址、目的端口号和目的地址,则可以根据第二信息,VXLAN隧道的源端口号、源地址、目的端口号和目的地址,以及0,组成第二比特数据。
根据第二计算结果和第二数量生成第二索引,可以按照下述方式实现:对第二计算结果和第二数量进行取余计算,将得到的余数确定为第二索引。
确定待处理报文的第一发送路径,可以按照下述方式实现:根据第二索引匹配待处理报文的第一等价路径表,得到第一发送路径的路径信息,即,将第二索引作为路径索引输入至第一等价路径表,得到的输出值即为第一发送路径的路径信息,也就是说,待处理报文的第一发送路径是指路径索引为第二索引时,匹配所述第一等价路径表得到的路径信息指示的发送路径。
在本申请一些可选的实施方式中,确定待处理报文的第一发送路径后,在使用第一发送路径发送待处理报文之前,还可以在待处理报文中添加一个报文头,该报文头包括第二信息和第一发送路径的信息。
可选的,第一发送路径的信息可以为第一发送路径的源地址和目的地址,例如,当第一报文处理装置为SRV6隧道的源节点时,第一发送路径的信息为SRV6隧道的源地址和目的地址。当第一报文处理装置为VXLAN隧道的源节点时,第一发送路径的信息可以为VXLAN隧道的源地址和目的地址。
本申请实施例提供的确定报文发送路径的方法中,首先获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表,然后根据待处理报文的报文字段和第一聚合流表的表项信息确定第一信息,之后,根据待处理报文的报文字段、第一信息和第一精确匹配流表的表项信息确定第二信息,最后,根据第二信息和第一等价路径表确定待处理报文的第一发送路径。由于在确定待处理报文的第一发送路径的过程中,通过将待处理报文的报文字段与第一精确匹配流表的表项信息的匹配,可以选择将待处理报文对应的当前信息指示的发送路径作为第一发送路径,或者在当前信息指示的发送路径的流量负载较大时,可以将较为空闲的发送路径作为第一发送路径,从而使得第一报文处理装置对应的多条发送路径中的流量负载较为均匀,避免了某些发送路径负载流量较大,发生丢包或增大传输时延的问题,也避免了某些发送路径流量负载较小,发生网络带宽利用率较低的问题。
在报文的传输过程中,发送端报文传输设备中可以设置一个或多个第二等价路径表,一个或多个第二聚合流表,以及一个或多个第二精确匹配流表。第二等价路径表、第二聚合流表和第二精确匹配流表都与报文的报文字段对应。基于此,在上述图4所示的实施例中,位于发送端的第一报文处理装置接收到待处理报文后,可以获取待处理报文的报文字段对应的第二等价路径表,将该第二等价路径表确定为该待处理报文的第一等价路径表。同理,第一报文处理装置可以获取待处理报文的报文字段对应的第二聚合流表和第二精确匹配流表,将获得的第二聚合流表和第二精确匹配流表分别确定为第一聚合流表和第一精确匹配流表。
第二等价路径表、第二聚合流表和第二精确匹配流表的内容可以参考前述实施例中第一等价路径表、第一聚合流表和第一精确匹配流表的内容,此处不再赘述。
此外,一个发送端报文传输设备可以对应一个或多个目的端报文传输设备,同一组发送端报文传输设备和目的端报文传输设备之间可以包括一个或多个报文传输通道(例如报文传输通道可以为网络隧道),一个报文传输通道可以包括一条或多条用于传输报文的发送路径。
其中,一个报文传输通道对应一个第二等价路径表、一个第二聚合流表和一个第二精确匹配流表,发送端报文传输设备可以根据该报文传输通道中发送路径的变化,对该报文传输通道对应的第二等价路径表、第二聚合流表和第二精确匹配流表进行管理。
下面,以图2和图3所示的通信系统为例,对发送端报文传输设备对一个报文传输通道对应的第二等价路径表、第二聚合流表和第二精确匹配流表进行管理的内容进行说明。对任意一条报文传输通道对应的第二等价路径表、第二聚合流表和第二精确匹配流表进行管理的具体实现方式,都可以参考下述实施例的内容。
下述实施例中,图2所示的第一报文传输设备201为发送端报文传输设备,图2所示的第二报文传输设备202为目的端报文传输设备,第一报文传输设备201与第二报文传输设备202之间具有一条报文传输通道,即网络隧道203,并且第一报文传输设备201和第二报文传输设备202均为路由器。
第一报文传输设备201记为第一路由器,第一路由器中的NP记为第一NP,第一路由器中的CPU记为第一CPU。第二报文传输设备202记为第二路由器,第二路由器中的NP记为第二NP。
对应于第一路由器与第二路由器之间的网络隧道203,第一路由器中设置有一个第二等价路径表、一个第二聚合流表和一个第二精确匹配流表。
在网络隧道203包括的发送路径的数量不变时,网络隧道203对应的第二等价路径表不变,相应的,所有通过网络隧道203传输的待处理报文的第一等价路径表相同,均为第二等价路径表。
网络隧道203对应的第二聚合流表在系统启动时,由第一CPU下发至第一NP,在第一NP运行的过程中,网络隧道203对应的第二聚合流表不会发生变化,相应的,所有通过网络隧道203传输的待处理报文的第一聚合流表也相同,均为第二聚合流表。
网络隧道203对应的第二精确匹配流表可以根据网络隧道203包括的发送路径的质量信息进行更新。在对网络隧道203对应的第二精确匹配流表进行更新之前,首先获取网络隧道203包括的每一条发送路径的质量信息。每一条发送路径的质量信息包括丢包率和第三时延差,其中,第三时延差是指该发送路径的传输时延差,即报文从该发送路径的发送端到达目的端经过的时长。
参见图5,图5为本申请提供的获取发送路径质量信息的方法的一种实施方式的流程示意图。该方法可以包括以下步骤:
步骤S201、第一NP生成测量报文。
其中,测量报文可以包括多个,测量报文的数量记为第三数量,第三数量等于网络隧道203对应的第二聚合流表包括的流指示信息的数量,本申请中,将第二聚合流表包括的流指示信息记为第二流指示信息。一个测量报文对应一个第二流指示信息。例如,网络隧道203对应的第二聚合流表包括的第二流指示信息分别为flowlabel 1、flowlabel2、……、flowlabel 64,则测量报文的数量为64,即第三数量为64,并且,flowlabel 1、flowlabel2、……、flowlabel 64分别对应一个测量报文。
测量报文的格式如图6所示,测量报文的报文字段中包含介质访问控制(mediaaccess control,MAC)、发送时间戳、发送计数和该测量报文对应的第二流指示信息,其中,发送时间戳用于指示第一NP向第二路由器发送该测量报文的时间,发送计数用于指示第一NP通过该第二流指示信息对应的发送路径发送该测量报文时,已经通过该发送路径发送的经过处理后的待处理报文的数量。
可选的,为了可以根据隧道203包含的发送路径的质量变化,及时更新隧道203对应的第二精确匹配流表,第一NP可以按照第一预设时长,周期性的生成测量报文,例如,第一预设时长可以设置为10毫秒,每间隔10毫秒,生成一次测量报文,这样,可以周期性的对网络隧道203对应的第二精确匹配流表进行更新。
步骤S202、第一NP根据所述测量报文对应的第二流指示信息和第二等价路径表,确定该测量报文的第二发送路径。
第一NP每次生成测量报文后,根据每一个测量报文对应的第二流指示信息和第二等价路径表,确定该测量报文的第二发送路径,第二发送路径为网络隧道203包括的一条发送路径。可以将测量报文的第二发送路径与该测量报文的第二流指示信息进行对应关联。
由于在网络隧道203包括的发送路径的数量不变时,网络隧道203对应的第二等价路径表不变,相应的,所有通过网络隧道203传输的待处理报文的第一等价路径表相同,且都为第二等价路径表。所以,根据每一个测量报文对应的第二流指示信息和第二等价路径表确定该测量报文的第二发送路径的具体实现方式,可以参考图4所示实施例中根据第二信息和第一等价路径表,确定待处理报文的第一发送路径的具体实现方式,此处不再赘述。
步骤S203、第一NP通过所述第二发送路径向第二路由器发送所述测量报文。
第一NP每次生成测量报文,并确定出每一个测量报文的第二发送路径后,通过该测量报文的第二发送路径向第二路由器发送该测量报文。
步骤S204、第二NP根据第二路由器接收到的所述测量报文,确定该测量报文对应的第二流指示信息对应的第一时间、第二时间和第四数量。
第二路由器接收到任意一个测量报文后,第二路由器的第二NP根据该测量报文包含的发送时间戳、发送计数和该测量报文对应的第二流指示信息,确定第一NP发送该测量报文的发送时间,将该发送时间记为该第二流指示信息对应的第一时间,并且确定第一NP发送该测量报文时,已经通过该第二流指示信息对应的第二发送路径发送的经过处理后的待处理报文的数量,将该数量记为该第二流指示信息对应的第四数量,此外,第二NP还会记录第二路由器接收到该测量报文的接收时间,将该接收时间记为该第二流指示信息对应的第二时间。
步骤S205、第二NP根据所述第二流指示信息对应的第一时间、第二时间和第四数量确定该第二流指示信息对应的第二发送路径的丢包率和第三时延差。
结合图4所示实施例的内容可知,第一NP接收到待处理报文,通过网络隧道203向第二路由器发送该待处理报文之前,会在该待处理报文中添加一个报文头,该报文头包括第二信息,所以第二路由器接收到的经过处理后的待处理报文中包括第二信息。基于此,第二NP可以根据第二路由器接收到的经过处理后的待处理报文的第二信息,确定出第二路由器通过每一个第二流指示信息对应的第二发送路径接收到的经过处理后的待处理报文的数量,将该数量记为该第二流指示信息对应的第五数量。
第二NP可以根据每一个第二流指示信息对应的第一时间、第二时间、第四数量和第五数量,确定该第二流指示信息对应的第二发送路径的丢包率和第三时延差。
其中,第二NP确定第二流指示信息对应的第二发送路径的丢包率,可以按照下述方式实现:第二NP根据该第二流指示信息对应的第四数量和第五数量,以及下述关系式:丢包率=(第四数量-第五数量)/第四数量*100%,计算得到该第二流指示信息对应的第二发送路径的丢包率。
第二NP确定第二流指示信息对应的第二发送路径的第三时延差,可以按照下述方式实现:第二NP根据该第二流指示信息对应的第一时间和第二时间,以及下述关系式:第三时延差=第二时间-第一时间,计算得到该第二流指示信息对应的第二发送路径的第三时延差。
步骤S206、第二NP向第一路由器发送所述第二流指示信息对应的第二发送路径的丢包率和第三时延差。
可选的,第二NP确定出每一个第二流指示信息对应的第二发送路径的丢包率和第三时延差后,可以将该第二流指示信息对应的第二发送路径的丢包率和第三时延差,与该第二流指示信息一起发送给第一路由器。
可选的,第一NP还可以周期性的,将同一周期得到的每一个第二流指示信息,以及该第二流指示信息对应的第二发送路径的丢包率和第三时延差,一起对应发送给第一路由器。
步骤S207、第一CPU根据第一路由器接收到的第二流指示信息对应的第二发送路径的丢包率和第三时延差,获取该第二流指示信息对应的第二发送路径的质量信息。
第一路由器接收到每一个第二流指示信息对应的第二发送路径的丢包率和第三时延差后,第一路由器的第一CPU可以根据该第二流指示信息对应的第二发送路径的丢包率和第三时延差,获取该第二流指示信息对应的第二发送路径的质量信息。
第一CPU可以按照图5所示的方法,获取到网络隧道203对应的第二聚合流表包括的所有第二流指示信息中每一个第二流指示信息对应的第二发送路径的质量信息。在获取到每一个第二流指示信息对应的第二发送路径的质量信息后,第一CPU可以根据获取到的质量信息更新网络隧道203对应的第二精确匹配流表。
当第一NP按照第一预设时长,周期性的生成测量报文时,第一CPU可以周期性的获取到网络隧道203对应的第二聚合流表包括的所有第二流指示信息中每一个第二流指示信息对应的第二发送路径的质量信息。相应的,第一CPU可以周期性的对网络隧道203对应的第二精确匹配流表进行更新。下面以一个周期为例,结合图7,介绍第一CPU对网络隧道203对应的第二精确匹配流表进行更新的内容。
参见图7,图7为本申请提供的第二精确匹配流表的更新方法的一种实施方式的流程示意图。该方法可以包括以下步骤:
步骤S301、获取第二精确匹配流表包括的第二流指示信息对应的第二发送路径的质量信息和第一NP上报的采样数据。
结合图4所示实施例的内容可知,采样数据包括待处理报文和该待处理报文对应的第一信息。为了便于区分,本实施例中,将采样数据包括的待处理报文记为采样报文。
步骤S302、根据所述采样数据和所述质量信息更新所述第二精确匹配流表。
根据采样数据和质量信息更新第二精确匹配流表,可以按照下述方式实现:根据采样数据更新第二精确匹配流表的空闲表项;根据质量信息更新第二精确匹配流表的表项内容。其中,第二精确匹配流表的空闲表项是指第二精确匹配流表中表项信息为空的表项。
根据采样数据更新第二精确匹配流表的空闲表项,可以按照下述方式实现:获取采样数据包括的采样报文的报文字段;确定第二精确匹配流表中是否存在空闲表项;如果第二精确匹配流表中存在空闲表项,将采样报文的报文字段作为第二精确匹配流表的秘钥添加到空闲表项中,并且将该采样报文的第一信息作为该秘钥对应的表项内容的当前信息添加到该空闲表项中;或者,如果第二精确匹配流表中不存在空闲表项,则删除采样数据。其中,采样报文可以包括多个,可以按照此种实现方式,根据每一个采样报文更新第二精确匹配流表。
根据质量信息更新第二精确匹配流表的表项内容,可以按照下述方式实现:根据质量信息,确定第五信息和第六信息,其中第五信息是指质量好的第二发送路径对应的第二流指示信息,第六信息是指质量差的第二发送路径对应的第二流指示信息,当质量信息包括的丢包率小于等于丢包率阈值和/或第三时延差小于等于时延差阈值时,可以将该质量信息对应的第二发送路径确定为质量好的发送路径,当质量信息包括的丢包率大于丢包率阈值和/或第三时延差大于时延差阈值时,可以将该质量信息对应的第二发送路径确定为质量差的发送路径;将第二精确匹配流表中当前信息为第六信息的表项内容的新信息更新为第五信息,将当前信息为第六信息的表项内容的新旧路径时延差更新为第六信息对应的第三时延差与第五信息对应的第三时延差的差值,将当前信息为第六信息的表项内容的“是否使用新信息”更新为“是”。其中,丢包率阈值和时延差阈值都可以根据实际应用场景设置。
此外,还可以周期性的读取第二精确匹配流表包括的流计数,根据流计数确定该流计数对应的流是否为大象流,如果该流计数对应的流不是大象流,删除该流计数对应的表项。并且,还可以根据流计数确定该流计数对应的流是否在第二预设时长内没有新的报文到达,如果在第二预设时长内没有新的报文到达,删除该流计数对应的表项。其中,如果流计数大于等于报文数量阈值,可以确定该流计数对应的流为大象流。第二预设时长和报文数量阈值都可以根据实际应用场景进行设置。
本文中描述的各个方法实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本申请的保护范围中。
可以理解的是,上述各个方法实施例中,由报文处理装置、NP或CPU实现的方法和操作,也可以由可用于报文处理装置、NP或CPU的部件(例如芯片或者电路)实现。
上述主要从每一个网元之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,每一个网元,例如报文处理装置、NP或CPU等,为了实现上述功能,其包含了执行每一个功能相应的硬件结构或软件模块,或两者结合。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对报文处理装置、NP或CPU等进行功能模块的划分,例如,可以对应每一个功能划分每一个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应每一个功能划分每一个功能模块为例进行说明。
以上,结合图1至图7详细说明了本申请实施例提供的方法。以下,结合图8至图10详细说明本申请实施例提供的装置。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。
参见图8,图8为本申请提供的确定报文发送路径的装置的一种实施方式的结构框图。如图8所示,该装置800可以包括:获取模块801和处理模块802。该装置800可以用于执行上文方法实施例中第一报文处理装置所执行的动作。
例如:所述获取模块801,可以用于获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表;所述第一聚合流表包括第一表项信息;所述第一精确匹配流表包括第二表项信息。
所述处理模块802,可以用于根据所述待处理报文的报文字段和所述第一表项信息确定第一信息;根据所述报文字段、所述第二表项信息和所述第一信息确定第二信息;根据所述第二信息和所述第一等价路径表,确定所述待处理报文的第一发送路径。
可选的,所述处理模块802具体用于:当所述第二表项信息包括与所述报文字段匹配的第一秘钥时,根据所述第一秘钥对应的表项内容确定是否使用第三信息;所述第三信息为所述第一秘钥对应的表项内容包括的新信息;当使用所述第三信息时,获取第一时延差;所述第一时延差为所述第一秘钥对应的表项内容包括的新旧路径时延差;获取第二时延差;所述第二时延差为所述待处理报文到达所述装置的时间与其所在流中前一条报文到达所述装置的时间的间隔;当所述第二时延差大于所述第一时延差时,确定所述第三信息为所述第二信息。
可选的,所述处理模块802还用于:当不使用所述第三信息时,获取第四信息;所述第四信息为所述第一秘钥对应的表项内容包括的当前信息;确定所述第四信息为所述第二信息。
可选的,所述处理模块802还用于:当所述第二时延差小于等于所述第一时延差时,获取第四信息;所述第四信息为所述第一秘钥对应的表项内容包括的当前信息;确定所述第四信息为所述第二信息。
可选的,所述处理模块802具体用于:当所述第二表项信息不包括与所述报文字段匹配的第一秘钥时,确定所述第一信息为所述第二信息。
可选的,所述处理模块802具体用于:确定所述第一表项信息包含的表项的第一数量;对所述待处理报文的报文字段进行哈希计算,生成第一计算结果;根据所述第一计算结果和所述第一数量生成第一索引;根据所述第一索引和所述第一表项信息确定所述第一信息。
可选的,所述处理模块802具体用于:确定所述第一等价路径表对应的路径索引的第二数量;对所述第二信息进行哈希计算,生成第二计算结果;根据所述第二计算结果和所述第二数量生成第二索引;确定所述待处理报文的第一发送路径;所述第一发送路径是指路径索引为所述第二索引时,匹配所述第一等价路径表得到的路径信息指示的发送路径。
可选的,所述处理模块802还用于:在所述待处理报文中添加一个报文头,该报文头包括所述第二信息和所述第一发送路径的信息。
可选的,所述处理模块802还用于:将所述待处理报文和所述第一信息上报给CPU。
也就是说,该装置800可实现对应于根据本申请实施例的图4所示方法中第一报文处理装置执行的步骤或者流程,该装置800可以包括用于执行图4所示方法中第一报文处理装置执行的方法的模块。并且,该装置800中的各模块和上述其他操作和/或功能分别为了实现图4所示方法的相应步骤。例如,该装置800中的获取模块801可以用于执行图4所示方法中的步骤S101,处理模块802可以用于执行图4所示方法中的步骤S102至步骤S104。
应理解,各模块执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
参见图9,图9为本申请提供的获取发送路径质量信息的系统的一种实施方式的结构框图。如图9所示,该系统900可以包括:第一报文处理装置901、第二报文处理装置902和处理装置903。其中,第一报文处理装置901和处理装置903位于发送端,第二报文处理装置902位于目的端。该系统900可以用于执行上文图5所示方法实施例中第一NP、第二NP和第一CPU所执行的动作。
例如,第一报文处理装置901可以用于:生成测量报文;根据所述测量报文对应的第二流指示信息和第二等价路径表,确定该测量报文的第二发送路径;通过所述第二发送路径向第二报文处理装置902发送所述测量报文。
第二报文处理装置902可以用于:根据接收到的所述测量报文,确定该测量报文对应的第二流指示信息对应的第一时间、第二时间和第四数量;根据所述第二流指示信息对应的第一时间、第二时间和第四数量确定该第二流指示信息对应的第二发送路径的丢包率和第三时延差;向第一报文处理装置发送所述第二流指示信息对应的第二发送路径的丢包率和第三时延差。
处理装置903可以用于:根据第一报文处理装置901接收到的第二流指示信息对应的第二发送路径的丢包率和第三时延差,获取该第二流指示信息对应的第二发送路径的质量信息。
也就是说,该系统900可实现对应于根据本申请实施例的图5所示方法中第一NP、第二NP和第一CPU所执行的步骤或者流程,该系统900可以包括用于执行图5所示方法中第一NP、第二NP、第一CPU执行的方法的装置。并且,该系统900中的各装置和上述其他操作和/或功能分别为了实现图5所示方法的相应步骤。例如,该系统900中的第一报文处理装置901可以用于执行图5所示方法中的步骤S201至步骤S203,第二报文处理装置902可以用于执行图5所示方法中的步骤S204至步骤S206,处理装置903可以用于执行图5所示方法中的步骤S207。
应理解,各装置执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
本申请还提供了一种第二精确匹配流表的更新装置。该更新装置可以包括处理模块。该更新装置可以执行上述图7所示方法实施例中第一CPU的功能,或者实现上述图7所示方法实施例中第一CPU执行的步骤或者流程。
例如,该更新装置的处理模块可以用于:获取第二精确匹配流表包括的第二流指示信息对应的第二发送路径的质量信息和第一报文处理装置上报的采样数据;根据所述采样数据和所述质量信息更新所述第二精确匹配流表。
也就是说,该更新装置可实现对应于根据本申请实施例的图7所示方法中第一CPU所执行的步骤或者流程,该更新装置可以包括用于执行图7所示方法中第一CPU执行的方法的模块。并且,该更新装置中的各模块和上述其他操作和/或功能分别为了实现图7所示方法的相应步骤。例如,该更新装置中的处理模块可以用于执行图7所示方法中的步骤S301至步骤S302。
应理解,各模块执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
本申请实施例还提供了一种处理装置,包括处理器和接口。所述处理器可用于执行上述方法实施例中的方法。
应理解,上述处理装置可以是一个芯片。例如,参见图10,图10为本申请提供的芯片的一种实施方式的结构框图。图10所示的芯片可以为通用处理器,也可以为专用处理器。该芯片1000包括处理器1001。其中,处理器1001可以用于支持图8所示的装置执行图4所示的技术方案,支持图9所示的装置执行图5所示的技术方案,以及支持上述更新装置执行图7所示的技术方案。
可选的,该芯片1000还可以包括收发器1002,收发器1002用于接受处理器1001的控制,用于支持图8所示的装置执行图4所示的技术方案,支持图9所示的装置执行图5所示的技术方案,以及支持上述更新装置执行图7所示的技术方案。可选的,图10所示的芯片1000还可以包括:存储介质1003。
需要说明的是,图10所示的芯片可以使用下述电路或者器件来实现:一个或多个现场可编程门阵列(field programmable gate array,FPGA)、可编程逻辑器件(programmable logic device,PLD)、专用集成芯片(application specific integratedcircuit,ASIC)、系统芯片(system on chip,SoC)、中央处理器(central processor unit,CPU)、网络处理器(network processor,NP)、数字信号处理电路(digital signalprocessor,DSP)、微控制器(micro controller unit,MCU),控制器、状态机、门逻辑、分立硬件部件、任何其他适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应注意,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
根据本申请实施例提供的方法,本申请实施例还提供一种计算机程序产品,该计算机程序产品包括:计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得该计算机执行图4、图5、图7所示实施例中任意一个实施例的方法。
根据本申请实施例提供的方法,本申请实施例还提供一种计算机存储介质,该计算机存储介质存储有计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得该计算机执行图4、图5、图7所示实施例中任意一个实施例的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disc,SSD))等。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在两个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例提供的确定报文发送路径的装置、获取发送路径质量信息的系统、第二精确匹配流表的更新装置、计算机存储介质、计算机程序产品、芯片均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文所提供的方法对应的有益效果,在此不再赘述。
应理解,在本申请的各个实施例中,各步骤的执行顺序应以其功能和内在逻辑确定,各步骤序号的大小并不意味着执行顺序的先后,不对实施例的实施过程构成限定。
本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,确定报文发送路径的装置、获取发送路径质量信息的系统、第二精确匹配流表的更新装置、计算机存储介质、计算机程序产品、芯片的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (19)
1.一种确定报文发送路径的方法,其特征在于,所述方法应用于第一报文处理装置,包括:
获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表;所述第一聚合流表包括第一表项信息;所述第一精确匹配流表包括第二表项信息;
根据所述待处理报文的报文字段和所述第一表项信息确定第一信息;
根据所述报文字段、所述第二表项信息和所述第一信息确定第二信息;
根据所述第二信息和所述第一等价路径表,确定所述待处理报文的第一发送路径。
2.根据权利要求1所述的方法,其特征在于,所述根据所述报文字段、所述第二表项信息和所述第一信息确定第二信息,包括:
当所述第二表项信息包括与所述报文字段匹配的第一秘钥时,根据所述第一秘钥对应的表项内容确定是否使用第三信息;所述第三信息为所述第一秘钥对应的表项内容包括的新信息;
当使用所述第三信息时,获取第一时延差;所述第一时延差为所述第一秘钥对应的表项内容包括的新旧路径时延差;
获取第二时延差;所述第二时延差为所述待处理报文到达所述第一报文处理装置的时间与其所在流中前一条报文到达所述第一报文处理装置的时间的间隔;
当所述第二时延差大于所述第一时延差时,确定所述第三信息为所述第二信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当不使用所述第三信息时,获取第四信息;所述第四信息为所述第一秘钥对应的表项内容包括的当前信息;
确定所述第四信息为所述第二信息。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述第二时延差小于等于所述第一时延差时,获取第四信息;所述第四信息为所述第一秘钥对应的表项内容包括的当前信息;
确定所述第四信息为所述第二信息。
5.根据权利要求1所述的方法,其特征在于,所述根据所述报文字段、所述第二表项信息和所述第一信息确定第二信息,包括:
当所述第二表项信息不包括与所述报文字段匹配的第一秘钥时,确定所述第一信息为所述第二信息。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述根据所述待处理报文的报文字段和所述第一表项信息确定第一信息,包括:
确定所述第一表项信息包含的表项的第一数量;
对所述待处理报文的报文字段进行哈希计算,生成第一计算结果;
根据所述第一计算结果和所述第一数量生成第一索引;
根据所述第一索引和所述第一表项信息确定所述第一信息。
7.根据权利要求1至6任意一项所述的方法,其特征在于,所述根据所述第二信息和所述第一等价路径表,确定所述待处理报文的第一发送路径,包括:
确定所述第一等价路径表对应的路径索引的第二数量;
对所述第二信息进行哈希计算,生成第二计算结果;
根据所述第二计算结果和所述第二数量生成第二索引;
确定所述待处理报文的第一发送路径;所述第一发送路径是指路径索引为所述第二索引时,匹配所述第一等价路径表得到的路径信息指示的发送路径。
8.根据权利要求1至7任意一项所述的方法,其特征在于,所述方法还包括:
在所述待处理报文中添加一个报文头,该报文头包括所述第二信息和所述第一发送路径的信息。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括:将所述待处理报文和所述第一信息上报给CPU。
10.一种确定报文发送路径的装置,其特征在于,所述装置包括:获取模块和处理模块;
所述获取模块,用于获取待处理报文的第一等价路径表、第一聚合流表和第一精确匹配流表;所述第一聚合流表包括第一表项信息;所述第一精确匹配流表包括第二表项信息;
所述处理模块,用于根据所述待处理报文的报文字段和所述第一表项信息确定第一信息;根据所述报文字段、所述第二表项信息和所述第一信息确定第二信息;根据所述第二信息和所述第一等价路径表,确定所述待处理报文的第一发送路径。
11.根据权利要求10所述的装置,其特征在于,所述处理模块具体用于:
当所述第二表项信息包括与所述报文字段匹配的第一秘钥时,根据所述第一秘钥对应的表项内容确定是否使用第三信息;所述第三信息为所述第一秘钥对应的表项内容包括的新信息;
当使用所述第三信息时,获取第一时延差;所述第一时延差为所述第一秘钥对应的表项内容包括的新旧路径时延差;
获取第二时延差;所述第二时延差为所述待处理报文到达所述装置的时间与其所在流中前一条报文到达所述装置的时间的间隔;
当所述第二时延差大于所述第一时延差时,确定所述第三信息为所述第二信息。
12.根据权利要求11所述的装置,其特征在于,所述处理模块还用于:
当不使用所述第三信息时,获取第四信息;所述第四信息为所述第一秘钥对应的表项内容包括的当前信息;
确定所述第四信息为所述第二信息。
13.根据权利要求11所述的装置,其特征在于,所述处理模块还用于:
当所述第二时延差小于等于所述第一时延差时,获取第四信息;所述第四信息为所述第一秘钥对应的表项内容包括的当前信息;
确定所述第四信息为所述第二信息。
14.根据权利要求10所述的装置,其特征在于,所述处理模块具体用于:
当所述第二表项信息不包括与所述报文字段匹配的第一秘钥时,确定所述第一信息为所述第二信息。
15.根据权利要求10至14任意一项所述的装置,其特征在于,所述处理模块具体用于:
确定所述第一表项信息包含的表项的第一数量;
对所述待处理报文的报文字段进行哈希计算,生成第一计算结果;
根据所述第一计算结果和所述第一数量生成第一索引;
根据所述第一索引和所述第一表项信息确定所述第一信息。
16.根据权利要求10至15任意一项所述的装置,其特征在于,所述处理模块具体用于:
确定所述第一等价路径表对应的路径索引的第二数量;
对所述第二信息进行哈希计算,生成第二计算结果;
根据所述第二计算结果和所述第二数量生成第二索引;
确定所述待处理报文的第一发送路径;所述第一发送路径是指路径索引为所述第二索引时,匹配所述第一等价路径表得到的路径信息指示的发送路径。
17.根据权利要求10至16任意一项所述的装置,其特征在于,所述处理模块还用于:
在所述待处理报文中添加一个报文头,该报文头包括所述第二信息和所述第一发送路径的信息。
18.根据权利要求14所述的装置,其特征在于,所述处理模块还用于:将所述待处理报文和所述第一信息上报给CPU。
19.一种装置,其特征在于,包括处理器和存储器;
所述处理器,用于执行所述存储器中存储的计算机程序或指令,当所述计算机程序或指令被执行时,使得所述装置实现权利要求1至9中任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010547999.7A CN113810284A (zh) | 2020-06-16 | 2020-06-16 | 确定报文发送路径的方法及装置 |
PCT/CN2021/100032 WO2021254307A1 (zh) | 2020-06-16 | 2021-06-15 | 确定报文发送路径的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010547999.7A CN113810284A (zh) | 2020-06-16 | 2020-06-16 | 确定报文发送路径的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113810284A true CN113810284A (zh) | 2021-12-17 |
Family
ID=78944277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010547999.7A Pending CN113810284A (zh) | 2020-06-16 | 2020-06-16 | 确定报文发送路径的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113810284A (zh) |
WO (1) | WO2021254307A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041139B (zh) * | 2023-10-09 | 2024-03-26 | 腾讯科技(深圳)有限公司 | 数据包传输方法、装置、计算机设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8750121B2 (en) * | 2011-10-28 | 2014-06-10 | Telefonaktiebolaget L M Ericsson (Publ) | Addressing the large flow problem for equal cost multi-path in the datacenter |
CN107634912B (zh) * | 2016-07-19 | 2020-04-28 | 华为技术有限公司 | 负载均衡方法、装置及设备 |
CN106487676A (zh) * | 2016-10-27 | 2017-03-08 | 盛科网络(苏州)有限公司 | 一种基于大象流的动态ecmp芯片实现方法 |
CN108965121B (zh) * | 2017-05-19 | 2021-06-01 | 华为技术有限公司 | 传输数据的方法、主机和交换机 |
-
2020
- 2020-06-16 CN CN202010547999.7A patent/CN113810284A/zh active Pending
-
2021
- 2021-06-15 WO PCT/CN2021/100032 patent/WO2021254307A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2021254307A1 (zh) | 2021-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10742532B2 (en) | Non-intrusive mechanism to measure network function packet processing delay | |
US10355971B2 (en) | System and method for data path validation and verification | |
US20100085891A1 (en) | Apparatus and method for analysing a network | |
US20070223388A1 (en) | Hardware implementation of network testing and performance monitoring in a network device | |
CN111385121B (zh) | 一种操作管理维护iOAM报文的传输方法及相应装置 | |
US20220407791A1 (en) | Network performance detection method and apparatus, and network device | |
CN110971445B (zh) | 一种网络的oam方法及装置 | |
WO2022078293A1 (zh) | 组播业务流的检测方法及相关装置 | |
CN112787927B (zh) | 一种分段路由报文转发方法、装置及预设逻辑电路单元 | |
CN111026324B (zh) | 转发表项的更新方法及装置 | |
US20230300051A1 (en) | In-band Edge-to-Edge Round-Trip Time Measurement | |
CN113810284A (zh) | 确定报文发送路径的方法及装置 | |
CN112019393B (zh) | 一种确定时延的方法及装置 | |
CN115242892B (zh) | 一种流标识获取方法、装置、设备及介质 | |
CN113708985B (zh) | 一种流量的检测方法、装置及系统 | |
US11388090B2 (en) | Bandwidth measurement method and measurement device | |
WO2020259113A1 (zh) | 一种网络性能测量装置及方法 | |
WO2024055584A1 (zh) | 时延测量方法、电子设备、计算机可读介质 | |
WO2020135445A1 (zh) | 对路由震荡的定位 | |
CN113452614B (zh) | 一种报文处理方法和装置 | |
WO2021254474A1 (zh) | 一种网络测量方法及装置 | |
CN115695246A (zh) | 一种基于SRv6的隧道质量检测方法和相关装置 | |
CN116137599A (zh) | 一种报文统计方法及相关设备 | |
MITCHELL | A Prototype MPLS Packet Trailers Processor |
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 |