首页> 中国专利> 基于网络处理器的移动互联网数据负载分配方法

基于网络处理器的移动互联网数据负载分配方法

摘要

基于网络处理器的移动互联网数据负载分配方法,一是以网络处理器为实现平台,能够达到千兆的线速处理能力;二是利用A10协议中的GRE Key字段与移动用户唯一身份识别标识IMSI的一一对应关系,通过轮转算法实现对各个不同用户的进行识别并分流。该处理过程在网络处理器IXP2400上,针对CDMA2000移动通信系统,首先根据分组控制功能单元PCF与分组数据服务节点PDSN之间的信令接口A11提取出用于负载分配的信息,即国际移动用户识别信息IMSI和通用路由封装GRE的传输标识GRE Key,然后将数据传输接口A10上的数据流量根据不同的传输标识GRE Key分配到不同的分组控制功能单元PCF或PDSN。

著录项

  • 公开/公告号CN101217486A

    专利类型发明专利

  • 公开/公告日2008-07-09

    原文格式PDF

  • 申请/专利权人 东南大学;

    申请/专利号CN200810019062.1

  • 申请日2008-01-11

  • 分类号H04L12/56;H04Q7/22;

  • 代理机构南京经纬专利商标代理有限公司;

  • 代理人叶连生

  • 地址 210096 江苏省南京市四牌楼2号

  • 入库时间 2023-12-17 20:28:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-02

    未缴年费专利权终止 IPC(主分类):H04L12/56 授权公告日:20110914 终止日期:20150111 申请日:20080111

    专利权的终止

  • 2011-09-14

    授权

    授权

  • 2008-09-03

    实质审查的生效

    实质审查的生效

  • 2008-07-09

    公开

    公开

说明书

技术领域

本发明涉及一种移动通信系统的流量分配方法,特别是一种用于CDMA2000(码分多址2000移动通信系统)等移动互联网的数据负载分配方法,属于移动通信网络技术领域。

背景技术

作为近年来发展的一个热点,第三代移动通信系统(3G)已经受到国际瞩目,而且将是21世纪初通信领域最重要的发展方向之一,其中,CDMA2000、WCDMA和TD-SCDMA是三种主流技术。CDMA技术作为宽带移动网络的关键技术,在过去几年里得到了快速的发展。而且随着技术的不断进步,产品价格的不断下降,其应用领域不断拓宽。3G时代的到来必然伴随着网络传输速度的突飞猛进,这也导致了网络流量的与日俱增。然而对于网络中的任何一种设备来说,其可以承担的负载是有限的,同时在不同的负载情况下其工作的效率也是有很大差距的。如果一台网络设备的流量总是接近最大负载,那么其处理能力将大大降低,可能带来极大的时延。流量和效率永远是一对矛盾的存在,如何通过有效的手段将巨大的流量在负载有限的不同设备间进行合理分配,从而使每个设备发挥最大功效,已成为一个非常棘手的问题。

目前的网络负载分配系统所采用的负载均衡算法主要有:轮转(Round-Robin)算法、加权轮转(Weighted Round Robin)算法、最小连接数(Least Connections)算法、加权最小连接数(Weighted Least Connections)算法、目的地址哈希散列(Destination Hashing Scheduling)算法、源地址哈希散列(Source HashingScheduling)算法、随机(Random)算法等。在CDMA2000分组域网络中,数据流量正如前文所陈述的那样是十分庞大的,这就需要我们进行分配的网络设备具有快速的数据包转发能力,正是基于这种考虑,我们选用INTEL IXP2400作为分流的平台,由于其特殊的软硬件构造,使得它基本满足了实际网络处理的效能指标。同时鉴于NP硬件平台专用语言的特殊性,我们选择了轮转算法作为系统实现的基础。

发明内容

技术问题:针对第三代移动通信系统中核心网内巨大的数据流量,本发明的目的在于提供一种基于网络处理器的移动互联网数据负载分配方法,利用网络处理器IXP2400的快速转发能力有效处理CDMA2000核心网中的大流量数据。

