本發(fā)明涉及通信,具體而言,涉及一種基于動(dòng)態(tài)閾值觸發(fā)ecn標(biāo)記的實(shí)現(xiàn)方法、裝置和網(wǎng)絡(luò)設(shè)備。
背景技術(shù):
1、在大量數(shù)據(jù)交互的網(wǎng)絡(luò)中,網(wǎng)絡(luò)流量千變?nèi)f化,當(dāng)流量增大到超過(guò)出口發(fā)送能力的時(shí)候,報(bào)文就需要在轉(zhuǎn)發(fā)設(shè)備(如交換機(jī))內(nèi)進(jìn)行緩存并排隊(duì)發(fā)送。在流量很大的情況下,可能會(huì)因?yàn)榻粨Q機(jī)緩存占滿而將需要轉(zhuǎn)發(fā)的報(bào)文丟棄。若丟棄一些重要報(bào)文,如高優(yōu)先級(jí)報(bào)文則會(huì)對(duì)網(wǎng)絡(luò)性能和穩(wěn)定性造成影響。
2、ecn(explicit?congestion?notification,顯示擁塞通告)是一種在互聯(lián)網(wǎng)數(shù)據(jù)包交換過(guò)程中進(jìn)行主動(dòng)擁塞控制的技術(shù),交換機(jī)可對(duì)報(bào)文進(jìn)行ecn標(biāo)記,從而以通知接收端當(dāng)前存在擁塞,進(jìn)而通知到發(fā)送端以降低報(bào)文發(fā)送速率。ecn標(biāo)記的時(shí)機(jī)對(duì)網(wǎng)絡(luò)性能有直接影響,過(guò)早標(biāo)記ecn會(huì)使得緩存利用率低,不能很好吸收突發(fā)流量,過(guò)遲標(biāo)記ecn會(huì)導(dǎo)致在交換機(jī)標(biāo)記ecn到發(fā)送端響應(yīng)的時(shí)間內(nèi)有交換機(jī)緩存溢出丟包的風(fēng)險(xiǎn)。交換機(jī)對(duì)于擁塞的檢測(cè)又會(huì)直接影響ecn的標(biāo)記時(shí)機(jī),因此,交換機(jī)的擁塞檢測(cè)方式成為了ecn的關(guān)鍵技術(shù)。
3、交換機(jī)端口中存在若干隊(duì)列,現(xiàn)有技術(shù)中基于隊(duì)列分別設(shè)置兩個(gè)緩存閾值thrd1和thrd2,發(fā)生擁塞時(shí)隊(duì)列緩存占用持續(xù)增加,當(dāng)超過(guò)thrd1時(shí)開(kāi)始對(duì)報(bào)文進(jìn)行ecn標(biāo)記。擁塞緩解時(shí)緩存占用降低,當(dāng)?shù)陀趖hrd2不再對(duì)報(bào)文進(jìn)行ecn標(biāo)記。
4、交換機(jī)中的多個(gè)隊(duì)列共享緩存資源,當(dāng)存在大量隊(duì)列發(fā)生擁塞時(shí),則每個(gè)隊(duì)列能夠占用的緩存資源較少,此時(shí)若緩存閾值配置的較大,由于隊(duì)列占用的緩存資源要超過(guò)緩存閾值時(shí),才會(huì)觸發(fā)cen標(biāo)記,因此,可能出現(xiàn)所有隊(duì)列占用的緩存資源都不會(huì)超過(guò)設(shè)置的緩存閾值,因此,不會(huì)觸發(fā)ecn標(biāo)記行為。但是,此時(shí)交換機(jī)整體的緩存資源可能耗盡,進(jìn)而可能導(dǎo)致丟包。因此,在這種場(chǎng)景下,緩存閾值需要配置的較小。而當(dāng)存在少量隊(duì)列發(fā)生擁塞時(shí),每個(gè)隊(duì)列能夠占用的緩存資源較多,此時(shí)如果緩存閾值配置的較小,則會(huì)出現(xiàn)隊(duì)列擁塞程度很輕時(shí)就觸發(fā)ecn標(biāo)記行為,導(dǎo)致頻繁標(biāo)記ecn,進(jìn)而出現(xiàn)網(wǎng)絡(luò)轉(zhuǎn)發(fā)效率較低的情況。并且,此時(shí)緩存占用很低,無(wú)法充分利用緩存資源。因此,在這種情況下,緩存閾值需要配置的較大。
5、實(shí)際網(wǎng)絡(luò)中流量情況頻繁發(fā)生變化,每個(gè)時(shí)刻每個(gè)隊(duì)列的擁塞情況都不相同,可見(jiàn),現(xiàn)有技術(shù)中所采用的靜態(tài)閾值配置方式,對(duì)于復(fù)雜的網(wǎng)絡(luò)環(huán)境適應(yīng)性較差。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的包括,例如,提供了一種基于動(dòng)態(tài)閾值觸發(fā)ecn標(biāo)記的實(shí)現(xiàn)方法、裝置和網(wǎng)絡(luò)設(shè)備,其能夠提高芯片緩存利用率的同時(shí),降低由于ecn標(biāo)記不及時(shí)而丟包的概率。
2、本發(fā)明的實(shí)施例可以這樣實(shí)現(xiàn):
3、第一方面,本發(fā)明提供一種基于動(dòng)態(tài)閾值觸發(fā)ecn標(biāo)記的實(shí)現(xiàn)方法,應(yīng)用于交換機(jī),所述交換機(jī)分別與發(fā)送端和接收端通信連接,所述交換機(jī)包括多個(gè)緩存隊(duì)列,所述多個(gè)緩存隊(duì)列共享緩存資源,所述方法包括:
4、在對(duì)所述多個(gè)緩存隊(duì)列包括的目標(biāo)緩存隊(duì)列中的報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí),獲得當(dāng)前處于擁塞狀態(tài)的緩存隊(duì)列的數(shù)量,并基于處于擁塞狀態(tài)的緩存隊(duì)列的數(shù)量計(jì)算得到緩存閾值;
5、基于所述緩存閾值計(jì)算得到當(dāng)前的標(biāo)記閾值;
6、獲得所述目標(biāo)緩存隊(duì)列當(dāng)前實(shí)際的緩存資源占用情況,基于所述占用情況和所述標(biāo)記閾值判斷是否對(duì)所述目標(biāo)緩存隊(duì)列中當(dāng)前待轉(zhuǎn)發(fā)的報(bào)文進(jìn)行顯示擁塞通告ecn標(biāo)記。
7、在可選的實(shí)施方式中,所述基于處于擁塞狀態(tài)的緩存隊(duì)列的數(shù)量計(jì)算得到緩存閾值的步驟,包括:
8、基于處于擁塞狀態(tài)的緩存隊(duì)列的數(shù)量從預(yù)設(shè)的多個(gè)緩存系數(shù)中確定目標(biāo)緩存系數(shù);
9、根據(jù)處于擁塞狀態(tài)的緩存隊(duì)列的數(shù)量以及所述目標(biāo)緩存系數(shù)計(jì)算得到緩存閾值。
10、在可選的實(shí)施方式中,所述基于所述緩存閾值計(jì)算得到當(dāng)前的標(biāo)記閾值的步驟,包括:
11、獲得設(shè)置的偏移量和下限值,所述偏移量為標(biāo)記閾值相對(duì)于緩存閾值的偏移,所述下限值為標(biāo)記閾值的下限;
12、基于所述緩存閾值、所述偏移量和所述下限值之間的大小關(guān)系,確定當(dāng)前已占用緩存資源的比例;
13、基于所述已占用緩存資源的比例,采用對(duì)應(yīng)的計(jì)算策略計(jì)算得到標(biāo)記閾值。
14、在可選的實(shí)施方式中,所述基于所述緩存閾值、所述偏移量和所述下限值之間的大小關(guān)系,確定當(dāng)前已占用緩存資源的比例的步驟,包括:
15、在所述緩存閾值與所述偏移量之間的差值大于所述下限值的情況下,確定當(dāng)前已占用緩存資源的比例處于第一范圍;
16、在所述緩存閾值與所述偏移量之間的差值小于所述下限值,且所述緩存閾值大于所述下限值的情況下,確定當(dāng)前已占用緩存資源的比例處于第二范圍;
17、在所述緩存閾值小于所述下限值的情況下,確定當(dāng)前已占用緩存資源的比例處于第三范圍;
18、其中,所述第一范圍、第二范圍、第三范圍依次逐漸增大。
19、在可選的實(shí)施方式中,所述基于所述已占用緩存資源的比例,采用對(duì)應(yīng)的計(jì)算策略計(jì)算得到標(biāo)記閾值的步驟,包括:
20、在所述已占用緩存資源的比例處于第一范圍的情況下,利用所述緩存閾值減去所述偏移量,得到標(biāo)記閾值;
21、在所述已占用緩存資源的比例處于第二范圍的情況下,設(shè)置標(biāo)記閾值等于所述下限值;
22、在所述已占用緩存資源的比例處于第三范圍的情況下,設(shè)置標(biāo)記閾值等于所述緩存閾值。
23、在可選的實(shí)施方式中,所述基于所述占用情況和所述標(biāo)記閾值判斷是否對(duì)所述目標(biāo)緩存隊(duì)列中當(dāng)前待轉(zhuǎn)發(fā)的報(bào)文進(jìn)行顯示擁塞通告ecn標(biāo)記的步驟,包括:
24、若所述占用情況表明所述目標(biāo)緩存隊(duì)列中的報(bào)文對(duì)緩存資源的占用量小于所述標(biāo)記閾值,則判定無(wú)需對(duì)當(dāng)前待轉(zhuǎn)發(fā)的報(bào)文進(jìn)行ecn標(biāo)記;
25、若所述占用情況表明所述目標(biāo)緩存隊(duì)列中的報(bào)文對(duì)緩存資源的占用量大于或等于所述標(biāo)記閾值,則判定對(duì)當(dāng)前待轉(zhuǎn)發(fā)的報(bào)文進(jìn)行ecn標(biāo)記。
26、在可選的實(shí)施方式中,所述方法還包括:
27、在每次接收到報(bào)文后,獲得所述報(bào)文的報(bào)文等級(jí);
28、確定所述多個(gè)緩存隊(duì)列中各所述緩存隊(duì)列的隊(duì)列等級(jí);
29、將所述報(bào)文存入與其報(bào)文等級(jí)對(duì)應(yīng)的隊(duì)列等級(jí)的緩存隊(duì)列中。
30、在可選的實(shí)施方式中,所述方法還包括:
31、在判定對(duì)待轉(zhuǎn)發(fā)的報(bào)文進(jìn)行ecn標(biāo)記的情況下,在所述報(bào)文的頭部添加標(biāo)記位,并對(duì)所述標(biāo)志位進(jìn)行設(shè)置以表征存在擁塞;
32、將設(shè)置后的報(bào)文發(fā)送至所述接收端,以使所述接收端對(duì)所述報(bào)文中的標(biāo)志位進(jìn)行解析后,發(fā)送擁塞通知報(bào)文cnp至所述發(fā)送端以通知所述發(fā)送端降低報(bào)文發(fā)送速率。
33、第二方面,本發(fā)明提供一種基于動(dòng)態(tài)閾值觸發(fā)ecn標(biāo)記的實(shí)現(xiàn)裝置,應(yīng)用于交換機(jī),所述交換機(jī)分別與發(fā)送端和接收端通信連接,所述交換機(jī)包括多個(gè)緩存隊(duì)列,所述多個(gè)緩存隊(duì)列共享緩存資源,所述裝置包括:
34、計(jì)算模塊,用于在對(duì)所述多個(gè)緩存隊(duì)列包括的目標(biāo)緩存隊(duì)列中的報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí),獲得當(dāng)前處于擁塞狀態(tài)的緩存隊(duì)列的數(shù)量,并基于處于擁塞狀態(tài)的緩存隊(duì)列的數(shù)量計(jì)算得到緩存閾值;
35、所述計(jì)算模塊,還用于基于所述緩存閾值計(jì)算得到當(dāng)前的標(biāo)記閾值;
36、判斷模塊,用于獲得所述目標(biāo)緩存隊(duì)列當(dāng)前實(shí)際的緩存資源占用情況,基于所述占用情況和所述標(biāo)記閾值判斷是否對(duì)所述目標(biāo)緩存隊(duì)列中當(dāng)前待轉(zhuǎn)發(fā)的報(bào)文進(jìn)行顯示擁塞通告ecn標(biāo)記。
37、第三方面,本發(fā)明提供一種網(wǎng)絡(luò)設(shè)備,包括至少一個(gè)處理器和用于與所述至少一個(gè)處理器通信連接的存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有能夠被所述至少一個(gè)處理器執(zhí)行的指令,所述指令被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行如前述實(shí)施方式中任意一項(xiàng)所述的方法步驟。
38、本發(fā)明實(shí)施例的有益效果包括,例如:
39、本發(fā)明提供一種基于動(dòng)態(tài)閾值觸發(fā)ecn標(biāo)記的實(shí)現(xiàn)方法、裝置和網(wǎng)絡(luò)設(shè)備,交換機(jī)在對(duì)多個(gè)緩存隊(duì)列包括的目標(biāo)緩存隊(duì)列中的報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí),獲得當(dāng)前處于擁塞狀態(tài)的緩存隊(duì)列的數(shù)量,基于處于擁塞狀態(tài)的緩存隊(duì)列的數(shù)量計(jì)算得到緩存閾值。再基于緩存閾值計(jì)算得到當(dāng)前的標(biāo)記閾值,獲得目標(biāo)緩存隊(duì)列當(dāng)前實(shí)際的緩存資源占用情況,基于占用情況和標(biāo)記閾值來(lái)判斷是否對(duì)當(dāng)前待發(fā)送的報(bào)文進(jìn)行顯示擁塞通告ecn標(biāo)記。本方案中,標(biāo)記閾值可跟隨動(dòng)態(tài)的緩存閾值變化,而緩存閾值基于當(dāng)前的擁塞情況變化,使得標(biāo)記閾值能夠適應(yīng)實(shí)際的緩存資源占用情況,在提高芯片緩存利用率的同時(shí),降低由于ecn標(biāo)記不及時(shí)而丟包的概率。