午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

軟件定義網(wǎng)絡(luò)中報文轉(zhuǎn)發(fā)方法、網(wǎng)絡(luò)設(shè)備及軟件定義網(wǎng)絡(luò)的制作方法

文檔序號:7999333閱讀:156來源:國知局
軟件定義網(wǎng)絡(luò)中報文轉(zhuǎn)發(fā)方法、網(wǎng)絡(luò)設(shè)備及軟件定義網(wǎng)絡(luò)的制作方法
【專利摘要】本發(fā)明提供一種軟件定義網(wǎng)絡(luò)中報文轉(zhuǎn)發(fā)方法,包括:網(wǎng)絡(luò)設(shè)備接收報文;當報文中不存在路徑信息時根據(jù)報文查詢流表;若流表中不存在匹配的流轉(zhuǎn)發(fā)表項,則緩存報文并將報文發(fā)送至控制器,接收控制器根據(jù)報文生成并下發(fā)的流轉(zhuǎn)發(fā)表項,將所述流轉(zhuǎn)發(fā)表項中的路徑信息添加到所述報文中,并根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。本發(fā)明中控制器僅需要將包括路徑信息的流轉(zhuǎn)發(fā)表項下發(fā)至報文轉(zhuǎn)發(fā)路徑的第一個網(wǎng)絡(luò)設(shè)備,減少了控制器下發(fā)的數(shù)據(jù)量,同時也不影響SDN網(wǎng)絡(luò)的擴展性。
【專利說明】軟件定義網(wǎng)絡(luò)中報文轉(zhuǎn)發(fā)方法、網(wǎng)絡(luò)設(shè)備及軟件定義網(wǎng)絡(luò)

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】,尤其涉及一種軟件定義網(wǎng)絡(luò)中報文轉(zhuǎn)發(fā)方法、網(wǎng) 絡(luò)設(shè)備及軟件定義網(wǎng)絡(luò)。

【背景技術(shù)】
[0002] 軟件定義網(wǎng)絡(luò)(software defined networking,簡稱SDN)是當前網(wǎng)絡(luò)通信領(lǐng)域的 熱門話題,因其開放性、靈活性得到各大網(wǎng)絡(luò)設(shè)備廠商的大力追捧,各種新的技術(shù)方案層出 不窮。在目前出現(xiàn)的SDN技術(shù)方案中,對網(wǎng)絡(luò)設(shè)備,比如交換機,的管理,由一個稱之為SDN 控制器的設(shè)備進行集中控制,比較典型的是OpenFlow (開放流網(wǎng)絡(luò)),0penFlow網(wǎng)絡(luò)包括交 換機和控制器,交換機負責報文的轉(zhuǎn)發(fā),控制器對交換機進行集中控制,用戶可以通過控制 器下發(fā)流表到交換機,所述流表為定義的轉(zhuǎn)發(fā)規(guī)則,交換機可以根據(jù)該規(guī)則把報文從一個 端口轉(zhuǎn)發(fā)到另一個端口,從而控制報文在網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)路徑,直至輸出報文。
[0003] 參照圖1,給出了通常的控制器下發(fā)流表的示意圖,這里控制器101控制所有的網(wǎng) 絡(luò)設(shè)備102,根據(jù)網(wǎng)絡(luò)設(shè)備上傳的報文,給報文轉(zhuǎn)發(fā)路徑上的每一個網(wǎng)絡(luò)設(shè)備下發(fā)一個流 表,下發(fā)給各個網(wǎng)絡(luò)設(shè)備的流表可一致也可不一致,各個網(wǎng)絡(luò)設(shè)備獲取到各自的流表之后 保存至本地,流表中保存有網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)報文的轉(zhuǎn)發(fā)端口的端口號。當網(wǎng)絡(luò)設(shè)備接收到一 個報文之后,網(wǎng)絡(luò)設(shè)備根據(jù)報文中的目的地址和源地址查詢本地流表,找到對應(yīng)的流表后, 從所述流表所示的轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)所述報文,下游的網(wǎng)絡(luò)設(shè)備接收到該報文后,繼續(xù)按照本 地流表中的轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)報文,直至輸出報文。由于控制器需要將流表下發(fā)到轉(zhuǎn)發(fā)路徑上 的每個網(wǎng)絡(luò)設(shè)備上,隨著網(wǎng)絡(luò)規(guī)模的增長,網(wǎng)絡(luò)設(shè)備越來越多,控制器需要下發(fā)的流表也會 越來越多,控制器負荷越來越重,嚴重制約了網(wǎng)絡(luò)規(guī)模。


【發(fā)明內(nèi)容】