技术方案:本发明的基于网络处理器的CDMA2000数据负载分配方法通过对CDMA2000分组域网络数据包及相关协议的分析,发现其数据包的GRE Key这字段包含了有效的用户信息,且可与通过其与用户(以国际移动用户识别码IMSI来标识)建立一一对应的关系。基于这一发现,本发明通过对GRE Key的分流实现了对用户的合理分配,使得同一用户的数据被分配到同一台机器处理,而不同用户之间的数据也通过算法达到了一定程度的均衡,使得后续的网络设备最大效率的完成任务。

本发明的基于网络处理器的移动互联网数据负载分配方法处理过程在网络处理器IXP2400上,针对CDMA2000移动通信系统,首先根据分组控制功能单元PCF与分组数据服务节点PDSN之间的信令接口A11提取出用于负载分配的信息,即国际移动用户识别信息IMSI和通用路由封装GRE的传输标识GRE Key,然后将数据传输接口A10上的数据流量根据不同的传输标识GRE Key分配到不同的分组控制功能单元PCF或PDSN。

所述的网络处理器IXP2400在数据层面将IXP2400提供的8个微引擎分为数据包接收模块对应0号微引擎、负载分配模块对应1、2、3、4号微引擎、队列管理模块对应5号微引擎、调度管理模块对应6号微引擎、数据包发送模块对应7号微引擎负载分配的处理步骤是:

步骤1:数据包接收模块从PCF和PDSN的链路上接收所有的数据包,同时依次传至负载分配模块,

步骤2:负载分配模块根据IP头和端口号判断是信令接口A11数据包还是数据传输接口A10数据包分别进行处理,

a)如果是信令接口A11数据包,则提取其GRE Key和IMSI并根据GRE Key的不同添充上不同的目的主机MAC地址和IP地址,

b)如果是数据传输接口A10数据包,则获取相应的传输标识GRE Key,然后同样根据传输标识GRE Key的不同添充上不同的目的主机MAC地址和IP地址,这样保证了属于同一用户的信令接口A11和数据传输接口A10数据发往了同一台PCF或PDSN,便于对用户进行确认;

步骤3:负载分配模块依次将处理过的数据包传给队列管理模块,并通过数据包发送模块发往交换机。

有益效果:本发明提供了一种基于网络处理器的CDMA2000数据负载分配方法。CDMA2000的核心网因为汇聚了多个基站传来的分组数据,大量的流量数据会极大的加重转发设备的负担。基于网络处理器的CDMA2000数据负载分配系统利用IXP2400的快速转发能力,根据PCF与PDSN之间的A11信令协议提取出用户识别信息IMSI,然后将A10数据流量分配到后续的处理设备。有效避免数据的拥塞,从而提升系统的处理能力,同时可支持后端对不同用户进行附加操作。

附图说明

下面结合附图和具体实施方式对本发明作进一步的说明。

图1是CDMA2000-1X核心网分组域结构示意图;

图2是A10/A11协议栈模型;

图3是分流系统软件结构图;

图4是数据处理模块Dispatch Loop结构示意图,

图5是数据处理流程图;

具体实施方式

本发明所使用的设备在CDMA2000分组域网络中的位置如图1所示。

就本系统而言,我们考虑的设备和通讯链路是PCF和PDSN设备以及两者之间的R-P链路。

分组控制功能(PCF)设备通常作为无线网络设备而设置于基站控制器(BSC)内,或者与BSC同址外置,但它作为完成分组业务所必须的功能单元。PDSN作为无线移动用户接入Internet网络的接入设备,承担了CDMA网络与Internet网络的数据交换服务器的功能,在网络中起桥梁作用。

另外PCF(RN)和PDSN之间的接口是“RN-to-PDSN”接口,即R-P接口。R-P接口是无线处理与有线处理的分界。R-P接口包括两个元素,A11接口和A10接口。它们都被看作A接口的一部分。

无线接入节点和PDSN之间的R-P接口,是PCF和PDSN之间的标准接口。我们实际需要处理的数据包为A10/A11,其协议栈模型如图2所示。其中A10承载的是用户的数据,而A11则由一些信令组成。区分A11信令和A10数据具体方法是看IP包头,如IP包头中的Protocol域为GRE,则此为A10数据;若为UDP则为A11信令。

