專利名稱:一種數(shù)據(jù)包傳輸?shù)姆椒把b置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)包傳輸?shù)姆椒把b置。
背景技術(shù):
目前,設(shè)備與設(shè)備之間、設(shè)備中模塊與模塊之間的數(shù)據(jù)包傳輸廣泛存在于通信系統(tǒng)中。通常,在發(fā)送數(shù)據(jù)包之前需要對(duì)待發(fā)送的數(shù)據(jù)包進(jìn)行擁塞管理,以降低數(shù)據(jù)包傳輸過程中的丟包率。在擁塞管理階段,如果緩存隊(duì)列已滿或者等待進(jìn)入緩存隊(duì)列的數(shù)據(jù)包數(shù)量超過門限值,則擁塞管理機(jī)制會(huì)將等待進(jìn)入緩存隊(duì)列的數(shù)據(jù)包丟棄;如果緩存隊(duì)列未滿或者等待進(jìn)入緩存隊(duì)列的數(shù)據(jù)包數(shù)量未達(dá)到門限值,則擁塞管理機(jī)制將數(shù)據(jù)包加入到緩存隊(duì)列中,其中處于擁塞管理階段的數(shù)據(jù)包為未緩存數(shù)據(jù)包。在數(shù)據(jù)包緩存階段,多個(gè)數(shù)據(jù)包被分配到不同的隊(duì)列中,按照入隊(duì)先后順序等待發(fā)送調(diào)度。在發(fā)送調(diào)度階段,發(fā)送調(diào)度機(jī)制從各個(gè)隊(duì)列中提取出數(shù)據(jù)包將其發(fā)送給接收端。在現(xiàn)有數(shù)據(jù)包傳輸?shù)倪^程中,數(shù)據(jù)包傳輸前需要經(jīng)過擁塞管理、數(shù)據(jù)包緩存以及發(fā)送調(diào)度三個(gè)階段的處理。其中,擁塞管理和發(fā)送調(diào)度兩個(gè)階段均有基于數(shù)據(jù)包重要程度的差異化處理機(jī)制。例如,當(dāng)緩存隊(duì)列已滿或者未緩存數(shù)據(jù)包的數(shù)量超過門限值時(shí),擁塞管理機(jī)制會(huì)丟棄部分未緩存數(shù)據(jù)包;發(fā)送調(diào)度機(jī)制會(huì)優(yōu)先選擇重要程度較高的隊(duì)列中的數(shù)據(jù)包進(jìn)行發(fā)送。而在數(shù)據(jù)包緩存階段則沒有這種差異化處理機(jī)制。隊(duì)列僅按照入隊(duì)的時(shí)間順序?qū)?shù)據(jù)包進(jìn)行緩存,當(dāng)隊(duì)列已滿或者超過門限值時(shí),擁塞管理階段中的未緩存數(shù)據(jù)包無(wú)法進(jìn)入隊(duì)列。雖然擁塞管理階段能夠丟棄部分未緩存數(shù)據(jù)包,但是隨著未緩存數(shù)據(jù)包數(shù)量的增加,擁塞管理階段丟棄的數(shù)據(jù)包數(shù)量也會(huì)增加,擁塞管理機(jī)制仍然避免不了對(duì)重要的未緩存數(shù)據(jù)包進(jìn)行丟棄,由此對(duì)重要業(yè)務(wù)的服務(wù)質(zhì)量(Quality of Service,簡(jiǎn)稱QoS)產(chǎn)生影響。
發(fā)明內(nèi)容
本發(fā)明提供一種 數(shù) 據(jù)包傳輸?shù)姆椒把b置,能夠有效改善設(shè)備之間或設(shè)備中模塊之間突發(fā)擁塞時(shí)擁塞管理階段丟包過多的問題。第一方面,本發(fā)明提供一種數(shù)據(jù)包傳輸?shù)姆椒?,所述方法包?當(dāng)發(fā)生數(shù)據(jù)包擁塞或網(wǎng)絡(luò)帶寬減小時(shí),在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包;將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,以便使至少一個(gè)未緩存數(shù)據(jù)包進(jìn)入到所述數(shù)據(jù)包緩存中,由此防止丟棄過多未緩存數(shù)據(jù)包,其中所述未緩存數(shù)據(jù)包為未進(jìn)入所述數(shù)據(jù)包緩存的數(shù)據(jù)包。在所述第一方面的第一種可能的實(shí)現(xiàn)方式中,所述在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包,具體包括:為所述數(shù)據(jù)包緩存中的至少一個(gè)隊(duì)列分別分配丟包數(shù)量,所述丟包數(shù)量為大于或等于O的整數(shù)。
在所述第一方面或所述第一方面的第一種可能的實(shí)現(xiàn)方式中,還提供了所述第一方面的第二種可能的實(shí)現(xiàn)方式,在所述第一方面的第二種可能的實(shí)現(xiàn)方式中,在所述第一方面的第二種可能的實(shí)現(xiàn)方式中,所述為所述數(shù)據(jù)包緩存中的至少一個(gè)隊(duì)列分別分配丟包數(shù)量,具體包括:根據(jù)第一映射關(guān)系表以及隊(duì)列的優(yōu)先級(jí)為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第一映射表用于表征隊(duì)列優(yōu)先級(jí)與丟包數(shù)量之間的映射關(guān)系,高優(yōu)先級(jí)隊(duì)列的丟包數(shù)量小于低優(yōu)先級(jí)隊(duì)列的丟包數(shù)量;或者,根據(jù)第二映射關(guān)系表以及隊(duì)列包含數(shù)據(jù)包的數(shù)量為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第二映射表用于表征隊(duì)列包含數(shù)據(jù)包的數(shù)量與丟包數(shù)量之間的映射關(guān)系,包含數(shù)據(jù)包數(shù)量多的隊(duì)列的丟包數(shù)量大于包含數(shù)據(jù)包數(shù)量少的隊(duì)列的丟包數(shù)量。在所述第一方面或所述第一方面的第一種可能或第二種可能的實(shí)現(xiàn)方式中,還提供了所述第一方面的第三種可能的實(shí)現(xiàn)方式,在所述第一方面的第三種可能的實(shí)現(xiàn)方式中,所述在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包,具體包括:在每個(gè)隊(duì)列中,按照平均分布規(guī)則等間隔選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為為該隊(duì)列分配 的丟包數(shù)量;或者,在每個(gè)隊(duì)列中,按照隨機(jī)分布規(guī)則隨機(jī)選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為為該隊(duì)列分配的丟包數(shù)量;或者,根據(jù)第一排序規(guī)則對(duì)所述至少一個(gè)隊(duì)列進(jìn)行排序,獲得排序隊(duì)列,從所述排序隊(duì)列的一端開始,輪詢將每個(gè)隊(duì)列中的第一個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,當(dāng)某個(gè)隊(duì)列的丟包數(shù)量達(dá)到為該隊(duì)列分配的丟包數(shù)量時(shí),該隊(duì)列退出所述排序隊(duì)列,當(dāng)所述排序隊(duì)列中的隊(duì)列數(shù)量為O時(shí),完成待丟棄數(shù)據(jù)包的確定。在所述第一方面或所述第一方面的第一種可能、第二種可能或第三種可能的實(shí)現(xiàn)方式中,還提供了所述第一方面的第四種可能的實(shí)現(xiàn)方式,在所述第一方面的第四種可能的實(shí)現(xiàn)方式中,所述將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,具體包括:按照預(yù)設(shè)丟包規(guī)則將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄。在所述第一方面或所述第一方面的第一種可能、第二種可能、第三種可能或第四種可能的實(shí)現(xiàn)方式中,還提供了所述第一方面的第五種可能的實(shí)現(xiàn)方式,在所述第一方面的第五種可能的實(shí)現(xiàn)方式中,所述按照預(yù)設(shè)丟包規(guī)則將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,具體包括:獲取每個(gè)待丟棄數(shù)據(jù)包的索引標(biāo)識(shí),生成丟包組,所述索引標(biāo)識(shí)為待丟棄數(shù)據(jù)包的隊(duì)列標(biāo)識(shí)與待丟棄數(shù)據(jù)包的位置標(biāo)識(shí)的組合;判斷所述丟包組中是否還有未丟棄的待丟棄數(shù)據(jù)包;當(dāng)判斷結(jié)果為是時(shí),選擇至少一個(gè)索引標(biāo)識(shí)對(duì)應(yīng)的待丟棄數(shù)據(jù)包進(jìn)行丟棄。在所述第一方面或所述第一方面的第一種可能、第二種可能、第三種可能、第四種可能或第五種可能的實(shí)現(xiàn)方式中,還提供了所述第一方面的第六種可能的實(shí)現(xiàn)方式,在所述第一方面的第六種可能的實(shí)現(xiàn)方式中,所述按照預(yù)設(shè)丟包規(guī)則將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,具體包括:在每確定一個(gè)待丟棄數(shù)據(jù)包后,獲取所述待丟棄數(shù)據(jù)包的索引標(biāo)識(shí),根據(jù)所述索引標(biāo)識(shí)對(duì)所述待丟棄數(shù)據(jù)包進(jìn)行丟棄。
在所述第一方面或所述第一方面的第一種可能、第二種可能、第三種可能、第四種可能、第五種可能或第六種可能的實(shí)現(xiàn)方式中,還提供了所述第一方面的第七種可能的實(shí)現(xiàn)方式,在所述第一方面的第七種可能的實(shí)現(xiàn)方式中,在所述在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包之前,所述方法進(jìn)一步包括:確定待丟棄數(shù)據(jù)包的總數(shù)量;將第一待丟棄數(shù)據(jù)包數(shù)量分配給所述數(shù)據(jù)包緩存進(jìn)行丟棄,所述第一待丟棄數(shù)據(jù)包數(shù)量小于或等于待丟棄數(shù)據(jù)包總數(shù)量;所述在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包,具體包括:將所述數(shù)據(jù)包緩存中第一待丟棄數(shù)據(jù)包數(shù)量的數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包的數(shù)量。第二方面,本發(fā)明提供一種數(shù)據(jù)包傳輸?shù)难b置,所述裝置包括:確定單元,用于當(dāng)發(fā)生數(shù)據(jù)包擁塞或網(wǎng)絡(luò)帶寬減小時(shí),在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包; 丟棄單元,用于將所述確定單元確定的所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,以便使至少一個(gè)未緩存數(shù)據(jù)包進(jìn)入到所述數(shù)據(jù)包緩存中,由此防止丟棄過多未緩存數(shù)據(jù)包,其中所述未緩存數(shù)據(jù)包為未進(jìn)入所述數(shù)據(jù)包緩存的數(shù)據(jù)包。在所述第二方面的第一種可能的實(shí)現(xiàn)方式中,所述確定單元具體包括:分配子單元,用于為所述數(shù)據(jù)包緩存中的至少一個(gè)隊(duì)列分別分配丟包數(shù)量,所述丟包數(shù)量為大于或等于O的整數(shù)。在所述第二方面或所述第二方面的第一種可能的實(shí)現(xiàn)方式中,還提供了所述第二方面的第二種可能的實(shí)現(xiàn)方式,所述分配子單元具體用于:根據(jù)第一映射關(guān)系表以及隊(duì)列的優(yōu)先級(jí)為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第一映射表用于表征隊(duì)列優(yōu)先級(jí)與丟包數(shù)量之間的映射關(guān)系,高優(yōu)先級(jí)隊(duì)列的丟包數(shù)量小于低優(yōu)先級(jí)隊(duì)列的丟包數(shù)量;根據(jù)第二映射關(guān)系表以及隊(duì)列包含數(shù)據(jù)包的數(shù)量為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第二映射表用于表征隊(duì)列包含數(shù)據(jù)包的數(shù)量與丟包數(shù)量之間的映射關(guān)系,包含數(shù)據(jù)包數(shù)量多的隊(duì)列的丟包數(shù)量大于包含數(shù)據(jù)包數(shù)量少的隊(duì)列的丟包數(shù)量。在所述第二方面或所述第二方面的第一種可能或第二種可能的實(shí)現(xiàn)方式中,還提供了所述第二方面的第三種可能的實(shí)現(xiàn)方式,在所述第二方面的第三種可能的實(shí)現(xiàn)方式中,所述確定單元進(jìn)一步包括:確定子單元,用于:在每個(gè)隊(duì)列中,按照平均分布規(guī)則等間隔選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為所述分配子單元為該隊(duì)列分配的丟包數(shù)量;在每個(gè)隊(duì)列中,按照隨機(jī)分布規(guī)則隨機(jī)選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為所述分配子單元為該隊(duì)列分配的丟包數(shù)量;根據(jù)第一排序規(guī)則對(duì)所述至少一個(gè)隊(duì)列進(jìn)行排序,獲得排序隊(duì)列,從所述排序隊(duì)列的一端開始,輪詢將每個(gè)隊(duì)列中的第一個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,當(dāng)某個(gè)隊(duì)列的丟包數(shù)量達(dá)到所述分配子單元為該隊(duì)列分配的丟包數(shù)量時(shí),該隊(duì)列退出所述排序隊(duì)列,當(dāng)所述排序隊(duì)列中的隊(duì)列數(shù)量為O時(shí),所述確定子單元完成待丟棄數(shù)據(jù)包的確定。
在所述第二方面或所述第二方面的第一種可能、第二種可能或第三種可能的實(shí)現(xiàn)方式中,還提供了所述第二方面的第四種可能的實(shí)現(xiàn)方式,在所述第二方面的第四種可能的實(shí)現(xiàn)方式中,所述丟棄單元具體用于:按照預(yù)設(shè)丟包規(guī)則將所述確定單元確定的所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄。在所述第二方面或所述第二方面的第一種可能、第二種可能、第三種可能或第四種可能的實(shí)現(xiàn)方式中,還提供了所述第二方面的第五種可能的實(shí)現(xiàn)方式,在所述第二方面的第五種可能的實(shí)現(xiàn)方式中,所述丟棄單元具體包括:獲取子單元,用于獲取每個(gè)待丟棄數(shù)據(jù)包的索引標(biāo)識(shí),生成丟包組,所述索引標(biāo)識(shí)為待丟棄數(shù)據(jù)包的隊(duì)列標(biāo)識(shí)與待丟棄數(shù)據(jù)包的位置標(biāo)識(shí)的組合;判斷子單元,用于判斷所述獲取子單元生成的所述丟包組中是否還有未丟棄的待丟棄數(shù)據(jù)包;丟棄子單元,用于當(dāng)所述判斷子單元的判斷結(jié)果為是時(shí),選擇至少一個(gè)索引標(biāo)識(shí)對(duì)應(yīng)的待丟棄數(shù)據(jù)包進(jìn)行丟棄。在所述第二方面或所述第二方面的第一種可能、第二種可能、第三種可能、第四種可能或第五種可能的實(shí)現(xiàn)方式中,還提供了所述第二方面的第六種可能的實(shí)現(xiàn)方式,在所述第二方面的第六種可能的實(shí)現(xiàn)方式中,所述獲取子單元還用于在所述確定單元每確定一個(gè)待丟棄數(shù)據(jù)包后,獲取所述待丟棄數(shù)據(jù)包的索引標(biāo)識(shí);所述丟棄子單元還用于根據(jù)所述獲取子單元獲取的所述索引標(biāo)識(shí)對(duì)所述待丟棄數(shù)據(jù)包進(jìn)行丟棄。在所述第二方面或所述第二方面的第一種可能、第二種可能、第三種可能、第四種可能、第五種可能或第六種可能的實(shí)現(xiàn)方式中,還提供了所述第二方面的第七種可能的實(shí)現(xiàn)方式,在所述第二方面的第七種可能的實(shí)現(xiàn)方式中,所述裝置進(jìn)一步包括:`
管理單元,用于:確定待丟棄數(shù)據(jù)包的總數(shù)量;將第一待丟棄數(shù)據(jù)包數(shù)量分配給所述數(shù)據(jù)包緩存進(jìn)行丟棄,所述第一待丟棄數(shù)據(jù)包數(shù)量小于或等于待丟棄數(shù)據(jù)包總數(shù)量;將所述數(shù)據(jù)包緩存中第一待丟棄數(shù)據(jù)包數(shù)量的數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包的數(shù)量。第三方面,本發(fā)明提供一種數(shù)據(jù)包傳輸?shù)难b置,所述裝置包括:接收器,用于接收待發(fā)送的數(shù)據(jù)包;緩存器,用于緩存所述接收器接收的所述數(shù)據(jù)包;處理器,用于當(dāng)發(fā)生數(shù)據(jù)包擁塞或網(wǎng)絡(luò)帶寬減小時(shí),在所述緩存器緩存的所述數(shù)據(jù)包中確定至少一個(gè)待丟棄數(shù)據(jù)包,將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,以便使至少一個(gè)未緩存數(shù)據(jù)包進(jìn)入到所述緩存器中,由此防止丟棄過多未緩存數(shù)據(jù)包,其中所述未緩存數(shù)據(jù)包為未進(jìn)入所述緩存器的數(shù)據(jù)包。在所述第三方面的第一種可能的實(shí)現(xiàn)方式中,所述處理器具體用于:為所述緩存器中的至少一個(gè)隊(duì)列分別分配丟包數(shù)量,所述丟包數(shù)量為大于或等于O的整數(shù)。在所述第三方面或所述第三方面的第一種可能的實(shí)現(xiàn)方式中,還提供了所述第三方面的第二種可能的實(shí)現(xiàn)方式,在所述第三方面的第二種可能的實(shí)現(xiàn)方式中,所述處理器進(jìn)一步具體用于:根據(jù)第一映射關(guān)系表以及隊(duì)列的優(yōu)先級(jí)為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第一映射表用于表征隊(duì)列優(yōu)先級(jí)與丟包數(shù)量之間的映射關(guān)系,高優(yōu)先級(jí)隊(duì)列的丟包數(shù)量小于低優(yōu)先級(jí)隊(duì)列的丟包數(shù)量;根據(jù)第二映射關(guān)系表以及隊(duì)列包含數(shù)據(jù)包的數(shù)量為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第二映射表用于表征隊(duì)列包含數(shù)據(jù)包的數(shù)量與丟包數(shù)量之間的映射關(guān)系,包含數(shù)據(jù)包數(shù)量多的隊(duì)列的丟包數(shù)量大于包含數(shù)據(jù)包數(shù)量少的隊(duì)列的丟包數(shù)量。在所述第三方面或所述第三方面的第一種可能或第二種可能的實(shí)現(xiàn)方式中,還提供了所述第三方面的第三種可能的實(shí)現(xiàn)方式,在所述第三方面的第三種可能的實(shí)現(xiàn)方式中,所述處理器還具體用于:
在每個(gè)隊(duì)列中,按照平均分布規(guī)則等間隔選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為為該隊(duì)列分配的丟包數(shù)量;在每個(gè)隊(duì)列中,按照隨機(jī)分布規(guī)則隨機(jī)選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為為該隊(duì)列分配的丟包數(shù)量;根據(jù)第一排序規(guī)則對(duì)所述至少一個(gè)隊(duì)列進(jìn)行排序,獲得排序隊(duì)列,從所述排序隊(duì)列的一端開始,輪詢將每個(gè)隊(duì)列中的第一個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,當(dāng)某個(gè)隊(duì)列的丟包數(shù)量達(dá)到為該隊(duì)列分配的丟包數(shù)量時(shí),該隊(duì)列退出所述排序隊(duì)列,當(dāng)所述排序隊(duì)列中的隊(duì)列數(shù)量為O時(shí),完成待丟棄數(shù)據(jù)包的確定。在所述第三方面或所述第三方面的第一種可能、第二種可能或第三種可能的實(shí)現(xiàn)方式中,還提供了所述第三方面的第四種可能的實(shí)現(xiàn)方式,在所述第三方面的第四種可能的實(shí)現(xiàn)方式中,所述處理器具體用于:按照預(yù)設(shè)丟包規(guī)則將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄。在所述第三方面或所述第三方面的第一種可能、第二種可能、第三種可能或第四種可能的實(shí)現(xiàn)方式中,還提供了所述第三方面的第五種可能的實(shí)現(xiàn)方式,在所述第三方面的第五種可能的實(shí)現(xiàn)方式中,所述處理器具體用于:獲取每個(gè)待丟棄數(shù)據(jù)包的索引標(biāo)識(shí),生成丟包組,所述索引標(biāo)識(shí)為待丟棄數(shù)據(jù)包的隊(duì)列標(biāo)識(shí)與待丟棄數(shù)據(jù)包的位置標(biāo)識(shí)的組合;判斷所述丟包組中是否還有未丟棄的待丟棄數(shù)據(jù)包;當(dāng)判斷結(jié)果為是時(shí),選擇至少一個(gè)索引標(biāo)識(shí)對(duì)應(yīng)的待丟棄數(shù)據(jù)包進(jìn)行丟棄。在所述第三方面或所述第三方面的第一種可能、第二種可能、第三種可能、第四種可能或第五種可能的實(shí)現(xiàn)方式中,還提供了所述第三方面的第六種可能的實(shí)現(xiàn)方式,在所述第三方面的第六種可能的實(shí)現(xiàn)方式中,所述處理器具體用于:在每確定一個(gè)待丟棄數(shù)據(jù)包后,獲取所述待丟棄數(shù)據(jù)包的索引標(biāo)識(shí),根據(jù)所述索引標(biāo)識(shí)對(duì)所述待丟棄數(shù)據(jù)包進(jìn)行丟棄。在所述第三方面或所述第三方面的第一種可能、第二種可能、第三種可能、第四種可能、第五種可能或第六種可能的實(shí)現(xiàn)方式中,還提供了所述第三方面的第七種可能的實(shí)現(xiàn)方式,在所述第三方面的第七種可能的實(shí)現(xiàn)方式中,所述處理器還具體用于:確定待丟棄數(shù)據(jù)包的總數(shù)量;
將第一待丟棄數(shù)據(jù)包數(shù)量分配給所述緩存器,所述第一待丟棄數(shù)據(jù)包數(shù)量小于或等于待丟棄數(shù)據(jù)包總數(shù)量;將所述緩存器中第一待丟棄數(shù)據(jù)包數(shù)量的數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包的數(shù)量。本發(fā)明提供的數(shù)據(jù)包傳輸?shù)姆椒把b置,能夠在緩存隊(duì)列已滿或者超過門限值時(shí),將緩存隊(duì)列中的部分?jǐn)?shù)據(jù)包進(jìn)行丟棄,空出部分緩存空間以便使部分未緩存數(shù)據(jù)包進(jìn)入緩存隊(duì)列。與現(xiàn)有技術(shù)中緩存隊(duì)列僅作緩存數(shù)據(jù)包之用、緩存隊(duì)列階段沒有數(shù)據(jù)包丟棄機(jī)制相比,能夠及時(shí)將未緩存的重要數(shù)據(jù)包加入到緩存隊(duì)列中,從而緩解擁塞管理階段的丟包壓力,避免突發(fā)擁塞時(shí)擁塞管理機(jī)制丟棄重要性較高的未緩存數(shù)據(jù)包。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例中數(shù)據(jù)包傳輸過程的示意圖;圖2為本發(fā)明實(shí)施例中數(shù)據(jù)包傳輸?shù)姆椒鞒虉D;圖3為本發(fā)明實(shí)施例中另一個(gè)數(shù)據(jù)包傳輸?shù)姆椒鞒虉D;圖4(a)和圖4(b)為本發(fā)明實(shí)施例中選擇至少一個(gè)隊(duì)列的示意圖;圖5為本發(fā)明實(shí)施例中輪詢丟棄數(shù)據(jù)包的示意圖;圖6為本發(fā)明實(shí)施例中第一個(gè)數(shù)據(jù)包傳輸?shù)难b置結(jié)構(gòu)示意
圖7為本發(fā)明實(shí)施例中第二個(gè)數(shù)據(jù)包傳輸?shù)难b置結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例中第三個(gè)數(shù)據(jù)包傳輸?shù)难b置結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例中第四個(gè)數(shù)據(jù)包傳輸?shù)难b置結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。為了便于理解本發(fā)明實(shí)施例,首先對(duì)本發(fā)明實(shí)施例所基于的數(shù)據(jù)包傳輸過程進(jìn)行簡(jiǎn)單介紹。如圖1所示,在數(shù)據(jù)包發(fā)送端,待發(fā)送數(shù)據(jù)包需要順序經(jīng)過擁塞管理、數(shù)據(jù)包緩存以及發(fā)送調(diào)度三個(gè)階段的處理才能發(fā)送到數(shù)據(jù)包接收端。在擁塞管理階段,如果緩存隊(duì)列已滿,則擁塞管理機(jī)制會(huì)根據(jù)業(yè)務(wù)QoS差異化處理機(jī)制將等級(jí)較低的未緩存數(shù)據(jù)包進(jìn)行丟棄,優(yōu)先保證等級(jí)較高的未緩存數(shù)據(jù)包能夠加入到緩存隊(duì)列中;如果緩存隊(duì)列未滿,則擁塞管理機(jī)制會(huì)根據(jù)未緩存的數(shù)據(jù)包類型、優(yōu)先級(jí)、數(shù)據(jù)包大小等屬性將未緩存數(shù)據(jù)包加入到緩存隊(duì)列中的不同隊(duì)列中。緩存隊(duì)列對(duì)加入的數(shù)據(jù)包進(jìn)行緩存,等待發(fā)送調(diào)度階段的調(diào)度發(fā)送。在發(fā)送調(diào)度階段,如果傳輸資源有限,則發(fā)送調(diào)度機(jī)制會(huì)根據(jù)業(yè)務(wù)QoS差異化處理機(jī)制優(yōu)先發(fā)送等級(jí)較高的數(shù)據(jù)包;如果傳輸資源夠用,則發(fā)送調(diào)度機(jī)制對(duì)所有待發(fā)送數(shù)據(jù)包進(jìn)行發(fā)送。
需要說(shuō)明的是,本發(fā)明實(shí)施例中所述的數(shù)據(jù)包緩存與數(shù)據(jù)包緩存為同等概念本發(fā)明實(shí)施例提供一種數(shù)據(jù)包傳輸?shù)姆椒?,如圖2所示,所述方法包括如下步驟:201、當(dāng)發(fā)生數(shù)據(jù)包擁塞或網(wǎng)絡(luò)帶寬減小時(shí),在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包。在本發(fā)明實(shí)施例中,緩存隊(duì)列發(fā)生數(shù)據(jù)包擁塞可以為包含多個(gè)隊(duì)列的數(shù)據(jù)包緩存區(qū)域整體發(fā)生擁塞,或者數(shù)據(jù)包緩存區(qū)域緩存滿。當(dāng)緩存隊(duì)列發(fā)生數(shù)據(jù)包擁塞時(shí),在數(shù)據(jù)包緩存區(qū)域中選擇一個(gè)或多個(gè)數(shù)據(jù)包作為待丟棄數(shù)據(jù)包。具體的,可以通過下述兩種方式監(jiān)測(cè)緩存隊(duì)列是否發(fā)生數(shù)據(jù)包擁塞:I)監(jiān)測(cè)已進(jìn)入緩存隊(duì)列的數(shù)據(jù)包數(shù)量是否超過預(yù)設(shè)門限值,如果已進(jìn)入緩存隊(duì)列的數(shù)據(jù)包數(shù)量超過預(yù)設(shè)門限值,則監(jiān)測(cè)到緩存隊(duì)列發(fā)生擁塞。所述已進(jìn)入緩存隊(duì)列的數(shù)據(jù)包數(shù)量為已進(jìn)入緩存隊(duì)列中所有隊(duì)列的數(shù)據(jù)包數(shù)量的總和,即進(jìn)入數(shù)據(jù)包緩存區(qū)域的數(shù)據(jù)包總數(shù)量。所述預(yù)設(shè)門限值可以為一個(gè)比例值也可以為一個(gè)絕對(duì)數(shù)值。所述預(yù)設(shè)門限值可以為數(shù)據(jù)包緩存區(qū)域緩存滿時(shí)數(shù)據(jù)包緩存區(qū)域緩存的數(shù)量,也可以低于數(shù)據(jù)包緩存區(qū)域緩存滿時(shí)數(shù)據(jù)包緩存區(qū)域緩存的數(shù)量。以預(yù)設(shè)門限值為一個(gè)比例值為例,預(yù)設(shè)門限值可以為100%,也可以為80%。預(yù)設(shè)門限值的設(shè)置可以基于數(shù)據(jù)包傳輸?shù)膶?shí)際情況而定,本發(fā)明實(shí)施例對(duì)預(yù)設(shè)門限值的設(shè)置不做限制。2)如果接收到數(shù)據(jù)包丟棄指示,則監(jiān)測(cè)到緩存隊(duì)列發(fā)生數(shù)據(jù)包擁塞。所述數(shù)據(jù)包丟棄指示可以來(lái)自上層傳輸管理設(shè)備,也可以來(lái)自擁塞管理設(shè)備,當(dāng)上層傳輸管理設(shè)備發(fā)現(xiàn)緩存隊(duì)列擁塞或者擁塞管理設(shè)備發(fā)現(xiàn)無(wú)法向緩存隊(duì)列中加入數(shù)據(jù)包時(shí),發(fā)送數(shù)據(jù)包丟棄指示。在數(shù)據(jù)包緩存區(qū)域中確定的至少一個(gè)待丟棄數(shù)據(jù)包,可以來(lái)自某一個(gè)隊(duì)列也可以來(lái)自多個(gè)隊(duì)列。為避免集中丟 棄某個(gè)隊(duì)列中的數(shù)據(jù)包對(duì)該隊(duì)列承載的業(yè)務(wù)產(chǎn)生嚴(yán)重影響,一般從多個(gè)隊(duì)列中確定待丟棄數(shù)據(jù)包。在從多個(gè)隊(duì)列中確定待丟棄數(shù)據(jù)包時(shí),高優(yōu)先級(jí)隊(duì)列丟棄的數(shù)據(jù)包數(shù)量小于低優(yōu)先級(jí)隊(duì)列丟棄的數(shù)據(jù)包數(shù)量。202、將至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄。在確定至少一個(gè)待丟棄數(shù)據(jù)包后,將至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄。丟棄時(shí),可以一次性將所有待丟棄數(shù)據(jù)包全部丟棄,也可以根據(jù)緩存隊(duì)列的當(dāng)前擁塞狀況階段性進(jìn)行丟棄,例如一次丟棄一個(gè)或兩個(gè)數(shù)據(jù)包,每次丟棄后分析當(dāng)前的網(wǎng)絡(luò)帶寬是否有所增加,如果網(wǎng)絡(luò)帶寬有所增加,則停止丟棄,保留剩下的待丟棄數(shù)據(jù)包;如果網(wǎng)絡(luò)帶寬沒有增加,則進(jìn)行下一次丟棄。本發(fā)明實(shí)施例對(duì)丟棄數(shù)據(jù)包的方式以及每次丟包的數(shù)量不做限制?,F(xiàn)有技術(shù)中,緩存隊(duì)列僅作數(shù)據(jù)包緩存之用,緩存隊(duì)列按照隊(duì)列先進(jìn)先出的原則根據(jù)數(shù)據(jù)包入隊(duì)的先后順序?qū)?shù)據(jù)包進(jìn)行緩存。當(dāng)緩存隊(duì)列發(fā)生擁塞時(shí),擁塞管理機(jī)制丟棄部分未緩存數(shù)據(jù)包以緩解存隊(duì)列的擁塞壓力。通常,擁塞管理機(jī)制將重要性較低的未緩存數(shù)據(jù)包進(jìn)行丟棄,以避免丟棄重要性較高的未緩存數(shù)據(jù)包對(duì)重要業(yè)務(wù)的QoS質(zhì)量產(chǎn)生影響。但是當(dāng)緩存隊(duì)列持續(xù)擁塞時(shí),未緩存數(shù)據(jù)包的數(shù)量持續(xù)增加。如果增加了重要性更高的未緩存數(shù)據(jù)包,則擁塞管理機(jī)制會(huì)將原先重要性較高的未緩存數(shù)據(jù)包進(jìn)行丟棄,由此影響重要業(yè)務(wù)的QoS質(zhì)量。本發(fā)明實(shí)施例提供的數(shù)據(jù)包傳輸?shù)姆椒?,能夠在緩存?duì)列發(fā)生擁塞時(shí),丟棄緩存隊(duì)列中的部分?jǐn)?shù)據(jù)包,由此空出部分緩存位置讓待進(jìn)入緩存隊(duì)列數(shù)據(jù)包中重要性較高的未緩存數(shù)據(jù)包進(jìn)入緩存,由此減輕擁塞管理階段的丟包壓力。與現(xiàn)有技術(shù)中緩存隊(duì)列僅作數(shù)據(jù)包緩存之用、沒有丟包機(jī)制相比,可以避免突發(fā)擁塞時(shí)擁塞管理機(jī)制丟棄重要性較高的未緩存數(shù)據(jù)包的問題,能夠保證重要性較高的業(yè)務(wù)的QoS質(zhì)量。進(jìn)一步的,可以作為對(duì)圖2所示方法的詳細(xì)說(shuō)明及進(jìn)一步擴(kuò)展,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)傳輸?shù)姆椒?,如圖3所示,所述方法包括:301、在緩存隊(duì)列中確定丟包總數(shù)量。所述丟包總數(shù)量為整個(gè)數(shù)據(jù)包緩存區(qū)域中總共丟棄的數(shù)據(jù)包數(shù)量,確定丟包總數(shù)量的實(shí)現(xiàn)方式可是下述三種方式之一:I)根據(jù)已進(jìn)入緩存隊(duì)列的數(shù)據(jù)包數(shù)量以及預(yù)設(shè)閾值的差值生成丟包總數(shù)量。預(yù)設(shè)閾值可以為一個(gè)比例值也可以為一個(gè)絕對(duì)數(shù)值;預(yù)設(shè)閾值可以為數(shù)據(jù)包緩存區(qū)域緩存滿時(shí)數(shù)據(jù)包緩存區(qū)域緩存的數(shù)據(jù)包數(shù)量,也可以低于數(shù)據(jù)包緩存區(qū)域緩存滿時(shí)數(shù)據(jù)包緩存區(qū)域緩存的數(shù)據(jù)包數(shù)量。以預(yù)設(shè)閾值為一個(gè)比例值為例,預(yù)設(shè)閾值可以為100%,也可以為80%。預(yù)設(shè)閾值不高于緩存隊(duì)列發(fā)生擁塞的預(yù)設(shè)門限值,例如,當(dāng)預(yù)設(shè)門限值為100%時(shí),預(yù)設(shè)閾值為80%,或者當(dāng)預(yù)設(shè)門限值為80%時(shí),預(yù)設(shè)閾值也為80%。以預(yù)設(shè)門限值為10000個(gè)數(shù)據(jù)包,預(yù)設(shè)閾值為8000個(gè)數(shù)據(jù)包為例:當(dāng)已進(jìn)入緩存隊(duì)列的數(shù)據(jù)包數(shù)量達(dá)到10000個(gè)時(shí),緩存隊(duì)列發(fā)生擁塞,此時(shí)需要丟棄的數(shù)據(jù)包數(shù)量(丟包總數(shù)量)為10000-8000 = 2000,即需要將已進(jìn)入緩存隊(duì)列的數(shù)據(jù)包數(shù)量減少至8000個(gè),以便為擁塞管理階段的數(shù)據(jù)包空出2000個(gè)數(shù)據(jù)包的位置。再以預(yù)設(shè)門限值和預(yù)設(shè)閾值均為70%為例:當(dāng)已進(jìn)入緩存隊(duì)列的數(shù)據(jù)包數(shù)量占緩存隊(duì)列可緩存數(shù)據(jù)包總數(shù)的比例為80%時(shí),緩存隊(duì)列發(fā)生擁塞,此時(shí)丟包總數(shù)量(此處以比例的形式體現(xiàn))為80%-70%= 10%。即控制已進(jìn)入緩存隊(duì)列的數(shù)據(jù)包占緩存隊(duì)列可緩存數(shù)據(jù)包總數(shù)的比例不超 過70%。預(yù)設(shè)閾值的設(shè)置可以基于預(yù)設(shè)門限值的設(shè)置以及數(shù)據(jù)包傳輸?shù)膶?shí)際情況而定,本發(fā)明實(shí)施例對(duì)預(yù)設(shè)門限值的設(shè)置不做限制。2)根據(jù)待進(jìn)入緩存隊(duì)列的第一數(shù)據(jù)包數(shù)量確定丟包總數(shù)量。所述第一數(shù)據(jù)包為未緩存數(shù)據(jù)包中優(yōu)先級(jí)高于預(yù)設(shè)優(yōu)先級(jí)閾值的未緩存數(shù)據(jù)包,或者所述第一數(shù)據(jù)包數(shù)量為網(wǎng)絡(luò)管理人員根據(jù)數(shù)據(jù)包傳輸?shù)膶?shí)際條件設(shè)置的預(yù)設(shè)數(shù)量。例如,當(dāng)有3000個(gè)重要的未緩存數(shù)據(jù)包需要進(jìn)入緩存隊(duì)列,而此時(shí)緩存隊(duì)列已滿時(shí),則將緩存隊(duì)列中的3000個(gè)數(shù)據(jù)包進(jìn)行丟棄,即將丟包總數(shù)量確定為3000個(gè)。3)從數(shù)據(jù)包丟棄指示中獲取丟包總數(shù)量。來(lái)自上層傳輸管理設(shè)備或擁塞管理設(shè)備的數(shù)據(jù)包丟棄指示中可以攜帶緩存隊(duì)列需要丟棄的數(shù)據(jù)包數(shù)量,該需要丟棄的數(shù)據(jù)包數(shù)量即為緩存隊(duì)列的丟包總數(shù)量。緩存隊(duì)列的丟包總數(shù)量可以由上層傳輸管理設(shè)備或擁塞管理設(shè)備根據(jù)傳輸條件設(shè)置。302、為數(shù)據(jù)包緩存中的至少一個(gè)隊(duì)列分別分配丟包數(shù)量。在邏輯上數(shù)據(jù)包緩存區(qū)域被劃分為多個(gè)緩存隊(duì)列,當(dāng)確定數(shù)據(jù)包緩存區(qū)域中的丟包總數(shù)量后,將丟包總數(shù)量分配給數(shù)據(jù)包緩存區(qū)域中的各個(gè)隊(duì)列。在為每個(gè)隊(duì)列分配丟包數(shù)量時(shí),分配的丟包數(shù)量為大于或等于O的整數(shù),當(dāng)為某個(gè)隊(duì)列分配的丟包數(shù)量為O時(shí),該隊(duì)列不需要丟棄數(shù)據(jù)包。需要說(shuō)明的是,為每個(gè)隊(duì)列分配丟包數(shù)量并非為對(duì)隊(duì)列中的具體數(shù)據(jù)包進(jìn)行指定,而是僅為各個(gè)隊(duì)列分配一個(gè)丟包數(shù)量,每個(gè)隊(duì)列具體丟棄哪幾個(gè)數(shù)據(jù)包由后續(xù)步驟決定。在本發(fā)明實(shí)施例中,可以為多個(gè)隊(duì)列平均分配丟包數(shù)量,即各個(gè)隊(duì)列的丟包數(shù)量相等;也可以為各個(gè)隊(duì)列分配不同的丟包數(shù)量,本發(fā)明實(shí)施例對(duì)丟包數(shù)量的分配規(guī)則不做限制。可選的,可以根據(jù)隊(duì)列的優(yōu)先級(jí)高低為每個(gè)隊(duì)列分配丟包數(shù)量。具體的,將所有隊(duì)列按照隊(duì)列優(yōu)先級(jí)從低到高的順序進(jìn)行排序,然后從優(yōu)先級(jí)最低的隊(duì)列開始順序選擇多個(gè)隊(duì)列作為丟包隊(duì)列。例如,如圖4(a)所示,隊(duì)列I至隊(duì)列10的隊(duì)列優(yōu)先級(jí)遞進(jìn)升高,當(dāng)確定丟包隊(duì)列的數(shù)量為3時(shí),將隊(duì)列優(yōu)先級(jí)最低的隊(duì)列1、隊(duì)列2和隊(duì)列3選擇為丟包隊(duì)列。隊(duì)列I至隊(duì)列3的丟包數(shù)量之和為丟包總數(shù)量,并且隊(duì)列I的丟包數(shù)量最多,隊(duì)列3的丟包數(shù)量最少,而為隊(duì)列7至隊(duì)列10分配的丟包數(shù)量均為O。此外,還可以根據(jù)包含數(shù)據(jù)包數(shù)量多少為每個(gè)隊(duì)列分配丟包數(shù)量。具體的,將所有隊(duì)列按照包含數(shù)據(jù)包數(shù)量由多到少的順序進(jìn)行排序,然后從包含數(shù)據(jù)包數(shù)量最多的隊(duì)列開始順序選擇多個(gè)隊(duì)列作為丟包隊(duì)列。例如,如圖4(b)所示,隊(duì)列I至隊(duì)列5所包含的數(shù)據(jù)包依次為3000、2500、2000、1500和1000。當(dāng)確定丟包隊(duì)列的數(shù)量為3時(shí),將包含數(shù)據(jù)包最多的隊(duì)列1、隊(duì)列2和隊(duì)列3選擇為丟包隊(duì)列。隊(duì)列I至隊(duì)列3的丟包數(shù)量之和為丟包總數(shù)量,并且隊(duì)列I的丟包數(shù)量最多,隊(duì)列3的丟包數(shù)量最少,而為隊(duì)列4和隊(duì)列5分配的丟包數(shù)量為O。優(yōu)先將包含數(shù)據(jù)包數(shù)量最多的隊(duì)列選擇為丟包隊(duì)列,能夠?qū)砣麎毫ψ畲蟮年?duì)列進(jìn)行丟包。通常,一個(gè)隊(duì)列中的多個(gè)數(shù)據(jù)包承載一項(xiàng)用戶業(yè)務(wù),將承載一項(xiàng)用戶業(yè)務(wù)的多個(gè)數(shù)據(jù)包稱作一個(gè)業(yè)務(wù)組,一個(gè)隊(duì)列中會(huì)有多個(gè)業(yè)務(wù)組承載多項(xiàng)用戶業(yè)務(wù)。當(dāng)一個(gè)業(yè)務(wù)組中被丟棄的數(shù)據(jù)包過多時(shí),業(yè)務(wù)組承載的上層業(yè)務(wù)的業(yè)務(wù)體驗(yàn)劣化,即無(wú)法達(dá)到該上層業(yè)務(wù)的QoS要求。因此,在丟包總數(shù)量一定的前提下,每個(gè)隊(duì)列被分配到的丟包數(shù)量不能過多以致影響某個(gè)業(yè)務(wù)組承載的上層業(yè)務(wù)的QoS。因此,在本發(fā)明實(shí)施例的一個(gè)優(yōu)選方案中,為避免某個(gè)隊(duì)列丟包過多,可以為數(shù)據(jù)包緩存區(qū)域中的每個(gè)隊(duì)列都分配一個(gè)非O的丟包數(shù)量,例如為圖4(a)中隊(duì)列I至隊(duì)列10均分配一個(gè)非O的丟包數(shù)量。下面,以將數(shù) 據(jù)包緩存區(qū)域中所有隊(duì)列均確定為丟包隊(duì)列為例,對(duì)為隊(duì)列分配丟包數(shù)量進(jìn)行說(shuō)明:為多個(gè)隊(duì)列分配丟包數(shù)量的實(shí)現(xiàn)方式具體可以是以下幾種方式之一:I)將丟包總數(shù)量平均分配給每個(gè)隊(duì)列。例如,當(dāng)丟包總數(shù)量為10000個(gè)、丟包隊(duì)列數(shù)量為5時(shí),每個(gè)隊(duì)列分配到的丟包數(shù)量為10000/5 = 2000個(gè)。2)根據(jù)丟包總數(shù)量以及所有隊(duì)列包含數(shù)據(jù)包的總數(shù)量獲得預(yù)設(shè)比例值,根據(jù)每個(gè)隊(duì)列包含數(shù)據(jù)包的數(shù)量以及該預(yù)設(shè)比例值為每個(gè)隊(duì)列分配一個(gè)丟包數(shù)量。例如,有4個(gè)丟包隊(duì)列,隊(duì)列I至隊(duì)列4包含的數(shù)據(jù)包數(shù)量依次為1000個(gè)、2000個(gè)、3000個(gè)和4000個(gè),則4個(gè)隊(duì)列包含數(shù)據(jù)包的總數(shù)量為10000個(gè)。丟包總數(shù)量為1000個(gè),則預(yù)設(shè)比例值為1000/10000 = 10%。每個(gè)隊(duì)列將自身包含的10%的數(shù)據(jù)包丟棄,即隊(duì)列I至隊(duì)列4分配到的丟包數(shù)量依次為100個(gè)、200個(gè)、300個(gè)和400個(gè)。3)優(yōu)選的,考慮到不同隊(duì)列的重要程度不同,在為隊(duì)列分配丟包數(shù)量時(shí),可以根據(jù)隊(duì)列優(yōu)先級(jí)體現(xiàn)差異化的分配原則,即優(yōu)先級(jí)高的隊(duì)列丟包數(shù)量少,優(yōu)先級(jí)低的隊(duì)列丟包
數(shù)量多。具體的,根據(jù)第一映射關(guān)系表以及隊(duì)列的優(yōu)先級(jí)為每個(gè)隊(duì)列分配丟包數(shù)量,其中第一映射表用于表征隊(duì)列優(yōu)先級(jí)與丟包數(shù)量之間的映射關(guān)系,高優(yōu)先級(jí)隊(duì)列的丟包數(shù)量小于低優(yōu)先級(jí)隊(duì)列的丟包數(shù)量。隊(duì)列優(yōu)先級(jí)的高低可以由數(shù)據(jù)包緩存數(shù)據(jù)包的類型決定,緩存時(shí)延敏感數(shù)據(jù)包的隊(duì)列(例如緩存電路域數(shù)據(jù)包的隊(duì)列)優(yōu)先級(jí)高于緩存時(shí)延不敏感數(shù)據(jù)包的隊(duì)列(例如緩存分組域數(shù)據(jù)包的隊(duì)列)優(yōu)先級(jí)。丟包數(shù)量與隊(duì)列優(yōu)先級(jí)的對(duì)應(yīng)關(guān)系為優(yōu)先級(jí)低的隊(duì)列丟包數(shù)量多優(yōu)先級(jí)高的隊(duì)列丟包數(shù)量少,第一映射關(guān)系表可以形如下表,其中優(yōu)先級(jí)數(shù)值高的隊(duì)列優(yōu)先級(jí)高:
權(quán)利要求
1.一種數(shù)據(jù)包傳輸?shù)姆椒?,其特征在于,所述方法包? 當(dāng)發(fā)生數(shù)據(jù)包擁塞或網(wǎng)絡(luò)帶寬減小時(shí),在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包; 將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,以便使至少一個(gè)未緩存數(shù)據(jù)包進(jìn)入到所述數(shù)據(jù)包緩存中,由此防止丟棄過多未緩存數(shù)據(jù)包,其中所述未緩存數(shù)據(jù)包為未進(jìn)入所述數(shù)據(jù)包緩存的數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包,具體包括: 為所述數(shù)據(jù)包緩存中的至少一個(gè)隊(duì)列分別分配丟包數(shù)量,所述丟包數(shù)量為大于或等于O的整數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述為所述數(shù)據(jù)包緩存中的至少一個(gè)隊(duì)列分別分配丟包數(shù)量,具體包括: 根據(jù)第一映射關(guān)系表以及隊(duì)列的優(yōu)先級(jí)為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第一映射表用于表征隊(duì)列優(yōu)先級(jí)與丟包數(shù)量之間的映射關(guān)系,高優(yōu)先級(jí)隊(duì)列的丟包數(shù)量小于低優(yōu)先級(jí)隊(duì)列的丟包數(shù)量; 或者,根據(jù)第二映射關(guān)系表以及隊(duì)列包含數(shù)據(jù)包的數(shù)量為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第二映射表用于表征隊(duì)列包含數(shù)據(jù)包的數(shù)量與丟包數(shù)量之間的映射關(guān)系,包含數(shù)據(jù)包數(shù)量多的隊(duì)列的丟包數(shù)量大于包含數(shù)據(jù) 包數(shù)量少的隊(duì)列的丟包數(shù)量。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包,具體包括: 在每個(gè)隊(duì)列中,按照平均分布規(guī)則等間隔選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為為該隊(duì)列分配的丟包數(shù)量; 或者,在每個(gè)隊(duì)列中,按照隨機(jī)分布規(guī)則隨機(jī)選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為為該隊(duì)列分配的丟包數(shù)量; 或者,根據(jù)第一排序規(guī)則對(duì)所述至少一個(gè)隊(duì)列進(jìn)行排序,獲得排序隊(duì)列,從所述排序隊(duì)列的一端開始,輪詢將每個(gè)隊(duì)列中的第一個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,當(dāng)某個(gè)隊(duì)列的丟包數(shù)量達(dá)到為該隊(duì)列分配的丟包數(shù)量時(shí),該隊(duì)列退出所述排序隊(duì)列,當(dāng)所述排序隊(duì)列中的隊(duì)列數(shù)量為O時(shí),完成待丟棄數(shù)據(jù)包的確定。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,具體包括: 按照預(yù)設(shè)丟包規(guī)則將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述按照預(yù)設(shè)丟包規(guī)則將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,具體包括: 獲取每個(gè)待丟棄數(shù)據(jù)包的索引標(biāo)識(shí),生成丟包組,所述索引標(biāo)識(shí)為待丟棄數(shù)據(jù)包的隊(duì)列標(biāo)識(shí)與待丟棄數(shù)據(jù)包的位置標(biāo)識(shí)的組合; 判斷所述丟包組中是否還有未丟棄的待丟棄數(shù)據(jù)包; 當(dāng)判斷結(jié)果為是時(shí),選擇至少一個(gè)索引標(biāo)識(shí)對(duì)應(yīng)的待丟棄數(shù)據(jù)包進(jìn)行丟棄。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述按照預(yù)設(shè)丟包規(guī)則將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,具體包括: 在每確定一個(gè)待丟棄數(shù)據(jù)包后,獲取所述待丟棄數(shù)據(jù)包的索引標(biāo)識(shí),根據(jù)所述索引標(biāo)識(shí)對(duì)所述待丟棄數(shù)據(jù)包進(jìn)行丟棄。
8.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的方法,其特征在于,在所述在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包之前,所述方法進(jìn)一步包括: 確定待丟棄數(shù)據(jù)包的總數(shù)量; 將第一待丟棄數(shù)據(jù)包數(shù)量分配給所述數(shù)據(jù)包緩存進(jìn)行丟棄,所述第一待丟棄數(shù)據(jù)包數(shù)量小于或等于待丟棄數(shù)據(jù)包總數(shù)量; 所述在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包,具體包括: 將所述數(shù)據(jù)包緩存中第一待丟棄數(shù)據(jù)包數(shù)量的數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包的數(shù)量。
9.一種數(shù)據(jù)包傳輸?shù)难b置,其特征在于,所述裝置包括: 確定單元,用于當(dāng)發(fā)生數(shù)據(jù)包擁塞或網(wǎng)絡(luò)帶寬減小時(shí),在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包; 丟棄單元,用于將所述確定單元確定的所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,以便使至少一個(gè)未緩存數(shù)據(jù)包進(jìn)入到所述數(shù)據(jù)包緩存中,由此防止丟棄過多未緩存數(shù)據(jù)包,其中所述未緩存數(shù)據(jù)包為未進(jìn)入所述數(shù)據(jù)包緩存的數(shù)據(jù)包。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述確定單元具體包括: 分配子單元,用于為所述數(shù)據(jù)包緩存中的至少一個(gè)隊(duì)列分別分配丟包數(shù)量,所述丟包數(shù)量為大于或等于O的整數(shù)。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述分配子單元具體用于: 根據(jù)第一映射關(guān)系表以及隊(duì)列的優(yōu)先級(jí)為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第一映射表用于表征隊(duì)列優(yōu)先級(jí)與丟包數(shù)量之間的映射關(guān)系,高優(yōu)先級(jí)隊(duì)列的丟包數(shù)量小于低優(yōu)先級(jí)隊(duì)列的丟包數(shù)量; 根據(jù)第二映射關(guān)系表以及隊(duì)列包含數(shù)據(jù)包的數(shù)量為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第二映射表用于表征隊(duì)列包含數(shù)據(jù)包的數(shù)量與丟包數(shù)量之間的映射關(guān)系,包含數(shù)據(jù)包數(shù)量多的隊(duì)列的丟包數(shù)量大于包含數(shù)據(jù)包數(shù)量少的隊(duì)列的丟包數(shù)量。
12.根據(jù)權(quán)利要求10或11所述的裝置,其特征在于,所述確定單元進(jìn)一步包括: 確定子單元,用于: 在每個(gè)隊(duì)列中,按照平均分布規(guī)則等間隔選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為所述分配子單元為該隊(duì)列分配的丟包數(shù)量; 在每個(gè)隊(duì)列中,按照隨機(jī)分布規(guī)則隨機(jī)選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為所述分配子單元為該隊(duì)列分配的丟包數(shù)量; 根據(jù)第一排序規(guī)則對(duì)所述至少一個(gè)隊(duì)列進(jìn)行排序,獲得排序隊(duì)列,從所述排序隊(duì)列的一端開始,輪詢將每個(gè)隊(duì)列中的第一個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,當(dāng)某個(gè)隊(duì)列的丟包數(shù)量達(dá)到所述分配子單元為該隊(duì)列分配的丟包數(shù)量時(shí),該隊(duì)列退出所述排序隊(duì)列,當(dāng)所述排序隊(duì)列中的隊(duì)列數(shù)量為O時(shí),所述確定子單元完成待丟棄數(shù)據(jù)包的確定。
13.根據(jù)權(quán)利要求9至12中任一項(xiàng)所述的裝置,其特征在于,所述丟棄單元具體用于:按照預(yù)設(shè)丟包規(guī)則將所述確定單元確定的所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述丟棄單元具體包括: 獲取子單元,用于獲取每個(gè)待丟棄數(shù)據(jù)包的索引標(biāo)識(shí),生成丟包組,所述索引標(biāo)識(shí)為待丟棄數(shù)據(jù)包的隊(duì)列標(biāo)識(shí)與待丟棄數(shù)據(jù)包的位置標(biāo)識(shí)的組合;判斷子單元,用于判斷所述獲取子單元生成的所述丟包組中是否還有未丟棄的待丟棄數(shù)據(jù)包; 丟棄子單元,用于當(dāng)所述判斷子單元的判斷結(jié)果為是時(shí),選擇至少一個(gè)索引標(biāo)識(shí)對(duì)應(yīng)的待丟棄數(shù)據(jù)包進(jìn)行丟棄。
15.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述獲取子單元還用于在所述確定單元每確定一個(gè)待丟棄數(shù)據(jù)包后,獲取所述待丟棄數(shù)據(jù)包的索引標(biāo)識(shí); 所述丟棄子單元還用于根據(jù)所述獲取子單元獲取的所述索引標(biāo)識(shí)對(duì)所述待丟棄數(shù)據(jù)包進(jìn)行丟棄。
16.根據(jù)權(quán)利要求9至15中任一項(xiàng)所述的裝置,其特征在于,所述裝置進(jìn)一步包括: 管理單元,用于: 確定待丟棄數(shù)據(jù)包的總數(shù)量; 將第一待丟棄數(shù)據(jù)包數(shù)量分配給所述數(shù)據(jù)包緩存進(jìn)行丟棄,所述第一待丟棄數(shù)據(jù)包數(shù)量小于或等于待丟棄數(shù)據(jù)包總數(shù)量; 將所述數(shù)據(jù)包緩存中第一待丟棄數(shù)據(jù)包數(shù)量的數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包的數(shù)量。
17.一種數(shù)據(jù)包傳輸?shù)难b置,其特征在于,所述裝置包括: 接收器,用于接收待發(fā)送的數(shù)據(jù)包; 緩存器,用于緩存所述接收器接收的所述數(shù)據(jù)包; 處理器,用于當(dāng)發(fā)生數(shù)據(jù)包擁塞或網(wǎng)絡(luò)帶寬減小時(shí),在所述緩存器緩存的所述數(shù)據(jù)包中確定至少一個(gè)待丟棄數(shù)據(jù)包,將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,以便使至少一個(gè)未緩存數(shù)據(jù)包進(jìn)入到所述緩存器中,由此防止丟棄過多未緩存數(shù)據(jù)包,其中所述未緩存數(shù)據(jù)包為未進(jìn)入所述緩存器的數(shù)據(jù)包。
18.根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述處理器具體用于: 為所述緩存器中的至少一個(gè)隊(duì)列分別分配丟包數(shù)量,所述丟包數(shù)量為大于或等于O的整數(shù)。
19.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述處理器進(jìn)一步具體用于: 根據(jù)第一映射關(guān)系表以及隊(duì)列的優(yōu)先級(jí)為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第一映射表用于表征隊(duì)列優(yōu)先級(jí)與丟包數(shù)量之間的映射關(guān)系,高優(yōu)先級(jí)隊(duì)列的丟包數(shù)量小于低優(yōu)先級(jí)隊(duì)列的丟包數(shù)量; 根據(jù)第二映射關(guān)系表以及隊(duì)列包含數(shù)據(jù)包的數(shù)量為每個(gè)隊(duì)列分配丟包數(shù)量,其中所述第二映射表用于表征隊(duì)列包含數(shù)據(jù)包的數(shù)量與丟包數(shù)量之間的映射關(guān)系,包含數(shù)據(jù)包數(shù)量多的隊(duì)列的丟包數(shù)量大于包含數(shù)據(jù)包數(shù)量少的隊(duì)列的丟包數(shù)量。
20.根據(jù)權(quán)利要求18或19所述的裝置,其特征在于,所述處理器還具體用于: 在每個(gè)隊(duì)列中,按照平均分布規(guī)則等間隔選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為為該隊(duì)列分配的丟包數(shù)量; 在每個(gè)隊(duì)列中,按照隨機(jī)分布規(guī)則隨機(jī)選擇N個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,其中,N為為該隊(duì)列分配的丟包數(shù)量; 根據(jù)第一排序規(guī)則對(duì)所述至少一個(gè)隊(duì)列進(jìn)行排序,獲得排序隊(duì)列,從所述排序隊(duì)列的一端開始,輪詢將每個(gè)隊(duì)列中的第一個(gè)數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包,當(dāng)某個(gè)隊(duì)列的丟包數(shù)量達(dá)到為該隊(duì)列分配的丟包數(shù)量時(shí), 該隊(duì)列退出所述排序隊(duì)列,當(dāng)所述排序隊(duì)列中的隊(duì)列數(shù)量為O時(shí),完成待丟棄數(shù)據(jù)包的確定。
21.根據(jù)權(quán)利要求17至20中任一項(xiàng)所述的裝置,其特征在于,所述處理器具體用于: 按照預(yù)設(shè)丟包規(guī)則將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄。
22.根據(jù)權(quán)利要求21所述的裝置,其特征在于,所述處理器具體用于: 獲取每個(gè)待丟棄數(shù)據(jù)包的索引標(biāo)識(shí),生成丟包組,所述索引標(biāo)識(shí)為待丟棄數(shù)據(jù)包的隊(duì)列標(biāo)識(shí)與待丟棄數(shù)據(jù)包的位置標(biāo)識(shí)的組合; 判斷所述丟包組中是否還有未丟棄的待丟棄數(shù)據(jù)包; 當(dāng)判斷結(jié)果為是時(shí),選擇至少一個(gè)索引標(biāo)識(shí)對(duì)應(yīng)的待丟棄數(shù)據(jù)包進(jìn)行丟棄。
23.根據(jù)權(quán)利要求21所述的裝置,其特征在于,所述處理器具體用于: 在每確定一個(gè)待丟棄數(shù)據(jù)包后,獲取所述待丟棄數(shù)據(jù)包的索引標(biāo)識(shí),根據(jù)所述索引標(biāo)識(shí)對(duì)所述待丟棄數(shù)據(jù)包進(jìn)行丟棄。
24.根據(jù)權(quán)利要求17至23中任一項(xiàng)所述的裝置,其特征在于,所述處理器還具體用于: 確定待丟棄數(shù)據(jù)包的總數(shù)量; 將第一待丟棄數(shù)據(jù)包數(shù)量分配給所述緩存器,所述第一待丟棄數(shù)據(jù)包數(shù)量小于或等于待丟棄數(shù)據(jù)包總數(shù)量; 將所述緩存器中第一待丟棄數(shù)據(jù)包數(shù)量的數(shù)據(jù)包確定為待丟棄數(shù)據(jù)包的數(shù)量。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)包傳輸?shù)姆椒把b置,涉及通信技術(shù)領(lǐng)域,能夠有效改善設(shè)備之間或設(shè)備中模塊之間突發(fā)擁塞時(shí)擁塞管理階段丟包過多的問題。本發(fā)明的方法包括當(dāng)發(fā)生數(shù)據(jù)包擁塞或網(wǎng)絡(luò)帶寬減小時(shí),在數(shù)據(jù)包緩存中確定至少一個(gè)待丟棄數(shù)據(jù)包;將所述至少一個(gè)待丟棄數(shù)據(jù)包進(jìn)行丟棄,以便使至少一個(gè)未緩存數(shù)據(jù)包進(jìn)入到所述數(shù)據(jù)包緩存中,由此防止丟棄過多未緩存數(shù)據(jù)包,其中所述未緩存數(shù)據(jù)包為未進(jìn)入所述數(shù)據(jù)包緩存的數(shù)據(jù)包。本發(fā)明主要應(yīng)用于數(shù)據(jù)包緩存的過程中。
文檔編號(hào)H04L12/861GK103229466SQ201280002654
公開日2013年7月31日 申請(qǐng)日期2012年12月27日 優(yōu)先權(quán)日2012年12月27日
發(fā)明者藍(lán)海青 申請(qǐng)人:華為技術(shù)有限公司