1.一種網(wǎng)絡(luò)擁塞處理方法,其特征在于,包括:
獲取軟中斷的當(dāng)前中央處理器CPU占用率,根據(jù)所述當(dāng)前CPU占用率判斷是否進(jìn)行丟包處理;
當(dāng)確定進(jìn)行丟包處理時(shí),根據(jù)所述當(dāng)前CPU占用率確定當(dāng)前丟包率;
根據(jù)預(yù)設(shè)數(shù)據(jù)包選擇標(biāo)準(zhǔn)確定滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量;
根據(jù)所述當(dāng)前丟包率和所述滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量進(jìn)行選擇性丟包。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述當(dāng)前CPU占用率確定當(dāng)前丟包率,包括:
根據(jù)所述當(dāng)前CPU占用率確定當(dāng)前丟包權(quán)值;
根據(jù)所述當(dāng)前丟包權(quán)值確定所述當(dāng)前丟包率。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述當(dāng)前CPU占用率確定當(dāng)前丟包權(quán)值,包括:
判斷所述當(dāng)前CPU占用率是否大于第一閾值;
若所述當(dāng)前CPU占用率大于所述第一閾值,則確定所述當(dāng)前丟包權(quán)值加1,若所述當(dāng)前CPU占用率小于或等于所述第一閾值,則判斷所述CPU占用率是否小于第二閾值;
若所述當(dāng)前CPU占用率小于所述第二閾值,則判斷所述當(dāng)前丟包權(quán)值是否為零,若是,則確定所述當(dāng)前丟包權(quán)值不變,若不是,則確定所述當(dāng)前丟包權(quán)值減1;
若所述當(dāng)前CPU占用率大于或等于所述第二閾值,則在預(yù)設(shè)時(shí)間間隔后循環(huán)獲取新的CPU占用率。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)預(yù)設(shè)數(shù)據(jù)包選擇標(biāo)準(zhǔn)確定滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量,包括:
獲取數(shù)據(jù)包信息,其中,所述數(shù)據(jù)包信息包括數(shù)據(jù)包的協(xié)議類(lèi)型、數(shù)據(jù)包長(zhǎng)度、源端口和目的端口;
檢測(cè)所述數(shù)據(jù)包的所述協(xié)議類(lèi)型是否是預(yù)設(shè)協(xié)議類(lèi)型,若不是預(yù)設(shè)協(xié)議類(lèi)型,則確定所述數(shù)據(jù)包不滿(mǎn)足丟包條件,若是預(yù)設(shè)協(xié)議類(lèi)型,對(duì)數(shù)據(jù)包進(jìn)行預(yù)設(shè)協(xié)議類(lèi)型標(biāo)記,并檢測(cè)所述數(shù)據(jù)包的所述數(shù)據(jù)包長(zhǎng)度是否大于預(yù)設(shè)長(zhǎng)度;
若所述數(shù)據(jù)包的數(shù)據(jù)包長(zhǎng)度小于或等于所述預(yù)設(shè)長(zhǎng)度,則確定所述數(shù)據(jù)包不滿(mǎn)足丟包條件,若所述數(shù)據(jù)包的數(shù)據(jù)包長(zhǎng)度大于所述預(yù)設(shè)長(zhǎng)度,則確定滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量加1。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在檢測(cè)所述數(shù)據(jù)包的協(xié)議類(lèi)型是否是預(yù)設(shè)協(xié)議類(lèi)型之前,所述方法還包括:
檢測(cè)所述數(shù)據(jù)包是否含有預(yù)設(shè)協(xié)議類(lèi)型標(biāo)記,若是,則確定所述數(shù)據(jù)包不滿(mǎn)足丟包條件,若否,則檢測(cè)所述數(shù)據(jù)包的所述協(xié)議類(lèi)型是否是預(yù)設(shè)協(xié)議類(lèi)型。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,在確定滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量之后,所述方法還包括:
檢測(cè)所述數(shù)據(jù)包的源端口和/或目的端口是否是預(yù)放開(kāi)端口,若是,則確定所述數(shù)據(jù)包不滿(mǎn)足丟包條件,若否,則確定所述數(shù)據(jù)包滿(mǎn)足所述丟包條件。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述當(dāng)前丟包率和所述滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量進(jìn)行選擇性丟包,包括:
根據(jù)所述當(dāng)前丟包率和所述滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量確定丟包數(shù)量;
在滿(mǎn)足丟包條件的數(shù)據(jù)包中隨機(jī)選擇所述丟包數(shù)量的數(shù)據(jù)包進(jìn)行丟包處理。
8.一種網(wǎng)絡(luò)擁塞處理裝置,其特征在于,包括:
丟包處理判斷模塊,用于獲取軟中斷的當(dāng)前中央處理器CPU占用率,根據(jù)所述當(dāng)前CPU占用率判斷是否進(jìn)行丟包處理;
丟包率確定模塊,用于當(dāng)確定進(jìn)行丟包處理時(shí),根據(jù)所述當(dāng)前CPU占用率確定當(dāng)前丟包率;
數(shù)據(jù)包數(shù)量確定模塊,用于根據(jù)預(yù)設(shè)數(shù)據(jù)包選擇標(biāo)準(zhǔn)確定滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量;
丟包控制模塊,用于根據(jù)所述當(dāng)前丟包率和所述滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量進(jìn)行選擇性丟包。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述丟包率確定模塊包括:
丟包權(quán)值確定單元,用于根據(jù)所述當(dāng)前CPU占用率確定當(dāng)前丟包權(quán)值;
丟包率確定單元,用于根據(jù)所述當(dāng)前丟包權(quán)值確定所述當(dāng)前丟包率,其中,所述丟包率確定單元包括:
第一閾值判斷子單元,用于判斷所述當(dāng)前CPU占用率是否大于第一閾值;
第一丟包權(quán)值確定子單元,用于若所述當(dāng)前CPU占用率大于所述第一閾值,則確定所述當(dāng)前丟包權(quán)值加1;
第二閾值判斷子單元,用于若所述當(dāng)前CPU占用率小于或等于所述第一閾值,則判斷所述CPU占用率是否小于第二閾值;
第二丟包權(quán)值確定子單元,用于若所述當(dāng)前CPU占用率小于所述第二閾值,則進(jìn)一步判斷所述當(dāng)前丟包權(quán)值是否為零,若是,則確定所述當(dāng)前丟包權(quán)值不變,若不是,則確定所述當(dāng)前丟包權(quán)值減1;
CPU占用率循環(huán)獲取子單元,用于若所述當(dāng)前CPU占用率大于或等于所述第二閾值,則在預(yù)設(shè)時(shí)間間隔后循環(huán)獲取新的CPU占用率;
相應(yīng)的,所述丟包控制模塊包括:
丟包數(shù)量確定單元,用于根據(jù)所述當(dāng)前丟包率和所述滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量確定丟包數(shù)量;
丟包控制單元,用于在滿(mǎn)足丟包條件的數(shù)據(jù)包中隨機(jī)選擇所述丟包數(shù)量的數(shù)據(jù)包進(jìn)行丟包處理。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述數(shù)據(jù)包數(shù)量確定模塊包括:
數(shù)據(jù)包信息獲取單元,用于獲取數(shù)據(jù)包信息,其中,所述數(shù)據(jù)包信息包括數(shù)據(jù)包的協(xié)議類(lèi)型、數(shù)據(jù)包長(zhǎng)度、源端口和目的端口;
協(xié)議類(lèi)型判斷單元,用于檢測(cè)所述數(shù)據(jù)包的所述協(xié)議類(lèi)型是否是預(yù)設(shè)協(xié)議類(lèi)型,若不是預(yù)設(shè)協(xié)議類(lèi)型,則確定所述數(shù)據(jù)包不滿(mǎn)足丟包條件;
數(shù)據(jù)包長(zhǎng)度判斷單元,用于若所述數(shù)據(jù)包的協(xié)議類(lèi)型是預(yù)設(shè)協(xié)議類(lèi)型,對(duì)數(shù)據(jù)包進(jìn)行預(yù)設(shè)協(xié)議類(lèi)型標(biāo)記,并檢測(cè)所述數(shù)據(jù)包的所述數(shù)據(jù)包長(zhǎng)度是否大于預(yù)設(shè)長(zhǎng)度;
數(shù)據(jù)包數(shù)量確定單元,用于若所述數(shù)據(jù)包的數(shù)據(jù)包長(zhǎng)度小于或等于所述預(yù)設(shè)長(zhǎng)度,則確定所述數(shù)據(jù)包不滿(mǎn)足丟包條件,若所述數(shù)據(jù)包的數(shù)據(jù)包長(zhǎng)度大于所述預(yù)設(shè)長(zhǎng)度,則確定滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量加1;
標(biāo)記檢測(cè)單元,在檢測(cè)所述數(shù)據(jù)包的協(xié)議類(lèi)型是否是預(yù)設(shè)協(xié)議類(lèi)型之前,檢測(cè)所述數(shù)據(jù)包是否含有預(yù)設(shè)協(xié)議類(lèi)型標(biāo)記,若是,則確定所述數(shù)據(jù)包不滿(mǎn)足丟包條件,若否,則檢測(cè)所述數(shù)據(jù)包的所述協(xié)議類(lèi)型是否是預(yù)設(shè)協(xié)議類(lèi)型;
端口檢測(cè)單元,用于在確定滿(mǎn)足丟包條件的數(shù)據(jù)包數(shù)量之后,檢測(cè)所述數(shù)據(jù)包的源端口和/或目的端口是否是預(yù)放開(kāi)端口,若是,則確定所述數(shù)據(jù)包不滿(mǎn)足丟包條件,若否,則確定所述數(shù)據(jù)包滿(mǎn)足所述丟包條件。