[0041]步驟S1,監(jiān)測AP帶寬使用率。在一個實(shí)施例中,監(jiān)測AP帶寬使用率的具體實(shí)現(xiàn)包括:通過Η00Κ函數(shù)實(shí)現(xiàn)。Η00Κ函數(shù)可以注冊到內(nèi)核中,IP層可以設(shè)置五個Η00Κ點(diǎn),包括:
①NF_IP_PRE_R0UTING:剛剛進(jìn)入網(wǎng)絡(luò)層的數(shù)據(jù)包通過此點(diǎn),目的地址轉(zhuǎn)換在此點(diǎn)進(jìn)行;
②NF_IP_L0CAL_IN:經(jīng)路由查找后,送往本機(jī)的通過此檢查點(diǎn),INPUT包過濾在此點(diǎn)進(jìn)行;
③NF_IP_F0RWARD:要轉(zhuǎn)發(fā)的包通過此檢測點(diǎn),F(xiàn)ORWARD包過濾在此點(diǎn)進(jìn)行通NF_IP_P0ST_ROUTING:所有馬上便要通過網(wǎng)絡(luò)設(shè)備出去的包通過此檢測點(diǎn),內(nèi)置的源地址轉(zhuǎn)換功能(包括地址偽裝)在此點(diǎn)進(jìn)行;?NF_IP_L0CAL_0UT:本機(jī)進(jìn)程發(fā)出的包通過此檢測點(diǎn),OUTPUT包過濾在此點(diǎn)進(jìn)行。注冊Η00Κ函數(shù),這里的hook點(diǎn)要為“NF_IP_F0RWARD”,即AP要轉(zhuǎn)發(fā)的終端的包通過此檢測點(diǎn),F(xiàn)ORWARD包過濾在此點(diǎn)進(jìn)行。
[0042]步驟S2,當(dāng)所述AP帶寬使用率超過設(shè)定的使用率閾值時,執(zhí)行AP限速操作。所述AP帶寬使用率的計(jì)算方法包括:AP帶寬使用率=AP下所有用戶實(shí)際使用帶寬/AP入口帶寬X 100%。在一個實(shí)施例中,對所述使用率閾值的設(shè)定包括:通過接入控制器對所述AP進(jìn)行配置;或者通過所述AP本地的管理頁面進(jìn)行配置。此閥值大小通常由管理員決定,如“95%?100%”,允許有一定的誤差。在一個實(shí)施例中,在HOOK函數(shù)中,AP時刻監(jiān)控總帶寬使用率,當(dāng)AP帶寬使用率達(dá)到接入控制器(AC)配置的使用率閾值時候,開始執(zhí)行AP限速操作。
[0043]步驟S3,所述AP限速操作包括:監(jiān)測接入所述AP的所有終端的流量,找到所有終端中流量最大的終端;將該終端記錄到限速列表中;根據(jù)設(shè)定的限速大小對所述限速列表中記錄的終端進(jìn)行限速。將該終端記錄到限速列表中的具體實(shí)現(xiàn)包括:將該終端的MAC地址記錄到限速列表中。所述限速大小包括:所述AP總帶寬大小與所述AP理論最大接入終端數(shù)之比。在一個實(shí)施例中,所述AP限速操作還包括:當(dāng)找到所有終端中流量最大的終端后,向該終端發(fā)送警告信息,等待預(yù)設(shè)時間到達(dá)后,再次監(jiān)測該終端的流量;僅當(dāng)再次監(jiān)測得到的所述終端的流量大于設(shè)定的允許值,將該終端記錄到限速列表中。所述限速列表包括鏈表形式或其他形式。所述設(shè)定的允許值包括:當(dāng)前所有終端流量與當(dāng)前接入終端數(shù)之比。在一個實(shí)施例中,所述AP限速方法還包括:定期刪除所述限速列表。定期刪除所述限速列表的具體實(shí)現(xiàn)包括:在每天的設(shè)定時間點(diǎn)刪除所述限速列表。在一個實(shí)施例中,對所述限速大小的設(shè)定包括:通過接入控制器(AC)對所述AP進(jìn)行配置;或者通過所述AP本地的管理頁面進(jìn)行配置。
[0044]在一個實(shí)施例中,向該終端發(fā)送警告信息的具體實(shí)現(xiàn)包括:針對該終端IP的HTTP請求的數(shù)據(jù)包進(jìn)行302重定向數(shù)據(jù)包,所述重定向數(shù)據(jù)包中含有告警提示信息。HTTP協(xié)議(HyperText Transfer Protocol,超文本傳輸協(xié)議)是用于從ffffff服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議。它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。它不僅保證計(jì)算機(jī)正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內(nèi)容首先顯示(如文本先于圖形)等。302重定向又稱之為302代表暫時性轉(zhuǎn)移(Temporarily Moved),英文名稱:302redirect。也被認(rèn)為是暫時重定向(temporary redirect),一條對網(wǎng)站瀏覽器的指令來顯示瀏覽器被要求顯示的不同的URL,當(dāng)一個網(wǎng)頁經(jīng)歷過短期的URL的變化時使用。一個暫時重定向是一種服務(wù)器端的重定向,能夠被搜索弓I擎正確地處理。在一個實(shí)施例中,采用了 NetFilter框架,NetFilter框架由Rusty Russell提出的Linux 2.4內(nèi)核防火墻框架,該框架既簡潔又靈活,可實(shí)現(xiàn)安全策略應(yīng)用中的許多功能,如數(shù)據(jù)包過濾、數(shù)據(jù)包處理、地址偽裝、透明代理、動態(tài)網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translat1n,NAT),以及基于用戶及媒體訪問控制(Media Access Control,MAC)地址的過濾和基于狀態(tài)的過濾、包速率限制等。netfilter的架構(gòu)就是在整個網(wǎng)絡(luò)流程的若干位置放置了一些檢測點(diǎn)(Η00Κ),而在每個檢測點(diǎn)上登記了一些處理函數(shù)進(jìn)行處理(如包過濾,NAT等,甚至可以是用戶自定義的功能)。
[0045]在一個實(shí)施例中,監(jiān)測接入所述AP的所有終端的流量的具體實(shí)現(xiàn)包括:通過Η00Κ函數(shù)實(shí)現(xiàn)。在Η00Κ函數(shù)中,AP時刻監(jiān)控總帶寬使用率,當(dāng)利用率達(dá)到AC配置的閥值時候,AP在Η00Κ函數(shù)中開始監(jiān)控每個IP地址的網(wǎng)絡(luò)流量,找到每秒使用流量最大的IP,并同當(dāng)前所有終端流量與當(dāng)前接入終端數(shù)之比的值(基于當(dāng)前用戶數(shù)的平均速率,例如當(dāng)前所有終端流量100Mbps,當(dāng)前接入終端數(shù)是50,那么平均速率就是2Mbps)進(jìn)行差值計(jì)算,如果此差值大于AC配置的差值范圍,這個差值由AC管理員通過配置到AP中,如當(dāng)前是2Mbps時候可以配置差值為0.2Mbps,當(dāng)用戶超過2.2Mbps時候就認(rèn)為存在占用大流量行為,當(dāng)用戶再次訪問網(wǎng)頁時候,在HOOK函數(shù)中針對此IP的HTTP請求的數(shù)據(jù)包進(jìn)行302重定向組包,此過程在HOOK函數(shù)中很容易實(shí)現(xiàn),這個重定向數(shù)據(jù)包中含有告警提示信息如“系統(tǒng)檢測到您占用了大量網(wǎng)絡(luò)帶寬,為了不影響他人上網(wǎng)體驗(yàn),請不要在線播放高清視頻和迅雷等下載”,并回包給用戶,此時停止監(jiān)控此用戶(下文會提到五分鐘后再次監(jiān)控),并在內(nèi)核記錄下此用戶違規(guī)上網(wǎng)一次(違規(guī)次數(shù)計(jì)為1),待五分鐘以后再次監(jiān)控此用戶,如果用戶的流量繼續(xù)超出前面提到的差值,那么再次HTTP 302組包重定向到一個頁面,這個數(shù)據(jù)包中含有提示如“系統(tǒng)再次檢測到您占用了大量網(wǎng)絡(luò)帶寬,為了不影響他人上網(wǎng)體驗(yàn),對您作限速處理”,此時限速的大小按照總帶寬與AP理論最大接入終端用戶數(shù)之比(例如:當(dāng)前入口帶寬100Mbps,AP最大可以介入100個終端用戶,那么兩者比值為1bps)的值調(diào)用限速接口給此用戶限速,其他用戶不限速,并且停止監(jiān)控此用戶,計(jì)數(shù)違規(guī)第二次(違規(guī)次數(shù)計(jì)為2),并將此IP用戶對應(yīng)的MAC地址記錄到限速鏈表中,以后當(dāng)總帶寬使用率再次達(dá)到AC配置的閥值的,再次需要監(jiān)控所有用戶時候,就查詢此鏈表,不監(jiān)控鏈表中已經(jīng)存在的MAC地址用戶,直接放行(因?yàn)橐呀?jīng)限速)。待第二天天凌晨零點(diǎn)AP自動將此鏈表中的所有MAC地址刪除,并將違規(guī)次數(shù)計(jì)為0,第二天已記錄用戶可以正常訪問網(wǎng)絡(luò)。
[0046]在一個實(shí)施例中,如圖2所示,AP上電并接收AC(接入控制器)的帶寬使用率(即帶寬使用率)配置閾值(使用率閾值),差值范圍。監(jiān)控帶寬使用率,當(dāng)帶寬使用率達(dá)到閾值時,監(jiān)控每個終端用戶的流量,找到占用流量最大的終端用戶IP地址和對應(yīng)MAC地址并計(jì)數(shù);如果計(jì)數(shù)小于2并且該終端用戶尚未限速,則向終端用戶發(fā)送HTTP302重定向頁面提示用戶;如果計(jì)數(shù)等于2,則向終端用戶發(fā)送HTTP302重定向頁面提示用戶,并將該終端用戶的MAC地址加入到限速列表(包括限速鏈表)中,對該終端用戶進(jìn)行限速。本發(fā)明的技術(shù)方案對接入AP的用戶進(jìn)行智能限速,在用戶進(jìn)行正常的訪問網(wǎng)頁,登錄客戶端操作時候,不進(jìn)行限速,當(dāng)帶寬使用率達(dá)到我們設(shè)置的閥值的時候,AP在內(nèi)核開始監(jiān)控所有IP地址用戶,找到使用帶寬最大的用戶,并與當(dāng)前每個用戶的平均帶寬(基于當(dāng)前接入用戶數(shù)的平均帶寬)作減法,查是否在允許的差值范圍內(nèi),如果不在此范圍,那么對用戶進(jìn)行http302重定向網(wǎng)頁多次告警提示,并根據(jù)用戶的選擇來實(shí)施進(jìn)一步?jīng)Q定是否限速,否則不進(jìn)行任何操作,繼續(xù)監(jiān)控用戶,直到總帶寬使用率低于我們設(shè)置的閥值,停止監(jiān)控所有用戶。
[0047]本發(fā)明還提供一種AP限速系統(tǒng)。所述AP限速系統(tǒng)可以應(yīng)用如上所述的AP限速方法。在一個實(shí)