发明内容
技术问题:本发明的目的是提供一种基于数据包的准动态计费方法,来解决基于数据包的静态计费缺点,使之达到动态计费控制网络拥塞的效果,并且可以在不降低网络运营商收益的前提下充分保证用户QoS需求的最佳性价比。
技术方案:本发明的方法是一种改进性和综合性的方法,通过对现有的基于数据包静态计费的改进和综合而提出。本计费思想类似于高速公路上的汽车收费。如果将数据包看作高速公路上的汽车,路由器比作收费站,汽车使用的车道对应于网络提供的带宽。现有的路由器计费主要是基于IP地址的流量计费,这就有三个不足:①用户可能用同一IP地址,无法区分出用户;②需要在路由器内设置大的缓存,路由器参与计费,这样就影响其路由性能;③基于流量的计费太简单,不精确,未考虑到网络的拥塞情况。为了与现有路由器概念加以区别,我们将路由器分为主干路由器和普通路由器,其中主干路由器是指对于网络拥塞状况影响较大的路由器,其它则为普通路由器。在数据包传输过程中,对于主干路由器:记录路由路径和拥塞情况;对于普通路由器:记录其跳数。通过发送探测流,得到数据包跳数和路由器拥塞情况,计算出单个数据包的费用,与计费上限比较,进行接纳判断,若可以接纳该业务,则以该费用为参数,结合流量计算出该探测周期内数据包的总费用,周期性重复上述过程,直到该业务服务结束。
基于数据包的计费方法具体为:将基于数据包的细粒度计费和基于流量的粗粒度计费有机结合,综合考虑了单个数据包的费用、传输流量和网络拥塞状况,体现了按流量计费、针对业务计费和路由器拥塞计费的准动态计费策略,该方法所包含的步骤为:
步骤1).用户登录,接入网关上的用户认证和配置模块对用户身份加以认证,非法用户拒绝登录;合法用户成功登录,用户认证和配置模块按照数据库中的用户SLA信息配置用户参数;这里的参数包括:是否同意降级、用户可以使用的业务类型和该业务对应的服务等级及QoS参数;
步骤2).用户提出业务请求,接入网关上的业务感知模块接收该网络业务流,并对业务流进行协议分析,提取出“源、目的IP地址,源、目的端口,协议类型”五元组和关键净荷,以流的形式交到流量识别层;
步骤3).分组头部识别子模块匹配协议分析层发来的五元组,进行端口匹配或协议头部匹配,如果识别成功,则转到步骤8),进行接纳控制;否则,继续;
步骤4).若匹配不成功,进行流量特征识别,对关键净荷信息使用应用层深度检测DPI子模块进行识别,若识别成功,则转到步骤8),进行接纳控制;否则,继续;
步骤5).若流量特征信息识别不成功,则进行连接特征识别,主要通过IP地址和端口的相应关系识别P2P业务,若识别成功,则转到步骤8),进行接纳控制;否则,继续;
步骤6).若连接模式识别不成功,则进行拓扑特性识别,通过识别该业务不同通信实体之间的连接拓扑特性来识别此业务,若识别成功,则转到步骤8),进行接纳控制;否则,继续;
步骤7).若上述步骤都不能确认用户申请的业务类型,则根据用户默认的服务级别进行接纳,转步骤9);
步骤8).根据识别出的业务类型查询用户的SLA配置参数,得到用户当前使用业务的服务等级;
步骤9).开始探测,探测时,根据探测数据包到达目的网关的跳数、主干路由器的拥塞状态等因素利用如下公式计算传输当前业务等级单个数据包的费用p,
其中,M为当前的业务等级因子;L为数据包到达目的网关的跳数;F为每一跳的费用;K为拥塞等级因子;Y为服务权重Y=ri/μi,ri为第i级服务的带宽;μi为第i级服务队列中数据包的转发速率;ri/μi相当于数据包占用带宽乘以数据包期望获得的服务时间;u为拥塞单价;n为数据包所经过的发生拥塞的主干路由器个数;
步骤10).进行接纳判断,将单个数据包的费用p与用户在SLA中签订的费用上限进行比较,确认数据包能否被接纳。如果能接纳,则转步骤11);若不能,判断用户是否签订降级,若同意降级,则降低一个服务等级,转步骤9),按新业务等级重新探测;若不同意降级,则拒绝接入,转步骤16);
步骤11).接纳后,根据QoS原则对当前业务进行合理的的资源分配和业务调度;
步骤12).业务流离开接入网关,进入到网络环境之中,直至到达对方网关,最后转发到目的主机;
步骤13).在用户使用业务的过程中,为了准确计算在当前网络状态下的费用,需要及时了解网络的变化情况,则接入网关进行周期性的探测,重新计算在当前网络状态下传输单个数据包的费用,当超过A签订的数据包费用上限时,将当前网络状况反馈给接纳控制模块;
步骤14).同时,在用户使用业务的过程中,接入网关周期性地把流量等计费相关数据存入计费数据库;网络节点和目的网关分别有一个计费模块用于数据采集、处理,将信息记入计费数据库,计费模块根据单个数据包的费用和本周期流量实时计算本周期的费用;
步骤15).用户完成业务,计费模块根据如下公式计算出用户本次服务的费用C;
其中,p为经探测得到的单个数据包的费用,为保证费用的准确性,p的值会根据周期性探测的结果而变化;R为接入网关上一个周期内记录的数据包个数,则p×R为一个周期内的费用;m为本次服务包含的计费周期的个数;
步骤16).全过程结束。
有益效果:与现行的计费方案相比,本专利设计的基于数据包的计费策略具有以下特点:
(1)结合用户服务等级以及用户对应业务的实际需求分配不同的网络资源,并且考虑了网络拥塞水平;
(2)综合传输流量、服务级别和带宽以及网络实时拥塞情况等因素进行计费,因而更加公平和合理;
(3)能够根据网络拥塞状况动态调整数据包传输费用,具有良好的网络拥塞控制能力;
(4)可以有效使用网络资源,保护ISP和用户双方利益。
基于数据包的准动态计费策略,能够根据网络的服务级别、业务的实际带宽需求、网络拥塞情况进行周期性反馈和动态调整,在低流量网络拥塞状态下可以保证网络正常业务的运行和服务质量;在大流量网络拥塞状态下能够迅速调整,解除网络拥塞状态,最大限度地满足用户提出的服务质量需求。本专利提出的计费方案不仅计费准确、公平、合理,克服了传统计费方式的不足,而且用户可以根据业务需要自主灵活的选择接入带宽和服务质量,同时服务提供商也可利用价格杠杆,调节网络流量,合理配置网络资源。具有十分良好的应用前景。
具体实施方式
一、体系结构
图1给出了计费方案的拓扑模型,其核心思想是首先用户发送数据包至网关申请网络资源。网关检查用户是否合法,并查询其所属用户等级;同时网关上运行的业务感知模块感知用户业务类别及对应的网络资源需求;之后接入网关发起路由数据包探测和计费。探测和计费流程为:首先,接入网关先发送几个探测包,在经过主干路由器时,路由器将路由信息记录到探测包的数据区,直到到达目的网关。目的网关收到后再将其反馈给接入网关的数据库中,以此得知某个业务数据包的路由路径。在数据库中(记录了用户的QoS参数数据及用户签订的数据包费用上限值)根据IP报头的DSCP值查出该业务数据包所对应的费用,结合跳数(利用了IP报头的TTL(Time To Live)栏位字段)以及主干路由器上的拥塞参数(通过价格因素动态调整用户行为来控制网络拥塞,主干路由器拥塞是造成网络拥塞的一个主要原因)计算出这一次数据包所用的总费用,与数据库中该数据包所对应的用户签订的费用上限比较。若探测数据包的传输费用没超过签订的费用上限,则直接发送后续的数据包,记录流量;同时,为保证费用的准确性,进行周期性的探测;若探测数据包的传输费用超过签订的费用上限,则继续进行多次探测和判断(设定的次数值可以调节)。然后,在结合用户级别和用户业务需求的基础上,根据现有网络资源对用户分配资源。各个用户发出的数据包每经过一个路由器都会按照用户请求的QoS参数分配网络带宽和路由调度,同时路由器会对这次路由分发的网络资源计费并周期性地反馈给数据库。最后,数据库不断地把新产生的计费信息发送给各对应的ISP,作为ISP对用户收费和ISP之间结算的依据。
其中,在接入网关上所完成的动作如图2所示。用户事先与运营商签订服务合同,运营商将用户信息存入用户信息数据库。用户登录时,向接入网关发出请求,接入网关首先通过查询用户信息数据库对用户进行身份验证。用户使用业务时,若通过权限验证,接入网关对用户的业务进行分类识别,感知出不同的业务。接着进行数据包探测,判断是否接入,以用户签订的数据包的费用上限为参照,如不超过,则接入用户业务,并对业务进行相应的处理;如超过,则采取相应的措施(如降级处理、拒绝接入)。用户接入之后网关进行资源分配、队列调度、数据采集和流量统计等工作,最后将业务数据流向目的地发送。
图2中,主要模块包括:①登录认证模块:查询用户信息数据库对用户身份进行认证;②业务感知模块:对业务进行分类识别;③探测模块:进行数据包探测,判断是否接入;④资源调度模块:通过查询QoS数据库比较用户的QoS需求和网络资源来对用户的业务进行资源分配和队列调度;⑤流量采集模块:对数据进行采集和流量统计,以便计费处理。
二、方法流程
1、计费实现流程
整个计费系统包含的主要模块及相应的实现流程,如图3所示。共有3个计费模块,接入网关上的流量统计模块、网络节点上的路由采集模块和计费数据库上的计费模块。前两个模块的职责主要是数据采集和预处理,最后一个模块负责计费,生成实际费用,并进行结算处理。
2、业务感知策略
在单纯基于用户服务级别的网络中,网络服务商根据用户的服务等级和现有网络的可用资源进行分配。由于没有考虑用户业务的实际需求,从而可能造成有限网络资源闲置。如,当高等级用户使用低网络资源要求的业务时,由于网络运营商过多分配网络资源,其中部分资源空闲。因此,我们考虑将用户的服务等级和用户的业务实际资源需求有机结合,在接入网关中加入业务感知模块,对用户的业务进行感知,从而指导其后的网络资源分配和资源调度。
业务感知即区分网络中不同业务流,它是实施QoS策略和安全策略的基础,其基本过程是IP网络边缘设备根据业务流的特征、流标记以及流统计阈值触发特定业务的感知。按所使用的方法,业务感知可以分为静态感知和动态感知两类,其中:静态感知是根据业务所使用的网络协议、源目的端口、源目的地址进行业务感知;而动态感知则包括模式匹配感知和协议解析感知两种类型。静态感知是发展比较成熟的一种技术,我们采用如图4所示的综合感知技术。
3、本专利对路由器拥塞的定义
如果几个输入数据流需要共用同一个输出端口,那么在这个端口就会建立排队。如果没有足够的存储空间,数据包则会被丢弃。对突发数据流更是如此。增加存储空间在某种程度上可以缓解这一矛盾,但当路由器有更大存储量,拥塞只会变得更严重,而不是得到缓解,因为在网络里数据包经过长时间排队再完成转发时,它们早已超时,源端认为它们已经被丢弃,而这些数据包还会继续向下一个路由器转发,从而浪费网络资源,加重网络拥塞。
图5中给出了采用输入输出队列结构路由器中的分组处理流程。通常情况下,为了提供有效的QoS支持,队列管理都放在输出端。缓冲管理机制位于队列的输入端,负责管理系统中缓冲资源的分配,根据系统策略和到达分组的信息来决定是否允许其进入队列;而在队列的输出端,则有队列调度机制负责带宽分配和延迟调整,两者互相配合完成完整的队列操作。而在队列操作机制之前,根据系统采取的策略和控制算法,可以辅助以分组分类、流量整形/调节等机制来配合队列管理机制的要求。
4、网络中路由器拥塞参数的采集
SNMP网络管理系统采用的是传统的Client/Server结构,其结构如图6所示。SNMP网络管理系统包括以下四个部分:管理者(Manager)、管理agent(Agent)、管理信息库MIB(Management Information Base)、SNMP协议(管理者与agent间的通信协议)。
管理agent驻留在被管对象上,收集本地有关信息,并给MIB中的相应变量赋值,在接到管理者的请求时将这些值回传给管理者。管理者是整个管理网络的控制中心,它通过Get原语操作从agent中依次读取被管对象MIB中每个变量的值,从而全面获得当前网络运行状况,并通过决策采取相应的控制行为。必要时,可以通过Set原语对被管对象MIB的变量赋值,实现控制行为。
本网络中的被管对象是路由器。为了便于SNMP直接管理,节点必须能运行SNMPagent,每个agent都要维护一个本地数据库,存放其状态、历史记录支持其运行。对于每个被管对象,都有一个agent来对应。agent由管理者管理,其管理关系是N∶N的关系,管理者可管理多个agent。每个agent也可以由多个管理者共同管理。在本专利中agent收集的是路由器的拥塞信息,而管理者是接入网关上的数据库。
5、RED算法及计算
考虑到网络拥塞情况与数据丢包率有关,可参考具有拥塞避免功能的RED算法,如图7所示。RED算法通过计算平均排队长度发现初始的拥塞现象。RED路由器设有两个阈值:maxth和minth,对于每个新到达的数据包,计算平均排队长度avg的公式如下:
avg←(1—wq)×avg+wq×q
其中,wq在[0,1],wq是权重系数;q是采样测量时的瞬时排队长度。
当分组到达队列时,如果平均队列长度avg小于最小门限值minth,分组安全进入队列;当avg大于maxth,丢弃所有到达报文;加果平均队列长度avg位于minth和maxth之间,按如下公式计算分组丢弃概率Pb:
Pb←maxp×(avg—minth)/(maxth—minth)
其中maxp是当平均队长达到最大门限时的丢包概率,该值是一个小于1的数。
三、基于数据包的计费策略
1.单个数据包的费用
假设p为数据包费用,M为业务等级因子,L为数据包经过的跳数,F为每一跳的单价,K为拥塞等级因子,Y为服务权重,u为拥塞单价,则一个数据包的服务费为:
公式1
(1)M:当前业务等级因于,根据业务感知区分出来的业务制定。
(2)对于跳数L:为防止探测包所经路径中非主干路由器有所变化,可进行多次探测,取其TTL的平均值。
(3)对于每一跳的费用F:是由ISP根据网络负载和预期收益统计给出。
(4)对于拥塞等级因子K:其与分组丢包率有关,假设拥塞等级因子K是对应于不同拥塞级别Congestion的常数。网络拥塞可以根据分组丢包率统计划分为n个级别,并预先设定各个拥塞级别的Kj值。在实际计算时,根据网络提供的拥塞级别直接查表即可求得Kj。因为随着分组丢包率的增大,说明网络拥塞程度的增大,从而使数据包费用增加,我们可以采用分段区分的经验假设,即将分组丢包率划分为3个范围:
①当平均队列长度avg小于最小门限值minth时:K=0;
②当平均队列长度avg大于最大门限值maxth时:K=1;
③当平均队列长度avg在两者之间时:设分组丢包率Pb为a对应轻度拥塞,拥塞等级因子K=Ka;分组丢包率Pb为b对应中度拥塞,拥塞等级因子K=Kb;分组丢包率Pb为c对应严重拥塞,拥塞因子K=Kc。其中,a、b、c可由运营商根据网络统计数据给出;Ka、Kb、Kc反映了网络拥塞发生时的价格调整力度,简单情况下可设K=(avg—minth)/(maxth—minth)。
(5)对于服务权重Y:Y=ri/μi。
其中:ri为第i级服务的带宽;μi为第i级服务队列中数据包的转发速率;ri/μi相当于数据包占用带宽乘以数据包期望获得的服务时间。
(6)拥塞单价u的单位是;元/兆秒。
(7)n为数据包所经过的发生拥塞的主干路由器的个数。
2.连接的费用
一个连接的费用为:
公式II
其中,C为一个连接的总费用,p为经探测得到的单个数据包的费用,为保证费用的准确性,p的值会根据周期性探测的结果而变化;R为接入网关上一个周期内记录的数据包个数,p*R为一个周期内的费用;m为本次服务包含的计费周期的个数。
本计费策略将基于数据包和基于流量的方法有机结合,以探测包基于实际QoS的费用为参数,准确反应了数据包所享受的服务质量;后续的数据包只统计流量,计算出业务的总费用,使本计费策略计算简单、易于实施。
需要指出的是,本发明提出的技术方案,默认网络运营满足以下两个合理假设:
①骨干网络的路由组织是合理有序的。当数据包在网络中传递时,网络路由不存在故意迂回,所有数据包所经历的有限跳数是合理的。
②ISP运营网络是诚信的,其网络运营接受主管部门的监管(主管部门有权审查网管信息)以及用户的监督(用户有权审核网络计费详单),能自觉杜绝产生不合理的迂回路由数据包。
此外,本发明中,数据包的计费上限可以根据统计数据来合理确定。一般情况下,网络性能能够满足数据包的正常传输,不会因超过计费上限而丢弃数据包;只有在极端情况下,因网络突发故障导致数据包迂回,从而导致跳数增加和网络拥塞,可能超过合同中确定的计费上限。此时系统主动丢弃该数据包,一方面是避免给用户带来过于昂贵的传输费用,另一方面也是控制网络负载。
下面根据附图和实施例对本发明作更详细的描述。为了方便描述,我们假定有如下应用实例:一个与ISP签订协议的用户请求业务流,则其具体实施方式(如图3)为:
(1)用户A登录,接入网关B上的用户认证和配置模块对用户身份加以认证,非法用户拒绝登录;假定A为合法用户,则成功登录,用户认证和配置模块按照数据库中的用户A的SLA信息配置用户参数;假定这里的参数如下:
业务类型=FTP,服务等级=低级,带宽范围=0.2~1Mbps
业务类型=MPEG—1,服务等级=中级,带宽范围<=1.86Mbps,端到端延时<250ms,端到端抖动<1ms,分组丢失率<=10-2(未压缩视频),<=10-11(压缩视频)
.......
同意降级
(2)A请求某种业务(设为MPEG—1),B上的业务感知模块接收该网络业务流,并对业务流进行协议分析,提取出五元组(源、目的IP地址,源、目的端口,协议类型)和关键净荷,以流的形式交到流量识别层;
(3)B上业务感知模块的分组头部识别子模块匹配协议分析层发来的五元组,进行端口匹配或协议头部匹配。如果识别成功,则转到(8),进行接纳控制;否则,继续;
(4)若匹配不成功,B上的业务感知模块再进行流量特征识别,主要是对关键净荷信息使用DPI(应用层深度检测)子模块进行识别。若识别成功,则转到(8),进行接纳控制;否则,继续。
(5)若流量特征信息识别不成功,则进行连接特征识别,主要可通过IP地址和端口的相应关系识别P2P等业务。若识别成功,则转到(8),进行接纳控制;否则,继续;
(6)若连接模式识别不成功,则进行拓扑特性识别,可以通过识别该业务不同通信实体之间的连接拓扑特性来识别此业务。若识别成功,则转到(8),进行接纳控制;否则,继续;
(7)若上述步骤都不能确认A申请的业务类型,则根据A默认的服务级别进行接纳,转步骤(9)。
(8)根据识别出的业务类型MPEG—1查询A的配置参数,得到A使用MPEG—1业务的服务等级(中级);
(9)开始探测(图3中探测1)。探测时,根据探测包的跳数和主干路由器的拥塞状态等利用公式I计算传输MPEG—1业务中等级单个数据包的费用。
(10)进行接纳判断。将单个数据包的费用与A在SLA中签订的费用上限进行比较,确认数据包是否能接纳,如果能接纳,则转(11);若不能,判断A是否签订降级,若同意降级,则降低服务权重Y为下一等级,转(9),按新业务等级重新探测;若不同意降级,则拒绝接入,提示A不能提供服务,转步骤(16);
(11)接纳后,根据QoS原则对业务进行合理的的资源分配和业务调度。
(12)业务流离开接入网关B,进入到网络环境之中,直至到达对方网关,最后转发到目的主机。
(13)在A进行业务的过程中,为及时了解网络的变化情况,准确计算在当前网络状态下传输单个数据包的费用,B进行周期性的探测(图3中探测2),重新按公式I计算单个数据包的费用。当超过A签订的数据包费用上限时,将当前网络状况反馈给接纳控制模块。
(14)同时,在A进行业务的过程中,接入网关周期性地把流量等计费相关数据存入计费数据库;网络节点和目的网关分别有一个计费模块用于数据采集、处理,将信息记入计费数据库。计费模块根据单个数据包的费用和本周期流量(数据包数)实时计算本周期的费用;
(15)A完成业务,根据公式II计算出A本次服务的费用。
(16)全过程结束。