在IXP2400中,将数据包分为两个层次:数据面处理和控制面处理。其中数据面的数据包处理可划分为若干个功能逻辑模块即微模块,同理控制面的数据包的处理也可划分为若干个功能模块即核模块。核模块(Core Component)只是负责初始化和管理微模块占用的内存资源、管理路由表等查表结构,处理少量的异常包。而大量的数据处理事务都是交给了拥有并行优势性能的微模块来做。

本发明的软件结构如图3所示。

1)微模块中数据包接收模块从PCF和PDSN的链路上接收数据包,然后传至处理模块MSF。RX模块从线程thread_free_list唤醒一个线程。线程得到存放接收包状态信息的RSW字,从中提取数据包到达的端口号以及存放数据包的RBUF单元号和大小。根据数据包到达的端口号,线程从接收上下文找到代码执行的路径。线程将RBUF中接收到的数据包存放到DRAM,如果接收的mpacket是起始包(SOP),则从buffer_free_list中分配一个新内存buffer,同时将数据包的相关状态信息metatdata存放到SRAM。如果接收的mpacket是结尾包(EOP)的情况下,则将该内存描述符buffer descriptor的前8个字节存到SRAM。线程等待以前的线程信号和所有的I/O初始化。当一个mpacket已经存放至DRAM,则释放RBUF element,同时线程被重新写回free list若该mpacket是EOP,说明一个完整的数据包已经接收完毕,线程写包的指针(buffer handle)和描述符号(buffer descriptor)信息则写入到scratch环,等待进一步处理使用。线程等待scratch写的完成,同时等待MSF接收事件信号。

2)负载分配模块。该模块是本系统的核心,主要功能是进行以太网解封装和分类,判别出ARP数据包、A11信令(UDP数据包)和A10数据(GRE数据包)。ARP数据包暂做丢弃处理,需要分析和截获的数据包只有A10和A11。

a)如果是UDP,再根据端口号来判断是否为A11信令,如果是A11信令,则提取其GRE KEY并根据分流算法将其发往相应的目的主机;如果是其他信令则直接丢弃。

b)如果是GRE数据包,则获取相应的用户会话号(Key)和数据包序列号(Sequence Number),然后同样根据key进行分流。这样作保证了属于同一用户的A11和A10数据发往了同一台计算机,便于对用户进行确认。然后将此数据包传给队列管理微模块,

该处理模块还将在后面详细介绍。

3)队列管理微模块通过发送微模块发往交换机,最后由交换机发往目的主机做进一步处理。程序首先从Scratch环中提取处理过的数据包dl_buffer_handle,读出数据状态信息,得到数据包存放地址;然后将数据包分段成mpacket,并写入TBUF,通过MSF状态机进行发送,数据经由MSF-to-DRAM快速通道写入TBUF单元;最后向TBUF_Element_Control_#寄存器写发送控制字TCW,自动使TBUF有效,然后MSF开始发送mpacket。

本系统的微模块中,其中数据包接收做为一个经常性的功能在一个独立的微引擎(0号微引擎)中设计。而以太网解包/第3层协议分类、存储所需信息、分流等功能属于数据处理的功能范畴且前后操作内容相关因此被分为不同的子微模块形成一个功能流水线,并把这个流水线放入4个微引擎(1-4号微引擎)中并发执行。队列管理功能是一个复杂的队列控制功能的实现因此放入一个微引擎(5号微引擎)中执行。调度管理负责流量控制的功能它被放入6号微引擎中执行。最后发送模块因为实现的是OC48所以只用一个微引擎(7号微引擎)处理。

微引擎系统资源分配情况如表1所示:

表1微引擎系统资源分配表

    微模块    引擎号    通讯机制资源(与前一个模块)    数据包接收模块    MEO    MSF将RSW推送到Packet Rx    负载分配模块    ME1,ME2,    ME3,ME4    Scratch环    队列管理模块    ME5    Scratch环    调度管理模块    ME6    Scratch环和邻居寄存器(Next    Neighbor)    数据包发送模块    ME7    Scratch环

