CN116016349A - 报文调度方法、装置和*** - Google Patents
报文调度方法、装置和*** Download PDFInfo
- Publication number
- CN116016349A CN116016349A CN202310014513.7A CN202310014513A CN116016349A CN 116016349 A CN116016349 A CN 116016349A CN 202310014513 A CN202310014513 A CN 202310014513A CN 116016349 A CN116016349 A CN 116016349A
- Authority
- CN
- China
- Prior art keywords
- message
- congestion
- port
- response
- congestion state
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文调度方法、装置和***。其中,该方法包括:获取待发送的第一报文;从缓存或存储器获取第一报文对应的第一拥塞状态,其中,第一拥塞状态用于表征第一报文对应的第一端口是否发生拥塞;响应于第一端口发生拥塞,将第一报文存储至软件队列;响应于第一端口未发生拥塞,对第一报文进行转发。本发明解决了由于发送过程复杂造成的报文转发效率较低的技术问题。
Description
技术领域
本发明涉及数据传输领域,具体而言,涉及一种报文调度方法、装置和***。
背景技术
在现有的软件执行路由查找或转发,通常通过紧急队列等方式处理发送(Transport,简称TX)失败的报文,但该方式的实现过程由于较为复杂,导致软件转发效率降低,且在传输过程中,存在丢包的可能性。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种报文调度方法、装置和***,以至少解决由于发送过程复杂造成的报文转发效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种报文调度方法,包括:获取待发送的第一报文;从缓存或存储器获取第一报文对应的第一拥塞状态,其中,第一拥塞状态用于表征第一报文对应的第一端口是否发生拥塞;响应于第一端口发生拥塞,将第一报文存储至软件队列;响应于第一端口未发生拥塞,对第一报文进行转发。
可选地,对第一报文进行转发,包括:确定软件队列中存储的历史报文的数量;响应于数量小于预设数量,对第一报文进行转发;响应于数量大于或等于预设数量,将第一报文存储至软件队列。
可选的,在将第一报文存储至软件队列之后,方法还包括:获取软件队列中存储的第二报文;从缓存或存储器获取第二报文对应的第二拥塞状态,其中,第二拥塞状态用于表征第二报文对应的第二端口是否发生拥塞;响应于第二端口发生拥塞,将第二报文存储至紧急队列;响应于第二端口未发生拥塞,将第二报文进行转发。
可选的,在将第二报文存储至紧急队列之后,方法还包括:获取紧急队列中存储的第三报文;从缓存或存储器获取第三报文对应的第三拥塞状态,其中,第三拥塞状态用于表征第三报文对应的第三端口是否发生拥塞;响应于第三端口发生拥塞,丢弃第三报文;响应于第三端口未发生拥塞,将第三报文进行转发。
可选的,从缓存或存储器获取待发送报文对应的第一拥塞状态,包括:从缓存或存储器获取传输环形缓冲中的空闲描述符的第一数量;响应于第一数量小于第一预设数量,确定第一端口发生拥塞;响应于第一数量大于第二预设数量,确定第一端口未发生拥塞。
可选的,该方法还包括:获取用于对空闲描述符的第一数量进行更新的更新指令;基于更新指令对空闲描述符的第一数量进行更新,得到空闲描述符的第二数量;响应第二数量小于第一预设数量,确定第一拥塞状态从第一端口未发生拥塞变为第一端口发生拥塞;响应于第二数量大于第二预设数量,确定第一拥塞状态从第一端口发生拥塞变为第一端口未发生拥塞。
可选的,响应于第一拥塞状态发生变化,方法还包括如下至少之一:发送中断消息至处理器,其中,中断消息用于处理器从存储器获取变化后的拥塞状态来更新处理器中存储的历史拥塞状态;将变化后的拥塞状态存储至缓存。
根据本发明实施例的另一方面,还提供了一种报文调度装置,包括:报文获取模块,用于获取待发送的第一报文;状态获取模块,用于从缓存或存储器获取第一报文对应的第一拥塞状态,其中,第一拥塞状态用于表征第一报文对应的第一端口是否发生拥塞;报文存储模块,用于响应于第一端口发生拥塞,将第一报文存储至软件队列;报文转发模块,用于响应于第一端口未发生拥塞,对第一报文进行转发。
根据本发明实施例的另一方面,还提供了一种报文调度***,包括:缓存或存储器,用于存储不同端口是否发送拥塞的拥塞状态;处理器,与缓存或存储器连接,用于获取待发送的第一报文,并从缓存或存储器获取第一报文对应的第一拥塞状态,响应于第一端口发生拥塞,将第一报文存储至软件队列,于响应于第一端口未发生拥塞,对第一报文进行转发,其中,第一拥塞状态用于表征第一报文对应的第一端口是否发生拥塞。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行本申请实施例中任意一项的方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行本申请实施例中任意一项的方法。
通过上述步骤,可以实现获取待发送的第一报文;从缓存或存储器获取第一报文对应的第一拥塞状态,其中,第一拥塞状态用于表征第一报文对应的第一端口是否发生拥塞;响应于第一端口发生拥塞,将第一报文存储至软件队列;响应于第一端口未发生拥塞,对第一报文进行转发,从而可以通过缓存或存储器中精准的获取第一端口的拥塞状态,达到硬件辅助软件精确感知拥塞状态的目的,进而可以做出正确的报文调度策略,避免误发导致发送失败,达到提高报文转发效率的技术效果,解决于发送过程复杂造成的报文转发效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本申请实施例中一种报文调度方法的流程示意图;
图2是本申请实施例中一种报文调度方法的又一个流程示意图;
图3是本申请实施例中一种报文调度方法的另一个流程示意图;
图4是本申请实施例中一种报文调度装置的结构示意图;
图5是本申请实施例中一种报文调度***的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种报文调度方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是本申请实施例中一种报文调度方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤S102,获取待发送的第一报文。
步骤S104,从缓存或存储器获取第一报文对应的第一拥塞状态,其中,第一拥塞状态用于表征第一报文对应的第一端口是否发生拥塞。
具体的,上述缓存,即Cache,可以表示CPU(Central Processing Unit,中央处理器)高速缓冲区。上述存储器可以是DDR(Double Date Rate,双倍速率同步动态随机存储器)。上述第一端口可以是CPU Reg I/O(Input/Output,输入/输出)。
作为一种可选实施方式,硬件可以实时统计TX Ring内控件的描述符数量,根据配置信息,如果空闲描述符小于on-Threshold则视为进入拥塞状态,如果空闲描述符大于off-Threshold则视为退出拥塞状态。
其次,DMA(Direct Memory Access,直接内存访问)控制器通过环形队列空间与CPU进行交互。DMA TX RING通常以尾指针的方式获取描述符完成数据传输,其中DMA控制器维护了TX RING中有效可用的描述符数目,即vldNum。当vldNum非零时,DMA TX就可以获取描述符执行数据传输。每次软件需要通知硬件可用描述符数量增加的时候,需要通过配置Reg I/O更新vldNum,软件更新的vldNum会累加到芯片内部真正的vldNum上。报文发送方向上,芯片内的vldNum表示DMA TX RING上有多少硬件待执行发包的DMA描述符,每发完一段报文,vldNum对应减少1。同时,DMA控制器也维护了空闲TX描述符数目,即TxFreeFesc。图2是本申请实施例中一种报文调度方法的又一个流程示意图,参见图2右下角,其中黑色部分描述符是指CPU完成TX硬件尚未发送的描述符,灰色部分描述符是指空闲的TX描述符,且图2中的Thrd用于表征Threshold。
也就是说,由于导致TX方向进入拥塞状态的事件必然是来自CPU更新vldNum的RegI/O,故而在每一次CPU Reg I/O后判断是否达到On-Threshold,并且由于导致TX方向解除拥塞状态的事件必然是DMA TX RING完成数据发送后更新减少vldNum,故在每一次发包后判断是否小于Off-Threshold进而解除拥塞状态。
此外,每次进入拥塞状态或拥塞状态解除导致拥塞状态变化时,硬件都会去更新Congestion(拥塞)状态。这种拥塞状态可以通过硬件上bitmap形式体现,每个bit代表一个DMA TX Ring的拥塞状态,置1标识拥塞,置0标识不拥塞。其中,拥塞状态bitmap通告软件的方式包含了中断和芯片写拥塞状态到特定地址两种方式。中断方式下,DMA报中断通知CPU拥塞状态发生变化,CPU处理中断从DDR中获取拥塞状态完成CPU拥塞信息更新;写特定地址方式下,N个TX RING的任意一个TX RING的拥塞状态发生变化,芯片即将N比特bitmap的拥塞状态更新到所配置的地址对应的内存中,即Cache Memory中,CPU直接从Cache中高速获取DMATX RING的拥塞状态。
步骤S106,响应于第一端口发生拥塞,将第一报文存储至软件队列。
步骤S108,响应于第一端口未发生拥塞,对第一报文进行转发。
作为一种可选实施方式,图3是本申请实施例中一种报文调度方法的另一个流程示意图,如图3所示,在第一端口发生拥塞时,可以将第一报文存储进行Enqueue(排队)处理后,将第一报文存储至Service Queue(即上述软件队列),在第一端口未发生拥塞时,确定Queue(队列)为空,对第一报文进行转发。
通过上述步骤,可以实现获取待发送的第一报文;从缓存或存储器获取第一报文对应的第一拥塞状态,其中,第一拥塞状态用于表征第一报文对应的第一端口是否发生拥塞;响应于第一端口发生拥塞,将第一报文存储至软件队列;响应于第一端口未发生拥塞,对第一报文进行转发,从而可以通过缓存或存储器中精准的获取第一端口的拥塞状态,达到硬件辅助软件精确感知拥塞状态的目的,进而可以做出正确的报文调度策略,避免误发导致发送失败,达到提高报文转发效率的技术效果,解决于发送过程复杂造成的报文转发效率较低的技术问题。
可选的,对第一报文进行转发,包括:确定软件队列中存储的历史报文的数量;响应于数量小于预设数量,对第一报文进行转发;响应于数量大于或等于预设数量,将第一报文存储至软件队列。
具体的,上述历史报文的数量可以是vldNum,预设数量可以是On-Threshold。
可选的,在将第一报文存储至软件队列之后,方法还包括:获取软件队列中存储的第二报文;从缓存或存储器获取第二报文对应的第二拥塞状态,其中,第二拥塞状态用于表征第二报文对应的第二端口是否发生拥塞;响应于第二端口发生拥塞,将第二报文存储至紧急队列;响应于第二端口未发生拥塞,将第二报文进行转发。
具体的,如图3所示,紧急队列可以是Critical Queue。
可选的,在将第二报文存储至紧急队列之后,方法还包括:获取紧急队列中存储的第三报文;从缓存或存储器获取第三报文对应的第三拥塞状态,其中,第三拥塞状态用于表征第三报文对应的第三端口是否发生拥塞;响应于第三端口发生拥塞,丢弃第三报文;响应于第三端口未发生拥塞,将第三报文进行转发。
具体的,第三端口可以是Critical queue对应的端口,若Critical queue对应的端口发生拥塞,丢弃第三报文。
可选的,从缓存或存储器获取待发送报文对应的第一拥塞状态,包括:从缓存或存储器获取传输环形缓冲中的空闲描述符的第一数量;响应于第一数量小于第一预设数量,确定第一端口发生拥塞;响应于第一数量大于第二预设数量,确定第一端口未发生拥塞。
具体的,上述第一数量可以是TxFreeFesc,上述第一预设数量可以是On-Threshold,第二预设数量可以是off-Threshold。
可选的,该方法还包括:获取用于对空闲描述符的第一数量进行更新的更新指令;基于更新指令对空闲描述符的第一数量进行更新,得到空闲描述符的第二数量;响应第二数量小于第一预设数量,确定第一拥塞状态从第一端口未发生拥塞变为第一端口发生拥塞;响应于第二数量大于第二预设数量,确定第一拥塞状态从第一端口发生拥塞变为第一端口未发生拥塞。
具体的,每发送一次报文,减少一次TX Ring中的有效空闲描述符的数量,并同步增加一次第一数量,得到空闲描述符的第二数量。上述第一预设数量和第二用户数量可以由用户所配置的。
可选的,响应于第一拥塞状态发生变化,方法还包括如下至少之一:发送中断消息至处理器,其中,中断消息用于处理器从存储器获取变化后的拥塞状态来更新处理器中存储的历史拥塞状态;将变化后的拥塞状态存储至缓存。
具体的,DMA可以将中断消息发送至CPU,CPU则可以知道CPU的拥塞状态发生变化,进而CPU可以从DDR中获取变化后的拥塞状态,并将该变化后的拥塞状态存储至缓存中。
此外,还可以采用此种方式更新拥塞状态,N个TX RING的任意一个TX RING的拥塞状态发生变化,芯片即将N比特bitmap的拥塞状态更新到所配置的地址对应的内存中,即Cache Memory中,CPU直接从Cache中高速获取DMATX RING的拥塞状态。
本申请还提供了一种报文调度装置,图4是本申请实施例中一种报文调度装置的结构示意图,如图4所示,该装置包括:
报文获取模块42,用于获取待发送的第一报文;
状态获取模块44,用于从缓存或存储器获取第一报文对应的第一拥塞状态,其中,第一拥塞状态用于表征第一报文对应的第一端口是否发生拥塞;
报文存储模块46,用于响应于第一端口发生拥塞,将第一报文存储至软件队列;
报文转发模块48,用于响应于第一端口未发生拥塞,对第一报文进行转发。
通过上述实施例,可以实现获取待发送的第一报文;从缓存或存储器获取第一报文对应的第一拥塞状态,其中,第一拥塞状态用于表征第一报文对应的第一端口是否发生拥塞;响应于第一端口发生拥塞,将第一报文存储至软件队列;响应于第一端口未发生拥塞,对第一报文进行转发,从而可以通过缓存或存储器中精准的获取第一端口的拥塞状态,达到硬件辅助软件精确感知拥塞状态的目的,进而可以做出正确的报文调度策略,避免误发导致发送失败,达到提高报文转发效率的技术效果,解决于发送过程复杂造成的报文转发效率较低的技术问题。
可选的,报文转发模块包括:数量确认单元,用于确定软件队列中存储的历史报文的数量;转发单元,用于响应于数量小于预设数量,对第一报文进行转发;存储单元,用于响应于数量大于或等于预设数量,将第一报文存储至软件队列。
可选的,该装置还包括:第二报文获取模块,用于在将第一报文存储至软件队列之后,获取软件队列中存储的第二报文;第二拥塞状态获取模块,用于从缓存或存储器获取第二报文对应的第二拥塞状态,其中,第二拥塞状态用于表征第二报文对应的第二端口是否发生拥塞;第二存储模块,用于响应于第二端口发生拥塞,将第二报文存储至紧急队列;第二报文转发模块,用于响应于第二端口未发生拥塞,将第二报文进行转发。
可选的,该装置还包括:第三报文获取模块,用于在将第二报文存储至紧急队列之后,获取紧急队列中存储的第三报文;第三拥塞状态获取模块,用于从缓存或存储器获取第三报文对应的第三拥塞状态,其中,第三拥塞状态用于表征第三报文对应的第三端口是否发生拥塞;丢弃模块,用于响应于第三端口发生拥塞,丢弃第三报文;第三转发模块,用于响应于第三端口未发生拥塞,将第三报文进行转发。
可选的,状态获取模块包括:数量获取单元,用于从缓存或存储器获取传输环形缓冲中的空闲描述符的第一数量;第一拥塞确认单元,用于响应于第一数量小于第一预设数量,确定第一端口发生拥塞;第二未拥塞确认单元,用于响应于第一数量大于第二预设数量,确定第一端口未发生拥塞。
可选的,该装置还包括:更新指令获取模块,用于获取用于对空闲描述符的第一数量进行更新的更新指令;数量更新模块,用于基于更新指令对空闲描述符的第一数量进行更新,得到空闲描述符的第二数量;第二拥塞确认模块,用于响应第二数量小于第一预设数量,确定第一拥塞状态从第一端口未发生拥塞变为第一端口发生拥塞;第二未拥塞确认模块,用于响应于第二数量大于第二预设数量,确定第一拥塞状态从第一端口发生拥塞变为第一端口未发生拥塞。
可选的,该装置还包括:状态更新模块,用于响应于第一拥塞状态发生变化,发送中断消息至处理器,其中,中断消息用于处理器从存储器获取变化后的拥塞状态来更新处理器中存储的历史拥塞状态;将变化后的拥塞状态存储至缓存。
本申请还提供了一种报文调度***,图5是本申请实施例中一种报文调度***的结构示意图,如图5所示,该***包括:
缓存或存储器52,用于存储不同端口是否发送拥塞的拥塞状态;
处理器54,与缓存或存储器连接,用于获取待发送的第一报文,并从缓存或存储器获取第一报文对应的第一拥塞状态,响应于第一端口发生拥塞,将第一报文存储至软件队列,于响应于第一端口未发生拥塞,对第一报文进行转发,其中,第一拥塞状态用于表征第一报文对应的第一端口是否发生拥塞。
通过上述实施例,可以实现获取待发送的第一报文;从缓存或存储器获取第一报文对应的第一拥塞状态,其中,第一拥塞状态用于表征第一报文对应的第一端口是否发生拥塞;响应于第一端口发生拥塞,将第一报文存储至软件队列;响应于第一端口未发生拥塞,对第一报文进行转发,从而可以通过缓存或存储器中精准的获取第一端口的拥塞状态,达到硬件辅助软件精确感知拥塞状态的目的,进而可以做出正确的报文调度策略,避免误发导致发送失败,达到提高报文转发效率的技术效果,解决于发送过程复杂造成的报文转发效率较低的技术问题。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行本申请实施例中任意一项的方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行本申请实施例中任意一项的方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种报文调度方法,其特征在于,包括:
获取待发送的第一报文;
从缓存或存储器获取所述第一报文对应的第一拥塞状态,其中,所述第一拥塞状态用于表征所述第一报文对应的第一端口是否发生拥塞;
响应于所述第一端口发生拥塞,将所述第一报文存储至软件队列;
响应于所述第一端口未发生拥塞,对所述第一报文进行转发。
2.根据权利要求1所述的方法,其特征在于,对所述第一报文进行转发,包括:
确定软件队列中存储的历史报文的数量;
响应于所述数量小于预设数量,对所述第一报文进行转发;
响应于所述数量大于或等于所述预设数量,将所述第一报文存储至软件队列。
3.根据权利要求1所述的方法,其特征在于,在将所述第一报文存储至软件队列之后,所述方法还包括:
获取所述软件队列中存储的第二报文;
从所述缓存或所述存储器获取所述第二报文对应的第二拥塞状态,其中,所述第二拥塞状态用于表征所述第二报文对应的第二端口是否发生拥塞;
响应于所述第二端口发生拥塞,将所述第二报文存储至紧急队列;
响应于所述第二端口未发生拥塞,将所述第二报文进行转发。
4.根据权利要求3所述的方法,其特征在于,在将所述第二报文存储至紧急队列之后,所述方法还包括:
获取所述紧急队列中存储的第三报文;
从所述缓存或所述存储器获取所述第三报文对应的第三拥塞状态,其中,所述第三拥塞状态用于表征所述第三报文对应的第三端口是否发生拥塞;
响应于所述第三端口发生拥塞,丢弃所述第三报文;
响应于所述第三端口未发生拥塞,将所述第三报文进行转发。
5.根据权利要求1所述的方法,其特征在于,从缓存或存储器获取所述待发送报文对应的第一拥塞状态,包括:
从所述缓存或所述存储器获取传输环形缓冲中的空闲描述符的第一数量;
响应于所述第一数量小于第一预设数量,确定所述第一端口发生拥塞;
响应于所述第一数量大于第二预设数量,确定所述第一端口未发生拥塞。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取用于对所述空闲描述符的第一数量进行更新的更新指令;
基于所述更新指令对所述空闲描述符的第一数量进行更新,得到所述空闲描述符的第二数量;
响应所述第二数量小于所述第一预设数量,确定所述第一拥塞状态从所述第一端口未发生拥塞变为所述第一端口发生拥塞;
响应于所述第二数量大于所述第二预设数量,确定所述第一拥塞状态从所述第一端口发生拥塞变为所述第一端口未发生拥塞。
7.根据权利要求1所述的方法,其特征在于,响应于所述第一拥塞状态发生变化,所述方法还包括如下至少之一:
发送中断消息至处理器,其中,所述中断消息用于所述处理器从所述存储器获取变化后的拥塞状态来更新所述处理器中存储的历史拥塞状态;
将所述变化后的拥塞状态存储至所述缓存。
8.一种报文调度装置,其特征在于,包括:
报文获取模块,用于获取待发送的第一报文;
状态获取模块,用于从缓存或存储器获取所述第一报文对应的第一拥塞状态,其中,所述第一拥塞状态用于表征所述第一报文对应的第一端口是否发生拥塞;
报文存储模块,用于响应于所述第一端口发生拥塞,将所述第一报文存储至软件队列;
报文转发模块,用于响应于所述第一端口未发生拥塞,对所述第一报文进行转发。
9.一种报文调度***,其特征在于,包括:
缓存或存储器,用于存储不同端口是否发送拥塞的拥塞状态;
处理器,与所述缓存或存储器连接,用于获取待发送的第一报文,并从所述缓存或所述存储器获取所述第一报文对应的第一拥塞状态,响应于第一端口发生拥塞,将所述第一报文存储至软件队列,于响应于所述第一端口未发生拥塞,对所述第一报文进行转发,其中,所述第一拥塞状态用于表征所述第一报文对应的第一端口是否发生拥塞。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的方法。
11.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310014513.7A CN116016349A (zh) | 2023-01-05 | 2023-01-05 | 报文调度方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310014513.7A CN116016349A (zh) | 2023-01-05 | 2023-01-05 | 报文调度方法、装置和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116016349A true CN116016349A (zh) | 2023-04-25 |
Family
ID=86024504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310014513.7A Pending CN116016349A (zh) | 2023-01-05 | 2023-01-05 | 报文调度方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016349A (zh) |
-
2023
- 2023-01-05 CN CN202310014513.7A patent/CN116016349A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960015862B1 (ko) | 데이타 송신방법 및 장치 | |
US7117308B1 (en) | Hypertransport data path protocol | |
US7676610B2 (en) | Device and method for optimization of target host device process handling according to the status and the priority of the target host device process | |
JPH0675262B2 (ja) | メツセージ転送機構 | |
CN107426113B (zh) | 报文接收方法及网络设备 | |
CN101616083A (zh) | 一种报文转发方法和装置 | |
CN107770090B (zh) | 用于控制流水线中寄存器的方法和装置 | |
JPH0824320B2 (ja) | 通信制御装置における緩衝域連鎖の方法およびその装置 | |
CN113760559A (zh) | 一种双核通信方法和电子设备 | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
US10305772B2 (en) | Using a single work item to send multiple messages | |
US7209489B1 (en) | Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing | |
CN113157465B (zh) | 基于指针链表的消息发送方法及装置 | |
US20080056160A1 (en) | Information processing system, information processing apparatus, information processing method and program | |
CN113268446B (zh) | 用于多种机载总线接入的信息处理方法及装置 | |
CN1829231B (zh) | 直接接收入站数据的方法和装置 | |
CN112039835B (zh) | 自适应轮询时间估算方法、装置、设备及存储介质 | |
CN116016349A (zh) | 报文调度方法、装置和*** | |
CN113992609B (zh) | 一种处理多链路业务数据乱序的方法及*** | |
JP3662084B2 (ja) | Atm交換装置 | |
JP5772132B2 (ja) | データ転送装置、データ転送方法および情報処理装置 | |
CN112835823B (zh) | 存储控制器应答发送方法 | |
US7475159B2 (en) | High-speed scheduler | |
JPS6332298B2 (zh) | ||
CN117278505B (zh) | 一种raid卡节点之间的消息传输方法、***、设备以及介质 |
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 |