[0004] 鑒于上述問題,本發(fā)明的目的在于提供一種軟件定義網(wǎng)絡(luò)中報文轉(zhuǎn)發(fā)方法、網(wǎng)絡(luò) 設(shè)備及軟件定義網(wǎng)絡(luò),旨在解決現(xiàn)有控制器需要向轉(zhuǎn)發(fā)路徑上所有的網(wǎng)絡(luò)設(shè)備下發(fā)流表, 控制器負載大,制約網(wǎng)絡(luò)規(guī)模的技術(shù)問題。
[0005] 第一方面,所述軟件定義網(wǎng)絡(luò)中報文轉(zhuǎn)發(fā)方法包括:網(wǎng)絡(luò)設(shè)備接收報文;當所述 報文中不存在路徑信息時,根據(jù)所述報文查詢所述網(wǎng)絡(luò)設(shè)備的流表;若所述網(wǎng)絡(luò)設(shè)備的流 表中不存在與所述報文匹配的流轉(zhuǎn)發(fā)表項,緩存所述報文,將所述報文或所述報文的報文 頭發(fā)送至控制器,并接收所述控制器根據(jù)所述報文的報文頭以及網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建的流轉(zhuǎn) 發(fā)表項,將所述流轉(zhuǎn)發(fā)表項添加到所述網(wǎng)絡(luò)設(shè)備的流表中,所述流轉(zhuǎn)發(fā)表項中包括路徑信 息;將所述流轉(zhuǎn)發(fā)表項中的路徑信息添加到所述報文中,并根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報 文。
[0006] 在第一方面的第一種可能的實現(xiàn)方式中,當所述報文中不存在路徑信息時,所述 方法還包括:若所述網(wǎng)絡(luò)設(shè)備的流表中存在與所述報文匹配的流轉(zhuǎn)發(fā)表項,則將所述匹配 的流轉(zhuǎn)發(fā)表項中的路徑信息添加到所述報文中,并根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。
[0007] 結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式 中,所述方法還包括:若所述報文中存在路徑信息,則根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。
[0008] 結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式或第一方面的第二種可能的 實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,路徑信息為報文的轉(zhuǎn)發(fā)路徑的端口號,具體包括報 文的轉(zhuǎn)發(fā)路徑上依次經(jīng)過的各個網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口的端口號。
[0009] 結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述根據(jù) 所述路徑信息轉(zhuǎn)發(fā)所述報文,具體包括:判斷所述路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端 口號;當所述路徑信息中不存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號時,則去除所述報文中的路徑信息 并發(fā)送至所述報文中目的地址對應(yīng)的設(shè)備;當所述路徑信息中存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號 時,根據(jù)所述路徑信息判斷所述網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口是否存在鏈路故障;若 所述轉(zhuǎn)發(fā)端口存在鏈路故障,則將所述報文中的所述路徑信息中的所述轉(zhuǎn)發(fā)端口的端口號 修改為所述轉(zhuǎn)發(fā)端口對應(yīng)的備用路徑的端口號,并根據(jù)修改后的路徑信息轉(zhuǎn)發(fā)所述報文; 若所述轉(zhuǎn)發(fā)端口不存在鏈路故障,則直接從所述轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)所述報文。
[0010] 第二方面,所述軟件定義網(wǎng)絡(luò)中報文轉(zhuǎn)發(fā)網(wǎng)絡(luò)設(shè)備包括:報文接收單元,用于接收 報文;流表查詢單元,用于當所述報文中不存路徑信息時,根據(jù)所述報文查詢所述網(wǎng)絡(luò)設(shè)備 的流表;流表更新單元,用于當所述網(wǎng)絡(luò)設(shè)備的流表中不存在與所述報文匹配的流轉(zhuǎn)發(fā)表 項時,緩存所述報文,將所述報文或所述報文的報文頭發(fā)送至控制器,并接收所述控制器根 據(jù)所述報文的報文頭以及網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建的流轉(zhuǎn)發(fā)表項,將所述流轉(zhuǎn)發(fā)表項添加到所述 網(wǎng)絡(luò)設(shè)備的流表中,所述流轉(zhuǎn)發(fā)表項中包括路徑信息;報文轉(zhuǎn)發(fā)單元,用于將所述流轉(zhuǎn)發(fā)表 項中的路徑信息添加到所述報文中,并根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。
[0011] 在第二方面的第一種可能的實現(xiàn)方式中,所述報文轉(zhuǎn)發(fā)單元,還用于當所述網(wǎng)絡(luò) 設(shè)備的流表中存在與所述報文匹配的流轉(zhuǎn)發(fā)表項時,將所述匹配的流轉(zhuǎn)發(fā)表項中的路徑信 息添加到所述報文中,并根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。
[0012] 結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式 中,所述報文轉(zhuǎn)發(fā)單元,還用于當所述報文中存在路徑信息時,根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述 報文。
[0013] 結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式或第二方面的第二種可能的 實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,路徑信息為報文的轉(zhuǎn)發(fā)路徑的端口號,具體包括報 文的轉(zhuǎn)發(fā)路徑上依次經(jīng)過的各個網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口的端口號;所述報文 轉(zhuǎn)發(fā)單元具體包括:端口判斷模塊,用于判斷所述路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端 口號;報文處理發(fā)送模塊,用于當所述端口模塊判斷確定所述路徑信息中不存在未經(jīng)轉(zhuǎn)發(fā) 的轉(zhuǎn)發(fā)端口號時,去除所述報文中的路徑信息并發(fā)送至所述報文中目的地址對應(yīng)的設(shè)備; 鏈路判斷模塊,用于當所述端口模塊判斷確定所述路徑信息中存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號 時,根據(jù)所述路徑信息判斷所述網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口是否存在鏈路故障;路 徑修改轉(zhuǎn)發(fā)模塊,用于當所述鏈路判斷模塊判斷確定所述轉(zhuǎn)發(fā)端口存在鏈路故障時,將所 述報文中的所述路徑信息中的所述轉(zhuǎn)發(fā)端口的端口號修改為所述轉(zhuǎn)發(fā)端口對應(yīng)的備用路 徑的端口號,并根據(jù)修改后的路徑信息轉(zhuǎn)發(fā)所述報文;報文直接轉(zhuǎn)發(fā)模塊,用于當所述鏈路 判斷模塊判斷確定所述轉(zhuǎn)發(fā)端口不存在鏈路故障時,直接從所述轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)所述報文。
[0014] 第三方面,所述軟件定義網(wǎng)絡(luò)包括控制器和上述方案所述的網(wǎng)絡(luò)設(shè)備,所述控制 器,用于接收來自所述網(wǎng)路設(shè)備的報文或所述報文的報文頭,根據(jù)所述報文的報文頭以及 網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建流轉(zhuǎn)發(fā)表項,所述流轉(zhuǎn)發(fā)表項中包括路徑信息,并將所述流轉(zhuǎn)發(fā)表項發(fā) 送至所述網(wǎng)絡(luò)設(shè)備。
[0015] SDN網(wǎng)絡(luò)包括控制器以及多個網(wǎng)絡(luò)設(shè)備,本發(fā)明技術(shù)方案中,當網(wǎng)絡(luò)設(shè)備接收一個 報文時,若報文中不存在路徑信息,并且本地流表中也不存在與所述報文相匹配的流轉(zhuǎn)發(fā) 表項,說明待轉(zhuǎn)發(fā)的報文是一個新報文,此時網(wǎng)絡(luò)設(shè)備將所述報文或報文中的報文頭發(fā)送 給控制器,控制器再根據(jù)報文頭以及當前的SDN網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建流轉(zhuǎn)發(fā)表項,所述流轉(zhuǎn) 發(fā)表項中包括路徑信息,所述網(wǎng)絡(luò)設(shè)備接收到所述創(chuàng)建的流轉(zhuǎn)發(fā)表項后,將所述流轉(zhuǎn)發(fā)表 項中的路徑信息添加到所述報文中,并根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文,下游的網(wǎng)絡(luò)設(shè)備 再根據(jù)接收到報文中的路徑信息繼續(xù)轉(zhuǎn)發(fā)報文,直至將報文轉(zhuǎn)發(fā)至目的地址對應(yīng)的設(shè)備, 與現(xiàn)有技術(shù)相比,本發(fā)明中控制器僅需要將流轉(zhuǎn)發(fā)表項下發(fā)至向其發(fā)送報文或報文頭的網(wǎng) 絡(luò)設(shè)備,無需將流轉(zhuǎn)發(fā)表項下發(fā)到轉(zhuǎn)發(fā)路徑上的所有網(wǎng)絡(luò)設(shè)備,這樣減少了控制器下發(fā)的 數(shù)據(jù)量,避免了網(wǎng)絡(luò)堵塞,同時也不影響SDN網(wǎng)絡(luò)擴展。

【專利附圖】

【附圖說明】
[0016] 圖1是現(xiàn)有技術(shù)中控制器下發(fā)流表的示意圖;
[0017] 圖2是本發(fā)明實施例提供的一種軟件定義網(wǎng)絡(luò)中報文轉(zhuǎn)發(fā)方法的流程圖;
[0018] 圖3是本發(fā)明實施例提供的一種報文轉(zhuǎn)發(fā)示意圖;
[0019] 圖4是本發(fā)明實施例提供的另一種報文轉(zhuǎn)發(fā)示意圖;
[0020] 圖5是本發(fā)明實施例提供的一種網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)框圖;
[0021] 圖6是本發(fā)明實施例提供的另一網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)框圖;
[0022] 圖7是本發(fā)明實施例提供的一種軟件定義網(wǎng)絡(luò)的結(jié)構(gòu)圖。

