基于网络处理器实现点对点复用协议的方法

文档序号:7550958阅读:85来源:国知局
专利名称:基于网络处理器实现点对点复用协议的方法
技术领域
本发明涉及一种实现PPP Mux协议(点对点复用协议)的方法,尤其涉及采用网络处理器实现PPP Mux协议的方法。
背景技术
随着电信网络的发展,对电信设备接入能力的要求越来越高,然而出于运营成本的考虑,在很长一定时期内,电信网中仍然会采用大量的低速链路进行数据的传输,比如3GPP2规定的CDMA2000 ABIS接口、A3/A7接口等,这些低速链路信息传输压力比较大,它同时要进行业务信令数据,用户数据,链路控制检测数据等的传输。因此如何提高这些链路传输的效率,降低数据传输延迟就显得尤为重要。如果是基于PPP传输,采用PPP Mux协议处理方法是一种很好的选择,PPP Mux协议提供一种降低传输小数据包时PPP组帧开销的方法,PPP Mux在一个PPP帧实现传送多个PPP封装包(如图1所示),这样每一个PPP包的组帧开销降低了。如果结合相应的链路层协议,例如HDLC,PPP Mux提供了有效的点对点传输链结,对所有基于PPP的语音数据/实时数据/多媒体数据通信设备间传输系统,实现PPP Mux都能在一定程度上提高链路通信的传输效率。
传统上,一般采用通用处理器实现PPP Mux,实现起来简单,但有一致命缺陷就是处理能力有限,只能接入小流量的数据,比如几兆,十几兆;对接入几十兆,上百兆,甚至上千兆的大流量数据,通用处理器光是转发就无能为力,更别说对报文还要进行PPP Mux这一复杂协议处理。如果选择专用的网络处理器来替代通用处理器,这一问题就可以很好地解决。网络处理器采用中央处理器机制,包括一个核心处理器和若干个精简指令结构处理器,即微处理器,也称微引擎。我们通过编程在微处理器上实现各种网络协议的处理,使若干个微处理器可对报文进行实时并行处理,从而能够将报文以线速转发到下一节点,图2为一种网络处理器的结构图。
采用网络处理器实现PPP Mux,采用网络处理器实现PPP Mux,一种比较简单的方式就是在核心处理器上实现PPP Mux,这种实现方式和通用CPU一样,实现起来比较简单,却没有实际发挥网络处理器的真正优势,它和通用CPU实现一样存在一致命缺陷只适用于小流量报文处理,对大流量的接入,无能为力。因此只有在微处理器(微引擎)上实现PPP Mux才能发挥网络处理器的优势,真正实现大流量报文的PPP Mux处理和线速转发。由于微处理器(微引擎)是用专用的汇编指令开发,且指令功能简单,指令空间、寄存器和其他资源比较有限,难于实现复杂的运算操作和复杂的定时器处理,故一般网络处理器一般只作快速的报文转发,只对链路和网络层做一些简单的处理,而对实现一些诸如PPP Mux等协议处理存在一定困难,尤其是实现PPP Mux中的延时控制处理比较困难。

