网络拥塞控制的muti-Agent模型研究

2009-04-28 07:48李海舰
科技经济市场 2009年3期

李海舰

摘要:随着网络规模的扩大、应用性的增加,导致网络拥塞可能性增大。为解决Web服务器前可能存在的拥塞,本文提出了一种基于多Agent的网络拥塞控制模型。研究了拥塞控制方法,并对队列管理、调度策略等关键技术进行了讨论,给出了相关的算法。

关键词:网络拥塞;muti-Agent;Qos

1引言

随着Web应用和HTTP请求的爆炸性增长,ISP服务提供商所提供的服务的多样化,多媒体应用的急剧发展,使得目前许多热门的Web服务器都经常面临严峻考验,严重情况下,服务器可能出现延迟服务或者由超载引起瘫痪的问题,如何在服务器端处理好网络请求量过大,数据传输过多等造成的ISP源端网络拥塞,如何控制拥塞,满足网络Qos和为用户提供优质的网络服务是现在迫切需要解决的一个问题。 为了解决这些问题,本文提出了基于多Agent的网络拥塞控制方法。该方法充分利用Agent的社会性、自主性和智能性,通过各个Agent的功能实现,相互协调来解决Web服务器端出现的网络拥塞,保证服务质量。

2基于多Agent的网络拥塞控制模型

Agent具有自主性、交互性、主动性和反应性等,它不仅能作用于自身,而且可以施动作于环境,并能接收环境的反馈信息,重新评估自己的行为;同时,它能与其他Agent协同工作。

2.1 基本模型

当网络服务的请求过多或服务器过载时,多Agent系统对所引发的拥塞状态进行监测,并通过拥塞控制策略,管理请求队列,合理分配带宽,提高服务器性能,满足Qos需求。

该多代理系统,主要有以下几个部分组成:

(1)功能代理:完成特定功能的代理,在此系统中,主要分为三类代理—监测代理、控制代理和执行代理。这些功能代理负责对整个网络进行监测,获取系统相关信息,然后交由控制代理来进行处理,通过执行代理来执行请求服务。

(2)代理通信语言:代理通信语言(ACL)是代理之间进行知识共享和知识交换的协议性语言。通常使用的代理通信语言包括两种:知识查询与操作语言(KQML)和FIPA ACL。

(3)知识库:包括规则库和事例库。规则库存放代理执行时必须执行的规则,事例库存放存在的事例,供代理学习。知识库的更新及维护主要通过网络管理员管理和代理通过事例和事件学习累积。

2.2 Agent功能

监测代理主要负责监听信道和网络设备,完成对服务器请求数据包的统计和相关数据的收集。主要职责包括TCP连接信息,解析数据包,分析并记录服务请求类型,数量以及可能需要的带宽,并提交给控制代理。

控制代理:分析由检测模块上传的服务请求数据,判别链路拥塞情况,在尽量满足用户需求的情况下,由拥塞的程度,服务请求的优先级以及请求数据的大小,分配合适的带宽,建立请求队列。

执行代理:负责建立调度策略库,针对各种网络拥塞情况以及队列,给出合适的调度,以响应Http请求。

2.3 Agent之间的协调

Agent之间通过代理通信语言,将各自无法完成的任务或者是需要发送的信息,进行协调。在该系统中,监测代理将监听到的数据发送给控制代理,控制代理根据策略库进行排队、分配带宽,并将这些策略发送给执行代理,由执行代理完成调度工作,响应Http的请求。

在拥塞控制过程中,如果处于某种特殊情况时,各Agent可以再次协商,重新排队,分配带宽以及合理调度。

2.4知识库的建立

在知识库的建立是通过Agent的学习过程,在各Agent中都有相应事件的策略,当某类事件的发生在所列策略库以外,则其自动建立新的策略,并协商其他Agent建立各自的策略。

3拥塞控制

当网络中存在过多的报文时,网络的性能会下降,网络拥塞时,发送端吞吐量下降,分组的时延增加,在路由器中分组的丢弃概率增大等等。

拥塞产生的根本原因在于用户提供给网络的负载大于网络资源容量和处理能力。也就是说,网络的资源与网络的流量不均衡,用户对网络的需求和网络的供给不匹配,将会产生拥塞。

3.1 基于多Agent的网络拥塞控制策略

ISP为用户提供服务,用户总希望在最短的时间里得到更好更快的服务,但是现在的网络瓶颈无法满足用户的全部需求,所以只能尽量满足,目前所使用的网络拥塞控制方法都是基于TCP/IP来做的。

本模型将拥塞控制系统建立在服务器端,通过多Agent协作,来处理服务请求,使带宽最大程度的使用。

3.2 拥塞判别算法

通常ISP能提供的主干带宽是一定的。我们将拥塞状态划分为四种:无拥塞、轻度拥塞、中度拥塞、严重拥塞。

