專利名稱:一種網(wǎng)絡(luò)流量控制系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò),尤其涉及網(wǎng)絡(luò)流控控制。
背景技術(shù):
隨著因特網(wǎng)業(yè)務(wù)的快速發(fā)展,網(wǎng)絡(luò)流量急劇增加,網(wǎng)絡(luò)流量控制技術(shù)被廣泛關(guān)注。 特別是P2P(Peer to Peer,點(diǎn)對(duì)點(diǎn))業(yè)務(wù)高速增長(zhǎng)后,P2P的應(yīng)用使得網(wǎng)絡(luò)連接的數(shù)量大大 增加,并使網(wǎng)絡(luò)下載流量劇增,從而導(dǎo)致本地網(wǎng)絡(luò)帶寬被大量消耗,甚至引起網(wǎng)絡(luò)堵塞。網(wǎng)絡(luò)流量控制是為了防止互聯(lián)網(wǎng)擁擠而采取的一種措施,作用是保證互聯(lián)網(wǎng)能夠 正常工作?,F(xiàn)有的網(wǎng)絡(luò)流量控制技術(shù)主要有兩種,一種是TCP窗口整形技術(shù)(又稱TCP窗 口滑動(dòng)技術(shù)),另一種是基于隊(duì)列的流量控制技術(shù)。TCP窗口整形技術(shù)是通過(guò)對(duì)網(wǎng)絡(luò)中每個(gè)TCP連接的流量進(jìn)行監(jiān)聽、跟蹤和計(jì)算,動(dòng) 態(tài)的調(diào)整接收方接收窗口的大小,以控制發(fā)送方速率,從而達(dá)到避免網(wǎng)絡(luò)擁塞的目的。通過(guò) TCP窗口整形處理后的信流變得較為平滑,不產(chǎn)生嚴(yán)重突發(fā)以影響其他信流,使廣域網(wǎng)資源 得以充分利用。TCP窗口整形技術(shù)不采用隊(duì)列方式,大大減少了信息包的丟失,降低了數(shù)據(jù)包的重 傳率。利用TCP窗口整形技術(shù),網(wǎng)絡(luò)中所有機(jī)器的發(fā)送量都受到統(tǒng)一控制。如果從路由器 流過(guò)的流量被控制到與廣域網(wǎng)瓶頸帶寬相一致,那么路由器上再也不會(huì)有大量的隊(duì)列,這 就減輕了路由器的負(fù)擔(dān),使信息包通過(guò)路由器的時(shí)間大大減少。然而,TCP窗口整形技術(shù)由于采用TCP速率控制方式,因此無(wú)法支持UDP流量,對(duì) UDP無(wú)效,不適用于UDP流量的QoS,只適用于TCP信息傳輸。此外,TCP窗口整形技術(shù)對(duì)鏈 接帶寬利用不充分,如果保守地設(shè)置窗口大小,那么鏈路帶寬就會(huì)存在未使用的空間,無(wú)法 使網(wǎng)絡(luò)資源鏈接得到充分利用。此外,TCP窗口整形流量控制技術(shù)對(duì)大流量控制效果很差。基于隊(duì)列的網(wǎng)絡(luò)流量控制方法對(duì)TCP、UDP均有效,既能夠支持TCP流量又能支持 UDP流量,因此既適用于TCP信息傳輸也適用于UDP信息傳輸。并且,基于隊(duì)列的流量控制 的精度相對(duì)于TCP窗口整形技術(shù)來(lái)說(shuō),流控精度更高。然而由于隊(duì)列流控通過(guò)丟包和增加Queuing Delay (隊(duì)列延遲)來(lái)抑制TCP源端 發(fā)送,因此會(huì)導(dǎo)致源端的重傳和鏈路時(shí)延的增加,從而使網(wǎng)絡(luò)傳輸質(zhì)量變差,并且在大流量 的情況下會(huì)導(dǎo)致系統(tǒng)壓力過(guò)大由此可見,單單采用傳統(tǒng)的TCP窗口整流技術(shù)或僅采用基于隊(duì)列的流控技術(shù)都無(wú) 法得到較好的流控效果,無(wú)法滿足日益增長(zhǎng)的流控目標(biāo)需求。
發(fā)明內(nèi)容
本發(fā)明提供了一種能解決以上問(wèn)題的網(wǎng)絡(luò)流量控制系統(tǒng)及方法。在第一方面,本發(fā)明提供了一種網(wǎng)絡(luò)流量控制系統(tǒng),該系統(tǒng)包括UDP包過(guò)濾模塊、 流控參數(shù)更新模塊和TCP窗口整形模塊。該流控參數(shù)更新模塊用于接收流入該系統(tǒng)的數(shù)據(jù)包,并根據(jù)該數(shù)據(jù)包流速及系統(tǒng)
4設(shè)定的流控目標(biāo),計(jì)算該系統(tǒng)的流控狀態(tài)、UDP包過(guò)濾比例、TCP窗口整形比例,且該流控狀 態(tài)包括需要流控和不需要流控兩種狀態(tài)。該UDP包過(guò)濾模塊用于接收所述流控狀態(tài)、UDP包 過(guò)濾比例,且在該流控狀態(tài)為需要流控時(shí),根據(jù)該UDP包過(guò)濾比例,對(duì)流入該系統(tǒng)的UDP數(shù) 據(jù)包進(jìn)行過(guò)濾。該TCP窗口整形模塊用于接收經(jīng)該UDP包過(guò)濾模塊過(guò)濾后的數(shù)據(jù)包,并接 收流控狀態(tài)和TCP窗口整形比例,且在該流控狀態(tài)為需要流控時(shí),根據(jù)該數(shù)據(jù)包的TCP窗口 大小及所述TCP窗口整形比例,對(duì)該過(guò)濾UDP包后的數(shù)據(jù)包進(jìn)行TCP窗口整形。在第二方面,本發(fā)明提供了一種網(wǎng)絡(luò)流量控制方法。首先接收流入系統(tǒng)的數(shù)據(jù)包, 并根據(jù)該數(shù)據(jù)包的流速及系統(tǒng)設(shè)定的流控目標(biāo),計(jì)算系統(tǒng)的流控狀態(tài)及UDP包過(guò)濾比例、 TCP窗口整形比例,且該流控狀態(tài)包括需要流控和不需要流控兩種狀態(tài)。然后在流控狀態(tài)為 需要流控時(shí),根據(jù)該UDP包過(guò)濾比例,對(duì)該流入系統(tǒng)的UDP數(shù)據(jù)包進(jìn)行過(guò)濾。最后根據(jù)該數(shù) 據(jù)包的TCP窗口大小及所述TCP窗口整形比例,對(duì)該過(guò)濾UDP包后的數(shù)據(jù)包進(jìn)行TCP窗口 整形。本發(fā)明相對(duì)于傳統(tǒng)TCP窗口整形技術(shù)來(lái)說(shuō),能夠控制TCP、UDP混合流量,使流控更 加全面準(zhǔn)確,并且能夠保證連接之間的公平性,還能夠通過(guò)負(fù)反饋快速收斂到流控目標(biāo)。本發(fā)明相對(duì)于傳統(tǒng)隊(duì)列流控技術(shù)來(lái)說(shuō),能夠有效的抑制TCP發(fā)送方的發(fā)送速率, 同時(shí)還能夠在大量新并發(fā)連接持續(xù)產(chǎn)生的情況下快速抑制TCP發(fā)送速率,并且能夠減少 TCP發(fā)送方的重傳,大大減輕了設(shè)備的壓力。此外,由于本發(fā)明的映射表可配置,因此流控方 式更加靈活,且算法開銷更小。綜上所述,本發(fā)明的流控方法克服了傳統(tǒng)TCP窗口整形流控以及傳統(tǒng)基于隊(duì)列流 控的不足,保證了 TCP、UDP流量在整個(gè)通道內(nèi)的公平。
下面將參照附圖對(duì)本發(fā)明的具體實(shí)施方案進(jìn)行更詳細(xì)的說(shuō)明,在附圖中圖1是本發(fā)明一個(gè)實(shí)施例的網(wǎng)絡(luò)流量控制系統(tǒng)示意圖;圖2是本發(fā)明一個(gè)實(shí)施例的圖1中流控參數(shù)更新模塊結(jié)構(gòu)示意圖;圖3是本發(fā)明一個(gè)實(shí)施例的圖1中TCP窗口整形模塊結(jié)構(gòu)示意圖。
具體實(shí)施例方式圖1是本發(fā)明一個(gè)實(shí)施例的網(wǎng)絡(luò)流量控制系統(tǒng)示意圖,該流控系統(tǒng)包括流控配置 模塊120、流控參數(shù)更新模塊130、UDP包過(guò)濾模塊140、TCP窗口整形模塊150、隊(duì)列流控模 塊 160。流控配置模塊120用于配置流控目標(biāo),并將該流控目標(biāo)發(fā)送至流控參數(shù)更新模塊 130和列隊(duì)流控模塊160,且該流控目標(biāo)是用戶期望得到的網(wǎng)絡(luò)流速。流控參數(shù)更新模塊130用于定期接收流入通道內(nèi)的數(shù)據(jù)包并接收數(shù)據(jù)包流速,以 及接收來(lái)自流控配置模塊120的流控目標(biāo),根據(jù)該數(shù)據(jù)包流速及流控目標(biāo)判定系統(tǒng)當(dāng)前的 流控狀態(tài),并更新流控參數(shù),該流控參數(shù)包括UDP包過(guò)濾比例和TCP窗口整形比例,然后再 將該UDP包過(guò)濾比例及當(dāng)前流控狀態(tài)發(fā)送至UDP包過(guò)濾模塊140,將當(dāng)前流控狀態(tài)及TCP窗 口整形比例發(fā)送至TCP窗口整形模塊150。其中,所述流控狀態(tài)包括需要流控和不需要流控兩種狀態(tài)。此外,多長(zhǎng)時(shí)間判定一次系統(tǒng)是否需要流控,即流控周期的判定,通過(guò)流控參數(shù)更新模塊130來(lái)配置。更加詳細(xì)的流控參數(shù)更新模塊130的工作原理,以及如何判定流控狀態(tài)、如何計(jì) 算UDP包過(guò)濾比例、TCP窗口整形比例,將通過(guò)圖2及其相應(yīng)說(shuō)明部分得到詳盡闡述。UDP包過(guò)濾模塊140用于接收流入通道內(nèi)的數(shù)據(jù)包,并定期(一個(gè)流控周期)接收 來(lái)自流控參數(shù)更新模塊130的流控狀態(tài)、UDP包過(guò)濾比例;且在其接收到的流控狀態(tài)為需要 流控時(shí),根據(jù)該UDP包過(guò)濾比例,對(duì)其接收到的UDP數(shù)據(jù)包進(jìn)行過(guò)濾,再將過(guò)濾后的數(shù)據(jù)包 及流速發(fā)送至流控參數(shù)更新模塊130,以便流控參數(shù)更新模塊130根據(jù)其接收到的當(dāng)前流 控狀態(tài)、UDP包過(guò)濾后的流速調(diào)整下一流控周期的流控狀態(tài)及UDP包過(guò)濾比例。TCP窗口整形模塊150接收來(lái)自UDP包過(guò)濾模塊140的數(shù)據(jù)包,并定期(一個(gè)流控周期)接收來(lái)自流控參數(shù)更新模塊130的流控狀態(tài)和TCP窗口整形比 例;且在其接收到的流控狀態(tài)為需要流控時(shí),根據(jù)該TCP窗口整形比例,采用TCP窗口整形 方法對(duì)過(guò)濾后的數(shù)據(jù)包進(jìn)行窗口整形,具體TCP窗口整形方法及TCP窗口整形模塊150的 工作原理將通過(guò)圖3及其相應(yīng)說(shuō)明部分得到詳盡闡述。隊(duì)列流控模塊160接收來(lái)自流控配置模塊120的流控目標(biāo),并采用隊(duì)列流控方法 對(duì)經(jīng)TCP窗口整形后的流量做進(jìn)一步的整形處理,以便輸出的流量平緩。該隊(duì)列流控方法 可以采用任意一種隊(duì)列流控方法,如基于令牌桶的隊(duì)列流控方法。圖2是本發(fā)明一個(gè)實(shí)施例的圖1中流控參數(shù)更新模塊結(jié)構(gòu)示意圖,該流控參數(shù)更 新模塊130包括流控狀態(tài)計(jì)算模塊131、UDP包過(guò)濾比例計(jì)算模塊132、窗口整形比例計(jì)算 模塊133。流控狀態(tài)計(jì)算模塊131接收來(lái)自流控配置模塊120的流控目標(biāo),并接收流入通道 內(nèi)數(shù)據(jù)包的流速,然后計(jì)算當(dāng)前流控狀態(tài)。一個(gè)例子中,在當(dāng)前數(shù)據(jù)包流速大于流控目標(biāo)時(shí),流控狀態(tài)為需要流控,反之則不 需要流控。另一個(gè)例子中,在當(dāng)前數(shù)據(jù)包流速超過(guò)流控目標(biāo)一定數(shù)值時(shí),流控狀態(tài)為需要流 控,反之則不需要流控。又一個(gè)例子,在當(dāng)前數(shù)據(jù)包流速超過(guò)流控目標(biāo)一定百分比(如超過(guò) 20% )時(shí),流控狀態(tài)為需要流控,反之則不需要流控。較佳地,流控狀態(tài)的退出機(jī)制為,僅當(dāng)數(shù)據(jù)包流速低于流控目標(biāo)一定時(shí)間(如10 個(gè)計(jì)數(shù)周期)后,流控狀態(tài)才會(huì)被更新為不需要流控,以便使流速平穩(wěn)。需要說(shuō)明的是,流控狀態(tài)的判斷方法有多種,本實(shí)施例僅以以上三種判別方法為 例加以闡述。UDP包過(guò)濾比例計(jì)算模塊132用于確定UDP包的過(guò)濾比例,并將得到的該UDP包過(guò) 濾比例發(fā)送至UDP包過(guò)濾模塊140。一個(gè)例子中,UDP包過(guò)濾比例計(jì)算模塊132接收流控目 標(biāo)、當(dāng)前數(shù)據(jù)包流速,然后計(jì)算該當(dāng)前數(shù)據(jù)包流速偏離流控目標(biāo)的比例,若該偏離比例超過(guò) 一定數(shù)值,則選取較大的UDP包過(guò)濾比例,反之則選取較小的UDP包過(guò)濾比例。另一個(gè)例子 中,配置UDP包的過(guò)濾比例,使其成為一個(gè)定值。需要說(shuō)明的是,UDP包過(guò)濾比例的計(jì)算方法有多種,本實(shí)施例僅以以上兩種方法為 例加以闡述。窗口整形比例計(jì)算模塊133通過(guò)查表法來(lái)確定TCP窗口的縮放比例,以控制TCP 窗口的大??;其中,所述表是一個(gè)可配置表,其表示過(guò)濾UDP包后的流速與流控目標(biāo)之間的比值,與TCP窗口縮放比例之間的相互關(guān)系,如表1所示。表1中,R'表示過(guò)濾UDP包后 的流速,A表示流控目標(biāo),M表示TCP窗口縮放比例。需要說(shuō)明的是,該表1僅是一個(gè)例子, 表1中的具體數(shù)值可配置,并且該可配置表需要被配置成具有負(fù)反饋功能,也就是說(shuō),當(dāng)流 速超過(guò)流控目標(biāo)較大時(shí),TCP窗口縮小的比例較大;流速超過(guò)流控目標(biāo)較小時(shí),TCP窗口縮 小比例較?。欢?dāng)流速低于流控目標(biāo)較多時(shí),需要增大TCP接收窗口,以防止流量被過(guò)度抑 制。由此可見,本實(shí)施例的查表法優(yōu)勢(shì)如下表配置靈活、達(dá)到通道流控目標(biāo)的效率更高且 充分利用了網(wǎng)絡(luò)帶寬。
表 1圖3是本發(fā)明一個(gè)實(shí)施例的圖1中TCP窗口整形模塊結(jié)構(gòu)示意圖,該TCP窗口整 形模塊150包括窗口比例更新模塊151、轉(zhuǎn)發(fā)包窗口更新模塊153。窗口比例更新模塊151接收來(lái)自UDP包過(guò)濾模塊140過(guò)濾后的數(shù)據(jù)包,在此稱該 數(shù)據(jù)包為轉(zhuǎn)發(fā)包(該轉(zhuǎn)發(fā)包包含該轉(zhuǎn)發(fā)包的累積TCP窗口整形比例),以及接收來(lái)自流控參 數(shù)更新模塊130的流控狀態(tài)和轉(zhuǎn)發(fā)包所屬通道在當(dāng)前周期的TCP窗口整形比例,并根據(jù)該 轉(zhuǎn)發(fā)包中的信息獲得該轉(zhuǎn)發(fā)包所屬連接的累積TCP窗口整形比例,再根據(jù)該來(lái)自流控參數(shù) 更新模塊130的流控狀態(tài)、轉(zhuǎn)發(fā)包所屬通道在當(dāng)前周期的TCP窗口整形比例以及根據(jù)該轉(zhuǎn) 發(fā)包的累積TCP窗口整形比例,更新該轉(zhuǎn)發(fā)包所屬連接在當(dāng)前周期的TCP窗口整形比例。具體地,在流控狀態(tài)為需要流控時(shí),該更新后的TCP窗口整形比例等于來(lái)自流控 參數(shù)更新模塊130的TCP窗口整形比例與所述累積TCP窗口整形比例之積。舉例如,該轉(zhuǎn)發(fā)包所屬連接在第一流控周期的TCP窗口整形比例為100%,若第二流控周期的TCP窗口整 形比例為80%,則經(jīng)第二流控周期后的累積TCP窗口整形比例為100% *80%= 80%;若第 三流控周期的TCP窗口整形比例為70%,則經(jīng)第三流控周期后的TCP窗口整形比例為80% *70 % = 56 % ;若第四流控周期的TCP窗口整形比例為50 %,則經(jīng)第四周期后的TCP窗口整 形比例為56 % *50 % = 28 %,如此反復(fù),從而得到更新后的TCP窗口整形比例(如當(dāng)前周期 為第四周期,則更新后的TCP窗口整形比例為28% ),然后再將該更新后的TCP窗口整形比 例發(fā)送至轉(zhuǎn)發(fā)包窗口更新模塊153中。轉(zhuǎn)發(fā)包窗口更新模塊153接收來(lái)自窗口比例更新模塊151的更新后的TCP窗口整 形比例,以及接收來(lái)自UDP包過(guò)濾模塊140的當(dāng)前轉(zhuǎn)發(fā)包,并根據(jù)該當(dāng)前轉(zhuǎn)發(fā)包中信息得到 該轉(zhuǎn)發(fā)包的TCP窗口大小,然后根據(jù)該更新后的TCP窗口整形比例以及所述轉(zhuǎn)發(fā)包的TCP 窗口大小,計(jì)算該轉(zhuǎn)發(fā)包的最新TCP窗口大小并對(duì)其做更新,再將該已更新窗口的轉(zhuǎn)發(fā)包 發(fā)送至列隊(duì)流控模塊160。由于不同應(yīng)用及操作系統(tǒng)的初始接收窗口大小不同,如wi ndows系統(tǒng)的初始接收 窗口為65535,Linux系統(tǒng)的初始接收窗口為8760,因此為了防止流量被過(guò)分抑制,現(xiàn)將該 更新后的窗口大小設(shè)置在一定范圍之內(nèi),舉例如,設(shè)置TCP窗口最大值為8760,TCP窗口最 小值為1460。具體地,轉(zhuǎn)發(fā)包窗口更新模塊153接收來(lái)自UDP包過(guò)濾模塊140的轉(zhuǎn)發(fā)包,然后判 斷該轉(zhuǎn)發(fā)包的TCP窗口大小是否超過(guò)系統(tǒng)設(shè)定的最大TCP窗口值(如8760),若超過(guò),則將 該最大TCP窗口值(如8760)與來(lái)自窗口比例更新模塊151的更新后的TCP窗口整形比例 做乘積,再將該乘積值作為該轉(zhuǎn)發(fā)包的TCP窗口值;若未超過(guò),則將該轉(zhuǎn)發(fā)包的TCP窗口大 小與該更新后的TCP窗口整形比例做乘積,然后再判定該乘積值是否低于系統(tǒng)設(shè)定的最小 TCP窗口值(如1460);若低于,則將該最小TCP窗口值(如1460)作為該轉(zhuǎn)發(fā)包的窗口值; 若未低于,則將所述乘積值作為該轉(zhuǎn)發(fā)包的TCP窗口值。顯而易見,在不偏離本發(fā)明的真實(shí)精神和范圍的前提下,在此描述的本發(fā)明可以 有許多變化。因此,所有對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)顯而易見的改變,都應(yīng)包括在本權(quán)利要求 書所涵蓋的范圍之內(nèi)。本發(fā)明所要求保護(hù)的范圍僅由所述的權(quán)利要求書進(jìn)行限定。
權(quán)利要求
一種網(wǎng)絡(luò)流量控制系統(tǒng),其特征在于,包括UDP包過(guò)濾模塊、流控參數(shù)更新模塊、TCP窗口整形模塊;該流控參數(shù)更新模塊用于接收流入該系統(tǒng)的數(shù)據(jù)包,并根據(jù)該數(shù)據(jù)包流速及系統(tǒng)設(shè)定的流控目標(biāo),計(jì)算該系統(tǒng)的流控狀態(tài)、UDP包過(guò)濾比例、TCP窗口整形比例,且該流控狀態(tài)包括需要流控和不需要流控兩種狀態(tài);該UDP包過(guò)濾模塊用于接收所述流控狀態(tài)、UDP包過(guò)濾比例,且在該流控狀態(tài)為需要流控時(shí),根據(jù)該UDP包過(guò)濾比例,對(duì)該流入系統(tǒng)的UDP數(shù)據(jù)包進(jìn)行過(guò)濾;該TCP窗口整形模塊用于接收經(jīng)該UDP包過(guò)濾模塊過(guò)濾后的數(shù)據(jù)包,并接收來(lái)自該流控參數(shù)更新模塊的流控狀態(tài)和TCP窗口整形比例,且在該流控狀態(tài)為需要流控時(shí),根據(jù)該數(shù)據(jù)包的TCP窗口大小及所述TCP窗口整形比例,對(duì)該過(guò)濾UDP包后的數(shù)據(jù)包進(jìn)行TCP窗口整形。
2.如權(quán)利要求1所述的一種網(wǎng)絡(luò)流量控制系統(tǒng),其特征在于,包括隊(duì)列流控模塊,該隊(duì) 列流控模塊用于接收流控目標(biāo),并基于該流控目標(biāo)對(duì)由所述TCP窗口整形模塊進(jìn)行窗口整 形后的數(shù)據(jù)包流速,進(jìn)行隊(duì)列流控處理,以便輸出的流量平滑。
3.如權(quán)利要求1所述的一種網(wǎng)絡(luò)流量控制系統(tǒng),其特征在于,包括流控配置模塊,該流 控配置模塊用于配置所述流控目標(biāo)。
4.如權(quán)利要求1所述的一種網(wǎng)絡(luò)流量控制系統(tǒng),其特征在于,所述流控參數(shù)更新模塊 包括流控狀態(tài)計(jì)算模塊、窗口整形比例計(jì)算模塊;該流控狀態(tài)計(jì)算模塊根據(jù)所述數(shù)據(jù)包流速及流控目標(biāo),計(jì)算當(dāng)前流控狀態(tài);該窗口整形比例計(jì)算模塊通過(guò)查表來(lái)確定TCP窗口的縮放比例,以控制TCP窗口的大 ?。黄渲?,所述表是一個(gè)可配置表,且該表被配置成具有負(fù)反饋功能,其用于表示該經(jīng)UDP 包過(guò)濾模塊過(guò)濾后的數(shù)據(jù)包流速與流控目標(biāo)之間的比值,與TCP窗口縮放比例之間的相互 關(guān)系。
5.如權(quán)利要求4所述的一種網(wǎng)絡(luò)流量控制系統(tǒng),其特征在于,所述當(dāng)前流控狀態(tài)的計(jì) 算方式為判定該數(shù)據(jù)包流速與流控目標(biāo)之間的大小關(guān)系,在該數(shù)據(jù)包流速大于流控目標(biāo)時(shí),該 當(dāng)前流控狀態(tài)為需要流控,反之則不需要流控;或判定該數(shù)據(jù)包流速與流控目標(biāo)之間的百分比,在該數(shù)據(jù)包流速大于流控目標(biāo)一定百分 比時(shí),該當(dāng)前流控狀態(tài)為需要流控,反之則不需要流控。
6.如權(quán)利要求4所述的一種網(wǎng)絡(luò)流量控制系統(tǒng),其特征在于,所述需要流控狀態(tài)的退 出機(jī)制為,數(shù)據(jù)包流速低于流控目標(biāo)的時(shí)間達(dá)到時(shí)間閾值后,流控狀態(tài)更新為不需要流控。
7.如權(quán)利要求4所述的一種網(wǎng)絡(luò)流量控制系統(tǒng),其特征在于,所述流控參數(shù)更新模塊 還包括UDP包過(guò)濾比例計(jì)算模塊;UDP包過(guò)濾比例計(jì)算模塊用于獲得UDP包的過(guò)濾比例,并將得到的該UDP包過(guò)濾比例發(fā) 送至UDP包過(guò)濾模塊;其中,所述UDP包過(guò)濾比例的獲得方式為計(jì)算所述數(shù)據(jù)包流速偏離流控目標(biāo)的比例,若該偏離比例超過(guò)一定閾值,則選取較大 的UDP包過(guò)濾比例,反之則選取較小的UDP包過(guò)濾比例;或配置UDP包的過(guò)濾比例為一個(gè)固定數(shù)值。
8.如權(quán)利要求1所述的一種網(wǎng)絡(luò)流量控制系統(tǒng),其特征在于,所述TCP窗口整形模塊包括窗口比例更新模塊;該窗口比例更新模塊用于接收來(lái)自該UDP包過(guò)濾模塊過(guò)濾后的數(shù)據(jù)包,以及接收來(lái)自 流控參數(shù)更新模塊的流控狀態(tài)和TCP窗口整形比例,并根據(jù)該接收到數(shù)據(jù)包中信息獲得其 所屬連接的累積TCP窗口整形比例,再根據(jù)來(lái)自流控參數(shù)更新模塊的流控狀態(tài)、TCP窗口整 形比例以及所述累積TCP窗口整形比例,更新該連接的TCP窗口整形比例。
9.如權(quán)利要求8所述的一種網(wǎng)絡(luò)流量控制系統(tǒng),其特征在于,所述TCP窗口整形模塊還 包括轉(zhuǎn)發(fā)包窗口更新模塊;且該轉(zhuǎn)發(fā)包窗口更新模塊包括接收來(lái)自該窗口比例更新模塊的更新后的TCP窗口整形比例,以及接收來(lái)自UDP包過(guò) 濾模塊的數(shù)據(jù)包,并根據(jù)該數(shù)據(jù)包中信息得到該數(shù)據(jù)包TCP窗口大小的模塊;以及根據(jù)該更新后的TCP窗口整形比例以及由數(shù)據(jù)包信息中得到的TCP窗口大小,計(jì)算該 數(shù)據(jù)包的最新TCP窗口大小的模塊。
10.如權(quán)利要求9所述的一種網(wǎng)絡(luò)流量控制系統(tǒng),其特征在于,所述計(jì)算該數(shù)據(jù)包最新 TCP窗口大小的模塊包括判定該數(shù)據(jù)包的TCP窗口大小是否超過(guò)系統(tǒng)設(shè)定的最大TCP窗口閾值,若超過(guò)該閾值, 則將該最大TCP窗口閾值與所述更新后的TCP窗口整形比例做乘積,并將該乘積值作為該 數(shù)據(jù)包TCP窗口值的子模塊;若未超過(guò)所述閾值,則將該數(shù)據(jù)包的TCP窗口大小與該更新后的TCP窗口整形比例做 乘積,再判定該乘積值是否低于最小TCP窗口值的子模塊;若所述乘積值低于該最小TCP窗口值,將該最小TCP窗口值作為該數(shù)據(jù)包TCP窗口值 的子模塊;若所述乘積值未低于該最小TCP窗口值,則將所述乘積值作為該數(shù)據(jù)包TCP窗口值的 子模塊。
11.一種網(wǎng)絡(luò)流量控制方法,其特征在于,包括步驟a,接收流入系統(tǒng)的數(shù)據(jù)包,并根據(jù)該數(shù)據(jù)包的流速及系統(tǒng)設(shè)定的流控目標(biāo),計(jì)算 系統(tǒng)的流控狀態(tài)及UDP包過(guò)濾比例、TCP窗口整形比例,且該流控狀態(tài)包括需要流控和不需 要流控兩種狀態(tài);步驟b,在所述流控狀態(tài)為需要流控時(shí),根據(jù)該UDP包過(guò)濾比例,對(duì)該流入系統(tǒng)的UDP數(shù) 據(jù)包進(jìn)行過(guò)濾;步驟c,根據(jù)該數(shù)據(jù)包的TCP窗口大小及所述TCP窗口整形比例,對(duì)該過(guò)濾UDP包后的 數(shù)據(jù)包進(jìn)行TCP窗口整形。
全文摘要
本發(fā)明涉及一種網(wǎng)絡(luò)流量控制系統(tǒng)及方法。本發(fā)明包括UDP包過(guò)濾模塊、流控參數(shù)更新模塊和TCP窗口整形模塊。該流控參數(shù)更新模塊用于接收流入該系統(tǒng)的數(shù)據(jù)包,并根據(jù)該數(shù)據(jù)包流速及系統(tǒng)設(shè)定的流控目標(biāo),計(jì)算該系統(tǒng)的流控狀態(tài)、UDP包過(guò)濾比例、TCP窗口整形比例。該UDP包過(guò)濾模塊用于接收流控狀態(tài)、UDP包過(guò)濾比例,且在該流控狀態(tài)為需要流控時(shí),根據(jù)該UDP包過(guò)濾比例,對(duì)該流入系統(tǒng)的UDP數(shù)據(jù)包進(jìn)行過(guò)濾。該TCP窗口整形模塊用于接收該過(guò)濾后的數(shù)據(jù)包、流控狀態(tài)、TCP窗口整形比例,并根據(jù)該數(shù)據(jù)包的TCP窗口大小及TCP窗口整形比例,對(duì)該過(guò)濾后的數(shù)據(jù)包進(jìn)行窗口整形。本發(fā)明能夠廣泛應(yīng)用于網(wǎng)絡(luò)流控系統(tǒng)中。
文檔編號(hào)H04L12/56GK101917349SQ20101027543
公開日2010年12月15日 申請(qǐng)日期2010年9月8日 優(yōu)先權(quán)日2010年9月8日
發(fā)明者才華, 斯俊偉, 梁志勇, 梁斌, 米佳 申請(qǐng)人:北京網(wǎng)康科技有限公司