李海艦
摘要:隨著網絡規模的擴大、應用性的增加,導致網絡擁塞可能性增大。為解決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.