【具體實施方式】
[0023] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
[0024] 本發(fā)明技術(shù)方案通過改變SDN網(wǎng)絡(luò)中控制器下發(fā)的流轉(zhuǎn)發(fā)表項和下發(fā)流轉(zhuǎn)發(fā)表 項的方式,提供了一種SDN網(wǎng)絡(luò)中新的報文轉(zhuǎn)發(fā)方式,以實現(xiàn)SDN網(wǎng)絡(luò)優(yōu)化。為了說明本發(fā) 明所述的技術(shù)方案,下面通過具體實施例來進行說明。圖2示出了本發(fā)明實施例提供的一 種軟件定義網(wǎng)絡(luò)中報文轉(zhuǎn)發(fā)方法的實現(xiàn)流程,該方法的執(zhí)行主體為網(wǎng)絡(luò)設(shè)備,具體包括:
[0025] 步驟S201、網(wǎng)絡(luò)設(shè)備接收報文。
[0026] SDN網(wǎng)絡(luò)中有多個網(wǎng)絡(luò)設(shè)備,各個網(wǎng)絡(luò)設(shè)備與控制器有線或無線連接,對于SDN網(wǎng) 絡(luò)中的任一網(wǎng)絡(luò)設(shè)備,其接收到的報文可能來自于網(wǎng)絡(luò)外也可能來自于上一網(wǎng)絡(luò)設(shè)備,當 網(wǎng)絡(luò)設(shè)備接收到的報文來自于網(wǎng)絡(luò)外時,表明當前網(wǎng)絡(luò)設(shè)備為報文轉(zhuǎn)發(fā)路徑上的第一個網(wǎng) 絡(luò)設(shè)備,當網(wǎng)絡(luò)設(shè)備接收到的報文來自于上一網(wǎng)絡(luò)設(shè)備時,表明當前網(wǎng)路設(shè)備為報文轉(zhuǎn)發(fā) 路徑上的中間網(wǎng)絡(luò)設(shè)備。
[0027] 步驟S202、當所述報文中不存在路徑信息時,根據(jù)所述報文查詢所述網(wǎng)絡(luò)設(shè)備的 流表。
[0028] 網(wǎng)絡(luò)設(shè)備在接收到報文后,解析報文并判斷報文中是否存在路徑信息,若不存在 路徑信息,表明網(wǎng)絡(luò)設(shè)備接收到的報文來自于網(wǎng)絡(luò)外,當前網(wǎng)絡(luò)設(shè)備為轉(zhuǎn)發(fā)報文的第一個 網(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)設(shè)備中保存有流表,所述流表可以為空表,或者可能在先前的轉(zhuǎn)發(fā)報文過程 中,已保存一個或多個流轉(zhuǎn)發(fā)表項,每個流轉(zhuǎn)發(fā)表項包含了在SDN網(wǎng)絡(luò)中轉(zhuǎn)發(fā)報文的路徑 信息。在本步驟中,當接收到的報文中不存在路徑信息時,可以根據(jù)所述報文查詢所述網(wǎng)絡(luò) 設(shè)備的流表,具體可以根據(jù)所述報文的源地址和目的地址,查詢所述網(wǎng)絡(luò)設(shè)備的流表中是 否有與所述接收到的報文匹配的流轉(zhuǎn)發(fā)表項。
[0029] 步驟S203、若所述網(wǎng)絡(luò)設(shè)備的流表中不存在與所述報文匹配的流轉(zhuǎn)發(fā)表項,緩存 所述報文,將所述報文或所述報文的報文頭發(fā)送至控制器,并接收所述控制器根據(jù)所述報 文的報文頭以及網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建的流轉(zhuǎn)發(fā)表項,將所述流轉(zhuǎn)發(fā)表項添加到所述網(wǎng)絡(luò)設(shè)備 的流表中,所述流轉(zhuǎn)發(fā)表項中包括路徑信息。
[0030] 本實施例中,作為一種實現(xiàn)方式,流轉(zhuǎn)發(fā)表項包括轉(zhuǎn)發(fā)報文的源地址、目的地址以 及路徑信息,網(wǎng)絡(luò)設(shè)備接收到報文后,根據(jù)報文中的源地址和目的地址查詢網(wǎng)絡(luò)設(shè)備中的 流表,當流表中沒有與所述報文的源地址、目的地址一致的流轉(zhuǎn)發(fā)表項時,即可認定所述網(wǎng) 絡(luò)設(shè)備的流表中不存在與所述報文匹配的流轉(zhuǎn)發(fā)表項,表明網(wǎng)絡(luò)設(shè)備接收到的報文為首 包,此時網(wǎng)絡(luò)設(shè)備緩存所述報文,將所述報文或者所述報文的報文頭發(fā)送至控制器。由于 SDN網(wǎng)絡(luò)中所有的網(wǎng)絡(luò)設(shè)備,如交換機,都受控制器控制,因此控制器知悉網(wǎng)絡(luò)組網(wǎng)的拓撲 結(jié)構(gòu),即網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)端口間的連接關(guān)系,控制器根據(jù)報文中的報文頭,即報文的源地址 和目的地址,并結(jié)合網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建一個流轉(zhuǎn)發(fā)表項,然后控制器將該流轉(zhuǎn)發(fā)表項下發(fā) 至所述網(wǎng)絡(luò)設(shè)備。需要說明的是,本實施例中控制器只向一個網(wǎng)絡(luò)設(shè)備下發(fā)流轉(zhuǎn)發(fā)表項,不 是向報文轉(zhuǎn)發(fā)路徑中所有的網(wǎng)絡(luò)設(shè)備下發(fā)流轉(zhuǎn)發(fā)表項。
[0031] 網(wǎng)絡(luò)設(shè)備接收到控制器下發(fā)的流轉(zhuǎn)發(fā)表項后,將所述流轉(zhuǎn)發(fā)表項添加到所述網(wǎng)絡(luò) 設(shè)備的流表中,以保證流表及時更新,待下次轉(zhuǎn)發(fā)具有相同源地址和目的地址的報文時,直 接查詢流表,找到匹配的流轉(zhuǎn)發(fā)表項,在根據(jù)找的所述流轉(zhuǎn)發(fā)表項中的路徑信息轉(zhuǎn)發(fā)所述 報文即可。
[0032] 步驟S204、將所述流轉(zhuǎn)發(fā)表項中的路徑信息添加到所述報文中,并根據(jù)所述路徑 信息轉(zhuǎn)發(fā)所述報文。
[0033] 網(wǎng)絡(luò)設(shè)備在轉(zhuǎn)發(fā)報文前,還需將接收到的流轉(zhuǎn)發(fā)表項中的路徑信息添加到所述報 文中,再根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文,以使得下游網(wǎng)絡(luò)設(shè)備在接收到所述報文后,可以 根據(jù)所述報文中的路徑信息繼續(xù)轉(zhuǎn)發(fā)所述報文。
[0034] 可選地,當所述報文中不存在路徑信息時,所述方法還包括:
[0035] 步驟S205、若所述網(wǎng)絡(luò)設(shè)備的流表中存在與所述報文匹配的流轉(zhuǎn)發(fā)表項,則將所 述匹配的流轉(zhuǎn)發(fā)表項中的路徑信息添加到所述報文中,并根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報 文。
[0036] 網(wǎng)絡(luò)設(shè)備接收到報文后,根據(jù)報文中的源地址和目的地址查詢網(wǎng)絡(luò)設(shè)備中的流 表,當流表中有與所述報文的源地址、目的地址一致的流轉(zhuǎn)發(fā)表項時,即可認定所述網(wǎng)絡(luò)設(shè) 備的流表中存在與所述報文相匹配的流轉(zhuǎn)發(fā)表項,表明網(wǎng)絡(luò)設(shè)備接收到的報文并非為首 包,此時將查詢得的流轉(zhuǎn)發(fā)表項中的路徑信息添加到所述報文中,并根據(jù)其中的路徑信息 轉(zhuǎn)發(fā)所述報文。
[0037] 可選的,當所述報文中存在路徑信息時,所述方法還包括:
[0038] 步驟S206、若所述報文中存在路徑信息,則根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。
[0039] 本步驟中,當所述報文中存在路徑信息時,表明所述網(wǎng)絡(luò)設(shè)備接收到的報文來自 于SDN網(wǎng)絡(luò)中的上游網(wǎng)絡(luò)設(shè)備,報文中已經(jīng)添加有路徑信息,網(wǎng)絡(luò)設(shè)備直接根據(jù)報文中的 路徑信息轉(zhuǎn)發(fā)接收到的報文即可。在本實施例及其各個優(yōu)選實現(xiàn)方式中,作為一種具體實 現(xiàn)方式,路徑信息為報文的轉(zhuǎn)發(fā)路徑的端口號,具體包括報文的轉(zhuǎn)發(fā)路徑上依次經(jīng)過的各 個網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口的端口號。流表中的每條流轉(zhuǎn)發(fā)表項包含有源地址、 目的地址和路徑信息,例如可以表示為<S,D>[1,4, 3],其中S和D分別表示報文的源地址 和目的地址,[1,4,3]表示路徑信息,是報文依次經(jīng)過的網(wǎng)絡(luò)設(shè)備上的轉(zhuǎn)發(fā)端口號。
[0040] 上述步驟S204-S206中均包含有根據(jù)路徑信息轉(zhuǎn)發(fā)報文的過程,為了便于理解上 述報文轉(zhuǎn)發(fā)過程,參照圖3,給出了一種具體的報文轉(zhuǎn)發(fā)示意圖,圖示中SDN網(wǎng)絡(luò)包括網(wǎng)絡(luò) 設(shè)備a、b、c、d、e、f、g,圖示中標識了各個網(wǎng)絡(luò)設(shè)備間的端口連接關(guān)系,比如網(wǎng)絡(luò)設(shè)備c的 端口 2和網(wǎng)絡(luò)設(shè)備d的端口 1連接等。假設(shè)網(wǎng)絡(luò)設(shè)備c接收到一報文pl,源地址為S,目的 地址為D,若該報文pi為數(shù)據(jù)流(通常將一組具有相同源地址和目的地址的報文稱為一個 數(shù)據(jù)流)的首包,那么網(wǎng)絡(luò)設(shè)備c的流表中不存在與所述報文pi匹配的流轉(zhuǎn)發(fā)表項,此時將 所述報文pl或所述報文pl的報文頭發(fā)送至控制器C,控制器C根據(jù)源地址S、目的地址D 以及網(wǎng)絡(luò)拓撲結(jié)構(gòu),建立一條流轉(zhuǎn)發(fā)表項,假設(shè)為〈3,0>[1,4,3],其中[1,4,3]表示路徑信 息,控制器C將所述流轉(zhuǎn)發(fā)表項只發(fā)送至網(wǎng)絡(luò)設(shè)備c,而不會發(fā)送給報文pl的轉(zhuǎn)發(fā)路徑上的 其他網(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)設(shè)備c接收控制器C下發(fā)的所述流轉(zhuǎn)發(fā)表項,再將所述流轉(zhuǎn)發(fā)表項添 加到網(wǎng)絡(luò)設(shè)備c的流表中,并將路徑信息[1,4,3]添加到所述報文pl中,得到包括路徑信 息的報文ρΓ。然后網(wǎng)絡(luò)設(shè)備c根據(jù)路徑信息中第一個端口號,從網(wǎng)絡(luò)設(shè)備c的端口號為1 的轉(zhuǎn)發(fā)端口,轉(zhuǎn)發(fā)所述報文ρΓ至下游網(wǎng)絡(luò)設(shè)備f,網(wǎng)絡(luò)設(shè)備f分析所述報文ρΓ,發(fā)現(xiàn)報文 ρΓ中有路徑信息,再根據(jù)路徑信息[1,4,3]中第二個轉(zhuǎn)發(fā)端口號,從網(wǎng)絡(luò)設(shè)備f的端口為 4的轉(zhuǎn)發(fā)端口,將報文ρΓ轉(zhuǎn)發(fā)至網(wǎng)絡(luò)設(shè)備g,網(wǎng)絡(luò)設(shè)備g同理再將報文ρΓ轉(zhuǎn)發(fā)至網(wǎng)絡(luò)設(shè) 備e,最后網(wǎng)絡(luò)設(shè)備e去除報文ρΓ中的路徑信息[1,4,3],得到原始的報文pl,并根據(jù)報 文Pl中的目的地址,將報文Pl發(fā)送至目的地址對應(yīng)的設(shè)備,這樣就完成了報文Pl在網(wǎng)絡(luò) 中的轉(zhuǎn)發(fā)。當網(wǎng)絡(luò)設(shè)備c再次收到該數(shù)據(jù)流的報文,即與所述報文pl具有相同源地址和目 的地址的報文時,網(wǎng)絡(luò)設(shè)備c查找流表,發(fā)現(xiàn)流表中存在與所述報文相匹配的流轉(zhuǎn)發(fā)表項, 獲取所述流表轉(zhuǎn)發(fā)表項中的路徑信息,并將所述路徑信息添加到報文中,網(wǎng)絡(luò)設(shè)備c、f、g、 e依次轉(zhuǎn)發(fā)所述報文,并在網(wǎng)絡(luò)設(shè)備e去除報文中的路徑信息,得到原始報文并發(fā)送至目的 地址對應(yīng)的設(shè)備。
[0041] 圖3示出的是一種通常的報文轉(zhuǎn)發(fā)示意圖,然而在實際轉(zhuǎn)發(fā)報文過程中,網(wǎng)絡(luò)設(shè) 備的轉(zhuǎn)發(fā)端口可能會出現(xiàn)鏈路故障,因此上述步驟S204或步驟S205或步驟S206中根據(jù)路 徑信息轉(zhuǎn)發(fā)報文的步驟具體可以包括:
[0042] 判斷所述路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號;
[0043] 當所述路徑信息中不存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號時,則去除所述報文中的路徑信 息并發(fā)送至所述報文中目的地址對應(yīng)的設(shè)備;
[0044] 當所述路徑信息中存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號時,根據(jù)所述路徑信息判斷所述網(wǎng) 絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口是否存在鏈路故障;
[0045] 若所述轉(zhuǎn)發(fā)端口存在鏈路故障,則將所述報文中的所述路徑信息中的所述轉(zhuǎn)發(fā)端 口的端口號修改為所述轉(zhuǎn)發(fā)端口對應(yīng)的備用路徑的端口號,并根據(jù)修改后的路徑信息轉(zhuǎn)發(fā) 所述報文;
[0046] 若所述轉(zhuǎn)發(fā)端口不存在鏈路故障,則直接從所述轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)所述報文。
[0047] 上述根據(jù)路徑信息轉(zhuǎn)發(fā)報文的具體步驟中,每個網(wǎng)路設(shè)備在轉(zhuǎn)發(fā)報文前還需判斷 路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號,當存在未經(jīng)轉(zhuǎn)發(fā)的端口號時,再進一步判斷 所述轉(zhuǎn)發(fā)端口是否存在鏈路故障。為了便于理解,參照圖4,示出了另一種報文轉(zhuǎn)發(fā)示意圖, 假設(shè)網(wǎng)絡(luò)設(shè)備f和網(wǎng)絡(luò)設(shè)備g之間的轉(zhuǎn)發(fā)端口存在鏈路故障,對于首包,假設(shè)為報文pl,網(wǎng) 絡(luò)設(shè)備c將報文pi或報文pi的報文頭發(fā)送給控制器C,控制器C生成一條流轉(zhuǎn)發(fā)表項,假 設(shè)為<S,D>[1,4,3],根據(jù)路徑信息[1,4,3],網(wǎng)絡(luò)設(shè)備c將路徑信息添加到報文pi中得到 包括路徑信息的報文ρΓ。然后,網(wǎng)絡(luò)設(shè)備c通過端口 1將報文ρΓ發(fā)送至網(wǎng)絡(luò)設(shè)備f,網(wǎng) 絡(luò)設(shè)備f讀取報文ρΓ中的路徑信息,通過第二個端口號,即端口號為4的轉(zhuǎn)發(fā)端口,準備 將報文ρΓ發(fā)送至網(wǎng)絡(luò)設(shè)備g,但是此時檢測到轉(zhuǎn)發(fā)端口 4存在鏈路故障,此時將路徑信息 中存在鏈路故障的轉(zhuǎn)發(fā)端口 4修改為對應(yīng)的備用路徑的轉(zhuǎn)發(fā)端口號,假設(shè)修改為備用路徑 [2,5]的轉(zhuǎn)發(fā)端口號,最終修改后的路徑信息變成為[1,2,5,3],得到報文ρΓ',網(wǎng)絡(luò)設(shè)備f 再將報文ρΓ '通過轉(zhuǎn)發(fā)端口 2發(fā)送至網(wǎng)絡(luò)設(shè)備d,網(wǎng)絡(luò)設(shè)備d將報文ρΓ '通過轉(zhuǎn)發(fā)端口 5 發(fā)送至網(wǎng)絡(luò)設(shè)備g,網(wǎng)絡(luò)設(shè)備g再將報文ρΓ '通過轉(zhuǎn)發(fā)端口 3發(fā)送至網(wǎng)路設(shè)備e,上述各個 網(wǎng)絡(luò)設(shè)備在轉(zhuǎn)發(fā)報文之前需要判斷路徑信息中是否還存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號,在本實 例中,網(wǎng)絡(luò)設(shè)備e接收到報文ρΓ'后,發(fā)現(xiàn)路徑信息中的轉(zhuǎn)發(fā)端口號已經(jīng)全部使用完畢,此 時網(wǎng)絡(luò)設(shè)備e去除報文ρΓ '中的路徑信息,得到原始報文pi,并將得到的原始報文pi發(fā)送 至目的地址對應(yīng)的設(shè)備。本優(yōu)選實施方式考慮到轉(zhuǎn)發(fā)端口鏈路故障的情況,由于通常備用 路徑是事先配置好的,所以這種情況下的故障處理是非??焖俚?。有效降低了丟包率。 [0048] 作為判斷路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號的一種實現(xiàn)方式,在路徑信 息中還可以包括端口已用標志位;具體地,網(wǎng)絡(luò)設(shè)備在轉(zhuǎn)發(fā)報文時,將報文的轉(zhuǎn)發(fā)端口號做 標記,使得下游的網(wǎng)絡(luò)設(shè)備可以從標記處的下一轉(zhuǎn)發(fā)端口號進行轉(zhuǎn)發(fā)報文,比如圖3中,網(wǎng) 絡(luò)設(shè)備c將報文轉(zhuǎn)發(fā)至網(wǎng)絡(luò)設(shè)備f時,對路徑信息[1,4,3]中的轉(zhuǎn)發(fā)端口 1做標記,即在轉(zhuǎn) 發(fā)端口 1后面插入標志位,網(wǎng)絡(luò)設(shè)備f獲取路徑信息中所述標志位的下一個端口號,即轉(zhuǎn)發(fā) 端口 4,然后將報文通過轉(zhuǎn)發(fā)端口 4發(fā)送至網(wǎng)絡(luò)設(shè)備g并將所述標志位插入到轉(zhuǎn)發(fā)端口 4 后面,網(wǎng)絡(luò)設(shè)備g獲取所述標志位的下一個轉(zhuǎn)發(fā)端口號,即轉(zhuǎn)發(fā)端口 3,然后通過轉(zhuǎn)發(fā)端口 3 將報文發(fā)送至網(wǎng)絡(luò)設(shè)備e,上述網(wǎng)絡(luò)設(shè)備c、f、g在轉(zhuǎn)發(fā)報文前需要判斷路徑信息中是否存 在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號,即判斷路徑信息中標志位是否已經(jīng)移到路徑信息中的最后位置 處,網(wǎng)絡(luò)設(shè)備e在接收到報文后,由于標志位后已經(jīng)沒有轉(zhuǎn)發(fā)端口號,此時網(wǎng)絡(luò)設(shè)備e去除 報文中的路徑信息以及添加的標志位得到原始報文,然后將原始報文發(fā)送至報文中目的地 址對已的設(shè)備,這樣就完成了報文轉(zhuǎn)發(fā)的整個過程。
[0049] 上述通過對轉(zhuǎn)發(fā)端口做標記來判斷徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號只 是一種實例列舉,包括但不限定于此,比如也可在報文中添加一個用于標識路徑信息中已 經(jīng)轉(zhuǎn)發(fā)過的轉(zhuǎn)發(fā)端口的序位的指示參數(shù),對于網(wǎng)絡(luò)設(shè)備c,將所述指示參數(shù)設(shè)置為1,下游 網(wǎng)絡(luò)設(shè)備f收到報文后獲取指示參數(shù)的值,將所述指示參數(shù)自增1后,此時指示參數(shù)為2, 網(wǎng)絡(luò)設(shè)備f將報文從路徑信息中的第二個端口號,即轉(zhuǎn)發(fā)端口 4,轉(zhuǎn)發(fā)報文,同理下游網(wǎng)絡(luò) 設(shè)備g將指示參數(shù)自增1后,將報文從路徑信息的第三個轉(zhuǎn)發(fā)端口號轉(zhuǎn)發(fā)報文至網(wǎng)絡(luò)設(shè)備 e,此時指示參數(shù)為3,網(wǎng)絡(luò)設(shè)備e將指示參數(shù)自增1后,發(fā)現(xiàn)路徑信息中已不存在第4個轉(zhuǎn) 發(fā)端口號,此時認定路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號,去除路徑信息以及所述 指示參數(shù),得到原始報文,然后將原始報文轉(zhuǎn)發(fā)至報文中目的地址對已的設(shè)備;又如,網(wǎng)絡(luò) 設(shè)備也可以在準備轉(zhuǎn)發(fā)報文時,刪除路徑信息中轉(zhuǎn)發(fā)報文的當前轉(zhuǎn)發(fā)端口號,下游的網(wǎng)絡(luò) 設(shè)備只需將報文通過接收到報文中的第一個轉(zhuǎn)發(fā)端口號轉(zhuǎn)發(fā)報文即可,具體的,網(wǎng)絡(luò)設(shè)備c 在路徑信息最后位置處添加一個空位(NULL),并將路徑信息中的轉(zhuǎn)發(fā)端口 1刪除,然后通 過轉(zhuǎn)發(fā)端口 1將報文發(fā)送至網(wǎng)絡(luò)設(shè)備f,網(wǎng)絡(luò)設(shè)備f讀取路徑信息中的第一個轉(zhuǎn)發(fā)端口號, 即轉(zhuǎn)發(fā)端口 4,發(fā)送報文至網(wǎng)絡(luò)設(shè)備g,同理網(wǎng)絡(luò)設(shè)備g刪除轉(zhuǎn)發(fā)端口 3后,將報文通過轉(zhuǎn)發(fā) 端口 3轉(zhuǎn)發(fā)至網(wǎng)絡(luò)設(shè)備e,網(wǎng)絡(luò)設(shè)備e接收到報文發(fā)現(xiàn)路徑信息中是剩下一個空位(NULL), 刪除所述空位后將報文轉(zhuǎn)發(fā)至報文中目的地址對已的設(shè)備。根據(jù)實際情況,當然可以有其 他的判斷路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號,此處不再一一列舉。
[0050] 圖5示出了本發(fā)明實施例提供的網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)框圖,用于實現(xiàn)如本發(fā)明圖2至 圖4任一實施例所示的方法。為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。該網(wǎng) 絡(luò)設(shè)備500包括:
[0051] 報文接收單元501,用于接收報文;
[0052] 流表查詢單元502,用于當所述報文中不存路徑信息時,根據(jù)所述報文查詢所述網(wǎng) 絡(luò)設(shè)備的流表;
[0053] 流表更新單元503,用于當所述網(wǎng)絡(luò)設(shè)備的流表中不存在與所述報文匹配的流轉(zhuǎn) 發(fā)表項時,緩存所述報文,將所述報文或所述報文的報文頭發(fā)送至控制器,并接收所述控制 器根據(jù)所述報文的報文頭以及網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建的流轉(zhuǎn)發(fā)表項,將所述流轉(zhuǎn)發(fā)表項添加到 所述網(wǎng)絡(luò)設(shè)備的流表中,所述流轉(zhuǎn)發(fā)表項中包括路徑信息;
[0054] 報文轉(zhuǎn)發(fā)單元504,用于將所述流轉(zhuǎn)發(fā)表項中的路徑信息添加到所述報文中,并根 據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。
[0055] 可選的,所述報文轉(zhuǎn)發(fā)單元504,還用于當所述網(wǎng)絡(luò)設(shè)備的流表中存在與所述報文 匹配的流轉(zhuǎn)發(fā)表項時,將所述匹配的流轉(zhuǎn)發(fā)表項中的路徑信息添加到所述報文中,并根據(jù) 所述路徑信息轉(zhuǎn)發(fā)所述報文。
[0056] 可選的,所述報文轉(zhuǎn)發(fā)單元504,還用于當所述報文中存在路徑信息時,根據(jù)所述 路徑信息轉(zhuǎn)發(fā)所述報文。
[0057] 可選的,路徑信息為報文的轉(zhuǎn)發(fā)路徑的端口號,具體包括報文的轉(zhuǎn)發(fā)路徑上依次 經(jīng)過的各個網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口的端口號。
[0058] 上述實施例示出了本發(fā)明實施例提供的網(wǎng)絡(luò)設(shè)備的組成結(jié)構(gòu),本發(fā)明實施例提供 的網(wǎng)絡(luò)設(shè)備中的各個功能單元可以對應(yīng)實現(xiàn)了圖2中所示的各個步驟。
[0059] 優(yōu)選的,所述報文轉(zhuǎn)發(fā)單元504在具體實現(xiàn)轉(zhuǎn)發(fā)報文時,還需考慮到路徑信息中 是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號,以及網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口是否存在鏈路故 障的情況,為了實現(xiàn)此目的,所述
[0060] 所述報文轉(zhuǎn)發(fā)單元具體包括:
[0061] 端口判斷模塊,用于判斷所述路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號;
[0062] 報文處理發(fā)送模塊,用于當所述端口模塊判斷確定所述路徑信息中不存在未經(jīng)轉(zhuǎn) 發(fā)的轉(zhuǎn)發(fā)端口號時,去除所述報文中的路徑信息并發(fā)送至所述報文中目的地址對應(yīng)的設(shè) 備;
[0063] 鏈路判斷模塊,用于當所述端口模塊判斷確定所述路徑信息中存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn) 發(fā)端口號時,根據(jù)所述路徑信息判斷所述網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口是否存在鏈路 故障;
[0064] 路徑修改轉(zhuǎn)發(fā)模塊,用于當所述鏈路判斷模塊判斷確定所述轉(zhuǎn)發(fā)端口存在鏈路故 障時,將所述報文中的所述路徑信息中的所述轉(zhuǎn)發(fā)端口的端口號修改為所述轉(zhuǎn)發(fā)端口對應(yīng) 的備用路徑的端口號,并根據(jù)修改后的路徑信息轉(zhuǎn)發(fā)所述報文;
[0065] 報文直接轉(zhuǎn)發(fā)模塊,用于當所述鏈路判斷模塊判斷確定所述轉(zhuǎn)發(fā)端口不存在鏈路 故障時,直接從所述轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)所述報文。
[0066] 具體的,所述端口判斷模塊判斷所述路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號 的實現(xiàn)方式可參考上述方法實施例中所述,在此不再贅述。
[0067] 圖6示出了本發(fā)明實施例提供的另一種網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)框圖,可用于實現(xiàn)如本發(fā) 明圖2至圖4任一實施例所示的方法。為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部 分。該網(wǎng)絡(luò)設(shè)備600包括:
[0068] 處理器601,用于執(zhí)行程序。本實施例中所述程序可以包括程序代碼,所述程序代 碼包括計算機操作指令。處理器可能是中央處理器CPU,或者是被配置成實施本發(fā)明實施 例的一個或多個集成電路。處理器所執(zhí)行的程序為前述實施例中所述各個步驟所對應(yīng)的程 序,通過處理器實現(xiàn)執(zhí)行各個步驟;
[0069] 存儲器602,用于存儲所述處理器所執(zhí)行的程序、流表以及緩存報文;
[0070] 通信接口 603,與控制器連接、用于上傳報文或報文頭至控制器,并接收控制器下 發(fā)的流轉(zhuǎn)發(fā)表項;
[0071] 轉(zhuǎn)發(fā)端口 604,用于接收報文以及根據(jù)路徑信息轉(zhuǎn)發(fā)報文。
[0072] 網(wǎng)絡(luò)設(shè)備在運行時,處理器601通過轉(zhuǎn)發(fā)端口 604接收來自于網(wǎng)絡(luò)外的報文或者 接收上一網(wǎng)絡(luò)設(shè)備發(fā)送的報文,當處理器601發(fā)現(xiàn)所述報文中不存路徑信息時,表明當前 接收的報文來來自于網(wǎng)絡(luò)外,此時處理器601根據(jù)所述報文查詢所述存儲器602中的流表, 若流表中不存在與所述報文匹配的流轉(zhuǎn)發(fā)表項,處理器601緩存所述報文至存儲器602,通 過通信接口 603將所述報文或所述報文的報文頭發(fā)送至控制器,控制器根據(jù)所述報文的報 文頭以及網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建流轉(zhuǎn)發(fā)表項,所述流轉(zhuǎn)發(fā)表項中包括路徑信息,處理器601通 過通信接口 603接收所述流轉(zhuǎn)發(fā)表項,并更新流表,若處理器601接收到的報文中包含路徑 信息,則說明當前網(wǎng)絡(luò)設(shè)備接收到的報文來自上一網(wǎng)絡(luò)設(shè)備,此時處理器601通過轉(zhuǎn)發(fā)端 口 604轉(zhuǎn)發(fā)所述報文。當網(wǎng)絡(luò)設(shè)備再次轉(zhuǎn)發(fā)具有相同源地址和目的地址的報文時,此時處 理器601根據(jù)報文中的目的地址、源地址在流表中查找匹配的流轉(zhuǎn)發(fā)表項,并所述流轉(zhuǎn)發(fā) 表項中的路徑信息添加到所述報文中,并根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。
[0073] 優(yōu)選的,處理器601在通過轉(zhuǎn)發(fā)端口 604轉(zhuǎn)發(fā)報文時,還需判斷路徑信息中是否存 在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號,當存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號時,繼續(xù)判斷所述轉(zhuǎn)發(fā)端口是否 存在鏈路故障,若存在故障,則將所述報文中的所述路徑信息中的所述轉(zhuǎn)發(fā)端口的端口號 修改為所述轉(zhuǎn)發(fā)端口對應(yīng)的備用路徑的端口號,并根據(jù)修改后的路徑信息轉(zhuǎn)發(fā)所述報文, 否則直接從所述轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)所述報文。當路徑信息中不存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號時, 去除報文中的路徑信息并將報文轉(zhuǎn)發(fā)至報文中目的地址對應(yīng)的設(shè)備。
[0074] 具體的,所述處理器601判斷所述路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號的 實現(xiàn)方式可參考上述方法實施例中所述,在此不再贅述。
[0075] 圖7示出了本發(fā)明實施例提供的軟件定義網(wǎng)絡(luò)的結(jié)構(gòu)圖,為了便于說明,僅示出 了與本發(fā)明實施例相關(guān)的部分。本實施例提供的網(wǎng)絡(luò)優(yōu)化系統(tǒng)包括控制器以及多個上述實 施例所述的網(wǎng)絡(luò)設(shè)備,各個網(wǎng)絡(luò)設(shè)備間組網(wǎng)連接,并且網(wǎng)絡(luò)設(shè)備與所述控制器連接,這里所 述控制器用于接收來自所述網(wǎng)路設(shè)備的報文或所述報文的報文頭,根據(jù)所述報文的報文頭 以及網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建流轉(zhuǎn)發(fā)表項,所述流轉(zhuǎn)發(fā)表項中包括路徑信息,并將所述流轉(zhuǎn)發(fā)表 項發(fā)送至所述網(wǎng)絡(luò)設(shè)備。
[0076] 在本實施例中,當網(wǎng)絡(luò)設(shè)備接收到來自于網(wǎng)絡(luò)外的首包時,將報文或報文頭發(fā)送 至控制器,控制器根據(jù)所述報文的報文頭以及網(wǎng)絡(luò)拓撲結(jié)構(gòu)建立流轉(zhuǎn)發(fā)表項,然后將所述 流轉(zhuǎn)發(fā)表項下發(fā)至所述網(wǎng)絡(luò)設(shè)備,網(wǎng)絡(luò)設(shè)備將更新流表并將所述流轉(zhuǎn)發(fā)表項中的路徑信息 添加到報文中,然后向下游轉(zhuǎn)發(fā)報文,下游的網(wǎng)絡(luò)設(shè)備根據(jù)報文中的路徑信息繼續(xù)轉(zhuǎn)發(fā)報 文,直至輸出報文。當網(wǎng)絡(luò)設(shè)備再次轉(zhuǎn)發(fā)具有相同源地址和目的地址的報文時,當查詢到網(wǎng) 路設(shè)備的流表中包含有與接收到的報文相匹配的流轉(zhuǎn)發(fā)表項后,直接將匹配的流轉(zhuǎn)發(fā)表項 中的路徑信息添加到報文中,再轉(zhuǎn)發(fā)報文至下游網(wǎng)絡(luò)設(shè)備。
[0077] 本實施例中,控制器無需向轉(zhuǎn)發(fā)路徑上的所有網(wǎng)絡(luò)設(shè)備下發(fā)流表,只需向其發(fā)送 報文或報文頭的網(wǎng)絡(luò)設(shè)備(即轉(zhuǎn)發(fā)路徑上的第一個網(wǎng)絡(luò)設(shè)備)下發(fā)流轉(zhuǎn)發(fā)表項,與網(wǎng)絡(luò)規(guī)模 無關(guān),降低了對控制器的硬件要求,方便網(wǎng)絡(luò)擴展。
[0078] 本領(lǐng)域普通技術(shù)人員可以理解,實現(xiàn)上述實施例方法中的全部或部分步驟是可以 通過程序來指令相關(guān)的硬件來完成,所述的程序可以在存儲于一計算機可讀取存儲介質(zhì) 中,所述的存儲介質(zhì),如R0M/RAM、磁盤、光盤等。
[0079] 以上所述,僅為本發(fā)明較佳的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此, 任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍 為準。
【權(quán)利要求】
1. 一種軟件定義網(wǎng)絡(luò)中報文轉(zhuǎn)發(fā)方法,其特征在于,所述方法包括: 網(wǎng)絡(luò)設(shè)備接收報文; 當所述報文中不存在路徑信息時,根據(jù)所述報文查詢所述網(wǎng)絡(luò)設(shè)備的流表; 若所述網(wǎng)絡(luò)設(shè)備的流表中不存在與所述報文匹配的流轉(zhuǎn)發(fā)表項,緩存所述報文,將所 述報文或所述報文的報文頭發(fā)送至控制器,并接收所述控制器根據(jù)所述報文的報文頭以及 網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建的流轉(zhuǎn)發(fā)表項,將所述流轉(zhuǎn)發(fā)表項添加到所述網(wǎng)絡(luò)設(shè)備的流表中,所述 流轉(zhuǎn)發(fā)表項中包括路徑信息; 將所述流轉(zhuǎn)發(fā)表項中的路徑信息添加到所述報文中,并根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報 文。
2. 如權(quán)利要求1所述方法,其特征在于,當所述報文中不存在路徑信息時,所述方法還 包括: 若所述網(wǎng)絡(luò)設(shè)備的流表中存在與所述報文匹配的流轉(zhuǎn)發(fā)表項,則將所述匹配的流轉(zhuǎn)發(fā) 表項中的路徑信息添加到所述報文中,并根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。
3. 如權(quán)利要求1或2所述方法,其特征在于,所述方法還包括: 若所述報文中存在路徑信息,則根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。
4. 如權(quán)利要求1至3任一項所述方法,其特征在于,路徑信息為報文的轉(zhuǎn)發(fā)路徑的端口 號,具體包括報文的轉(zhuǎn)發(fā)路徑上依次經(jīng)過的各個網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口的端口 號。
5. 如權(quán)利要求4所述方法,其特征在于,所述根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文,具體包 括: 判斷所述路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號; 當所述路徑信息中不存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號時,則去除所述報文中的路徑信息并 發(fā)送至所述報文中目的地址對應(yīng)的設(shè)備; 當所述路徑信息中存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號時,根據(jù)所述路徑信息判斷所述網(wǎng)絡(luò)設(shè) 備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口是否存在鏈路故障; 若所述轉(zhuǎn)發(fā)端口存在鏈路故障,則將所述報文中的所述路徑信息中的所述轉(zhuǎn)發(fā)端口的 端口號修改為所述轉(zhuǎn)發(fā)端口對應(yīng)的備用路徑的端口號,并根據(jù)修改后的路徑信息轉(zhuǎn)發(fā)所述 報文; 若所述轉(zhuǎn)發(fā)端口不存在鏈路故障,則直接從所述轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)所述報文。
6. -種網(wǎng)絡(luò)設(shè)備,其特征在于,所述網(wǎng)絡(luò)設(shè)備包括: 報文接收單元,用于接收報文; 流表查詢單元,用于當所述報文中不存在路徑信息時,根據(jù)所述報文查詢所述網(wǎng)絡(luò)設(shè) 備的流表; 流表更新單元,用于當所述網(wǎng)絡(luò)設(shè)備的流表中不存在與所述報文匹配的流轉(zhuǎn)發(fā)表項 時,緩存所述報文,將所述報文或所述報文的報文頭發(fā)送至控制器,并接收所述控制器根據(jù) 所述報文的報文頭以及網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建的流轉(zhuǎn)發(fā)表項,將所述流轉(zhuǎn)發(fā)表項添加到所述網(wǎng) 絡(luò)設(shè)備的流表中,所述流轉(zhuǎn)發(fā)表項中包括路徑信息; 報文轉(zhuǎn)發(fā)單元,用于將所述流轉(zhuǎn)發(fā)表項中的路徑信息添加到所述報文中,并根據(jù)所述 路徑信息轉(zhuǎn)發(fā)所述報文。
7. 如權(quán)利要求6所述網(wǎng)絡(luò)設(shè)備,其特征在于,所述報文轉(zhuǎn)發(fā)單元,還用于當所述網(wǎng)絡(luò)設(shè) 備的流表中存在與所述報文匹配的流轉(zhuǎn)發(fā)表項時,將所述匹配的流轉(zhuǎn)發(fā)表項中的路徑信息 添加到所述報文中,并根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。
8. 如權(quán)利要求6或7所述網(wǎng)絡(luò)設(shè)備,其特征在于,所述報文轉(zhuǎn)發(fā)單元,還用于當所述報 文中存在路徑信息時,根據(jù)所述路徑信息轉(zhuǎn)發(fā)所述報文。
9. 如權(quán)利要求6-8任一項所述網(wǎng)絡(luò)設(shè)備,其特征在于,路徑信息為報文的轉(zhuǎn)發(fā)路徑的 端口號,具體包括報文的轉(zhuǎn)發(fā)路徑上依次經(jīng)過的各個網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口的 端口號; 所述報文轉(zhuǎn)發(fā)單元具體包括: 端口判斷模塊,用于判斷所述路徑信息中是否存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)端口號; 報文處理發(fā)送模塊,用于當所述端口模塊判斷確定所述路徑信息中不存在未經(jīng)轉(zhuǎn)發(fā)的 轉(zhuǎn)發(fā)端口號時,去除所述報文中的路徑信息并發(fā)送至所述報文中目的地址對應(yīng)的設(shè)備; 鏈路判斷模塊,用于當所述端口模塊判斷確定所述路徑信息中存在未經(jīng)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā) 端口號時,根據(jù)所述路徑信息判斷所述網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)所述報文的轉(zhuǎn)發(fā)端口是否存在鏈路故 障; 路徑修改轉(zhuǎn)發(fā)模塊,用于當所述鏈路判斷模塊判斷確定所述轉(zhuǎn)發(fā)端口存在鏈路故障 時,將所述報文中的所述路徑信息中的所述轉(zhuǎn)發(fā)端口的端口號修改為所述轉(zhuǎn)發(fā)端口對應(yīng)的 備用路徑的端口號,并根據(jù)修改后的路徑信息轉(zhuǎn)發(fā)所述報文; 報文直接轉(zhuǎn)發(fā)模塊,用于當所述鏈路判斷模塊判斷確定所述轉(zhuǎn)發(fā)端口不存在鏈路故障 時,直接從所述轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)所述報文。
10. -種軟件定義網(wǎng)絡(luò),其特征在于,包括控制器和如權(quán)利要求6-9任一項所述的網(wǎng)絡(luò) 設(shè)備; 所述控制器,用于接收來自所述網(wǎng)路設(shè)備的報文或所述報文的報文頭,根據(jù)所述報文 的報文頭以及網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)建流轉(zhuǎn)發(fā)表項,所述流轉(zhuǎn)發(fā)表項中包括路徑信息,并將所述 流轉(zhuǎn)發(fā)表項發(fā)送至所述網(wǎng)絡(luò)設(shè)備。
【文檔編號】H04L12/741GK104158749SQ201310176371
【公開日】2014年11月19日 申請日期:2013年5月14日 優(yōu)先權(quán)日:2013年5月14日
【發(fā)明者】彼得·艾斯伍德·史密斯 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1