如图4所示,负载分配模块由Ethernet Decap/Classify(以太网解封装/分类)、A11/10 Decap/Classify(A11/A10解封装/分类)、Distribute(负载分配)等部分组成,是以Functional Pipeline的形式来实现的,运行在4个微引擎上(从两个ME Cluster中个选出2个微引擎,以充分利用两组Command Bus和SPush/Pull Bus)。微引擎上的每个Thread每次处理一个Packet,这样最好的情况下会有32个线程并行运行,最大程度上的提高分组数据处理的速度。数据包的顺序由DL_Source和DL_Sink模块来保证。其中dl_source模块将Buffer Handle和Metadata从Scratch环中取出,传入Ethernet Decap/Classify子模块。数据包的处理流程如图5所示。根据Buffer Handle将IP包头取出判断IP数据协议类型,如果是UDP包则有可能是A11信令,根据端口号判断出为A11信令后,提取相应的imsi和key存放在对应的sram地址中,存储完毕后将此数据包丢弃;如果是GRE包则首先提取Grekey,然后找出相应的存储位置,提取其对应的用户Imsi信息,根据imsi进行分流,在IP头写入不同的目的地址然后传往下一个模块。dl_sink模块将前面传送来的Packet的相关信息写入特定的Scratch环,并将packet交给队列管理模块处理。下面对各个子模块分别介绍:

1)dl_source调度环源点子模块

dl_source子模块负责从POS_RX_TO_PACKETDEALING_SCR_RING全局Scratch环上获得从数据包接收模块发来的后传包信息。在获得包信息的同时通过dl_source与dl_sink配合和有序线程执行的机制保证包到达的顺序。在进入分组数据处理微模块后,程序调用宏dl_source[DL_THREAD_ORDER,sig_mask]来按序启动每个线程的接收包程序。然后进入接收循环loop后,我们调用dl_sink[sig_mask,sig_scr_put,$wxfer]把处理好的包按线程顺序发送到队列管理模块中,而紧接着调用的dl_source[DL_THREAD_NO_ORDER,sig_mask]再来按线程调度的方式无序的接收包信息。就依次不断循环使得整个包到达和发送的顺序与数据包接收微模块保持整体一致。

2)Ethernet Decap/Classify以太网解封装/分类

Ether Decap/Classification模块负责去掉2层协议包头,并对数据包进行分类,根据分类结果将Pacek交给不同的模块处理。

3)A11/A10 Decap/Classify A11/A10解封装/分类

根据IP头中的Protocol字段判断数据区域是UDP还是GRE数据。如果是UDP,则根据端口号来判断是A11信令还是其他信令,若为其它信令则直接丢弃;若为A11信令则在相应的域中提取imsi和key,并存放在对应的连续的sram地址中,当存储完毕后,丢弃此数据包。如果是GRE数据则提取其GRE key和SequenceNumber,然后进入分流模块。

4)Distribute负载分配子模块

根据A10数据的GREkey找出其在sram中的地址,由于IMSI与key的存放地  址是连续的,所以找到key的地址之后通过简单的偏移就可以找到其对应的IMSI,又因为IMSI与key一一对应,所以每一个A10数据都有其对应的用户IMSI信息。为了方便后续处理,我们假定将数据分配到三台后续设备,为此取IMSI值的低两位进行判断,分为三种情况00(11)、01、10,根据不同的情形,修改A10数据包的IP头为三个不同的目的IP地址,在模块处理最后,数据还必须进行以太网封装。程序用Buffer Handle指向的MetaData中的next hop ID做为MAC地址或ARP信息表的索引值找到相应的2层包头信息,进行封装往后传送。如果表中没有相应的2层信息,则该包被ME1的0号线程转发至Xscale核。Xscale核上的程序为此包产生相应的ARP请求信息发送,当收到ARP回复时在表中生成条目。如果nexthop ID本身为-1是不合法的,程序就会认为此包已经加装过2层包头信息并往后一个子模块传送。

5)dl_sink调度环汇点子模块

所有的数据处理微模块中的数据都最后由dl_sink子模块负责发送到队列管理微模块中。dl_sink[sig_mask,sig_scr_put,$wxfer]中的wxfer传输寄存器负责存储队列管理模块需要的dl_buf_handle,dl_eop_buf_handle和Queue_Number,其中前两个参数仍然是所传数据包的Buffer Handle,而队列号则表示该数据是指派的发送队列中的队列号。通过模块间scratch环传输的机制,发送到POS_PACKETDEALING_TO_QM_SCR_RING全局环上,实现数据往后的传递。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号