发明内容
本发明提供一种报文处理方法和设备,用以解决现有技术在QoS拥塞状态下仍然需要在主动丢弃报文前对报文进行处理,并进而造成系统资源浪费的缺陷。
为达到上述目的,本发明一方面提供了一种报文处理方法,所述方法至少包括以下步骤:
网络设备确定所接收到的报文的出接口,并判断所述出接口是否存在处于拥塞状态的拥塞管理队列;
如果判断结果为是,所述网络设备判断所述报文是否与所述处于拥塞状态的拥塞管理队列所对应的服务质量QoS分类器相匹配;
如果判断结果为是,所述网络设备根据所述QoS分类器所对应的丢包策略,对所述报文进行预丢包处理。
优选的,所述网络设备确定所接收到的报文的出接口,并判断所述出接口是否存在处于拥塞状态的拥塞管理队列,具体为:
所述网络设备根据所接收到的报文的信息,查询相应的路由表或转发表,确定所述报文的出接口;
所述网络设备判断所述出接口是否为所述报文的入接口的关联出接口;
如果判断结果为是,所述网络设备判断所述出接口是否存在处于拥塞状态的拥塞管理队列,如果判断结果为否,所述网络设备正常转发所述报文。
优选的,所述网络设备判断所述出接口是否存在处于拥塞状态的拥塞管理队列,具体包括:
所述网络设备判断所述出接口所对应的各拥塞管理队列中的报文缓存长度是否达到预设长度阈值;或,
所述网络设备判断所述出接口所对应的各拥塞管理队列中是否存在拥塞标识,其中,所述拥塞标识具体为所述网络设备在监测到报文缓存长度达到预设长度阈值的拥塞管理队列时,为所述拥塞管理队列添加的标识信息。
优选的,所述网络设备判断所述报文是否与所述处于拥塞状态的拥塞管理队列所对应的QoS分类器相匹配,具体包括:
所述网络设备识别所述报文的特征信息;
所述网络设备将所述特征信息与所述处于拥塞状态的拥塞管理队列所对应的QoS分类器中所预设的报文特征信息进行匹配;
如果匹配成功,则确定所述报文与所述QoS分类器相匹配。
优选的,
如果所述网络设备判断所述出接口没有存在处于拥塞状态的拥塞管理队列,所述网络设备正常转发所述报文;
如果所述网络设备判断所述报文没有与所述处于拥塞状态的拥塞管理队列所对应的QoS分类器相匹配,所述网络设备正常转发所述报文。
另一方面,本发明还提供了一种网络设备,至少包括:
确定模块,用于确定所接收到的报文的出接口;
状态识别模块,用于判断所述确定模块所确定的出接口是否存在处于拥塞状态的拥塞管理队列;
匹配模块,用于在所述状态识别模块的判断结果为是时,判断所述报文是否与所述处于拥塞状态的拥塞管理队列所对应的QoS分类器相匹配;
处理模块,用于在所述匹配模块的判断结果为是时,根据所述QoS分类器所对应的丢包策略,对所述报文进行预丢包处理。
优选的,所述网络设备,还包括接口识别模块:
所述确定模块,具体用于根据所接收到的报文的信息,查询相应的路由表或转发表,确定所述报文的出接口;
所述接口识别模块,用于判断所述确定模块所确定的出接口是否为所述报文的入接口的关联出接口;
所述状态识别模块,具体用于在所述接口识别模块的判断结果为是时,判断所述确定模块所确定的出接口是否存在处于拥塞状态的拥塞管理队列;
所述处理模块,具体用于在所述接口识别模块的判断结果为否时,正常转发所述报文。
优选的,所述状态识别模块,具体用于:
判断所述出接口所对应的各拥塞管理队列中的报文缓存长度是否达到预设长度阈值;或,
判断所述出接口所对应的各拥塞管理队列中是否存在拥塞标识,其中,所述拥塞标识具体为所述网络设备在监测到报文缓存长度达到预设长度阈值的拥塞管理队列时,为所述拥塞管理队列添加的标识信息。
优选的,所述匹配模块,具体用于:
识别所述报文的特征信息;
将所述特征信息与所述处于拥塞状态的拥塞管理队列所对应的QoS分类器中所预设的报文特征信息进行匹配;
如果匹配成功,则确定所述报文与所述QoS分类器相匹配。
优选的,所述处理模块,还用于:
在所述状态识别模块判断所述出接口没有存在处于拥塞状态的拥塞管理队列时,正常转发所述报文;或,
在所述匹配模块判断所述报文没有与所述处于拥塞状态的拥塞管理队列所对应的QoS分类器相匹配时,正常转发所述报文。
与现有技术相比,本发明具有以下优点:
通过应用本发明的技术方案,网络设备在接收到报文时,如果确定该报文的出接口存在处于拥塞状态的拥塞管理队列,且该报文与该拥塞管理队列所对应的QoS分类器相匹配,则应用该拥塞管理队列所对应的丢包策略,对该报文进行预丢包处理,从而,在拥塞状态下,可以对符合要求的报文直接进行预丢包处理,而不再需要对这样的报文进行其他的处理过程,避免了在拥塞状态下,对需要被丢弃的报文进行这些处理过程所浪费的系统资源,同时,及时对符合要求的报文进行预丢弃处理,也可以避免大量报文无法被及时处理所带来的拥塞加剧及网络负担加重的问题,提高系统的处理效率和资源有效利用率。
具体实施方式
如背景技术所述,在网络系统中,过度的拥塞会对网络资源造成极大危害,必须采取某种措施加以解除。拥塞避免是一种流量控制机制,通过监视网络资源(如队列或内存缓冲区)的使用情况,在拥塞产生或有加剧的趋势时主动丢弃报文,通过调整网络的流量来解除网络过载。但是在通常情况下,主动丢弃报文策略都是在设备出接口与QoS队列共同使用的,主动丢弃报文策略通过监视队列报文缓存情况而对未入队列报文进行主动丢弃,而此时报文已经经过设备本身多个业务模块的处理,如:Firewall、转发、Netstream等,消耗了系统很多资源,但是,这样的报文报文最终因为QoS队列拥塞而并没有被转发,这样,就造成了已消耗的大量浪费。
为了解决这样的问题,本发明提出了一种报文处理方法,在QoS拥塞的情况下对入接口接收的符合要求的流量进行预丢包处理,避免中间业务模块对将被丢弃报文的处理,从而,节省了系统资源。
进一步的,为了实现本技术方案的处理,网络设备需要预先设定以下信息:
在网络设备中,为其所包括的部分或全部出接口设置QoS流量分类策略,其中,每个出接口设定一个QoS流量分类策略,每个QoS流量分类策略对应了多个QoS分类器,每个QoS分类器进一步对应一个丢包策略和一个拥塞管理队列。
在实际的应用场景中,具体设置QoS流量分类策略的出接口的范围可以根据拥塞避免的需要进行选择,而上述的各项信息可以采用表项或标识的方式进行预设,具体的信息形式变化并不会影响本发明的保护范围。
基于上述信息,只有当入接口所接收到的报文匹配了出接口上的QoS策略中的某个QoS分类器,并且此QoS分类器对应的拥塞管理队列处于拥塞状态时,网络设备才会对该报文启用预丢包处理。
如图2所示,为本发明提出的一种报文处理方法的流程示意图,该方法具体包括以下步骤:
步骤S201、网络设备确定所接收到的报文的出接口,并判断所述出接口是否存在处于拥塞状态的拥塞管理队列。
如果判断结果为是,则执行步骤S202;
如果判断结果为否,所述网络设备正常转发所述报文。
本步骤的处理目的在于确定所收到的报文的出接口的状态是否适合继续进行该报文的转发。
在实际应用中,本步骤中网络设备判断出接口是否存在处于拥塞状态的拥塞管理队列的方法具体包括以下两种:
方案一、直接根据拥塞管理队列的报文缓存情况进行判断。
在网络设备确定了所接收到的报文的出接口后,该网络设备查询该出接口下的各拥塞管理队列当前的报文缓存情况,如果其中的一个或多个拥塞管理队列中当前所缓存的报文长度达到或超过预设的长度阈值,则网络设备确定该出接口存在处于拥塞状态的拥塞管理队列。
此种方案要求为该出接口下的各拥塞管理队列预设长度阈值,基于这样的设置,网络设备通过直接查询各拥塞管理队列当前的报文缓存情况是否超出阈值,来确定该出接口中是否存在处于拥塞状态的拥塞管理队列。
方案二、根据状态标识进行判断。
在网络设备确定了所接收到的报文的出接口后,该网络设备查询该出接口下的各拥塞管理队列当前的状态标识,确定各拥塞管理队列当前是否存在拥塞标识,如果存在,则网络设备确定该出接口中存在处于拥塞状态的拥塞管理队列。
在具体的处理过程中,拥塞标识的处理机制可以包括以下两种:
(1)网络设备为各拥塞管理队列设置状态标识位,并监控各拥塞管理队列的报文缓存情况,如果某个拥塞管理队列中当前所缓存的报文长度达到或超过预设的长度阈值,则网络设备将该拥塞管理队列的状态标识位的内容置为拥塞标识,反之,则保持该状态标识位的内容为正常标识。
(2)网络设备监控各拥塞管理队列的报文缓存情况,如果某个拥塞管理队列中当前所缓存的报文长度达到或超过预设的长度阈值,则网络设备为该拥塞管理队列添加拥塞标识,反之,则不对该拥塞管理队列添加任何标识信息。
无论采用上述的哪种方式,网络设备都可以通过拥塞标识来识别各拥塞管理队列是否处于拥塞状态。
上述的方案二要求为该出接口下的各拥塞管理队列设置长度阈值和标识添加规则,网络设备通过查询各拥塞管理队列当前是否存在拥塞标识,来确定该出接口中是否存在处于拥塞状态的拥塞管理队列。
进一步的,在实际的应用场景中,可以通过设置关联接口的方式预先设定网络设备中的入接口和出接口的对应关系,对于某一个入接口所接收到的报文,只有在相应的报文需要在相关联的出接口进行转发的情况下,才会对相应的出接口进行上述的是否处于拥塞状态的拥塞管理队列的识别过程,从而,可以实现对于指定转发路径的拥塞避免,而对其他转发路径则不会进行相应的识别处理,而直接进行转发,增强了拥塞避免的针对性,避免了额外的处理资源的浪费。
相应的,在基于关联接口的场景下,本步骤的具体处理过程如下:
(1)所述网络设备根据所接收到的报文的信息,查询相应的路由表或转发表,确定所述报文的出接口。
当然,这个处理过程的目的在于确定报文的出接口,在具体的处理场景中,其他能够确定出接口的方式同样可以应用在本处理过程中,这样的变化并不影响本发明的保护范围。
(2)所述网络设备判断所述出接口是否为所述报文的入接口的关联出接口。
如果判断结果为是,则该报文的转发接口需要进行状态识别,以实现拥塞避免,所述网络设备判断所述出接口是否存在处于拥塞状态的拥塞管理队列,即进行步骤S201的状态识别处理过程。
如果判断结果为否,所述网络设备正常转发所述报文。
步骤S202、所述网络设备判断所述报文是否与所述处于拥塞状态的拥塞管理队列所对应的QoS分类器相匹配。
如果判断结果为是,则执行步骤S203;
如果判断结果为否,所述网络设备正常转发所述报文。
在具体的处理场景中,本步骤的具体处理过程如下:
所述网络设备识别所述报文的特征信息。
所述网络设备将所述特征信息与步骤S201所确定的处于拥塞状态的拥塞管理队列所对应的QoS分类器进行相匹配。
如前所述,每个QoS分类器均会对应一个拥塞管理队列,所以,在确定了处于拥塞状态的拥塞管理队列后,便可以直接确定相应的QoS分类器。
当然,如果对于待转发报文的出接口,如果当前存在多个处于拥塞状态的拥塞管理队列,则在本步骤中需要将该报文的特征信息分别与这多个处于拥塞状态的拥塞管理队列所对应的各QoS分类器分别进行匹配。
当网络设备确定该报文的特征信息与至少一个QoS分类器中所预设的报文特征信息相匹配时,则确定上述匹配成功,而如果匹配成功,则网络设备确定所述报文与该QoS分类器相匹配。
在具体的QoS分类器匹配的过程中,只要报文的特征信息与对应了处于拥塞状态的拥塞管理队列的各QoS分类器中的任何一个QoS分类器匹配成功,则可以确定该报文就是属于在当前的出接口中需要进行拥塞避免的报文类型,因此,需要进行后续的步骤S203,完成相应的处理。相反,如果该报文的特征信息与对应了处于拥塞状态的拥塞管理队列的各QoS分类器中的任何一个QoS分类器都没有匹配,则网络设备直接在当前的出接口对该报文继续进行转发处理。
步骤S203、所述网络设备根据所述QoS分类器所对应的丢包策略,对所述报文进行预丢包处理。
如前所述,每个QoS分类器均会对应一个丢包规则,所以,在确定了报文所匹配的QoS分类器后,便可以直接确定相应的丢包规则。
在具体的处理场景中,上述的预丢包处理可以根据相应的规则确定对报文丢弃或继续转发,具体的规则内容可以根据实际需要进行设置。
与现有技术相比,本发明具有以下优点:
通过应用本发明的技术方案,网络设备在接收到报文时,如果确定该报文的出接口存在处于拥塞状态的拥塞管理队列,且该报文与该拥塞管理队列所对应的QoS分类器相匹配,则应用该拥塞管理队列所对应的丢包策略,对该报文进行预丢包处理,从而,在拥塞状态下,可以对符合要求的报文直接进行预丢包处理,而不再需要对这样的报文进行其他的处理过程,避免了在拥塞状态下,对需要被丢弃的报文进行这些处理过程所浪费的系统资源,同时,及时对符合要求的报文进行预丢弃处理,也可以避免大量报文无法被及时处理所带来的拥塞加剧及网络负担加重的问题,提高系统的处理效率和资源有效利用率。
为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
本发明实施例提供了一种在拥塞场景下的报文处理方法,其主要的技术思想在于:根据拥塞避免的需要,在网络设备的部分或全部出接口中配置QoS流量分类策略,其中,每个出接口配置一个QoS流量分类策略,并且每个QoS流量分类策略中对应一个或多个QoS分类器,相应的每个QoS分类器中配置拥塞管理队列以及主动丢包策略,同时,还可以指定部分其他接口作为该出接口的联动入接口。
为了描述方便,本发明实施例中以为出接口中QoS分类器所对应的拥塞管理队列设置拥塞标识位,且网络设备监控拥塞管理队列的报文缓存情况并相应的更新拥塞标识位的内容的方式为例,对本发明所提出的技术方案进行说明,对于实际应用,在基于相同的技术目的和思路的情况下,具体处理策略设置的变化并不会影响本发明的保护范围。
其中,网络设备监视各出接口上各QoS分类器所对应的拥塞管理队列中的报文缓存情况,当拥塞管理队列中的报文缓存长度达到指定阀值时,触发相应的QoS分类器所对应的主动丢包策略,从而,网络设备在该出接口所联动的入接口中,对于匹配该QoS分类器的流量进行主动丢包处理。
具体的,如图3所示,为本发明实施例所提出的一种具体应用场景下的报文处理方法的流程示意图,具体包括以下步骤:
步骤S301、网络设备为自身所包括的各出接口配置一个或多个QoS分类器,并为各QoS分类器配置QoS拥塞管理队列和主动丢包策略。
通过这样的处理,网络设备可以为出接口中需要进行拥塞避免的报文建立识别规则,只有在报文满足相应的识别规则(报文的出接口中存在处于拥塞状态的拥塞管理队列,且该报文与该拥塞管理队列的QoS分类器相匹配)的情况下,才会触发相应的预丢包处理流程。
具体的,网络设备可以为自身所包括的各出接口建立如表1所示的表项:
表1QoS策略配置表项
其中,QoS Class,表示QoS分类器名称或者索引信息;
QoS Queue,表示QoS分类器流量对应的队列处理机制;
Congestion Flag,表示QoS队列所对应的拥塞标志;
Drop Policy,表示QoS队列在拥塞情况下所采用的主动丢包策略。
步骤S302、网络设备为各出接口指定进行丢包联动的入接口。
通过这样的处理,网络设备可以为出接口和入接口建立相应的关联关系,只有存在关联关系的出接口和入接口所对应的传输路径上,才会触发拥塞避免处理。
具体的,网络设备可以为各出接口建立如表2所示的表项:
表2关联关系配置表项
其中,接口,表示配置QoS流量分类策略的出接口的名称或者索引信息;
QoS Policy,表示出接口所配置的QoS流量分类策略的名称或者索引信息;
Associated-Input-Interface,表示与出接口关联的联动入接口的名称或者索引信息。
对于一个出接口,表2所示的关联关系配置表项中的QoS Policy的内容表示该出接口所配置的QoS流量分类策略,而该QoS流量分类策略中可以包括多个QoS分类器,表1所示的就是这样一个或者多个QoS分类器的具体配置信息的示例,在实际应用中,可以由表2中的QoS Policy的内容确定相应的一个或多个QoS分类器的如表1所示的内容。
需要进一步指出的是,上述的表1和表2所示的配置信息在具体的应用场景中可以通过对已实现的表格进行扩展的方式来支持,也可以通过单独创建新的表格的方式来实现,这样的表格具体形式的变化并不会影响本发明的保护范围。
在完成上述的处理后,相应处理规则的预设过程已经完成,而对于存在关联关系的出接口和入接口中的后续处理过程,分别说明如下。
在出接口侧:
步骤S303、网络设备监视各出接口所对应的拥塞管理队列的报文缓存情况。
当拥塞管理队列的报文缓存长度超过主动丢包策略所定义的阀值(即前述的长度阈值)时,执行步骤S304;
当拥塞管理队列的报文缓存长度小于主动丢包策略所定义的阀值(即前述的长度阈值)时,执行步骤S305。
步骤S304、网络设备对该拥塞管理队列所对应的Congestion Flag项进行置位,标识该出接口所对应的该拥塞管理队列处于拥塞状态。
步骤S305、网络设备对该拥塞管理队列所对应的Congestion Flag项进行清零,标识该出接口所对应的该拥塞管理队列处于正常状态。
无论是步骤S304还是步骤S305,在完成Congestion Flag项的内容的操作后,均会返回步骤S303,继续对该出接口所对应的拥塞管理队列的报文缓存情况进行监视,从而实现相应的状态信息的实时更新。
在入接口侧:
步骤S306、网络设备读取入接口所接收到的报文的信息(如目的地址、源地址、协议号等,根据路由和转发策略决定),并查找路由表或者转发表确定该报文的出接口。
步骤S307、网络设备判断查询到的出接口是否为当前入接口所关联的出接口。
如果不是,则将报文按照现有流程进行处理(包括接口已配置业务的处理,和路由转发处理)。
如果是,则执行步骤S308。
步骤S308、网络设备判断当前入接口所关联的出接口上的各拥塞管理队列所对应的Congestion Flag项是否已被置位。
如果没有,则将报文按照现有流程进行处理(包括接口已配置业务的处理,和路由转发处理)。
如果有至少一个拥塞管理队列所对应的Congestion Flag项已被置位,则执行步骤S309。
步骤S309、网络设备将报文的特征信息与该出接口中所配置的已被置位的Congestion Flag项所对应的QoS分类器进行匹配。
如果没有匹配上任何一个QoS分类器,则将报文按照现有流程进行处理(包括接口已配置业务的处理,和路由转发处理)。
如果该报文匹配到其中的至少一个Congestion Flag项已被置位的QoS分类器,则执行步骤S310。
步骤S310、网络设备根据该QoS分类器所对应的丢包策略(由表1中的Drop Policy项所配置)对该报文进行预丢包处理。
经过预丢包处理,且判断为丢弃的报文将被网络设备直接丢弃,不再进行后续接口配置等相关业务和转发业务的处理,而经过预丢包处理,且判断为继续转发的报文,网络设备将按现有流程继续处理。
与现有技术相比,本发明具有以下优点:
通过应用本发明的技术方案,网络设备在接收到报文时,如果确定该报文的出接口存在处于拥塞状态的拥塞管理队列,且该报文与该拥塞管理队列所对应的QoS分类器相匹配,则应用该拥塞管理队列所对应的丢包策略,对该报文进行预丢包处理,从而,在拥塞状态下,可以对符合要求的报文直接进行预丢包处理,而不再需要对这样的报文进行其他的处理过程,避免了在拥塞状态下,对需要被丢弃的报文进行这些处理过程所浪费的系统资源,同时,及时对符合要求的报文进行预丢弃处理,也可以避免大量报文无法被及时处理所带来的拥塞加剧及网络负担加重的问题,提高系统的处理效率和资源有效利用率。
为了实现本发明的技术方案,基于前述的说明,本发明还提出了一种网络设备,其结构示意图如图4所示,至少包括以下模块:
确定模块41,用于确定所接收到的报文的出接口;
状态识别模块42,用于判断所述确定模块41所确定的出接口是否存在处于拥塞状态的拥塞管理队列;
匹配模块43,用于在所述状态识别模块42的判断结果为是时,判断所述报文是否与所述处于拥塞状态的拥塞管理队列所对应的QoS分类器相匹配;
处理模块44,用于在所述匹配模块43的判断结果为是时,根据所述QoS分类器所对应的丢包策略,对所述报文进行预丢包处理。
进一步的,该网络设备,还包括接口识别模块45:
所述确定模块41,具体用于根据所接收到的报文的信息,查询相应的路由表或转发表,确定所述报文的出接口;
所述接口识别模块45,用于判断所述确定模块41所确定的出接口是否为所述报文的入接口的关联出接口;
所述状态识别模块42,具体用于在所述接口识别模块45的判断结果为是时,判断所述确定模块41所确定的出接口是否存在处于拥塞状态的拥塞管理队列;
所述处理模块44,具体用于在所述接口识别模块45的判断结果为否时,正常转发所述报文。
具体的,所述状态识别模块42,具体用于:
判断所述出接口所对应的各拥塞管理队列中的报文缓存长度是否达到预设长度阈值;或,
判断所述出接口所对应的各拥塞管理队列中是否存在拥塞标识,其中,所述拥塞标识具体为所述网络设备在监测到报文缓存长度达到预设长度阈值的拥塞管理队列时,为所述拥塞管理队列添加的标识信息。
另一方面,所述匹配模块43,具体用于:
识别所述报文的特征信息;
将所述特征信息与所述处于拥塞状态的拥塞管理队列所对应的QoS分类器中所预设的报文特征信息进行匹配;
如果匹配成功,则确定所述报文与所述QoS分类器相匹配。
进一步的,所述处理模块44,还用于:
在所述状态识别模块42判断所述出接口没有存在处于拥塞状态的拥塞管理队列时,正常转发所述报文;或,
在所述匹配模块43判断所述报文没有与所述处于拥塞状态的拥塞管理队列所对应的QoS分类器相匹配时,正常转发所述报文。
与现有技术相比,本发明具有以下优点:
通过应用本发明的技术方案,网络设备在接收到报文时,如果确定该报文的出接口存在处于拥塞状态的拥塞管理队列,且该报文与该拥塞管理队列所对应的QoS分类器相匹配,则应用该拥塞管理队列所对应的丢包策略,对该报文进行预丢包处理,从而,在拥塞状态下,可以对符合要求的报文直接进行预丢包处理,而不再需要对这样的报文进行其他的处理过程,避免了在拥塞状态下,对需要被丢弃的报文进行这些处理过程所浪费的系统资源,同时,及时对符合要求的报文进行预丢弃处理,也可以避免大量报文无法被及时处理所带来的拥塞加剧及网络负担加重的问题,提高系统的处理效率和资源有效利用率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者OAM MASTER设备等)执行本发明各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。