專利名稱:一種網(wǎng)絡(luò)流量控制方法、裝置及局域網(wǎng)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種網(wǎng)絡(luò)流量控制方法、裝置及局域網(wǎng)系 統(tǒng)。
背景技術(shù):
在ADSL (Asymmetric Digital Subscriber Line,非對(duì)稱數(shù)字用戶環(huán)路)等帶寬有 限的網(wǎng)絡(luò)環(huán)境中,有些網(wǎng)絡(luò)應(yīng)用(比如常見(jiàn)的P2P應(yīng)用,包括流媒體、BT下載等)通常會(huì)占 用大量的上行下行帶寬,導(dǎo)致其它的網(wǎng)絡(luò)應(yīng)用請(qǐng)求阻塞或者受到干擾?,F(xiàn)有技術(shù)采用的帶寬調(diào)度方法有多種,其中一種方法是在網(wǎng)卡端進(jìn)行控制。例如, 對(duì)于上行帶寬,預(yù)先設(shè)置上行帶寬限制閾值,將攔截到的上行數(shù)據(jù)包存入上行數(shù)據(jù)緩存隊(duì) 列,每攔截到一個(gè)上行數(shù)據(jù)包時(shí),判斷上行數(shù)據(jù)緩存隊(duì)列中的數(shù)據(jù)包所占帶寬是否超過(guò)預(yù) 置的上行帶寬限制閾值,如果超過(guò),則將該攔截到的上行數(shù)據(jù)包丟棄,否則,將該上行數(shù)據(jù) 包加入到上行緩存隊(duì)列中等待發(fā)送。這樣,使得上行緩存隊(duì)列中的數(shù)據(jù)包始終保持在上行 帶寬限制閾值內(nèi)。對(duì)于下行帶寬,也采用類似的方法進(jìn)行控制。但是,對(duì)于下行數(shù)據(jù)包而言,由于先到達(dá)調(diào)制解調(diào)器,再到達(dá)網(wǎng)卡,而主要的網(wǎng)絡(luò) 帶寬瓶頸在于調(diào)制解調(diào)器(通常下行速率都是1-2M),而不是網(wǎng)卡(目前一般都采用1000M 網(wǎng)卡),因此,在該現(xiàn)有技術(shù)中,通過(guò)在網(wǎng)卡端進(jìn)行的下行帶寬調(diào)度,無(wú)法解決下行數(shù)據(jù)阻塞 問(wèn)題。對(duì)于上行數(shù)據(jù)包而言,雖然能夠避免上行數(shù)據(jù)的阻塞,但是無(wú)法控制下行數(shù)據(jù)包對(duì) 下行帶寬的占用,同樣可能會(huì)造成下行數(shù)據(jù)阻塞;例如,當(dāng)上行數(shù)據(jù)緩存隊(duì)列中包含大量的 P2P應(yīng)用數(shù)據(jù)時(shí)(雖然可能已經(jīng)被丟棄了一部分),那么下行帶寬仍然可能會(huì)被P2P應(yīng)用的 下行數(shù)據(jù)包占滿,使得其他網(wǎng)絡(luò)應(yīng)用無(wú)法接收到下行數(shù)據(jù)??梢?jiàn),該現(xiàn)有技術(shù)無(wú)法避免個(gè)別 網(wǎng)絡(luò)應(yīng)用對(duì)其他網(wǎng)絡(luò)應(yīng)用的影響。
發(fā)明內(nèi)容
本發(fā)明提供一種網(wǎng)絡(luò)流量控制方法、裝置及局域網(wǎng)系統(tǒng),能夠降低個(gè)別網(wǎng)絡(luò)應(yīng)用 對(duì)其他網(wǎng)絡(luò)應(yīng)用的影響。本發(fā)明提供了如下方案一種網(wǎng)絡(luò)流量控制方法,包括監(jiān)測(cè)新到來(lái)的待發(fā)送上行數(shù)據(jù)包;當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),按照以下方式對(duì)所述待發(fā)送上行數(shù)據(jù)包 進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù) 包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列;當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自 預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包時(shí),根據(jù)當(dāng)前的帶寬占用情況,判斷是否允 許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述第二上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列, 否則將所述第二上行數(shù)據(jù)包丟棄。優(yōu)選的,所述根據(jù)當(dāng)前的帶寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,包括獲得本機(jī)上行發(fā)送緩存隊(duì)列的當(dāng)前水位值;其中,所述當(dāng)前水位值為上一統(tǒng)計(jì) 時(shí)刻獲得的水位值與從所述上一統(tǒng)計(jì)時(shí)刻到當(dāng)前統(tǒng)計(jì)時(shí)刻流出的數(shù)據(jù)量之差;所述流出的 數(shù)據(jù)量為所述上一統(tǒng)計(jì)時(shí)刻到當(dāng)前統(tǒng)計(jì)時(shí)刻的時(shí)間差與數(shù)據(jù)量流出速率之積;判斷所述當(dāng)前水位值與所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量之和是否小于預(yù)置的水位閾值,如果是,則允許發(fā)送所述第二上行數(shù)據(jù)包;其中,所述數(shù)據(jù)量流出速率及預(yù)置的水 位閾值根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)包上傳速率確定。優(yōu)選的,所述非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用包括多個(gè)優(yōu)先級(jí)級(jí)別,各個(gè)優(yōu)先級(jí)級(jí)別具有不 同的預(yù)置水位閾值;所述判斷所述當(dāng)前水位值與所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量之和是否 小于預(yù)置的水位閾值包括確定所述第二上行數(shù)據(jù)包的優(yōu)先級(jí)級(jí)別及該優(yōu)先級(jí)級(jí)別對(duì)應(yīng)的水位閾值;判斷所述當(dāng)前水位值與所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量之和是否小于該優(yōu)先級(jí) 級(jí)別對(duì)應(yīng)的水位閾值。優(yōu)選的,當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù) 據(jù)包時(shí),還包括降低所述數(shù)據(jù)量流出速率,以便提高所述獲得的當(dāng)前水位值。優(yōu)選的,還包括如果從降低所述數(shù)據(jù)量流出速率時(shí)起的第一預(yù)置時(shí)間段內(nèi),沒(méi)有監(jiān)測(cè)到所述第一 上行數(shù)據(jù)包,則按照預(yù)置的速率恢復(fù)步長(zhǎng),恢復(fù)所述數(shù)據(jù)量流出速率。優(yōu)選的,還包括如果從監(jiān)測(cè)到第一上行數(shù)據(jù)包時(shí)起的第二預(yù)置時(shí)間段內(nèi),沒(méi)有監(jiān)測(cè)到新到來(lái)的所 述第一上行數(shù)據(jù)包,則將所述數(shù)據(jù)量流出速率提高到預(yù)置的足夠大的值。優(yōu)選的將預(yù)置時(shí)間段設(shè)置為一個(gè)時(shí)間片,滑動(dòng)窗口內(nèi)包括多個(gè)時(shí)間片,每經(jīng)過(guò)一 個(gè)時(shí)間片將所述滑動(dòng)窗口向后移動(dòng)一個(gè)時(shí)間片;所述當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù) 包時(shí)還包括將所述第一上行數(shù)據(jù)包所占數(shù)據(jù)量加入到所述監(jiān)測(cè)時(shí)刻所在的時(shí)間片中;所述根據(jù)當(dāng)前的帶寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包包括獲 得所述滑動(dòng)窗口內(nèi)當(dāng)前各時(shí)間片中的總數(shù)據(jù)量;判斷所述總數(shù)據(jù)量與所述第二上行數(shù)據(jù)包 所占數(shù)據(jù)量之和是否小于預(yù)置的數(shù)據(jù)量閾值,如果是,則允許發(fā)送所述第二上行數(shù)據(jù)包,并 將所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量加入到對(duì)應(yīng)的時(shí)間片中;其中,所述數(shù)據(jù)量閾值根據(jù)實(shí) 際網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)包上傳速率確定。優(yōu)選的,所述當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí)包括當(dāng)監(jiān)測(cè)到有所述第一上行數(shù)據(jù)包需要發(fā)送時(shí),則滿足需要進(jìn)行流量控制的觸發(fā)條 件;和/ 或,當(dāng)接收局域網(wǎng)內(nèi)的服務(wù)器或者其他終端發(fā)送的流量控制觸發(fā)消息時(shí),則滿足需要 進(jìn)行流量控制的觸發(fā)條件。一種網(wǎng)絡(luò)流量控制裝置,包括監(jiān)測(cè)單元,用于監(jiān)測(cè)新到來(lái)的待發(fā)送上行數(shù)據(jù)包;
流量控制單元,用于當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),按照以下方式對(duì)所 述待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò) 應(yīng)用的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列;當(dāng)所述待發(fā) 送上行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包時(shí),根據(jù)當(dāng)前的帶寬占 用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述第二上行數(shù)據(jù)包加入到 上行發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù)包丟棄。優(yōu)選的,所述流量控制單元包括水位值獲得子單元,用于獲得上行發(fā)送緩存隊(duì)列的當(dāng)前水位值;其中,所述當(dāng)前水 位值為上一統(tǒng)計(jì)時(shí)刻獲得的水位值與從所述上一統(tǒng)計(jì)時(shí)刻到當(dāng)前統(tǒng)計(jì)時(shí)刻流出的數(shù)據(jù)量 之差;所述流出的數(shù)據(jù)量為所述上一統(tǒng)計(jì)時(shí)刻到當(dāng)前統(tǒng)計(jì)時(shí)刻的時(shí)間差與數(shù)據(jù)量流出速 率之積;水位值判斷子單元,用于判斷所述當(dāng)前水位值與所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量 之和是否小于預(yù)置的水位閾值,如果是,則允許發(fā)送所述第二上行數(shù)據(jù)包;其中,所述數(shù)據(jù) 量流出速率及預(yù)置的水位閾值根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)包上傳速率確定。優(yōu)選的,所述非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用包括多個(gè)優(yōu)先級(jí)級(jí)別,各個(gè)優(yōu)先級(jí)級(jí)別具有不 同的預(yù)置水位閾值;所述水位值判斷子單元包括優(yōu)先級(jí)確定子單元,用于確定所述第二上行數(shù)據(jù)包的優(yōu)先級(jí)級(jí)別及該優(yōu)先級(jí)級(jí)別 對(duì)應(yīng)的水位閾值;判斷子單元,用于判斷所述當(dāng)前水位值與所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量之和是 否小于該優(yōu)先級(jí)級(jí)別對(duì)應(yīng)的水位閾值。優(yōu)選的,當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù) 據(jù)包時(shí),還包括流速調(diào)整單元,用于降低所述數(shù)據(jù)量流出速率,以便提高所述獲得的當(dāng)前水位值。優(yōu)選的,還包括流速恢復(fù)單元,用于如果從降低所述數(shù)據(jù)量流出速率時(shí)起的第一預(yù)置時(shí)間段內(nèi), 沒(méi)有監(jiān)測(cè)到所述第一上行數(shù)據(jù)包,則按照預(yù)置的速率恢復(fù)步長(zhǎng),恢復(fù)所述數(shù)據(jù)量流出速率。優(yōu)選的,還包括流速提高單元,用于如果從監(jiān)測(cè)到第一上行數(shù)據(jù)包時(shí)起的第二預(yù)置時(shí)間段內(nèi),沒(méi) 有監(jiān)測(cè)到新到來(lái)的所述第一上行數(shù)據(jù)包,則將所述數(shù)據(jù)量流出速率提高到預(yù)置的足夠大的值。優(yōu)選的,還包括滑動(dòng)窗口移動(dòng)單元,用于將預(yù)置時(shí)間段設(shè)置為一個(gè)時(shí)間片,滑動(dòng) 窗口內(nèi)包括多個(gè)時(shí)間片,每經(jīng)過(guò)一個(gè)時(shí)間片將所述滑動(dòng)窗口向后移動(dòng)一個(gè)時(shí)間片;所述流量控制單元包括數(shù)據(jù)量更新子單元,用于將所述第一上行數(shù)據(jù)包所占數(shù)據(jù)量加入到所述監(jiān)測(cè)時(shí)刻所在的時(shí)間片中;數(shù)據(jù)量獲得子單元,用于獲得所述滑動(dòng)窗口內(nèi) 當(dāng)前各時(shí)間片中的總數(shù)據(jù)量;數(shù)據(jù)量判斷子單元,用于判斷所述總數(shù)據(jù)量與所述第二上行 數(shù)據(jù)包所占數(shù)據(jù)量之和是否小于預(yù)置的數(shù)據(jù)量閾值,如果是,則允許發(fā)送所述第二上行數(shù) 據(jù)包,并將所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量加入到對(duì)應(yīng)的時(shí)間片中;其中,所述數(shù)據(jù)量閾值 根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)包上傳速率確定。優(yōu)選的,所述流量控制單元包括
第一觸發(fā)單元,用于當(dāng)監(jiān)測(cè)到有所述第一上行數(shù)據(jù)包需要發(fā)送時(shí),則觸發(fā)對(duì)所述 待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制;和/或第二觸發(fā)單元,用于當(dāng)接收局域網(wǎng)內(nèi)的服務(wù)器或者其他終端發(fā)送的流量控制觸發(fā) 消息時(shí),則觸發(fā)對(duì)所述待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制。一種局域網(wǎng)系統(tǒng),至少包括第一終端及第二終端,所述第一終端包括監(jiān)測(cè)單元,用于監(jiān)測(cè)所述第一終端的待發(fā)送上行數(shù)據(jù)包;通 信單元,用于當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),向所述第二終端發(fā)送流量控制觸發(fā) 消息;所述第二終端包括流量控制單元,用于接收到所述流量控制觸發(fā)消息后,按照以 下方式對(duì)所述第二終端的待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái) 自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送 緩存隊(duì)列;當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包 時(shí),根據(jù)當(dāng)前的帶寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述 第二上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù)包丟棄。優(yōu)選的,所述通信單元包括條件判斷子單元,用于當(dāng)監(jiān)測(cè)到所述第一終端有來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的 第一上行數(shù)據(jù)包需要發(fā)送時(shí),確定滿足需要進(jìn)行流量控制的觸發(fā)條件;發(fā)送子單元,用于向所述第二終端發(fā)送流量控制觸發(fā)消息。一種局域網(wǎng)系統(tǒng),包括至少兩個(gè)終端,還包括服務(wù)器,其中,所述服務(wù)器包括監(jiān)測(cè)單元,用于監(jiān)測(cè)所述局域網(wǎng)系統(tǒng)內(nèi)各終端的待發(fā)送上行數(shù) 據(jù)包;通信單元,用于當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),向所述局域網(wǎng)系統(tǒng)內(nèi)的終端 發(fā)送流量控制觸發(fā)消息;所述終端包括流量控制單元,用于接收到所述流量控制觸發(fā)消息后,按照以下方 式對(duì)所述各自的待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置 的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì) 列;當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包時(shí),根 據(jù)當(dāng)前的帶寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述第二上 行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù)包丟棄。優(yōu)選的,所述通信單元包括條件判斷子單元,用于當(dāng)監(jiān)測(cè)到所述某終端有來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第 一上行數(shù)據(jù)包需要發(fā)送時(shí),確定滿足需要進(jìn)行流量控制的觸發(fā)條件;發(fā)送子單元,用于向所述局域網(wǎng)系統(tǒng)內(nèi)的終端發(fā)送流量控制觸發(fā)消息。根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開了以下技術(shù)效果本發(fā)明通過(guò)對(duì)上行數(shù)據(jù)包的發(fā)送進(jìn)行控制,使得高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包 全部可以加入到上行發(fā)送緩存隊(duì)列等待發(fā)送,而低優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)包只有在帶寬允 許的情況下才會(huì)被發(fā)送,如果帶寬不允許則將其丟棄。這樣,由于可以將低優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用 的上行數(shù)據(jù)包丟棄一部分或者全部丟棄,因此,低優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包會(huì)讓出一 部分上行帶寬,使得高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包優(yōu)先發(fā)送出去,避免低優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包對(duì)上行帶寬的搶占;同時(shí),由于低優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包被丟棄了 一部分或者是全部,因此,針對(duì)該低優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的下行數(shù)據(jù)包由于收不到應(yīng)答而減少 發(fā)送或不發(fā)送,因此,低優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用也會(huì)讓出一部分下行帶寬,從而間接地保證了高優(yōu) 先級(jí)網(wǎng)絡(luò)應(yīng)用下行鏈路的暢通。可見(jiàn),通過(guò)網(wǎng)絡(luò)應(yīng)用優(yōu)先級(jí)的劃分,以及對(duì)低優(yōu)先級(jí)上行數(shù) 據(jù)包發(fā)送情況的控制,可以降低個(gè)別網(wǎng)絡(luò)應(yīng)用對(duì)其他網(wǎng)絡(luò)應(yīng)用的影響。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面 將對(duì)實(shí)施例中所 需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施 例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲 得其他的附圖。圖1是本發(fā)明實(shí)施例提供的方法的流程圖;圖2是本發(fā)明實(shí)施例提供的裝置的示意圖;圖3是本發(fā)明實(shí)施例提供的局域網(wǎng)系統(tǒng)的示意圖;圖4是本發(fā)明實(shí)施例提供的另一局域網(wǎng)系統(tǒng)的示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的 范圍。在本發(fā)明實(shí)施例中,可以根據(jù)實(shí)際情況需要對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行不同優(yōu)先級(jí)的劃分。 需要說(shuō)明的是,具體哪些網(wǎng)絡(luò)應(yīng)用劃分為高優(yōu)先級(jí),哪些劃分為非高優(yōu)先級(jí),是根據(jù)實(shí)際情 況需要而定的,而且可以調(diào)整,所以,本發(fā)明實(shí)施例對(duì)如何劃分網(wǎng)絡(luò)應(yīng)用的不同優(yōu)先級(jí)沒(méi)有 限制。下面給出的一種優(yōu)先級(jí)劃分,僅僅是一種示例。例如,可以將瀏覽器、即時(shí)通信軟件等 網(wǎng)絡(luò)應(yīng)用劃分為高優(yōu)先級(jí),將其他的對(duì)數(shù)據(jù)實(shí)時(shí)性要求較低、并且對(duì)網(wǎng)絡(luò)帶寬的需求較大、 容易對(duì)其他網(wǎng)絡(luò)應(yīng)用造成影響的網(wǎng)絡(luò)應(yīng)用(如P2P等)確定為非高優(yōu)先級(jí)。然后,在進(jìn)行 流量控制過(guò)程中,對(duì)不同優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包進(jìn)行區(qū)別對(duì)待,以降低個(gè)別網(wǎng)絡(luò) 應(yīng)用對(duì)其他網(wǎng)絡(luò)應(yīng)用的影響。例如,對(duì)于非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包,可以根據(jù)當(dāng)前的帶寬占用情況進(jìn) 行控制,如果當(dāng)前帶寬已經(jīng)被占用很多,則將其上行數(shù)據(jù)包丟棄;但是,對(duì)于高優(yōu)先級(jí)網(wǎng)絡(luò) 應(yīng)用的上行數(shù)據(jù)包,則不會(huì)被丟棄;這樣可以使得非高優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用讓出一部分上行 帶寬,保證高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包能夠發(fā)出;同時(shí),由于丟棄了部分非高優(yōu)先級(jí)的 上行數(shù)據(jù)包,因此針對(duì)該非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的下行數(shù)據(jù)包也會(huì)相應(yīng)的減少,使得非高優(yōu) 先級(jí)網(wǎng)絡(luò)應(yīng)用也可以讓出一部分下行帶寬,使得高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用能夠接收到網(wǎng)絡(luò)對(duì)端發(fā) 送的下行數(shù)據(jù)??傊景l(fā)明實(shí)施例在需要進(jìn)行網(wǎng)絡(luò)流量控制時(shí),通過(guò)對(duì)上行數(shù)據(jù)包的發(fā)送進(jìn)行 控制,使得高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上下行鏈路都得到優(yōu)化,降低個(gè)別網(wǎng)絡(luò)應(yīng)用對(duì)其他網(wǎng)絡(luò)應(yīng) 用的影響。下面通過(guò)具體的實(shí)施例對(duì)如何對(duì)上行數(shù)據(jù)包進(jìn)行控制進(jìn)行詳細(xì)地介紹。
實(shí)施例一首先需要說(shuō)明的是,對(duì)于上行數(shù)據(jù)包而言,由于是先到達(dá)網(wǎng)卡,再經(jīng)調(diào)制解調(diào)器發(fā)送到網(wǎng)絡(luò)中,而網(wǎng)卡的上傳速率遠(yuǎn)大于調(diào)制解調(diào)器的上傳速率,因此,在網(wǎng)卡處存在一個(gè)緩 存器,用于緩存已經(jīng)到達(dá)網(wǎng)卡但尚未被調(diào)制解調(diào)器發(fā)送的上行數(shù)據(jù)包,緩存器中的上行數(shù) 據(jù)包組成上行緩存隊(duì)列?;谏鲜鎏攸c(diǎn),在本發(fā)明實(shí)施例一中,可以預(yù)先設(shè)置一個(gè)參數(shù)上 行發(fā)送緩存隊(duì)列的水位值,該水位值相當(dāng)于是緩存器中的當(dāng)前各個(gè)上行數(shù)據(jù)包所占數(shù)據(jù)量 (所占數(shù)據(jù)單位數(shù)目,如字節(jié)數(shù)、比特?cái)?shù)等)的總和,由于緩存器中的上行數(shù)據(jù)包在不斷地 上傳,因此,調(diào)制解調(diào)器的上傳速率S’相當(dāng)于是數(shù)據(jù)量的流出速率S。同時(shí),還可以根據(jù)當(dāng)前所處的網(wǎng)絡(luò)環(huán)境設(shè)置一水位閾值N。通常情況下,N的取 值可以與調(diào)制解調(diào)器的上傳速率相關(guān),例如,當(dāng)用戶使用IMbps的帶寬時(shí),則理論上個(gè)人用 戶所能獨(dú)享的最大上傳速率為512Kbps(即調(diào)制解調(diào)器的最大上傳速率),將比特?fù)Q算為 字節(jié)之后,該最大上傳速率為64KbyteS/S。由于實(shí)際應(yīng)用中會(huì)有一些損耗,因此實(shí)際的上 傳速率可能無(wú)法達(dá)到該理論上的最大值,因此,本發(fā)明實(shí)施例中的水位閾值可以取略小于 64Kbytes的值,例如可以取40Kbytes等。然后,就可以按照上述設(shè)置對(duì)上行數(shù)據(jù)包的發(fā)送進(jìn)行控制了。具體的,可以預(yù)先設(shè) 定各網(wǎng)絡(luò)應(yīng)用的優(yōu)先級(jí),對(duì)上行數(shù)據(jù)包進(jìn)行監(jiān)測(cè),并判斷各個(gè)數(shù)據(jù)包來(lái)自于哪個(gè)網(wǎng)絡(luò)應(yīng)用 及其優(yōu)先級(jí);當(dāng)發(fā)現(xiàn)有高優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用需要上傳數(shù)據(jù)包時(shí),則啟動(dòng)數(shù)據(jù)包的流量控制 策略。例如,來(lái)自高優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包(為便于描述,本文將來(lái)自高優(yōu)先級(jí)的 網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包稱為第一上行數(shù)據(jù)包)可以不進(jìn)行處理,直接加入到上行緩存隊(duì)列 中等待發(fā)送,同時(shí)更新水位值,即在當(dāng)前水位值的基礎(chǔ)上加上該數(shù)據(jù)包所占數(shù)據(jù)量;而對(duì)于 來(lái)自非高優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包(為便于描述,下文將來(lái)自非高優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng) 用的上行數(shù)據(jù)包稱為第二上行數(shù)據(jù)包)則需要進(jìn)行一定的處理,判斷是否可以被發(fā)送,如 果可以,則將其加入到上行緩存隊(duì)列中等待發(fā)送,同時(shí)更新水位值;否則,將其丟棄,即該數(shù) 據(jù)包不會(huì)加入到網(wǎng)卡的緩存器中,水位值也不會(huì)更新。其中,上述判斷過(guò)程可以按照以下步驟進(jìn)行步驟1 當(dāng)監(jiān)測(cè)到一個(gè)第二上行數(shù)據(jù)包時(shí),利用公式(1)計(jì)算當(dāng)前水位L L = L「(T-T1) *S (1)其中,L1為上一統(tǒng)計(jì)時(shí)刻的水位值;T為當(dāng)前的時(shí)間;T1為上一統(tǒng)計(jì)時(shí)刻的時(shí)間;S為數(shù)據(jù)量的流出速率。其中,S可以取為調(diào)制解調(diào)器的上傳速率S’??梢?jiàn),(T-T1) *S代表從上一統(tǒng)計(jì)時(shí) 刻到當(dāng)前統(tǒng)計(jì)時(shí)刻流出的數(shù)據(jù)量,因此,利用上一統(tǒng)計(jì)時(shí)刻的水位值減去該流出的數(shù)據(jù)量, 就得到上行發(fā)送緩存隊(duì)列的當(dāng)前水位值。步驟2 利用上述計(jì)算出的當(dāng)前水位值加上當(dāng)前監(jiān)測(cè)到的第二上行數(shù)據(jù)包的大 小,將所得結(jié)果與預(yù)先設(shè)置的水位閾值進(jìn)行比較,如果小于該水位閾值,則該第二上行數(shù)據(jù) 包可以被發(fā)送,否則,將該第二上行數(shù)據(jù)包丟棄。之所以按照上述方式進(jìn)行判斷,是因?yàn)椋?dāng)前水位值沒(méi)有達(dá)到水位閾值時(shí),則意味 著來(lái)自高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包可能比較少,相應(yīng)的,該高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用所需的上下行帶寬也比較小,如果僅保留第一上行數(shù)據(jù)包,則會(huì)造成可用帶寬的浪費(fèi)。因此, 為了提高上下行帶寬的利用率,可以在上行發(fā)送緩存隊(duì)列的當(dāng)前水位值比較小時(shí),允許上 傳一些第二上行數(shù)據(jù)包,將空閑的帶寬利用起來(lái)。按照上述方法進(jìn)行控制之后,如果第二上行數(shù)據(jù)包都被丟棄,則對(duì)高優(yōu) 先級(jí)的網(wǎng) 絡(luò)應(yīng)用不會(huì)造成任何影響,并且即使上述允許發(fā)送出去部分第二上行數(shù)據(jù)包,甚至這部分 第二上行數(shù)據(jù)包為P2P等對(duì)下行帶寬需求較高的網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)包,也不會(huì)對(duì)高優(yōu)先級(jí)的 網(wǎng)絡(luò)應(yīng)用造成太大的影響。這是因?yàn)榧僭O(shè)需要發(fā)送的下行數(shù)據(jù)大小共為a,而發(fā)送這些數(shù) 據(jù)時(shí)通常會(huì)被分為多個(gè)數(shù)據(jù)包,發(fā)送第一個(gè)下行數(shù)據(jù)包時(shí)通常是在收到下載該數(shù)據(jù)的請(qǐng)求 之后進(jìn)行的,之后每發(fā)送一個(gè)下行數(shù)據(jù)包時(shí),需要在接收到針對(duì)上一個(gè)下行數(shù)據(jù)包的反饋 之后,才會(huì)繼續(xù)后續(xù)下行數(shù)據(jù)包的發(fā)送。例如,如果使用TCP/IP協(xié)議進(jìn)行數(shù)據(jù)傳輸,則協(xié)議 中規(guī)定,每一個(gè)下行數(shù)據(jù)包,都需要有acknowledge (ACK)消息的回傳,也就是說(shuō),傳輸?shù)南?行數(shù)據(jù)包,需要接收到對(duì)方發(fā)送的一個(gè)代表收到數(shù)據(jù)包的消息回復(fù)之后,才能決定后面的 傳輸速度,或者決定是否重新傳輸遺失的數(shù)據(jù)包。換言之,雖然P2P等網(wǎng)絡(luò)應(yīng)用可能會(huì)占用 較大的下行帶寬,但是在傳輸下行數(shù)據(jù)包的過(guò)程中,需要不斷地接收上行的反饋數(shù)據(jù)包,因 此,如果上行的反饋數(shù)據(jù)包丟失,則上次發(fā)送的下行數(shù)據(jù)包可能會(huì)進(jìn)行兩三次重傳嘗試,如 果仍未收到針對(duì)反饋數(shù)據(jù)包,則可能就不再發(fā)送了,直到再次接收到請(qǐng)求數(shù)據(jù)包時(shí),再繼續(xù) 進(jìn)行剩余下行數(shù)據(jù)包的發(fā)送。而利用上述方法,由于第一上行數(shù)據(jù)包會(huì)全部進(jìn)入到上行發(fā)送緩存隊(duì)列中,因此, 隨著第一上行數(shù)據(jù)包的增加,上行發(fā)送緩存隊(duì)列水位值可能會(huì)不斷上升,根據(jù)公式(1)進(jìn) 行判斷時(shí),能夠被發(fā)送的第二上行數(shù)據(jù)包會(huì)越來(lái)越少。也即,使得非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的對(duì) 端接收不到所需的上行數(shù)據(jù)包,下行數(shù)據(jù)包也就不會(huì)發(fā)送,或者接收到的很少,只能發(fā)送少 量的下行數(shù)據(jù)包,因此,也就不會(huì)占用太多的下行帶寬,從而避免對(duì)高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用造成 太大的影響。例如,假設(shè)某時(shí)刻監(jiān)測(cè)到一個(gè)P2P的上行數(shù)據(jù)包P'工(假設(shè)該數(shù)據(jù)包為針對(duì)已經(jīng) 接收到的下行數(shù)據(jù)包P1的ACK數(shù)據(jù)包),按照前述方法判斷時(shí),結(jié)果是能夠被發(fā)送,因此將 該數(shù)據(jù)包P'工發(fā)送出去;對(duì)端在接收到該上行數(shù)據(jù)包P'工之后,會(huì)發(fā)送下一個(gè)下行數(shù)據(jù) 包己,此時(shí)P2P網(wǎng)絡(luò)應(yīng)用占用的下行帶寬為該下行數(shù)據(jù)包P2占用的帶寬;客戶端的網(wǎng)絡(luò)應(yīng) 用在接收到該下行數(shù)據(jù)包P2之后,需要針對(duì)此次接收生成一個(gè)ACK數(shù)據(jù)包P' 2,并通過(guò)上 行通道返回給對(duì)端。此時(shí),仍然會(huì)監(jiān)測(cè)該上行數(shù)據(jù)包P' 2并判斷是否能夠發(fā)送;由于從監(jiān) 測(cè)到P'工到監(jiān)測(cè)到P' 2這一過(guò)程中,可能已經(jīng)將多個(gè)第一上行數(shù)據(jù)包加入了上行發(fā)送緩 存隊(duì)列中,因此上行發(fā)送緩存隊(duì)列的當(dāng)前水位可能會(huì)高于監(jiān)測(cè)到P'工時(shí)的水位,所以,判斷 的結(jié)果可能是該第二上行數(shù)據(jù)包P' 2不能夠被發(fā)送,從而將其丟棄。這樣,網(wǎng)絡(luò)對(duì)端無(wú)法 接收到第二上行數(shù)據(jù)包P ‘ 2,重傳多次后仍然無(wú)法收到ack,即認(rèn)為此連接失效,不再發(fā)送 下行數(shù)據(jù)包P3、P4等。當(dāng)然,每個(gè)數(shù)據(jù)包的大小可能是不同的,因此,到監(jiān)測(cè)到P' 2時(shí),即使 上行發(fā)送緩存隊(duì)列的水位沒(méi)有上升,也是有可能被丟棄的,這里不再贅述。如前文所述,第二上行數(shù)據(jù)包P' 2如果被丟棄,則網(wǎng)絡(luò)對(duì)端可能會(huì)進(jìn)行幾次重傳, 相應(yīng)的,P2P也會(huì)針對(duì)每次接收到的P2重新生成ACK數(shù)據(jù)包P' 2,并嘗試通過(guò)上行鏈路發(fā) 送到網(wǎng)絡(luò)對(duì)端;而本發(fā)明實(shí)施例也每次都會(huì)監(jiān)測(cè)ACK數(shù)據(jù)包并進(jìn)行判斷,如果上行發(fā)送緩 存隊(duì)列的水位一直比較高,則該數(shù)據(jù)包就一直不會(huì)被發(fā)送,如果過(guò)一段時(shí)間之后,上行發(fā)送緩存隊(duì)列的水位有所下降,該上行數(shù)據(jù)包P' 2可能會(huì)被發(fā)送出去,相應(yīng)的,對(duì)端會(huì)發(fā)送下行 數(shù)據(jù)包P3,以此類推。這里需要說(shuō)明的是,按照本發(fā)明實(shí)施例的方法,上行發(fā)送緩存隊(duì)列的 水位是否下降取決于高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用實(shí)際產(chǎn)生的上行數(shù)據(jù)包的數(shù)量,如果第一上行數(shù)據(jù) 包較多,則證明高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用需要占用較多的帶寬,同時(shí)上行發(fā)送緩存隊(duì)列可能一直 保持在較高的水位,甚至還可能會(huì)上升,相應(yīng)的,第二上行數(shù)據(jù)包將不會(huì)發(fā)送;反之,如果第 一上行數(shù)據(jù)包并不是非常多,則證明高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用對(duì)帶寬的需求并不是很多,可能會(huì) 產(chǎn)生空閑的帶寬,同時(shí)上行發(fā)送緩存隊(duì)列的水位可能會(huì)有所下降,此時(shí),可以允許一部分第 二上行數(shù)據(jù)包的發(fā)送。可見(jiàn),這部分第二上行數(shù)據(jù)包的發(fā)送是在帶寬有空閑的情況下進(jìn)行 的,因此并不會(huì)對(duì)高優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用造成太大的影響??傊?,利用上述方法,如果高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用需要的帶寬較多,則自動(dòng)將非高優(yōu)先 級(jí)網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)包丟棄;當(dāng)高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用需要的帶寬較少時(shí),又可以自動(dòng)允許一部 分非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包的發(fā)送。因此,可以在保證高優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用的不 會(huì)受到非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用太大影響的同時(shí),還能夠有效地利用空閑的帶寬,提高上下行 帶寬的利用率。
實(shí)施例二在前述實(shí)施例一中,網(wǎng)絡(luò)應(yīng)用被分為高優(yōu)先級(jí)和非高優(yōu)先級(jí)兩種,在實(shí)際應(yīng)用中, 還可以將非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用劃分為多個(gè)優(yōu)先級(jí)級(jí)別,其中,高優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用同樣可 以是不論水位值是多少都不丟棄,各級(jí)別的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用,可以分別設(shè)定各自的水 位閾值。每監(jiān)測(cè)到一個(gè)非高優(yōu)先級(jí)的數(shù)據(jù)包時(shí),可以根據(jù)其優(yōu)先級(jí)級(jí)別對(duì)應(yīng)的水位閾值判 斷是否可以被發(fā)送。例如,可以將網(wǎng)絡(luò)應(yīng)用劃分為A、B、C三個(gè)級(jí)別,其中,A為高優(yōu)先級(jí),B、C為非高優(yōu) 先級(jí),并且B的優(yōu)先級(jí)高于C的優(yōu)先級(jí)。因此,A級(jí)網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)包無(wú)論水位值多少都不 丟棄,B級(jí)網(wǎng)絡(luò)應(yīng)用的水位閾值可以設(shè)為實(shí)施例一所述的40Kbytes,C級(jí)網(wǎng)絡(luò)應(yīng)用由于優(yōu)先 級(jí)最低,應(yīng)該最先被丟棄,因此,其水位閾值應(yīng)該低于B級(jí)網(wǎng)絡(luò)應(yīng)用的水位閾值,例如可以 設(shè)定為B級(jí)水位閾值的90%。因此,當(dāng)監(jiān)測(cè)到一個(gè)A級(jí)數(shù)據(jù)包時(shí),不用進(jìn)行判斷,直接加入 到發(fā)送隊(duì)列中,并更新水位值;當(dāng)監(jiān)測(cè)到一個(gè)B級(jí)數(shù)據(jù)包時(shí),在按照公式(1)計(jì)算出當(dāng)前水 位值之后,再加上該B級(jí)數(shù)據(jù)包所占數(shù)據(jù)量,所得結(jié)果如果大于40Kbytes,則丟棄,否則加 入到發(fā)送隊(duì)列,并更新水位值;當(dāng)監(jiān)測(cè)到一個(gè)C級(jí)數(shù)據(jù)包時(shí),在按照公式(1)計(jì)算出當(dāng)前水 位值之后,再加上該C級(jí)數(shù)據(jù)包的大小,所得結(jié)果如果大于40*90% = 36Kbytes,則丟棄,否 則加入到發(fā)送隊(duì)列,并更新水位值。其中,具體對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行優(yōu)先級(jí)進(jìn)行劃分時(shí),可以按照網(wǎng)絡(luò)應(yīng)用對(duì)帶寬的需求 或者業(yè)務(wù)的實(shí)時(shí)性要求等預(yù)先設(shè)置好的,例如,通??梢詫g覽器、網(wǎng)絡(luò)游戲等網(wǎng)絡(luò)應(yīng)用設(shè) 為高優(yōu)先級(jí)(A級(jí)),電子郵件客戶端等設(shè)為中等優(yōu)先級(jí)(B級(jí)),而P2P應(yīng)用則設(shè)為最低優(yōu) 先級(jí)(C級(jí))。當(dāng)然,也可以由用戶根據(jù)自己的需求或者使用習(xí)慣等進(jìn)行排序,本發(fā)明實(shí)施例 可以提供相應(yīng)的入口,以便用戶對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行優(yōu)先級(jí)設(shè)置??傊?,通過(guò)該實(shí)施例二,各種網(wǎng)絡(luò)應(yīng)用可以分為多個(gè)級(jí)別進(jìn)行上行數(shù)據(jù)包的控制, 進(jìn)一步增加了靈活性。實(shí)施例三在前述實(shí)施例一及實(shí)施例二中,設(shè)定水位閾值之后都是固定不變的,而在該實(shí)施例三中,為了在高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包到來(lái)之后,更快地限制非高優(yōu)先級(jí)網(wǎng) 絡(luò)應(yīng)用的上行數(shù)據(jù)包的上傳,采用了流速調(diào)整策略,下面對(duì)此進(jìn)行詳細(xì)地介紹。首先需要說(shuō)明的是,本發(fā)明實(shí)施例所使用水位值、數(shù)據(jù)量的流出速率等均為虛擬的概念,即這些值都是在監(jiān)測(cè)到第二上行數(shù)據(jù)包時(shí),用來(lái)計(jì)算并判斷是否需要丟棄該第二 上行數(shù)據(jù)包的。雖然水位閾值、流出速率等的取值可能與實(shí)際的調(diào)制解調(diào)上傳速率有關(guān), 但是,當(dāng)為了控制某些第二上行數(shù)據(jù)包的上傳而改變這些值時(shí),并不影響實(shí)際的速率。也 即,本發(fā)明實(shí)施例所述流速調(diào)整,是指對(duì)參與計(jì)算數(shù)據(jù)量的流出速率進(jìn)行調(diào)整,實(shí)際的調(diào)制 解調(diào)器的上傳速率是不會(huì)改變的(實(shí)際上,調(diào)制解調(diào)器的上傳速率取決于調(diào)制解調(diào)器的物 理特性,是無(wú)法改變的)。例如,當(dāng)需要將數(shù)據(jù)量的流出速率調(diào)整為當(dāng)前實(shí)際上傳速率的一 半時(shí),用于計(jì)算的數(shù)據(jù)量的流出速率會(huì)下降(例如,變?yōu)?2KbyteS/S),相應(yīng)的,計(jì)算出的當(dāng) 前水位值會(huì)增大(相當(dāng)于水位會(huì)上升);但是,調(diào)制解調(diào)器實(shí)際的上傳速率是不變的,仍為 64KbyteS/S(在沒(méi)有損耗的情況下)。也就是說(shuō),本發(fā)明實(shí)施例中用于計(jì)算的上行發(fā)送緩存 隊(duì)列的水位值,與網(wǎng)卡處實(shí)際的緩存器中的數(shù)據(jù)包所占的數(shù)據(jù)量可以是不同的。在本發(fā)明實(shí)施例三中,為了在第一上行數(shù)據(jù)包到來(lái)之后,更快地限制非高優(yōu)先級(jí) 網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包的上傳,則當(dāng)監(jiān)測(cè)到一個(gè)第一上行數(shù)據(jù)包時(shí),可以減小數(shù)據(jù)量 的流出速率S,例如,可以取為當(dāng)前流出速率的一半。其中,在首次進(jìn)行調(diào)整時(shí),當(dāng)前流出速 率通??梢匀檎{(diào)制解調(diào)器的實(shí)際上傳速率S’,即S = S’ /2。此時(shí),當(dāng)監(jiān)測(cè)到第二上行 數(shù)據(jù)包時(shí),利用公式(1)計(jì)算出的當(dāng)前水位值,相對(duì)于調(diào)整前會(huì)增大,但是水位閾值是不變 的,因此,計(jì)算出來(lái)能夠被發(fā)送的第二上行數(shù)據(jù)包就變小了。也就是說(shuō),當(dāng)?shù)诙闲袛?shù)據(jù)包 到來(lái)時(shí),提升了上行發(fā)送緩存隊(duì)列的水位,這樣,即使按照提升前的水位進(jìn)行計(jì)算時(shí),該第 二上行數(shù)據(jù)包可能是可以被發(fā)送的,但是當(dāng)提升了水位之后,由于該數(shù)據(jù)包所占數(shù)據(jù)量及 水位閾值都不變,因此,判斷的結(jié)果可能會(huì)變?yōu)樵摰诙闲袛?shù)據(jù)包不能被發(fā)送??梢?jiàn),通過(guò) 該方法可以快速地將第二上行數(shù)據(jù)包丟棄,進(jìn)一步保證高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用優(yōu)先使用帶寬。當(dāng)然,如果將低優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用分為多個(gè)優(yōu)先級(jí)時(shí),調(diào)整后的流速也可以僅應(yīng)用 于最低優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用,其他級(jí)別的網(wǎng)絡(luò)應(yīng)用仍使用調(diào)整前的流速。例如,當(dāng)分為A、B、C 三個(gè)級(jí)別時(shí),可以針對(duì)C級(jí)網(wǎng)絡(luò)應(yīng)用使用調(diào)整后的流速進(jìn)行計(jì)算,而監(jiān)測(cè)到B級(jí)網(wǎng)絡(luò)應(yīng)用的 第二上行數(shù)據(jù)包時(shí),可以使用調(diào)整前的流速,即仍按照S = S’進(jìn)行計(jì)算。當(dāng)然,也可以針對(duì) 不同優(yōu)先級(jí)進(jìn)行不同粒度的調(diào)整,具體的方式這里不再贅述。由于在監(jiān)測(cè)到一個(gè)第一上行數(shù)據(jù)包之后,下一個(gè)第一上行數(shù)據(jù)包何時(shí)到來(lái)具有不 確定性,甚至可能很長(zhǎng)一段時(shí)間內(nèi)都不再有第一上行數(shù)據(jù)包到來(lái);在這種情況下,如果一 直使用流速調(diào)整之后的流速對(duì)第二上行數(shù)據(jù)包進(jìn)行控制,則可能會(huì)不利于帶寬利用率的提 高。為此,在本發(fā)明實(shí)施例中,在進(jìn)行流速調(diào)整的同時(shí),還可以同時(shí)記錄一個(gè)流速恢復(fù)值a, 例如,a可以取為S/2,即每執(zhí)行一次流速恢復(fù),在當(dāng)前流速的基礎(chǔ)上增加S/2。其中,與流速減小調(diào)整相反,流速恢復(fù)時(shí)相當(dāng)于是在降低用于計(jì)算的上行發(fā)送緩 存隊(duì)列的水位,以使得部分第二上行數(shù)據(jù)包能夠被發(fā)送。流速恢復(fù)的執(zhí)行可以采用時(shí)間觸 發(fā)機(jī)制,即可以每隔一段指定時(shí)間后就進(jìn)行一次流速恢復(fù),例如,每秒執(zhí)行一次,或者每?jī)?秒執(zhí)行一次等。例如,如果每秒執(zhí)行一次流速恢復(fù),則在進(jìn)行流速調(diào)整之后,開始計(jì)時(shí),如果 在一秒鐘之內(nèi)沒(méi)有收到第一上行數(shù)據(jù)包,則執(zhí)行流速恢復(fù),如果進(jìn)行流速調(diào)整后的用于計(jì) 算的流出速率為S = s’/2,a = S/2,則此時(shí)用于計(jì)算的流出速率恢復(fù)為S = S’/2+(S’/2)/2=3S’ /4 ;然后再開始計(jì)時(shí),如果一秒鐘之后仍沒(méi)有第一上行數(shù)據(jù)包到來(lái),則繼續(xù)執(zhí)行恢 復(fù),將流速恢復(fù)為3S’/4+(3S’/4)/2 = 7S’/8。并且,在用于計(jì)算的流出速率恢復(fù)到3S’/4 之前的一秒鐘內(nèi),如果接收到第二上行數(shù)據(jù)包,則用于計(jì)算的流出速率為S’ /2 ;在用于計(jì) 算的流出速率恢復(fù)到7S’ /8之前的一秒鐘內(nèi),如果接收到第二上行數(shù)據(jù)包,則用于計(jì)算的 流出速率為3S’/4。當(dāng)然,如果在開始計(jì)時(shí)后的一秒中內(nèi)接收到第一上行數(shù)據(jù)包,則仍然在 當(dāng)前流出速率的基礎(chǔ)上進(jìn)行減小流出速率的調(diào)整。例如,假設(shè)當(dāng)前流出速率為4M,流速調(diào)整時(shí)取當(dāng)前流出速率的一半,流速恢復(fù)時(shí), 每次的恢復(fù)值取當(dāng)前流出速率的一半,每秒執(zhí)行一次流速恢復(fù);則接收到一個(gè)第一上行數(shù) 據(jù)包之后,則可以將用于計(jì)算的流出速率調(diào)整為2M,同時(shí)啟動(dòng)計(jì)時(shí),如果第1秒中之內(nèi)沒(méi)有 接收到第一上行數(shù)據(jù)包,則將用于計(jì)算的流出速率恢復(fù)為2+2/2 = 3M;同時(shí),再啟動(dòng)計(jì)時(shí), 如果在第2秒中之內(nèi)沒(méi)有接收到第一上行數(shù)據(jù)包,則將用于計(jì)算的流出速率繼續(xù)恢復(fù)為 3+3/2 = 4. 5M,以此類推。當(dāng)然,如果在上述第1秒內(nèi)的某時(shí)刻監(jiān)測(cè)到一個(gè)第一上行數(shù)據(jù) 包,則繼續(xù)將用于計(jì)算的流出速率調(diào)整為當(dāng)前流出速率的一半,即為2/2 = 1M,并從該時(shí)刻 起再進(jìn)行計(jì)時(shí),如果1秒中內(nèi)沒(méi)有接收到第一上行數(shù)據(jù)包,則將用于計(jì)算的流出速率恢復(fù) 為1+1/2 = 2. 5M ;同樣,如果此次恢復(fù)后的一秒內(nèi)的某時(shí)刻接收到了第一上行數(shù)據(jù)包,則將 用于計(jì)算的流出速率調(diào)整為2. 5/2 = 1. 25M,以此類推??傊?,減速調(diào)整以接收到第一上行 數(shù)據(jù)包為觸發(fā)條件,而流速的恢復(fù)以時(shí)間及沒(méi)有接收到第一上行數(shù)據(jù)包為觸發(fā)條件。另外,如果很長(zhǎng)一段時(shí)間內(nèi)都沒(méi)有第一上行數(shù)據(jù)包發(fā)送,或者檢測(cè)到高優(yōu)先級(jí)的 網(wǎng)絡(luò)應(yīng)用已經(jīng)被關(guān)閉,則可以直接將用于計(jì)算的流出速率S取為一個(gè)預(yù)置的足夠大的值 (例如,S= lOMbyte/s),而不用再按照前述恢復(fù)的步長(zhǎng)恢復(fù)。此時(shí),相當(dāng)于將用于計(jì)算的 上行發(fā)送緩存隊(duì)列中的水位非常低,所有的上行數(shù)據(jù)包都能夠發(fā)送,直到第一上行數(shù)據(jù)包 到來(lái)時(shí),再將用于計(jì)算的流出速率取為調(diào)制解調(diào)器的實(shí)際上傳速率,并在此基礎(chǔ)上進(jìn)行流 速調(diào)整及后續(xù)的流速恢復(fù)。利用上述方法,在第一上行數(shù)據(jù)包到來(lái)時(shí),通過(guò)限制流速使得水位升高,快速丟棄 一部分第二上行數(shù)據(jù)包,使得第一上行數(shù)據(jù)包能夠發(fā)出不被阻塞;同時(shí),通過(guò)丟棄一部分第 二上行數(shù)據(jù)包,下行鏈路中非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的下行數(shù)據(jù)包由于收不到應(yīng)答會(huì)讓出下行 帶寬,因此,間接地方便了高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的下行數(shù)據(jù)包的傳輸。另外,在沒(méi)有高優(yōu)先級(jí) 網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)包的收發(fā)時(shí),通過(guò)流速恢復(fù)策略,使得非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用能夠重新占據(jù) 帶寬進(jìn)行數(shù)據(jù)包的收發(fā),從而保證總帶寬利用率一直處于比較高的狀態(tài)。實(shí)施例四在前述各個(gè)實(shí)施例中,都是以上行發(fā)送緩存隊(duì)列的當(dāng)前水位值為基礎(chǔ)對(duì)非高優(yōu)先 級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包進(jìn)行控制,在該實(shí)施例中,還可以通過(guò)時(shí)間片統(tǒng)計(jì)來(lái)實(shí)現(xiàn)對(duì)非高 優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包的控制。例如,將1秒劃為20個(gè)時(shí)間片,待發(fā)送的上行數(shù)據(jù)包的大小加到發(fā)送時(shí)間對(duì)應(yīng)的 時(shí)間片中。設(shè)置滑動(dòng)窗口大小始終為20個(gè)時(shí)間片,滑動(dòng)窗口中所有時(shí)間片對(duì)應(yīng)的數(shù)據(jù)包的 數(shù)據(jù)量相加即為每秒產(chǎn)生的上行數(shù)據(jù)量,當(dāng)新到來(lái)一個(gè)第二上行數(shù)據(jù)包時(shí),將滑動(dòng)窗口內(nèi) 各時(shí)間片中的數(shù)據(jù)包所占的總數(shù)據(jù)量加上該第二上行數(shù)據(jù)包所占對(duì)的數(shù)據(jù)量,判斷所得之 和是否超過(guò)了預(yù)置的數(shù)據(jù)量閾值(如40Kbytes),如果是,則將該第二上行數(shù)據(jù)包丟棄。每 隔50毫秒滑動(dòng)窗口向后移動(dòng)一個(gè)時(shí)間片,即等效于發(fā)出了一個(gè)時(shí)間片的流量,同時(shí)新進(jìn)入一個(gè)空的時(shí)間片,此時(shí)滑動(dòng)窗口內(nèi)的上行數(shù)據(jù)量小于50毫秒前的統(tǒng)計(jì)值。然后對(duì)于到來(lái)的第二上行數(shù)據(jù)包再次判斷是否超過(guò)預(yù)置的數(shù)據(jù)量閾值,若不超過(guò),則發(fā)送,該第二上行數(shù)據(jù) 包所占數(shù)據(jù)量寫入到新進(jìn)入的時(shí)間片中。當(dāng)然,對(duì)于第一上行數(shù)據(jù)包同樣可以是不進(jìn)行控 制,即無(wú)論滑動(dòng)窗口內(nèi)的當(dāng)前數(shù)據(jù)量為多大,都不會(huì)被丟棄。如,從開始進(jìn)行流量控制的時(shí)刻起,75ms后監(jiān)測(cè)到第一個(gè)第二上行數(shù)據(jù)包,則判斷 該第二上行數(shù)據(jù)包所占數(shù)據(jù)量是否超過(guò)預(yù)置的閾值,如果超過(guò),則丟棄,否則,將該第二上 行數(shù)據(jù)包所占數(shù)據(jù)量加到第二個(gè)時(shí)間片中(因?yàn)?秒分為20個(gè)時(shí)間片,因此每個(gè)時(shí)間片為 50ms,第75ms屬于第二個(gè)時(shí)間片),再監(jiān)測(cè)到新的第二上行數(shù)據(jù)包時(shí),則將滑動(dòng)窗口內(nèi)當(dāng)前 時(shí)間片中的數(shù)據(jù)包所占數(shù)據(jù)量的總和,加上該新監(jiān)測(cè)到的第二上行數(shù)據(jù)包所占數(shù)據(jù)量,并 判斷相加結(jié)果是否超過(guò)預(yù)置的數(shù)據(jù)量閾值,如果超過(guò)則丟棄,否則,將該數(shù)據(jù)包所占數(shù)據(jù)量 加入到對(duì)應(yīng)的時(shí)間片中,以此類推;當(dāng)?shù)?0個(gè)時(shí)間片結(jié)束時(shí)(即從開始進(jìn)行流量控制的時(shí) 刻起滿1秒時(shí)),將滑動(dòng)窗口向后移動(dòng)一個(gè)時(shí)間片,此時(shí),第一個(gè)時(shí)間片將移出滑動(dòng)窗口,同 時(shí)有一個(gè)新的空時(shí)間片進(jìn)入滑動(dòng)窗口,使得當(dāng)前滑動(dòng)窗口中數(shù)據(jù)包所占數(shù)據(jù)量的總和為第 2個(gè)時(shí)間片到第20個(gè)時(shí)間片的數(shù)據(jù)包所占數(shù)據(jù)量的總和,在這之后的50ms內(nèi)監(jiān)測(cè)到新的第 二上行數(shù)據(jù)包時(shí),將當(dāng)前滑動(dòng)窗口中數(shù)據(jù)包所占數(shù)據(jù)量的總和與該新監(jiān)測(cè)到的第二上行數(shù) 據(jù)包所占數(shù)據(jù)量相加,并判斷相加結(jié)果是否查過(guò)預(yù)置數(shù)據(jù)量閾值,如果超過(guò)則丟棄,否則將 該第二上行數(shù)據(jù)包所占數(shù)據(jù)量加入到當(dāng)前的第21個(gè)時(shí)間片中;50ms后再將滑動(dòng)窗口向后 移動(dòng)一個(gè)時(shí)間片,此時(shí),當(dāng)前滑動(dòng)窗口中數(shù)據(jù)包所占數(shù)據(jù)量的總和為第3個(gè)時(shí)間片到第21 個(gè)時(shí)間片的數(shù)據(jù)包所占數(shù)據(jù)量的總和,以此類推。其中,該數(shù)據(jù)量閾值根據(jù)時(shí)間片統(tǒng)計(jì)進(jìn)行控制時(shí),同樣可以體現(xiàn)帶寬的占用情況。 例如,當(dāng)每秒鐘產(chǎn)生的上行數(shù)據(jù)量較少時(shí),則證明對(duì)帶寬占用的不多,可以允許部分第二上 行數(shù)據(jù)包上傳;當(dāng)每秒鐘產(chǎn)生的上行數(shù)據(jù)量較多時(shí),則證明帶寬已經(jīng)占用地較多了,因此將 第二上行數(shù)據(jù)包丟棄,以免對(duì)高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用造成影響。需要說(shuō)明的是,時(shí)間片統(tǒng)計(jì)方式與水位值統(tǒng)計(jì)方式從本質(zhì)上講是相同的,即判斷 當(dāng)前待發(fā)送的數(shù)據(jù)量是否已經(jīng)達(dá)到閾值,若達(dá)到則丟棄非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù) 包。不同之處在于水位值統(tǒng)計(jì)是連續(xù)統(tǒng)計(jì),例如可以計(jì)算每一毫秒發(fā)出多少,比較精確;而 時(shí)間片統(tǒng)計(jì)是一種離散化的統(tǒng)計(jì),前述例子中就是將它離散到50毫秒為一個(gè)單位進(jìn)行計(jì) 算,如果將它的計(jì)算單位無(wú)限縮小,其實(shí)就趨向于水位值統(tǒng)計(jì)了,例如分為1000個(gè)時(shí)間片, 則可以精確到以每一毫秒為一個(gè)單位進(jìn)行計(jì)算。實(shí)施例五、前述實(shí)施例一至四介紹的各種方法,都是基于一臺(tái)終端獨(dú)享一份帶寬 的情況進(jìn)行介紹的,即假設(shè)某用戶申請(qǐng)了 IM的帶寬,則會(huì)分配給該用戶一個(gè)ADSL入口,如 果只有該用戶自己的終端通過(guò)該ADSL入口接入網(wǎng)絡(luò),則該用戶的終端獨(dú)享這IM的帶寬。但是在實(shí)際應(yīng)用中,還可能有這樣的情況多個(gè)用戶的終端通過(guò)同一個(gè)ADSL入口 接入網(wǎng)絡(luò)(即多臺(tái)終端通過(guò)路由器接到調(diào)制解調(diào)器,再通過(guò)該調(diào)制解調(diào)器接收或發(fā)送各個(gè) 用戶的上下行數(shù)據(jù)),此時(shí),這些使用同一個(gè)ADSL入口接入網(wǎng)絡(luò)的各終端組成一個(gè)局域網(wǎng), 各終端分享這IM的帶寬,即各臺(tái)終端的下行數(shù)據(jù)包總和每秒鐘不能超過(guò)1Mbit,可見(jiàn),各臺(tái) 終端之間會(huì)相互影響,當(dāng)某終端占用較多帶寬時(shí),就意味著其他各終端能夠使用的帶寬就 會(huì)有所減少。在這種情況下,當(dāng)某用戶需要使用高優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用時(shí),如果該局域網(wǎng)內(nèi)的 其他用戶正在使用對(duì)帶寬占用較大的低優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用,即使該用戶終端上沒(méi)有或者限制了低優(yōu)先級(jí)的網(wǎng)絡(luò)應(yīng)用,該用戶的網(wǎng)絡(luò)應(yīng)用都將會(huì)受到影響。為了解決上述問(wèn)題,該實(shí)施例五提出了相應(yīng)的方法。例如,可以增加一個(gè)通信機(jī) 制,即當(dāng)某終端上監(jiān)測(cè)到高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)包需要發(fā)送時(shí),除了在該終端上進(jìn)行流 量控制之外,還可以通知該局域網(wǎng)內(nèi)的其他終端同時(shí)進(jìn)行流量控制。例如,可以向局域網(wǎng)內(nèi) 的其他各終端廣播一個(gè)流量控制觸發(fā)消息,各終端接收到該觸發(fā)消息之后,就可以各自進(jìn) 行流量控制。又如,還可以向局域網(wǎng)內(nèi)特定的終端發(fā)送流量控制觸發(fā)消息,其中,特定終端 可以是指有非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用正在運(yùn)行的終端,也就是說(shuō),當(dāng)某終端有高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng) 用的數(shù)據(jù)包需要發(fā)送時(shí),可以僅向有非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用正在運(yùn)行的終端發(fā)送流量控制觸 發(fā)消息,通知這些終端進(jìn)行流量控制。具體實(shí)現(xiàn)時(shí),可以使局域網(wǎng)內(nèi)的其他終端向該終端報(bào) 告自己的網(wǎng)絡(luò)應(yīng)用運(yùn)行情況,以使得該終端能夠知悉局域網(wǎng)內(nèi)有哪些終端正在運(yùn)行非高優(yōu) 先級(jí)的網(wǎng)絡(luò)應(yīng)用;或者也可以在局域網(wǎng)內(nèi)設(shè)置一服務(wù)器,由服務(wù)器統(tǒng)一獲取各終端的網(wǎng)絡(luò) 應(yīng)用運(yùn)行情況,并統(tǒng)一發(fā)送流量控制觸發(fā)消息,由接收到流量控制觸發(fā)消息的終端進(jìn)行流 量控制。針對(duì)在局域網(wǎng)中設(shè)置一個(gè)服務(wù)器的情況,可以由該服務(wù)器監(jiān)測(cè)局域網(wǎng)內(nèi)各個(gè)終端 的上行數(shù)據(jù)包發(fā)送情況,一旦發(fā)現(xiàn)某個(gè)終端上有高優(yōu)先級(jí)的第一數(shù)據(jù)包需要發(fā)送,就可以 向局域網(wǎng)內(nèi)的終端發(fā)送流量控制觸發(fā)消息,通知終端進(jìn)行流量控制,以保證高優(yōu)先網(wǎng)絡(luò)應(yīng) 用的正常運(yùn)行。因此,相當(dāng)于實(shí)現(xiàn)了一種集中控制。其中,服務(wù)器在向局域網(wǎng)內(nèi)的終端發(fā)送流量控制觸發(fā)消息時(shí),可以采用向各個(gè)終 端廣播的方式,也可以向某些特定的終端發(fā)送,具體實(shí)現(xiàn)與各終端發(fā)送觸發(fā)消息時(shí)相似,這 里不再贅述。需要說(shuō)明的是,各終端上進(jìn)行的流量控制是相互獨(dú)立的,并且各終端上進(jìn)行的具 體的流量控制方法與前述實(shí)施例所述大致相同,即每臺(tái)終端都對(duì)本機(jī)的上行數(shù)據(jù)包進(jìn)行監(jiān) 控,當(dāng)監(jiān)控到高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包時(shí),直接將該上行數(shù)據(jù)包加入到上行發(fā)送緩 存隊(duì)列;當(dāng)監(jiān)控到非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包時(shí),根據(jù)當(dāng)前的帶寬占用情況,判斷是 否允許發(fā)送,如果是,則將該上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列,否則將該上行數(shù)據(jù)包丟 棄。具體在判斷當(dāng)前的帶寬占用情況時(shí),也可以采用前述實(shí)施例中所描述的方法,例 如,可以計(jì)算本機(jī)上行發(fā)送緩存隊(duì)列的當(dāng)前水位值,然后計(jì)算該當(dāng)前水位值與新監(jiān)測(cè)到的 上行數(shù)據(jù)包的大小之和,如果不超過(guò)某預(yù)置的水位閾值,則允許發(fā)送該數(shù)據(jù)包,否則將該數(shù) 據(jù)包丟棄。此外,具體的流速調(diào)整或者流速恢復(fù)方法也都與前述實(shí)施例所描述的相同,因此 這里不再贅述,具體請(qǐng)參見(jiàn)前述實(shí)施例。與一臺(tái)終端獨(dú)享帶寬的不同之處僅在于由于多臺(tái)終端共享帶寬,因此,各臺(tái)終端上的水位閾值(流速調(diào)整前)比一臺(tái)終端獨(dú)占帶寬時(shí)可能會(huì)有所降低。具體在設(shè)置每臺(tái)終 端的水位閾值時(shí),可以根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)包上傳速率以及局域網(wǎng)中的終端總數(shù)預(yù)先 設(shè)置一個(gè)均值,例如,當(dāng)4臺(tái)終端共享IM帶寬時(shí),每臺(tái)終端的水位閾值可以預(yù)設(shè)為40/4 = lOKbyte/s,這樣各臺(tái)終端在進(jìn)行流量控制時(shí),以lOKbyte/s為水位閾值進(jìn)行判斷。在實(shí)際應(yīng)用中,由于一個(gè)局域網(wǎng)內(nèi)的各臺(tái)終端可能并不是同一時(shí)刻都開機(jī),即有 些終端可能沒(méi)有連網(wǎng),如果采用上述水位閾值分配方法可能會(huì)造成帶寬的浪費(fèi)。因此,也 可以根據(jù)當(dāng)前連網(wǎng)的終端數(shù)目來(lái)分配水位閾值,當(dāng)然,具體分配水位閾值時(shí),可以是平均分配,也可以采用其他的分配方式,比如根據(jù)用戶的使用習(xí)慣進(jìn)行加權(quán)分配等等,這樣可以提高靈活性,從而提高帶寬利用率。綜合上述各實(shí)施例可以看出,參見(jiàn)圖1,本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)流量控制方法包 括以下步驟SlOl 監(jiān)測(cè)新到來(lái)的待發(fā)送上行數(shù)據(jù)包;S102:當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),按照以下方式對(duì)所述待發(fā)送上行 數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用時(shí),將所述 高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的待發(fā)送上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列;當(dāng)所述待發(fā)送上行數(shù)據(jù) 包來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用時(shí),根據(jù)當(dāng)前的帶寬占用情況,判斷是否允許發(fā)送所述 來(lái)自非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的待發(fā)送上行數(shù)據(jù)包,如果是,則將所述來(lái)自非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng) 用的待發(fā)送上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列,否則將所述來(lái)自非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的 上行數(shù)據(jù)包丟棄。如前文所述,對(duì)于一臺(tái)終端獨(dú)享帶寬的情況,需要進(jìn)行流量控制的觸發(fā)條件可以 是,監(jiān)測(cè)到本機(jī)上有高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包需要發(fā)送,即,當(dāng)發(fā)現(xiàn)有高優(yōu)先級(jí)網(wǎng)絡(luò) 應(yīng)用運(yùn)行時(shí),就可以啟動(dòng)流量控制過(guò)程,在流量控制過(guò)程中,如果發(fā)現(xiàn)有非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng) 用的上行數(shù)據(jù)包,則按照前文所述的方法判斷是否需要丟棄;對(duì)于多臺(tái)終端共享帶寬的情 況,需要進(jìn)行流量控制的觸發(fā)條件可以是,監(jiān)測(cè)到本機(jī)上有高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù) 包需要發(fā)送,或者接收局域網(wǎng)內(nèi)的服務(wù)器或其他終端發(fā)送的流量控制觸發(fā)消息,當(dāng)然,也有 可能在監(jiān)測(cè)到本機(jī)上有高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行數(shù)據(jù)包需要發(fā)送的同時(shí),接收到局域網(wǎng)內(nèi) 的服務(wù)器或其他終端發(fā)送的流量控制觸發(fā)消息,即兩個(gè)條件同時(shí)滿足,此時(shí),也采用相同的 方法進(jìn)行流量控制即可。此外,需要進(jìn)行流量控制的觸發(fā)條件也可以不限定在上述兩種,在實(shí)際應(yīng)用中,還 可以在其他的條件下觸發(fā)流量控制。例如,可以在監(jiān)測(cè)到本機(jī)有高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的上行 數(shù)據(jù)包需要發(fā)送之后,判斷當(dāng)前網(wǎng)絡(luò)是否有擁塞的情況發(fā)生,如果發(fā)生了擁塞,再觸發(fā)進(jìn)行 流量控制。其中,判斷當(dāng)前網(wǎng)絡(luò)是否發(fā)生擁塞的方法可以有多種,再例如,對(duì)于上行鏈路而 言,如果發(fā)現(xiàn)上行數(shù)據(jù)包發(fā)生重傳,則可以判斷出上行鏈路發(fā)生了擁塞;對(duì)于下行鏈路而 言,如果發(fā)現(xiàn)下行數(shù)據(jù)包發(fā)生錯(cuò)序,則可以判斷出下行鏈路發(fā)生了擁塞。在有高優(yōu)先級(jí)網(wǎng)絡(luò) 應(yīng)用的數(shù)據(jù)包需要發(fā)送時(shí),無(wú)論是上行鏈路還是下行鏈路發(fā)生擁塞,都可以觸發(fā)進(jìn)行流量 控制。此外,還可以默認(rèn)需要進(jìn)行流量控制的觸發(fā)條件任何時(shí)候都滿足,即一直在采用流量 控制的方案對(duì)數(shù)據(jù)包進(jìn)行處理??傊?,什么情況下認(rèn)為是滿足需要進(jìn)行流量控制的觸發(fā)條 件是多樣的,可以根據(jù)實(shí)際情況靈活處理,本實(shí)施例對(duì)此并沒(méi)有限制,前述給出的幾種情況 僅僅是優(yōu)選的,本領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明實(shí)施例給出的優(yōu)選例子的提示,結(jié)合本領(lǐng) 域的技術(shù)知識(shí)以及實(shí)際情況采用其他的具體方式。需要說(shuō)明的是,以上觸發(fā)條件判斷方式可以適用于一臺(tái)終端獨(dú)享帶寬的情況,與 也適用于多臺(tái)終端共享帶寬的情況,并且對(duì)于后者,無(wú)論是由各終端進(jìn)行判斷,還是由服務(wù) 器進(jìn)行判斷都可以采用該方式。其中,具體的根據(jù)當(dāng)前的帶寬占用情況,判斷是否允許發(fā)送所述待發(fā)送上行數(shù)據(jù) 包的方法,可以基于實(shí)施例一到實(shí)施例三所描述的水位閾值判斷方法進(jìn)行,也可以基于實(shí) 施例四描述的時(shí)間片統(tǒng)計(jì)的方法進(jìn)行,當(dāng)然,在其他實(shí)施例中,也可以使用其他的方法,或者,將各種方法相結(jié)合等等,這里不做限定。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以 通過(guò)程序指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該 程序在執(zhí)行時(shí),包括如下步驟監(jiān)測(cè)新到來(lái)的待發(fā)送上行數(shù)據(jù)包;當(dāng)滿足需要進(jìn)行流量控 制的觸發(fā)條件時(shí),按照以下方式對(duì)所述待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上 行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加 入到上行發(fā)送緩存隊(duì)列;當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第 二上行數(shù)據(jù)包時(shí),根據(jù)當(dāng)前的帶寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果 是,則將所述第二上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù) 包丟棄。 所述的存儲(chǔ)介質(zhì),如ROM/RAM、磁碟、光盤等。與本發(fā)明實(shí)施例提供的流量控制方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種流量控 制裝置,參見(jiàn)圖2,該裝置包括以下單元監(jiān)測(cè)單元201,用于監(jiān)測(cè)新到來(lái)的待發(fā)送上行數(shù)據(jù)包;流量控制單元202,用于當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),按照以下方式對(duì) 所述待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng) 絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列;當(dāng)所述待 發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包時(shí),根據(jù)當(dāng)前的帶寬 占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述第二上行數(shù)據(jù)包加入 到上行發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù)包丟棄。其中,流量控制單元202包括水位值獲得子單元,用于獲得本機(jī)上行發(fā)送緩存隊(duì)列的當(dāng)前水位值;其中,所述當(dāng) 前水位值為上一統(tǒng)計(jì)時(shí)刻獲得的水位值與從所述上一統(tǒng)計(jì)時(shí)刻到當(dāng)前統(tǒng)計(jì)時(shí)刻流出的數(shù) 據(jù)量之差;所述流出的數(shù)據(jù)量為所述上一統(tǒng)計(jì)時(shí)刻到當(dāng)前統(tǒng)計(jì)時(shí)刻的時(shí)間差與數(shù)據(jù)量流 出速率之積;水位值判斷子單元,用于判斷所述當(dāng)前水位值與所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量 之和是否小于預(yù)置的水位閾值,如果是,則允許發(fā)送所述第二上行數(shù)據(jù)包;其中,所述數(shù)據(jù) 量流出速率及預(yù)置的水位閾值根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)包上傳速率確定。具體的,所述非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用可以包括多個(gè)優(yōu)先級(jí)級(jí)別,各個(gè)優(yōu)先級(jí)級(jí)別具 有不同的預(yù)置水位閾值;所述水位值判斷子單元包括優(yōu)先級(jí)確定子單元,用于確定所述第二上行數(shù)據(jù)包的優(yōu)先級(jí)級(jí)別及該優(yōu)先級(jí)級(jí)別 對(duì)應(yīng)的水位閾值;判斷子單元,用于判斷所述當(dāng)前水位值與所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量之和是 否小于該優(yōu)先級(jí)級(jí)別對(duì)應(yīng)的水位閾值。當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí), 該裝置還可以包括流速調(diào)整單元,用于降低所述數(shù)據(jù)量流出速率,以便提高所述獲得的當(dāng)前水位值。相應(yīng)的,該裝置還可以包括流速恢復(fù)單元,用于如果從降低所述數(shù)據(jù)量流出速率時(shí)起的第一預(yù)置時(shí)間段內(nèi), 沒(méi)有監(jiān)測(cè)到所述第一上行數(shù)據(jù)包,則按照預(yù)置的速率恢復(fù)步長(zhǎng),恢復(fù)所述數(shù)據(jù)量流出速率。
此外,該裝置還可以包括流速提高單元,用于如果從監(jiān)測(cè)到第一上行數(shù)據(jù)包時(shí)起的第二預(yù)置時(shí)間段內(nèi),沒(méi)有監(jiān)測(cè)到新到來(lái)的所述第一上行數(shù)據(jù)包,則將所述數(shù)據(jù)量流出速率提高到預(yù)置的足夠大的值。除了上述實(shí)現(xiàn)方式外,還可以采用時(shí)間片統(tǒng)計(jì)方式來(lái)進(jìn)行流量控制,具體的,該裝 置還包括滑動(dòng)窗口移動(dòng)單元,用于將預(yù)置時(shí)間段設(shè)置為一個(gè)時(shí)間片,滑動(dòng)窗口內(nèi)包括多個(gè) 時(shí)間片,每經(jīng)過(guò)一個(gè)時(shí)間片將所述滑動(dòng)窗口向后移動(dòng)一個(gè)時(shí)間片;相應(yīng)的,流量控制單元202包括數(shù)據(jù)量更新子單元,用于將所述第一上行數(shù)據(jù)包 所占數(shù)據(jù)量加入到所述監(jiān)測(cè)時(shí)刻所在的時(shí)間片中;數(shù)據(jù)量獲得子單元,用于獲得所述滑動(dòng) 窗口內(nèi)當(dāng)前各時(shí)間片中的總數(shù)據(jù)量;數(shù)據(jù)量判斷子單元,用于判斷所述總數(shù)據(jù)量與所述第 二上行數(shù)據(jù)包所占數(shù)據(jù)量之和是否小于預(yù)置的數(shù)據(jù)量閾值,如果是,則允許發(fā)送所述第二 上行數(shù)據(jù)包,并將所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量加入到對(duì)應(yīng)的時(shí)間片中;其中,所述數(shù)據(jù) 量閾值根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)包上傳速率確定。具體實(shí)現(xiàn)時(shí),滿足需要進(jìn)行流量控制的觸發(fā)條件可以有多種,如,流量控制單元 202可以包括第一觸發(fā)單元,用于當(dāng)監(jiān)測(cè)到本機(jī)有所述第一上行數(shù)據(jù)包需要發(fā)送時(shí),則觸發(fā)對(duì) 所述待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制;禾口/ 或,第二觸發(fā)單元,用于當(dāng)接收局域網(wǎng)內(nèi)的服務(wù)器或者其他終端發(fā)送的流量控制觸發(fā) 消息時(shí),則觸發(fā)對(duì)所述待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制。與本發(fā)明實(shí)施例提供的流量控制方法及裝置相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種 局域網(wǎng)系統(tǒng),參見(jiàn)圖3,該系統(tǒng)至少包括第一終端301及第二終端302,其中,第一終端301包括監(jiān)測(cè)單元3011,用于監(jiān)測(cè)所述第一客戶端的待發(fā)送上行數(shù)據(jù)包;通信單元3012,用于當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),向所述第二客戶端 發(fā)送流量控制觸發(fā)消息;第二終端302包括流量控制單元3021,用于接收到所述流量控制觸發(fā)消息后,按照以下方式對(duì)所述 第二客戶端的待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高 優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列; 當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包時(shí),根據(jù)當(dāng) 前的帶寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述第二上行數(shù) 據(jù)包加入到上行發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù)包丟棄。其中,通信單元3012可以包括條件判斷子單元,用于當(dāng)監(jiān)測(cè)到所述第一終端有來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的 第一上行數(shù)據(jù)包需要發(fā)送時(shí),確定滿足需要進(jìn)行流量控制的觸發(fā)條件;發(fā)送子單元,用于向所述第二終端發(fā)送流量控制觸發(fā)消息。當(dāng)然在其他實(shí)施例中,條件判斷子單元還可能需要判斷當(dāng)前是否發(fā)生擁塞,等等。需要說(shuō)明的是,在實(shí)際應(yīng)用中,第二終端可能有多個(gè)(圖3中僅示出兩個(gè)),第一終端在發(fā)現(xiàn)有第一數(shù)據(jù)包需要發(fā)送時(shí),可以向其他各個(gè)第二終端廣播流量控制觸發(fā)消息,當(dāng)然也可以向某些特定的第二終端發(fā)送流量控制觸發(fā)消息。另外需要說(shuō)明的是,這里所述的“第一”、“第二”并不是為了特指某個(gè)終端,而僅僅 是為了區(qū)別處于不同狀態(tài)的終端(是否為流量控制的發(fā)起端),根據(jù)各終端當(dāng)前所處狀態(tài) 的不同,同一個(gè)終端有時(shí)候可能會(huì)作為第一終端,有時(shí)候又可能作為第二終端。因此,在實(shí) 際應(yīng)用中,在每一個(gè)終端上都可能既包括監(jiān)測(cè)單元、通信單元,又包括流量控制單元,以保 證在不同狀態(tài)下終端角色的轉(zhuǎn)變,以及實(shí)現(xiàn)各終端間的相互通信。當(dāng)然,在一些特殊情況 下,也不排除部分終端上僅具有監(jiān)測(cè)單元及通信單元,另一些終端上僅具有流量控制單元 的可能。本發(fā)明實(shí)施例還提供了另一種局域網(wǎng)系統(tǒng),參見(jiàn)圖4,該系統(tǒng)包括至少兩個(gè)終端 401 (圖中僅示出兩個(gè)),另外還包括一個(gè)服務(wù)器402,其中,服務(wù)器402包括監(jiān)測(cè)單元4021,用于監(jiān)測(cè)所述局域網(wǎng)系統(tǒng)內(nèi)各終端的待發(fā)送上行數(shù)據(jù)包;通信單元4022,用于當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),向所述局域網(wǎng)系統(tǒng) 內(nèi)的終端發(fā)送流量控制觸發(fā)消息;終端401包括流量控制單元4011,用于接收到所述流量控制觸發(fā)消息后,按照以下方式對(duì)所述 各自的待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí) 網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列;當(dāng)所述 待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包時(shí),根據(jù)當(dāng)前的帶 寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述第二上行數(shù)據(jù)包加 入到上行發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù)包丟棄。其中,通信單元4022可以包括條件判斷子單元,用于當(dāng)監(jiān)測(cè)到所述某終端有來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第 一上行數(shù)據(jù)包需要發(fā)送時(shí),確定滿足需要進(jìn)行流量控制的觸發(fā)條件;發(fā)送子單元,用于向所述局域網(wǎng)系統(tǒng)內(nèi)的終端發(fā)送流量控制觸發(fā)消息。當(dāng)然在其他實(shí)施例中,條件判斷子單元還可能需要判斷當(dāng)前是否發(fā)生擁塞,等等。與圖3所示的局域網(wǎng)系統(tǒng)的不同之處在于,在圖4所示的局域網(wǎng)系統(tǒng)中,存在一個(gè) 服務(wù)器,用于監(jiān)測(cè)局域網(wǎng)內(nèi)各個(gè)終端的上行數(shù)據(jù)包發(fā)送情況,一旦發(fā)現(xiàn)某個(gè)終端上有高優(yōu) 先級(jí)的第一數(shù)據(jù)包需要發(fā)送,就向局域網(wǎng)內(nèi)的終端發(fā)送流量控制觸發(fā)消息,通知終端進(jìn)行 流量控制,以保證高優(yōu)先網(wǎng)絡(luò)應(yīng)用的正常運(yùn)行。因此,相當(dāng)于實(shí)現(xiàn)了一種集中控制。其中,服務(wù)器在向局域網(wǎng)內(nèi)的終端發(fā)送流量控制觸發(fā)消息時(shí),可以采用向各個(gè)終 端廣播的方式,也可以向某些特定的終端發(fā)送,具體實(shí)現(xiàn)可以參見(jiàn)本發(fā)明實(shí)施例五中的介 紹,這里不再贅述,另外,關(guān)于終端上進(jìn)行流量控制的具體實(shí)現(xiàn)方式,可以參見(jiàn)本發(fā)明實(shí)施 例一至四,這里亦不再贅述。以上對(duì)本發(fā)明所提供的一種網(wǎng)絡(luò)流量控制方法、裝置及局域網(wǎng)系統(tǒng),進(jìn)行了詳細(xì) 介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明 只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本 發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處。綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明 的限制。
權(quán)利要求
一種網(wǎng)絡(luò)流量控制方法,其特征在于,包括監(jiān)測(cè)新到來(lái)的待發(fā)送上行數(shù)據(jù)包;當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),按照以下方式對(duì)所述待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列;當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包時(shí),根據(jù)當(dāng)前的帶寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述第二上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù)包丟棄。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)當(dāng)前的帶寬占用情況,判斷是否 允許發(fā)送所述第二上行數(shù)據(jù)包,包括獲得本機(jī)上行發(fā)送緩存隊(duì)列的當(dāng)前水位值;其中,所述當(dāng)前水位值為上一統(tǒng)計(jì)時(shí)刻 獲得的水位值與從所述上一統(tǒng)計(jì)時(shí)刻到當(dāng)前統(tǒng)計(jì)時(shí)刻流出的數(shù)據(jù)量之差;所述流出的數(shù)據(jù) 量為所述上一統(tǒng)計(jì)時(shí)刻到當(dāng)前統(tǒng)計(jì)時(shí)刻的時(shí)間差與數(shù)據(jù)量流出速率之積;判斷所述當(dāng)前水位值與所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量之和是否小于預(yù)置的水位閾 值,如果是,則允許發(fā)送所述第二上行數(shù)據(jù)包;其中,所述數(shù)據(jù)量流出速率及預(yù)置的水位閾 值根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)包上傳速率確定。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用包括多個(gè)優(yōu)先 級(jí)級(jí)別,各個(gè)優(yōu)先級(jí)級(jí)別具有不同的預(yù)置水位閾值;所述判斷所述當(dāng)前水位值與所述第二 上行數(shù)據(jù)包所占數(shù)據(jù)量之和是否小于預(yù)置的水位閾值包括確定所述第二上行數(shù)據(jù)包的優(yōu)先級(jí)級(jí)別及該優(yōu)先級(jí)級(jí)別對(duì)應(yīng)的水位閾值;判斷所述當(dāng)前水位值與所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量之和是否小于該優(yōu)先級(jí)級(jí)別 對(duì)應(yīng)的水位閾值。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置 的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),還包括降低所述數(shù)據(jù)量流出速率,以便提高所述獲得的當(dāng)前水位值。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括如果從降低所述數(shù)據(jù)量流出速率時(shí)起的第一預(yù)置時(shí)間段內(nèi),沒(méi)有監(jiān)測(cè)到所述第一上行 數(shù)據(jù)包,則按照預(yù)置的速率恢復(fù)步長(zhǎng),恢復(fù)所述數(shù)據(jù)量流出速率。
6.根據(jù)權(quán)利要求2、3或5任一項(xiàng)所述的方法,其特征在于,還包括如果從監(jiān)測(cè)到第一上行數(shù)據(jù)包時(shí)起的第二預(yù)置時(shí)間段內(nèi),沒(méi)有監(jiān)測(cè)到新到來(lái)的所述第 一上行數(shù)據(jù)包,則將所述數(shù)據(jù)量流出速率提高到預(yù)置的足夠大的值。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括將預(yù)置時(shí)間段設(shè)置為一個(gè)時(shí)間 片,滑動(dòng)窗口內(nèi)包括多個(gè)時(shí)間片,每經(jīng)過(guò)一個(gè)時(shí)間片將所述滑動(dòng)窗口向后移動(dòng)一個(gè)時(shí)間 片;所述當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí) 還包括將所述第一上行數(shù)據(jù)包所占數(shù)據(jù)量加入到所述監(jiān)測(cè)時(shí)刻所在的時(shí)間片中;所述根據(jù)當(dāng)前的帶寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包包括獲得所 述滑動(dòng)窗口內(nèi)當(dāng)前各時(shí)間片中的總數(shù)據(jù)量;判斷所述總數(shù)據(jù)量與所述第二上行數(shù)據(jù)包所占 數(shù)據(jù)量之和是否小于預(yù)置的數(shù)據(jù)量閾值,如果是,則允許發(fā)送所述第二上行數(shù)據(jù)包,并將所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量加入到對(duì)應(yīng)的時(shí)間片中;其中,所述數(shù)據(jù)量閾值根據(jù)實(shí)際網(wǎng) 絡(luò)環(huán)境的數(shù)據(jù)包上傳速率確定。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條 件時(shí)包括當(dāng)監(jiān)測(cè)到有所述第一上行數(shù)據(jù)包需要發(fā)送時(shí),則滿足需要進(jìn)行流量控制的觸發(fā)條件;和/或,當(dāng)接收局域網(wǎng)內(nèi)的服務(wù)器或者其他終端發(fā)送的流量控制觸發(fā)消息時(shí),則滿足需要進(jìn)行 流量控制的觸發(fā)條件。
9.一種網(wǎng)絡(luò)流量控制裝置,其特征在于,包括監(jiān)測(cè)單元,用于監(jiān)測(cè)新到來(lái)的待發(fā)送上行數(shù)據(jù)包;流量控制單元,用于當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),按照以下方式對(duì)所述待 發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用 的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列;當(dāng)所述待發(fā)送上 行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包時(shí),根據(jù)當(dāng)前的帶寬占用情 況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述第二上行數(shù)據(jù)包加入到上行 發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù)包丟棄。
10.根據(jù)權(quán)利要求9所述裝置,其特征在于,所述流量控制單元包括水位值獲得子單元,用于獲得上行發(fā)送緩存隊(duì)列的當(dāng)前水位值;其中,所述當(dāng)前水位 值為上一統(tǒng)計(jì)時(shí)刻獲得的水位值與從所述上一統(tǒng)計(jì)時(shí)刻到當(dāng)前統(tǒng)計(jì)時(shí)刻流出的數(shù)據(jù)量之 差;所述流出的數(shù)據(jù)量為所述上一統(tǒng)計(jì)時(shí)刻到當(dāng)前統(tǒng)計(jì)時(shí)刻的時(shí)間差與數(shù)據(jù)量流出速率 之積;水位值判斷子單元,用于判斷所述當(dāng)前水位值與所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量之和 是否小于預(yù)置的水位閾值,如果是,則允許發(fā)送所述第二上行數(shù)據(jù)包;其中,所述數(shù)據(jù)量流 出速率及預(yù)置的水位閾值根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)包上傳速率確定。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用包括多個(gè)優(yōu) 先級(jí)級(jí)別,各個(gè)優(yōu)先級(jí)級(jí)別具有不同的預(yù)置水位閾值;所述水位值判斷子單元包括優(yōu)先級(jí)確定子單元,用于確定所述第二上行數(shù)據(jù)包的優(yōu)先級(jí)級(jí)別及該優(yōu)先級(jí)級(jí)別對(duì)應(yīng) 的水位閾值;判斷子單元,用于判斷所述當(dāng)前水位值與所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量之和是否小 于該優(yōu)先級(jí)級(jí)別對(duì)應(yīng)的水位閾值。
12.根據(jù)權(quán)利要求10或11所述的裝置,其特征在于,當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自 預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),還包括流速調(diào)整單元,用于降低所述數(shù)據(jù)量流出速率,以便提高所述獲得的當(dāng)前水位值。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,還包括流速恢復(fù)單元,用于如果從降低所述數(shù)據(jù)量流出速率時(shí)起的第一預(yù)置時(shí)間段內(nèi),沒(méi)有 監(jiān)測(cè)到所述第一上行數(shù)據(jù)包,則按照預(yù)置的速率恢復(fù)步長(zhǎng),恢復(fù)所述數(shù)據(jù)量流出速率。
14.根據(jù)權(quán)利要求10、11或13任一項(xiàng)所述的裝置,其特征在于,還包括流速提高單元,用于如果從監(jiān)測(cè)到第一上行數(shù)據(jù)包時(shí)起的第二預(yù)置時(shí)間段內(nèi),沒(méi)有監(jiān) 測(cè)到新到來(lái)的所述第一上行數(shù)據(jù)包,則將所述數(shù)據(jù)量流出速率提高到預(yù)置的足夠大的值。
15.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括滑動(dòng)窗口移動(dòng)單元,用于將預(yù)置 時(shí)間段設(shè)置為一個(gè)時(shí)間片,滑動(dòng)窗口內(nèi)包括多個(gè)時(shí)間片,每經(jīng)過(guò)一個(gè)時(shí)間片將所述滑動(dòng)窗 口向后移動(dòng)一個(gè)時(shí)間片;所述流量控制單元包括數(shù)據(jù)量更新子單元,用于將所述第一上行數(shù)據(jù)包所占數(shù)據(jù)量 加入到所述監(jiān)測(cè)時(shí)刻所在的時(shí)間片中;數(shù)據(jù)量獲得子單元,用于獲得所述滑動(dòng)窗口內(nèi)當(dāng)前 各時(shí)間片中的總數(shù)據(jù)量;數(shù)據(jù)量判斷子單元,用于判斷所述總數(shù)據(jù)量與所述第二上行數(shù)據(jù) 包所占數(shù)據(jù)量之和是否小于預(yù)置的數(shù)據(jù)量閾值,如果是,則允許發(fā)送所述第二上行數(shù)據(jù)包, 并將所述第二上行數(shù)據(jù)包所占數(shù)據(jù)量加入到對(duì)應(yīng)的時(shí)間片中;其中,所述數(shù)據(jù)量閾值根據(jù) 實(shí)際網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)包上傳速率確定。
16.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述流量控制單元包括第一觸發(fā)單元,用于當(dāng)監(jiān)測(cè)到有所述第一上行數(shù)據(jù)包需要發(fā)送時(shí),則觸發(fā)對(duì)所述待發(fā) 送上行數(shù)據(jù)包進(jìn)行流量控制;和/或,第二觸發(fā)單元,用于當(dāng)接收局域網(wǎng)內(nèi)的服務(wù)器或者其他終端發(fā)送的流量控制觸發(fā)消息 時(shí),則觸發(fā)對(duì)所述待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制。
17.—種局域網(wǎng)系統(tǒng),至少包括第一終端及第二終端,其特征在于所述第一終端包括監(jiān)測(cè)單元,用于監(jiān)測(cè)所述第一終端的待發(fā)送上行數(shù)據(jù)包;通信單 元,用于當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),向所述第二終端發(fā)送流量控制觸發(fā)消 息;所述第二終端包括流量控制單元,用于接收到所述流量控制觸發(fā)消息后,按照以下方 式對(duì)所述第二終端的待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù) 置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送緩存 隊(duì)列;當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包時(shí), 根據(jù)當(dāng)前的帶寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述第二 上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù)包丟棄。
18.根據(jù)權(quán)利要求17所述的局域網(wǎng)系統(tǒng),其特征在于,所述通信單元包括條件判斷子單元,用于當(dāng)監(jiān)測(cè)到所述第一終端有來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一 上行數(shù)據(jù)包需要發(fā)送時(shí),確定滿足需要進(jìn)行流量控制的觸發(fā)條件;發(fā)送子單元,用于向所述第二終端發(fā)送流量控制觸發(fā)消息。
19.一種局域網(wǎng)系統(tǒng),包括至少兩個(gè)終端,其特征在于,還包括服務(wù)器,其中,所述服務(wù)器包括監(jiān)測(cè)單元,用于監(jiān)測(cè)所述局域網(wǎng)系統(tǒng)內(nèi)各終端的待發(fā)送上行數(shù)據(jù)包; 通信單元,用于當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),向所述局域網(wǎng)系統(tǒng)內(nèi)的終端發(fā)送 流量控制觸發(fā)消息;所述終端包括流量控制單元,用于接收到所述流量控制觸發(fā)消息后,按照以下方式對(duì) 所述各自的待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu) 先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列;當(dāng) 所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包時(shí),根據(jù)當(dāng)前 的帶寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述第二上行數(shù)據(jù) 包加入到上行發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù)包丟棄。
20.根據(jù)權(quán)利要求19所述的局域網(wǎng)系統(tǒng),其特征在于,所述通信單元包括 條件判斷子單元,用于當(dāng)監(jiān)測(cè)到所述某終端有來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上 行數(shù)據(jù)包需要發(fā)送時(shí),確定滿足需要進(jìn)行流量控制的觸發(fā)條件;發(fā)送子單元,用于向所述局域網(wǎng)系統(tǒng)內(nèi)的終端發(fā)送流量控制觸發(fā)消息。
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)流量控制方法、裝置及局域網(wǎng)系統(tǒng),其中,所述方法包括監(jiān)測(cè)新到來(lái)的待發(fā)送上行數(shù)據(jù)包;當(dāng)滿足需要進(jìn)行流量控制的觸發(fā)條件時(shí),按照以下方式對(duì)所述待發(fā)送上行數(shù)據(jù)包進(jìn)行流量控制當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第一上行數(shù)據(jù)包時(shí),將所述第一上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列;當(dāng)所述待發(fā)送上行數(shù)據(jù)包為來(lái)自預(yù)置的非高優(yōu)先級(jí)網(wǎng)絡(luò)應(yīng)用的第二上行數(shù)據(jù)包時(shí),根據(jù)當(dāng)前的帶寬占用情況,判斷是否允許發(fā)送所述第二上行數(shù)據(jù)包,如果是,則將所述第二上行數(shù)據(jù)包加入到上行發(fā)送緩存隊(duì)列,否則將所述第二上行數(shù)據(jù)包丟棄。通過(guò)本發(fā)明,能夠降低個(gè)別網(wǎng)絡(luò)應(yīng)用對(duì)其他網(wǎng)絡(luò)應(yīng)用的影響。
文檔編號(hào)H04L1/00GK101827033SQ20101016494
公開日2010年9月8日 申請(qǐng)日期2010年4月30日 優(yōu)先權(quán)日2010年4月30日
發(fā)明者孫卓, 蔣又新 申請(qǐng)人:北京搜狗科技發(fā)展有限公司