发明内容
本发明所要解决的技术问题是提供一种基于网络处理器实现PPP Mux的方法,以便适用于所有大流量接入且基于PPP的语音数据/实时数据/多媒体数据通信设备间传输系统,从而克服通用处理器无法快速处理和转发大流量的报文数据的问题,及网络处理器不适用于进行高层应用协议处理的问题。
为了实现上述目有,本发明提供了一种基于网络处理器实现点对点复用协议的方法,其特点在于利用网络处理器中核心处理器对所有的报文队列和统计进行初始化操作和其他表维护操作;维护三组队列,一组用于PPPMux复用前的队列,一组用于PPPMux复用后的队列,还有一组用于PPPMux解复用后的队列;利用网络处理器中微处理器的多线程并行处理架构多线程进行PPPMux复用和解复用双向处理,采用基于QOS限制复用包数的方法实现PPPMux中延时控制,采用边接收边解复用的方式进行PPPMux报文的解复用处理。
上述的实现点对点复用协议的方法,其特点在于,所述PPPMux复用处理,包括步骤1,选择一个PPPMux复用前的队列,并获取该队列的QOS值;步骤2,从复用前队列的头部摘取报文,循环进行报文的复用处理,并且当复用处理停止条件发生时,停止当前复用处理;步骤3,把复用处理后的报文入相应的PPPMux复用后的队列,并执行步骤1。
上述的实现点对点复用协议的方法,其特点在于,所述复用处理停止条件为当下一个子帧长度大于给定的最大子帧长度;整个复用的报文长度大于LCP协商好的MRU;连接中没有后续子帧参与复用;当复用包数达到基于队列QOS限定的最大复用包数。
上述的实现点对点复用协议的方法,其特点在于,所述PPP Mux解复用处理包括步骤一,接收一个新的PPP Mux报文的预处理;步骤二,循环接收该PPP Mux报文的MPKT;步骤三,分析所接收的MPKT,申请包描述字,分配包缓存,构造子帧头,解复用出一个完整的PPP包就入到PPP Mux解复用后的队列,循环进行MPKT的解复用处理。
上述的实现点对点复用协议的方法,其特点在于,在步骤三中,当循环进行MPKT的解复用处理时,如果该PPP Mux报文的所有MPKT都处理完成,就执行步骤一,否则执行步骤二。
上述的实现点对点复用协议的方法,其特点在于,在对多个PPPMux复用前队列进行多线程PPPMux复用处理时,每个线程循环只对所属自己的队列基于队列的QOS进行PPPMux复用处理。
采用本发明的技术方案,与现有的技术相比,不仅解决了大流量下PPP Mux处理速度和效率问题,也解决了在指令空间和其他资源有限的微引擎进行PPPMuxP协议处理的问题;同时针对PPP Mux延时控制问题采用基于QOS限制复用报文的方式,针对PPP Mux解复用采用边接收边解复用的方法,充分发挥和提高了网络处理器在进行PPP Mux处理的性能,并使PPP Mux处理过程变得简单有效。


