CN101841486A - 一种消息的传输方法和设备 - Google Patents
一种消息的传输方法和设备 Download PDFInfo
- Publication number
- CN101841486A CN101841486A CN201010188302A CN201010188302A CN101841486A CN 101841486 A CN101841486 A CN 101841486A CN 201010188302 A CN201010188302 A CN 201010188302A CN 201010188302 A CN201010188302 A CN 201010188302A CN 101841486 A CN101841486 A CN 101841486A
- Authority
- CN
- China
- Prior art keywords
- queue
- length
- token bucket
- message
- transmit queue
- 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
本发明公开了一种消息的传输方法,包括以下步骤:为所述CPU的以太网口分配接收队列,并为所述NP的以太网口分配发送队列:获取所述接收队列的已用队列长度;判断获取的所述接收队列的已用队列长度是否大于预设第一限制门限,若大于该第一限制门限,则关闭所述NP的以太网口;根据所述发送队列的已用队列长度降低令牌桶速率,根据降低后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。本发明中,提升了消息的上送速度,并显著提高了系统性能。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种消息的传输方法和设备。
背景技术
现有的路由设备中,一般是由CPU(Central Processing Unit,中央处理单元)和报文处理芯片,或者,CPU和NP(Network Processor,网络处理器)所组成。
由于NP具有编程能力、较高的处理能力,且支持相对复杂的业务,NP逐渐成为路由设备的重要组成部分;而相对于CPU来说,NP的灵活度毕竟有限,很多业务仍然需要CPU配合才能完成;因此,CPU和NP的组成是绝大多数路由设备的首选。其中,在路由设备中,通常会配置一个CPU来用于管理协议和复杂的业务,并由NP来完成高速数据的处理。
具体的,在CPU和NP的组成中,通常NP会提供2条通路与CPU进行交互,一条通路为控制通道,另一条通路为GE网口(千兆以太网口)通道。
该控制通道通过PCI(Peripheral Component Interconnect,外设组件互连标准)总线与CPU相连,用于CPU配置NP和下发NP表项,或者将NP表项的消息上送到CPU,该控制通道可以保证消息的可靠性传输,但是访问的速率很慢。该GE网口通道用于将普通消息上送到CPU,且将普通消息上送到CPU的速率比较快,但是该GE网口通道无法保证将消息可靠性的上送到CPU。
以NAT(Network Address Translation,网络地址转换)业务为例,一般由NP完成地址转换功能,而涉及到应用层网关功能、用户管理功能和日志管理功能时,则NP需要CPU配合完成。例如,NAT日志输出过程中,为了获知每次用户NAT地址变换的情况,需要记录NAT地址变换的开始时间、结束时间和持续时间,而每个NAT地址变换的创建消息、删除消息均会上送到CPU中,由CPU完成日志消息的封装,并发送到日志服务器。
现有技术中,为了能够保证NAT会话表项的创建和删除,需要将NAT会话表项的创建消息和删除消息可靠的上送到CPU中,此时,通常需要由NP的控制通道发送对应的消息。
但是,在实现本发明的过程中,发明人发现现有技术中至少存在以下问题:
NP控制通道的性能一般都不好(控制通道访问的速率很慢),严重制约了NAT创建消息和删除消息的上送过程,在开启NAT日志功能的情况下,NAT新建消息的性能会急剧下降。
如果使用GE网口通道传送NAT会话表项的创建消息和删除消息,虽然可以提高处理能力,但由于GE网口无法保证将消息可靠的上送到CPU中,所以无法使用GE网口传送NAT会话表项的创建消息和删除消息。
发明内容
本发明提供一种消息的传输方法和设备,以实现NP的以太网口之间数据的可靠性传输,提高消息的传送能力。
为了达到上述目的,本发明提出了一种消息的传输方法,应用于包括中央处理单元CPU和网络处理器NP的网络设备中,所述NP与所述CPU之间通过以太网口相连,所述方法包括以下步骤,
为所述CPU的以太网口分配接收队列,并为所述NP的以太网口分配发送队列;
获取所述接收队列的已用队列长度;
判断获取的所述接收队列的已用队列长度是否大于预设第一限制门限,若大于该第一限制门限,则关闭所述NP的以太网口;
根据所述发送队列的已用队列长度降低令牌桶速率,根据降低后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
所述方法进一步包括;
判断所述接收队列的已用队列长度是否小于预设第一恢复门限,若小于该第一恢复门限,则打开所述NP的以太网口;
根据所述发送队列的已用队列长度上调令牌桶速率,根据上调后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
所述为所述CPU的以太网口分配接收队列,并为所述NP的以太网口分配发送队列的步骤之后,所述方法还包括以下步骤:
获取所述接收队列的剩余队列长度;
若获取的所述接收队列的剩余队列长度小于预设第二限制门限,则关闭所述NP的以太网口;
根据所述发送队列的剩余队列长度降低令牌桶速率,根据降低后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
所述方法进一步包括,
判断所述接收队列的剩余队列长度是否大于预设第二恢复门限,若大于该第二恢复门限,则打开所述NP的以太网口;
根据所述发送队列的剩余队列长度上调令牌桶速率,根据上调后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
根据所述发送队列的剩余队列长度降低令牌桶速率,以及根据所述发送队列的剩余队列长度上调令牌桶速率,具体包括:
根据预设的所述发送队列的剩余队列长度与令牌桶速率之间的对应关系降低/上调整令牌桶速率;
根据所述发送队列的已用队列长度降低令牌桶速率,以及根据所述发送队列的已用队列长度上调令牌桶速率,具体包括:
根据预设的所述发送队列的已用队列长度令牌桶速率之间的对应关系降低/上调整令牌桶速率。
所述获取所述接收队列的已用队列长度/所述获取所述接收队列的剩余队列长度之前,所述方法还包括:
通过以太网口将所述发送队列中缓存的消息传输到所述接收队列。
一种消息的传输设备,应用于包括中央处理单元CPU和网络处理器NP的网络设备中,所述NP与所述CPU之间通过以太网口相连,该设备包括:
分配模块,用于为所述CPU的以太网口分配接收队列,并为所述NP的以太网口分配发送队列;该设备进一步包括:
队列长度获取模块,用于获取所述接收队列的已用队列长度;
接收队列处理模块,与所述队列长度获取模块连接,用于判断获取的所述接收队列的已用队列长度是否大于预设第一限制门限,若大于该第一限制门限,则关闭所述NP的以太网口;
发送队列处理模块,与所述队列长度获取模块连接,用于根据所述发送队列的已用队列长度降低令牌桶速率,根据降低后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
所述接收队列处理模块还用于,判断所述接收队列的已用队列长度是否小于预设第一恢复门限,若小于该第一恢复门限,则打开所述NP的以太网口;
所述发送队列处理模块还用于,根据所述发送队列的已用队列长度上调令牌桶速率根据上调后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
所述队列长度获取模块还用于,获取所述接收队列的剩余队列长度;
所述接收队列处理模块还用于,若获取的所述接收队列的剩余队列长度小于预设第二限制门限,则关闭所述NP的以太网口;
所述发送队列处理模块还用于,根据所述发送队列的剩余队列长度降低令牌桶速率,根据降低后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
所述接收队列处理模块还用于,判断所述接收队列的剩余队列长度是否大于预设第二恢复门限,若大于该第二恢复门限,则打开所述NP的以太网口;
所述发送队列处理模块还用于,根据所述发送队列的剩余队列长度上调令牌桶速率,根据上调后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
所述发送队列处理模块还用于,根据预设的所述发送队列的剩余队列长度与令牌桶速率之间的对应关系降低/上调整令牌桶速率;
根据预设的所述发送队列的已用队列长度与令牌桶速率之间的对应关系降低/上调整令牌桶速率。
所述设备还包括:
传输模块,用于通过以太网口将所述发送队列中缓存的消息传输到所述接收队列。
与现有技术相比,本发明具有以下优点:
通过为CPU的以太网口通道分配接收队列,并为NP的以太网口通道分配发送队列,从而能够使用以太网口通道来可靠的传输消息,摆脱了只依靠NP控制通道来传输消息的方式,提升了消息的上送速度,并显著提高了系统性能。
附图说明
图1为本发明提出的一种消息的传输方法流程图;
图2为本发明一种应用场景下所提出的一种消息的传输方法流程图;
图3为本发明提出的一种消息的传输设备的结构图。
具体实施方式
本发明中提供一种消息的传输方法,应用于包括中央处理单元CPU和网络处理器NP的网络设备中,所述NP与所述CPU之间通过以太网口相连,为CPU的以太网口分配接收队列,并为NP的以太网口分配发送队列,如图1所示,该方法包括以下步骤:
步骤101,获取所述接收队列的占用情况。
步骤102,根据所述接收队列的占用情况判断是否关闭NP的以太网口,若判断为是则关闭NP的以太网口,若判断结果为否则继续接收。
步骤103,根据所述发送队列的占用情况降低令牌桶速率,以及根据降低后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
需要注意的是,根据接收队列的占用情况进行相应处理的过程(步骤102)和根据发送队列的占用情况相应处理的过程(步骤103)之间并没有必然的先后顺序关系,二者可以同时执行,也可以为据接收队列的占用情况进行相应处理的过程先执行,还可以为根据发送队列的占用情况相应处理的过程先执行,本发明中以据接收队列的占用情况进行相应处理的过程先执行为例进行说明。
可以理解的是,本发明中,当接收队列的队列长度确定之后,接收队列的占用情况可以分为多种体现方式。本实施例中,接收队列的占用情况可以为当前接收队列中已用于接收队列长度实现;接收队列的占用情况还可以通过其他方式实现,例如,可以为当前接收队列中的剩余队列长度;接收队列的占用情况还可以为当前接收队列中尚未进行处理的消息的队列长度与接收队列的队列长度的比例;接收队列的占用情况还可以为剩余队列长度与接收队列的队列长度的比例。
例如,根据不同的体现方式,接收队列的队列长度为10K,当前接收队列中已用于接收的队列长度为4K时,则接收队列的占用情况可以分别表示为4K、6K、0.4以及0.6。
同样的,当发送队列的队列长度确定之后,发送队列的占用情况相应地也可以分为多种体现方式。优选的,发送队列的占用情况可以为当前发送队列中已缓存待上传消息的队列长度(即发送队列的已用队列长度);发送队列的占用情况还可以为当前发送队列中的剩余队列长度;发送队列的占用情况还可以为当前发送队列中已用队列长度与发送队列的队列长度的比例;发送队列的占用情况还可以为剩余队列长度与发送队列的队列长度的比例。
为了更加清楚的阐述本发明提供的技术方案,以下结合一种具体的应用场景对本发明进行详细描述。本实施例中,该接收队列的占用情况以接收队列的已用队列长度为例进行说明,该发送队列的占用情况以发送队列的已用队列长度为例进行说明。对于接收队列的占用情况、发送队列的占用情况的其他体现方式,与接收队列的已用队列长度、发送队列的已用队列长度的处理方式类似,本发明实施例中不再详加赘述。
如图2所示,为本发明一种具体应用场景下提供的消息的传输方法,包括以下步骤:
步骤201,为CPU的以太网口通道分配接收队列,并为NP的以太网口通道分配发送队列。本应用场景下,该以太网口以GE网口为例进行说明。其中,该分配接收队列和分配发送队列的过程还可以在软件上来实现(如在CPU的软件中为与NP的以太网口相连的其以太网口进行分队列处理,为需要保证可靠上送的消息分配独立的接收队列,同样在NP上为该类型的报文分配一个独立的上送队列),本发明中不再详加赘述。
本应用场景下,为了保证消息在GE网口通道上进行可靠的传输,需要为CPU的GE网口通道分配接收队列,并为NP的GE网口通道分配发送队列。
实际应用中,该接收队列和发送队列可以为针对所有消息的队列,也可以为针对一种类型(例如,类型A)消息的队列,本发明中以针对一种类型消息的队列为例进行说明。
步骤202,获取接收队列的已用队列长度。其中,在实际应用中,可以周期性的获取接收队列的已用队列长度,也可以实时的获取接收队列的已用队列长度。
需要注意的是,当接收到来自GE网口通道的消息时,需要将该消息缓存到该接收队列中(例如,缓存在接收队列的队尾),CPU在处理消息的过程中,需要依次处理接收队列中的消息(例如,从接收队列的队头向接收队列的队尾依次进行处理)。当NP需要通过GE网口通道将消息上送给CPU时,需要将该消息缓存到该发送队列中(例如,缓存在发送队列的队尾),NP在将消息上送给CPU的过程中,需要依次处理发送队列中的消息(例如,从发送队列的队头向发送队列的队尾依次进行处理)。
可以看出,由于消息被缓存到接收队列中,即可以得到接收队列的已用队列长度。
步骤203,根据接收队列的已用队列长度判断是否关闭NP的GE网口通道,如果判断结果为是,需要将GE网口通道关闭时,转到步骤204;如果判断结果为否,需要继续将GE网口通道打开时,转到步骤205。
本发明中,以接收队列的占用情况为接收队列的已用队列长度为例进行说明,则本步骤之前,还需要为接收队列设置控制门限值;根据实际的需要,可以为接收队列设置一个控制门限值,当接收队列的已用队列长度大于该控制门限值时,将NP的GE网口通道关闭,即需要将NP的GE网口通道关闭;当接收队列的已用队列长度不大于该控制门限值时,保持NP的GE网口通道打开,即需要继续将NP的GE网口通道打开。
当然,在实际应用中,还可以为接收队列设置两个控制门限值,其中一个控制门限值为恢复门限(预设第一恢复门限),另一个控制门限值为限制门限(预设第一限制门限),该限制门限需要大于恢复门限。当接收队列的已用队列长度大于该限制门限时,将NP的GE网口通道关闭;当接收队列的已用队列长度小于该恢复门限时,将NP的GE网口通道打开。
另外,在实际应用中,还可以为接收队列设置多个(大于2个)控制门限值,本发明中不再详加赘述。
当然,在实际应用中,接收队列的占用情况还可以为其他的体现方式,例如,当接收队列的占用情况为接收队列的剩余队列长度时,则本步骤之前,还需要为接收队列设置控制门限值;根据实际的需要,可以为接收队列设置一个控制门限值,当接收队列的剩余队列长度小于该控制门限值时,将NP的GE网口通道关闭;当接收队列的剩余队列长度不小于该控制门限值时,将NP的GE网口通道打开。
当然,在实际应用中,还可以为接收队列设置两个控制门限值,其中一个控制门限值为恢复门限(预设第二恢复门限),另一个控制门限值为限制门限(预设第二限制门限)。当接收队列的剩余队列长度小于该限制门限时,将NP的GE网口通道关闭;当接收队列的剩余队列长度大于该恢复门限时,将NP的GE网口通道打开,。
另外,在实际应用中,还可以为接收队列设置多个(大于2个)控制门限值,本发明中不再详加赘述。
对于接收队列的占用情况为其他体现方式时,与上述处理情况类似,本应用场景下不再详加赘述。
步骤204,关闭NP的该GE网口通道。即保证发送队列中的消息无法上送到CPU的接收队列中,仍然缓存在发送队列中。本步骤结束之后,执行步骤206中的操作。
步骤205,接收来自发送队列的消息,并将该消息缓存到接收队列中。本步骤结束之后,执行步骤206中的操作。
步骤206,获取发送队列的已用队列长度,并根据发送队列的已用队列长度调整令牌桶速率。其中,本步骤中的操作和上述的步骤203-步骤205之间没有必然的联系,也可以在执行完步骤202之后执行本步骤,为了方便描述,本应用场景下,以执行完步骤204或者步骤205之后执行本步骤为例进行说明。
其中,在实际应用中,可以周期性的获取发送队列的已用队列长度,也可以实时的获取发送队列的已用队列长度。需要注意的是,当NP需要通过NP的GE网口通道将消息上送给CPU时,需要将该消息缓存到该发送队列中(例如,缓存在发送队列的队尾),NP在将消息上送给CPU的过程中,需要依次处理发送队列中的消息(例如,从发送队列的队头向发送队列的队尾依次进行处理)。可以看出,由于消息被缓存到发送队列中,通过获取在发送队列中尚未进行处理的消息,即可以得到发送队列的已用队列长度。
需要说明的是,本步骤之前,还需要设置发送队列的已用队列长度与令牌桶速率之间的对应关系。其中,该对应关系可以根据实际的需要进行设置,例如,只设置一个门限值,如表1所示的一种发送队列的已用队列长度与令牌桶速率之间的对应关系。
表1
发送队列的已用队列长度(单位K) | 令牌桶速率 |
小于50 | 200K |
50 | 100K |
大于50 | 禁止 |
又例如,设置多个门限值,如表2所示的一种发送队列的已用队列长度与令牌桶速率之间的对应关系。
表2
发送队列的已用队列长度(单位K) | 令牌桶速率 |
小于50 | 200K |
50 | 100K |
60 | 50K |
发送队列的已用队列长度(单位K) | 令牌桶速率 |
70 | 10K |
大于70 | 禁止 |
综上所述,根据该发送队列的已用队列长度与令牌桶速率之间的对应关系,当获取到发送队列的已用队列长度后,即能够调整令牌桶速率。
步骤207,NP根据令牌桶速率确定消息的获取速率,根据获取速率获取消息并将获取的消息缓存到发送队列中。其中,本发明中的消息可以根据实际需要任意选择,为了方便描述,本应用场景下该消息以NAT会话创建消息为例进行说明,对于其他的消息(例如,ARP会话消息等),处理方式与NAT会话创建消息类似,本应用场景下不再详加赘述。
具体的,在根据NAT会话创建消息的创建速率创建NAT会话创建消息时,需要在NP中设置一个令牌桶计数器,并通过该令牌桶计数器对NAT会话创建消息进行令牌桶监管,对于超过创建速率的NAT会话创建消息,进行丢弃处理,从而限制NAT会话创建消息的建流速度。例如,当前发送队列的已用队列长度为60K时,则令牌桶速率为50K(以表2为例),此时,NAT会话创建消息的创建速率需要根据该令牌桶速率进行调整。
可以看出,发送队列的已用队列长度越大,对应的令牌桶速率越小,而达到的效果是发送队列的已用队列长度越长,允许创建的NAT会话创建消息的速率越小,使得发送队列的已用队列长度的增加会变慢,直到停止增加,从而达到一个动态平衡。
综上所述,由于CPU处理能力有限,无法及时处理通过相连的GE网口通道上送的消息,从而导致消息无法接收而导致丢失时,本应用场景下,提出了一种通过GE网口通道进行消息传输的方法,能够保证利用GE网口通道传送的消息的可靠接收,并且进一步确保了在CPU接收能力下降的情况下,通过降低消息的创建速度,从而减少创建消息的上报,最终能够保证消息可靠上送而不会出现丢失的情况。
本应用场景下,假设CPU的接收队列的已用队列长度为10K,设置6K为恢复门限,8K限制门限;假设发送队列的已用队列长度为100K,设置发送队列的已用队列长度与令牌桶速率之间的对应关系如表3所示;假设CPU每秒能够处理50K的NP的GE网口通道上送的NAT会话创建消息。
表3
发送队列的已用队列长度(单位K) | 令牌桶速率 |
50 | 200K |
60 | 100K |
70 | 50K |
发送队列的已用队列长度(单位K) | 令牌桶速率 |
80 | 10K |
90 | 禁止 |
当用户以500K的速率进行NAT会话创建时,由于CPU每秒只能够处理50K的NAT会话创建消息,必然导致CPU无法及时处理,接收队列的已用队列长度会逐步增加,当接收队列的已用队列长度到达8K的长度时,则需要关闭NP的GE网口通道,从而导致NAT会话创建消息在发送队列中进行积累。而当接收队列的已用队列长度低于6K时,又会打开NP的GE网口通道;接收队列的已用队列长度到达8K时,又会关闭NP的GE网口通道,以此类推,发送队列的已用队列长度会逐步累积到50K,此时,需要调整令牌桶速率为200K,即令牌桶限速200K。
进一步的,由于CPU每秒只能够处理50K的NAT会话创建消息,当令牌桶限速200K时仍然远大于50K的处理能力,发送队列的已用队列长度还会继续上升,当发送队列的已用队列长度达到60K时,令牌桶限速设置为100K,此时,仍然远大于50K的处理能力,发送队列的已用队列长度还会继续上升,当发送队列的已用队列长度达到70K时,令牌桶限速设置为50K,此时,令牌桶限速与CPU的处理能力匹配,基本处于一个动态平衡阶段,
如果由于其它原因导致CPU的处理能力下降时,会导致发送队列的已用队列长度继续上升,当发送队列的已用队列长度达到90K时,需要完全禁止新建NAT会话,保证NAT会话创建消息不会丢失。
其中,本发明中的各个步骤还可以根据实际的需要进行调整。
基于与上述方法同样的发明构思,本发明还提出了一种消息的传输设备,应用于包括中央处理单元CPU和网络处理器NP的网络设备中,所述NP与所述CPU之间通过以太网口相连,该设备包括分配模块10,用于为所述CPU的以太网口分配接收队列,并为所述NP的以太网口分配发送队列;如图3所示,该设备进一步包括:
队列长度获取模块11,用于获取所述接收队列的已用队列长度。
接收队列处理模块12,与所述队列长度获取模块11连接,用于判断获取的所述接收队列的已用队列长度是否大于预设第一限制门限,若大于该第一限制门限,则关闭所述NP的以太网口。
发送队列处理模块13,与所述队列长度获取模块11连接,用于根据所述发送队列的已用队列长度降低令牌桶速率,根据降低后的令牌桶速率获取上传消息并将获取的该上传消息缓存到所述发送队列。
本发明中,所述接收队列处理模块12还用于,判断所述接收队列的已用队列长度是否小于预设第一恢复门限,若小于该第一恢复门限,则打开所述NP的以太网口;
所述发送队列处理模块13还用于,根据所述发送队列的已用队列长度上调令牌桶速率,根据上调后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
所述队列长度获取模块11还用于,获取所述接收队列的剩余队列长度;
所述接收队列处理模块12还用于,若获取的所述接收队列的剩余队列长度小于预设第二限制门限,则关闭所述NP的以太网口;
所述发送队列处理模块13还用于,根据所述发送队列的剩余队列长度降低令牌桶速率,根据降低后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
所述接收队列处理模块12还用于,判断所述接收队列的剩余队列长度是否大于预设第二恢复门限,若大于该第二恢复门限,则打开所述NP的以太网口;
所述发送队列处理模块13还用于,根据所述发送队列的剩余队列长度上调令牌桶速率,根据上调后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
所述发送队列处理模块13还用于,根据预设的所述发送队列的剩余队列长度与令牌桶速率之间的对应关系降低/上调整令牌桶速率;
根据预设的所述发送队列的已用队列长度与令牌桶速率之间的对应关系降低/上调整令牌桶速率。
所述设备还包括:
传输模块14,用于通过以太网口将所述发送队列中缓存的消息传输到所述接收队列。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (12)
1.一种消息的传输方法,应用于包括中央处理单元CPU和网络处理器NP的网络设备中,所述NP与所述CPU之间通过以太网口相连,其特征在于,所述方法包括以下步骤,
为所述CPU的以太网口分配接收队列,并为所述NP的以太网口分配发送队列;
获取所述接收队列的已用队列长度;
判断获取的所述接收队列的已用队列长度是否大于预设第一限制门限,若大于该第一限制门限,则关闭所述NP的以太网口;
根据所述发送队列的已用队列长度降低令牌桶速率,根据降低后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
2.如权利要求1所述的方法,其特征在于,所述方法进一步包括;
判断所述接收队列的已用队列长度是否小于预设第一恢复门限,若小于该第一恢复门限,则打开所述NP的以太网口;
根据所述发送队列的已用队列长度上调令牌桶速率,根据上调后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
3.如权利要求1所述的方法,其特征在于,所述为所述CPU的以太网口分配接收队列,并为所述NP的以太网口分配发送队列的步骤之后,所述方法还包括以下步骤:
获取所述接收队列的剩余队列长度;
若获取的所述接收队列的剩余队列长度小于预设第二限制门限,则关闭所述NP的以太网口;
根据所述发送队列的剩余队列长度降低令牌桶速率,根据降低后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
4.如权利要求3所述的方法,其特征在于,所述方法进一步包括,
判断所述接收队列的剩余队列长度是否大于预设第二恢复门限,若大于该第二恢复门限,则打开所述NP的以太网口;
根据所述发送队列的剩余队列长度上调令牌桶速率,根据上调后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
5.如权利要求4所述的方法,其特征在于,根据所述发送队列的剩余队列长度降低令牌桶速率,以及根据所述发送队列的剩余队列长度上调令牌桶速率,具体包括:
根据预设的所述发送队列的剩余队列长度与令牌桶速率之间的对应关系降低/上调整令牌桶速率;
根据所述发送队列的已用队列长度降低令牌桶速率,以及根据所述发送队列的已用队列长度上调令牌桶速率,具体包括:
根据预设的所述发送队列的已用队列长度令牌桶速率之间的对应关系降低/上调整令牌桶速率。
6.如权利要求1-5任一项所述的方法,其特征在于,所述获取所述接收队列的已用队列长度/所述获取所述接收队列的剩余队列长度之前,所述方法还包括:
通过以太网口将所述发送队列中缓存的消息传输到所述接收队列。
7.一种消息的传输设备,应用于包括中央处理单元CPU和网络处理器NP的网络设备中,所述NP与所述CPU之间通过以太网口相连,其特征在于,该设备包括:
分配模块,用于为所述CPU的以太网口分配接收队列,并为所述NP的以太网口分配发送队列;该设备进一步包括:
队列长度获取模块,用于获取所述接收队列的已用队列长度;
接收队列处理模块,与所述队列长度获取模块连接,用于判断获取的所述接收队列的已用队列长度是否大于预设第一限制门限,若大于该第一限制门限,则关闭所述NP的以太网口;
发送队列处理模块,与所述队列长度获取模块连接,用于根据所述发送队列的已用队列长度降低令牌桶速率,根据降低后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
8.如权利要求7所述的设备,其特征在于,
所述接收队列处理模块还用于,判断所述接收队列的已用队列长度是否小于预设第一恢复门限,若小于该第一恢复门限,则打开所述NP的以太网口;
所述发送队列处理模块还用于,根据所述发送队列的已用队列长度上调令牌桶速率,根据上调后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
9.如权利要求7所述的设备,其特征在于,
所述队列长度获取模块还用于,获取所述接收队列的剩余队列长度;
所述接收队列处理模块还用于,若获取的所述接收队列的剩余队列长度小于预设第二限制门限,则关闭所述NP的以太网口;
所述发送队列处理模块还用于,根据所述发送队列的剩余队列长度降低令牌桶速率,根据降低后的令牌桶速率获取消息并将获取的消息缓存到所述发送队列。
10.如权利要求9所述的设备,其特征在于,
所述接收队列处理模块还用于,判断所述接收队列的剩余队列长度是否大于预设第二恢复门限,若大于该第二恢复门限,则打开所述NP的以太网口;
所述发送队列处理模块还用于,根据所述发送队列的剩余队列长度上调令牌桶速率,根据上调后的令牌桶速率获取消息并将获取到的消息缓存到所述发送队列。
11.如权利要求10所述的设备,其特征在于,
所述发送队列处理模块还用于,根据预设的所述发送队列的剩余队列长度与令牌桶速率之间的对应关系降低/上调整令牌桶速率;
根据预设的所述发送队列的已用队列长度与令牌桶速率之间的对应关系降低/上调整令牌桶速率。
12.如权利要求7-11任一项所述的设备,其特征在于,还包括:
传输模块,用于通过以太网口将所述发送队列中缓存的消息传输到所述接收队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010188302A CN101841486A (zh) | 2010-06-01 | 2010-06-01 | 一种消息的传输方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010188302A CN101841486A (zh) | 2010-06-01 | 2010-06-01 | 一种消息的传输方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101841486A true CN101841486A (zh) | 2010-09-22 |
Family
ID=42744619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010188302A Pending CN101841486A (zh) | 2010-06-01 | 2010-06-01 | 一种消息的传输方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101841486A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104917688A (zh) * | 2014-03-12 | 2015-09-16 | 中国科学院声学研究所 | 一种流媒体网关的码率控制方法 |
CN105516024A (zh) * | 2014-12-31 | 2016-04-20 | 哈尔滨安天科技股份有限公司 | 一种基于队列的任务流量监控方法及系统 |
CN111092825A (zh) * | 2018-10-23 | 2020-05-01 | 华为技术有限公司 | 一种传输报文的方法和装置 |
CN112202684A (zh) * | 2020-09-10 | 2021-01-08 | 苏州浪潮智能科技有限公司 | 一种限速队列提交训练任务的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558620A (zh) * | 2004-01-17 | 2004-12-29 | 港湾网络有限公司 | 分布式网络设备的线路板与主控板间的通讯方法 |
CN101159700A (zh) * | 2007-11-27 | 2008-04-09 | 杭州华三通信技术有限公司 | 一种流量控制方法和控制设备 |
CN101521635A (zh) * | 2009-04-10 | 2009-09-02 | 杭州华三通信技术有限公司 | 一种报文传输方法及装置 |
CN101621833A (zh) * | 2009-08-13 | 2010-01-06 | 中兴通讯股份有限公司 | 一种报文流量控制方法和基站控制器 |
-
2010
- 2010-06-01 CN CN201010188302A patent/CN101841486A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558620A (zh) * | 2004-01-17 | 2004-12-29 | 港湾网络有限公司 | 分布式网络设备的线路板与主控板间的通讯方法 |
CN101159700A (zh) * | 2007-11-27 | 2008-04-09 | 杭州华三通信技术有限公司 | 一种流量控制方法和控制设备 |
CN101521635A (zh) * | 2009-04-10 | 2009-09-02 | 杭州华三通信技术有限公司 | 一种报文传输方法及装置 |
CN101621833A (zh) * | 2009-08-13 | 2010-01-06 | 中兴通讯股份有限公司 | 一种报文流量控制方法和基站控制器 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104917688A (zh) * | 2014-03-12 | 2015-09-16 | 中国科学院声学研究所 | 一种流媒体网关的码率控制方法 |
WO2015135349A1 (zh) * | 2014-03-12 | 2015-09-17 | 中国科学院声学研究所 | 一种流媒体网关的码率控制方法 |
CN105516024A (zh) * | 2014-12-31 | 2016-04-20 | 哈尔滨安天科技股份有限公司 | 一种基于队列的任务流量监控方法及系统 |
CN105516024B (zh) * | 2014-12-31 | 2019-05-07 | 哈尔滨安天科技股份有限公司 | 一种基于队列的任务流量监控方法及系统 |
CN111092825A (zh) * | 2018-10-23 | 2020-05-01 | 华为技术有限公司 | 一种传输报文的方法和装置 |
CN112202684A (zh) * | 2020-09-10 | 2021-01-08 | 苏州浪潮智能科技有限公司 | 一种限速队列提交训练任务的方法和装置 |
WO2022052659A1 (zh) * | 2020-09-10 | 2022-03-17 | 苏州浪潮智能科技有限公司 | 一种限速队列提交训练任务的方法和装置 |
CN112202684B (zh) * | 2020-09-10 | 2022-05-13 | 苏州浪潮智能科技有限公司 | 一种限速队列提交训练任务的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7292530B2 (en) | Method and apparatus to manage packet fragmentation | |
US9485200B2 (en) | Network switch with external buffering via looparound path | |
US10313768B2 (en) | Data scheduling and switching method, apparatus, system | |
TWI239169B (en) | Method and apparatus to manage packet fragmentation with address translation | |
EP1225734A2 (en) | Methods, systems and computer program products for bandwidth allocation in a multiple access system | |
US8949578B2 (en) | Sharing of internal pipeline resources of a network processor with external devices | |
WO2002082723A2 (en) | Multiprotocol wireless gateway | |
CN107787570A (zh) | 轻量传送协议 | |
CN101521683A (zh) | 一种网络游戏系统及其接入方法、客户端通讯方法 | |
US8576852B2 (en) | Inter-office communication methods and devices | |
CN101841486A (zh) | 一种消息的传输方法和设备 | |
US5349583A (en) | Multi-channel token ring | |
CN105337895B (zh) | 一种网络设备主机单元、网络设备子卡以及网络设备 | |
JP6021132B2 (ja) | 連続データをパケットにより無線通信する送信装置、受信装置、通信装置、プログラム、送信方法、及び、受信方法 | |
CN106411872A (zh) | 一种基于数据报文分类的报文压缩的方法和装置 | |
WO2019192318A1 (zh) | 流量平滑方法、服务器及转发设备 | |
CN103560970A (zh) | 一种对具有多lan口的网络设备下行限速的实现方法 | |
KR20220027716A (ko) | 기록매체 | |
US20090129408A1 (en) | Method and apparatus for enabling transport of ethernet data over a serial digital interface transport service | |
CN105204888B (zh) | 硬件功能更新方法及动态更新硬件功能的装置 | |
CN110661728A (zh) | 多虚通道传输时共享与私有相结合的缓冲设计方法与装置 | |
CN102833162B (zh) | 缓冲区数的调整方法和装置 | |
Lau et al. | Optimizing the performance of OpenFlow Protocol over QUIC | |
US7433303B2 (en) | Preemptive network traffic control for regional and wide area networks | |
CN109039940B (zh) | 一种数据传输的负载均衡方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100922 |