通信网络的制作方法

文档序号:7586279阅读:118来源:国知局

专利名称::通信网络的制作方法
技术领域
:本发明涉及一种通信网络,尤其是涉及在该网络内的收费机制,它包括本申请人1998年6月5日提交的待审的英国专利申请9812161.9中所揭示和声明的权益(申请人参考号A25547),以及更早的申请的内容结合在此作为参考。在常规通信网络中,如国内PSTN(公共交换电话网),网络资源的很大比例部分要用于测量网络的使用并对其进行记帐。研究表明这些资源将消耗电信公司运行费用的6%。而因特网则一般地不为各个客户溶合测量和记帐装置。相对于传统的电话网络来说,缺少用于支持测量和记帐所要求的网络基础结构会降低因特网的运行费用,并有利于因特网的快速发展。但是,缺少合适的记帐装置在由因特网所运载的流量特性方面却有很大的缺点它鼓励了网络资源的浪费使用,减少了在网络基础结构上的投资以支持新的应用要求的的动机,如服务质量(QoS)所保证的。发明概述按照本发明的第一方面,提供了一种操作通信通信网络的方法,包括根据在用户终端处检测的网络负载而改变该用户终端的网络使用的资费。在该文档中,对改变资费的参考包括改变价格,如作为堵塞参数的函数。资费的结构是不能改变的。本发明提供了一种对网络使用收费的方法,其涉及很少或不涉及网络的开销,此外能反映网络负载的本地变化,这是通过检测在用户终端对网络的测量来获取的。该终端将反映那些在特定时间内用户终端正在使用的资源。例如,在包括多个子域的联盟数据网络中,如因特网,在从一个子域上的用户终端到另一个子域上的服务器的路径上的某一路由器存在过载时,该用户终端可能试图访问该服务器。这时,即便网络的平均负载作为整体很低,由该用户终端所感觉到的负载是很高的,该用户终端的网络使用资费就要增加以反映相关网络资源的缺乏。类似地,其它的试图通过同一路由器访问数据的终端也会感觉到网络负载很高,也会将它们的资费作出相应的增加。对于在资费方面相对急剧的增长,至少某些用户终端会选择放弃或延迟那些有问题的网络资源,并由此减缓路由器的负载。本发明的该方面也可以用于其端用户仅是被通知价格和记帐的系统,而收费是通过网络提供商来完成的,以及用于其端用户测量他们的使用并把该信息提供给网络提供商的系统,以及用于其端用户既测量使用也计算应付给网络提供商的费用的系统。该方法包括在用户终端检测取决于网络负载的网络性能参数,并根据该网络性能参数改变资费。当网络是一个数据包网络时,那么网络性能参数可以是在数据源与用户终端间传送的数据包的丢失数量。该方法的优点在于,它适于使用数据包网络中已有的堵塞控制机制实施。例如,在因特网中,路由器通过丢弃数据包来响应堵塞,然后,使用TCP(传输控制协议)的用户终端检测包损失并相应地在该终端处控制堵塞窗。本发明可以使用所检测的包损失来触发适用于该网络的资费的增长,这可以伴随由接收终端发送堵塞信号给数据源。在可替换的和优选的方法中,当在网络内检测到堵塞时,可以产生一个明显的堵塞信号并传送给用户终端,并且在用户终端处对明显的堵塞信号的接收可以随后触发该资费的增长。该方法的优点在于,相应的堵塞信号可以在网络性能出现重大下降之前而产生,因此就很容易地维持报务质量。最好,该明显的堵塞信号在通信网络上与数据包一些携带。最好,当在一个路由器上检测到堵塞时由该路由器将一个明显的堵塞信号写到一个包中。作为一替换,该堵塞通知信号可以是在该路由器产生并发送回该数据源的源熄灭信号。最好在资费增长与所检测的网络负载间存在着一个非线性关系。最好,当首先检测到负载时,该方法首先进行一个相对小的增长,随后,如果该堵塞一直存在,再进行至少一个相对较大的增长。这样的行为可能预先编程在该资费算法中。以该方式,可以避免网络的摆动,同时可发保证做出足够的增长以便对网络资源的需求具有期望的影响。最好,该方法包括利用用户定义的价格标准对在用户终端处的决策代理进行编该程,以及将利用该资费计算的价格与所述的价格基准进行对比。例如,如要每包收费为零或小于一个预定的阈值,则该决策代理可以被编程为进行数据通信。然后,如果堵塞导致收费增长超过该阈值,则中断数据通信并且决策代理修改用户终端的操作。例如,一旦超过了费用阈值,该决策代理可以减缓通信。随后,该用户可以选择继续进行通信,或者也可以选择放弃试图访问来自一个特定源的数据。该决策代理也可以用这样一个规则来进行编程,该规则涉及多个同步传输的整体价格,并使不同的权重符合各自的应用要求。最好,该方法包括通过该通信网络该一项资费分布到多个终端,并在每一个终端处利用该资费计算该终端对网络使用的收费。在这种情况下,最好该方法包括由网络操作员实施的、间歇地对用户终端与网络间的流量进行采样的步骤,并且作为采样的一部份,记录影响该用户终端的网络负载。对于所采样的流量,对比由该用户终端计算的收费和所期望的收费,并据此而检测任何偏差。记录网络负载的步骤可以涉及如记录包丢失或明显的堵塞通知(ECN)或源熄灭消息。本发明也包括由按照本发明的第一方面的方法操作的网络以及在这样的网络中使用的用户终端、网络路由器和其它的网络节点。附图描述下面仅通过例子的形式参照附图详细描述采用本发明的系统,其中图1是采用本发明的网络的示意图;图2a和2b是表示资费函数的图表;图3表示不同服务字节的格式;图4是表示与图1的网络一起使用的收费结构(archtechture)的部件对象的示意图;图5表示在图4的计费对象间通过的数据;图6是表示在一个用户终端和一个网络域内的协议堆栈的示意图;图7是表示资费随时间变化的图;图8a-8e是软件实施记费和测量对象的类图;图9是表示与图8a-8e的对象一起使用的图形用户接口的图;图10是软件实施资费对象的类图;图11是表示替代实施例的图;如图1所示,一个通信网络包括多个网络子域2A-C,该网络子域可以处于彼此不信任的不同的操作员的控制下。该网络子域通过网关路由器3、4互连。在本实施例中,该通信网络是因特网,并支持单点和多点传送因特网协议(IP)及相关的协议。用户终端5通过一个公共交换电话网(PSTN)和一个访问路由器7连接到子域2A。一个单一的堵塞测试被施加到该访问节点上的流量。网关路由器3、4和访问路由器7是商业上可得到的设备,如CISCO的7500系列路由器以及CISCO的AS5800系列统一访问服务器。其它用户终端被连接到该网络上,包括被Java使能的移动终端8和数据服务器9。该用户终端5可以通过LAN连接到一个计帐服务器。该计帐服务器可包括一个下面将描述的、用于从该用户终端接收测量数据的计帐对象。除了下面描述的本地资费变化机制,该网络可以使用基于网络的多个资费联合(band)的控制。一个网络管理平台连接到每个子域。每个网络管理平台可以包括,例如,包含有运行UNIX(Solaris)和网络管理程序的SPARC工作站的计算系统。该网络管理平台10主持管理本体(entity)和资费本体。该网络管理平台使用SNMP(简单网络管理协议)与连接到各子域的所管理的装置内的代理100进行通信,该管理平台监视在各个子域内的网络资源的整体负载,这一点将在下面描述,相应地调整网络使用的资费。该网络管理平台(NMP)指示代理监视该装置,并以有规律的间隔汇报所汇集的结果给该NMP,因此该NMP可以监视所有报告的集合。该资费数据被传送给在其它子域内的平等资费本体,也传送给用户终端。该资费数据使用如距离向量多点传送路由协议(DVMRP)或独立协议多点传送(PIM)密集模式来进行多点传送。该资费数据信道基于SDP(会话描述协议)来进行声明和监视,SAP(会话声明协议)收费是在‘付费与显示’模式上来实施的。每个用户终端通过例如记数它通过该网络接口发送和接收的数据包以及在这些数据包中的数据数量(以字节形式)来监视它自己的网络使用。它使用通过网络接收的资费计算应归于该网络操作员的付款,并把相应的付款存进网络操作员的帐户。该网络操作员通过立即采样到或来自一个特定的用户的流量并将该使用与用户已付费的使用进行对比来管辖(police)该终端用户的使用。提供给该用户终端的资费可以被分成不同的易变性(volatility)的组合。该资费在网络操作员的控制下变化以反映该网络的整体负载。也就是说,如果网络负载很高,就可以增加资费以反映网络资源的缺乏。服务提供商可以提供由不同的服务级别协议和/或不同的价格易变性定义的不同的产品。例如产品A可以以固定的价格提供最佳的服务,而另一个产品B可以在一个可变的价位上提供最佳的服务。服务提供商可以根据下列参数调整产品价格服务提供商付给整销商的价格;竞争者的价格;当前网络的使用;对不同产品的相关的需求。响应这些参数的变化,可以以三种方式之一来进行资费的调整。首先,资费可以根据网络负载的本地观测来调整价格,而不必显式地从该提供商进行传送。该方法(下面将详述)需要在一开始(outset)建在该项资费内,并受限于唯一地取决于本地观测的价格变化。第二,该提供商可以通过调整的某些参数而调谐该项资费。当决策依赖于不能直接由该用户观测到的参数(如网络资源的整销价格的变化)时就需要这种调整。第三,该提供商可以完整地取代一个资费,当已有的资费不能适应所要求的变化时需要这种方式。上面描述的资费变化中的第一个有必要自动地实施,而第二类型的变化可以手动地来执行,或通过响应该服务提供商系统的观察而自动发布调整的代理来执行,第三种类型的变化可能要手动执行,因为替换新的资费一般地需要人工输入的设计元素。但也有可能根据一组特定的规则,使用代理来自动地为一项产品交换资费。该部分描述了一个我们实施的原型,以便说明该资费系统的概况。其设计特点包括●使用移动码代表资费和相关的用户接口部件;●使用可重复的多点传送宣告协议来有效地传送资费和资费调整;●使用动态类负载和反射以便接收和调谐资费,该原型包括通用Java类库和两个特定的应用程序,即,●提供商系统,允许提供商为多项产品引入、替换、和调谐资费;●用户系统,使用户能跟踪它们正在使用的产品所采用的收费。在多点传送的网络内该提供商系统服务于多个运行在不同的主机上的用户系统的实例。使用多点传送宣告协议来将通信资费变化从该提供商系统传送到用户系统。为了相对于该项资费的定义最大化其灵活性,我们选择利用Java类代表资费。该项技术也用于将用户接口部件提供给用户以便支持一个资费的行为的可视化。Tariff(资费)接口作为所有资费的基类,这就定义了一个单一操作getGUI(),它作为一个可以溶合进该用户的GUI的Java的SWING部件而返回。该GUI部件利用与该项资费相适应的技术可以使用户看见资费的行为。Tariff接口的子类建立了一套资费类型,每一套类型与一套不同的测量与输入参数相关,这些参数通过在GetCharge()方法的签名中列出它们而得到标识。例如,接口RSVPTariff将GetCharge()定义为接收n个RSVPTSPEC,允许定义基于RSVP保留BLB98的特性计算价格的资费。另一方面,接口PacketCountTariff将GetCharge()定义为接收包输入、包输出和当前的堵塞(一般作为丢包函数而测量)的测量,允许定义依赖于包计数和对堵塞敏感的资费。也可以填加其它的资费作为新形式的使用测量的出现。资费可以通过提供各种资费接口的实施来定义。例如,资费PacketCountLinear实施PacketCountTariff来计算与包计数成比例的收费。另一个资费CongestionSensitiveLinear以简单的方式工作,但是如果用户在出现堵塞时没有停留在规定的资费限制内,则要对其增加处罚收费。除了使用资费接口实施外,一项资费也可以使用其它的‘帮助器’类以辅助其操作,以及一个或多个用于用户可视化目的的用户接口部件。也可以要求一个提供商方的用户接口以便使能该提供商进行资费的调整。完整的资费描述包括一套Java类,其中一些指定给用户系统,而另一些则指定给提供商系统使用,用户方的类被约束(bundle)进一个Java存档(JAR)文件以便于提供商系统处理。为了配置新的资费类,提供商系统首先装载资费类,它在其执行条件中需要这些类,然后装载用户方的约束,对其进行串行化,并用一个密钥来签名,并使用一个宣告协议将其分发给用户系统,利用签名可以使用户验证所接收的资费是经过授权的。在接收到该约束后,每个用户系统验证签名(利用公共密钥匹配提供商的私人密钥),并且在宣告协议头标内规定的激发时间(可能很靠后,发几小时或几天)解包该约束,使用目标创建动态类装载器将类装进运行条件。生成所接收的资费类的一个实例,并将其安装在先前资费的位置处。如果该资费有一个用户接口部件(通过调用资费对象的GetGUI()方法),然后替代先前资费的用户接口。在用户接口上的变化发送服务以通知用户该资费已经改变了。资费调整涉及一个操作的远程调用,该操作对于当前有效的资费来说是特定的。这意味着一个用户系统在事先接收该资费时不能知道该操作的签名,也就是说,该操作不会出现在对该用户系统是已知的任何资费接口中。为了解决这个问题,使用由Java支持的‘反射’特征。为了散布资费调整,该提供商生成一个Invocation(调用)对象的实例,该实例存储了要调用的操作的名称,以及要提供给它的参数,该对象然后进行串行化、签名和使用该宣告协议进行宣告。当用户系统接收和验证了该调整后,该调用对象被去串行化,并通过使用反射来调用所描述的操作而施加给该当前的资费。为了简单化该宣告协议,要求该调整是等幂且完整的。等幂保证如果不只一次地进行一项调整则该资费不会被反向影响。完整则意味着调整可以确定资费对象的整套参数,因此,一项调整可以完整地消除任何前面施加的调整的影响。该用户系统可以通过每秒重复调用由资费支持的GetCharge()操作而施加该资费,并把该返回的值加到累积收费。提供给GetCharge()的参数依赖于当前有效的资费的种类。例如,如果该项资费是实现PacketCountTariff,则要求对过去的秒内的入站包、出站包和堵塞进行测量;但如果该项资费是实现RsvpTariff,则需要描述当前保留的仅有的TSPEC。这意味着一个用户系统可以仅订阅一个产品,如果它能提供由与帽子产品相关的资费所要求的参数。GetCharge()方法的每一次调用都会导致对特定资费用户接口的更新。例如,在CongestionSensitiveLinear资费中,提供给GetCharge()的使用参数用于更新资费和堵塞的图形显示。该宣告协议用于将被串行化了的资费和调整由一个提供商系统传送到多个用户系统。假定用户系统的数量很大,并采用可重复的多点传送方案。由一个提供商提供的每个产品都被分配一个用于宣告目的的多点传送的信道。用户系统听取对应它们正在使用的产品的信道。在当前的实施中,假定每个用户系统都具有针对它所感兴趣的产品的多点传送地址方面的知识。对于每一个产品信道,提供商重复性向其宣告当前的资费和最新的调整模式(如果有的话)。每一个宣告都携带一个版本号,该版本号在每次改变该宣告时都增加。仅当检测到版本号变化时用户系统才处理该宣告。如果一个新用户加入到一个信道,它将在处理任何调整宣告前一直等到接收了一个资费。而且,仅当它的宣告版本大于当前的资费时才进行该调整,由此保证一个丢失的资费宣告不会导致一个随后的对旧资费调整的应用。当网络管理平台的对资费的中央化监视和控制在响应该网络的负载的全局变化方面是有效时,以这种方式很难处理本地化的堵塞,很难使一个价格增长信号以这样一种方式进行多点传送,该方式是指信号仅由那些试图通过堵塞点传送包的进行接收,这就要求对因特网上每一个元素都有一个独立的多点传送的传输。可替代地,可以使用由本地资源负载触发的价格增长的集合。但这意味着价格增长信号会发送给并不使用该堵塞资源的用户,依此,就有必要让价格增长信号衰减,降低价格增长的能力来减少对堵塞资源的需求。为了克服这些困难,安装在用户终端上的资费算法被配置成自动地响应正被该终端使用的网络资源的堵塞,每一个算法包括一个根据所检测的堵塞的级别而改变网络使用价格的函数。该函数可集成在主资费算法中,或者作为下面将要描述的一个例子,可以是一个独立的算法,用于计算要加到按照主资费算法计算的价格上的额外费用。该主资费算法将价格P作为多个质量参数Q1、Q2、Q3的函数而计算,在此,例如,Q1是针对在用户终端与该网络间的接口上通信的包的规定延迟,Q2是用于传输的预留带宽,而Q3是对应于最大容许级别包损失的规定可靠级别。价格P由下式给出P=f(Q1,Q2,Q3)按照一个质量参数Q的定价(pticing)函数的例子在图2a中示意性地给出。堵塞资费算法计算一个额外费用ΔP,它是一个或多个堵塞参数C的函数ΔP=f(C1,C2…)堵塞参数可以测量一个用户终端在任意时间内的使用的资源的负载,在本例中,损失的包与接收的包的比率用为堵塞参数。该参数对于象使用TCP(传输控制协议)、或在UDP(用户数据报协议)上的RTP(实时协议)的包是很容易计算的,因为这些包包括一个序列号。图2b给出了一个生成额外费用的函数的例子。在这种情况下,额外费用大概是按照堵塞的指数函数形式增长,因此,在较低的堵塞级别下,会对一个较小的额外费用进行收费,而同时如果堵塞仍然在增长,那么,在较高的堵塞级别下,额外费用就会增长得特别快。在可替换的实施中,一个很明显的堵塞信号就会被网络内的堵塞路由器加到发送给该用户终端的包。不管堵塞是不是通过包丢失明显或暗中地用信号通知,该价格算法不可能直接地对堵塞指示进行收费,相反,它可以对在用户响应堵塞指示时没有平分(halve)该堵塞窗进行收费。平分该堵塞窗口就是平分传输速率,这是在TCP以及其它兼容堵塞控制协议中使用的对堵塞指示的标准响应。传输速率的变化可以由该提供商以及在用户终端处测量,仅管这对路由器处理资源来说是一个很重的负载。如果提供商仅对某用户采样以便审核其自己的测量,这就会导致一个可接受的负载。仅管在此仅描述一个单一的主资费和额外费用,在实践中,不同的子域以及与每一个子域联系的不同的服务提供商都可以有不同的定价结构,并具有不同的主资费和额外费用。但是,对于所有的子域,在网络负载级别和堵塞信令之间都有一个通用的关系。此第二实施的操作将在下面的利用一个差分服务运行的网络条件中进行描述,该差分服务在因特网工程任务协会草案“有差分服务的运行模式和定义”以及DavidDClark(MIT)的论文“因特网中费用分配和定价模型”中有所描述,这些都可以在因特网上的MIT站点URL:http://press.umich.edu/jep/works/clarkmodel.htmlk上提供。在实施差分服务的网络内,节点被配置成可以区分包以便提供不同级别的服务。这种能力可以用于调和对延迟敏感的数据,如由IP电话客户产生的数据,与其它数据相比更高的优先级,如电子邮件数据。在网络边缘,例如在运行IP电话客户的客户终端处,包含在每一个包头内的TOS(服务类型)八位位组内的各个位可以设置成指示相应的服务级别,这些位可被网络内的路由器使用以确定如何处理相关的数据包。以这种方式使用的TOS八位组被称作为DS(差分服务)字节。在图3中示出了差分服务字节的格式。标有‘IN’的零位指示该包是在所定义配置文件内还是外;标有“PHB”的1-5位定义一个‘每跳数行为(per-hop-behaviour)’,也就是说,它们指示例如一个路由器如何处理该包,例如,使其符合较低或较高的优先级;在此特定的DS字节形式中,6-7位用于明显地指示堵塞(ECN)。设置这些位中的一位来指示是否在包的路径上的路由器能设置ECN字段,而另一位用作在出现堵塞或当出现潜在地会导致堵塞的负载时被设置(由能设置ECN的路由器设置)的标志。随机早期检测(RED)算法目前在路由器上已实施,这些算法会测量路由器的包缓冲区内的平均队列长度。计算其指数移动平均。当平均队列长度超过一个预定的阈值时,该路由器发送信号通知发生了堵塞。常规地,该信令的发送是简单地通过丢掉一个包来实施的。但是在ECN方案中,该路由器不是通过丢掉一个包而是通过在一个包的头标部份设置一个ECN位来指示堵塞发生的。这是概率性完成的即仅有通过路由器的的包被加以标记。这种被加以标记的包的概率随着平均队列尺寸增加而增加。在队列增加到路由器缓冲区满的较少见的情况下,这些包被丢弃,而不是设置一个ECN位,此时对所有的剩余包设置ECN位。在操作中,如果客户终端5正访问服务器9上的数据源,堵塞就可能发生在如连接了网络子域2B和2C的路由器4上,路由器4中的类似RED的算法检测路由器缓冲区的队列长度(利用指数移动平均所计算的)是否超过一个预定的阈值。相应地,从服务器9到客户终端的一些数据包具有由该路由器9设置的DS字节的ECN位,以便标记已发生了堵塞。在用户终端读取输入包的头标中的DS字节。计算包含被加以标记的ECN位的包的数量的移动平均,该平均随后提供堵塞参数C1,该参数用于计算额外的费用ΔP=f(C1)通过把由主资费算法确定的价格与额外算法确定的价格加在一起来计算用户的整体价格PTOTPTOT=P+ΔP整体价格被传递给运行在客户终端上的费用决策代理,该费用决策代理用用户定义的规则进行编程。这些规则可能会要求,只要在某一段时期内的平均整体费用低于一个预定的阈值,如每分钟0.01英镑,则该费用决策代理应授权该系统进行一个连接,以及当费用高于阈值时,该费用决策代理应挂起一个连接并警告该用户其费用已超出了阈值。可替换地,如前面指出的,该费用决策代理也可以同时处理几个应用,并且也可以编程为随着针对利用其中一个应用访问的数据源的额外费用增加而减缓该应用。对于某些条件下的一些用户,网络使用资费的变化性可能会引起一些问题。例如,一个用户可能期望规划一个多点传送的视听会议,具有比如说20个与会者,以及用户想为每一个与会者支付网络的使用费,该会议可能事先规划为一天或更长时间,但由于资费是随时间而变化的,在规划会议的时间点,该用户可能并不知道会导致费用。本发明的优选实施为用户克服了该问题,并为网络提供商提供了一个附加的收费源,这是通过采用另一个资费来实现的。该项资费为一个给定用户终端定义了一个针对价格稳定性的额外费用,额外费用的值随着所要求的稳定性周期持续时间的增加而增加。在参照上述的例子中,事先规划一天会议的用户参照当前资费确定所需要网络的当前费用,包括任何当前可用堵塞额外费用,然后参照另外一个资费确定用于将当前值处的费用维持一天的时间的额外费用。然后,如果用户决定使用该固定的资费,则从用户处发送一条消息给网络操作员,该消息可通过例如为各与会者之间的音频与视频数据流规定IP地址和服务级别而标识有问题的数据流、用户正在订立合同要求一个固定周期的当前时间、该固定周期所需要的持续时间以及一个针对该消息的标识码。可选地,具有这些细节的该消息可以用一个合适的、用密码写的函数(如MD5)和最初传送给提供商并随后用于校正记帐数据的散列值进行跟踪。随后对于规定周期的持续时间,例如在本例中一天的情况下,用户可采用固定的资费。在用户自己负责产生记帐数据并计算该网络使用的收费的系统中,用户使用该固定的资费计算收费,并将计帐数据连同针对该固定资费合同的标识码返回给网络操作员。本发明的该方面并不是仅仅用于在响应检测到堵塞时在本地实施资费变化,也可以用于例如由网络操作员来做出这种资费变化的系统。针对稳定性额外费用的资费可以与上面针对其它资费讨论的同样原方式,通过多点传送由位于网络操作员平台的资费本体分布到用户终端。与其它资费一样,不同的资费和可选的不同的稳定性周期可以施加到不同的业务级别。对于象前面段落描述的情形,不同的业务级别可以用于多点传送会议所需的音频和视频数据流的不同元素。图2c给出了一种可用的稳定性额外费用的资费,该资费可以嵌入Java函数多路广播给用户。曲线C作为另一个辅助算法传送给用户终端,该算法有助于辅助算法。用户可以选择一个价格稳定性周期并计算在该点价格上的额外费用,这就要求使用曲线C。曲线B是在这样一个特定情况下选择的稳定价格的一个例子,一旦稳定周期过期,则可以在此时在该点价格之上以额外费用购买一个新的。为了购买一个价格稳定周期,用户可以声明所要求的周期以及施加给其提供商的地址范围。它也可以要求一个地址(因特网电话呼叫一个单个人)或一个地址范围(如对于一个视频会议)。某些有风险防范意识的用户可以对于所有时间的所有地址要求稳定的价格。为了便于描述,前述的部分在响应堵塞时独立地处理了本地资费的变化。在实际中,该机制也可以与其它的对堵塞的响应结合在一起,以及与资费中其它的变化源结合在一起。而且对于不管堵塞进行传输的决策要求在传输两端的双方都同意。考虑到数据源、网络、路由器和数据接收器的整个系统,响应本地检测的堵塞的资费(也称为罚款)增加的实施会作为最后手段,其它响应按照下列序列号首先进行实施1、围绕堵塞的网络再路由;2、网络从包含最佳服务的低级服务(在相关的QoS中的相关决策中较低的)中借用性能;3、网络引进额外的性能(可能是自动地)4、端系统确定该堵塞是在共亨网络上,而不只是在该访问链接或端系统上;5、端系统将QoS规格设置为更高的级别(如果比忽略在当前级别上的堵塞的罚款更便宜的话)。6、端系统决定有必要忽略该堵塞,假定这样做的罚款可能会很高的话。7、两个(所有)端系统都同意忽略该堵塞。一般地在步骤4产生一个ECN信号,步骤1-3是在该信号的产生之前完成,而步骤5-7是信号产生之后。在进行一个连接以及为此连接而付费之前的最后的一步是在双方之间建立一个协议。相应地,当用户终端通过一个接收明显的堵塞通知或检测到相关的参数如包损失而检测到堵塞时,该用户终端将这一事实发送信号回给每一个其它的端系统。因此在本实施例中,客户终端5发送信号给数据服务器5,通知已经发生的堵塞。该服务器是按照一定的规则来编程,其在用户处可以作为一个代理来实施,并决定了对这样一个信号的响应。例如,服务器可以拒绝在这些条件中的服务。如前面相对于图1所描述的,在本实施例中,资费是通过该网络从网络操作员多点传送给用户终端,并使用一个‘付费和显示,的进程来进行收费。图4a和4b给出一个实现本情况的收费结构的对象。图4a给出了一个较高级别的对象,而图4b给出在软件实施图4b的结构中使用的部件对象。在图4a中,以该图的一半给出了标有‘用户’的用户终端上的对象,而在访问路由器7上的对象和相应的网络子域是以标有‘边缘网络’的图形的一半来表示的。在用户终端上的对象包括一个会话控制对象S,一个客户商业规则对象BC,客户定价对象PrC,QoS字处理器Q,客户记费对象ActC和一个用户测量对象MC。该商业规则对象BC接收关于涉及付费责任的会话方面的信息以及接收来自定价对象PrC的当前定价数据。该客户商业对象在用户策略控制下对使用哪一个能收费的服务、以及使用多少可收费的服务做出决策,该项决策被馈送回QoS管理器Q,该管理器决定采用哪一种机制来达到该要求。该QoS管理器然后控制用户测量对象MC来确定要测量流量和服务的哪一方面以及忽略哪一方面。该测量对象然后记录流量的所选择的方面,例如计数用户终端接收的包的数量以及针对这些包的QoS的级别。这些数据连同当前的资费,包括用于堵塞的所有额外费用,被用户终端用于确定可付给网络操作员的收费。该测量对象MC也用指令进行编程,该指令确定它将数据传送给用户计费对象ActC的频率,该用户计费对象ActC将付费传递给在网络提供商的域内的计费对象Actp。在用户终端上的计帐对象可以使用一个小的加密平文件(flat-file)数据库来实现。在网络提供商方,可以使用一个更大的数据库来实施相当的对象,该数据库可以调整成处理比如成千上万的用户帐户。一个对象请求经纪人(ORB)可用于在用户方对象与该网络方对象间通信,这可以通过采用商业上可用的工具如lonaTechnologiesplc的ORBIX(商标)来实现。在网络提供商方,也就是在用户终端连接的子域内,用户的流量由M的版本来测量,标记为MP,但是仅是在采样的基础上由管辖函数PO来确定。也就是说,网络操作员仅是间歇地对用户的流量进行采样。PO控制在网络的何处进行测量以便捕获所有的特定的用户流量。一个大块(bulk)测量函数MB负责报告在路由器队列长度的移动平均中反映的、汇集的流量级别给定价对象PrP,大块的测量一般地是从整个提供商域搜集到一个中央化的定价函数(为了可靠会被复制)。PrP从该网络提供商的商业对象BP设置考虑了该商业规则的价格,和由Mb报告的当前流量的级别,以及来自相邻提供商(见下)的定价。定价函数PO将来自MP的样本测量与在ActP处接收的、作为用户自己测量的结果的记费消息进行对比。如果确定该帐户不够,它就可能会限制在访问控制网关Acs处服务,或者启动某些其它的惩罚。包装在该记费对象内的另一个管辖对象检查该帐户是否匹配在所签订合同的付款时间内的付款。最后,一致性匹配函数I在用户的标识(帐户,数字签名等)与它们的当前网络地址(一般地是由ISP提供的,不管是多点传送或单点传送)间进行映射。图5表示在记费对象间传递的数据。在本例中,该帐户数据包括帐户标识,帐单记录标识,服务类型标识,源地址,目标地址,资费标识和货币。而且,该付款数据包括钱的数量和付款的货币。图6给出了在用户终端与网络域的协议堆栈内的测量区域。理想地,在该区域内有两个测量点,在图中被标注了(a)的两点。为了便于实施,可以使用双方都信任的单个测量点(b)。这可以在例如一安全模块(如在用户终端上的用密码写的卡)内实现。作为替换,也可以在测量间可能具有偏差的不同点上进行测量。在网络上,实际的第一测量点是位于第一访问设备上,该设备对每一个用户检测网络层头标(c)(在此是IP)。ISP对该网络(d)不会测量得更深,因为它们的访问网络和系统会引入延迟和损耗。对于各个用户(如拨号连接),要测量的实际点是沿着网络层,但是在它们的端系统堆栈(e)内。理想地,这些测量点将位于每个堆栈中更低处,以便靠近双方间的接口,以及不太可能被堆栈的内容影响。但是在链接层(f-f)的测量将是不合适的,因为在网络层设置的某些可收费的参数将不断地在链接层帧内反映出来;网络级别的多点传送,端到端延迟要求等在链接层永远是不可见的。而且,当测量包尺寸用于带宽的计算以便避免明显的偏差时也需要忽略链接层头标,在此可能不同的链接技术交织在一起。在接收方向(堆栈之上),这种测量点的选择暗示着低层必须被定尺寸(缓冲区的大小,中断以及线程规划的优先级),以便应付高层的最严历的QoS要求。随着将帧剥离该物理媒介,该机器必须能把数据传递到堆栈之上,而不会存在任何机会导致在数据到达网络层之前把使用收费数据丢失(如由中断冲突引起的缓冲区溢出)。就是在网络层,要测量ISP的服务,也就是在网络层,QoS要求是最方便控制各种流的差分处理,因为它们进一步地要传递到堆栈之上(在端系统)或转发(在路由器上)。上面描述的测量对象可以使用作过相应的修改的、公众可以得到的测量软件如NevilBrownlee的NetTraMet系统来实现。这是一个软件测量器,它符合在RFC2063和RFC2064中描述的IETF因特网记费结构。该软件使用‘包嗅(sniffing)’技术对流量流增加包和字节的计数,这是由它们的端点地址定义的。仅管一般来说,地址可以是以太网地址,协议地址(IP,DECnet,Ethertalk,IPX或CLNS)或传输地址(IP端口号等),或所有这些的组合,但在本发明中仅使用了IP地址。要观测的流量流由一套规则来规定,它们是通过一个‘管理器’程序下载到NetTraMet的。流量流数据通过SNMP由‘搜集器’程序来进行搜集。图7表示由该网络的操作员确定的主资费是如何随时间而变化的。在图中,曲线A是计算的点价格以便反映在任意时刻的网络负载。曲线B是多个不同的资费组合中的一个。不同的资费组合具有不同的易变性,并且用户要对提供更大稳定性的组合付额外费用。利用由该网络携带的信道的一个层级将资费传送给用户终端。在用户与服务提供商间的初始合同,一个拥有分布在几个月的新宣告的单一信道地址(例如,对于合同变化或对于规定哪一个第二级别信道监听资费或用于下载新的代码来处理新的资费结构)。此第二级别的信道可以传送按小时间隔的更新,这些更新只是对大多数的易变信息简单地声明了第三级别信道的地址。这些第三级别的信道可以携带小于一秒的更新,在一个信道上可以携带针对这些服务的价格。为了获得最大的效率,这一个信道可以按照最高易变性分成几个信道,并在更稳定的周期重新集合成一个单一信道。表1到表7列出了用于实施两个不同的资费的Java源代码。表1的代码建立了在用户系统与由用户系统下载的一个资费算法间通信的操作。表2给了一个线性资算法,其中该项资费取决于发送的所有的包以及由用户接收的包和堵塞参数。表3给出了在本例中用于用户显示的代码。表4给出了用于在网络操作员服务器上显示资费的代码。表5给出了一个指数资费算法。表6产生了用户显示以及表7是该指数资费算法的操作员显示。通过下载Java代码来产生用户接口,该接口可以被适应成特定资费的要求,并且可以按照资费的变化而做出调整。仅管在联盟数据包网络如因特网的条件中描述了这些实施例,本明的很多方面可以与其它类型的网络优点一起使用,如在电话交换PSTN(公共交换电话网络)。图11给出了在该网络中所采用的本发明的一个实施例。在该网络中,用户终端8(在此例中被称为智能电话机,也就是电话机将微处理器与数据接口结合在一起)通过本地交换机82和主干交换机3互连到电话网络。主干交换机83通过一个通用信道SS7(第7信令系统)信令网络连接到一个服务控制点85,该服务控制点85负责执行高级呼叫控制功能。该服务控制点85也连接到一个操作支持服务器86,该服务器负责对操作记帐,并且在本例中控制对该网络的资费设置。OSS服务器和用户终端包括资费本体(TE)。固定的PST网络也通过一个网关87互连到一蜂窝GSM网络88。在蜂窝网络中的基站BS将信号传送给智能的移动电话89,在操作中,网络资费通过PSTN网络和GSM网络分布到用户终端。很方便地,资费可以再次地采用Java函数的形式,该函数可以在用户终端的处理器上执行,该Java函数可以按照因特网包而流化。在一种实施方式中,这些因特网包可以通过PSTN网络与GSM网络而自行分布。例如,这些包可以使用MTP(消息传送部份)传输层被包装和传输到主干交换机并向外使用带外信号传送到用户终端。可替换地,可以通过因特网在OSS服务器与用户终端间建立独立的数据通信。如在上面的例子,该网络操作员监视该网络内的资源负载,并将信号传输给在用户终端内资费本体,以改变资费来反映相关资源的其它的不足。用户终端可以自己监视网络负载并自动地产生资费中的变化。网络资源的使用可以由该用户终端本地测量,而不是采用在网络内实施的传统的记帐。网络操作员可以通过实施采样来管辖使用数据的测量,如前面所述的。表1<prelisting-type="program-listing"><![CDATA[//GeneratedbyTogetherpackagecom.bt.jungle.lsma.charging.pricing;importcom.sun.java.swing,JComponent;/**Thisestablishestheoperationsusedforcommunicationbetweenthecustomersystemandthedownloadedalgorithm.@authorMikeRizzo*/publicinterfaceTariff{JcomponenetgetGUl();FloatgetPrice(intpkin,intpkout,intcng);]]></pre>表2<prelisting-type="program-listing"><![CDATA[packagealgorithms.linear;importcom.sun,java.swing.JComponent;importcom.sun.java.swing.JTextField;importcom.bt.jungle.lsma.charging.pricing,Tariff;publicclassLinearAlgorithmimplementsTariff{privatefloatrate;privateLinearAlgorithnDisplaydisplay;publicLinearAlgorithm(){display=newLinearAlgorithmDisplay();serRate(newFloat(1));}publicfloatgetPrice(intpkin,intpkout,intcng){return(pkin+pkout+cng)*rate;}publicJComponentgetGUl(){returndisplay;}publicvoidsetRate(Floatf){rate=f.floatValue();display.setRate(rate);}}]]></pre>表3<prelisting-type="program-listing"><![CDATA[//GeneratedbyTogetherpackagealgorithms.linear;importcom.sun,java.swing.JPanel;importcom.sun.java.swing.JTextField;importcom.sun.java.swing.Box;importcom.sun,java.swing.JLabel;publicclassLinearAlgorithmDisplayextendsJpanel{privateJTextFieldtfRate=newJTextField(4);publicLinearAlgorithmiDisplay(){Boxvbox=Box.createVerticalBox();Boxhbox=Box.createHorizontalBox();hbox.add(Box.createHorizontalGlue());hbox.add(newJlabel("Rate:"));hbox.add(Box.createHorizontalGlue());hbox.add(tfRate);tfRate.setEditable(false);hbox.add(Box.createHorizontalGlue())vbox.add(hbox);add(vbox());}publicvoidsetRate(floatf){tfRate.setText(String.valueOf(f));}}]]></pre>表4<prelisting-type="program-listing"><![CDATA[//GeneratedbyTogetherpackagealgorithms.linear;importcom.sun.java.swing.*;importjava.awt.event.*;importcom.bt.jungle.lsma.charging.pricing.provider.*;importcom.bt.jungle.util.*;publicclassLinearAlgorithmGUlextendsJpanel{privateJTextFieldtfRate-newJTextField();privateTuningMessageListenertuningMessageListener;privatefinalstaticStringDEFAULT_RATE="1.0";publicLinearAlgorithmGUl(TuninglMessageListenertml){tuningMessageListener=tml;tfRate.setText(DEFAULT_RATE);Boxvbox=Box.createVerticalBox();Boxhbox=Box.createHorizontalBox();hbox.add(newJlabel("Rate:"));hbox.add(Box.createHorizontalGlue());hbox.add(tfRate);hbox.add(Box.createHorizontalGlue());hbox.add(hbox);JButtonbTransmit=newJButton("Transmit");bTransmit.addActionListener(newActionListener(){publicvoidactionPerformed(ActiornEvente){transmit();}});hbox=Box.createHorizontalBox();hbox.add.(Box.createHorizontalGlue());hbox.add(bTransmit);hbox.add(Box.createHorizontalGlue());vbox.add(hbox);add(vbox);}voidtransmit(){try{Floatf=newFloat(tfRate.getText());Objectargs[]=newObject[1];Args[O]=f;TuningMessageListener.notify(newInvocation("SetRate",args));}catch(Exceptione){e.printStackTrace();}}}]]></pre>表5<prelisting-type="program-listing"><![CDATA[packagealgorithms.exp;importcom.sun.java.swing.JComponent;importcom.sun.java.swing.JTextField;importcom.sun.java.lsma.charging.pricing.Tariff;publicclassExpAlgorithmimplementstariff{privatefloatmin;privatefloatbase;privatefloatdivisor;privateExpAlgorithmDisplaydisplay();publicExpAlgorithm(){display=newExpAlgorithmDisplay();setMin(newFloat(1));setBase(newFloat(2));setDivisor(newFloat(10));}publicfloatgetPrice(intpkin,intpkout,intcng){returnmin+(float)math.pow(base,(pkin+pkout+cng)/divisor);}publicJComponentgetGUl(){returndisplay;}publicvoidsetMin(Floatf){min=f.floatValue();display.setMin(min);}publicvoidsetBase(Floatf){base=f.floatValue();display.setBase(base);}publicvoidsetDivisor(Floatf){base=f.floatValue();display.setBase(divisor);}}]]></pre>表6<prelisting-type="program-listing"><![CDATA[//GeneratedbyTogetherpackagealgorithms.exp;importjava.awt.GridLayout;importcom.sun.java.swingJPanel;importcom.sun.java.swing.JTextField;importcom.sun.java.swing.Box;importcom.sun.java.swing.JLabel;publicclassExpAlgorithmDisplayextendsJpanel{privateJLabeltfDisplay=newJLabel();privatefloatmin,base,div;publicExpAlgorithmDisplay(){add(tfDisplay);//tfDisplay.setEditable(false);updateDisplay();}privatevoidupdateDisplay(){tfDisplay.setText("price="+min+"+"+base+"^((pkin+pkout+cng)/"+div+")");}publicvoidsetMin(floatf){min=f;updateDisplay();}publicvoidsetBase(floatf){base=f;updateDisplay();publicvoidsetDivisor(floatf){div=f;updateDisplay();}}]]></pre>表7<prelisting-type="program-listing"><![CDATA[//GeneratedbyTogetherpackagealgorithms.exp;importjava.awt.GridLayout;importcom.sun.java.swing.*;importjava.awt.event.*;importcom.bt.jungle.lsma.charging.pricing.provider.*;importcom.bt.jungle.util.*;publicclassExpAlgorithmGUIextendsJpanel{privateJTextFieldtfMin=newJTextField();privateJTextFieldtfBase=newJtextFfield();privateJTextFieldtfDivisor=newJTextField();privateTuningMessageListenertuningMessageListener;privatefinalstaticStringDEFAULT_MIN="1.0";privatefinalstaticStringDEFAULT_BASE="2.0";privatefinalstaticStringDEFAULT_DIV="10.0";publicExpAlgorithmGUI(TuningMessageListenertml){tuningMessageListener=tml;tfMin.setText(DEFAULT_MIN);tfBase.setText(DEFAULT_BASE);tfDivisor.setText(DEFAULT_DIV);Boxvbox=Box.createVerticalBox();vbox.add(newJLabel("price=min+pow(base,(pkin+pkout+cng)/divisor)"));vbox.add(Box.createVerticalGlue());Jpanelpanel=newJPanel(newGridLayout(3,2));panel.add(newJLabel("Minimum"));panel.add(tfMin);tfMin.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){transmit("setMin",tfMin);}}};panel.add(newJLabel("Base"));panel.add(tfBase)tfBase.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){transmit("setBase",tfBase);}}};panel.add(newJLabel("Divisor"));panel.add(tfDivisor);tfDivisor.addActionListener(newActionListner(){publicvoidactionPerformed(ActionEvente){transmit("setDivisor",tfDivisor);}});vbox.add(panel);add(vbox)}voidtransmit(Stringm,JTextFieldtf){try{Floatf=newFloat(tf.getText());Objectargs[]=newObject[1];args[O]=f;tuningMessageListener.notify(newInvocation(m,args));}catch(Exceptione){e.printStackTrace();}}}]]></pre>权利要求1.一种操作通信网络的方法,包括,根据在用户终端处检测到的网络负载改变该用户终端的网络使用资费。2.权利要求1的方法,包括在用户终端处检测取决于网络负载的网络性能参数,并根据该网络性能参数改变资费。3.权利要求2的方法,其中该网络是一个包网络,并且该网络性能参数是在数据源与用户终端间传输中丢失的包数量。4.权利要求1的方法,包括在用户终端处检测堵塞信号并响应该堵塞信号而改变资费。5.权利要求4的方法,包括从在用户终端处接收的数据包中读取用户终端处的堵塞信号。6.权利要求4或5的方法,包括响应在网络的路由器处检测到的堵塞在该路由器处产生一个堵塞信号。7.按照前述任一权利要求的方法,包括当首次检测到堵塞时进行第一个相对小的资费增长,以及当堵塞一直存在时进行另外一个相对大的增长。8.按照前述任一权利要求的方法,包括用用户定义的价格标准对用户终端处决策代理进行编程,并将利用该资费计算的价格与所述的价格标准进行对比。9.按照前述任一权利要求的方法,包括通过该通信网络将一项资费算法分布到多个终端,并在每一个终端处利用该资费计算该终端的网络使用收费。10.按照权利要求9的方法,还包括由网络操作员实施的步骤间断地对用户终端与网络间的流量进行采样,并且作为采样的一部份记录影响该用户终端的网络负载;以及对于所采样的流量,将该用户终端计算的收费与期望的收费进行对比,由此检测任何偏差。11.按照前述任一权利要求的方法,其中当用户终端在通过该网络从一个数据源传送给该用户终端的数据中检测到堵塞时,该用户终端返回一个堵塞通知信号给该数据源。12.按照前述任一权利要求的方法,包括在用户终端处选择资费将是固定的一个时间周期,并根据所述周期的待续时间而付额外费用。13.一种操作通信网络的方法,包括施加用户终端网络使用的资费,随时间而改变该资费;在用户终端处选择资费将是固定的一个时间周期;以及根据该时间周期的持续时间而付额外费用。14.一种通信网络,包括用于在用户终端处本地检测网络负载的装置;以及响应所述检测装置自动地改变该用户终端的网络使用的资费的装置。15.一种在通信网络中使用的用户终端,该用户终端包括用于检测用户终端在使用时要连接到的网络的负载的装置;响应所述的检测装置自动地改变该用户终端的网络使用资费的装置。14.一种在通信网络中使用的用户终端,该用户终端包括一个或多个用于顺序地实施下列各步的处理器检测该用户终端所连接到的网络资源的负载;以及根据所检测到的负载自动地改变该用户终端的网络使用资费。15.按照权利要求1-13的方法,其中该资费的改变仅发生在该终端在响应所检测的堵塞时不能降低其输出的情况。全文摘要在通信网络中,在用户终端处本地检测网络资源的负载,并根据网络使用情况自动地改变该网络使用的资费。文档编号H04L12/14GK1310651SQ99808868公开日2001年8月29日申请日期1999年6月4日优先权日1998年6月5日发明者罗伯特·约翰·布里斯科,迈克尔·里佐申请人:英国电讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1