本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種處理網(wǎng)絡(luò)擁塞的方法及交換機(jī)。
背景技術(shù):
數(shù)據(jù)中心(Data Center,DC)正越來(lái)越廣泛的被云服務(wù)提供商和企業(yè)所創(chuàng)建,數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)(Fabric)對(duì)網(wǎng)絡(luò)流量的負(fù)載均衡效果直接關(guān)系到用戶體驗(yàn)。負(fù)載均衡效果差是指Fabric利用率還很小時(shí)即出現(xiàn)擁塞丟包;相反,負(fù)載均衡效果好是指Fabric利用率較高時(shí)才會(huì)出現(xiàn)擁塞丟包。Fabric擁塞丟包有兩種類(lèi)型,一種為本地負(fù)載不均衡,如等價(jià)多路徑(Equal-Cost MultiPath,ECMP)方式、隨機(jī)負(fù)載均衡方式,具體為多條大流經(jīng)過(guò)散列(hash)后,映射到同一條鏈路,導(dǎo)致匯聚流量超過(guò)端口容量,引起擁塞;另一種由于交換機(jī)各自作負(fù)載均衡,可能會(huì)出現(xiàn)多個(gè)同層交換機(jī)將多個(gè)大流發(fā)送至另一層中的同一個(gè)交換機(jī)上,導(dǎo)致下行流量匯聚擁塞。
目前存在著兩種方法來(lái)解決上面的兩種擁塞,第一種方法為:對(duì)于每條新流,使用10元組作hash,根據(jù)hash結(jié)果從所有等價(jià)鏈路中選擇一條等價(jià)鏈路,邊界交換機(jī)(Edge Switch)在所有的鏈路上檢測(cè)大流,當(dāng)大流所在鏈路的流量超過(guò)預(yù)設(shè)門(mén)限值,上報(bào)給流調(diào)度器(Flow Scheduler),F(xiàn)low Scheduler根據(jù)實(shí)時(shí)收集的鏈路,線性查找所有可以將大流進(jìn)行調(diào)度的可能等價(jià)鏈路,找到第一條匹配的等價(jià)鏈路時(shí),將這條大流調(diào)度到這條等價(jià)鏈路。第二種方法為:對(duì)于每條新流,第一交換機(jī)為每條新流選擇最小負(fù)載鏈路,其中鏈路的負(fù)載情況可以按照如下方法獲?。涸诟采w(overlay)網(wǎng)下,第一交換機(jī)將擁塞字段(包括每條鏈路對(duì)應(yīng)的第二交換機(jī)的端口號(hào)和每條鏈路擁塞度量值)封裝到每個(gè)報(bào)文的overlay頭中,在將擁塞字段發(fā)送到第二交換機(jī)后,第二交換機(jī)將擁塞字段存儲(chǔ)起來(lái),并通過(guò)反向報(bào)文再將更新后的擁塞字段(包括每條鏈路對(duì)應(yīng)的第一交換機(jī)的端口號(hào)和更新的每條鏈路擁塞度量值)反饋給第一交換機(jī),第一交換機(jī)將更新后的擁塞字段存放到表中,這樣第一交換機(jī)就 可以根據(jù)更新后的擁塞字段選取最佳鏈路。
上面的第一種方法需要實(shí)時(shí)上報(bào)大流和每條鏈路的狀態(tài),在大規(guī)模數(shù)據(jù)中心中,數(shù)據(jù)流會(huì)很大,響應(yīng)慢,數(shù)據(jù)中心網(wǎng)絡(luò)利用率不高;第二種方法受限于應(yīng)用場(chǎng)景,同樣數(shù)據(jù)中心網(wǎng)絡(luò)利用率不高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種處理網(wǎng)絡(luò)擁塞的方法和交換機(jī),能夠提高數(shù)據(jù)中心網(wǎng)絡(luò)利用率。
有鑒于此,本發(fā)明第一方面提供一種處理網(wǎng)絡(luò)擁塞的方法,可包括:
第一交換機(jī)獲取與第三交換機(jī)通信的接收端口接收的總流量,所述總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;所述第一交換機(jī)與所述第二交換機(jī)位于所述第三交換機(jī)的下一層級(jí);
當(dāng)所述第一交換機(jī)根據(jù)所述總流量確定所述第三交換機(jī)的發(fā)送端口擁塞時(shí),確定目標(biāo)端口;所述目標(biāo)端口為從所述第一交換機(jī)的各接收端口中選取的能夠接收所述數(shù)據(jù)流的另一端口;
所述第一交換機(jī)向所述第二交換機(jī)發(fā)送調(diào)整消息,所述調(diào)整消息中攜帶所述數(shù)據(jù)流的標(biāo)識(shí)以及所述目標(biāo)端口的標(biāo)識(shí),所述調(diào)整消息用于使所述第二交換機(jī)向所述目標(biāo)端口發(fā)送所述數(shù)據(jù)流。
結(jié)合本發(fā)明第一方面,本發(fā)明第一方面的第一實(shí)施方式中,可包括:
若所述總流量達(dá)到所述第三交換機(jī)的發(fā)送端口的容量的第一預(yù)設(shè)閾值,則所述第一交換機(jī)確定所述第三交換機(jī)的發(fā)送端口擁塞。
結(jié)合本發(fā)明第一方面的第一實(shí)施方式,本發(fā)明第一方面的第二實(shí)施方式中,可包括:
所述數(shù)據(jù)流為所述總流量包括的數(shù)據(jù)流中占用最大流量的數(shù)據(jù)流。
結(jié)合本發(fā)明第一方面,本發(fā)明第一方面的第三實(shí)施方式中,可包括:
所述第一交換機(jī)分別獲取所述第一交換機(jī)與多個(gè)上一層級(jí)交換機(jī)通信的各接收端口接收的總流量,所述多個(gè)上一層級(jí)交換機(jī)包括所述第三交換機(jī),所述第一交換機(jī)與所述第三交換機(jī)通信的接收端口為所述各接收端口中總流量最大的端口;
所述確定目標(biāo)端口包括:
若所述第一交換機(jī)與所述第三交換機(jī)通信的接收端口接收的總流量與參考流量的差值大于第二預(yù)設(shè)閾值,則所述第一交換機(jī)確定所述第三交換機(jī)的各下行鏈路負(fù)載不均衡,并確定所述目標(biāo)端口;所述參考流量為所述第一交換機(jī)的各接收端口接收的最小總流量。
結(jié)合本發(fā)明第一方面,本發(fā)明第一方面的第四實(shí)施方式中,可包括:
所述第一交換機(jī)分別獲取所述第一交換機(jī)的各發(fā)送端口發(fā)送的總流量;
當(dāng)?shù)谝话l(fā)送端口發(fā)送的總流量達(dá)到第三預(yù)設(shè)閾值,并且第二發(fā)送端口發(fā)送的總流量小于第四預(yù)設(shè)閾值時(shí);所述第一交換機(jī)將通過(guò)所述第一發(fā)送端口發(fā)送的至少一條數(shù)據(jù)流調(diào)度到所述第二發(fā)送端口,以使所述第一發(fā)送端口調(diào)整后的總流量小于所述第三預(yù)設(shè)閾值,并使所述第二發(fā)送端口調(diào)整后的總流量小于所述第四預(yù)設(shè)閾值。
有鑒于此,本發(fā)明第二方面提供一種處理網(wǎng)絡(luò)擁塞的方法,可包括:
在第二交換機(jī)通過(guò)與第三交換機(jī)通信的第一發(fā)送端口向第一交換機(jī)的接收端口發(fā)送數(shù)據(jù)流的過(guò)程中,所述第二交換機(jī)接收所述第一交換機(jī)通過(guò)所述第三交換機(jī)發(fā)送的調(diào)整消息,所述第一交換機(jī)與所述第二交換機(jī)位于所述第三交換機(jī)的下一層級(jí),所述調(diào)整消息包括所述數(shù)據(jù)流的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí);所述目標(biāo)端口為所述第一交換機(jī)的各接收端口中能夠接收所述數(shù)據(jù)流的另一端口;
所述第二交換機(jī)根據(jù)所述調(diào)整消息,確定與所述目標(biāo)端口對(duì)應(yīng)的第二發(fā)送端口,所述第二發(fā)送端口為所述第二交換機(jī)與第四交換機(jī)通信的端口;所述第四交換機(jī)與所述第三交換機(jī)位于同一層級(jí);
所述第二交換機(jī)通過(guò)所述第二發(fā)送端口發(fā)送所述數(shù)據(jù)流,以使所述數(shù)據(jù)流通過(guò)所述第四交換機(jī)到達(dá)所述目標(biāo)端口。
結(jié)合本發(fā)明第二方面,本發(fā)明第二方面的第一實(shí)施方式中,可包括:
當(dāng)所述目標(biāo)端口的標(biāo)識(shí)為端口號(hào),且所述第一交換機(jī)和所述第二交換機(jī)的相同端口號(hào)的端口連接到同一個(gè)上一層級(jí)交換機(jī)時(shí),所述第二交換機(jī)根據(jù)所述調(diào)整消息,確定與所述目標(biāo)端口對(duì)應(yīng)的第二發(fā)送端口包括:所述第二交換機(jī)確定所述第二交換機(jī)的發(fā)送端口中具有所述端口號(hào)的端口為所述第二發(fā)送端口。
結(jié)合本發(fā)明第二方面,本發(fā)明第二方面的第二實(shí)施方式中,可包括:
所述第二交換機(jī)根據(jù)所述目標(biāo)端口的標(biāo)識(shí)查找對(duì)應(yīng)關(guān)系表,得到包括所述目標(biāo)端口的標(biāo)識(shí)的表項(xiàng),根據(jù)所述表項(xiàng)得到所述第二發(fā)送端口;所述對(duì)應(yīng)關(guān)系表的每個(gè)表項(xiàng)包括發(fā)送端口的標(biāo)識(shí)、上一層級(jí)交換機(jī)的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
有鑒于此,本發(fā)明第三方面提供一種交換機(jī),該交換機(jī)作為第一交換機(jī)使用,可包括:
第一獲取單元,用于獲取與第三交換機(jī)通信的接收端口接收的總流量,所述總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;所述第一交換機(jī)與所述第二交換機(jī)位于所述第三交換機(jī)的下一層級(jí);
確定單元,用于當(dāng)根據(jù)所述總流量確定所述第三交換機(jī)的發(fā)送端口擁塞時(shí),確定目標(biāo)端口;所述目標(biāo)端口為從所述第一交換機(jī)的各接收端口中選取的能夠接收所述數(shù)據(jù)流的另一端口;
發(fā)送單元,用于向所述第二交換機(jī)發(fā)送調(diào)整消息,所述調(diào)整消息中攜帶所述數(shù)據(jù)流的標(biāo)識(shí)以及所述目標(biāo)端口的標(biāo)識(shí),所述調(diào)整消息用于使所述第二交換機(jī)向所述目標(biāo)端口發(fā)送所述數(shù)據(jù)流。
結(jié)合本發(fā)明第三方面,本發(fā)明第三方面的第一實(shí)施方式中,可包括:
所述確定單元具體用于若所述總流量達(dá)到所述第三交換機(jī)的發(fā)送端口的容量的第一預(yù)設(shè)閾值,則確定所述第三交換機(jī)的發(fā)送端口擁塞,并確定所述目標(biāo)端口。
結(jié)合本發(fā)明第三方面的第一實(shí)施方式,本發(fā)明第三方面的第二實(shí)施方式中,可包括:
所述數(shù)據(jù)流為所述總流量包括的數(shù)據(jù)流中占用最大流量的數(shù)據(jù)流。
結(jié)合本發(fā)明第三方面,本發(fā)明第三方面的第三實(shí)施方式中,可包括:
第二獲取單元,用于分別獲取所述第一交換機(jī)與多個(gè)上一層級(jí)交換機(jī)通信的各接收端口接收的總流量,所述多個(gè)上一層級(jí)交換機(jī)包括所述第三交換機(jī),所述第一交換機(jī)與所述第三交換機(jī)通信的接收端口為所述各接收端口中總流量最大的端口;
所述確定單元具體用于若所述第一交換機(jī)與所述第三交換機(jī)通信的接收 端口接收的總流量與參考流量的差值大于第二預(yù)設(shè)閾值,則所述第一交換機(jī)確定所述第三交換機(jī)的各下行鏈路負(fù)載不均衡,并確定所述目標(biāo)端口;所述參考流量為所述第一交換機(jī)的各接收端口接收的最小總流量。
結(jié)合本發(fā)明第三方面,本發(fā)明第二方面的第四實(shí)施方式中,可包括:
第三獲取單元,用于分別獲取所述第一交換機(jī)的各發(fā)送端口發(fā)送的總流量;
調(diào)度單元,用于當(dāng)?shù)谝话l(fā)送端口發(fā)送的總流量達(dá)到第三預(yù)設(shè)閾值,并且第二發(fā)送端口發(fā)送的總流量小于第四預(yù)設(shè)閾值時(shí);將通過(guò)所述第一發(fā)送端口發(fā)送的至少一條數(shù)據(jù)流調(diào)度到所述第二發(fā)送端口,以使所述第一發(fā)送端口調(diào)整后的總流量小于所述第三預(yù)設(shè)閾值,并使所述第二發(fā)送端口調(diào)整后的總流量小于所述第四預(yù)設(shè)閾值。
有鑒于此,本發(fā)明第四方面提供一種交換機(jī),該交換機(jī)作為第二交換機(jī)使用,可包括:
接收單元,用于在第二交換機(jī)通過(guò)與第三交換機(jī)通信的第一發(fā)送端口向第一交換機(jī)的接收端口發(fā)送數(shù)據(jù)流的過(guò)程中,接收所述第一交換機(jī)通過(guò)所述第三交換機(jī)發(fā)送的調(diào)整消息,所述第一交換機(jī)與所述第二交換機(jī)位于所述第三交換機(jī)的下一層級(jí),所述調(diào)整消息包括所述數(shù)據(jù)流的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí);所述目標(biāo)端口為所述第一交換機(jī)的各接收端口中能夠接收所述數(shù)據(jù)流的另一端口;
確定單元,用于根據(jù)所述調(diào)整消息,確定與所述目標(biāo)端口對(duì)應(yīng)的第二發(fā)送端口,所述第二發(fā)送端口為所述第二交換機(jī)與第四交換機(jī)通信的端口;所述第四交換機(jī)與所述第三交換機(jī)位于同一層級(jí);
發(fā)送單元,用于通過(guò)所述第二發(fā)送端口發(fā)送所述數(shù)據(jù)流,以使所述數(shù)據(jù)流通過(guò)所述第四交換機(jī)到達(dá)所述目標(biāo)端口。
結(jié)合本發(fā)明第四方面,本發(fā)明第四方面的第一實(shí)施方式中,可包括:
當(dāng)所述目標(biāo)端口的標(biāo)識(shí)為端口號(hào),且所述第一交換機(jī)和所述第二交換機(jī)的相同端口號(hào)的端口連接到同一個(gè)上一層級(jí)交換機(jī)時(shí),所述確定單元具體用于確定所述第二交換機(jī)的發(fā)送端口中具有所述端口號(hào)的端口為所述第二發(fā)送端口。
結(jié)合本發(fā)明第四方面,本發(fā)明第四方面的第二實(shí)施方式中,可包括:
所述確定單元具體用于根據(jù)所述目標(biāo)端口的標(biāo)識(shí)查找對(duì)應(yīng)關(guān)系表,得到包括所述目標(biāo)端口的標(biāo)識(shí)的表項(xiàng),根據(jù)所述表項(xiàng)得到所述第二發(fā)送端口;所述對(duì)應(yīng)關(guān)系表的每個(gè)表項(xiàng)包括發(fā)送端口的標(biāo)識(shí)、上一層級(jí)交換機(jī)的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):第一交換機(jī)獲取與第三交換機(jī)通信的接收端口接收的總流量,其中該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí),并根據(jù)該總流量判斷第三交換機(jī)的發(fā)送端口是否擁塞,當(dāng)處于擁塞時(shí),確定目標(biāo)端口,該目標(biāo)端口為從該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的端口,說(shuō)明需要進(jìn)行調(diào)整的數(shù)據(jù)流來(lái)自第二交換機(jī)的數(shù)據(jù)流,第一交換機(jī)通過(guò)向第二交換機(jī)發(fā)送調(diào)整消息來(lái)告知該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí),這樣第二交換機(jī)就能夠通過(guò)上述的兩種標(biāo)識(shí)確定自身的發(fā)送端口來(lái)發(fā)送該數(shù)據(jù)流以及確定第四交換機(jī),并使該數(shù)據(jù)流通過(guò)第四交換機(jī)到達(dá)該目標(biāo)端口,該第四交換機(jī)與該第三交換機(jī)位于同一層級(jí),解決了擁塞的問(wèn)題。由此可見(jiàn),本發(fā)明能夠提高數(shù)據(jù)中心網(wǎng)絡(luò)利用率。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例中網(wǎng)絡(luò)架構(gòu)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例中一種處理網(wǎng)絡(luò)擁塞的方法流程示意圖;
圖3為本發(fā)明實(shí)施例中一種處理網(wǎng)絡(luò)擁塞的方法另一流程示意圖;
圖4為本發(fā)明實(shí)施例中一種處理網(wǎng)絡(luò)擁塞的方法流程示意圖;
圖5為本發(fā)明實(shí)施例中一種處理網(wǎng)絡(luò)擁塞的方法另一流程示意圖;
圖6為本發(fā)明實(shí)施例中交換機(jī)結(jié)構(gòu)示意圖;
圖7為本發(fā)明實(shí)施例中交換機(jī)另一結(jié)構(gòu)示意圖;
圖8為本發(fā)明實(shí)施例中交換機(jī)的一個(gè)示意圖;
圖9為本發(fā)明實(shí)施例中交換機(jī)的另一示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了一種處理網(wǎng)絡(luò)擁塞的方法和交換機(jī),用于提高數(shù)據(jù)中心網(wǎng)絡(luò)利用率。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”、“第三”“第四”等(如果存在)是用于區(qū)別類(lèi)似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的實(shí)施例能夠以除了在這里圖示或描述的內(nèi)容以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
為了方便理解本發(fā)明實(shí)施例,下面介紹本發(fā)明實(shí)施例中引入的網(wǎng)絡(luò)架構(gòu)。
如圖1所示,該網(wǎng)絡(luò)架構(gòu)包括多個(gè)上層交換機(jī)和多個(gè)下層交換機(jī),其中,每個(gè)下層交換機(jī)連接到所有上層交換機(jī),每個(gè)上層交換機(jī)連接到所有下層交換機(jī),上層交換機(jī)之間沒(méi)有直連鏈路。
圖1中示出了6個(gè)交換機(jī),其中:交換機(jī)1、交換機(jī)2以及交換機(jī)3位于下層,交換機(jī)4、交換機(jī)5以及交換機(jī)6位于上層,每個(gè)下層交換機(jī)的相同編號(hào)的端口連接到同一個(gè)上層交換機(jī)。需要說(shuō)明的是,在另一個(gè)實(shí)施例中,還可以是不同下層交換機(jī)的不同編號(hào)的端口連接到同一個(gè)上層交換機(jī)。本發(fā)明實(shí)施例只要保證所有下層交換機(jī)都分別提供一個(gè)端口連接到同一個(gè)上層交換機(jī)即可。即,交換機(jī)1的端口1、交換機(jī)2的端口1以及交換機(jī)3的端口1并 不一定連接到同一個(gè)上層交換機(jī),例如:按照預(yù)配置的對(duì)應(yīng)關(guān)系,交換機(jī)2的端口1可以對(duì)應(yīng)交換機(jī)1的端口2。當(dāng)不同下層交換機(jī)的不同編號(hào)的端口連接到同一個(gè)上層交換機(jī)時(shí),為了保證數(shù)據(jù)流量(以下簡(jiǎn)稱(chēng)流量)的正確轉(zhuǎn)發(fā),交換機(jī)上還需要存儲(chǔ)對(duì)應(yīng)關(guān)系表,所述對(duì)應(yīng)關(guān)系表的每個(gè)表項(xiàng)包括所述交換機(jī)的發(fā)送端口與遠(yuǎn)端交換機(jī)、該遠(yuǎn)端交換機(jī)的端口的對(duì)應(yīng)關(guān)系。
從圖1可以看出,在傳輸流量時(shí),上層交換機(jī)的發(fā)送端口發(fā)送的流量等于與該上層交換機(jī)的發(fā)送端口對(duì)接的下層交換機(jī)的接收端口接收的流量。
以圖1中所有下層交換機(jī)的相同編號(hào)的端口連接到同一個(gè)上層交換機(jī)為例,交換機(jī)1通過(guò)交換機(jī)1的端口2將第一數(shù)據(jù)流發(fā)送到交換機(jī)3的端口2,途中經(jīng)過(guò)交換機(jī)5,同時(shí),交換機(jī)2通過(guò)交換機(jī)2的端口2將第二數(shù)據(jù)流發(fā)送到交換機(jī)3的端口2,途中也經(jīng)過(guò)交換機(jī)5,可能導(dǎo)致交換機(jī)5到交換機(jī)3的發(fā)送端口X擁塞(這里僅僅以交換機(jī)5為例,在實(shí)際場(chǎng)景下,上層交換機(jī)的發(fā)送端口擁塞不限定于具體某一個(gè)交換機(jī)的發(fā)送端口擁塞,本發(fā)明需要解決問(wèn)題的實(shí)質(zhì)即為解決上層交換機(jī)的發(fā)送端口擁塞的問(wèn)題),由于交換機(jī)3的端口2接收的流量等于交換機(jī)5的發(fā)送端口X發(fā)送的流量,通過(guò)確定交換機(jī)3的端口2的流量可以判斷交換機(jī)5的發(fā)送端口X是否擁塞,當(dāng)確定交換機(jī)5的發(fā)送端口X擁塞時(shí),交換機(jī)3向交換機(jī)1或者交換機(jī)2發(fā)送調(diào)整消息,使交換機(jī)1將所述第一數(shù)據(jù)流調(diào)整到交換機(jī)3的端口1或者端口3,或者交換機(jī)3向交換機(jī)2發(fā)送調(diào)整消息,使交換機(jī)2將所述第二數(shù)據(jù)流調(diào)整到交換機(jī)3的端口1或者3,也即使交換機(jī)5的發(fā)送端口X上發(fā)送的流量減少。交換機(jī)3能夠調(diào)整接收數(shù)據(jù)流的端口,是因?yàn)樵诿總€(gè)交換機(jī)的發(fā)送端口,上層交換機(jī)以及其他交換機(jī)的端口之間存在對(duì)應(yīng)關(guān)系。當(dāng)所述發(fā)送端口和端口的端口號(hào)相同時(shí),所述對(duì)應(yīng)關(guān)系可以不存儲(chǔ)在所述交換機(jī)上;當(dāng)所述發(fā)送端口和所述端口的端口號(hào)不同時(shí),所述交換機(jī)需要存儲(chǔ)所述對(duì)應(yīng)關(guān)系。當(dāng)交換機(jī)3發(fā)送調(diào)整消息時(shí),所述調(diào)整消息中攜帶交換機(jī)3確定的新的端口,接收到該調(diào)整消息的交換機(jī)1或交換機(jī)2,根據(jù)該端口即可確定自身的發(fā)送端口,并通過(guò)該發(fā)送端口發(fā)送所述數(shù)據(jù)流。通過(guò)上述方式,可以解決交換機(jī)5的發(fā)送端口X擁塞的問(wèn)題。
請(qǐng)參閱圖2,本發(fā)明實(shí)施例中一種處理網(wǎng)絡(luò)擁塞的方法包括:
101、第一交換機(jī)獲取與第三交換機(jī)通信的接收端口接收的總流量,該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí);
本實(shí)施例中,在傳輸流量時(shí),上層交換機(jī)的發(fā)送端口發(fā)送的流量等于與該上層交換機(jī)的發(fā)送端口對(duì)接的下層交換機(jī)的接收端口接收的流量,因此第一交換機(jī)獲取與第三交換機(jī)通信的接收端口接收的總流量,也就確定了第三交換機(jī)的發(fā)送端口發(fā)送的流量,其中該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí)。
由此可見(jiàn),若需要判斷上述第三交換機(jī)的發(fā)送端口是否擁塞,則通過(guò)檢測(cè)上述第一交換機(jī)的接收端口的總流量即可。
102、當(dāng)該第一交換機(jī)根據(jù)該總流量確定該第三交換機(jī)的發(fā)送端口擁塞時(shí),確定目標(biāo)端口;該目標(biāo)端口為從該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的另一端口;
當(dāng)?shù)谝唤粨Q機(jī)獲取該第一交換機(jī)的接收端口的總流量后,該第一交換機(jī)根據(jù)該總流量確定該第三交換機(jī)的發(fā)送端口擁塞,則確定目標(biāo)端口,該目標(biāo)端口為從該第一交換機(jī)的各接收端口中選取的接收端口能夠接收該數(shù)據(jù)流的端口。
103、該第一交換機(jī)向該第二交換機(jī)發(fā)送調(diào)整消息,該調(diào)整消息中攜帶該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí),該調(diào)整消息用于使該第二交換機(jī)向該目標(biāo)端口發(fā)送該數(shù)據(jù)流。
在目標(biāo)端口確定后,該第一交換機(jī)向第二交換機(jī)發(fā)送調(diào)整消息,在該調(diào)整消息中攜帶該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí),該調(diào)整消息用戶使該第二交換機(jī)向該目標(biāo)端口發(fā)送該數(shù)據(jù)流。
同時(shí),該數(shù)據(jù)流的標(biāo)識(shí)可以為五元組。
可以理解的是,第二交換機(jī)接收到上述兩種標(biāo)識(shí)后,根據(jù)這兩種標(biāo)識(shí)可以確定發(fā)送端口,通過(guò)該發(fā)送端口向該目標(biāo)端口發(fā)送該數(shù)據(jù)流。
可選的,本實(shí)施例還可以包括:該第一交換機(jī)分別獲取該第一交換機(jī)的各發(fā)送端口發(fā)送的總流量;當(dāng)?shù)谝话l(fā)送端口發(fā)送的總流量達(dá)到第三預(yù)設(shè)閾值,并且第二發(fā)送端口發(fā)送的總流量小于第四預(yù)設(shè)閾值時(shí);該第一交換機(jī)將通過(guò) 該第一發(fā)送端口發(fā)送的至少一條數(shù)據(jù)流調(diào)度到該第二發(fā)送端口,以使該第一發(fā)送端口調(diào)整后的總流量小于該第三預(yù)設(shè)閾值,并使該第二發(fā)送端口調(diào)整后的總流量小于該第四預(yù)設(shè)閾值。采用上述方法,可以解決第一交換機(jī)的第一發(fā)送端口的擁塞問(wèn)題。
可選的,本實(shí)施例還可以包括:該第一交換機(jī)分別獲取該第一交換機(jī)與多個(gè)上一層級(jí)交換機(jī)通信的各接收端口接收的總流量,該多個(gè)上一層級(jí)交換機(jī)包括該第三交換機(jī),該第一交換機(jī)與該第三交換機(jī)通信的接收端口為該各接收端口中總流量最大的端口;若該第一交換機(jī)與該第三交換機(jī)通信的接收端口接收的總流量與參考流量的差值大于第二預(yù)設(shè)閾值,則該第一交換機(jī)確定該第三交換機(jī)的各下行鏈路負(fù)載不均衡,并確定該目標(biāo)端口;該參考流量為該第一交換機(jī)的各接收端口接收的最小總流量。采用上述方法,可以解決負(fù)載不均衡的問(wèn)題。
本實(shí)施例中,第一交換機(jī)獲取與第三交換機(jī)通信的接收端口接收的總流量,其中該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí),并根據(jù)該總流量判斷第三交換機(jī)的發(fā)送端口是否擁塞,當(dāng)處于擁塞時(shí),確定目標(biāo)端口,該目標(biāo)端口為從該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的端口,說(shuō)明需要進(jìn)行調(diào)整的數(shù)據(jù)流來(lái)自第二交換機(jī)的數(shù)據(jù)流,第一交換機(jī)通過(guò)向第二交換機(jī)發(fā)送調(diào)整消息來(lái)告知該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí),使第二交換機(jī)向該目標(biāo)端口發(fā)送該數(shù)據(jù)流。由此可見(jiàn),本發(fā)明能夠提高數(shù)據(jù)中心網(wǎng)絡(luò)利用率。
為了便于理解,下面對(duì)本發(fā)明實(shí)施例中的處理網(wǎng)絡(luò)擁塞的方法進(jìn)行詳細(xì)描述,請(qǐng)參閱圖3,本發(fā)明實(shí)施例中另一處理網(wǎng)絡(luò)擁塞的方法包括:
201、第一交換機(jī)獲取與第三交換機(jī)通信的接收端口接收的總流量,該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;
本實(shí)施例中,在傳輸流量時(shí),上層交換機(jī)的發(fā)送端口發(fā)送的流量等于與該上層交換機(jī)的發(fā)送端口對(duì)接的下層交換機(jī)的接收端口接收的流量,因此第一交換機(jī)獲取與第三交換機(jī)通信的接收端口接收的總流量,也就確定了第三交換機(jī)的發(fā)送端口發(fā)送的流量,其中該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù) 流占用的流量;該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí)。
由此可見(jiàn),若需要判斷上述第三交換機(jī)的發(fā)送端口是否擁塞,則通過(guò)檢測(cè)上述第一交換機(jī)的接收端口的總流量即可。
需要說(shuō)明的是,可以在一個(gè)預(yù)置周期內(nèi)周期性的獲取上述第一交換機(jī)的接收端口的總流量,該預(yù)置周期可以為1ms,還可以為其他數(shù)值,具體此處不作限定。
可以理解的是,為了描述的簡(jiǎn)潔,本實(shí)施例中是通過(guò)一個(gè)接收端口來(lái)進(jìn)行說(shuō)明的,也可以擴(kuò)展到通過(guò)多個(gè)接收端口來(lái)進(jìn)行說(shuō)明,所采用的方法是類(lèi)似的,此處不作限定。
202、若該總流量達(dá)到該第三交換機(jī)的發(fā)送端口的容量的第一預(yù)設(shè)閾值,則該第一交換機(jī)確定該第三交換機(jī)的發(fā)送端口擁塞,并確定目標(biāo)端口,該目標(biāo)端口為該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的另一端口;
若該總流量達(dá)到該第三交換機(jī)的發(fā)送端口的容量的第一預(yù)設(shè)閾值,則該第一交換機(jī)確定該第三交換機(jī)的發(fā)送端口擁塞,并確定目標(biāo)端口,該目標(biāo)端口為該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的另一端口。
上述第一預(yù)設(shè)閾值可以為99%或90%,還可以人為設(shè)置其他數(shù)值,具體此處不作限定。
其中該數(shù)據(jù)流為該總流量包括的數(shù)據(jù)流中占用最大流量的數(shù)據(jù)流。
203、該第一交換機(jī)向該第二交換機(jī)發(fā)送調(diào)整消息,該調(diào)整消息中攜帶該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí)。
該第一交換機(jī)構(gòu)造調(diào)整消息,該調(diào)整消息中攜帶該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí),并通過(guò)用戶數(shù)據(jù)報(bào)文協(xié)議(UDP,User Datagram Protocol)向第二交換機(jī)發(fā)送調(diào)整消息。還可以通過(guò)其他協(xié)議來(lái)發(fā)送調(diào)整消息,不限定于UDP協(xié)議,具體此處不作限定。
同時(shí),該數(shù)據(jù)流的標(biāo)識(shí)可以為五元組。
可以理解的是,第二交換機(jī)接收到上述兩種標(biāo)識(shí)后,根據(jù)這兩種標(biāo)識(shí)可以確定發(fā)送端口,通過(guò)該發(fā)送端口向該目標(biāo)端口發(fā)送該數(shù)據(jù)流。
本實(shí)施例中,提供了一種通過(guò)該第一交換機(jī)的接收端口接收的流量達(dá)到 該第三交換機(jī)的發(fā)送端口的容量的第一預(yù)設(shè)閾值來(lái)確定第三交換機(jī)的發(fā)送端口擁塞的方法,并確定該數(shù)據(jù)流為該總流量包括的數(shù)據(jù)流中占用最大流量的數(shù)據(jù)流,以及通過(guò)UDP協(xié)議向第二交換機(jī)發(fā)送調(diào)整消息,提高了方案的選擇性。
上面從第一交換機(jī)的角度對(duì)本發(fā)明實(shí)施例中的處理網(wǎng)絡(luò)擁塞的方法進(jìn)行了描述,下面從第二交換機(jī)的角度對(duì)本發(fā)明實(shí)施例中的處理網(wǎng)絡(luò)擁塞的方法進(jìn)行描述:
請(qǐng)參閱圖4,本發(fā)明實(shí)施例中一種處理網(wǎng)絡(luò)擁塞的方法包括:
301、在第二交換機(jī)通過(guò)與第三交換機(jī)通信的第一發(fā)送端口向第一交換機(jī)的接收端口發(fā)送數(shù)據(jù)流的過(guò)程中,該第二交換機(jī)接收該第一交換機(jī)通過(guò)該第三交換機(jī)發(fā)送的調(diào)整消息,該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí),該調(diào)整消息包括該數(shù)據(jù)流的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí);該目標(biāo)端口為該第一交換機(jī)的各接收端口中能夠接收該數(shù)據(jù)流的另一端口;
本實(shí)施例中,在第二交換機(jī)通過(guò)與第三交換機(jī)通信的第一發(fā)送端口向第一交換機(jī)發(fā)送數(shù)據(jù)流的過(guò)程中,第一交換機(jī)通過(guò)該第三交換機(jī)發(fā)送調(diào)整消息,第二交換機(jī)接收該調(diào)整消息,其中該調(diào)整消息包括該數(shù)據(jù)流的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí),該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí),該目標(biāo)端口為該第一交換機(jī)的各接收端口中能夠接收該數(shù)據(jù)流的另一端口。
該調(diào)整消息可以為通過(guò)UDP協(xié)議向第二交換機(jī)發(fā)送調(diào)整消息,還可以通過(guò)其他協(xié)議,具體此處不作限定。
302、該第二交換機(jī)根據(jù)該調(diào)整消息,確定與該目標(biāo)端口對(duì)應(yīng)的第二發(fā)送端口,該第二發(fā)送端口為該第二交換機(jī)與第四交換機(jī)通信的端口;該第四交換機(jī)與該第三交換機(jī)位于同一層級(jí);
該第二交換機(jī)根據(jù)該調(diào)整消息中的數(shù)據(jù)流的標(biāo)識(shí)和目標(biāo)端口的標(biāo)識(shí),確定與該目標(biāo)端口對(duì)應(yīng)的第二發(fā)送端口,該第二發(fā)送端口為該第二交換機(jī)與第四交換機(jī)通信的端口;該第四交換機(jī)與該第三交換機(jī)位于同一層級(jí)。
需要說(shuō)明的是,可以采用多種方法確定與該目標(biāo)端口對(duì)應(yīng)的第二發(fā)送端口,例如:當(dāng)該目標(biāo)端口的標(biāo)識(shí)為端口號(hào)時(shí),確定該第二交換機(jī)的發(fā)送端口中具有該端口號(hào)的端口為該第二發(fā)送端口。
303、該第二交換機(jī)通過(guò)該第二發(fā)送端口發(fā)送該數(shù)據(jù)流,以使該數(shù)據(jù)流通過(guò)該第四交換機(jī)到達(dá)該目標(biāo)端口。
在第二發(fā)送端口確定后,該第二交換機(jī)通過(guò)該第二發(fā)送端口發(fā)送該數(shù)據(jù)流,以使該數(shù)據(jù)流通過(guò)該第四交換機(jī)到達(dá)該目標(biāo)端口。
本實(shí)施例中,第二交換機(jī)通過(guò)調(diào)整消息中的數(shù)據(jù)流的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí),將該數(shù)據(jù)流通過(guò)其他發(fā)送端口發(fā)送,并通過(guò)不同的上層交換機(jī)發(fā)送到目標(biāo)端口,提供了一種對(duì)數(shù)據(jù)流進(jìn)行調(diào)整的方法。
為了便于理解,下面對(duì)本發(fā)明實(shí)施例中的處理網(wǎng)絡(luò)擁塞的方法進(jìn)行詳細(xì)描述,請(qǐng)參閱圖5,本發(fā)明實(shí)施例中另一處理網(wǎng)絡(luò)擁塞的方法包括:
401、在第二交換機(jī)通過(guò)與第三交換機(jī)通信的第一發(fā)送端口向第一交換機(jī)的接收端口發(fā)送數(shù)據(jù)流的過(guò)程中,該第二交換機(jī)接收該第一交換機(jī)通過(guò)該第三交換機(jī)發(fā)送的調(diào)整消息,該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí),該調(diào)整消息包括該數(shù)據(jù)流的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí),該目標(biāo)端口為該第一交換機(jī)的各接收端口中能夠接收該數(shù)據(jù)流的另一端口;
本實(shí)施例中,步驟401與步驟301類(lèi)似,此處不再贅述。
402、若該目標(biāo)端口的標(biāo)識(shí)為端口號(hào),且該第一交換機(jī)和該第二交換機(jī)的相同端口號(hào)的端口連接到同一個(gè)上一層級(jí)交換機(jī)時(shí),該第二交換機(jī)確定該第二交換機(jī)的發(fā)送端口中具有該端口號(hào)的端口為該第二發(fā)送端口,該第二發(fā)送端口為該第二交換機(jī)與第四交換機(jī)通信的端口;
當(dāng)該目標(biāo)端口的標(biāo)識(shí)為端口號(hào)時(shí),確定該目標(biāo)端口的端口號(hào),當(dāng)該第一交換機(jī)和該第二交換機(jī)的相同端口號(hào)的端口連接到同一個(gè)上一層級(jí)交換機(jī)時(shí),在第二交換機(jī)的發(fā)送端口中確定具有該端口號(hào)的端口作為第二發(fā)送端口,該第二發(fā)送端口為該第二交換機(jī)與該第四交換機(jī)通信的端口,該第四交換機(jī)與該第三交換機(jī)位于同一層級(jí)。
可選的,步驟402還可以為:
該第二交換機(jī)根據(jù)該目標(biāo)端口的標(biāo)識(shí)查找對(duì)應(yīng)關(guān)系表,得到包括該目標(biāo)端口的標(biāo)識(shí)的表項(xiàng),根據(jù)該表項(xiàng)得到該第二發(fā)送端口;該對(duì)應(yīng)關(guān)系表的每個(gè)表項(xiàng)包括發(fā)送端口的標(biāo)識(shí)、上一層級(jí)交換機(jī)的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;
此時(shí)該第一交換機(jī)和該第二交換機(jī)不一定是通過(guò)相同的端口號(hào)的端口連接到同一個(gè)上一層級(jí)交換機(jī),通過(guò)對(duì)應(yīng)關(guān)系表中的表項(xiàng),其中該表項(xiàng)包括發(fā)送端口的標(biāo)識(shí),上一層級(jí)交換機(jī)的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,可以確定該目標(biāo)端口對(duì)應(yīng)的第二發(fā)送端口。
403、該第二交換機(jī)通過(guò)該第二發(fā)送端口發(fā)送該數(shù)據(jù)流,以使該數(shù)據(jù)流通過(guò)該第四交換機(jī)到達(dá)該目標(biāo)端口。
在第二發(fā)送端口確定后,該第二交換機(jī)通過(guò)該第二發(fā)送端口發(fā)送該數(shù)據(jù)流,以使該數(shù)據(jù)流通過(guò)該第四交換機(jī)到達(dá)該目標(biāo)端口。
本實(shí)施例提供了兩種確定第二發(fā)送端口的方法,增加了方案的選擇性。
為了便于理解,下面以一實(shí)際的應(yīng)用場(chǎng)景對(duì)本發(fā)明實(shí)施例中的處理網(wǎng)絡(luò)擁塞的方法進(jìn)行描述:
交換機(jī)A以1ms為周期,周期性的檢查交換機(jī)A的接收端口a1的總流量,并且確定總流量達(dá)到了與該接收端口a1對(duì)接的交換機(jī)C的發(fā)送端口c1的容量的99%,超過(guò)了發(fā)送端口c1的容量的預(yù)設(shè)閾值95%,由于接受端口a1接收的流量等于發(fā)送端口c1發(fā)送的流量,因此發(fā)送端口c1處于擁塞狀態(tài)。交換機(jī)A挑選該接收端口a1上的未被設(shè)置調(diào)整標(biāo)記的最大的流作為目標(biāo)數(shù)據(jù)流(其中該目標(biāo)數(shù)據(jù)流的源端為交換機(jī)B,交換機(jī)B通過(guò)交換機(jī)C向交換機(jī)A發(fā)送該目標(biāo)數(shù)據(jù)流,交換機(jī)A與交換機(jī)B位于交換機(jī)C的下一層級(jí)),并給該目標(biāo)數(shù)據(jù)流設(shè)置已調(diào)整標(biāo)記,同時(shí)在該交換機(jī)A的各接收端口中選取能夠接收該目標(biāo)數(shù)據(jù)流的接收端口a2。交換機(jī)A確定接收端口a2后,構(gòu)造調(diào)整消息,該調(diào)整消息中攜帶著目標(biāo)數(shù)據(jù)流的標(biāo)識(shí)以及該接收端口a2的標(biāo)識(shí)。該調(diào)整消息通過(guò)UDP承載,使用特殊的UDP端口號(hào),將調(diào)整消息發(fā)送至交換機(jī)B。交換機(jī)B接收到調(diào)整消息后,確定該接收端口a2的標(biāo)識(shí)為端口號(hào)2,并確定該交換機(jī)A和交換機(jī)B的相同端口號(hào)的端口連接到交換機(jī)C,交換機(jī)B在交換機(jī)B的發(fā)送端口中確定具有端口號(hào)2的發(fā)送端口b2,該發(fā)送端口b2為該交換機(jī)B與交換機(jī)D通信的端口,該交換機(jī)D與交換機(jī)C位于同一層級(jí),該交換機(jī)B通過(guò)發(fā)送端口b2發(fā)送該目標(biāo)數(shù)據(jù)流,以使該目標(biāo)數(shù)據(jù)流通過(guò)該交換機(jī)D到達(dá)該接收端口a2。
下面介紹本發(fā)明實(shí)施例中的交換機(jī),該交換機(jī)作為第一交換機(jī)使用,請(qǐng) 參閱圖6,本發(fā)明中交換機(jī)的一個(gè)實(shí)施例包括:
第一獲取單元501,用于獲取與第三交換機(jī)通信的接收端口接收的總流量,該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí);
確定單元502,用于當(dāng)根據(jù)該第一獲取單元501獲取到的該總流量確定該第三交換機(jī)的發(fā)送端口擁塞時(shí),確定目標(biāo)端口;該目標(biāo)端口為從該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的另一端口;
發(fā)送單元503,用于在確定單元502確定該第三交換機(jī)的發(fā)送端口擁塞,并確定目標(biāo)端口后,向第二交換機(jī)發(fā)送調(diào)整消息,在該調(diào)整消息中攜帶該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí),該調(diào)整消息用于使該第二交換機(jī)向該目標(biāo)端口發(fā)送該數(shù)據(jù)流。
其中確定單元502具體用于若該總流量達(dá)到該第三交換機(jī)的發(fā)送端口的容量的第一預(yù)設(shè)閾值,則確定該第三交換機(jī)的發(fā)送端口擁塞,并確定該目標(biāo)端口;該目標(biāo)端口為從該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的另一端口,該數(shù)據(jù)流為該總流量包括的數(shù)據(jù)流中占用最大流量的數(shù)據(jù)流。
可選的,本實(shí)施例還包括:
第二獲取單元504,用于分別獲取該第一交換機(jī)與多個(gè)上一層級(jí)交換機(jī)通信的各接收端口接收的總流量,該多個(gè)上一層級(jí)交換機(jī)包括該第三交換機(jī),該第一交換機(jī)與該第三交換機(jī)通信的接收端口為該各接收端口中總流量最大的端口;
其中確定單元502還可以具體用于若該第一交換機(jī)與該第三交換機(jī)通信的接收端口接收的總流量與參考流量的差值大于第二預(yù)設(shè)閾值,則該第一交換機(jī)確定該第三交換機(jī)的各下行鏈路負(fù)載不均衡,并確定該目標(biāo)端口;該參考流量為該第一交換機(jī)的各接收端口接收的最小總流量。
可選的,本實(shí)施例還包括:
第三獲取單元505,用于分別獲取該第一交換機(jī)的各發(fā)送端口發(fā)送的總流量;
調(diào)度單元506,用于當(dāng)?shù)谝话l(fā)送端口發(fā)送的總流量達(dá)到第三預(yù)設(shè)閾值,并且第二發(fā)送端口發(fā)送的總流量小于第四預(yù)設(shè)閾值時(shí);將通過(guò)該第一發(fā)送端口 發(fā)送的至少一條數(shù)據(jù)流調(diào)度到該第二發(fā)送端口,以使該第一發(fā)送端口調(diào)整后的總流量小于該第三預(yù)設(shè)閾值,并使該第二發(fā)送端口調(diào)整后的總流量小于該第四預(yù)設(shè)閾值。
本實(shí)施例中,第一獲取單元501獲取與第三交換機(jī)通信的接收端口接收的總流量,其中該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí),并根據(jù)該總流量判斷第三交換機(jī)的發(fā)送端口是否擁塞,當(dāng)確定單元502確定該發(fā)送端口處于擁塞時(shí),確定目標(biāo)端口,該目標(biāo)端口為從該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的端口,說(shuō)明需要進(jìn)行調(diào)整的數(shù)據(jù)流來(lái)自第二交換機(jī)的數(shù)據(jù)流,發(fā)送單元503通過(guò)向第二交換機(jī)發(fā)送調(diào)整消息來(lái)告知該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí),使第二交換機(jī)向該目標(biāo)端口發(fā)送該數(shù)據(jù)流。另外,本實(shí)施例還可以解決負(fù)載不均衡的問(wèn)題,以及第一交換機(jī)的第一發(fā)送端口的擁塞問(wèn)題。由此可見(jiàn),本發(fā)明能夠提高數(shù)據(jù)中心網(wǎng)絡(luò)利用率。
另外,本實(shí)施例提供了一種通過(guò)該第一交換機(jī)的接收端口接收的流量達(dá)到該第三交換機(jī)的發(fā)送端口的容量的第一預(yù)設(shè)閾值來(lái)確定第三交換機(jī)的發(fā)送端口擁塞的方法,并確定該數(shù)據(jù)流為該總流量包括的數(shù)據(jù)流中占用最大流量的數(shù)據(jù)流,提高了方案的選擇性。
下面介紹本發(fā)明實(shí)施例中的交換機(jī),該交換機(jī)作為第二交換機(jī)使用,請(qǐng)參閱圖7,本發(fā)明中交換機(jī)的一個(gè)實(shí)施例包括:
接收單元601,用于在第二交換機(jī)通過(guò)與第三交換機(jī)通信的第一發(fā)送端口向第一交換機(jī)的接收端口發(fā)送數(shù)據(jù)流的過(guò)程中,接收該第一交換機(jī)通過(guò)該第三交換機(jī)發(fā)送的調(diào)整消息,該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí),該調(diào)整消息包括該數(shù)據(jù)流的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí);該目標(biāo)端口為該第一交換機(jī)的各接收端口中能夠接收該數(shù)據(jù)流的另一端口;
確定單元602,用于根據(jù)該接收單元601接收的該調(diào)整消息,確定與該目標(biāo)端口對(duì)應(yīng)的第二發(fā)送端口,該第二發(fā)送端口為該第二交換機(jī)與第四交換機(jī)通信的端口;該第四交換機(jī)與該第三交換機(jī)位于同一層級(jí);
發(fā)送單元603,用于通過(guò)該確定單元602確定的第二發(fā)送端口發(fā)送該數(shù)據(jù)流,以使該數(shù)據(jù)流通過(guò)該第四交換機(jī)到達(dá)該目標(biāo)端口。
其中若該目標(biāo)端口的標(biāo)識(shí)為端口號(hào),且該第一交換機(jī)與該第二交換機(jī)的相同端口號(hào)的端口連接到同一個(gè)上一層級(jí)交換機(jī)時(shí),該確定單元602具體用于確定該第二交換機(jī)的發(fā)送端口中具有該端口號(hào)的端口為該第二發(fā)送端口;
本實(shí)施例中確定單元602還可以具體用于根據(jù)該目標(biāo)端口的標(biāo)識(shí)查找對(duì)應(yīng)關(guān)系表,得到包括該目標(biāo)端口的標(biāo)識(shí)的表項(xiàng),根據(jù)該表項(xiàng)得到該第二發(fā)送端口;該對(duì)應(yīng)關(guān)系表的每個(gè)表項(xiàng)包括發(fā)送端口的標(biāo)識(shí)、上一層級(jí)交換機(jī)的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
本實(shí)施例中,第二交換機(jī)通過(guò)調(diào)整消息中的數(shù)據(jù)流的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí),將該數(shù)據(jù)流通過(guò)其他發(fā)送端口發(fā)送,并通過(guò)不同的上層交換機(jī)發(fā)送到目標(biāo)端口,提供了一種對(duì)數(shù)據(jù)流進(jìn)行調(diào)整的方法。
另外,本實(shí)施例提供了兩種確定第二發(fā)送端口的方法,增加了方案的選擇性。
為了便于理解,下面以一實(shí)際的應(yīng)用場(chǎng)景對(duì)本發(fā)明中交換機(jī)各單元間的交互進(jìn)行描述:
在傳輸流量時(shí),上層交換機(jī)的發(fā)送端口發(fā)送的流量等于與該上層交換機(jī)的發(fā)送端口對(duì)接的下層交換機(jī)的接收端口接收的流量,因此第一交換機(jī)的第一獲取單元501獲取與第三交換機(jī)通信的接收端口接收的總流量,也就確定了第三交換機(jī)的發(fā)送端口發(fā)送的流量,其中該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí);由此可見(jiàn),若需要判斷上述第三交換機(jī)的發(fā)送端口是否擁塞,則通過(guò)檢測(cè)上述第一交換機(jī)的接收端口的總流量即可;若該總流量達(dá)到該第三交換機(jī)的發(fā)送端口的容量的第一預(yù)設(shè)閾值,則確定單元502確定該第三交換機(jī)的發(fā)送端口擁塞,并確定目標(biāo)端口,該目標(biāo)端口為該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的另一端口;上述第一預(yù)設(shè)閾值可以為99%或90%,還可以人為設(shè)置其他數(shù)值;其中該數(shù)據(jù)流為該總流量包括的數(shù)據(jù)流中占用最大流量的數(shù)據(jù)流。該第一交換機(jī)構(gòu)造調(diào)整消息,該調(diào)整消息中攜帶該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí),發(fā)送單元503通過(guò)UDP向第二交換機(jī)發(fā)送調(diào)整消息。第二交換機(jī)的接收單元601接收該調(diào)整消息,確定單元602根據(jù)該調(diào)整消息中的數(shù)據(jù)流的標(biāo)識(shí)和目標(biāo)端口的標(biāo)識(shí),確定與該目標(biāo)端口對(duì)應(yīng) 的第二發(fā)送端口,該第二發(fā)送端口為該第二交換機(jī)與第四交換機(jī)通信的端口;該第四交換機(jī)與該第三交換機(jī)位于同一層級(jí)。當(dāng)該目標(biāo)端口的標(biāo)識(shí)為端口號(hào)時(shí),確定該目標(biāo)端口的端口號(hào),當(dāng)該第一交換機(jī)和該第二交換機(jī)的相同端口號(hào)的端口連接到同一個(gè)上一層級(jí)交換機(jī)時(shí),確定單元602在第二交換機(jī)的發(fā)送端口中確定具有該端口號(hào)的端口作為第二發(fā)送端口,該第二發(fā)送端口為該第二交換機(jī)與該第四交換機(jī)通信的端口,該第四交換機(jī)與該第三交換機(jī)位于同一層級(jí)。在第二發(fā)送端口確定后,發(fā)送單元603通過(guò)該第二發(fā)送端口發(fā)送該數(shù)據(jù)流,以使該數(shù)據(jù)流通過(guò)該第四交換機(jī)到達(dá)該目標(biāo)端口。
本發(fā)明實(shí)施例還提供一種交換機(jī),該交換機(jī)作為第一交換機(jī)使用,如圖8所示,包括:接收器701、發(fā)射器702、處理器703;
其中,上述處理器703,用于控制執(zhí)行:獲取與第三交換機(jī)通信的接收端口接收的總流量,該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí);當(dāng)該第一交換機(jī)根據(jù)該總流量確定該第三交換機(jī)的發(fā)送端口擁塞時(shí),確定目標(biāo)端口;該目標(biāo)端口為從該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的另一端口;該第一交換機(jī)向該第二交換機(jī)發(fā)送調(diào)整消息,該調(diào)整消息中攜帶該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí),該調(diào)整消息用于使該第二交換機(jī)向該目標(biāo)端口發(fā)送該數(shù)據(jù)流。
本實(shí)施例中,第一交換機(jī)獲取與第三交換機(jī)通信的接收端口接收的總流量,其中該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí),并根據(jù)該總流量判斷第三交換機(jī)的發(fā)送端口是否擁塞,當(dāng)處于擁塞時(shí),確定目標(biāo)端口,該目標(biāo)端口為從該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的端口,說(shuō)明需要進(jìn)行調(diào)整的數(shù)據(jù)流來(lái)自第二交換機(jī)的數(shù)據(jù)流,第一交換機(jī)通過(guò)向第二交換機(jī)發(fā)送調(diào)整消息來(lái)告知該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí),使第二交換機(jī)向該目標(biāo)端口發(fā)送該數(shù)據(jù)流。由此可見(jiàn),本發(fā)明能夠提高數(shù)據(jù)中心網(wǎng)絡(luò)利用率。
本實(shí)施例還提供了根據(jù)該總流量確定該第三交換機(jī)的發(fā)送端口擁塞的方案,如下:上述處理器703,具體用于控制執(zhí)行:若該總流量達(dá)到該第三交換 機(jī)的發(fā)送端口的容量的第一預(yù)設(shè)閾值,則該第一交換機(jī)確定該第三交換機(jī)的發(fā)送端口擁塞。
本發(fā)明實(shí)施例還提供一種交換機(jī),該交換機(jī)作為第二交換機(jī)使用,如圖8所示,包括:接收器701、發(fā)射器702、處理器703;
其中,上述處理器703,用于控制執(zhí)行:在第二交換機(jī)通過(guò)與第三交換機(jī)通信的第一發(fā)送端口向第一交換機(jī)的接收端口發(fā)送數(shù)據(jù)流的過(guò)程中,該第二交換機(jī)接收該第一交換機(jī)通過(guò)該第三交換機(jī)發(fā)送的調(diào)整消息,該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí),該調(diào)整消息包括該數(shù)據(jù)流的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí);該目標(biāo)端口為該第一交換機(jī)的各接收端口中能夠接收該數(shù)據(jù)流的另一端口;該第二交換機(jī)根據(jù)該調(diào)整消息,確定與該目標(biāo)端口對(duì)應(yīng)的第二發(fā)送端口,該第二發(fā)送端口為該第二交換機(jī)與第四交換機(jī)通信的端口;該第四交換機(jī)與該第三交換機(jī)位于同一層級(jí);該第二交換機(jī)通過(guò)該第二發(fā)送端口發(fā)送該數(shù)據(jù)流,以使該數(shù)據(jù)流通過(guò)該第四交換機(jī)到達(dá)該目標(biāo)端口。
本實(shí)施例還提供了確定第二發(fā)送端口的具體實(shí)現(xiàn)方案,如下:上述處理器703,具體用于控制執(zhí)行:當(dāng)該目標(biāo)端口的標(biāo)識(shí)為端口號(hào),且該第一交換機(jī)和該第二交換機(jī)的相同端口號(hào)的端口連接到同一個(gè)上一層級(jí)交換機(jī)時(shí),該第二交換機(jī)根據(jù)該調(diào)整消息,確定與該目標(biāo)端口對(duì)應(yīng)的第二發(fā)送端口包括:該第二交換機(jī)確定該第二交換機(jī)的發(fā)送端口中具有該端口號(hào)的端口為該第二發(fā)送端口。
本實(shí)施例還提供了另一種確定第二發(fā)送端口的具體實(shí)現(xiàn)方案,如下:上述處理器703,具體用于控制執(zhí)行:該第二交換機(jī)根據(jù)該目標(biāo)端口的標(biāo)識(shí)查找對(duì)應(yīng)關(guān)系表,得到包括該目標(biāo)端口的標(biāo)識(shí)的表項(xiàng),根據(jù)該表項(xiàng)得到該第二發(fā)送端口;該對(duì)應(yīng)關(guān)系表的每個(gè)表項(xiàng)包括發(fā)送端口的標(biāo)識(shí)、上一層級(jí)交換機(jī)的標(biāo)識(shí)以及目標(biāo)端口的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
本發(fā)明實(shí)施例還提供一種交換機(jī),請(qǐng)參閱圖9,本發(fā)明實(shí)施例中交換機(jī)另一實(shí)施例包括:
圖9是本發(fā)明實(shí)施例提供的一種交換機(jī)結(jié)構(gòu)示意圖,該交換機(jī)800可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個(gè)或一個(gè)以上中央處理器 (central processing units,CPU)801(例如,一個(gè)或一個(gè)以上處理器),一個(gè)或一個(gè)以上存儲(chǔ)應(yīng)用程序802或數(shù)據(jù)803的存儲(chǔ)介質(zhì)804(例如一個(gè)或一個(gè)以上海量存儲(chǔ)設(shè)備)。其中,存儲(chǔ)介質(zhì)804可以是短暫存儲(chǔ)或持久存儲(chǔ)。存儲(chǔ)在存儲(chǔ)介質(zhì)804的程序可以包括一個(gè)或一個(gè)以上模塊(圖示沒(méi)標(biāo)出),每個(gè)模塊可以包括對(duì)交換機(jī)中的一系列指令操作。更進(jìn)一步地,中央處理器801可以設(shè)置為與存儲(chǔ)介質(zhì)804通信,在交換機(jī)800上執(zhí)行存儲(chǔ)介質(zhì)804中的一系列指令操作。
交換機(jī)800還可以包括一個(gè)或一個(gè)以上電源805,一個(gè)或一個(gè)以上有線或無(wú)線網(wǎng)絡(luò)接口806,一個(gè)或一個(gè)以上輸輸出接口807,和/或,一個(gè)或一個(gè)以上操作系統(tǒng)808,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM等等。
上述實(shí)施例中由交換機(jī)所執(zhí)行的步驟可以基于該圖9所示的交換機(jī)結(jié)構(gòu)。
本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
第一交換機(jī)獲取與第三交換機(jī)通信的接收端口接收的總流量,其中該總流量中包括第二交換機(jī)發(fā)送的數(shù)據(jù)流占用的流量;該第一交換機(jī)與該第二交換機(jī)位于該第三交換機(jī)的下一層級(jí),并根據(jù)該總流量判斷第三交換機(jī)的發(fā)送端口是否擁塞,當(dāng)處于擁塞時(shí),確定目標(biāo)端口,該目標(biāo)端口為從該第一交換機(jī)的各接收端口中選取的能夠接收該數(shù)據(jù)流的端口,說(shuō)明需要進(jìn)行調(diào)整的數(shù)據(jù)流來(lái)自第二交換機(jī)的數(shù)據(jù)流,第一交換機(jī)通過(guò)向第二交換機(jī)發(fā)送調(diào)整消息來(lái)告知該數(shù)據(jù)流的標(biāo)識(shí)以及該目標(biāo)端口的標(biāo)識(shí),使第二交換機(jī)向該目標(biāo)端口發(fā)送該數(shù)據(jù)流。由此可見(jiàn),本發(fā)明能夠提高數(shù)據(jù)中心網(wǎng)絡(luò)利用率。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間 的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。