依据Red算法的核心思想,选取ISP出口输出队列长度为判别依据,通过SNMP轮询ISP至广域网端口MIB库中的对象ifOutQlen来取得L值.令L表示出口输出队列当前长度,L1,L2 和 L3分别表示相应的拥塞判别阈值,拥塞状态判别规则为:

3.2.1无拥塞,0≤L

3.2.2轻度拥塞,L1≤L

3.2.3中度拥塞,L2≤L

3.2.4严重拥塞,L3≤L;此时吞吐率急剧下降,必须采用丢包等较强控制手段来保证网络的正常运行。令L 为ISP出口输出队列允许的最大长度,L1,L2和L3的求取规则为:L1=L×40%;L2=L×60%;L3=L×95%。

3.3 拥塞控制相关流量统计

通过解析捕获的IP数据包,可以获得Web服务器的所有TCP连接请求及带宽需求信息,形成TCP连接统计表.该表包括源IP,目的IP,源端口,目的端口,应用类型,数据量以及Contral Flag。该表记录了TCP连接及这些连接在SNMP轮询间隔内的流量统计信息。数据量字段给出了在给定统计时间内,当前TCP连接的会话数据量总和;应用类型字段给出了由目的端口中的熟知端口所代表的公共应用服务;Contral Flag 控制标记中的Urgent data ,如果URG为1,表示这是一个携有紧急资料的封包。

3.4 队列管理

队列管理是通过选择何时丢弃何种业务流分组来控制队列长度。

分类机制分为两大类:

3.4.1基于客户的分类

基于客户的分类是根据客户某些特有的属性和特征来进行分类,具体包括:

基于客户端IP地址的分类

基于HTTP cookie分类

基于Web浏览器即Plug-ins插件的分类

3.4.2基于目标的分类

基于请求目标的分类是根据请求的目标所特有的一些属性和特征来进行分类,具体包括

基于请求URL的分类

基于目标IP地址或端口号

采用优先级队列的形式,解决网络拥塞。由D-Agent检测信道的闲与忙,当信道闲时,ISP以最快的速度满足用户请求;信道忙时,拟采取优先级队列的方法,重新排列队列,分配带宽;根据ISP提供的各种服务,分配原始带宽和优先级;通过对TCP连接信息统计表,按IP段分类并计算这N个IP段各自实际占用带宽比例。然后,计算各IP段超过预定义带宽的百分比,值越越大,说明IP段超出预分配流量越大,相应IP地址所建立的TCP连接优先级越低,进入较低优先级队列;反之进入较高优先级队列.如此就可以形成优先级队列.另外如果在TCP连接统计表中某IP请求Contral Flag值为1时,将其优先级设为最高,其它类推。

3.5 调度策略

执行代理使用请求调度策略从中选择请求进行服务,为每类服务提供不同的服务级别。常用的调度策略有:

3.5.1绝对优先级:总是调度优先级最高的请求,然后再处理低优先级请求。

3.5.2加权优先级:根据客户请求的加权重要程度进行选择服务。

3.5.3共享容量:根据某一事先设定好的系统资源容量对每类请求进行调度,任何未使用的系统资源可以分给其它类请求。

3.6 控制策略

3.6.1无拥塞或轻度拥塞 不启动网络拥塞控制,保证通信效率

3.6.2中度拥塞需要实施流量控制来缓解拥塞.根据TCP流量统计表形成优先级队列,向优先级队列中记录的TCP连接发送ICMP源站抑制报文,减小TCP连接发送窗口大小,以达到流量控制的目的

3.6.3严重拥塞在严重拥塞状况下,对各个队列内TCP连接发送ICMP源站抑制报文的同时,还要通过发送TCPRST来断开各个队列相应分类对象新的连接请求以达到拥塞控制的目的.

4小结

本文运用多Agent的方法对拥塞进行控制是可行的,Agent具有自主性、交互性、主动性和反应性等,都符合网络智能化的需求,如果在策略库上增加更加丰富的学习库,可增加拥塞控制的灵活性,但是可能会影响通信效率。

参考文献:

[1]Stevens W R,陆雪莹,蒋慧等译.TCP/IP详解(卷1:协议).北京:机械工业出版社,2000.

[2]温文.网络拥塞的解决措施及实例分析设计,计算机时代,2005(3).

[3]范玉顺,曹军威.多代理系统理论、方法与应用.清华大学出版社,2002.

[4]Ramadas Shanmuam、 R.Padmini、S.Nivedita、NIIT公司.TCP/IP详解.电子工业出版社, 2004.

[5]肖道举,王悦,陈晓苏.基于侦听机制的网络拥塞控制模型.华中科技大学学报,2003(8).

[6]Barford P.Critical path analysis of TCP transactions.IEI、E/ACM Transactionson Networking,2001,9(3):238~248.

[7]林闯,单志广,任丰原.计算机网络的服务质量.清华大学出版社,2004.