本發(fā)明屬于數(shù)據(jù)中心網(wǎng)絡技術(shù)領域,涉及一種基于Fat-Tree結(jié)構(gòu)的數(shù)據(jù)中心網(wǎng)絡路由方法。
背景技術(shù):
隨著云計算、大數(shù)據(jù)等互聯(lián)網(wǎng)應用規(guī)模不斷擴大,數(shù)據(jù)中心網(wǎng)絡流量呈現(xiàn)迅速增長的態(tài)勢,互聯(lián)網(wǎng)業(yè)務對數(shù)據(jù)中心提出了越來越高的傳輸質(zhì)量要求,包括大帶寬、低時延、安全保障、靈活調(diào)度等。以Fat-Tree為代表的等價多路徑網(wǎng)絡結(jié)構(gòu)的出現(xiàn)為數(shù)據(jù)中心網(wǎng)絡服務提供了新的發(fā)展機遇,多路徑網(wǎng)絡拓撲利用額外的冗余鏈路帶寬,能夠克服由于用戶數(shù)量增加而帶來的服務瓶頸。
數(shù)據(jù)中心網(wǎng)絡中大部分的流量是由小數(shù)據(jù)流組成的。近90%的數(shù)據(jù)流大小不超過1MB,持續(xù)時間不超過10秒,而90%的數(shù)據(jù)流量都集中在大于100MB的大數(shù)據(jù)流中,小數(shù)據(jù)流對時延敏感而大數(shù)據(jù)流對吞吐量較為敏感。根據(jù)這些特點,目前針對Fat-Tree結(jié)構(gòu)的數(shù)據(jù)中心網(wǎng)絡路由和流調(diào)度問題,主要的研究方案有:1)采用固定的轉(zhuǎn)發(fā)規(guī)則,根據(jù)源地址或目的地址將流映射到固定的路徑,例如Fat-tree結(jié)構(gòu)使用兩層查找表的查找方式,使每個主機之間的流量轉(zhuǎn)發(fā)路徑都是固定的,此種方法快速、便捷,但是無法保證網(wǎng)絡的負載均衡,也沒有考慮主機之間的鏈路承載情況,無法動態(tài)的對流作出調(diào)度;2)采用隨機轉(zhuǎn)發(fā)的方式,將流量隨機轉(zhuǎn)發(fā)給中間節(jié)點,再由中間節(jié)點完成路由。例如ECMP算法采用隨機的流量分發(fā)方式來均衡網(wǎng)絡流量分配,采用哈希的映射方法,將每條數(shù)據(jù)流映射到某一條路徑上。但由于數(shù)據(jù)中心中數(shù)據(jù)流的大小以及網(wǎng)絡鏈路帶寬使用往往不盡相同,所以這種方式對突發(fā)大數(shù)據(jù)流易造成擁塞,導致增加數(shù)據(jù)流的傳輸時延,降低網(wǎng)絡應用的服務質(zhì)量;3)使用SDN技術(shù)對整個數(shù)據(jù)中心網(wǎng)絡資源作出全局判斷,利用SDN集中控制的思想和技術(shù)對數(shù)據(jù)中心網(wǎng)絡業(yè)務流進行路由選路。文章“Flow scheduling cost based congestion control routing algorithm for data center network on software defined network architecture”提出一種基于流調(diào)度代價最小化的擁塞控制算法,對擁塞鏈路上大流的每條等價路徑進行路徑開銷權(quán)重的計算,選擇權(quán)重最小的路徑作為可用調(diào)度路徑;然后根據(jù)調(diào)度后的路徑開銷變化量和流占用帶寬共同定義流調(diào)度代價,最終選擇調(diào)度代價最小的流進行調(diào)度。這種方法能夠降低擁塞鏈路上的負荷量,一定程度上提高了鏈路利用率。但是,文章只采用了全路徑重路由方式,而未考慮局部重路由的情況,所以這種方式得出的流調(diào)度代價不一定是最低的,而對擁塞路徑上的大流進行局部路由的方式可能是更優(yōu)的。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種基于Fat-Tree結(jié)構(gòu)的數(shù)據(jù)中心網(wǎng)絡路由方法,該方法利用全局網(wǎng)絡信息,結(jié)合Fat-Tree拓撲結(jié)構(gòu)的特點,動態(tài)地調(diào)整轉(zhuǎn)發(fā)策略。針對進入網(wǎng)絡中的新流,為了充分利用網(wǎng)絡中的冗余鏈路和降低短數(shù)據(jù)流的傳輸時延,采用基于鏈路剩余帶寬和大流數(shù)目的動態(tài)負載均衡算法為數(shù)據(jù)流進行選路。而為了降低擁塞路徑上數(shù)據(jù)流傳輸?shù)膩G包率和轉(zhuǎn)發(fā)時延,對擁塞鏈路上的大流采用動態(tài)重路由算法,根據(jù)大流的截止時間和路徑上時延選擇可用路徑集,再根據(jù)交換機的隊列長度最短原則選擇使用全路徑重路由或局部重路由。
為達到上述目的,本發(fā)明提供如下技術(shù)方案:
一種基于Fat-Tree結(jié)構(gòu)的數(shù)據(jù)中心網(wǎng)絡路由方法,該方法包括以下步驟:
S1:使用支持OpenFlow協(xié)議的SDN交換機構(gòu)建k元Fat-Tree結(jié)構(gòu)的數(shù)據(jù)中心網(wǎng)絡,其中包括5k2/4臺OpenFlow交換機和k3/4臺主機;使用OpenFlow協(xié)議提供的接口周期性收集和更新網(wǎng)絡中所有鏈路信息和數(shù)據(jù)流信息,實現(xiàn)對網(wǎng)絡鏈路狀況和數(shù)據(jù)流傳輸情況的監(jiān)測;
S2:針對進入網(wǎng)絡中的新流,采用基于鏈路剩余帶寬和大流數(shù)目的DLB(動態(tài)負載均衡)算法進行路由;根據(jù)鏈路可用剩余帶寬和數(shù)據(jù)流請求帶寬選擇出可用路徑集,當存在具有多條最大可用剩余帶寬的路徑時,選擇大流數(shù)目更少的那條路徑作為路由路徑;
S3:當步驟S1中檢測到擁塞鏈路后,找出擁塞鏈路上的大流,逐一地、從大到小地采用DR(動態(tài)重路由)算法進行重新路由,直到鏈路不再擁塞為止;根據(jù)大流的截止時間和路徑上交換機的隊列長度選擇全路徑重路由或者局部重路由方式;
S4:控制器根據(jù)步驟S2和S3得出的路由路徑,由控制器的流表下發(fā)模塊將路徑轉(zhuǎn)換成相應的流表項,并以OFPT_FLOW_MOD消息的形式下發(fā)到路徑上的各個SDN交換機中。
進一步,在步驟S1中,所述的使用OpenFlow協(xié)議獲取鏈路狀態(tài)信息和數(shù)據(jù)流統(tǒng)計信息,具體包含以下步驟:
S11:根據(jù)Fat-Tree結(jié)構(gòu)特點,為了獲得網(wǎng)絡中所有鏈路狀態(tài)信息,控制器不需要向所有交換機發(fā)送查詢請求,只需向處在中間層的所有匯聚層交換機發(fā)送請求即可,因此,每隔T1周期控制器向所有匯聚層交換機發(fā)送物理端口統(tǒng)計請求,獲得該端口在這個周期內(nèi)發(fā)送和接收的總字節(jié)數(shù),將總字節(jié)數(shù)除以T1就可以得到該鏈路在該周期內(nèi)的傳輸帶寬;
S12:為了獲得最新的數(shù)據(jù)流統(tǒng)計信息,且為了避免重復查詢,控制器只需要向所有邊緣層交換機發(fā)送流的信息請求,因此,每隔T2周期控制器向所有邊緣層交換機發(fā)送流統(tǒng)計消息,獲取各條流的已傳輸字節(jié)數(shù);
S13:控制器將步驟S11中得到的各個端口所連鏈路的傳輸帶寬值存儲在結(jié)構(gòu){srcDpid,dstDpid,srcPort,dstPort,bandWidth}中,其中bandWidth即為該端口的已傳輸帶寬,根據(jù)Fat-Tree結(jié)構(gòu)特點,設定擁塞鏈路的閾值為鏈路總帶寬的75%,當bandWidth超過設定的閾值后該鏈路被標記為擁塞鏈路;
S14:控制器將步驟S12獲取到的流的已傳輸總字節(jié)數(shù)存儲在結(jié)構(gòu){srcIp,dstIp,srcPort,dstPort,protocol,totalBytes}中,其中totalBytes為流的已傳輸總字節(jié)數(shù),設定某條數(shù)據(jù)流為大流的閾值為100MB,當totalBytes超過設定的閾值時該流被標記為大流。
進一步,在步驟S2中,所述對進入網(wǎng)絡中的新流使用基于鏈路剩余帶寬和大流數(shù)目的DLB算法進行選路,具體包含以下步驟:
S21:控制器收到交換機發(fā)送的OFPT_PACKET_IN消息后,從中解析出數(shù)據(jù)流中首包包頭信息,并記錄下來;
S22:根據(jù)統(tǒng)計出的鏈路已傳輸帶寬和數(shù)據(jù)流大小,由設定的閾值計算出所有可達路徑集中每條路徑各條鏈路的可用剩余帶寬,將鏈路最小的可用帶寬作為該路徑的最大可用剩余帶寬,然后將每條路徑的可用帶寬與該數(shù)據(jù)流的請求帶寬進行比較,濾除可用帶寬小于請求帶寬的路徑,得出新的可用路徑集;
S23:當存在多條具有相同最大可用帶寬的路徑時,根據(jù)統(tǒng)計出的大流信息,選擇大流數(shù)目較少的那條路徑作為路由路徑,這樣能夠避免短數(shù)據(jù)流在大流數(shù)目較多的路徑上進行排隊而增加時延;如果沒有相同的則選擇可用帶寬最大的那條路徑。
進一步,在步驟S3中,當檢測到擁塞鏈路后,對擁塞鏈路上的大流使用基于截止時間和交換機隊列長度的DR算法進行重路由,具體步驟如下:
S31:根據(jù)步驟S2中所述方法為擁塞鏈路上的大流選擇可用路徑集;
S32:根據(jù)大流的截止時間,濾除可選路徑集中路徑時延大于截止時間的路徑,得出新的可用路徑集,所述路徑時延主要指排隊時延和處理時延之和;
S33:計算可用路徑集每條路徑上交換機的總緩沖隊列長度,根據(jù)隊列長度最短原則選擇全路徑重路由或局部重路由方式;緩沖隊列長度是由交換機周期性的上報至控制器,并由控制器計算出總緩沖隊列長度。
本發(fā)明的有益效果在于:本發(fā)明同時考慮了Fat-Tree結(jié)構(gòu)數(shù)據(jù)中心網(wǎng)絡中進入網(wǎng)絡的新數(shù)據(jù)流和擁塞鏈路上大流的調(diào)度,使用SDN提供的全網(wǎng)視圖動態(tài)地調(diào)整轉(zhuǎn)發(fā)策略,對于新流采用動態(tài)負載均衡算法進行路由,在保證負載均衡的基礎上,提高了網(wǎng)絡吞吐量和鏈路利用率,降低了短數(shù)據(jù)流的轉(zhuǎn)發(fā)時延;對擁塞鏈路上的大流采用動態(tài)重路由算法進行重新調(diào)度,有效地降低了擁塞路徑上數(shù)據(jù)流的丟包率和轉(zhuǎn)發(fā)時延。
附圖說明
為了使本發(fā)明的目的、技術(shù)方案和有益效果更加清楚,本發(fā)明提供如下附圖進行說明:
圖1為本發(fā)明的系統(tǒng)架構(gòu)圖;
圖2為本發(fā)明的具體網(wǎng)絡拓撲示意圖;
圖3為本發(fā)明中新數(shù)據(jù)流調(diào)度的流程圖;
圖4為本發(fā)明中擁塞鏈路上大流重路由流程圖。
具體實施方式
下面將結(jié)合附圖,對本發(fā)明的優(yōu)選實施例進行詳細的描述。
圖1為本發(fā)明的系統(tǒng)架構(gòu)圖,如圖1所示,使用Floodlight作為控制器,分別以T1和T2周期收集和更新網(wǎng)絡中所有鏈路狀態(tài)信息和數(shù)據(jù)流的統(tǒng)計信息,并將其存儲起來。
如圖2所示,使用支持OpenFlow協(xié)議的SDN交換機構(gòu)成4元Fat-Tree結(jié)構(gòu)數(shù)據(jù)中心網(wǎng)絡,其中包括20臺OpenFlow交換機和16臺主機,設定網(wǎng)絡中每條鏈路的最大傳輸帶寬均為100Mbps。
如圖3所示,當圖2中的主機H1向主機H2發(fā)送一條數(shù)據(jù)流f1時,當與H1相連的邊緣交換機E1沒有相應的轉(zhuǎn)發(fā)流表項時,交換機發(fā)送Packet-In消息給控制器,控制器收到請求后使用DLB算法為其計算轉(zhuǎn)發(fā)路徑。具體為:
根據(jù)圖2所示的網(wǎng)絡拓撲信息,可以知道H1與H2之間有4條等價路徑,分別為E1-A1-C1-A3-E2、E1-A1-C2-A3-E2、E1-A2-C3-A4-E2和E1-A2-C4-A4-E2,根據(jù)每T1周期統(tǒng)計出的bandwidth值,由設定的閾值計算出4條路徑里每條路徑各條鏈路的可用剩余帶寬,將鏈路最小的可用剩余帶寬作為該路徑的最大可用帶寬,然后將每條路徑的最大可用帶寬與f1的請求帶寬進行比較,濾除可用帶寬小于請求帶寬的路徑,得出可用路徑集。當存在多條具有相同最大可用帶寬的路徑時,根據(jù)統(tǒng)計出的大流信息,選擇大流數(shù)目較少的那條路徑作為路由路徑,否則選擇可用帶寬最大的那條路徑,然后在路徑上對應的交換機中添加相應的流表項。
如圖4所示,當圖2中檢測到擁塞鏈路時,根據(jù)每T2周期統(tǒng)計的數(shù)據(jù)流信息,找出在擁塞鏈路上的大流,控制器使用DR算法為擁塞鏈路上的大流逐一地、從大到小重新計算路由,直到鏈路不再擁塞為止,具體為:
假設圖2中路徑E1-A1-C2-A3-E2上A1-C2段發(fā)生擁塞,根據(jù)圖3所述方法同樣可以得出大流的可用路徑,這里假設E1-A1-C1-A3-E2、E1-A2-C3-A4-E2和E1-A2-C4-A4-E2為可用路徑,再根據(jù)大流的截止時間,濾除可選路徑集中時延大于截止時間的路徑,得出新的可用路徑集,假設濾除后仍為以上3條路徑,分別計算這3條路徑上交換機的總緩沖隊列長度,根據(jù)隊列長度最短原則選擇全路徑重路由方式(E1-A2-C3-A4-E2和E1-A2-C4-A4-E2)還是局部重路由方式(E1-A1-C1-A3-E2),然后在所選路徑上對應的交換機中添加相應的流表項。
最后說明的是,以上優(yōu)選實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管通過上述優(yōu)選實施例已經(jīng)對本發(fā)明進行了詳細的描述,但本領域技術(shù)人員應當理解,可以在形式上和細節(jié)上對其作出各種各樣的改變,而不偏離本發(fā)明權(quán)利要求書所限定的范圍。