李海艦
摘要:隨著網(wǎng)絡(luò)規(guī)模的擴大、應(yīng)用性的增加,導(dǎo)致網(wǎng)絡(luò)擁塞可能性增大。為解決Web服務(wù)器前可能存在的擁塞,本文提出了一種基于多Agent的網(wǎng)絡(luò)擁塞控制模型。研究了擁塞控制方法,并對隊列管理、調(diào)度策略等關(guān)鍵技術(shù)進行了討論,給出了相關(guān)的算法。
關(guān)鍵詞:網(wǎng)絡(luò)擁塞;muti-Agent;Qos
1引言
隨著Web應(yīng)用和HTTP請求的爆炸性增長,ISP服務(wù)提供商所提供的服務(wù)的多樣化,多媒體應(yīng)用的急劇發(fā)展,使得目前許多熱門的Web服務(wù)器都經(jīng)常面臨嚴峻考驗,嚴重情況下,服務(wù)器可能出現(xiàn)延遲服務(wù)或者由超載引起癱瘓的問題,如何在服務(wù)器端處理好網(wǎng)絡(luò)請求量過大,數(shù)據(jù)傳輸過多等造成的ISP源端網(wǎng)絡(luò)擁塞,如何控制擁塞,滿足網(wǎng)絡(luò)Qos和為用戶提供優(yōu)質(zhì)的網(wǎng)絡(luò)服務(wù)是現(xiàn)在迫切需要解決的一個問題。 為了解決這些問題,本文提出了基于多Agent的網(wǎng)絡(luò)擁塞控制方法。該方法充分利用Agent的社會性、自主性和智能性,通過各個Agent的功能實現(xiàn),相互協(xié)調(diào)來解決Web服務(wù)器端出現(xiàn)的網(wǎng)絡(luò)擁塞,保證服務(wù)質(zhì)量。
2基于多Agent的網(wǎng)絡(luò)擁塞控制模型
Agent具有自主性、交互性、主動性和反應(yīng)性等,它不僅能作用于自身,而且可以施動作于環(huán)境,并能接收環(huán)境的反饋信息,重新評估自己的行為;同時,它能與其他Agent協(xié)同工作。
2.1 基本模型
當網(wǎng)絡(luò)服務(wù)的請求過多或服務(wù)器過載時,多Agent系統(tǒng)對所引發(fā)的擁塞狀態(tài)進行監(jiān)測,并通過擁塞控制策略,管理請求隊列,合理分配帶寬,提高服務(wù)器性能,滿足Qos需求。
該多代理系統(tǒng),主要有以下幾個部分組成:
(1)功能代理:完成特定功能的代理,在此系統(tǒng)中,主要分為三類代理—監(jiān)測代理、控制代理和執(zhí)行代理。這些功能代理負責對整個網(wǎng)絡(luò)進行監(jiān)測,獲取系統(tǒng)相關(guān)信息,然后交由控制代理來進行處理,通過執(zhí)行代理來執(zhí)行請求服務(wù)。
(2)代理通信語言:代理通信語言(ACL)是代理之間進行知識共享和知識交換的協(xié)議性語言。通常使用的代理通信語言包括兩種:知識查詢與操作語言(KQML)和FIPA ACL。
(3)知識庫:包括規(guī)則庫和事例庫。規(guī)則庫存放代理執(zhí)行時必須執(zhí)行的規(guī)則,事例庫存放存在的事例,供代理學(xué)習。知識庫的更新及維護主要通過網(wǎng)絡(luò)管理員管理和代理通過事例和事件學(xué)習累積。
2.2 Agent功能
監(jiān)測代理主要負責監(jiān)聽信道和網(wǎng)絡(luò)設(shè)備,完成對服務(wù)器請求數(shù)據(jù)包的統(tǒng)計和相關(guān)數(shù)據(jù)的收集。主要職責包括TCP連接信息,解析數(shù)據(jù)包,分析并記錄服務(wù)請求類型,數(shù)量以及可能需要的帶寬,并提交給控制代理。
控制代理:分析由檢測模塊上傳的服務(wù)請求數(shù)據(jù),判別鏈路擁塞情況,在盡量滿足用戶需求的情況下,由擁塞的程度,服務(wù)請求的優(yōu)先級以及請求數(shù)據(jù)的大小,分配合適的帶寬,建立請求隊列。
執(zhí)行代理:負責建立調(diào)度策略庫,針對各種網(wǎng)絡(luò)擁塞情況以及隊列,給出合適的調(diào)度,以響應(yīng)Http請求。
2.3 Agent之間的協(xié)調(diào)
Agent之間通過代理通信語言,將各自無法完成的任務(wù)或者是需要發(fā)送的信息,進行協(xié)調(diào)。在該系統(tǒng)中,監(jiān)測代理將監(jiān)聽到的數(shù)據(jù)發(fā)送給控制代理,控制代理根據(jù)策略庫進行排隊、分配帶寬,并將這些策略發(fā)送給執(zhí)行代理,由執(zhí)行代理完成調(diào)度工作,響應(yīng)Http的請求。
在擁塞控制過程中,如果處于某種特殊情況時,各Agent可以再次協(xié)商,重新排隊,分配帶寬以及合理調(diào)度。
2.4知識庫的建立
在知識庫的建立是通過Agent的學(xué)習過程,在各Agent中都有相應(yīng)事件的策略,當某類事件的發(fā)生在所列策略庫以外,則其自動建立新的策略,并協(xié)商其他Agent建立各自的策略。
3擁塞控制
當網(wǎng)絡(luò)中存在過多的報文時,網(wǎng)絡(luò)的性能會下降,網(wǎng)絡(luò)擁塞時,發(fā)送端吞吐量下降,分組的時延增加,在路由器中分組的丟棄概率增大等等。
擁塞產(chǎn)生的根本原因在于用戶提供給網(wǎng)絡(luò)的負載大于網(wǎng)絡(luò)資源容量和處理能力。也就是說,網(wǎng)絡(luò)的資源與網(wǎng)絡(luò)的流量不均衡,用戶對網(wǎng)絡(luò)的需求和網(wǎng)絡(luò)的供給不匹配,將會產(chǎn)生擁塞。
3.1 基于多Agent的網(wǎng)絡(luò)擁塞控制策略
ISP為用戶提供服務(wù),用戶總希望在最短的時間里得到更好更快的服務(wù),但是現(xiàn)在的網(wǎng)絡(luò)瓶頸無法滿足用戶的全部需求,所以只能盡量滿足,目前所使用的網(wǎng)絡(luò)擁塞控制方法都是基于TCP/IP來做的。
本模型將擁塞控制系統(tǒng)建立在服務(wù)器端,通過多Agent協(xié)作,來處理服務(wù)請求,使帶寬最大程度的使用。
3.2 擁塞判別算法
通常ISP能提供的主干帶寬是一定的。我們將擁塞狀態(tài)劃分為四種:無擁塞、輕度擁塞、中度擁塞、嚴重擁塞。
依據(jù)Red算法的核心思想,選取ISP出口輸出隊列長度為判別依據(jù),通過SNMP輪詢ISP至廣域網(wǎng)端口MIB庫中的對象ifOutQlen來取得L值.令L表示出口輸出隊列當前長度,L1,L2 和 L3分別表示相應(yīng)的擁塞判別閾值,擁塞狀態(tài)判別規(guī)則為:
3.2.1無擁塞,0≤L 3.2.2輕度擁塞,L1≤L 3.2.3中度擁塞,L2≤L 3.2.4嚴重擁塞,L3≤L;此時吞吐率急劇下降,必須采用丟包等較強控制手段來保證網(wǎng)絡(luò)的正常運行。令L 為ISP出口輸出隊列允許的最大長度,L1,L2和L3的求取規(guī)則為:L1=L×40%;L2=L×60%;L3=L×95%。 3.3 擁塞控制相關(guān)流量統(tǒng)計 通過解析捕獲的IP數(shù)據(jù)包,可以獲得Web服務(wù)器的所有TCP連接請求及帶寬需求信息,形成TCP連接統(tǒng)計表.該表包括源IP,目的IP,源端口,目的端口,應(yīng)用類型,數(shù)據(jù)量以及Contral Flag。該表記錄了TCP連接及這些連接在SNMP輪詢間隔內(nèi)的流量統(tǒng)計信息。數(shù)據(jù)量字段給出了在給定統(tǒng)計時間內(nèi),當前TCP連接的會話數(shù)據(jù)量總和;應(yīng)用類型字段給出了由目的端口中的熟知端口所代表的公共應(yīng)用服務(wù);Contral Flag 控制標記中的Urgent data ,如果URG為1,表示這是一個攜有緊急資料的封包。 3.4 隊列管理 隊列管理是通過選擇何時丟棄何種業(yè)務(wù)流分組來控制隊列長度。 分類機制分為兩大類: 3.4.1基于客戶的分類 基于客戶的分類是根據(jù)客戶某些特有的屬性和特征來進行分類,具體包括: 基于客戶端IP地址的分類 基于HTTP cookie分類 基于Web瀏覽器即Plug-ins插件的分類 3.4.2基于目標的分類 基于請求目標的分類是根據(jù)請求的目標所特有的一些屬性和特征來進行分類,具體包括 基于請求URL的分類 基于目標IP地址或端口號 采用優(yōu)先級隊列的形式,解決網(wǎng)絡(luò)擁塞。由D-Agent檢測信道的閑與忙,當信道閑時,ISP以最快的速度滿足用戶請求;信道忙時,擬采取優(yōu)先級隊列的方法,重新排列隊列,分配帶寬;根據(jù)ISP提供的各種服務(wù),分配原始帶寬和優(yōu)先級;通過對TCP連接信息統(tǒng)計表,按IP段分類并計算這N個IP段各自實際占用帶寬比例。然后,計算各IP段超過預(yù)定義帶寬的百分比,值越越大,說明IP段超出預(yù)分配流量越大,相應(yīng)IP地址所建立的TCP連接優(yōu)先級越低,進入較低優(yōu)先級隊列;反之進入較高優(yōu)先級隊列.如此就可以形成優(yōu)先級隊列.另外如果在TCP連接統(tǒng)計表中某IP請求Contral Flag值為1時,將其優(yōu)先級設(shè)為最高,其它類推。 3.5 調(diào)度策略 執(zhí)行代理使用請求調(diào)度策略從中選擇請求進行服務(wù),為每類服務(wù)提供不同的服務(wù)級別。常用的調(diào)度策略有: 3.5.1絕對優(yōu)先級:總是調(diào)度優(yōu)先級最高的請求,然后再處理低優(yōu)先級請求。 3.5.2加權(quán)優(yōu)先級:根據(jù)客戶請求的加權(quán)重要程度進行選擇服務(wù)。 3.5.3共享容量:根據(jù)某一事先設(shè)定好的系統(tǒng)資源容量對每類請求進行調(diào)度,任何未使用的系統(tǒng)資源可以分給其它類請求。 3.6 控制策略 3.6.1無擁塞或輕度擁塞 不啟動網(wǎng)絡(luò)擁塞控制,保證通信效率 3.6.2中度擁塞需要實施流量控制來緩解擁塞.根據(jù)TCP流量統(tǒng)計表形成優(yōu)先級隊列,向優(yōu)先級隊列中記錄的TCP連接發(fā)送ICMP源站抑制報文,減小TCP連接發(fā)送窗口大小,以達到流量控制的目的 3.6.3嚴重擁塞在嚴重擁塞狀況下,對各個隊列內(nèi)TCP連接發(fā)送ICMP源站抑制報文的同時,還要通過發(fā)送TCPRST來斷開各個隊列相應(yīng)分類對象新的連接請求以達到擁塞控制的目的. 4小結(jié) 本文運用多Agent的方法對擁塞進行控制是可行的,Agent具有自主性、交互性、主動性和反應(yīng)性等,都符合網(wǎng)絡(luò)智能化的需求,如果在策略庫上增加更加豐富的學(xué)習庫,可增加擁塞控制的靈活性,但是可能會影響通信效率。 參考文獻: [1]Stevens W R,陸雪瑩,蔣慧等譯.TCP/IP詳解(卷1:協(xié)議).北京:機械工業(yè)出版社,2000. [2]溫文.網(wǎng)絡(luò)擁塞的解決措施及實例分析設(shè)計,計算機時代,2005(3). [3]范玉順,曹軍威.多代理系統(tǒng)理論、方法與應(yīng)用.清華大學(xué)出版社,2002. [4]Ramadas Shanmuam、 R.Padmini、S.Nivedita、NIIT公司.TCP/IP詳解.電子工業(yè)出版社, 2004. [5]肖道舉,王悅,陳曉蘇.基于偵聽機制的網(wǎng)絡(luò)擁塞控制模型.華中科技大學(xué)學(xué)報,2003(8). [6]Barford P.Critical path analysis of TCP transactions.IEI、E/ACM Transactionson Networking,2001,9(3):238~248. [7]林闖,單志廣,任豐原.計算機網(wǎng)絡(luò)的服務(wù)質(zhì)量.清華大學(xué)出版社,2004.