本發(fā)明涉及數(shù)據(jù)報文傳輸領(lǐng)域,具體涉及一種用于業(yè)務(wù)報文的擁塞信息的通知方法、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)在線服務(wù)和云計算需求的快速增長,一些互聯(lián)網(wǎng)服務(wù)提供商在商用以太網(wǎng)數(shù)據(jù)中心部署了rocev2(rdma?over?converged?ethernet,基于以太網(wǎng)的遠(yuǎn)程直接內(nèi)存訪問協(xié)議)通信協(xié)議,用以滿足高性能算力需求。rocev2通信協(xié)議基于udp(userdatagram?protocol,用戶數(shù)據(jù)報協(xié)議)的傳輸機制,能夠適配現(xiàn)存的以太網(wǎng)數(shù)據(jù)中心而不需要專用設(shè)備。
2、在roce網(wǎng)絡(luò)中,需要構(gòu)建無損以太網(wǎng)用于保證網(wǎng)絡(luò)傳輸過程中不丟包。傳統(tǒng)做法為:中繼節(jié)點設(shè)備發(fā)現(xiàn)擁塞后,向接收端服務(wù)器發(fā)送攜帶擁塞標(biāo)記的報文(ecn),接收端服務(wù)器隨后向發(fā)送端服務(wù)器發(fā)送cnp(congestion?notification?packets,擁塞通知數(shù)據(jù)包)報文,以通知發(fā)送端服務(wù)器降低發(fā)送報文的速率,從而緩解擁塞。
3、上述方法的缺陷為:
4、(1)響應(yīng)慢:發(fā)生擁塞的是網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)設(shè)備,對擁塞進行處理和反饋的是數(shù)據(jù)報文接收端和發(fā)送端,當(dāng)網(wǎng)絡(luò)規(guī)模較大時,擁塞發(fā)生到擁塞處理和反饋的時延較長,發(fā)送端不能及時降速,導(dǎo)致?lián)砣觿 ?/p>
5、(2)響應(yīng)不準(zhǔn)確:網(wǎng)絡(luò)擁塞狀態(tài)只能通過數(shù)據(jù)報文中的ecn域中11標(biāo)記獲得,接收端生成的擁塞通知報文不能準(zhǔn)確告知發(fā)送端應(yīng)該降低多少速率來緩解擁塞,此時若降速不夠,則無法有效解決擁塞的情況,若降速過度,則會降低帶寬利用率。與此同時,在擁塞緩解過程中,轉(zhuǎn)發(fā)設(shè)備仍然會持續(xù)進行擁塞標(biāo)記,很容易造成網(wǎng)絡(luò)吞吐率過低。
技術(shù)實現(xiàn)思路
1、針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明解決的技術(shù)問題為:如何在響應(yīng)速度快、響應(yīng)準(zhǔn)確度高的基礎(chǔ)上通知擁塞信息。
2、為達(dá)到以上目的,第一方面,本技術(shù)實施例提供一種用于業(yè)務(wù)報文的擁塞信息通知方法,該方法包括以下步驟:
3、根據(jù)會話報文中的會話標(biāo)識更新對應(yīng)的會話索引信息,會話索引信息包括發(fā)送端信息和接收端信息;
4、根據(jù)會話索引信息得到業(yè)務(wù)索引信息;
5、根據(jù)業(yè)務(wù)報文的隊列長度更新對應(yīng)的業(yè)務(wù)索引信息;
6、根據(jù)業(yè)務(wù)索引信息獲取擁塞的業(yè)務(wù)報文類型和隊列長度,根據(jù)擁塞的隊列總長度和每種類型的業(yè)務(wù)報文的隊列長度,構(gòu)造包括擁塞的業(yè)務(wù)報文的發(fā)送時長的擁塞信息通知報文。
7、結(jié)合第一方面,在一種實施方式中,所述會話報文包括會話請求建鏈報文和會話請求建鏈答復(fù)報文;
8、會話請求建鏈報文的會話標(biāo)識包括:發(fā)送端ip、接收端ip、發(fā)送端標(biāo)識和發(fā)送端隊列號;
9、會話請求建鏈答復(fù)報文的會話標(biāo)識包括:雙端會話標(biāo)簽和接收端隊列號;
10、雙端會話標(biāo)簽包括:發(fā)送端ip、接收端ip、發(fā)送端標(biāo)識和接收端標(biāo)識。
11、結(jié)合第一方面,在一種實施方式中,所述會話報文還包括:會話開啟報文、斷開請求斷鏈報文和斷開請求斷鏈答復(fù)報文;
12、會話開啟報文、斷開請求斷鏈報文和斷開請求斷鏈答復(fù)報文的會話標(biāo)識均為所述雙端會話標(biāo)簽。
13、結(jié)合第一方面,在一種實施方式中,所述業(yè)務(wù)索引信息包括:發(fā)送端ip、接收端ip、會話隊列號和隊列長度計數(shù);
14、所述根據(jù)業(yè)務(wù)報文的隊列長度更新對應(yīng)的業(yè)務(wù)索引信息的流程包括:確定業(yè)務(wù)報文對應(yīng)的業(yè)務(wù)索引信息,根據(jù)業(yè)務(wù)隊列長度更新業(yè)務(wù)索引信息中的隊列長度計數(shù)。
15、結(jié)合第一方面,在一種實施方式中,所述業(yè)務(wù)報文為rocev2報文,所述會話索引信息為rocev2會話流表,rocev2會話流表中包括sip、dip、發(fā)送端標(biāo)識local_id、接收端標(biāo)識remote_id、發(fā)送端隊列號local_qpn、接收端隊列號remote_qpn和會話報文類型的接收標(biāo)識flag;
16、所述根據(jù)會話報文中的會話標(biāo)識更新對應(yīng)的會話索引信息的流程包括:
17、構(gòu)建2棵會話檢索樹:1棵的key值為sip、dip和local_id;1棵為的key值為sip、dip、local_id和remote_id;
18、對于會話請求建鏈報文、會話請求建鏈答復(fù)報文和會話開啟報文:確定key與當(dāng)前報文對應(yīng)的會話檢索樹,根據(jù)當(dāng)前報文的信息更新對應(yīng)的會話檢索樹;
19、對于斷開請求斷鏈報文和斷開請求斷鏈答復(fù)報文:若當(dāng)前報文與任意1顆會話檢索樹的key值對應(yīng),則在對應(yīng)的會話檢索樹中更新當(dāng)前報文的信息;
20、所述業(yè)務(wù)索引信息為rocev2業(yè)務(wù)流表,rocev2業(yè)務(wù)流表中包括sip、dip、會話隊列號和隊列長度計數(shù)cnt;
21、所述根據(jù)業(yè)務(wù)報文的隊列長度更新對應(yīng)的業(yè)務(wù)索引信息的流程包括:
22、根據(jù)rocev2會話流表建立兩棵業(yè)務(wù)檢索樹:1棵的key值為sip、dip和remote_qpn,1棵的key值為sip、dip和local_qpn;
23、收到業(yè)務(wù)報文后,若當(dāng)前業(yè)務(wù)報文與任意一顆業(yè)務(wù)檢索樹的key值匹配,則根據(jù)當(dāng)前業(yè)務(wù)報文的隊列長度更新對應(yīng)的業(yè)務(wù)檢索樹中的cnt;
24、若不存在與當(dāng)前業(yè)務(wù)報文的轉(zhuǎn)發(fā)目的端口和報文優(yōu)先級對應(yīng)的優(yōu)先級檢索樹時,根據(jù)當(dāng)前業(yè)務(wù)報文的轉(zhuǎn)發(fā)目的端口和報文優(yōu)先級構(gòu)造對應(yīng)的優(yōu)先級檢索樹、并與對應(yīng)的業(yè)務(wù)檢索樹關(guān)聯(lián);
25、所述根據(jù)業(yè)務(wù)索引信息獲取擁塞的業(yè)務(wù)報文類型和隊列長度的流程包括:根據(jù)擁塞的業(yè)務(wù)報文的轉(zhuǎn)發(fā)目的端口和報文優(yōu)先級確定對應(yīng)的檢索對象樹和業(yè)務(wù)檢索樹,根據(jù)業(yè)務(wù)檢索樹中的sip、dip和會話隊列號確定業(yè)務(wù)報文類型,根據(jù)業(yè)務(wù)檢索樹中的cnt確定隊列長度。
26、結(jié)合第一方面,在一種實施方式中,所述發(fā)生擁塞的確定流程包括:設(shè)置隊列上限閾值k1和隊列下限閾值k2,當(dāng)隊列長度在k1以上時,確定需要延長業(yè)務(wù)報文的發(fā)送時長;當(dāng)隊列長度在k2以下時,確定需要縮短業(yè)務(wù)報文的發(fā)送時長;
27、所述業(yè)務(wù)報文的發(fā)送時長的計算過程包括:
28、計算需要延長發(fā)送或者縮短發(fā)送的總時長nall:
29、nall=β1x|qcur-qth|+β2x|qcur-qold|;
30、β1和β2為根據(jù)實際網(wǎng)絡(luò)情況設(shè)置的常數(shù);
31、qcur代表當(dāng)前擁塞的隊列總長度;
32、qold代表上次擁塞的隊列總長度;
33、qth為k1或k2;當(dāng)qth為k1時,nall代表需要延長發(fā)送的時長,當(dāng)qth為k2時,nall代表需要縮短發(fā)送的時長;
34、根據(jù)nall、qcur和每種類型的業(yè)務(wù)報文的擁塞隊列長度ncong,計算每種類型的業(yè)務(wù)報文的發(fā)送時長ncnp,計算公式為:
35、ncnp=ncong*nall/qcur。
36、結(jié)合第一方面,在一種實施方式中,上述方法還包括以下步驟:
37、監(jiān)測到會話斷開后,刪除對應(yīng)的會話索引信息和業(yè)務(wù)索引信息;
38、當(dāng)存在至少2塊設(shè)備板卡時,將會話索引信息和業(yè)務(wù)索引信息均同步至每一塊設(shè)備板卡。
39、第二方面,本技術(shù)實施例提供了一種業(yè)務(wù)報文傳輸設(shè)備,所述業(yè)務(wù)報文傳輸設(shè)備包括處理器、存儲器、以及存儲在所述存儲器上并可被所述處理器執(zhí)行的用于業(yè)務(wù)報文的擁塞信息通知程序,其中所述用于業(yè)務(wù)報文的擁塞信息通知程序被所述處理器執(zhí)行時,實現(xiàn)第一方面提供的方法的步驟。
40、第三方面,本技術(shù)實施例提供了一種業(yè)務(wù)報文傳輸系統(tǒng),該系統(tǒng)包括發(fā)送節(jié)點、接收節(jié)點、以及設(shè)置于發(fā)送節(jié)點和接收節(jié)點之間的若干中繼節(jié)點,任意中繼節(jié)點上設(shè)置第二方面提供的業(yè)務(wù)報文傳輸設(shè)備。
41、第四方面,本技術(shù)實施例提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有用于業(yè)務(wù)報文的擁塞信息通知程序,其中所述用于業(yè)務(wù)報文的擁塞信息通知程序被執(zhí)行時,實現(xiàn)第一方面提供的方法的步驟。
42、與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:
43、由此可知,本發(fā)明通過會話索引信息確定了業(yè)務(wù)索引信息,進而確定了每種類型的業(yè)務(wù)報文的發(fā)送端和接收端,如此可實現(xiàn)由中繼節(jié)點直接將擁塞信息通知報文傳輸至發(fā)送端,不需要進行現(xiàn)有技術(shù)中先轉(zhuǎn)發(fā)給接收端再傳輸至發(fā)送端的過程,進而能夠?qū)崿F(xiàn)及時傳輸擁塞信息通知報文,讓發(fā)送端及時響應(yīng)和降速。
44、與此同時,本發(fā)明的業(yè)務(wù)索引信息中包括每種類型報文的隊列長度,根據(jù)擁塞的隊列總長度和每種類型報文的隊列長度,能夠確定擁塞類型的業(yè)務(wù)報文需要暫停發(fā)送的時長,進而使得發(fā)送端根據(jù)擁塞信息通知報文“精準(zhǔn)”降速,既能及時降速,又不會過度降速,響應(yīng)準(zhǔn)確度高,以此確保網(wǎng)絡(luò)的低時延和高吞吐。