图1示出了PPP Mux协议原理示意图;图2示出了一种网络处理器功能结构图;图3示出了基于QOS限制复用报文数的PPP Mux延时控制方式示意图;图4示出了本发明的PPP Mux复用部分的流程图;图5示出了本发明的PPP Mux解复用部分的流程图。
具体实施例方式
下面结合附图对技术方案的实施作进一步的详细描述。在图2和图3中,本发明的主要技术方案包括如下内容利用网络处理器中核心处理器对所有的报文队列和统计进行初始化操作和其他表维护操作;维护至少三组队列,一组用于PPPMux复用前的队列,一组用于PPPMux复用后的队列,还有一组用于PPPMux解复用后的队列;利用网络处理器中微处理器的多线程并行处理架构多线程进行PPPMux复用和解复用双向处理,采用基于QOS限制复用包数的方法实现PPPMux中延时控制,采用边接收边解复用的方式进行PPPMux报文的解复用处理。其中,本方案的PPP Mux处理,可分为复用和解复用处理两部分,在详述本方案的实施之前,先介绍本方案的基于QOS限制复用报文数的PPPMux延时控制方式(如图3、图4所示)在RFC3153文件中,关于停止当前复用处理,明确定义了解情况个条件标准a、当下一个子帧长度大于给定的最大子帧长度(MAX_SF_LEN)时;标准b、整个复用的包长度大于LCP协商好的MRU(MAX_MUX_LEN)时;标准c、连接(PPP Mux复用前的队列)中没有后续子帧参与复用时。
但是只有条件标准a、b和c,还不够,应该还存在一个条件做为PPP Mux延时控制,即标准d、当复用包数达到基于队列QOS限定的最大复用包数(在RFC3153中建议的第4个条件)。因为当输入的是长度很小的PPP包时,将这些PPP包复用成Mux包。由于包长很小,所以停止条件标准a和标准c都不会触发,直到复用了很多个包时,才会触发条件b,停止当前复用处理,发出当前复用包,开始一个新的复用包处理。因此,如果没有条件标准d,则会产生相当大的延时。
因此,在对于延迟敏感的业务流中,需要对延迟进行控制。如何实现延时控制?最直接的想法就是通过时钟,当复用过程超过一定时间长度后,停止当前复用、发出、开始一个新的Mux包处理。所以,时钟或者说条件标准d的根本目的就是为了实现延时控制。这也是语音业务最关心的问题。
如果在微处理器(微引擎)中采用时钟队列来实现条件d显然是不妥的,时钟队列的维护和管理较为复杂,除了访问缓存的开销,还降低了PPP Mux处理的模块化。再者PPP Mux是“数据处理密集”的任务,重点应当放在更高效、更迅速的Mux处理上,其他控制、管理机制应当更为简单有效,以降低在这方面的开销,将更多资源用于实际的Mux处理在本发明中,考虑到产生延迟的原因,实际上就是在对一个队列中的PPP包进行复用时,在小包的情况下,复用个数多,会造成较大的延迟。因此,直接限制可复用的包的个数,就可以实现延时控制。对于不同的QOS级别,分别指定不同的限制个数,比如对QoSO指定4,QOS1的指定8,等等,可以做到对不同QOS级别的延时控制。因此,限制复用包的方式是遵从RFC3153的方式。
以下分别描述本方案的复用和解复用处理两部分的实施过程一、PPP Mux复用部分采用基于QOS限制复用报文数作为PPP Mux延时控制的方式,如图3所示,同时采用多线程进行PPP Mux复用处理,如果是多个PPP报文队列,即多个PPP Mux复用前的队列(比如64个)需要进行PPP Mux复用处理,那么每个线程负责部分队列的复用处理操作(比如16个),这些队列QOS并不完全一样,每个线程循环对所属自己的队列基于队列的QOS进行PPPMux复用处理。
图4给出了某个线程对所属的某个队列进行PPP Mux复用部分的实现流程。在图4中,首先全局初始化开始进行PPP Mux复用处理,其次选择下一个PPP包队列,下面进一步说明某一个线程对所属的某个队列进行PPP Mux复用的详细步骤步骤10,判断所要处理的PPP报文队列是否为空(标准c),如果空,则进入步骤20,否则跳到步骤30。
步骤20,判断所复用的子帧状态是否标识为首子帧?如果不是,把该PPPMux包入PPP Mux复用后队列(发送队列),并进行新的Mux初试化,切换出该线程,让其他线程处理,退出该队列的PPP Mux处理循环;如果是,则直接切换出去,让别的线程处理,退出该队列的PPP Mux处理循环。
步骤30,读队列首包报文,判断该PPP报文的长度是否大于限定的最大子帧长度(标准a),如果大于,则进入步骤40,否则跳到步骤50。
步骤40,判断所复用的子帧状态是否标识为首子帧,如果不是,把已经复用的Mux报文入PPP Mux复用后队列(发送队列),如果是,则取出当前的PPP报文并入到发送队列,退出该队列的PPP Mux处理循环;步骤50,如果该PPP报文的长度与已经复用的Mux报文的长度之和大于限定的最大复用报文长度(标准b),则把已经复用的Mux报文入PPP Mux复用后队列(发送队列),并退出该队列的PPP Mux处理循环;否则进入步骤60,其中注意最大复用子帧数至少要小于2;步骤60,判断当前复用的报文数+1是否大于基于该队列QOS而限定的最大复用报文数(标准d),如果大于,则把已经复用的Mux报文入PPP Mux复用后队列(发送队列),并退出该队列的PPP Mux处理循环;否则进入步骤70;步骤70,判断所复用的子帧状态是否标识为首子帧,如果是首子帧,申请Mux包描述字,分配包缓存,构Mux头,设置子帧状态为0,更新复用包长度;如果设置复用的子帧状态不为首子帧,更新Mux报文长度;追加子帧净荷传到包缓存中的相应位置,更新Mux复用包长度和更新复用报子帧数,转到步骤10。
二、PPP Mux解复用部分参见图2、3和图5,在本发明的实施方案中,采用了多线程进行PPP Mux解复用处理,并采用边接收边解复用处理方式。
图5给出了某个线程对PPP Mux报文进行解复用部分的实现流程,它主要包括以下步骤步骤100,网络处理器中微处理器的一个线程从MAC设备中接收一个新的PPP Mux报文;步骤200,设置接收逻辑,接收该PPP Mux报文的一个MPKT;步骤300,如果所接收的MPKT为该PPP Mux的第一个MPKT,则跳到步骤500;步骤400,判断前一个MPKT的子帧是否已经全部处理完成,如果没有完成,把该子帧包含前一MPKT的子帧数据传到该子帧所属缓存的相应位置,然后跳到步骤600;步骤500,申请新的包描述字,为当前子帧分配包缓存,并根据该MPKT构造子帧头;步骤600,分析MPKT,把MPKT包含该子帧的数据传到该子帧所属缓存的相应位置;步骤700,该子帧数据是否完成,如果完成,则把该子帧报文入到PPP Mux解复用后的相应队列中,供其他处理线程进行进一步的处理;步骤800,该MPKT是否已经处理完,如果没有处理完,转到步骤500;步骤900,该MPKT是否是该PPP Mux报文的最后一个MPKT,如果是,转到步骤100;否则,转到步骤200。
综上所述,本发明所提出的基于网络处理器实现PPP Mux协议方法与通用处理器实现PPP Mux协议方法相比,处理能力大大加强,接入和处理PPP Mux报文的流量一般是通用处理的几十倍,甚至几百倍;并且针对PPP Mux延时控制问题,采用基于QOS限制复用报文数方式,避免了复杂的定时器处理;针对PPP Mux解复用,采用多线程边接收边解复用处理方式。在提高了PPP Mux处理的能力的同时,也增强了系统的稳定性,并且使PPP Mux处理变得更加简单有效,从而使网络处理器适用于PPP Mux协议的实现,特别适用于大流量接入的PPP Mux协议处理。在本发明的可实施的一些典型应用场合适用于所有基于PPP的语音数据/实时数据/多媒体数据通信设备间传输系统,包括3GPP2规定的CDMA2000 ABIS接口、A3/A7接口,特别适合于多设备,大流量PPP数据接入的传输系统。
权利要求
1.一种基于网络处理器实现点对点复用协议的方法,其特征在于利用网络处理器中核心处理器对所有的报文队列和统计进行初始化操作和其他表维护操作;维护至少三组队列,一组用于PPPMux复用前的队列,一组用于PPPMux复用后的队列,还有一组用于PPPMux解复用后的队列;利用网络处理器中微处理器的多线程并行处理架构多线程进行PPPMux复用和解复用双向处理,采用基于QOS限制复用包数的方法实现PPPMux复用处理中延时控制,采用边接收边解复用的方式进行PPPMux报文的解复用处理。
2.根据权利要求1所述的实现点对点复用协议的方法,其特征在于,所述PPPMux复用处理,进一步包括步骤1,选择一个PPPMux复用前的队列,并获取该队列的QOS值;步骤2,从复用前队列的头部摘取报文,循环进行报文的复用处理,并且当复用处理停止条件发生时,停止当前复用处理;步骤3,把复用处理后的报文入相应的PPPMux复用后的队列,并执行步骤1。
3.根据权利要求2所述的实现点对点复用协议的方法,其特征在于,所述复用处理停止条件为当下一个子帧长度大于给定的最大子帧长度;整个复用的报文长度大于LCP协商好的MRU;连接中没有后续子帧参与复用;当复用包数达到基于队列QOS限定的最大复用包数。
4.根据权利要求1或2所述的实现点对点复用协议的方法,其特征在于,所述PPP Mux解复用处理,进一步包括步骤一,接收一个新的PPP Mux报文的预处理;步骤二,循环接收该PPP Mux报文的MPKT;步骤三,分析所接收的MPKT,申请包描述字,分配包缓存,构造子帧头,解复用出一个完整的PPP包就入到PPP Mux解复用后的队列,循环进行MPKT的解复用处理。
5.根据权利要求4所述的实现点对点复用协议的方法,其特征在于,在步骤三中,当循环进行MPKT的解复用处理时,如果该PPP Mux报文的所有MPKT都处理完成,就执行步骤一,否则执行步骤二。
6.根据权利要求1所述的实现点对点复用协议的方法,其特征在于,在对多个PPPMux复用前的队列进行多线程PPPMux复用处理时,每个线程循环只对所属自己的队列基于队列的QOS进行PPPMux复用处理。
7.根据权利要求1或6所述的实现点对点复用协议的方法,其特征在于,当一线程对所属的一队列进行PPP Mux复用处理时,进一步包括如下步骤步骤10,判断所要处理的PPP报文队列是否为空,如果空,则进入步骤20,否则跳到步骤30;步骤20,判断所复用的子帧状态是否标识为首子帧?如果不是,把该Mux报文入发送队列,并进行新的Mux初试化,切换出该线程,让其他线程处理,退出该队列的PPP Mux处理循环;步骤30,读队列头部取出一个PPP报文,判断该PPP报文的长度是否大于限定的最大子帧长度,如果大于,则进入步骤40,否则跳到步骤50。步骤40,判断所复用的子帧状态是否标识为首子帧,如果不是,把已经复用的Mux报文入发送队列,取出当前的PPP报文,并入到发送队列,退出该队列的PPP Mux处理循环;步骤50,如果该PPP报文的长度与已经复用的Mux报文的长度之和大于限定的最大复用报文长度,则把已经复用的Mux报文入发送队列,并退出该队列的PPP Mux处理循环;否则进入步骤60;步骤60,判断当前复用的报文数+1是否大于基于该队列QOS而限定的最大复用报文数,如果大于,则把已经复用的Mux报文入发送队列,并退出该队列的PPP Mux处理循环;否则进入步骤70;步骤70,判断所复用的子帧状态是否标识为首子帧,如果是首子帧,为Mux报文分配缓存,准备Mux头;如果设置复用的子帧状态不为首子帧,更新Mux报文长度;追加子帧到缓存中的相应位置,更新Mux的长度和复用报文数,转到步骤10。
8.根据权利要求1所述的实现点对点复用协议的方法,其特征在于,一线程对PPP Mux报文进行解复用处理时,进一步包括如下步骤步骤100,网络处理器中微处理器的一个线程从MAC设备中接收一个新的PPP Mux报文;步骤200,设置接收逻辑,接收该PPP Mux报文的一个MPKT;步骤300,如果所接收的MPKT为该PPP Mux的第一个MPKT,则跳到步骤500;步骤400,判断前一个MPKT的子帧是否已经全部处理完成,如果没有完成,把该子帧包含前一MPKT的子帧数据传到该子帧所属缓存的相应位置,然后跳到步骤600;步骤500,申请新的包描述字,为当前子帧分配包缓存,并根据该MPKT构造子帧头;步骤600,分析MPKT,把MPKT包含该子帧的数据传到该子帧所属缓存的相应位置;步骤700,该子帧数据是否完成,如果完成,则把该子帧报文入到PPP Mux解复用后的相应队列中,供其他处理线程进行进一步的处理;步骤800,该MPKT是否已经处理完,如果没有处理完,转到步骤500;步骤900,该MPKT是否是该PPP Mux报文的最后一个MPKT,如果是,转到步骤100;否则,转到步骤200。
9.一种基于网络处理器进行点对点复用处理的方法,其特征在于利用网络处理器中核心处理器对所有的报文队列和统计进行全局初始化;利用网络处理器中微处理器的多线程并行处理架构多线程进行PPPMux复用处理,进一步包括步骤1,选择一个PPP Mux复用前的队列,并获取该队列的QOS值;步骤2,从复用前队列的头部摘取报文,循环进行报文的复用处理,并且当复用处理停止条件发生时,停止当前复用处理;步骤3,把复用处理后的报文入相应的PPP Mux复用后的队列,并执行步骤1。
10.根据权利要求9所述的实现点对点复用协议的方法,其特征在于,所述复用处理停止条件为当下一个子帧长度大于给定的最大子帧长度;整个复用的报文长度大于LCP协商好的MRU;连接中没有后续子帧参与复用;当复用包数达到基于队列QOS限定的最大复用包数。
11.一种基于网络处理器进行点对点解复用处理的的方法,其特征在于,利用网络处理器中核心处理器对所有的报文队列和统计进行全局初始化;利用网络处理器中微处理器的多线程并行处理架构多线程进行PPP Mux解复用处理,进一步包括步骤一,接收一个新的PPP Mux报文的预处理;步骤二,循环接收该PPP Mux报文的MPKT;步骤三,分析所接收的MPKT,申请包描述字,分配包缓存,构造子帧头,解复用出一个完整的PPP包就入到PPP Mux解复用后的队列,循环进行MPKT的解复用处理。
12.根据权利要求11所述的实现点对点复用协议的方法,其特征在于,在步骤三中,当循环进行MPKT的解复用处理时,如果该PPP Mux报文的所有MPKT都处理完成,就执行步骤一,否则执行步骤二。
全文摘要
本发明公开了一种基于网络处理器实现点对点复用协议的方法,利用网络处理器中核心处理器对所有的报文队列和统计进行初始化操作和其他表维护操作;维护至少三组队列,一组用于PPPMux复用前的队列,一组用于PPPMux复用后的队列,还有一组用于PPPMux解复用后的队列;利用网络处理器中微处理器的多线程并行处理架构多线程进行PPPMux复用和解复用双向处理,采用基于QOS限制复用包数的方法实现PPPMux中延时控制,采用边接收边解复用的方式进行PPPMux报文的解复用处理。该方法适用于所有大流量接入且基于PPP的语音数据/实时数据/多媒体数据通信设备间传输系统。
文档编号H04L29/06GK1545293SQ20031011366
公开日2004年11月10日 申请日期2003年11月17日 优先权日2003年11月17日
发明者谭芳, 冯刚, 张钢钢, 谭 芳 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1