实现报文保序的方法和装置制造方法及图纸

技术编号:7418555 阅读:300 留言:0更新日期:2012-06-09 00:46
本发明专利技术提供了实现报文保序的方法和装置。该方法包括:A,网络通信设备上的队列区控制单元将已接收的报文存入共享队列区输入队列,并将该共享队列区输入队列提供给所述网络通信设备上首先执行转发处理的第一转发核;所述第一转发核轮询共享队列区输入队列,依次获取共享队列区输入队列中的每个共享队列区并处理;B,所述第一转发核处理完当前共享队列区中对应报文队列的所有报文后,判断自身是否为最后一个执行转发处理的转发核,如果否,提供处理后的共享队列区给下一个执行转发处理的转发核,并执行步骤C,如果是,提供处理后的共享队列区给所述网络通信设备上的保序处理单元,并执行步骤D;C,所述下一个执行转发处理的转发核执行步骤B中所述第一转发核执行的操作;D,所述保序处理单元获取共享队列区中的报文,并按照接收顺序进行串行化处理以供报文发送。采用本发明专利技术,能够在对报文保序时避免缓存,定时老化等问题。

【技术实现步骤摘要】

本专利技术涉及数据通信技术,特别涉及实现报文保序的方法和装置
技术介绍
随着物理接口速率的不断提升,网络通信设备中CPU的转发核(core)数也随之增力口。目前,通常采用并行工作方式使CPU中各个转发核并行处理报文流,以期提高转发性能,具体可如图1所示。并行工作方式虽然充分利用了多核并行转发能力,且在大多数情况下也的确提高了转发性能,但是,针对某一个转发核而言,当一条报文流(其实质上为具有相同协议关键字的报文集合)的流量大于该转发核当前的负载时,为避免报文流中的报文被丢弃,需要将报文流中的一些报文分发到其他转发核上去处理,即出现了属于同一条报文流的报文被不同转发核处理的情况。如此,如果不同转发核处理报文的时间不匹配,就会导致同一条报文流中的报文不是按照接收顺序发送的,而数据通信系统要求报文发送顺序与接收顺序必须一致,基于此,网络通信设备就需要在报文发送之前对同一条报文流中的报文进行保序操作。现有技术中,一旦涉及到报文保序,就会相应涉及到缓存,定时老化等问题。由于仅在一条报文流的流量大于某个转发核当前的负载时,才会将报文分发到不同的转发核, 即不能事先知道同一条报文流中的报文在不同转发核之间的分布,以及在不同转发核上的处理延迟,因此,报文保序所需要的缓存容量就无法确定。如果缓存容量大小,会导致报文流中的报文过早丢弃,太大会导致缓存资源的过度消耗,进而引起系统反应(如接收端无法获得报文缓存)。至于定时老化问题,其也会由于不能事先知道同一条报文流中的报文在不同转发核之间的分布,以及在不同转发核上的处理延迟而导致无法确定所需要的老化时间,如果老化时间设置太小会导致过早丢弃,太大会增加缓存负担。综上可以看出,一种能够避免缓存以及定时老化等问题的报文保序方法是当前亟待解决的技术问题。
技术实现思路
本专利技术提供了实现报文保序的方法和装置,以便在对报文保序时避免缓存以及定时老化等问题。—种实现报文保序的方法,包括A,网络通信设备上的队列区控制单元将已接收的报文依次存入共享队列区输入队列,并将共享队列区输入队列提供给首先执行转发处理的第一转发核,所述第一转发核轮询共享队列区输入队列,依次获取共享队列区输入队列中的每个共享队列区并处理;B,所述第一转发核处理完当前共享队列区中对应报文队列的所有报文后,判断自身是否为最后一个执行转发处理的转发核,如果否,提供处理后的共享队列区给下一个执行转发处理的转发核处理,并执行步骤C,如果是,提供处理后的共享队列区给所述网络通信设备上的保序处理单元,并执行步骤D ;C,所述下一个执行转发处理的转发核执行步骤B中所述第一转发核执行的操作;D,所述保序处理单元获取共享队列区中的报文,并按照接收顺序进行串行化处理以供报文发送。一种用于实现报文保序的装置,包括至少一个参与转发处理的转发核,报文接收队列和报文发送队列,其关键在于,该装置还包括队列区控制单元和保序处理单元;其中,所述队列区控制单元用于将已接收的报文存入共享队列区输入队列,并提供该共享队列区输入队列给所述装置上首先执行转发处理的第一转发核;第一转发核轮询共享队列区输入队列,依次获取共享队列区输入队列中的共享队列区并处理,所述第一转发核每处理完一个共享队列区中对应报文队列的所有报文后,判断自身是否为最后一个执行转发处理的转发核,如果否,提供处理后的共享队列区给下一个执行转发处理的转发核,由下一个执行转发处理的转发核执行所述第一转发核执行的操作,如果是,提供处理后的共享队列区给所述保序处理单元;所述保序处理单元用于获取共享队列区,并对获取的共享队列区中的报文按照接收顺序进行串行化处理,以供处理后的报文发送。由以上技术方案可以看出,本专利技术中,由首先执行转发处理的第一转发核先处理共享队列区输入队列中的共享队列区,其中,共享队列区包括每一参与转发处理的转发核对应的报文队列,每一个转发核将处理后的共享队列区提供给下一个相邻的执行转发处理的转发核处理,依次类推,直至最后一个执行转发处理的转发核将处理后的共享队列区提供给保序处理单元,以便保序处理单元对获取的共享队列区中的报文按照接收顺序进行串行化处理,实现了按照报文接收顺序发送报文的目的,即实现了报文保序。本专利技术提供的报文保序,对于共享队列区输入队列中的共享队列区按顺序分别被各个转发核处理,对于同一共享队列区来说转发核之间串行处理,最后各个处理后的共享队列区又按照进入共享队列区输入队列的顺序,进入到共享队列区输出队列后进行报序处理,因此不涉及缓存,定时老化等问题。附图说明图1为现有技术中并行工作方式示意图;图2为本专利技术实施例提供的基本流程图;图3为本专利技术实施例提供的详细流程图;图4为本专利技术实施例提供的共享队列区的结构示意图;图5为本专利技术实施例提供的步骤312的实现流程图;图6为本专利技术实施例提供的对应图3中流程的示意图;图7为本专利技术实施例提供的装置结构图;图8为本专利技术相邻的两个转发核之间的访问通道示意图。具体实施例方式为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。本专利技术提供的方法主要是避免现有技术在进行报文保序时所涉及的缓存,定时老化等问题,图2对本专利技术实施例提供的方法进行了描述。参见图2,图2为本专利技术实施例提供的基本流程图。该流程主要应用于网络通信设备上,其中,该网络通信设备具体实现时可为路由器,也可为其他具有路由功能的设备,比如交换机等,本专利技术实施例并不具体限定。基于此,如图2所示,该流程可包括以下步骤步骤201,网络通信设备上的队列区控制单元将已接收的报文依次存入共享队列区输入队列,并提供该共享队列区输入队列给所述网络通信设备上首先执行转发处理的第一转发核,第一转发核轮询共享队列区输入队列,依次获取共享队列区输入队列中的每个共享队列区并处理。本步骤201中,队列区控制单元将已接收的报文存入共享队列区输入队列的操作具体可参见图3中的步骤302至步骤305中的描述。步骤202,第一转发核处理完当前共享队列区中对应报文队列的所有报文后,判断自身是否为最后一个执行转发处理的转发核,如果否,提供处理后的共享队列区给下一个执行转发处理的转发核,并执行步骤203,如果是,提供处理后的共享队列区给所述网络通信设备上的保序处理单元,并执行步骤204。本步骤202执行的操作具体可参见图3中步骤306至步骤309的操作。另外,本实施例中,第一转发核为最后一个执行转发处理的转发核的情况是所述网络通信设备仅包含一个用于转发处理的转发核。步骤203,下一个执行转发处理的转发核按照步骤202中第一转发核执行的操作执行。从步骤202至步骤203可以看出,第一转发核先处理共享队列区,并将处理后的共享队列区提供给下一个转发核处理,依次类推,直至最后执行转发处理的转发核提供处理后的共享队列区给保序处理单元,以便保序处理单元执行步骤204。步骤204,保序处理单元获取共享队列区中的报文,并按照接收顺序进行串行化处理以供报文发送。本步骤204的描述可参见图3中步骤311至步骤312的描述。以上对本专利技术实施例提供的方法进行了简单描述。在上述流程中,可预先对网络通信设备上所有参与转发的转发核按照顺序编号。 基于此,本实施例中的第一转发核可为编号最小的转发核,最后一个执行转发处理的转发本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现报文保序的方法,其特征在于,该方法包括A,网络通信设备上的队列区控制单元将已接收的报文依次存入共享队列区输入队列, 并将共享队列区输入队列提供给首先执行转发处理的第一转发核,所述第一转发核轮询共享队列区输入队列,依次获取共享队列区输入队列中的每个共享队列区并处理; B,所述第一转发核处理完当前共享队列区中对应报文队列的所有报文后,判断自身是否为最后一个执行转发处理的转发核,如果否,提供处理后的共享队列区给下一个执行转发处理的转发核处理,并执行步骤C,如果是,提供处理后的共享队列区给所述网络通信设备上的保序处理单元,并执行步骤D ;C,所述下一个执行转发处理的转发核执行步骤B中所述第一转发核执行的操作;D,所述保序处理单元获取共享队列区中的报文,并按照接收顺序进行串行化处理以供报文发送。2.根据权利要求1所述的方法,其特征在于,在所述方法执行之前,进一步包括对网络通信设备上所有参与转发处理的转发核按照顺序编号;所述第一转发核为编号最小的转发核,所述最后一个执行转发处理的转发核为编号最大的转发核;或者,所述第一转发核为编号最大的转发核,所述最后一个执行转发处理的转发核为编号最小的转发核。3.根据权利要求1或2所述的方法,其特征在于,步骤A中,队列区控制单元依次将已接收的报文存入共享队列区输入队列包括Al,队列区控制单元每次轮询报文接收队列时,从报文接收队列中获取所有报文,所述报文接收队列用于存放所述网络通信设备接收的报文;A2,所述队列区控制单元创建共享队列区,所述共享队列区包括每一参与转发处理的转发核对应的报文队列,并从共享队列区中第一转发核对应的报文队列开始,按顺序依次向各个转发核对应的报文队列放入报文;A3,所述队列区控制单元将存放报文的共享队列区依次放入共享队列区输入队列。4.根据权利要求3所述的方法,其特征在于,步骤A2中,所述队列区控制单元按照各个转发核平均分配报文的原则向各个转发核对应的报文队列放入报文;或者,所述队列区控制单元根据各个转发核当前的负载以及获取的所有报文的数量向各个转发核对应的报文队列中放入报文。5.根据权利要求3所述的方法,其特征在于,在执行步骤B之前进一步包括创建共享队列区输出队列,所述共享队列区输出队列用于存放最后一个执行转发处理的转发核处理后的共享队列区,以供保序处理单元将共享队列区中处理后的报文进行保序处理;步骤B中,提供处理后的共享队列区给保序处理单元包括提供处理后的共享队列区给所述共享队列区输出队列,由所述保序处理单元通过轮询所述共享队列区输出队列获取共享队列区中处理后的报文。6.根据权利要求5所述的方法,其特征在于,步骤D包括D1,保序处理单元轮询共享队列区输出队列,依次获取共享队列区;D2,保序处理单元从获取的共享队列区中按顺序依次访问每个转发核对应的报文队列,并按照顺序将被访问的报文队列中的报文依次存入所述网络通信设备的报文发...

【专利技术属性】
技术研发人员:曹淋
申请(专利权)人:迈普通信技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术