CN111026324B - 转发表项的更新方法及装置 - Google Patents
转发表项的更新方法及装置 Download PDFInfo
- Publication number
- CN111026324B CN111026324B CN201811172338.XA CN201811172338A CN111026324B CN 111026324 B CN111026324 B CN 111026324B CN 201811172338 A CN201811172338 A CN 201811172338A CN 111026324 B CN111026324 B CN 111026324B
- Authority
- CN
- China
- Prior art keywords
- message
- write operation
- control message
- sent
- control
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/026—Details of "hello" or keep-alive messages
-
- 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/74—Address processing for 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9078—Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
Abstract
本申请提供了一种转发表项的更新方法及装置,属于通信领域。在该方法中,报文发送端发送的写操作报文中的写操作信息包括写操作数据和写操作地址,报文接收端接收到该写操作报文后,可以获取写操作信息,并可以直接根据该写操作地址,将写操作数据写入内存中,从而完成转发表项的更新。由于报文接收端仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此报文发送端下发写操作报文的速率不会受到报文接收端处理性能的限制,有效提高了转发表项的下发速率和更新效率。
Description
技术领域
本申请涉及通信领域,特别涉及一种转发表项的更新方法及装置。
背景技术
为了提高路由器的数据吞吐量,目前路由器一般采用分布式方式部署,该分布式部署的路由器也可以称为路由系统。该路由系统可以包括服务器、与该服务器连接的线卡盒子,以及与该线卡盒子连接的交换盒子。其中,服务器为路由系统的主控设备,其运行有各种网络协议。线卡盒子中部署有网络处理器,用于实现包处理、协议分析和路由查找等硬转发功能。交换盒子用于实现数据报文的交换。
相关技术中,服务器可以与线卡盒子建立通信连接,并可以向该线卡盒子发送用于指示添加或删除转发表项的指示信息。线卡盒子的网络处理器通过业务接口收到该指示信息后,可以将该指示信息转发给处理器,处理器可以按照路由算法对该指示信息进行处理,生成写操作数据,并可以将该写操作数据发送至网络处理器。网络处理器进而可以将该写操作数据写入内存,从而完成转发表项的更新。
但是,由于线卡盒子的处理器的处理性能有限,因此服务器下发指示信息的速率受限,转发表项的更新效率较低。
发明内容
本申请提供了一种转发表项的更新方法及装置,可以解决相关技术中转发表项的更新效率较低的问题,技术方案如下:
第一方面,提供了一种转发表项的更新方法,该方法可以应用于报文接收端,该方法可以包括:
接收写操作报文,该写操作报文中包括写操作信息,该写操作信息包括写操作数据和写操作地址,该写操作数据用于指示待更新的转发表项,该写操作地址用于指示内存中待写入该写操作数据的地址;从该写操作报文中获取该写操作信息;根据该写操作信息中的写操作地址,将该写操作数据写入该内存。
本申请提供的转发表项的更新方法,报文接收端可以直接根据写操作报文中的写操作地址,将写操作数据写入内存中。由于报文接收端仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此报文发送端下发写操作报文的速率不会受到报文接收端处理性能的限制,有效提高了转发表项的下发速率和更新效率。
可选的,报文接收端在将该写操作数据写入内存之后,该方法还可以包括:
接收第一控制报文,该第一控制报文中包括计数值;检测在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值是否相等;其中,该写内存操作是指将写操作数据写入内存的操作,该计数值为报文发送端在第二控制报文和该第一控制报文之间发送的写操作报文中所包括的写操作信息的总数,该第二控制报文为在该第一控制报文之前发送的前一个控制报文;
当该计数值与该总次数不相等时,报文接收端可以发送第一提示信息,该第一提示信息用于指示报文发送端在该第二控制报文之后发送的写操作报文丢失;之后,报文接收端即可接收报文发送端基于该第一提示信息重新发送的写操作报文。
报文接收端基于第一控制报文中的计数值检测是否存在写操作报文丢失,当检测到写操作报文丢失时,可以通过第一提示信息指示报文发送端重新发送写操作报文,由此可以确保转发表项的正确更新,提高了转发表项更新时的可靠性。
可选的,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增;在报文接收端接收到第一控制报文之后,该方法还可以包括:
检测该第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值,该第三控制报文为在该第一控制报文之前接收到的前一个控制报文;
相应的,报文接收端检测在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值是否相等的过程可以包括:
当该第一控制报文的序列号与该第三控制报文的序列号的差值为预设差值时,确定该第三控制报文为该第二控制报文,并检测在接收到该第三控制报文之后执行的写内存操作的总次数与该计数值是否相等。
由于控制报文在传输过程中可能丢失,因此报文接收端在检测计数值之前,可以先通过第一控制报文的序列号检测是否有控制报文丢失,当检测到控制报文未丢失时再继续检测计数值,可以确保计数值检测的准确性和可靠性。
可选的,报文接收端在检测到该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时,还可以发送第二提示信息,该第二提示信息用于指示在该第三控制报文之后发送的控制报文丢失;之后,报文接收端即可接收基于该第二提示信息重新发送的写操作报文。
当报文接收端基于第一控制报文的序列号检测到有控制报文丢失时,为了确保能够对已执行的写内存操作的次数进行有效检测,可以通过第二提示信息指示报文发送端重新发送写操作报文,由此可确保转发表项的正确更新,提高转发表项更新时的可靠性。
可选的,该方法还可以包括:
接收保活报文,该保活报文中包括序列号,该报文发送端发送的该保活报文的序列号与在该保活报文之前发送的前一个控制报文的序列号的差值为该预设差值;检测该保活报文的序列号与第四控制报文的序列号的差值是否为该预设差值,该第四控制报文为在该保活报文之前接收到的前一个控制报文;当该保活报文的序列号与该第四控制报文的序列号的差值不为该预设差值时,报文接收端可以发送第三提示信息,该第三提示信息用于指示在该第四控制报文之后发送的控制报文丢失;之后,报文接收端即可接收基于该第三提示信息重新发送的写操作报文。
报文发送端长时间无写操作报文发送时,可以发送保活报文,报文接收端还可以通过该保活报文判断是否有控制报文丢失。从而可以在检测到有控制报文丢失时,及时通过第三提示信息指示报文发送端重新发送写操作报文,确保转发表项的正确更新。
可选的,该写操作报文中还可以包括序列号,且报文发送端在两个控制报文之间发送的写操作报文的序列号的大小均与在后发送的控制报文的序列号的大小相等;报文接收端在将该写操作数据写入内存之后,还可以统计基于同一序列号的写操作报文执行的写内存操作的总次数,得到序列号与总次数的对应关系;
相应的,报文接收端检测在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值是否相等的过程可以包括:
获取该第一控制报文的序列号所对应的总次数,并检测该第一控制报文的序列号所对应的总次数与该计数值是否相等。
报文接收端以写操作报文的序列号为索引对写内存操作的总次数进行统计,以便接收到控制报文时,可以直接以控制报文的序列号为索引,获取对应的总次数,由此有效提高了检测验证总次数的效率,进而提高了转发表项的更新效率。
可选的,报文接收端在根据该写操作信息中的写操作地址,将该写操作数据写入内存时,可以按照该写操作报文的接收顺序,以及该写操作报文中包括的该写操作信息的顺序,依次根据每个该写操作信息中的写操作地址,将该写操作数据写入内存。
报文接收端按照写操作报文的接受顺序。以及写操作报文中包括的写操作信息的顺序,按序执行写内存操作,可以保证转发表项的正确更新。
第二方面,提供了一种转发表项的更新方法,该方法可以应用于报文发送端,该方法可以包括:
根据待更新的转发表项生成写操作信息,该写操作信息包括写操作数据和写操作地址,该写操作数据用于指示该待更新的转发表项,该写操作地址用于指示待写入该写操作数据的地址;将生成的该写操作信息封装为写操作报文,并发送该写操作报文,该写操作报文用于指示根据该写操作信息中的写操作地址,将该写操作数据写入内存。
本申请提供的方法,报文接收端可以直接根据写操作报文中的写操作信息执行写内存的操作,而无需再执行计算写操作数据的操作,从而提高了转发表项的下发速率和更新效率。
可选的,该方法还可以包括:
发送第一控制报文,该第一控制报文中包括计数值,该计数值为在发送第二控制报文之后发送的写操作报文中所包括的写操作信息的总数,该第二控制报文为在该第一控制报文之前发送的前一个控制报文;当接收到用于指示在该第二控制报文之后发送的写操作报文丢失的第一提示信息时,重新发送在该第二控制报文之后发送的写操作报文;其中,该第一提示信息为报文接收端检测到在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值不相等时发送的。
报文发送端发送第一控制报文,使得报文接收端可以基于第一控制报文中的计数值,检测是否存在写操作报文丢失。当检测到写操作报文丢失时,可以通过第一提示信息指示报文发送端重新发送写操作报文,由此可以确保转发表项的正确更新,提高了转发表项更新时的可靠性。
可选的,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增;该方法还可以包括:
当接收到用于指示在第三控制报文之后发送的控制报文丢失的第二提示信息时,重新发送在该第三控制报文之后发送的写操作报文;其中,该第二提示信息为报文接收端在检测到该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时发送的,该第三控制报文为该报文接收端在该第一控制报文之前接收到的前一个控制报文。
报文发送端接收到用于指示控制报文丢失的第二提示信息时,可以重新发送写操作报文,由此可以确保转发表项的正确更新,提高了转发表项更新时的可靠性。
可选的,在每次发送控制报文之后,该方法还可以包括:
检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值;当该空闲时长大于该时长阈值时,发送保活报文,该保活报文中包括序列号,且该保活报文的序列号与上一个控制报文的序列号的差值为该预设差值;当接收到用于指示在第四控制报文之后发送的控制报文丢失的第三提示信息时,重新发送在该第四控制报文之后发送的写操作报文;其中,该第三提示信息为报文接收端在检测到接收到的该保活报文的序列号与该第四控制报文的序列号的差值不为预设差值时发送的,该第四控制报文为该报文接收端在该保活报文之前接收到的前一个控制报文。
报文发送端接收到用于指示控制报文丢失的第三提示信息时,可以重新发送写操作报文,由此可以确保转发表项的正确更新,提高了转发表项更新时的可靠性。
第三方面,提供了一种转发表项的更新装置,该装置可以应用于报文接收端,该装置可以包括至少一个模块,且该至少一个模块可以用于实现上述第一方面所提供的转发表项的更新方法。
第四方面,提供了一种转发表项的更新装置,该装置可以应用于报文发送端,该装置可以包括至少一个模块,且该至少一个模块可以用于实现上述第二方面所提供的转发表项的更新方法。
第五方面,提供了一种转发表项的更新装置,该装置可以包括:存储器,处理器及存储在该存储器上并可在该处理器上运行的计算机程序,该处理器执行该计算机程序时实现如上述第一方面所提供的转发表项的更新方法,或者如上述第二方面所提供的转发表项的更新方法。
第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质中存储的指令在计算机上运行时,使得计算机执行如上述第一方面所提供的转发表项的更新方法,或者如上述第二方面所提供的转发表项的更新方法。
第七方面,提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述第一方面所提供的转发表项的更新方法,或者上述第二方面所提供的转发表项的更新方法。
第八方面,提供了一种转发表项的发送系统,该系统可以包括:报文发送端和报文接收端;该报文发送端可以包括上述第四方面所提供的装置;该报文接收端可以包括如上述第三方面所提供的装置。
综上所述,本发明实施例提供了一种转发表项的更新方法及装置,报文发送端发送的写操作报文中的写操作信息包括写操作数据和写操作地址,报文接收端可以直接根据该写操作地址,将写操作数据写入内存中,从而完成转发表项的更新。由于报文接收端仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此报文发送端下发写操作报文的速率不会受到报文接收端处理性能的限制,有效提高了转发表项的下发速率和更新效率。
附图说明
图1是本发明实施例提供的一种路由系统的结构示意图;
图2是本发明实施例提供的一种线卡盒子的结构示意图;
图3是本发明实施例提供的一种转发表项的更新方法的流程图;
图4是本发明实施例提供的一种写操作报文的结构示意图;
图5是本发明实施例提供的一种服务器的架构图;
图6是本发明实施例提供的一种线卡盒子的局部结构示意图;
图7是本发明实施例提供的一种线卡盒子的架构图;
图8是本发明实施例提供的另一种线卡盒子的架构图;
图9是本发明实施例提供的一种控制报文的结构示意图;
图10是本发明实施例提供的一种重新发送写操作报文的方法的流程图;
图11是本发明实施例提供的一种保活报文的结构示意图;
图12是本发明实施例提供的又一种线卡盒子的架构图;
图13是本发明实施例提供的一种服务器缓存写操作信息的示意图;
图14是本发明实施例提供的一种转发表项的更新装置的结构示意图;
图15是本发明实施例提供的另一种转发表项的更新装置的结构示意图;
图16是本发明实施例提供的又一种转发表项的更新装置的结构示意图;
图17是本发明实施例提供的再一种转发表项的更新装置的结构示意图;
图18是本发明实施例提供的再一种转发表项的更新装置的结构示意图。
具体实施方式
下面结合附图详细介绍本申请实施例提供的转发表项的更新方法。
图1是本发明实施例提供的一种路由系统的结构示意图,如图1所示,该路由系统可以包括:服务器01、多个线卡盒子02以及多个交换盒子03。其中,每个线卡盒子02均与该服务器01连接,且每个线卡盒子02可以与至少一个交换盒子03连接。该多个交换盒子03可以级联。其中,服务器01可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者还可以是一个云计算服务中心。该服务器01为该路由系统的主控设备,其运行有各种网络协议,用于实现对多个线卡盒子02的统一管理,因此也可以称为主控服务器或者控制面服务器。每个线卡盒子02中可以部署有核心处理器,该核心处理器可以为网络处理器(network processor,NP)、专用集成电路(application specific integrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)等硬转发器件,该核心处理器用于实现包处理、协议分析和路由查找等转发功能。其中,硬转发器件是指线卡盒子02中专用于实现转发功能的硬件。交换盒子03用于实现数据报文的交换。该分布式部署的路由系统的架构为横向扩展(scale-out)架构,线卡盒子02和交换盒子03的数量可以根据应用场景的需求增加,该路由系统的吞吐量较高,因此也可以称为拍字节(petabyte,PB)路由器。
图2是本发明实施例提供的一种线卡盒子的结构示意图。以该线卡盒子中的核心处理器为NP为例进行说明,如图2所示,每个线卡盒子02可以包括中央处理器(centralprocessing unit,CPU)、NP、内存和流量管理(traffic management,TM)模块。该NP分别与该CPU、内存和TM模块连接。该NP还可以通过业务侧接口与服务器01连接,该TM模块可以通过交换侧接口与交换盒子03连接。其中,该业务侧接口和交换侧接口可以均为以太网口。参考图2可以看出,该NP可以包括处理器核以及外设部件高速互连(peripheral componentinterconnect express,PCIE)模块,该PCIE模块可以通过PCIE总线与CPU连接,并通过内部总线与内存连接。处理器核可以通过业务侧接口与服务器01连接,并且处理器核还可以通过以太网接口与CPU连接,并通过内部总线与内存连接。
相关技术中,NP的处理器核可以通过业务接口与服务器01建立传输控制协议(transmission control protocol,TCP)连接。当该处理器核接收到服务器01发送的用于指示更新转发表项的指示信息后,可以将该指示信息转发给CPU,CPU可以基于路由算法表的格式,对该指示信息进行处理,生成写操作数据,并可以将该写操作数据通过PCIE总线发送至NP的PCIE模块。NP的PCIE模块进而可以将接收到的写操作数据串行写入内存,从而完成转发表项的更新。
但是,考虑到线卡盒子02的散热和功耗等硬件限制,其CPU的处理性能存在瓶颈,且单个线卡盒子02中所能够部署的CPU的个数也有限,因此该NP中CPU的处理性能会限制服务器下发指示信息的速率,进而限制转发表项的更新效率。并且,由于CPU需要通过PCIE总线来传输写操作数据,该PCIE总线的带宽也会限制写操作数据的下发效率,从而影响转发表项的更新效率。
本发明实施例提供了一种转发表项的更新方法,可以解决相关技术中转发表项更新效率较低的问题,该方法可以应用于需要通过报文发送端对报文接收端的转发表项进行更新的场景。例如,可以应用于图1所示的路由系统中,该路由系统的报文发送端为服务器01,报文接收端为线卡盒子02。在其他场景中,报文发送端和报文接收端还可以为其他类型的网元设备,例如报文接收端还可以为交换机等。
下面以该转发表项的更新方法应用于图1所示的路由系统为例,也即,以报文发送端为服务器,报文接收端为线卡盒子为例,对该转发表项的更新方法进行详细介绍。参考图3,该方法可以包括:
步骤101、服务器根据待更新的转发表项生成写操作信息。
在本发明实施例中,线卡盒子中可以存储有用于指导其进行数据流量转发的表,例如路由表(routing info base,RIB)和转发表(forwarding info base,FIB)等。该路由表和转发表中的转发表项可以是服务器基于路由协议学习得到并下发至线卡盒子的,或者可以是服务器根据本地静态配置下发至线卡盒子的。该待更新的转发表项可以是指该路由表或转发表中需要更新的表项,例如需要添加、更改或删除的路由。
服务器获取到待更新的转发表项后,可以根据线卡盒子中路由算法表的格式,生成用于指示该待更新的转发表项的写操作数据,该写操作数据可以包括目的地址、输出接口和下一跳互联网协议(internet protocol,IP)地址等数据。并且,服务器可以根据该待更新的转发表项在内存中的存储地址,确定该写操作数据的写操作地址,即线卡盒子的内存中待写入该写操作数据的地址。服务器根据每个待更新的转发表项(即每条待更新的路由)可以生成一个或多个写操作信息,每个写操作信息可以包括写操作数据以及对应的写操作地址。其中,服务器根据待删除的路由生成的写操作信息中,写操作地址可以为该待删除的路由在线卡盒子的内存中的存储地址,写操作数据可以为缺省值或者可以为0。
步骤102、服务器将生成的写操作信息封装为写操作报文。
服务器可以根据与线卡盒子之间的通信协议,按照该通信协议指定的报文封装格式对写操作信息进行封装,得到写操作报文。例如,假设该服务器与线卡盒子之间建立的通信协议为以太网协议,则服务器可以按照以太网帧格式对该写操作信息进行封装,得到写操作报文。
可选的,服务器可以将基于一个待更新的转发表项生成的一个或多个写操作信息封装在一个写操作报文中;或者,也可以将基于多个待更新的转发表项生成的多个写操作信息封装在一个写操作报文中,以提高链路的利用率。因此服务器封装得到的每个写操作报文可以包括至少一个写操作信息。其中,至少一个是指一个或多个。
图4是本发明实施例提供的一种写操作报文的结构示意图。如图4所示,该服务器生成的写操作报文可以包括:MAC头字段、IP头字段、UDP头字段、SN字段、W_Num字段以及数据字段。
其中,MAC头字段包括该写操作报文的目的媒体访问控制(media accesscontrol,MAC)地址和源MAC地址等信息。IP头字段中包括该写操作报文的目的IP和源IP等信息,并且,该目的IP中还可以添加写操作标识,线卡盒子的NP接收到该写操作报文后,可以根据该目的IP中的写操作标识,确定该写操作报文为用于指示执行写内存操作的报文。UDP头字段中可以包括该写操作报文的源端口号和目的端口号等信息,其中该源端口号中还可以添加用于指示该报文的类型为写操作报文的标识,例如该标识可以为0。
SN字段用于记录该写操作报文的序列号(sequence number,SN)。服务器可以分批次发送写操作报文,每个批次可以包括一个或多个写操作报文。每个批次包括的写操作报文的序列号的大小相等,且每个批次的写操作报文的序列号与前一批次的写操作报文的序列号的差值为预设差值,即服务器发送的各批次的写操作报文的序列号依次递增。
W_Num字段用于记录该写操作报文中包括的写操作信息的个数,即该写操作报文所指示的写内存操作的个数。
数据字段可以包括至少一个写操作信息,即该数据字段可以包括一个或多个写操作信息。例如图4所示的写操作报文中包括n个写操作信息,n为大于1的整数。其中,每个写操作信息可以包括写操作数据以及对应的写操作地址。例如,写操作信息1中可以包括:写操作地址1和写操作数据1;写操作信息n中可以包括:写操作地址n和写操作数据n。
图5是本发明实施例提供的一种服务器的架构图,如图5所示,该服务器可以是由主服务器011以及多个计算服务器012组成的服务器集群。其中,每个计算服务器012可以用于根据待更新的转发表项计算生成写操作信息,并封装写操作报文。该主服务器011可以用于将写操作报文下发至线卡盒子02。该多个计算服务器012可以并行生成写操作报文,确保了写操作报文的生成速率。并且由于该服务器集群中的计算服务器012的数量可以根据应用需求灵活调整,其生成写操作报文的性能可以灵活提升,没有性能瓶颈,因此可以确保写操作报文的生成速率和下发速率。
当然,该服务器01也可以不采用服务器集群的方式实现,而是采用单台性能较强的服务器,本发明实施例对该服务器01的实现方式不做限定。
步骤103、服务器向线卡盒子发送该写操作报文。
服务器可以基于与线卡盒子建立的通信连接,向该线卡盒子发送写操作报文。线卡盒子可以接收该服务器发送的写操作报文。例如,线卡盒子的NP可以通过业务侧接口接收该写操作报文。
步骤104、线卡盒子从该写操作报文中获取该写操作信息。
线卡盒子接收到该写操作报文后,可以根据与服务器之间的通信协议,按照该通信协议指定的报文封装格式对该写操作报文进行解封装,从而获取到该写操作报文中的写操作信息。当写操作报文中包括多个写操作信息时,线卡盒子还可以根据该写操作报文中的W_Num字段确定该写操作报文中包括的写操作信息的个数,进而可以按照每个写操作信息的长度(即占用的字节数),依次获取每个写操作信息。其中,每个写操作信息的长度可以是报文封装格式中指定的固定值。
示例的,假设线卡盒子的NP接收到的写操作报文的结构如图4所示,每个写操作信息的长度为k字节(k为大于1的整数)。则NP可以按照以太网帧格式对写操作报文进行解封装。在解封装的过程中,可以根据获取到的写操作报文中目的IP中的写操作标识,确定该写操作报文为用于指示执行写内存操作的报文。进而可以根据该W_Num字段确定该写操作报文中包括的写操作信息的个数为n,之后即可读取该写操作报文的数据字段,并可以将从该数据字段中读取到的每个k个字节确定为一个写操作信息,由此可以依次获取到写操作信息1至写操作信息n。
步骤105、线卡盒子根据该写操作信息中的写操作地址,将该写操作数据写入内存。
在本发明实施例中,当写操作报文中包括多个写操作信息时,线卡盒子可以按照写操作报文中该多个写操作信息的顺序,从数据字段的第一个写操作信息(即最靠近各个头字段的写操作信息)开始,依次根据每个写操作信息中的写操作地址,将该写操作信息中的写操作数据写入至内存。由于服务器基于每个待更新的转发表项可能生成多个写操作信息,因此按照写操作信息的顺序依次写入写操作数据,可以确保转发表项的正确更新。其中,每个写操作信息中写操作地址和写操作数据的顺序和长度可以均为报文封装格式中预先设定的,例如,每个写操作信息占用的字节数k可以为:k=k1+k2,其前k1个字节为写操作地址,后k2个字节为写操作数据。线卡盒子可以按照该预先设定的顺序和长度,将从写操作信息中读取到的前k1个字节作为写操作地址,并将读取到的后k2个字节作为写操作数据。
例如,对于图4所示的写操作报文,NP可以从写操作信息1开始,依次读取每个写操作信息中的写操作地址和写操作数据,并将每个写操作信息中的写操作数据写入内存中的对应地址。其中,将每个写操作信息中的写操作数据写入内存即相当于执行了一次写内存操作。
由于在本发明实施例提供的方法中,线卡盒子仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此服务器下发写操作报文的速率不会受到线卡盒子性能的限制,有效提高了转发表项的下发速率和更新效率。目前核心路由器中路由表的规格一般为10兆(M),即包括107条路由,相关技术中的路由下发速率一般为50千(K)条路由每秒,即每秒50000条,10M条路由下发完成需要200秒。而采用本发明实施例提供的方法,路由下发速率可以提升至1M每秒,10M条路由下发完成仅需10秒,下发速率提升了20倍。
可选的,该线卡盒子的NP可以包括多个处理器核,该多个处理器核可以并行对写操作报文进行处理,即并行获取写操作报文中的写操作信息,从而可以确保对写操作报文的处理效率,提高转发表项的更新效率。相应的,在上述步骤104中,线卡盒子从写操作报文中获取写操作信息时,可以先从该多个处理器核中确定资源占用率小于占用率阈值的目标处理器核;然后通过该目标处理器核从该写操作报文中获取该写操作信息。当线卡盒子确定出资源占用率小于该占用率阈值的处理器核包括多个时,可以随机选取一个作为该目标处理器核。将写操作报文分配给资源占用率较小的处理器核,可以保证该多个处理器核的负载均衡,实现对写操作报文的高效处理。
其中,资源占用率可以是指处理资源占用率。该占用率阈值可以为预先设定的固定值,例如可以为50%。或者,该占用率阈值还可以根据各个处理器核的实际的资源占用率进行确定,例如可以将各个处理器核的资源占用率的平均值作为该占用率阈值;或者可以将各个处理器核的资源占用率按照由低至高的顺序进行排序,然后将排名第二的资源占用率确定为该占用率阈值。该线卡盒子可以选取资源占用率最低的处理器核作为目标处理器核,例如线卡盒子可以将空闲的处理器核作为目标处理器核。
示例的,图6是本发明实施例提供的一种线卡盒子的局部结构示意图,如图6所示,线卡盒子的NP可以包括分发模块以及K1至K4共4个处理器核。该分发模块接收到服务器发送的报文后,可以根据各个处理器核的资源占用率,将报文分发至各个处理器核进行处理。假设当前接收到的写操作报文为写操作报文P1,且分发模块检测到处理器核K4当前的资源占用率最低,因此可以将该写操作报文P1分发至处理器核K4进行处理。
在本发明实施例中,由于服务器基于一个转发表项生成的多个写操作信息可能封装在不同的写操作报文中,因此NP除了需要按照每个写操作报文中写操作信息的顺序执行写内存操作,还需按照各个写操作报文的接收顺序执行该写内存操作。即对于先后接收到的两个写操作报文,NP需要将在先接收到的写操作报文中各写操作信息中的写操作数据均写入至内存后,才能对在后接收到的写操作报文中各写操作信息中的写操作数据执行写内存操作,以确保转发表项的准确更新。
可选的,该线卡盒子的NP中还可以部署有保序访问模块,每个处理器核可以将获取到的写操作信息发送至保序访问模块。该保序访问模块可以按照各个写操作报文的接收顺序,以及每个写操作报文中包括的写操作信息的顺序,依次根据每个写操作报文的写操作信息中的写操作地址,将写操作数据写入内存。该内存可以部署于NP的内部,也可以部署于NP的外部,本发明实施例对此不做限定。
示例的,参考图6,假设服务器发送了P1至P4共4个写操作报文,且发送该4个写操作报文的先后顺序为:P1、P2、P3、P4。NP的分发模块依次接收到该4个写操作报文后,分发给了不同的处理器核,例如将写操作报文P1分发给了处理器核K4,将写操作报文P4分发给了处理器核K2。该4个处理器核K1至K4可以并行获取各自接收到的写操作报文中的写操作信息,并将获取到的写操作信息发送至保序访问模块。保序访问模块接收到各个处理器核发送的写操作信息后,可以先将写操作报文P1中的至少一个写操作信息中的写操作数据顺次写入内存,然后再依次将写操作报文P2至写操作报文P4中的写操作数据写入内存。
步骤106、线卡盒子统计基于同一序列号的写操作报文执行的写内存操作的总次数,得到序列号与总次数的对应关系。
在本发明实施例中,服务器发送的写操作报文中可以包括序列号。线卡盒子基于接收到的写操作报文中的写操作信息,每执行一次写内存操作后,都可以以该写操作报文的序列号为索引,统计该索引对应的执行写内存操作的总次数。即线卡盒子可以统计基于同一序列号的写操作报文执行的写内存操作的总次数,由此可以得到序列号与总次数的对应关系。其中,同一序列号的写操作报文是指序列号的大小相等的写操作报文。
可选的,如图7所示,该线卡盒子中可以设置有计数器,该计数器可以部署于NP的内部,也可以部署于NP的外部,本发明实施例对此不做限定。该计数器可以用于存储不同序列号对应的总次数。线卡盒子每基于某个写操作报文执行完一次写操作后,均可以从该计数器中获取该写操作报文的序列号所对应的总次数,并将该总次数加1,由此实现对该序列号对应的总次数的实时统计。
示例的,参考图7,假设线卡盒子依次接收到了序列号为1(即SN=1)的3个写操作报文,其中第一个写操作报文中包括2个写操作信息(即W_Num=2),第二个写操作报文中包括1个写操作信息(即W_Num=1),第三个写操作报文中包括3个写操作信息(即W_Num=3)。则线卡盒子的NP基于该3个写操作报文中的写操作信息,可以执行6次写内存操作,且每执行完一次写内存操作后,均可以对计数器中存储的SN=1对应的总次数进行更新。最终更新得到的该SN=1对应的总次数为6。
或者,参考图8,假设服务器发送的第二个SN=1的写操作报文在传输过程中丢失,线卡盒子仅接收到了2个SN=1的写操作报文,其中一个写操作报文中的W_Num=2,另一个写操作报文中的W_Num=3。线卡盒子的NP基于该2个写操作报文中的写操作信息,可以执行5次写内存操作,且每执行完一次写内存操作后,均可以对计数器中存储的SN=1对应的总次数进行更新。最终更新得到的该SN=1对应的总次数为5。
步骤107、服务器向线卡盒子发送第一控制报文。
在本发明实施例中,为了确保服务器发送的写操作报文中的写操作数据均能正确写入内存,保证转发表项更新时的准确性,服务器在发送一个或多个写操作报文后(即发送一个批次的写操作报文后),可以发送一个第一控制报文。该第一控制报文中可以包括计数值,且该计数值为服务器在发送第二控制报文之后发送的写操作报文中所包括的写操作信息的总数。该第二控制报文为服务器在该第一控制报文之前发送的前一个控制报文。若该第一控制报文为服务器发送的首个控制报文,则该第一控制报文中的计数值即为在该第一控制报文之前发送的写操作报文中所包括的写操作信息的总数。
图9是本发明实施例提供的一种控制报文的结构示意图。参考图9可以看出,服务器发送的每个控制报文可以包括MAC头字段、IP头字段、UDP头字段、SN字段以及W_c字段。其中,MAC头字段、IP头字段和UDP头字段的定义均可以与写操作报文中的定义相同,此处不再赘述。且该控制报文中的UDP头字段的源端口号中可以添加用于指示该报文的类型为控制报文的标识,例如该标识可以为1。
该控制报文的SN字段用于记录该控制报文的序列号。服务器每次发送的控制报文的序列号的大小可以与前一个写操作报文的序列号的大小相等,且该服务器发送的各个控制报文的序列号可以依次递增。W_c字段用于记录计数值,该计数值为服务器在上一个控制报文(即第二控制报文)之后发送的写操作报文中所包括的写操作信息的总数,即序列号与当前控制报文的序列号相同的写操作报文所包括的写操作信息的总数。其中,序列号相同可以是指序列号的大小相等。
示例的,如图7和图8所示,假设服务器在发送了3个SN=1的写操作报文后,发送了一个SN=1的第一控制报文,则由于该3个SN=1的写操作报文包括的写操作信息的总数为6,因此该SN=1的第一控制报文中所包括的计数值即为6,即W_c=6。
若服务器在发送了2个SN=2的写操作报文后,发送了一个SN=2的第一控制报文,则由于该2个SN=2的写操作报文包括的写操作信息的总数为3,因此如图7和图8所示,该SN=2的第一控制报文中所包括的计数值即为3,即W_c=3。
步骤108、线卡盒子检测该第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值。
参考图7至图9可以看出,服务器发送的每个控制报文中还可以包括序列号,且该服务器发送的控制报文中的序列号依次递增。例如,每个控制报文的序列号与前一个控制报文的序列号的差值可以为1。由于控制报文在传输的过程中可能丢失,线卡盒子为了确保基于正确的控制报文检测执行写操作的总次数,可以先检测该第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值。该第三控制报文为该线卡盒子在该第一控制报文之前接收到的前一个控制报文。
当线卡盒子检测到该第一控制报文的序列号与该第三控制报文的序列号的差值为预设差值时,可以确定无控制报文丢失,因此可以执行步骤109。当线卡盒子检测到该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时,可以确定该第三控制报文之后的控制报文丢失,因此可以执行步骤112。
可选的,线卡盒子中可以存储有上一个控制报文的序列号,其初值可以为0,且该上一个控制报文的序列号可以为不大于32比特(bit)的数据。该数据可以存储在线卡盒子的内存中,或者如图7和图8所示,该线卡盒子中可以设置有寄存器,该数据可以存储在该寄存器中。线卡盒子接收到第一控制报文后,可以直接获取其存储的上一个控制报文(即第三控制报文)的序列号,并进行序列号的差值的检测。并且,线卡盒子完成差值检测后,还可以将其存储的上一个控制报文的序列号更新为该第一控制报文的序列号。也即是,可以将该第一控制报文的序列号作为新的上一个控制报文的序列号,以便后续可以继续基于该上一个控制报文的序列号计算差值,并进行差值检测。
示例的,假设该差值阈值为1,线卡盒子当前接收到的第一控制报文的序列号为2,即SN=2。线卡盒子的寄存器中存储的第三控制报文的序列号为1。则由于该第一控制报文的序列号与该第三控制报文的序列号的差值为1,因此可以执行步骤109,并可以将该寄存器中存储的上一个控制报文的序列号更新为2。若线卡盒子的寄存器中存储的第三控制报文的序列号为0(即在该第一控制报文之前未接收到其他控制报文),则由于该第一控制报文的序列号与该寄存器中存储的序列号的差值不为1,线卡盒子可以确定存在控制报文丢失,因此可以执行步骤112,并且还可以将寄存器中存储的上一个控制报文的序列号更新为2。
在本发明实施例中,若线卡盒子的NP包括多个处理器核,则如图7和图8所示,线卡盒子接收到控制报文后,也可以根据各个处理器核的资源占用率,将控制报文分发给对应的处理器核进行处理。
步骤109、线卡盒子检测在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值是否相等。
线卡盒子检测到第一控制报文的序列号与该第三控制报文的序列号的差值为预设差值时,可以确定无控制报文丢失,并可以确定该第三控制报文即为该第二控制报文。因此,线卡盒子可以继续检测该第三控制报文中的计数值与该线卡盒子在接收到该第三控制报文之后执行的写内存操作的总次数是否相等。当该计数值与该总次数不相等时,线卡盒子可以确定存在写操作报文丢失或者写内存操作执行失败的情况,因此可以执行步骤110。当该计数值与该总次数相等时,线卡盒子可以确定写内存操作均已成功执行,因此可以保持当前状态不变。
参考图4、图7和图8可知,服务器发送的写操作报文中可以包括序列号,且该服务器在两个控制报文之间发送的写操作报文的序列号的大小均与在后发送的控制报文的序列号的大小相等,即每个控制报文的序列号的大小均与在该控制报文之前发送的前一个写操作报文的序列号的大小相等。例如,参考图7,服务器在发送了2个序列号的大小为2(即SN=2)的写操作报文之后发送的控制报文的序列号的大小也为2。如上述步骤106所述,线卡盒子能够以写操作报文的序列号为索引对执行写内存操作的次数进行统计,得到序列号与总次数的对应关系。因此线卡盒子在执行上述步骤108的过程中,可以先从该预先生成的序列号与总次数的对应关系中获取该第一控制报文的序列号所对应的总次数。之后,线卡盒子即可检测该计数值与该第一控制报文的序列号所对应的总次数是否相等。
示例的,假设第一控制报文的序列号为1,即SN=1,参考图7和图8可以看出,该SN=1的控制报文中的W_c=6,即计数值为6。线卡盒子接收到该第一控制报文后,可以从计数器中读取SN=1所对应的总次数。若线卡盒子读取到的该SN=1对应的总次数为6,则由于该计数值与该总次数相等,线卡盒子可以确定服务器所指示的写内存操作均已成功执行,因此可以保持当前状态不变。若线卡盒子读取到的该SN=1对应的总次数为5,则由于该计数值与该总次数不相等,线卡盒子可以确定存在写操作报文丢失或者写内存操作执行失败的情况,因此可以执行步骤110。
可选的,由于有重新发送写操作报文的需求,线卡盒子在检测完该计数值和总次数是否相等后,还可以将已统计得到的该第一控制报文的序列号对应的总次数清零,并且可以将大于该第一控制报文的序列号的序列号所对应的总次数也清零。由此可以确保接收到服务器重新发送的相同序列号的写操作报文时,线卡盒子能够对该序列号对应的总次数进行进行准确统计。例如,线卡盒子完成对SN=1对应的总次数的检测后,可以将已统计得到的SN=1对应的总次数清零,并且可以将大于1的SN所对应的总次数也清零。例如,若线卡盒子存储的对应关系中还记录有SN=2对应的总次数,则可以将SN=2对应的总次数也清零。由此,当接收到服务器重新发送的SN=1的写操作报文以及SN大于1的写操作报文时,线卡盒子即可重新统计每个序列号对应的总次数。
步骤110、线卡盒子向该服务器发送第一提示信息。
当线卡盒子检测到该第一控制报文中的计数值,与在接收到该第二控制报文之后执行的写内存操作的总次数不相等时,可以确定存在写操作报文丢失或者写内存操作执行失败的情况,因此可以向服务器发送第一提示信息。该第一提示信息可以用于指示该服务器在该第二控制报文之后发送的写操作报文丢失,以便服务器重新发送在该第二控制报文之后发送的写操作报文。
可选的,该第一提示信息可以包括该第一控制报文的序列号,则该第一提示信息可以指示服务器在第二控制报文之后发送的,序列号与该第一控制报文的序列号相同的写操作报文丢失。或者,该第一提示信息还可以包括第二控制报文的序列号,则该第一提示信息可以指示服务器在该第二控制报文之后发送的,序列号与该第二控制报文的序列号的差值为预设差值的写操作报文丢失。可选的,该第一提示信息中还可以包括用于指示丢失报文的类型为写操作报文的标识。例如,该标识可以为1。
示例的,线卡盒子向该服务器发送的第一提示信息中可以包括第一控制报文的序列号1,该第一提示信息可以用于指示该服务器SN=1的写操作报文丢失。
步骤111、服务器重新向线卡盒子发送在该第二控制报文之后发送的写操作报文。
当服务器接收到该线卡盒子发送的第一提示信息时,可以确定在第二控制报文之后发送的写操作报文丢失。为了确保转发表项的正常更新,服务器可以重新发送在该第二控制报文之后发送的写操作报文。线卡盒子接收到服务器基于该第一提示信息重新发送的写操作报文后,可以再次执行上述步骤104所示的方法。
可选的,该第一提示信息中可以包括该第一控制报文的序列号,以及用于指示丢失报文的类型为写操作报文的标识。则服务器可以基于该第一控制报文的序列号,重新发送序列号与该第一控制报文的序列号相同的写操作报文。示例的,假设该第一提示信息中包括的序列号为:SN=1,则服务器可以重新向线卡盒子发送该SN=1的3个写操作报文。
步骤112、线卡盒子向服务器发送第二提示信息。
在上述步骤108中,当线卡盒子检测到该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时,可以确定在该第三控制报文之后发送的控制报文丢失,因此可以向服务器发送第二提示信息,该第二提示信息用于指示该服务器在该第三控制报文之后发送的控制报文丢失,以便服务器可以重新发送在该第三控制报文之后发送的写操作报文。
可选的,该第二提示信息中可以包括该第三控制报文的序列号。或者,该第二提示信息中除了第三控制报文的序列号,还可以包括该第一控制报文的序列号,则该第二提示信息可以指示服务器在该第三控制报文和第一控制报文之间发送的控制报文丢失。又或者,线卡盒子还可以根据该第三控制报文的序列号、第一控制报文的序列号以及该预设差值,推算出丢失的控制报文的序列号,该第二提示信息中可以包括该丢失的控制报文的序列号,则服务器基于该第二提示信息可以直接确定出丢失的控制报文。可选的,该第二提示信息中还可以包括用于指示丢失报文的类型为控制报文的标识。例如,该标识可以为2。
示例的,假设预设差值为1,第三控制报文的序列号(即寄存器中存储的序列号)为SN=1,第一控制报文的序列号为:SN=3。则该第二提示信息中包括的序列号可以为:SN=1,该第二提示信息可以指示服务器在该SN=1的控制报文之后发送的控制报文丢失。或者,该第二提示信息中可以包括:SN=1,以及SN=3,该第二提示信息可以指示服务器在该SN=1的控制报文和SN=3的控制报文之间发送的控制报文丢失。又或者,线卡盒子基于第三控制报文的序列号SN=1,第一控制报文的序列号SN=3以及该预设差值1,可以推算出丢失的控制报文的序列号为SN=2,因此该第二提示信息中可以包括:SN=2,该第二提示信息可以指示服务器SN=2的控制报文丢失。
步骤113、服务器根据该第二提示信息,重新向该线卡盒子发送在该第三控制报文之后发送的写操作报文。
当服务器接收到线卡盒子发送的第二提示信息时,可以确定在该第三控制报文之后发送的控制报文丢失,则线卡盒子无法检测在该第三控制报文之后发送的写操作报文中的写操作数据是否均已成功写入内存。因此,服务器可以重新向该线卡盒子发送在该第三控制报文之后发送的写操作报文。
示例的,假设该第二提示信息中包括丢失的控制报文的序列号:SN=2,则服务器可以重新向线卡盒子发送SN=2的写操作报文。
图10是本发明实施例提供的一种重新发送写操作报文的方法的流程图,该方法的应用场景可以与图1所示实施例相同。参考图10,该方法可以包括:
步骤114、服务器检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值。
在本发明实施例中,服务器在每次发送控制报文之后,均可以检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值。当该空闲时长大于该时长阈值时,服务器可以执行步骤115。当该空闲时长不大于该时长阈值时,服务器可以继续执行步骤114,即继续检测该空闲时长是否大于时长阈值。其中,该时长阈值T1可以为服务器中预先设定的固定值,例如该时长阈值T1可以为1秒。
步骤115、服务器向线卡盒子发送保活报文。
服务器检测到在发送控制报文之后未发送写操作报文的空闲时长大于时长阈值时,可以向线卡盒子发送保活报文。线卡盒子可以接收服务器发送的保活报文。该保活报文中可以包括序列号,且该保活报文的序列号与在该保活报文之前发送的上一个控制报文的序列号的差值为该预设差值。
图11是本发明实施例提供的一种保活报文的结构示意图。参考图11可以看出,服务器发送的保活报文可以包括MAC头字段、IP头字段、UDP头字段以及SN字段。其中,MAC头字段、IP头字段和UDP头字段的定义均可以与写操作报文中的定义相同,此处不再赘述。且该保活报文中的UDP头字段的源端口号中可以添加用于指示该报文的类型为保活报文的标识,例如该标识可以为2。保活报文的SN字段可以用于记录该保活报文的序列号。
示例的,参考图7和图8,服务器在发送SN=1的控制报文后可以检测未发送写操作报文的空闲时长。若该空闲时长为t1,且t1<T1,即服务器在t1时长后发送了SN=2的写操作报文,则服务器无需发送保活报文。服务器在发送SN=2的控制报文之后,检测到未发送写操作报文的空闲时长t2大于时长阈值T1时,可以发送保活报文。该保活报文的序列号可以为SN=3,即该保活报文与前一个控制报文的序列号的差值为1。
可选的,在本发明实施例中,服务器向线卡盒子发送保活报文之后也可以执行上述步骤114所示的方法,即检测在发送保活报文后未发送写操作报文的空闲时长是否大于时长阈值,若大于该时长阈值,则可以继续执行步骤115,即继续向线卡盒子发送保活报文。并且,该保活报文的序列号与前一个保活报文的序列号也可以为该预设差值。
步骤116、线卡盒子检测该保活报文的序列号与第四控制报文的序列号的差值是否为该预设差值。
线卡盒子接收到服务器发送的保活报文后,可以检测该保活报文的序列号与第四控制报文的序列号的差值是否为该预设差值。该第四控制报文为该线卡盒子在该保活报文之前接收到的前一个控制报文。当线卡盒子检测到该保活报文的序列号与该第四控制报文的序列号的差值不为该预设差值时,可以确定在该第四控制报文之后发送的控制报文丢失,因此可以执行步骤117。当线卡盒子检测到该保活报文的序列号与第四控制报文的序列号的差值为该预设差值时,可以确定无控制报文丢失,因此可以保持当前状态不变。
可选的,如前文所述,线卡盒子可以在内存或者寄存器中存储上一个控制报文的序列号。因此,线卡盒子接收到保活报文后,可以直接检测该保活报文的序列号与其存储的上一个控制报文的序列号的差值是否为预设差值。并且,线卡盒子完成差值检测后,还可以将该线卡盒子中存储的上一个控制报文的序列号更新为该保活报文的序列号,以便后续可以继续基于该上一个控制报文的序列号计算差值,并进行差值检测。
示例的,假设该预设差值为1,服务器在SN=2的控制报文之后发送了SN=3的保活报文。线卡盒子接收到SN=3的保活报文时,寄存器中存储的上一个控制报文(即第四控制报文)的序列号为:SN=2。则由于两者的差值为该预设差值,线卡盒子可以将寄存器中存储的上一个控制报文序列号更新为3。或者,如图12所示,若SN=2的控制报文在传输过程中丢失,则线卡盒子接收到该SN=3的保活报文时,可以检测到寄存器中存储的前一个控制报文(即第四控制报文)的序列号为:SN=1。则由于两者的差值不为1,因此线卡盒子可以执行步骤117,并可以将寄存器中存储的上一个控制报文序列号更新为3。
在本发明实施例中,若线卡盒子的NP包括多个处理器核,则如图7、图8和图12所示,线卡盒子接收到保活报文后,也可以根据各个处理器核的资源占用率,将保活报文分发给对应的处理器核进行处理。
步骤117、线卡盒子向服务器发送第三提示信息。
当线卡盒子检测到该保活报文的序列号与该第四控制报文的序列号的差值不为该预设差值时,可以确定在该第四控制报文之后发送的控制报文丢失,因此可以向服务器发送第三提示信息,该第三提示信息用于指示该服务器在该第四控制报文之后发送的控制报文丢失。
可选的,该第三提示信息中可以包括该第四控制报文的序列号。或者,该第三提示信息中除了第四控制报文的序列号,还可以包括该保活报文的序列号,则该第三提示信息可以指示服务器在该第四控制报文和保活报文之间发送的控制报文丢失。又或者,线卡盒子还可以根据该第四控制报文的序列号、保活报文的序列号以及该预设差值,推算出丢失的控制报文的序列号,该第三提示信息中可以包括该丢失的控制报文的序列号,则服务器基于该第三提示信息可以直接确定出丢失的控制报文。可选的,该第三提示信息中还可以包括用于指示丢失报文的类型为控制报文的标识。例如,该标识可以为2。
示例的,假设该预设差值为1,线卡盒子接收到该SN=3的保活报文时,寄存器中存储的前一个控制报文(即第四控制报文)的序列号为:SN=1。该线卡盒子向服务器发送的第三提示信息中可以包括序列号:SN=1,该第三提示信息可以指示服务器在该SN=1的控制报文之后发送的控制报文丢失。或者,该第三提示信息中可以包括:SN=1,以及SN=3,该第三提示信息可以指示服务器在该SN=1的控制报文和SN=3的保活报文之间发送的控制报文丢失。又或者,线卡盒子基于第四控制报文的序列号SN=1,保活报文的序列号SN=3以及该预设差值1,可以推算出丢失的控制报文的序列号为SN=2,因此该第三提示信息中可以包括:SN=2,该第三提示信息可以指示服务器SN=2的控制报文丢失。
步骤118、服务器根据该第三提示信息,重新向该线卡盒子发送在该第四控制报文之后发送的写操作报文。
当服务器接收到该线卡盒子发送的用于指示在该第四控制报文之后发送的控制报文丢失的第三提示信息时,可以重新向线卡盒子发送在该第四控制报文之后发送的写操作报文。
示例的,假设该第三提示信息中包括的序列号为SN=1,则服务器可以重新发送在SN=1的控制报文之后发送的写操作报文。例如,服务器可以重新发送SN=2的写操作报文。
在本发明实施例中,服务器每次发送写操作报文之后,无需等待线卡盒子的回应,可以继续发送后续的写操作报文,从而可以确保路由的高速率下发。并且,由于有重新发送写操作报文的需求,服务器可以缓存已发送的写操作报文中的写操作信息或者直接缓存已发送的写操作报文,且写操作信息或写操作报文的缓存时长T2可以远大于该时长阈值T1。例如该时长阈值为1秒时,该缓存时长可以为1分钟。因此,当服务器接收到线卡盒子发送的第一提示信息、第二提示信息或第三提示信息时,均可以基于缓存的写操作信息或写操作报文,及时重新发送对应的写操作报文。
可选的,为了保证转发表项的正确更新,服务器根据接收到的第一提示信息确定出在第二控制报文之后发送的写操作报文丢失时,需重新发送在该第二控制报文之后发送的所有写操作报文。当服务器根据接收到的第二提示信息或第三提示信息确定出某个控制报文之后发送的控制报文丢失时,需重新发送在该某个控制报文之后发送的所有写操作报文。
示例的,参考图13,假设服务器顺次发送了SN为1至SN为4的写操作报文,准备发送SN为5的写操作报文时,接收到了线卡盒子发送的第一提示信息,且该第一提示信息中包括的SN为2,即该提示信息可以指示SN=2的写操作报文丢失。则服务器可以基于该提示信息,重新发送SN=2至SN=4的所有写操作报文,然后再发送SN=5的写操作报文。或者,假设服务器准备发送SN为5的写操作报文时,接收到了线卡盒子发送的第二提示信息,且该第二提示信息中包括的SN为1,即该提示信息可以指示在SN=1的控制报文之后发送的控制报文丢失。则服务器可以基于该提示信息,重新发送SN=2至SN=4的所有写操作报文,然后再发送SN=5的写操作报文。在重新发送写操作报文的过程中,服务器每发送完一个序列号的写操作报文,均需发送一个相同序列号的控制报文,然后再继续发送下一个序列号的写操作报文。例如,服务器发送完两个SN=2的写操作报文后,可以发送一个SN=2的控制报文,然后再继续发送SN=3的写操作报文。
根据上述分析可知,对于写操作报文丢失的场景,线卡盒子可以基于接收到的控制报文及时检测到有写操作报文丢失,并及时向服务器发送第一提示信息。服务器从发出写操作报文到接收到该第一提示信息之间的时长一般在100微秒(us)以内,而服务器缓存写操作信息或写操作报文的缓存时长T2远大于100us,因此可以确保及时重新发送丢失的写操作报文。
对于控制报文丢失的场景,线卡盒子需要基于在后发送的控制报文或者保活报文确定出有控制报文丢失。由于保活报文发送前的空闲时长至少为T1,因此服务器从发出写操作报文到接收到第二提示信息或第三提示信息所需的最长稍大于T1。而服务器缓存写操作信息或写操作报文的缓存时长T2远大于T1,因此可以确保及时重新发送写操作报文。
可选的,在上述步骤111之前、步骤113之前和步骤118之前,即服务器在重新发送写操作报文之前,还可以先向线卡盒子发送重置报文,该重置报文中包括重置序列号。服务器待重新发送的首个写操作报文的序列号与该重置序列号的差值为该预设差值。该重置报文可以用于指示线卡盒子将其存储的上一个控制报文的序列号更新为该重置序列号。线卡盒子在该重置报文的指示下,将线卡盒子中存储的上一个控制报文的序列号更新为该重置序列号后,可以确保在接收到服务器重新发送的写操作报文和控制报文后,可以基于该重置序列号准确判断是否有控制报文丢失。
示例的,假设在上述步骤111、步骤113和步骤118中的任一步骤中,服务器准备重新发送的首个写操作报文的序列号为:SN=2,则服务器向线卡盒子发送的重置报文中的重置序列号可以为:SN=1。线卡盒子接收到该重置报文后,可以将内存或寄存器中存储的上一个控制报文的序列号更新为:SN=1。由此,当线卡盒子接收到服务器重新发送的SN=2的写操作报文以及后续的控制报文时,即可准确判断控制报文是否有丢失。
需要说明的是,本发明实施例提供的数据处理方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。例如,步骤108可以根据情况删除;或者,步骤106至步骤113均可以根据情况进行删除;又或者,步骤114至步骤118均可以根据情况进行删除。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
综上所述,本发明实施例提供了一种转发表项的更新方法,服务器向线卡盒子发送的写操作报文中的写操作信息包括写操作数据和写操作地址,线卡盒子可以直接根据该写操作地址,将写操作数据写入内存中,从而完成转发表项的更新。由于线卡盒子仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此服务器下发写操作报文的速率不会受到线卡盒子处理性能的限制,有效提高了转发表项的下发速率和更新效率。并且,服务器还可以线卡盒子发送携带有计数值的控制报文,线卡盒子基于该控制报文检测到有写操作报文丢失时,可以指示服务器重新发送写操作报文,由此确保了转发表项更新时的可靠性。
图14是本发明实施例提供的一种转发表项的更新装置的结构示意图,该装置可以应用于报文接收端,例如可以应用于图1所示的路由系统中的线卡盒子02。如图14所示,该装置可以包括:
接收模块201,用于接收写操作报文,该写操作报文中包括写操作信息,该写操作信息包括写操作数据和写操作地址,该写操作数据用于指示待更新的转发表项,该写操作地址用于指示内存中待写入该写操作数据的地址。
该接收模块201的功能实现可以参考上述方法实施例中步骤103的相关描述。
获取模块202,可以用于从写操作报文中获取写操作信息。该接收模块201的功能实现可以参考上述方法实施例中步骤104的相关描述。
写入模块203,可以用于根据该写操作信息中的写操作地址,将该写操作数据写入该内存。该写入模块203的功能实现可以参考上述方法实施例中步骤105的相关描述。
可选的,该接收模块201,还可以用于在该写入模块203将该写操作数据写入内存之后,接收第一控制报文,该第一控制报文中包括计数值,该计数值为在第二控制报文和该第一控制报文之间发送的写操作报文中所包括的写操作信息的总数,该第二控制报文为在该第一控制报文之前发送的前一个控制报文。该接收模块201的功能实现还可以参考上述方法实施例中步骤107的相关描述。
参考图15,该装置还可以包括:
检测模块204,可以用于检测在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值是否相等,该写内存操作是指将写操作数据写入内存的操作。
发送模块205,可以用于当该计数值与该总次数不相等时,发送第一提示信息,该第一提示信息用于指示在该第二控制报文之后发送的写操作报文丢失。该发送模块205的功能实现可以参考上述方法实施例中步骤110的相关描述。
该接收模块201,还可以用于接收基于该第一提示信息重新发送的写操作报文。该接收模块201的功能实现还可以参考上述方法实施例中步骤111的相关描述。
可选的,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增。该检测模块204,还可以用于:
在该接收模块201接收第一控制报文之后,检测该第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值,该第三控制报文为在该第一控制报文之前接收到的前一个控制报文;
当该第一控制报文的序列号与该第三控制报文的序列号的差值为预设差值时,确定该第三控制报文为该第二控制报文,并检测在接收到该第三控制报文之后执行的写内存操作的总次数与该计数值是否相等。
该检测模块204的功能实现可以参考上述方法实施例中步骤108以及步骤109的相关描述。
可选的,该发送模块205,还可以用于当该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时,发送第二提示信息,该第二提示信息用于指示在该第三控制报文之后发送的控制报文丢失。该发送模块205的功能实现还可以参考上述方法实施例中步骤112的相关描述。
该接收模块201,还可以用于接收基于该第二提示信息重新发送的写操作报文。该接收模块201的功能实现还可以参考上述方法实施例中步骤113的相关描述。
可选的,该接收模块201,还可以用于接收保活报文,该保活报文中包括序列号,该报文发送端发送的该保活报文的序列号与在该保活报文之前发送的前一个控制报文的序列号的差值为该预设差值。该接收模块201的功能实现还可以参考上述方法实施例中步骤115的相关描述。
该检测模块204,还可以用于检测该保活报文的序列号与第四控制报文的序列号的差值是否为该预设差值,该第四控制报文为在该保活报文之前接收到的前一个控制报文。该检测模块204的功能实现还可以参考上述方法实施例中步骤116的相关描述。
该发送模块205,还可以用于当该保活报文的序列号与该第四控制报文的序列号的差值不为该预设差值时,发送第三提示信息,该第三提示信息用于指示在该第四控制报文之后发送的控制报文丢失。该发送模块205的功能实现还可以参考上述方法实施例中步骤117的相关描述。
该接收模块201,还用于接收基于该第三提示信息重新发送的写操作报文。该接收模块201的功能实现还可以参考上述方法实施例中步骤118的相关描述。
可选的,该写操作报文中还包括序列号,且报文发送端在两个控制报文之间发送的写操作报文的序列号的大小均与在后发送的控制报文的序列号的大小相等。如图15所示,该装置还可以包括:
统计模块206,可以用于在该写入模块将该写操作数据写入内存之后,统计基于同一序列号的写操作报文执行的写内存操作的总次数,得到序列号与总次数的对应关系。该统计模块206的功能实现可以参考上述方法实施例中步骤106的相关描述。
相应的,该检测模块204,可以用于:获取该第一控制报文的序列号所对应的总次数;检测该第一控制报文的序列号所对应的总次数与该计数值是否相等。
综上所述,本发明实施例提供了一种转发表项的更新装置,该装置接收到的写操作报文中的写操作信息包括写操作数据和写操作地址,因此可以直接根据该写操作地址,将写操作数据写入内存中,从而完成转发表项的更新。由于该装置仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此报文发送端下发写操作报文的速率不会受到该装置的处理性能的限制,有效提高了转发表项的下发速率和更新效率。
图16是本发明实施例提供的又一种转发表项的更新装置的结构示意图,该更新装置可以应用于报文发送端,例如可以应用于图1所示的路由系统的服务器01中。参考图16,该装置可以包括:
生成模块301,可以用于根据待更新的转发表项生成写操作信息,该写操作信息包括写操作数据和写操作地址,该写操作数据用于指示该待更新的转发表项,该写操作地址用于指示待写入该写操作数据的地址。该生成模块301的功能实现可以参考上述方法实施例中步骤101的相关描述。
封装模块302,可以用于将生成的该写操作信息封装为写操作报文。该封装模块302的功能实现可以参考上述方法实施例中步骤102的相关描述。
发送模块303,可以用于发送该写操作报文,该写操作报文用于指示根据该写操作信息中的写操作地址,将该写操作数据写入内存。该发送模块303的功能实现可以参考上述方法实施例中步骤103的相关描述。
可选的,该发送模块303,还可以用于:
发送第一控制报文,该第一控制报文中包括计数值,该计数值为在发送第二控制报文之后发送的写操作报文中所包括的写操作信息的总数,该第二控制报文为在该第一控制报文之前发送的前一个控制报文;
当接收到用于指示在该第二控制报文之后发送的写操作报文丢失的第一提示信息时,重新发送在该第二控制报文之后发送的写操作报文;
其中,该第一提示信息为报文接收端检测到在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值不相等时发送的。
该发送模块303的功能实现还可以参考上述方法实施例中步骤107以及步骤111的相关描述。
可选的,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增;该发送模块303,还可以用于:
当接收到用于指示在第三控制报文之后发送的控制报文丢失的第二提示信息时,重新发送在该第三控制报文之后发送的写操作报文;
其中,该第二提示信息为报文接收端在检测到该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时发送的,该第三控制报文为该报文接收端在该第一控制报文之前接收到的前一个控制报文。
该发送模块303的功能实现还可以参考上述方法实施例中步骤113的相关描述。
可选的,如图17所示,该装置还可以包括:
检测模块304,可以用于在该发送模块每次发送控制报文之后,检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值。该检测模块304的功能实现可以参考上述方法实施例中步骤114的相关描述。
该发送模块303,还可以用于:
当该空闲时长大于该时长阈值时,发送保活报文,该保活报文中包括序列号,且该保活报文的序列号与上一个控制报文的序列号的差值为该预设差值;
当接收到用于指示在第四控制报文之后发送的控制报文丢失的第三提示信息时,重新发送在该第四控制报文之后发送的写操作报文;
其中,该第三提示信息为报文接收端在检测到接收到的该保活报文的序列号与该第四控制报文的序列号的差值不为预设差值时发送的,该第四控制报文为该报文接收端在该保活报文之前接收到的前一个控制报文。
该发送模块303的功能实现还可以参考上述方法实施例中步骤115以及步骤118的相关描述。
综上所述,本发明实施例提供了一种转发表项的更新装置,该装置发送的写操作报文中的写操作信息包括写操作数据和写操作地址,报文接收端可以直接根据该写操作地址,将写操作数据写入内存中,从而完成转发表项的更新。由于报文接收端仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此该装置下发写操作报文的速率不会受到报文接收端处理性能的限制,有效提高了转发表项的下发速率和更新效率。
应理解的是,本发明实施例的转发表项的更新装置还可以用专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现上述方法实施例提供的转发表项的更新方法,当通过软件实现上述方法实施例提供的转发表项的更新方法时,该转发表项的更新装置中的各个模块也可以为软件模块。
图18是本发明实施例提供的再一种转发表项的更新装置的结构示意图,参考图18,该装置可以包括:处理器1201、存储器1202、网络接口1203和总线1204。其中,总线1204用于连接处理器1201、存储器1202和网络接口1203。通过网络接口1203(可以是有线或者无线)可以实现与其他设备之间的通信连接。存储器1202中存储有计算机程序12021,该计算机程序12021用于实现各种应用功能。
应理解,在本发明实施例中,处理器1201可以是CPU,该处理器1201还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、GPU或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
存储器1202可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
总线1204除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1204。
当该装置应用于报文发送端时,处理器1201被配置为执行存储器1202中存储的计算机程序12021,处理器1201通过执行该计算机程序12021来实现上述方法实施例中步骤101至步骤103、步骤107、步骤111、步骤113至步骤115以及骤118所示的方法。并且,上述步骤103、步骤107、步骤111、步骤113步骤115以及骤118所示的方法可以是处理器1201通过执行该计算机程序12021来驱动网络接口1203实现的。
当该装置应用于报文接收端时,处理器1201被配置为执行存储器1202中存储的计算机程序,处理器1201通过执行该计算机程序12021来实现上述方法实施例中步骤104至步骤106、步骤108至步骤110、步骤112、以及骤116和步骤117所示的方法。并且,上述步骤110、步骤112以及骤117所示的方法可以是处理器1201通过执行该计算机程序12021来驱动网络接口1203实现的。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质中存储的指令在计算机上运行时,使得计算机执行如上述方法实施例中由服务器执行的方法,或者由线卡盒子执行的方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述方法实施例中由服务器执行的方法,或者由线卡盒子执行的方法。
本发明实施例还提供了一种转发表项的发送系统,该系统可以包括:报文发送端和报文接收端。示例的,该系统可以为如图1所示的路由系统,该报文发送端可以为服务器01,报文接收端可以为线卡盒子02。
其中,该报文发送端可以包括如图16或图17所示的装置,该报文接收端可以包括图14或图15所示的装置。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (23)
1.一种转发表项的更新方法,其特征在于,应用于报文接收端中的网络处理器,所述方法包括:
接收报文发送端发送的写操作报文,所述写操作报文中包括写操作信息,所述写操作信息包括写操作数据和写操作地址,所述写操作数据用于指示所述网络处理器中待更新的转发表项,且所述写操作数据是所述报文发送端基于获取到的所述待更新的转发表项,以及所述报文接收端中路由算法表的格式生成的,所述写操作地址用于指示内存中待写入所述写操作数据的地址;
从所述写操作报文中获取所述写操作信息;
根据所述写操作信息中的写操作地址,将所述写操作数据写入所述内存,以更新所述转发表项;
其中,所述报文接收端和所述报文发送端均为路由系统中的网元设备。
2.根据权利要求1所述的方法,其特征在于,在将所述写操作数据写入内存之后,所述方法还包括:
接收所述报文发送端发送的第一控制报文,所述第一控制报文中包括计数值,所述计数值为所述报文发送端在第二控制报文和所述第一控制报文之间发送的写操作报文中所包括的写操作信息的总数,所述第二控制报文为所述报文发送端在所述第一控制报文之前发送的前一个控制报文;
检测在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值是否相等,所述写内存操作是指将写操作数据写入内存的操作;
当所述计数值与所述总次数不相等时,向所述报文发送端发送第一提示信息,所述第一提示信息用于指示所述报文发送端在所述第二控制报文之后发送的写操作报文丢失;
接收所述报文发送端基于所述第一提示信息重新发送的写操作报文。
3.根据权利要求2所述的方法,其特征在于,每个控制报文中还包括序列号,且所述报文发送端发送的控制报文中的序列号依次递增;在所述接收所述报文发送端发送的第一控制报文之后,所述方法还包括:
检测所述第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值,所述第三控制报文为在所述第一控制报文之前接收到的前一个控制报文;
所述检测在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值是否相等,包括:
当所述第一控制报文的序列号与所述第三控制报文的序列号的差值为预设差值时,确定所述第三控制报文为所述第二控制报文,并检测在接收到所述第三控制报文之后执行的写内存操作的总次数与所述计数值是否相等。
4.根据权利要求3所述的方法,其特征在于,在检测所述第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值之后,所述方法还包括:
当所述第一控制报文的序列号与所述第三控制报文的序列号的差值不为预设差值时,向所述报文发送端发送第二提示信息,所述第二提示信息用于指示所述报文发送端在所述第三控制报文之后发送的控制报文丢失;
接收所述报文发送端基于所述第二提示信息重新发送的写操作报文。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收所述报文发送端发送的保活报文,所述保活报文中包括序列号,所述保活报文的序列号与在所述保活报文之前所述报文发送端发送的前一个控制报文的序列号的差值为所述预设差值;
检测所述保活报文的序列号与第四控制报文的序列号的差值是否为所述预设差值,所述第四控制报文为在所述保活报文之前接收到的前一个控制报文;
当所述保活报文的序列号与所述第四控制报文的序列号的差值不为所述预设差值时,向所述报文发送端发送第三提示信息,所述第三提示信息用于指示所述报文发送端在所述第四控制报文之后发送的控制报文丢失;
接收所述报文发送端基于所述第三提示信息重新发送的写操作报文。
6.根据权利要求2所述的方法,其特征在于,所述写操作报文中还包括序列号,且所述报文发送端在两个控制报文之间发送的写操作报文的序列号的大小均与在后发送的控制报文的序列号的大小相等;
在将所述写操作数据写入内存之后,所述方法还包括:
统计基于同一序列号的写操作报文执行的写内存操作的总次数,得到序列号与总次数的对应关系;
所述检测在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值是否相等,包括:
获取所述第一控制报文的序列号所对应的总次数;
检测所述第一控制报文的序列号所对应的总次数与所述计数值是否相等。
7.根据权利要求1至6任一所述的方法,其特征在于,所述接收报文发送端发送的写操作报文,包括:
接收报文发送端发送的多个写操作报文,每个所述写操作报文包括多个所述写操作信息;
所述根据所述写操作信息中的写操作地址,将所述写操作数据写入内存,包括:
按照所述多个写操作报文的接收顺序,以及每个所述写操作报文中包括的所述多个写操作信息的顺序,依次根据每个所述写操作报文的写操作信息中的写操作地址,将所述写操作数据写入内存。
8.一种转发表项的更新方法,其特征在于,应用于报文发送端,所述方法包括:
根据待更新的转发表项生成写操作信息,所述写操作信息包括写操作数据和写操作地址,所述写操作数据用于指示报文接收端中的网络处理器中所述待更新的转发表项,且所述写操作数据是所述报文发送端基于获取到的所述待更新的转发表项,以及所述报文接收端中路由算法表的格式生成的,所述写操作地址用于指示待写入所述写操作数据的地址;
将生成的所述写操作信息封装为写操作报文;
向所述报文接收端中的网络处理器发送所述写操作报文,所述写操作报文用于指示所述网络处理器根据所述写操作信息中的写操作地址,将所述写操作数据写入内存,以更新所述转发表项;
其中,所述报文接收端和所述报文发送端均为路由系统中的网元设备。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
向所述报文接收端中的网络处理器发送第一控制报文,所述第一控制报文中包括计数值,所述计数值为在发送第二控制报文之后发送的写操作报文中所包括的写操作信息的总数,所述第二控制报文为在所述第一控制报文之前发送的前一个控制报文;
当接收到所述报文接收端中的网络处理器发送的用于指示在所述第二控制报文之后发送的写操作报文丢失的第一提示信息时,向所述报文接收端中的网络处理器重新发送在所述第二控制报文之后发送的写操作报文;
其中,所述第一提示信息为所述报文接收端中的网络处理器检测到在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值不相等时发送的。
10.根据权利要求9所述的方法,其特征在于,每个控制报文中还包括序列号,且所述报文发送端发送的控制报文中的序列号依次递增;所述方法还包括:
当接收到所述报文接收端中的网络处理器发送的用于指示在第三控制报文之后发送的控制报文丢失的第二提示信息时,向所述报文接收端中的网络处理器重新发送在所述第三控制报文之后发送的写操作报文;
其中,所述第二提示信息为所述报文接收端中的网络处理器在检测到所述第一控制报文的序列号与所述第三控制报文的序列号的差值不为预设差值时发送的,所述第三控制报文为所述报文接收端在所述第一控制报文之前接收到的前一个控制报文。
11.根据权利要求9或10所述的方法,其特征在于,在每次发送控制报文之后,所述方法还包括:
检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值;
当所述空闲时长大于所述时长阈值时,向所述报文接收端中的网络处理器发送保活报文,所述保活报文中包括序列号,且所述保活报文的序列号与上一个控制报文的序列号的差值为预设差值;
当接收到所述报文接收端中的网络处理器发送的用于指示在第四控制报文之后发送的控制报文丢失的第三提示信息时,向所述报文接收端中的网络处理器重新发送在所述第四控制报文之后发送的写操作报文;
其中,所述第三提示信息为所述报文接收端中的网络处理器在检测到接收到的所述保活报文的序列号与所述第四控制报文的序列号的差值不为所述预设差值时发送的,所述第四控制报文为所述报文接收端在所述保活报文之前接收到的前一个控制报文。
12.一种转发表项的更新装置,其特征在于,应用于报文接收端中的网络处理器,所述装置包括:
接收模块,用于接收报文发送端发送的写操作报文,所述写操作报文中包括写操作信息,所述写操作信息包括写操作数据和写操作地址,所述写操作数据用于指示所述网络处理器中待更新的转发表项,且所述写操作数据是所述报文发送端基于获取到的所述待更新的转发表项,以及所述报文接收端中路由算法表的格式生成的,所述写操作地址用于指示内存中待写入所述写操作数据的地址;
获取模块,用于从所述写操作报文中获取所述写操作信息;
写入模块,用于根据所述写操作信息中的写操作地址,将所述写操作数据写入所述内存,以更新所述转发表项;
其中,所述报文接收端和所述报文发送端均为路由系统中的网元设备。
13.根据权利要求12所述的装置,其特征在于,
所述接收模块,还用于在所述写入模块将所述写操作数据写入内存之后,接收所述报文发送端发送的第一控制报文,所述第一控制报文中包括计数值,所述计数值为所述报文发送端在第二控制报文和所述第一控制报文之间发送的写操作报文中所包括的写操作信息的总数,所述第二控制报文为所述报文发送端在所述第一控制报文之前发送的前一个控制报文;
所述装置还包括:
检测模块,用于检测在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值是否相等,所述写内存操作是指将写操作数据写入内存的操作;
发送模块,用于当所述计数值与所述总次数不相等时,向所述报文发送端发送第一提示信息,所述第一提示信息用于指示所述报文发送端在所述第二控制报文之后发送的写操作报文丢失;
所述接收模块,还用于接收所述报文发送端基于所述第一提示信息重新发送的写操作报文。
14.根据权利要求13所述的装置,其特征在于,每个控制报文中还包括序列号,且所述报文发送端发送的控制报文中的序列号依次递增;所述检测模块,还用于:
在所述接收模块接收第一控制报文之后,检测所述第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值,所述第三控制报文为在所述第一控制报文之前接收到的前一个控制报文;
所述检测模块,用于:
当所述第一控制报文的序列号与所述第三控制报文的序列号的差值为预设差值时,确定所述第三控制报文为所述第二控制报文,并检测在接收到所述第三控制报文之后执行的写内存操作的总次数与所述计数值是否相等。
15.根据权利要求14所述的装置,其特征在于,
所述发送模块,还用于当所述第一控制报文的序列号与所述第三控制报文的序列号的差值不为预设差值时,向所述报文发送端发送第二提示信息,所述第二提示信息用于指示所述报文发送端在所述第三控制报文之后发送的控制报文丢失;
所述接收模块,还用于接收所述报文发送端基于所述第二提示信息重新发送的写操作报文。
16.根据权利要求14所述的装置,其特征在于,
所述接收模块,还用于接收所述报文发送端发送的保活报文,所述保活报文中包括序列号,所述保活报文的序列号与在所述保活报文之前所述报文发送端发送的前一个控制报文的序列号的差值为所述预设差值;
所述检测模块,还用于检测所述保活报文的序列号与第四控制报文的序列号的差值是否为所述预设差值,所述第四控制报文为在所述保活报文之前接收到的前一个控制报文;
所述发送模块,还用于当所述保活报文的序列号与所述第四控制报文的序列号的差值不为所述预设差值时,向所述报文发送端发送第三提示信息,所述第三提示信息用于指示所述报文发送端在所述第四控制报文之后发送的控制报文丢失;
所述接收模块,还用于接收所述报文发送端基于所述第三提示信息重新发送的写操作报文。
17.根据权利要求13所述的装置,其特征在于,所述写操作报文中还包括序列号,且所述报文发送端在两个控制报文之间发送的写操作报文的序列号的大小均与在后发送的控制报文的序列号的大小相等;
所述装置还包括:
统计模块,用于在所述写入模块将所述写操作数据写入内存之后,统计基于同一序列号的写操作报文执行的写内存操作的总次数,得到序列号与总次数的对应关系;
所述检测模块,用于:
获取所述第一控制报文的序列号所对应的总次数;
检测所述第一控制报文的序列号所对应的总次数与所述计数值是否相等。
18.根据权利要求12至17任一所述的装置,其特征在于,所述接收模块,用于接收报文发送端发送的多个写操作报文,每个所述写操作报文包括多个所述写操作信息;
所述写入模块,用于:
按照所述多个写操作报文的接收顺序,以及每个所述写操作报文中包括的多个所述写操作信息的顺序,依次根据每个所述写操作报文的写操作信息中的写操作地址,将所述写操作数据写入内存。
19.一种转发表项的更新装置,其特征在于,应用于报文发送端,所述装置包括:
生成模块,用于根据待更新的转发表项生成写操作信息,所述写操作信息包括写操作数据和写操作地址,所述写操作数据用于指示报文接收端中的网络处理器中所述待更新的转发表项,且所述写操作数据是所述报文发送端基于获取到的所述待更新的转发表项,以及所述报文接收端中路由算法表的格式生成的,所述写操作地址用于指示待写入所述写操作数据的地址;
封装模块,用于将生成的所述写操作信息封装为写操作报文;
发送模块,用于向所述报文接收端中的网络处理器发送所述写操作报文,所述写操作报文用于指示所述网络处理器根据所述写操作信息中的写操作地址,将所述写操作数据写入内存,以更新所述转发表项;
其中,所述报文接收端和所述报文发送端均为路由系统中的网元设备。
20.根据权利要求19所述的装置,其特征在于,所述发送模块,还用于:
向所述报文接收端中的网络处理器发送第一控制报文,所述第一控制报文中包括计数值,所述计数值为在发送第二控制报文之后发送的写操作报文中所包括的写操作信息的总数,所述第二控制报文为在所述第一控制报文之前发送的前一个控制报文;
当接收到所述报文接收端中的网络处理器发送的用于指示在所述第二控制报文之后发送的写操作报文丢失的第一提示信息时,向所述报文接收端中的网络处理器重新发送在所述第二控制报文之后发送的写操作报文;
其中,所述第一提示信息为所述报文接收端中的网络处理器检测到在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值不相等时发送的。
21.根据权利要求20所述的装置,其特征在于,每个控制报文中还包括序列号,且所述报文发送端发送的控制报文中的序列号依次递增;所述发送模块,还用于:
当接收到所述报文接收端中的网络处理器发送的用于指示在第三控制报文之后发送的控制报文丢失的第二提示信息时,向所述报文接收端中的网络处理器重新发送在所述第三控制报文之后发送的写操作报文;
其中,所述第二提示信息为所述报文接收端中的网络处理器在检测到所述第一控制报文的序列号与所述第三控制报文的序列号的差值不为预设差值时发送的,所述第三控制报文为所述报文接收端在所述第一控制报文之前接收到的前一个控制报文。
22.根据权利要求20或21所述的装置,其特征在于,所述装置还包括:
检测模块,用于在所述发送模块每次发送控制报文之后,检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值;
所述发送模块,还用于:
当所述空闲时长大于所述时长阈值时,向所述报文接收端中的网络处理器发送保活报文,所述保活报文中包括序列号,且所述保活报文的序列号与上一个控制报文的序列号的差值为预设差值;
当接收到所述报文接收端中的网络处理器发送的用于指示在第四控制报文之后发送的控制报文丢失的第三提示信息时,向所述报文接收端中的网络处理器重新发送在所述第四控制报文之后发送的写操作报文;
其中,所述第三提示信息为所述报文接收端中的网络处理器在检测到接收到的所述保活报文的序列号与所述第四控制报文的序列号的差值不为所述预设差值时发送的,所述第四控制报文为所述报文接收端在所述保活报文之前接收到的前一个控制报文。
23.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质中存储的指令在计算机上运行时,使得计算机执行如权利要求1至7任一所述的方法,或者如权利要求8至10任一所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811172338.XA CN111026324B (zh) | 2018-10-09 | 2018-10-09 | 转发表项的更新方法及装置 |
EP19872140.9A EP3720067B1 (en) | 2018-10-09 | 2019-10-09 | Method and apparatus for updating forwarding entry |
PCT/CN2019/110054 WO2020073907A1 (zh) | 2018-10-09 | 2019-10-09 | 转发表项的更新方法及装置 |
US16/919,465 US11316804B2 (en) | 2018-10-09 | 2020-07-02 | Forwarding entry update method and apparatus in a memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811172338.XA CN111026324B (zh) | 2018-10-09 | 2018-10-09 | 转发表项的更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111026324A CN111026324A (zh) | 2020-04-17 |
CN111026324B true CN111026324B (zh) | 2021-11-19 |
Family
ID=70164843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811172338.XA Active CN111026324B (zh) | 2018-10-09 | 2018-10-09 | 转发表项的更新方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11316804B2 (zh) |
EP (1) | EP3720067B1 (zh) |
CN (1) | CN111026324B (zh) |
WO (1) | WO2020073907A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113709050A (zh) * | 2020-05-22 | 2021-11-26 | 华为技术有限公司 | 数据传输的方法、第一盒子以及第二盒子 |
US11579801B2 (en) * | 2020-06-09 | 2023-02-14 | Samsung Electronics Co., Ltd. | Write ordering in SSDs |
WO2022052709A1 (zh) * | 2020-09-11 | 2022-03-17 | 华为技术有限公司 | 获取下一跳的方法、生成转发表项的方法及装置 |
CN113419978A (zh) * | 2021-06-23 | 2021-09-21 | 新华三信息安全技术有限公司 | 一种通信设备、表项更新方法及存储介质 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101068170A (zh) * | 2007-06-05 | 2007-11-07 | 华为技术有限公司 | 一种报文接收异常的检测方法、系统及其装置 |
CN101783715A (zh) * | 2009-11-19 | 2010-07-21 | 北京邮电大学 | 监测网络丢包率的方法及系统 |
CN102281146A (zh) * | 2010-06-11 | 2011-12-14 | 阿里巴巴集团控股有限公司 | 一种udp组播方法及装置 |
CN102739549A (zh) * | 2012-07-13 | 2012-10-17 | 华为技术有限公司 | 接收报文的方法、发送报文的方法及装置 |
CN102857414A (zh) * | 2012-08-20 | 2013-01-02 | 中兴通讯股份有限公司 | 一种转发表写入、报文转发方法及装置 |
CN104320349A (zh) * | 2014-10-31 | 2015-01-28 | 杭州华三通信技术有限公司 | 一种组播转发表项更新方法和装置 |
CN104394099A (zh) * | 2014-12-08 | 2015-03-04 | 福建星网锐捷网络有限公司 | 一种报文传输方法及装置 |
CN105099948A (zh) * | 2015-06-30 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种报文信息处理方法及装置 |
CN105591936A (zh) * | 2015-09-11 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种更新转发表项的方法和装置 |
CN106330579A (zh) * | 2015-06-15 | 2017-01-11 | 中兴通讯股份有限公司 | 一种用于ptn设备的丢包统计方法及装置 |
CN106656803A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种更新路由表项的方法、装置及系统 |
CN106713132A (zh) * | 2016-11-23 | 2017-05-24 | 华为技术有限公司 | 用于更新转发表项的方法和装置 |
CN107547364A (zh) * | 2017-08-15 | 2018-01-05 | 新华三技术有限公司 | 路由下发方法、装置和网络设备 |
CN107579916A (zh) * | 2016-07-04 | 2018-01-12 | 新华三技术有限公司 | 转发表项访问方法及装置 |
CN107769988A (zh) * | 2016-08-19 | 2018-03-06 | 华为技术有限公司 | 信息发送及检测报文丢失的方法、装置和网络设备 |
CN108418740A (zh) * | 2018-02-28 | 2018-08-17 | 新华三技术有限公司 | 报文处理方法及装置 |
CN111555981A (zh) * | 2020-04-03 | 2020-08-18 | 深圳震有科技股份有限公司 | 一种数据传输方法、交换机及存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5938736A (en) * | 1997-06-30 | 1999-08-17 | Sun Microsystems, Inc. | Search engine architecture for a high performance multi-layer switch element |
US7848278B2 (en) * | 2006-10-23 | 2010-12-07 | Telcordia Technologies, Inc. | Roadside network unit and method of organizing, managing and maintaining local network using local peer groups as network groups |
EP2112806B1 (en) * | 2008-04-14 | 2013-03-20 | Axis AB | Information collecting system |
CN101330466B (zh) * | 2008-07-24 | 2012-07-04 | 华为技术有限公司 | 一种组播报文的转发方法及装置 |
US8014317B1 (en) * | 2008-08-21 | 2011-09-06 | Juniper Networks, Inc. | Next hop chaining for forwarding data in a network switching device |
CN101631086B (zh) * | 2009-08-10 | 2012-09-26 | 武汉烽火网络有限责任公司 | 并行ip路由查找的路由表分区和放置方法 |
CN101778113B (zh) * | 2010-01-25 | 2013-09-18 | 福建星网锐捷网络有限公司 | 组播网中rp状态检测方法、装置、rp装置和组播系统 |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
CN102186221B (zh) * | 2011-04-25 | 2013-11-20 | 北京星网锐捷网络技术有限公司 | 一种路由表项的更新方法以及装置 |
CN102929818B (zh) * | 2012-10-23 | 2015-12-16 | 华为技术有限公司 | PCIe接口的传输报文数据方法、桥接模块、读取模块和系统 |
CN103905397B (zh) * | 2012-12-28 | 2015-05-13 | 腾讯科技(深圳)有限公司 | 数据同步方法和系统 |
CN103346981B (zh) * | 2013-06-28 | 2016-08-10 | 华为技术有限公司 | 虚拟交换方法、相关装置和计算机系统 |
CN103984506B (zh) * | 2014-04-30 | 2017-06-30 | 深圳市江波龙电子有限公司 | 闪存存储设备数据写的方法和系统 |
US9762489B2 (en) * | 2014-09-24 | 2017-09-12 | Cisco Technology, Inc. | Local packet switching at a satellite device |
US10152352B2 (en) * | 2015-11-17 | 2018-12-11 | Friday Harbor Llc | Writing to contiguous memory addresses in a network on a chip architecture |
US10789371B2 (en) * | 2016-06-20 | 2020-09-29 | Intel Corporation | Technologies for trusted I/O with a channel identifier filter and processor-based cryptographic engine |
-
2018
- 2018-10-09 CN CN201811172338.XA patent/CN111026324B/zh active Active
-
2019
- 2019-10-09 EP EP19872140.9A patent/EP3720067B1/en active Active
- 2019-10-09 WO PCT/CN2019/110054 patent/WO2020073907A1/zh unknown
-
2020
- 2020-07-02 US US16/919,465 patent/US11316804B2/en active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101068170A (zh) * | 2007-06-05 | 2007-11-07 | 华为技术有限公司 | 一种报文接收异常的检测方法、系统及其装置 |
CN101783715A (zh) * | 2009-11-19 | 2010-07-21 | 北京邮电大学 | 监测网络丢包率的方法及系统 |
CN102281146A (zh) * | 2010-06-11 | 2011-12-14 | 阿里巴巴集团控股有限公司 | 一种udp组播方法及装置 |
CN102739549A (zh) * | 2012-07-13 | 2012-10-17 | 华为技术有限公司 | 接收报文的方法、发送报文的方法及装置 |
CN102857414A (zh) * | 2012-08-20 | 2013-01-02 | 中兴通讯股份有限公司 | 一种转发表写入、报文转发方法及装置 |
CN104320349A (zh) * | 2014-10-31 | 2015-01-28 | 杭州华三通信技术有限公司 | 一种组播转发表项更新方法和装置 |
CN104394099A (zh) * | 2014-12-08 | 2015-03-04 | 福建星网锐捷网络有限公司 | 一种报文传输方法及装置 |
CN106330579A (zh) * | 2015-06-15 | 2017-01-11 | 中兴通讯股份有限公司 | 一种用于ptn设备的丢包统计方法及装置 |
CN105099948A (zh) * | 2015-06-30 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种报文信息处理方法及装置 |
CN105591936A (zh) * | 2015-09-11 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种更新转发表项的方法和装置 |
CN106656803A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种更新路由表项的方法、装置及系统 |
CN107579916A (zh) * | 2016-07-04 | 2018-01-12 | 新华三技术有限公司 | 转发表项访问方法及装置 |
CN107769988A (zh) * | 2016-08-19 | 2018-03-06 | 华为技术有限公司 | 信息发送及检测报文丢失的方法、装置和网络设备 |
CN106713132A (zh) * | 2016-11-23 | 2017-05-24 | 华为技术有限公司 | 用于更新转发表项的方法和装置 |
CN107547364A (zh) * | 2017-08-15 | 2018-01-05 | 新华三技术有限公司 | 路由下发方法、装置和网络设备 |
CN108418740A (zh) * | 2018-02-28 | 2018-08-17 | 新华三技术有限公司 | 报文处理方法及装置 |
CN111555981A (zh) * | 2020-04-03 | 2020-08-18 | 深圳震有科技股份有限公司 | 一种数据传输方法、交换机及存储介质 |
Non-Patent Citations (1)
Title |
---|
"一种基于流量预测的启发式路由表更新算法";时鸿涛等;《科学技术与工程》;20131010;第13卷(第024期);第7098-7104页 * |
Also Published As
Publication number | Publication date |
---|---|
US20200366626A1 (en) | 2020-11-19 |
CN111026324A (zh) | 2020-04-17 |
EP3720067A1 (en) | 2020-10-07 |
WO2020073907A1 (zh) | 2020-04-16 |
EP3720067B1 (en) | 2023-12-06 |
EP3720067A4 (en) | 2021-03-31 |
US11316804B2 (en) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026324B (zh) | 转发表项的更新方法及装置 | |
US11916781B2 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC) | |
CN111654447B (zh) | 一种报文传输的方法及装置 | |
US11924099B2 (en) | Method for forwarding packet in hybrid network, device, and system | |
CN113326228B (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
EP2741456A1 (en) | Method, device, system and storage medium for achieving message transmission of pcie switch network | |
RU2540815C2 (ru) | Прерывание, по меньшей мере частичное, передачи кадра | |
CN110661725A (zh) | 用于对出口上的网络分组进行重排序的技术 | |
WO2020221224A1 (zh) | 一种拥塞信息采集方法、系统、相关设备及计算机存储介质 | |
CN110430135B (zh) | 一种报文处理方法和装置 | |
CN112039796B (zh) | 数据包传输方法和装置、存储介质和电子设备 | |
US11681470B2 (en) | High-speed replay of captured data packets | |
US10601722B2 (en) | Method and device for dynamically managing the message retransmission delay on an interconnection network | |
CN113422707B (zh) | 一种带内网络遥测方法及设备 | |
TW201737664A (zh) | 集群精確限速方法和裝置 | |
CN106992918B (zh) | 报文转发方法和装置 | |
JP2023544309A (ja) | パケットヘッダ情報取得方法、パケット生成方法、装置及び記憶媒体 | |
US10185675B1 (en) | Device with multiple interrupt reporting modes | |
US9985886B2 (en) | Technologies for network packet pacing during segmentation operations | |
US8914550B2 (en) | System and method for transferring data between components of a data processor | |
US20230121096A1 (en) | Location Based Medium Access Control Address | |
WO2024065481A1 (zh) | 一种数据处理方法、装置、网络设备及存储介质 | |
JP2017212487A (ja) | Ipフラグメント装置、ipデフラグメント装置、ipフラグメントパケット通信システム、ipフラグメントパケット送信方法、ipフラグメントパケットのデフラグメント方法、ipフラグメントパケットの通信方法及びプログラム | |
CN113973091A (zh) | 一种报文处理方法、网络设备以及相关设备 | |
CN115695246A (zh) | 一种基于SRv6的隧道质量检测方法和相关装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |