專(zhuān)利名稱(chēng):一種實(shí)現(xiàn)海量端口反壓的方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)端口反壓的控制技術(shù),具體地說(shuō)是一種實(shí)現(xiàn)海量端口反壓的方法及其裝置。
背景技術(shù):
目前隨著網(wǎng)絡(luò)的發(fā)展,尤其是流媒體的大量應(yīng)用,對(duì)網(wǎng)絡(luò)的QOS(Quality of Service,服務(wù)質(zhì)量)性能提出了更高的、差異化的需求。網(wǎng)絡(luò)的QOS的實(shí)現(xiàn)是一個(gè)很大的范疇,有大量的理論和實(shí)踐,但是,無(wú)論采哪種策略,最終到網(wǎng)絡(luò)的若干關(guān)鍵節(jié)點(diǎn)上,必須能夠按照預(yù)先配置的參數(shù)(帶寬,抖動(dòng),等等),對(duì)于多個(gè)待調(diào)度的源(這個(gè)源一般而言是隊(duì)列)進(jìn)行調(diào)度,選擇從合適的隊(duì)列當(dāng)中取出數(shù)據(jù)進(jìn)行傳輸;如果發(fā)生擁塞需要丟包,則按照預(yù)先配置的CIR/PIR(Committed Information Rate/Peak Information Rate,承諾信息速率/峰值信息速率)、優(yōu)先級(jí)等參數(shù)進(jìn)行丟包。
多個(gè)隊(duì)列的調(diào)度,有很多種選擇,比如PQ調(diào)度(Strict-Priority Queue,嚴(yán)格優(yōu)先級(jí)調(diào)度),RR調(diào)度(Round Robin,輪詢調(diào)度),改進(jìn)的帶權(quán)重的WRR(Weighted Round Robin,加權(quán)循環(huán)算法)調(diào)度,WFQ(Weighted Fair Queue,加權(quán)公平隊(duì)列算法)等等。無(wú)論是采用何種調(diào)度方法,都會(huì)遇到一個(gè)問(wèn)題反壓。對(duì)于多個(gè)隊(duì)列的調(diào)度,一般要配置預(yù)約的帶寬(比如甲隊(duì)列是10Mbps的帶寬,乙隊(duì)列是1Gbps的帶寬,丙隊(duì)列是200Mbps的帶寬,等等),為了達(dá)到線速轉(zhuǎn)發(fā)的性能,那么所有隊(duì)列的預(yù)約帶寬之和會(huì)大于或者等于最終出口帶寬,這時(shí)因?yàn)橥话l(fā)流量或者調(diào)度誤差不可避免的帶來(lái)了一個(gè)新問(wèn)題,即出口允許的總流量(比如1Gbps,或者2.5Gbps,這個(gè)是受限于實(shí)際的物理出口的)小于所有隊(duì)列的實(shí)際帶寬之和的情況,此時(shí)不可能滿足所有隊(duì)列的實(shí)際帶寬都及時(shí)從出端口發(fā)送。比較理想的情況應(yīng)該是第一,如果實(shí)際數(shù)據(jù)的總帶寬沒(méi)有超過(guò)出口的總帶寬,那么希望能夠按照實(shí)際配置的預(yù)約帶寬進(jìn)行調(diào)度,而且也不產(chǎn)生反壓。
第二,如果實(shí)際數(shù)據(jù)出現(xiàn)瞬間突發(fā)流量,某時(shí)間段內(nèi)大于出口的總流量,此時(shí)在出口擁塞后可以在出口隊(duì)列進(jìn)行緩存;當(dāng)實(shí)際數(shù)據(jù)的總帶寬小于出口帶寬時(shí),緩存的數(shù)據(jù)可以得到發(fā)送,這時(shí)也不會(huì)有反壓。
第三,如果實(shí)際數(shù)據(jù)的總帶寬在較長(zhǎng)時(shí)間內(nèi)總大于出口的總帶寬則總會(huì)有反壓,但是希望反壓的效果能夠體現(xiàn)在所有的參與調(diào)度的隊(duì)列上面,而且最好按照預(yù)約的帶寬的比例進(jìn)行分配。因?yàn)槊總€(gè)用戶是花錢(qián)來(lái)買(mǎi)預(yù)約帶寬的,預(yù)約帶寬大,花的錢(qián)也多,那么它就有權(quán)利要求更多的利益。也就是說(shuō),希望參與調(diào)度的隊(duì)列的實(shí)際調(diào)度帶寬按照預(yù)約帶寬的比例進(jìn)行收縮。注意,不是所有的隊(duì)列進(jìn)行收縮,而是存在實(shí)際數(shù)據(jù),等待調(diào)度的隊(duì)列之間進(jìn)行帶寬比例分配。
目前常用的標(biāo)準(zhǔn)QOS調(diào)度模型如圖1所示,共4級(jí)調(diào)度。首先在用戶內(nèi)部區(qū)分不同的業(yè)務(wù),不同業(yè)務(wù)之間可以進(jìn)行WFQ+SP(Strict Priority,絕對(duì)優(yōu)先級(jí))調(diào)度;然后用戶可以配置CIR/PIR,即給用戶承諾的帶寬,且一定程度上允許用戶突發(fā)流量通過(guò);接著用戶可以映射到端口內(nèi)不同的優(yōu)先級(jí)隊(duì)列,也可以是用戶內(nèi)部不同業(yè)務(wù)映射到端口內(nèi)的優(yōu)先級(jí)隊(duì)列,端口優(yōu)先級(jí)按照PQ調(diào)度;最后是端口之間的RR調(diào)度或者是WRR調(diào)度。我們把完成圖1所示QOS功能的模塊稱(chēng)為流量管理模塊,一般情況下端口數(shù)目和物理通道數(shù)目相符,物理通道的反壓可以直接傳遞給端口,然后端口依次逆向傳遞反壓,這時(shí)包會(huì)緩存在流量管理模塊中;當(dāng)緩存滿后按照優(yōu)先級(jí)、用戶配置的CIR或PIR等參數(shù)丟棄包,在確保用戶CIR的情況下,保證高優(yōu)先級(jí)的包先得到調(diào)度,低優(yōu)先級(jí)的包先丟棄。目前現(xiàn)有技術(shù)一般通過(guò)流量管理模塊主動(dòng)向物理發(fā)送端口查詢發(fā)送fifo(先入先出緩沖)狀態(tài),如果fifo超過(guò)反壓門(mén)限則向流量管理模塊輸出反壓信號(hào),調(diào)度模塊停止發(fā)送,然后將包緩存在調(diào)度隊(duì)列中,如果隊(duì)列滿,則按照預(yù)先配置的參數(shù)進(jìn)行丟包。
當(dāng)物理通道數(shù)目太多(例如通道化POS(packet over SDH/SONET,在SDH/SONET上封裝傳送包;其中SDH為Synchronous Digital Hierarchy,同步數(shù)字系列;SONET為Synchronous Optical NETwork,同步光纖網(wǎng))端口可能達(dá)1K個(gè)物理端口),流量管理模塊出接口(例如SPI4.2端口只能支持256路反壓信號(hào))無(wú)法響應(yīng)所有通道反壓時(shí),不能形成反壓負(fù)反饋,即按照目前實(shí)現(xiàn)方案和接口規(guī)范,無(wú)法傳遞海量端口的反壓信號(hào)。那么按照當(dāng)前技術(shù)下只能通過(guò)開(kāi)環(huán)控制,即對(duì)出接口做Shaping(流量整形),限制其出接口速率小于等于物理端口速率,通過(guò)這個(gè)方法來(lái)避免物理通道反壓,將流量變化造成的波動(dòng)在流量管理模塊內(nèi)部解決。這種方法在實(shí)際應(yīng)用中存在2個(gè)問(wèn)題一般的流量管理模塊在進(jìn)行流量調(diào)度時(shí)不可避免對(duì)某些固定長(zhǎng)度的包存在調(diào)度誤差,這種調(diào)度上的誤差可能造成物理端口發(fā)送隊(duì)列擁塞,即可能在物理出接口隊(duì)列滿后丟包,無(wú)法保證用戶的CIR和優(yōu)先級(jí)等配置參數(shù)。
另外還有可能出接口Shaping的粒度無(wú)法滿足實(shí)際需求,例如低速端口可能到64K,而出接口的Shaping粒度為20K,則如果要保證端口線速則只能配置Shaping的PIR為80K,這如果不響應(yīng)反壓,則會(huì)導(dǎo)致丟包;這時(shí)在物理端口上進(jìn)行包丟棄則一般只能進(jìn)行尾丟棄或按照絕對(duì)優(yōu)先級(jí)丟棄,不能保證用戶的CIR和優(yōu)先級(jí)等配置參數(shù)。
因此只有通過(guò)反壓才能形成有效的負(fù)反饋系統(tǒng),較好的解決流量波動(dòng)和調(diào)度誤差造成的擁塞問(wèn)題。
現(xiàn)有技術(shù)中還有一種實(shí)現(xiàn)反壓的方案,就是通過(guò)流量管理模塊由通用CPU實(shí)現(xiàn),通過(guò)CPU進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),由CPU通過(guò)控制通道直接查詢通道反壓狀態(tài),則不受通道數(shù)目的限制。
CPU參與轉(zhuǎn)發(fā)后,轉(zhuǎn)發(fā)性能受CPU能力限制太大;而且CPU還要參與控制平面的處理,造成CPU程序復(fù)雜,可靠性降低;當(dāng)通道數(shù)目太多,反壓無(wú)法及時(shí)處理。即按照當(dāng)前技術(shù)中使用的CPU無(wú)法滿足通道數(shù)目較多情況下的線速轉(zhuǎn)發(fā)。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中無(wú)法實(shí)現(xiàn)海量端口反壓的缺點(diǎn),本發(fā)明實(shí)施例提供一種實(shí)現(xiàn)海量端口反壓的方法,其反壓速度快,可以滿足低速口延時(shí)需求;無(wú)需CPU參與,轉(zhuǎn)發(fā)性能不受CPU性能影響。
本發(fā)明實(shí)施例解決其技術(shù)問(wèn)題所采用的技術(shù)方案是一種實(shí)現(xiàn)海量端口反壓的方法,包括以下步驟檢測(cè)發(fā)送到通道化物理端口的用戶數(shù)據(jù)是否達(dá)到反壓門(mén)限,當(dāng)達(dá)到反壓門(mén)限時(shí),生成一個(gè)空閑幀;將所述空閑幀與所述用戶數(shù)據(jù)混合后發(fā)送到所述通道化物理端口;在所述空閑幀與所述用戶數(shù)據(jù)混合后的數(shù)據(jù)進(jìn)入通道化物理端口之前丟棄所述空閑幀。
在所述檢測(cè)發(fā)送到通道化物理端口的用戶數(shù)據(jù)是否達(dá)到反壓門(mén)限前,還包括為所述通道化物理端口預(yù)留一個(gè)空閑幀使用的用戶隊(duì)列。
配置所述用戶隊(duì)列的承諾信息速率值為調(diào)度誤差。
配置所述通道化物理端口達(dá)反壓門(mén)限后所產(chǎn)生的空閑幀的起始帶寬值。
所述空閑幀的帶寬為所述配置的起始帶寬值。
所述檢測(cè)發(fā)送到通道化物理端口的用戶數(shù)據(jù)是否達(dá)到反壓門(mén)限通過(guò)檢測(cè)所述通道化物理端口的發(fā)送緩沖來(lái)實(shí)現(xiàn)。
所述方法還包括
產(chǎn)生所述空閑幀后,如果仍然存在反壓,則增加所述空閑幀的帶寬;如果反壓消失,則減少所述空閑幀的帶寬。
本發(fā)明實(shí)施例還提供一種實(shí)現(xiàn)海量端口反壓的裝置,包括檢測(cè)模塊,用于檢測(cè)發(fā)送到通道化物理端口的用戶數(shù)據(jù)是否達(dá)到反壓門(mén)限,如果達(dá)到反壓門(mén)限,發(fā)送一個(gè)消息給空閑幀生成模塊;空閑幀生成模塊,用于在接收到所述消息后,生成一個(gè)空閑幀;下行隊(duì)列調(diào)度模塊,用于將所述空閑幀與用戶數(shù)據(jù)混合在一起,并將混合后的數(shù)據(jù)發(fā)送到下行轉(zhuǎn)發(fā)模塊;下行轉(zhuǎn)發(fā)模塊,用于將所述下行隊(duì)列調(diào)度模塊發(fā)送來(lái)的所述混合后的數(shù)據(jù)轉(zhuǎn)發(fā)到用戶數(shù)據(jù)對(duì)應(yīng)的通道化物理端口;丟幀模塊,用于在所述混合后的數(shù)據(jù)進(jìn)入所述通道化物理端口前將所述空閑幀丟棄。
所述裝置還包括配置模塊,用于配置空閑幀的起始帶寬值。
所述裝置還包括上行轉(zhuǎn)發(fā)模塊,用于將由所述空閑幀上行轉(zhuǎn)發(fā)到上行隊(duì)列調(diào)度模塊;上行隊(duì)列調(diào)度模塊,用于將所述上行轉(zhuǎn)發(fā)模塊轉(zhuǎn)發(fā)來(lái)的空閑幀轉(zhuǎn)發(fā)到所述下行隊(duì)列調(diào)度模塊。
本發(fā)明實(shí)施例由于使用了空閑幀來(lái)實(shí)現(xiàn)反壓,空閑幀占用了一定的傳輸寬帶,減少了用戶數(shù)據(jù)的帶寬,在進(jìn)入物理端口前將空閑幀丟棄,空閑幀不會(huì)進(jìn)入物理端口,從而達(dá)到了反壓的目的。而空閑幀的帶寬可以根據(jù)需要預(yù)先配置,在空閑幀產(chǎn)生后,其帶寬還可以根據(jù)反壓的存在與否增加或減少,其控制十分簡(jiǎn)單方便。
本發(fā)明實(shí)施例可以解決因?yàn)橥ǖ肋^(guò)多,使得反壓無(wú)法傳遞到流量管理模塊問(wèn)題;無(wú)論是因?yàn)榱髁抗芾砟K調(diào)度不準(zhǔn)還是粒度太大造成的反壓?jiǎn)栴},都可以通過(guò)本發(fā)明實(shí)施例中的方案有效解決;利用本發(fā)明實(shí)施例中的方案,傳遞反壓速度快,簡(jiǎn)單易用。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明。
圖1為現(xiàn)有技術(shù)中實(shí)現(xiàn)反壓的方法的示意圖;圖2為本發(fā)明的一個(gè)具體實(shí)施例中實(shí)現(xiàn)海量端口反壓的方法的流程示意圖;
圖3為本發(fā)明的另一個(gè)具體實(shí)施例中實(shí)現(xiàn)海量端口反壓的方法的一種實(shí)施例的流程示意圖;圖4為本發(fā)明的實(shí)現(xiàn)海量端口反壓的裝置的一種實(shí)施例的結(jié)構(gòu)示意圖;圖5為本發(fā)明的實(shí)現(xiàn)海量端口反壓的裝置的另一種實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
如圖2所示,是本發(fā)明的一個(gè)具體實(shí)施例中實(shí)現(xiàn)海量端口反壓的方法的流程示意圖,該實(shí)施例中實(shí)現(xiàn)海量端口反壓通過(guò)以下步驟實(shí)現(xiàn)步驟201對(duì)發(fā)送到通道化物理端口的數(shù)據(jù)流量進(jìn)行檢測(cè);步驟202判斷數(shù)據(jù)流量是否達(dá)到了反壓門(mén)限,如果是,進(jìn)行步驟203;如果否,進(jìn)行步驟201;步驟203生成一個(gè)空閑幀;步驟204將空閑幀與達(dá)到反壓門(mén)限的那一通道化物理端口下的用戶數(shù)據(jù)混合;步驟205將空閑幀與用戶數(shù)據(jù)混合后的數(shù)據(jù)作為一個(gè)隊(duì)列發(fā)送到達(dá)到反壓門(mén)限的那一通道化物理端口;步驟206在空閑幀與用戶數(shù)據(jù)進(jìn)入通道化物理端口之前,將空閑幀丟棄。
在步驟203中,所生成的空閑幀的起始帶寬值可以預(yù)先配置好,為該空閑幀所在隊(duì)列的調(diào)度誤差。
在該實(shí)施例中,采用生成空閑幀的方法來(lái)實(shí)現(xiàn)端口反壓利用空閑幀所占用的帶寬來(lái)迫用戶數(shù)據(jù)所占用的帶寬減小,而空閑幀在進(jìn)入通道化物理端口之前會(huì)被丟棄而不進(jìn)入通道化物理端口,進(jìn)入通道化物理端口的只有減小后用戶數(shù)據(jù),從而達(dá)到反壓目的。因此,本發(fā)明的實(shí)施例具有簡(jiǎn)單方便,對(duì)端口數(shù)量的適應(yīng)能力強(qiáng),可以實(shí)現(xiàn)海量端口反壓等優(yōu)點(diǎn)。
如圖3所示,是本發(fā)明的另一個(gè)具體實(shí)施例中實(shí)現(xiàn)海量端口反壓的方法的流程示意圖,在該實(shí)施例中,在對(duì)通道化物理端口的反壓門(mén)限進(jìn)行檢測(cè)之前,先對(duì)各個(gè)參數(shù)進(jìn)行配置,以提高整個(gè)系統(tǒng)的運(yùn)行效率。具體包括以下步驟步驟301為每一個(gè)通道化物理端口(或需要進(jìn)行反壓的通道化物理端口)預(yù)留一個(gè)空閑幀使用的用戶隊(duì)列,進(jìn)行步驟302;步驟302配置上述空閑幀使用的用戶隊(duì)列的CIR值為調(diào)度誤差,例如,物理端口發(fā)送速率為64K,調(diào)度誤差為5%,端口的shaping粒度滿足要求,可以配置為64K,則用于空閑幀的用戶隊(duì)列CIR應(yīng)該配置為64K*5%=3.2K;如果存在粒度不能滿足需求的情況,端口的Shaping粒度為20K,則CIR應(yīng)該配置為20K*4-64K+80K*5%=20K;步驟303配置空閑幀的起始帶寬值,例如64K通道應(yīng)該配置為64K*5%=3.2K;如果考慮粒度問(wèn)題,在粒度為20K的情況下可以配置為20K*4-64K+80K*5%=20K;步驟304查詢某用戶數(shù)據(jù)對(duì)應(yīng)的通道化物理端口的發(fā)送緩沖;步驟305判斷通道化物理端口的發(fā)送緩沖是否達(dá)到反壓門(mén)限,如果是,進(jìn)行步驟306;如果否,返回步驟304;步驟306生成一個(gè)空閑幀,該空閑幀的帶寬為步驟303中所配置的起始帶寬值;步驟307將空閑幀與達(dá)到反壓門(mén)限的那一通道化物理端口下的用戶數(shù)據(jù)混合;步驟308將空閑幀與用戶數(shù)據(jù)混合后的數(shù)據(jù)作為一個(gè)隊(duì)列發(fā)送到達(dá)到反壓門(mén)限的那一通道化物理端口;步驟309在空閑幀與用戶數(shù)據(jù)混合后的數(shù)據(jù)進(jìn)入物理端口前,丟棄空閑幀。
如果在產(chǎn)生空閑幀后,仍然存在反壓,則可以增大空閑幀的帶寬;如果反壓消失,則減少空閑幀的帶寬,直至該空閑幀的帶寬為零。在增加或減少空閑幀的帶寬時(shí),最好平滑的增加或減少,其中一種方法是每個(gè)時(shí)間單位(例如1秒)內(nèi)增加或減少一定帶寬(例如1K),如果反壓仍然存在或者已經(jīng)消失,則在下個(gè)時(shí)間單位內(nèi)再增加或減少一定帶寬。
與上一實(shí)施例相比,該實(shí)施例在對(duì)各通道化物理端口的反壓門(mén)限進(jìn)行檢測(cè)之前,先對(duì)用戶隊(duì)列的CIR值進(jìn)行配置,當(dāng)檢測(cè)到某通道化物理端口的用戶數(shù)據(jù)達(dá)到反壓門(mén)限時(shí),直接調(diào)用所預(yù)先配置好的參數(shù),提高了運(yùn)行效率。另外,在檢測(cè)通道化物理端口的反壓門(mén)限時(shí),通過(guò)檢測(cè)通道化物理端口的發(fā)送緩沖是否達(dá)到該反壓門(mén)限來(lái)實(shí)現(xiàn),如果用戶數(shù)據(jù)在某一時(shí)間段的流量大于出口的總流量,但發(fā)送緩沖還未達(dá)到反壓門(mén)限時(shí),不進(jìn)行反壓,避免了因反壓的頻繁進(jìn)行而影響用戶網(wǎng)絡(luò)的穩(wěn)定。
如圖4所示,實(shí)現(xiàn)海量端口反壓的裝置的一種實(shí)施例,包括以下模塊檢測(cè)模塊401,用于檢測(cè)發(fā)送到通道化物理端口的用戶數(shù)據(jù)是否達(dá)到反壓門(mén)限,如果用戶數(shù)據(jù)達(dá)到反壓門(mén)限,發(fā)送一個(gè)消息給空閑幀生成模塊403;空閑幀生成模塊403,該模塊位于用戶數(shù)據(jù)的發(fā)送的起始端,用于在接收到檢測(cè)模塊401發(fā)送的用戶數(shù)據(jù)達(dá)到反壓門(mén)限的消息時(shí),生成一個(gè)空閑幀;下行隊(duì)列調(diào)度模塊404,用于將空閑幀生成模塊生成的空閑幀與用戶數(shù)據(jù)混合,并將混合后的數(shù)據(jù)向下行(由用戶數(shù)據(jù)發(fā)送端到接收端的方向)發(fā)送給下行轉(zhuǎn)發(fā)模塊;下行轉(zhuǎn)發(fā)模塊405,用于將下行隊(duì)列調(diào)度模塊404發(fā)來(lái)的空閑幀與用戶數(shù)據(jù)混合后的數(shù)據(jù)發(fā)送到達(dá)到反壓門(mén)限的那個(gè)通道化物理端口;
丟幀模塊406,用于在空閑幀與用戶數(shù)據(jù)混合后的數(shù)據(jù)進(jìn)入達(dá)到反壓門(mén)限的那個(gè)通道化物理端口前,將空閑幀丟棄。
在實(shí)際應(yīng)用中,還可以包括一個(gè)配置模塊402,用于配置空閑幀的起始帶寬值;空閑幀生成模塊403生成的空閑幀的帶寬為配置模塊402配置的起始帶寬值。
在本實(shí)施例中,空閑幀生成模塊位于用戶數(shù)據(jù)發(fā)送的起始端,空閑幀生成后由下行隊(duì)列調(diào)度模塊將其與用戶數(shù)據(jù)混合,然后由下行轉(zhuǎn)發(fā)模塊發(fā)送到通道化物理端口。本實(shí)施例采用生成空閑幀的方法來(lái)實(shí)現(xiàn)端口反壓利用空閑幀所占用的帶寬來(lái)迫用戶數(shù)據(jù)所占用的帶寬減小,而空閑幀在進(jìn)入通道化物理端口之前會(huì)被丟棄而不進(jìn)入通道化物理端口,進(jìn)入通道化物理端口的只是用戶數(shù)據(jù),從而達(dá)到反壓目的。因此,本發(fā)明的實(shí)施例具有簡(jiǎn)單方便,對(duì)端口數(shù)量的適應(yīng)能力強(qiáng),可以實(shí)現(xiàn)海量端口反壓等優(yōu)點(diǎn)。
在本發(fā)明的另一個(gè)具體實(shí)施例中,實(shí)現(xiàn)海量端口反壓的裝置還可以通過(guò)圖5所示的結(jié)構(gòu)實(shí)現(xiàn),包括檢測(cè)模塊501,用于檢測(cè)發(fā)送到通道化物理端口的用戶數(shù)據(jù)是否達(dá)到反壓門(mén)限,如果用戶數(shù)據(jù)達(dá)到反壓門(mén)限,發(fā)送一個(gè)消息給空閑幀生成模塊503;空閑幀生成模塊503,該模塊位于用戶數(shù)據(jù)發(fā)送的末端,用于在接收到檢測(cè)模塊501發(fā)送的用戶數(shù)據(jù)達(dá)到反壓門(mén)限的消息時(shí),生成一個(gè)空閑幀;上行轉(zhuǎn)發(fā)模塊504,用于將空閑幀生成模塊生成的空閑幀向上行(由用戶數(shù)據(jù)接收端到發(fā)送端的方向)轉(zhuǎn)發(fā)給上行隊(duì)列調(diào)度模塊505;上行隊(duì)列調(diào)度模塊505,用于將上行轉(zhuǎn)發(fā)模塊504發(fā)送來(lái)的空閑幀轉(zhuǎn)發(fā)給下行隊(duì)列調(diào)度模塊506;下行隊(duì)列調(diào)度模塊506,用于將上行隊(duì)列調(diào)度模塊505發(fā)送來(lái)的空閑幀與用戶數(shù)據(jù)混合,并將混合后的數(shù)據(jù)發(fā)送到下行轉(zhuǎn)發(fā)模塊507;下行轉(zhuǎn)發(fā)模塊507,用于將下行隊(duì)列調(diào)度模塊506發(fā)送來(lái)的空閑幀與用戶數(shù)據(jù)混合后的數(shù)據(jù)轉(zhuǎn)發(fā)到達(dá)到反壓門(mén)限的那個(gè)通道化物理端口;丟幀模塊508,用于在下行轉(zhuǎn)發(fā)模塊507發(fā)送來(lái)的空閑幀與用戶數(shù)據(jù)混合后的數(shù)據(jù)進(jìn)入上述通道化物理端口前,將空閑幀丟棄。
在實(shí)際應(yīng)用中,還可以包括配置模塊502,用于配置所生成的空閑幀的起始帶寬值,由空閑幀生成模塊503所生成的空閑幀的帶寬為配置模塊502配置的起始帶寬值;在上行轉(zhuǎn)發(fā)模塊504和上行隊(duì)列調(diào)度模塊505對(duì)空閑幀進(jìn)行轉(zhuǎn)發(fā)的過(guò)程中,上行轉(zhuǎn)發(fā)模塊504和上行隊(duì)列調(diào)度模塊505只對(duì)空閑幀進(jìn)行透?jìng)鳌?br>
在本實(shí)施例中,空閑幀生成模塊位于用戶數(shù)據(jù)發(fā)送的末端,空閑幀生成后先由上行轉(zhuǎn)發(fā)模塊和上行隊(duì)列調(diào)度模塊轉(zhuǎn)發(fā)給下行隊(duì)列調(diào)度模塊,然后由下行隊(duì)列調(diào)度模塊將空閑幀與用戶數(shù)據(jù)混合,再由下行轉(zhuǎn)發(fā)模塊發(fā)送到通道化物理端口。其中上行轉(zhuǎn)發(fā)模塊和上行隊(duì)列調(diào)度模塊為現(xiàn)有技術(shù)中已有的模塊。同樣,本實(shí)施例采用生成空閑幀的方法來(lái)實(shí)現(xiàn)端口反壓利用空閑幀所占用的帶寬來(lái)迫用戶數(shù)據(jù)所占用的帶寬減小,而空閑幀在進(jìn)入通道化物理端口之前會(huì)被丟棄而不進(jìn)入通道化物理端口,進(jìn)入通道化物理端口的只是用戶數(shù)據(jù),從而達(dá)到反壓目的。因此,本發(fā)明的實(shí)施例具有簡(jiǎn)單方便,對(duì)端口數(shù)量的適應(yīng)能力強(qiáng),可以實(shí)現(xiàn)海量端口反壓等優(yōu)點(diǎn)。
本發(fā)明實(shí)施例所涉及的軟件可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種實(shí)現(xiàn)海量端口反壓的方法,其特征在于,包括以下步驟檢測(cè)發(fā)送到通道化物理端口的用戶數(shù)據(jù)是否達(dá)到反壓門(mén)限,當(dāng)達(dá)到反壓門(mén)限時(shí),生成一個(gè)空閑幀;將所述空閑幀與所述用戶數(shù)據(jù)混合后發(fā)送到所述通道化物理端口;在所述空閑幀與所述用戶數(shù)據(jù)混合后的數(shù)據(jù)進(jìn)入通道化物理端口之前丟棄所述空閑幀。
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)海量端口反壓的方法,其特征在于,在所述檢測(cè)發(fā)送到通道化物理端口的用戶數(shù)據(jù)是否達(dá)到反壓門(mén)限前,還包括為所述通道化物理端口預(yù)留一個(gè)空閑幀使用的用戶隊(duì)列。
3.根據(jù)權(quán)利要求2所述的實(shí)現(xiàn)海量端口反壓的方法,其特征在于,還包括,配置所述用戶隊(duì)列的承諾信息速率值為調(diào)度誤差。
4.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)海量端口反壓的方法,其特征在于,還包括,配置所述通道化物理端口達(dá)反壓門(mén)限后所產(chǎn)生的空閑幀的起始帶寬值。
5.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)海量端口反壓的方法,其特征在于,所述空閑幀的帶寬為所述配置的起始帶寬值。
6.根據(jù)權(quán)利要求1~5之任意一項(xiàng)所述的實(shí)現(xiàn)海量端口反壓的方法,其特征在于,所述檢測(cè)發(fā)送到通道化物理端口的用戶數(shù)據(jù)是否達(dá)到反壓門(mén)限通過(guò)檢測(cè)所述通道化物理端口的發(fā)送緩沖來(lái)實(shí)現(xiàn)。
7.根據(jù)權(quán)利要求1~5之任意一項(xiàng)所述的實(shí)現(xiàn)海量端口反壓的方法,其特征在于,還包括產(chǎn)生所述空閑幀后,如果仍然存在反壓,則增加所述空閑幀的帶寬;如果反壓消失,則減少所述空閑幀的帶寬。
8.一種實(shí)現(xiàn)海量端口反壓的裝置,其特征在于,包括檢測(cè)模塊,用于檢測(cè)發(fā)送到通道化物理端口的用戶數(shù)據(jù)是否達(dá)到反壓門(mén)限,如果達(dá)到反壓門(mén)限,發(fā)送一個(gè)消息給空閑幀生成模塊;空閑幀生成模塊,用于在接收到所述消息后,生成一個(gè)空閑幀;下行隊(duì)列調(diào)度模塊,用于將所述空閑幀與用戶數(shù)據(jù)混合在一起,并將混合后的數(shù)據(jù)發(fā)送到下行轉(zhuǎn)發(fā)模塊;下行轉(zhuǎn)發(fā)模塊,用于將所述下行隊(duì)列調(diào)度模塊發(fā)送來(lái)的所述混合后的數(shù)據(jù)轉(zhuǎn)發(fā)到用戶數(shù)據(jù)對(duì)應(yīng)的通道化物理端口;丟幀模塊,用于在所述混合后的數(shù)據(jù)進(jìn)入所述通道化物理端口前將所述空閑幀丟棄。
9.根據(jù)權(quán)利要求8所述的實(shí)現(xiàn)海量端口反壓的裝置,其特征在于,還包括配置模塊,用于配置空閑幀的起始帶寬值。
10.根據(jù)權(quán)利要求8或9所述的實(shí)現(xiàn)海量端口反壓的裝置,其特征在于,還包括上行轉(zhuǎn)發(fā)模塊,用于將由所述空閑幀上行轉(zhuǎn)發(fā)到上行隊(duì)列調(diào)度模塊;上行隊(duì)列調(diào)度模塊,用于將所述上行轉(zhuǎn)發(fā)模塊轉(zhuǎn)發(fā)來(lái)的空閑幀轉(zhuǎn)發(fā)到所述下行隊(duì)列調(diào)度模塊。
全文摘要
本發(fā)明公開(kāi)了一種實(shí)現(xiàn)海量端口反壓的方法,以及實(shí)現(xiàn)該方法的裝置,屬于網(wǎng)絡(luò)端口反壓控制的技術(shù)領(lǐng)域。本發(fā)明的方法包括步驟檢測(cè)發(fā)送到通道化物理端口的用戶數(shù)據(jù)是否達(dá)到反壓門(mén)限,當(dāng)達(dá)到反壓門(mén)限時(shí),生成一個(gè)空閑幀;將所述空閑幀與達(dá)到反壓門(mén)限的那個(gè)通道化物理端口的用戶數(shù)據(jù)混合后發(fā)送到通道化物理端口;在所述混合后的數(shù)據(jù)進(jìn)入通道化物理端口之前丟棄所述空閑幀。本發(fā)明使用了空閑幀來(lái)實(shí)現(xiàn)反壓,空閑幀占用了一定的傳輸寬帶,減少了用戶數(shù)據(jù)的帶寬,而空閑幀不會(huì)進(jìn)入物理端口,從而達(dá)到了反壓的目的。而空閑幀的帶寬可以根據(jù)需要預(yù)先配置,在空閑幀產(chǎn)生后,其帶寬還可以根據(jù)反壓的存在與否平滑的增加或減少,其控制十分簡(jiǎn)單方便。
文檔編號(hào)H04L12/56GK101026558SQ20071000112
公開(kāi)日2007年8月29日 申請(qǐng)日期2007年1月18日 優(yōu)先權(quán)日2007年1月18日
發(fā)明者杜文華, 黎輝, 譚學(xué)飛, 阮強(qiáng)勝, 胡衛(wèi)江, 陳松海, 崔秀梅 申請(qǐng)人:華為技術(shù)有限公司