欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

流表自學(xué)習(xí)方法、報(bào)文轉(zhuǎn)發(fā)方法和交換機(jī)的制作方法

文檔序號:7858333閱讀:129來源:國知局
專利名稱:流表自學(xué)習(xí)方法、報(bào)文轉(zhuǎn)發(fā)方法和交換機(jī)的制作方法
技術(shù)領(lǐng)域
本申請涉及一種快速轉(zhuǎn)發(fā)引擎的流表自學(xué)習(xí)方法、報(bào)文轉(zhuǎn)發(fā)方法以及使用所述方法的交換機(jī),尤其涉及在具有快速轉(zhuǎn)發(fā)引擎的交換機(jī)中在通過網(wǎng)絡(luò)協(xié)議棧進(jìn)行報(bào)文轉(zhuǎn)發(fā)處理中進(jìn)行流表學(xué)習(xí)的方法,從而不需對流表進(jìn)行手動設(shè)置,提高了交換機(jī)的維護(hù)便利。
背景技術(shù)
傳統(tǒng)的交換機(jī)在轉(zhuǎn)發(fā)報(bào)文時,對于從網(wǎng)卡收到的每一個需要轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)文,都是要先發(fā)送到協(xié)議棧對其進(jìn)行分析,通過解封裝、計(jì)算路由、封裝等工作后,再由網(wǎng)卡從指定端口發(fā)送出去。這樣的轉(zhuǎn)發(fā)效率很低。并且CPU占用率很高,導(dǎo)致操作系統(tǒng)上運(yùn)行的其他服務(wù)無法及時被執(zhí)行。

快速轉(zhuǎn)發(fā)引擎通過將數(shù)據(jù)轉(zhuǎn)發(fā)和操作系統(tǒng)分離來提高整個系統(tǒng)的速率??焖俎D(zhuǎn)發(fā)引擎的操作原理是通過從報(bào)文中提取信息,并在流表中進(jìn)行匹配,以得到報(bào)文的轉(zhuǎn)發(fā)重組信息,從而可以直接重組、轉(zhuǎn)發(fā)報(bào)文??焖俎D(zhuǎn)發(fā)引擎模塊轉(zhuǎn)發(fā)數(shù)據(jù)依賴于流表中的報(bào)文重組信息。但是,通??焖俎D(zhuǎn)發(fā)引擎使用的流表通過需要管理員手動進(jìn)行設(shè)置,這種手動操作既費(fèi)時,也容易發(fā)生錯誤。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種在使用快速轉(zhuǎn)發(fā)引擎的交換機(jī)中通過對首次處理的每個數(shù)據(jù)流經(jīng)過網(wǎng)絡(luò)協(xié)議棧的路由處理和報(bào)文重組進(jìn)行流表學(xué)習(xí),從而動態(tài)地創(chuàng)建和更新流表的方法、一種報(bào)文轉(zhuǎn)發(fā)方法以及使用所述方法的交換機(jī)。根據(jù)本發(fā)明的一方面,提供一種快速轉(zhuǎn)發(fā)引擎的流表自學(xué)習(xí)方法,包括,每當(dāng)交換機(jī)從外部接收到報(bào)文時,如果使用接收的報(bào)文中的報(bào)頭信息在快速轉(zhuǎn)發(fā)引擎的流表中沒有找到匹配的流表項(xiàng),則執(zhí)行以下步驟使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“學(xué)習(xí)中”;通過網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和重組;根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“已學(xué)習(xí)”。在創(chuàng)建新的流表項(xiàng)的步驟中,可分別將所述流表項(xiàng)的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型設(shè)置為所述報(bào)頭信息中的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型,并且將所述流表項(xiàng)的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。所述的流表自學(xué)習(xí)方法可還包括通過網(wǎng)絡(luò)接口發(fā)送重組的報(bào)文。所述的流表自學(xué)習(xí)方法可還包括設(shè)置hook函數(shù),所述hook函數(shù)用于在網(wǎng)絡(luò)接口發(fā)送所述重組的報(bào)文之前,觸發(fā)執(zhí)行所述更新創(chuàng)建的流表項(xiàng)的步驟。所述通過設(shè)置的hook函數(shù)執(zhí)行更新創(chuàng)建的流表項(xiàng)的步驟可包括從重組的報(bào)文中提取報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建私有協(xié)議報(bào)文,并且將構(gòu)建的私有協(xié)議報(bào)文發(fā)送給快速轉(zhuǎn)發(fā)引擎;快速轉(zhuǎn)發(fā)引擎在接收到所述私有協(xié)議報(bào)文后,使用接收到的私有協(xié)議報(bào)文中的報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息更新創(chuàng)建的流表項(xiàng)。所述私有協(xié)議可為快速命令控制協(xié)議。根據(jù)本發(fā)明的另一方面,提供ー種在包括快速轉(zhuǎn)發(fā)引擎的交換機(jī)中執(zhí)行的報(bào)文轉(zhuǎn)發(fā)方法,包括從外部接收報(bào)文;使用接收的報(bào)文中的報(bào)頭信息在流表中匹配流表項(xiàng);如果在流表中沒有匹配到流表項(xiàng),則執(zhí)行以下操作使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“學(xué)習(xí)中”,通過網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和重組,根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),將所述流表項(xiàng)的狀態(tài)標(biāo)注為“已學(xué)習(xí)”,并且通過網(wǎng)絡(luò)接ロ發(fā)送重組的報(bào)文。在創(chuàng)建新的流表項(xiàng)的處理中,可分別將所述流表項(xiàng)的源IP地址、目的IP地址、源端ロ、目的端ロ以及協(xié)議類型設(shè)置為所述報(bào)頭信息中的源IP地址、目的IP地址、源端ロ、目的端ロ以及協(xié)議類型,并且將所述流表項(xiàng)的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。所述的報(bào)文轉(zhuǎn)發(fā)方法可還包括設(shè)置hook函數(shù),所述hook函數(shù)用于在網(wǎng)絡(luò)接ロ發(fā) 送所述重組的報(bào)文之前,觸發(fā)執(zhí)行所述更新創(chuàng)建的流表項(xiàng)的步驟。所述設(shè)置的hook函數(shù)觸發(fā)執(zhí)行更新創(chuàng)建的流表項(xiàng)的步驟可包括從重組的報(bào)文中提取報(bào)文重組信息、接ロ信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建私有協(xié)議報(bào)文,并且將構(gòu)建的私有協(xié)議報(bào)文發(fā)送給快速轉(zhuǎn)發(fā)引擎;快速轉(zhuǎn)發(fā)引擎在接收到所述私有協(xié)議報(bào)文后,使用接收到的私有協(xié)議報(bào)文中的報(bào)文重組信息、接ロ信息以及轉(zhuǎn)發(fā)策略信息更新創(chuàng)建的流表項(xiàng)。所述的報(bào)文轉(zhuǎn)發(fā)方法可還包括如果在流表中匹配到流表項(xiàng),并且匹配的流表項(xiàng)的狀態(tài)為“已學(xué)習(xí)”,則使用匹配的流表項(xiàng)中的信息對接收的報(bào)文進(jìn)行重組,并且通過報(bào)文輸出(PKO)單元發(fā)送重組的報(bào)文。所述私有協(xié)議可為快速命令控制協(xié)議。根據(jù)本發(fā)明的另一方面,提供ー種為快速轉(zhuǎn)發(fā)引擎生成流表的方法,所述方法包括,在交換機(jī)中為快速轉(zhuǎn)發(fā)引擎創(chuàng)建流表;每當(dāng)從外部接收到報(bào)文時,如果使用接收的報(bào)文中的報(bào)頭信息在快速轉(zhuǎn)發(fā)引擎的流表中沒有找到匹配的流表項(xiàng),則執(zhí)行以下步驟使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“學(xué)習(xí)中”,通過網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和重組,根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“已學(xué)習(xí)”。在創(chuàng)建新的流表項(xiàng)的步驟中,可分別將所述流表項(xiàng)的源IP地址、目的IP地址、源端ロ、目的端ロ以及協(xié)議類型設(shè)置為所述報(bào)頭信息中的源IP地址、目的IP地址、源端ロ、目的端ロ以及協(xié)議類型,并且將所述流表項(xiàng)的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。所述的方法可還包括通過網(wǎng)絡(luò)接ロ發(fā)送重組的報(bào)文。所述的方法可還包括設(shè)置hook函數(shù),所述hook函數(shù)用于在網(wǎng)絡(luò)接ロ發(fā)送所述重組的報(bào)文之前,觸發(fā)執(zhí)行所述更新創(chuàng)建的流表項(xiàng)的步驟。所述通過設(shè)置的hook函數(shù)執(zhí)行更新創(chuàng)建的流表項(xiàng)的步驟可包括從重組的報(bào)文中提取報(bào)文重組信息、接ロ信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建私有協(xié)議報(bào)文,并且將構(gòu)建的私有協(xié)議報(bào)文發(fā)送給快速轉(zhuǎn)發(fā)引擎;快速轉(zhuǎn)發(fā)引擎在接收到所述私有協(xié)議報(bào)文后,使用接收到的私有協(xié)議報(bào)文中的報(bào)文重組信息、接ロ信息以及轉(zhuǎn)發(fā)策略信息更新創(chuàng)建的流表項(xiàng)。所述私有協(xié)議可為快速命令控制協(xié)議。
根據(jù)本發(fā)明的另一方面,提供一種執(zhí)行快速轉(zhuǎn)發(fā)引擎的流表自學(xué)習(xí)的交換機(jī),包括第一模塊,用于每當(dāng)交換機(jī)從外部接收到報(bào)文時,如果使用接收的報(bào)文中的報(bào)頭信息在快速轉(zhuǎn)發(fā)引擎的流表中沒有找到匹配的流表項(xiàng),則控制第二模塊執(zhí)行操作;第二模塊,用于在第一模塊控制下,使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“學(xué)習(xí)中”,通過網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和重組,根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“已學(xué)習(xí)”。第二模塊在創(chuàng)建新的流表項(xiàng)時,可分別將所述流表項(xiàng)的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型設(shè)置為所述報(bào)頭信息中的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型,并且將所述流表項(xiàng)的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。第二模塊可還通過網(wǎng)絡(luò)接口發(fā)送重組的報(bào)文。第二模塊還可設(shè)置hook函數(shù),所述hook函數(shù)用于在網(wǎng)絡(luò)接口發(fā)送所述重組的報(bào) 文之前,觸發(fā)執(zhí)行所述更新創(chuàng)建的流表項(xiàng)。第二模塊在通過設(shè)置的hook函數(shù)執(zhí)行更新創(chuàng)建的流表項(xiàng)時,可從重組的報(bào)文中提取報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建私有協(xié)議報(bào)文,并且將構(gòu)建的私有協(xié)議報(bào)文發(fā)送給快速轉(zhuǎn)發(fā)引擎;其中,快速轉(zhuǎn)發(fā)引擎在接收到所述私有協(xié)議報(bào)文后,可使用接收到的私有協(xié)議報(bào)文中的報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息更新創(chuàng)建的流表項(xiàng)。所述私有協(xié)議可為快速命令控制協(xié)議。根據(jù)本發(fā)明的另一方面,提供一種使用快速轉(zhuǎn)發(fā)引擎轉(zhuǎn)發(fā)報(bào)文的交換機(jī),包括第一模塊,用于從外部接收報(bào)文;第二模塊,用于使用接收的報(bào)文中的報(bào)頭信息在流表中匹配流表項(xiàng);第三模塊,用于如果在流表中沒有匹配到流表項(xiàng),則執(zhí)行以下操作使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“學(xué)習(xí)中”,通過網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和重組,根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“已學(xué)習(xí)”,通過網(wǎng)絡(luò)接口發(fā)送重組的報(bào)文。第三模塊在創(chuàng)建新的流表項(xiàng)時,可分別將所述流表項(xiàng)的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型設(shè)置為所述報(bào)頭信息中的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型,并且將所述流表項(xiàng)的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。第三模塊還可設(shè)置hook函數(shù),所述hook函數(shù)用于在網(wǎng)絡(luò)接口發(fā)送所述重組的報(bào)文之前,觸發(fā)執(zhí)行所述更新創(chuàng)建的流表項(xiàng)。第三模塊在通過設(shè)置的hook函數(shù)觸發(fā)執(zhí)行更新創(chuàng)建的流表項(xiàng)時,可從重組的報(bào)文中提取報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建私有協(xié)議報(bào)文,并且將構(gòu)建的私有協(xié)議報(bào)文發(fā)送給快速轉(zhuǎn)發(fā)引擎;其中,快速轉(zhuǎn)發(fā)引擎在接收到所述私有協(xié)議報(bào)文后,使用接收到的私有協(xié)議報(bào)文中的報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息更新創(chuàng)建的流表項(xiàng)。如果在流表中匹配到流表項(xiàng),并且匹配的流表項(xiàng)的狀態(tài)為“已學(xué)習(xí)”,則第三模塊可使用匹配的流表項(xiàng)中的信息對接收的報(bào)文進(jìn)行重組,并且通過報(bào)文輸出(PKO)單元發(fā)送重組的報(bào)文。所述私有協(xié)議可為快速命令控制協(xié)議。


通過下面結(jié)合附圖進(jìn)行的描述,本發(fā)明的上述和其他目的和特點(diǎn)將會變得更加清楚,其中圖I是示出快速轉(zhuǎn)發(fā)引擎的流表的流表項(xiàng)的結(jié)構(gòu)的示意圖;圖2是示出根據(jù)本發(fā)明的示例性實(shí)施例的流表自學(xué)習(xí)方法、報(bào)文轉(zhuǎn)發(fā)方法和流表生成方法的流程圖;圖3是示出根據(jù)本發(fā)明的實(shí)施例的流表自學(xué)習(xí)方法的處理的示意圖。
具體實(shí)施例方式以下,參照附圖來詳細(xì)說明本發(fā)明的實(shí)施例。交換機(jī)的快速轉(zhuǎn)發(fā)引擎使用流表來進(jìn)行報(bào)文的重組并轉(zhuǎn)發(fā)重組的報(bào)文。所述流表 包含報(bào)文的重組信息、接ロ信息以及轉(zhuǎn)發(fā)策略信息。圖I示意性地示出快速轉(zhuǎn)發(fā)引擎使用的流表中的流表項(xiàng)的結(jié)構(gòu)。參照圖1,每個流表項(xiàng)通常包括以下信息dsa_info:交換芯片內(nèi)部矩陣信息ether_dhost:目的 MACether_shost:源 MACout_ether_type :外層 VLAN 標(biāo)識out_tag :外層 VLAN IDon_ether_type 內(nèi)層 VLAN 標(biāo)識in_tag :內(nèi)層 VLAN IDeth_type :以太網(wǎng)類型字段tunnel_12_header: capwap隧道中承載的用戶ニ層信息,有可能是wifi頭(無線),也有可能是ethernet頭(有線)sip :源 IPdip :目的 IPsport:源端 ロdport :目的端ロP :協(xié)議類型R :保留forward_port:從哪個端 ロ轉(zhuǎn)發(fā)action_type :執(zhí)行策略類型action_mask:執(zhí)行策略掩碼tunnel_idx: capwap 隧道表索引time_stamp :流表建立時間戳exten_index:保留control_index:保留meter_index:限速表索引nat_index: nat 轉(zhuǎn)換表索弓丨rule_state:流表狀態(tài)標(biāo)識
R2 :保留在本發(fā)明的流表自學(xué)習(xí)方法、報(bào)文轉(zhuǎn)發(fā)方法、流表生成方法以及使用所述方法的交換機(jī)中,對使用網(wǎng)絡(luò)協(xié)議棧對首次通過的每個數(shù)據(jù)流進(jìn)行路由和重組處理進(jìn)行學(xué)習(xí),動態(tài)地為每個數(shù)據(jù)流建立包括報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息的流表項(xiàng),從而快速轉(zhuǎn)發(fā)引擎可參照建立的流表項(xiàng)進(jìn)行隨后通過的報(bào)文的重組和轉(zhuǎn)發(fā)處理。圖2是示出根據(jù)本發(fā)明的示例性實(shí)施例的流表自學(xué)習(xí)方法、報(bào)文轉(zhuǎn)發(fā)方法以及流表生成方法的流程圖。參照圖2,在使用快速轉(zhuǎn)發(fā)引擎的交換機(jī)中,在步驟S210,從外部接收報(bào)文。在步驟S220,交換機(jī)的快速轉(zhuǎn)發(fā)引擎使用接收的報(bào)文中的報(bào)頭信息在流表中匹配流表項(xiàng)。具體為,快速轉(zhuǎn)發(fā)引擎使用從接收的報(bào)文中的報(bào)頭提取的源IP地址、目的IP地址、源端口、目的端口和協(xié)議號在流表中查找匹配的流表項(xiàng)。 如果在步驟S220,快速轉(zhuǎn)發(fā)引擎確定沒有匹配到流表項(xiàng),則在步驟S230,快速轉(zhuǎn)發(fā)引擎使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),所述流表項(xiàng)中的源IP地址、目的IP地址、源端口、目的端口和協(xié)議號分別為所述報(bào)頭中的源IP地址、目的IP地址、源端口、目的端口和協(xié)議號。此外,將所述流表項(xiàng)的狀態(tài)(如圖I中的rule_State)標(biāo)注為“學(xué)習(xí)中”。根據(jù)本發(fā)明的示例性實(shí)施例,可將所述流表項(xiàng)中的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。此時,圖I所示的流表項(xiàng)結(jié)構(gòu)中除上述字段以外,其他的字段可以為空或預(yù)定的默認(rèn)值。換句話說,當(dāng)流表項(xiàng)的狀態(tài)被標(biāo)注為“學(xué)習(xí)中”時,所述其他的字段為無效字段。在步驟S240,快速轉(zhuǎn)發(fā)引擎通過交換機(jī)系統(tǒng)的控制面將所述報(bào)文發(fā)送到網(wǎng)絡(luò)協(xié)議棧,網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和報(bào)文重組。此后,在步驟S250,在重組的報(bào)文通過網(wǎng)絡(luò)接口被發(fā)送之前,快速轉(zhuǎn)發(fā)引擎取得所述重組的報(bào)文中的信息,并且根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)(如圖I中的rule_state)標(biāo)注為“已學(xué)習(xí)”。快速轉(zhuǎn)發(fā)引擎使用重組的報(bào)文中的重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息來更新在步驟S230創(chuàng)建的流表項(xiàng)。例如,可重組的報(bào)文中的重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息來填充圖I中所示的流表項(xiàng)的其他字段,如 dsa_info、ether_dhost、ether_shost、out_ether_type>out_tag、in_ether_type>in_tag、ether_type、tunnel_12—header、forward—port、action_type、action—mask、tunnel_idx、nat_index等。所述流表項(xiàng)經(jīng)上述更新可被快速轉(zhuǎn)發(fā)引擎用來直接對所述數(shù)據(jù)流的報(bào)文進(jìn)行轉(zhuǎn)發(fā)。在步驟S260,交換機(jī)的以太網(wǎng)驅(qū)動通過網(wǎng)絡(luò)接口發(fā)送重組的報(bào)文。另一方面,如果在步驟S220,快速轉(zhuǎn)發(fā)引擎確定匹配到了流表項(xiàng),并且匹配的流表項(xiàng)的狀態(tài)為“已學(xué)習(xí)”,則在步驟S270,快速轉(zhuǎn)發(fā)引擎使用匹配的流表項(xiàng)中的信息對接收的報(bào)文進(jìn)行重組,并且通過報(bào)文輸出(PKO)單元發(fā)送重組的報(bào)文。在本發(fā)明的示例性實(shí)施例的交換機(jī)中,可并行地執(zhí)行步驟S250與步驟S260,前提是,在執(zhí)行步驟S260以前能夠?qū)⒅亟M的報(bào)文中的信息傳遞給快速轉(zhuǎn)發(fā)引擎,以用于執(zhí)行步驟 S250。在交換機(jī)中,待轉(zhuǎn)發(fā)的報(bào)文經(jīng)過網(wǎng)絡(luò)協(xié)議棧進(jìn)行路由和報(bào)文重組處理(步驟S240)后,被傳送到以太網(wǎng)驅(qū)動中。為了將重組報(bào)文的信息傳遞給快速轉(zhuǎn)發(fā)引擎,可使用多種進(jìn)程間通信手段,如共享內(nèi)存、信號標(biāo)、管道等進(jìn)行所述重組報(bào)文的信息傳遞。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,在交換機(jī)的以太網(wǎng)驅(qū)動中設(shè)置hook函數(shù),所述hook函數(shù)在以太網(wǎng)驅(qū)動接收到經(jīng)過網(wǎng)絡(luò)協(xié)議棧進(jìn)行路由和報(bào)文重組的報(bào)文后,在通過網(wǎng)絡(luò)接ロ發(fā)送所述重組的報(bào)文之前,觸發(fā)步驟S650的執(zhí)行作為hook的handler。在上述使用hook函數(shù)的實(shí)施例中,步驟S250被執(zhí)行為以太網(wǎng)驅(qū)動從重組的報(bào)文中提取報(bào)文重組信息、接ロ信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建私有協(xié)議報(bào)文,并且將構(gòu)建的私有協(xié)議報(bào)文發(fā)送給快速轉(zhuǎn)發(fā)引擎;快速轉(zhuǎn)發(fā)引擎在接收到所述私有協(xié)議報(bào)文后,使用接收到的私有協(xié)議報(bào)文中的報(bào)文重組信息、接ロ信息以及轉(zhuǎn)發(fā)策略信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“已學(xué)習(xí)”。根據(jù)本發(fā)明的可選實(shí)施例,所述私有協(xié)議是在以太網(wǎng)中定義和傳輸?shù)目焖倜羁刂茀f(xié)議(FCCP),在交換機(jī)中構(gòu)建并傳輸包括報(bào)文重組信息、接ロ信息以及轉(zhuǎn)發(fā)策略信息的FCCP報(bào)文。根據(jù)本發(fā)明的可選實(shí)施例,使用快速轉(zhuǎn)發(fā)引擎的交換機(jī)可以是多核處理器的交換 機(jī),此時,交換機(jī)從外部接收的報(bào)文可以先通過報(bào)文調(diào)度單元進(jìn)行調(diào)度,再傳送給用于轉(zhuǎn)發(fā)接收的報(bào)文的快速轉(zhuǎn)發(fā)引擎。圖3示意性地示出根據(jù)本發(fā)明的上述優(yōu)選實(shí)施例的流表自學(xué)習(xí)方法的處理,其中示出對首次通過交換機(jī)轉(zhuǎn)發(fā)的數(shù)據(jù)流的報(bào)文的處理,從而進(jìn)行流表自學(xué)習(xí)。參照圖3,在使用快速轉(zhuǎn)發(fā)引擎的交換機(jī)中,在(1),交換機(jī)從外部接收到報(bào)文,并且將接收的報(bào)文交給其快速轉(zhuǎn)發(fā)引擎。在(2),快速轉(zhuǎn)發(fā)引擎使用接收的報(bào)文中的報(bào)頭信息創(chuàng)建新的流表項(xiàng),將所述流表項(xiàng)的狀態(tài)標(biāo)注為“學(xué)習(xí)中”。具體來說,此時,從接收的報(bào)文中的報(bào)頭提取源IP地址、目的IP地址、源端ロ、目的端口和協(xié)議號作為新創(chuàng)建的流表項(xiàng)中的源IP地址、目的IP地址、源端ロ、目的端口和協(xié)議號,并且將所述流表項(xiàng)的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。在(3)和(4),快速轉(zhuǎn)發(fā)引擎將接收的報(bào)文通過交換機(jī)系統(tǒng)的控制面?zhèn)鬟f給以太網(wǎng)驅(qū)動。在(5),以太網(wǎng)驅(qū)動將所述報(bào)文發(fā)送給網(wǎng)絡(luò)協(xié)議棧進(jìn)行路由和重組。在(6),網(wǎng)絡(luò)協(xié)議棧將經(jīng)過路由和重組處理的報(bào)文傳遞給以太網(wǎng)驅(qū)動進(jìn)行發(fā)送。在(7),以太網(wǎng)驅(qū)動通過在其中預(yù)定設(shè)置的hook函數(shù),從路由、重組的報(bào)文提取報(bào)文重組信息、發(fā)送接ロ信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建FCCP報(bào)文。在(8)和(10),hook函數(shù)將構(gòu)建的FCCP報(bào)文通過交換機(jī)系統(tǒng)的控制面發(fā)送給快速轉(zhuǎn)發(fā)引擎。同時,在(9),以太網(wǎng)驅(qū)動通過其網(wǎng)絡(luò)接ロ發(fā)送重組的報(bào)文。在(11),快速轉(zhuǎn)發(fā)引擎接收到從以太網(wǎng)驅(qū)動發(fā)送的所述FCCP報(bào)文,并且使用所述FCCP報(bào)文中的報(bào)文重組信息、發(fā)送接ロ信息以及轉(zhuǎn)發(fā)策略信息來更新在(2)創(chuàng)建的流表項(xiàng)。此后,在(12),快速轉(zhuǎn)發(fā)引擎釋放接收的FCCP報(bào)文。本發(fā)明還提供ー種在使用快速轉(zhuǎn)發(fā)引擎的交換機(jī)中生成流表的方法以及使用本發(fā)明的流表自學(xué)習(xí)方法、報(bào)文轉(zhuǎn)發(fā)方法以及生成流表的方法,以及使用所述方法的交換機(jī)。從參照圖2和圖3描述的本發(fā)明的示例性實(shí)施例可以看出,本發(fā)明的流表自學(xué)習(xí)方法、報(bào)文轉(zhuǎn)發(fā)方法以及生成流表的方法,以及使用所述方法的交換機(jī)可在通過網(wǎng)絡(luò)協(xié)議棧進(jìn)行首次通過交換機(jī)轉(zhuǎn)發(fā)的數(shù)據(jù)流的處理時,對報(bào)文重組、接ロ信息以及轉(zhuǎn)發(fā)策略進(jìn)行學(xué)習(xí),并且動態(tài)地建立流表項(xiàng),從而自動地生成流表,從而免除了手動建立流表的需要,也降低了在手動建立流表時可能發(fā)生的錯誤。
盡管已參照優(yōu)選實(shí)施例描述了本發(fā)明,但本領(lǐng)域技術(shù)人員應(yīng)該理解,在不脫離 由權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對這些實(shí)施例進(jìn)行各種修改和變換。
權(quán)利要求
1.一種快速轉(zhuǎn)發(fā)引擎的流表自學(xué)習(xí)方法,包括,每當(dāng)交換機(jī)從外部接收到報(bào)文時,如果使用接收的報(bào)文中的報(bào)頭信息在快速轉(zhuǎn)發(fā)引擎的流表中沒有找到匹配的流表項(xiàng),則執(zhí)行以下步驟 使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“學(xué)習(xí)中,,; 通過網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和重組; 根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“已學(xué)習(xí)”。
2.如權(quán)利要求I所述的流表自學(xué)習(xí)方法,其中,在創(chuàng)建新的流表項(xiàng)的步驟中,分別將所述流表項(xiàng)的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型設(shè)置為所述報(bào)頭信息中的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型,并且將所述流表項(xiàng)的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。
3.如權(quán)利要求2所述的流表自學(xué)習(xí)方法,還包括通過網(wǎng)絡(luò)接口發(fā)送重組的報(bào)文。
4.如權(quán)利要求3所述的流表自學(xué)習(xí)方法,還包括 設(shè)置hook函數(shù),所述hook函數(shù)用于在網(wǎng)絡(luò)接口發(fā)送所述重組的報(bào)文之前,觸發(fā)執(zhí)行所述更新創(chuàng)建的流表項(xiàng)的步驟。
5.如權(quán)利要求4所述的流表自學(xué)習(xí)方法,其中,所述通過設(shè)置的hook函數(shù)執(zhí)行更新創(chuàng)建的流表項(xiàng)的步驟包括 從重組的報(bào)文中提取報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建私有協(xié)議報(bào)文,并且將構(gòu)建的私有協(xié)議報(bào)文發(fā)送給快速轉(zhuǎn)發(fā)引擎; 快速轉(zhuǎn)發(fā)引擎在接收到所述私有協(xié)議報(bào)文后,使用接收到的私有協(xié)議報(bào)文中的報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息更新創(chuàng)建的流表項(xiàng)。
6.如權(quán)利要求5所述的流表自學(xué)習(xí)方法,其中,所述私有協(xié)議為快速命令控制協(xié)議。
7.—種在包括快速轉(zhuǎn)發(fā)引擎的交換機(jī)中執(zhí)行的報(bào)文轉(zhuǎn)發(fā)方法,包括 從外部接收報(bào)文; 使用接收的報(bào)文中的報(bào)頭信息在流表中匹配流表項(xiàng); 如果在流表中沒有匹配到流表項(xiàng),則執(zhí)行以下操作 使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“學(xué)習(xí)中”, 通過網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和重組, 根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“已學(xué)習(xí)”, 通過網(wǎng)絡(luò)接口發(fā)送重組的報(bào)文。
8.如權(quán)利要求7所述的報(bào)文轉(zhuǎn)發(fā)方法,其中,在創(chuàng)建新的流表項(xiàng)的處理中,分別將所述流表項(xiàng)的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型設(shè)置為所述報(bào)頭信息中的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型,并且將所述流表項(xiàng)的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。
9.如權(quán)利要求8所述的報(bào)文轉(zhuǎn)發(fā)方法,還包括設(shè)置hook函數(shù),所述hook函數(shù)用于在網(wǎng)絡(luò)接口發(fā)送所述重組的報(bào)文之前,觸發(fā)執(zhí)行所述更新創(chuàng)建的流表項(xiàng)的步驟。
10.如權(quán)利要求9所述的報(bào)文轉(zhuǎn)發(fā)方法,其中,所述設(shè)置的hook函數(shù)觸發(fā)執(zhí)行更新創(chuàng)建的流表項(xiàng)的步驟包括 從重組的報(bào)文中提取報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建私有協(xié)議報(bào)文,并且將構(gòu)建的私有協(xié)議報(bào)文發(fā)送給快速轉(zhuǎn)發(fā)引擎; 快速轉(zhuǎn)發(fā)引擎在接收到所述私有協(xié)議報(bào)文后,使用接收到的私有協(xié)議報(bào)文中的報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息更新創(chuàng)建的流表項(xiàng)。
11.如權(quán)利要求7所述的報(bào)文轉(zhuǎn)發(fā)方法,還包括如果在流表中匹配到流表項(xiàng),并且匹配的流表項(xiàng)的狀態(tài)為“已學(xué)習(xí)”,則使用匹配的流表項(xiàng)中的信息對接收的報(bào)文進(jìn)行重組,并且通過報(bào)文輸出(PKO)單元發(fā)送重組的報(bào)文。
12.如權(quán)利要求11所述的報(bào)文轉(zhuǎn)發(fā)方法,其中,所述私有協(xié)議為快速命令控制協(xié)議。
13.一種為快速轉(zhuǎn)發(fā)引擎生成流表的方法,所述方法包括,在交換機(jī)中 為快速轉(zhuǎn)發(fā)引擎創(chuàng)建流表; 每當(dāng)從外部接收到報(bào)文時,如果使用接收的報(bào)文中的報(bào)頭信息在快速轉(zhuǎn)發(fā)引擎的流表中沒有找到匹配的流表項(xiàng),則執(zhí)行以下步驟 使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),并且將所述流表項(xiàng)的 狀態(tài)標(biāo)注為“學(xué)習(xí)中”, 通過網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和重組, 根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的 狀態(tài)標(biāo)注為“已學(xué)習(xí)”。
14.如權(quán)利要求13所述的方法,其中,在創(chuàng)建新的流表項(xiàng)的步驟中,分別將所述流表項(xiàng)的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型設(shè)置為所述報(bào)頭信息中的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型,并且將所述流表項(xiàng)的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。
15.如權(quán)利要求14所述的方法,還包括通過網(wǎng)絡(luò)接口發(fā)送重組的報(bào)文。
16.如權(quán)利要求15所述的方法,還包括設(shè)置hook函數(shù),所述hook函數(shù)用于在網(wǎng)絡(luò)接口發(fā)送所述重組的報(bào)文之前,觸發(fā)執(zhí)行所述更新創(chuàng)建的流表項(xiàng)的步驟。
17.如權(quán)利要求16所述的方法,其中,所述通過設(shè)置的hook函數(shù)執(zhí)行更新創(chuàng)建的流表項(xiàng)的步驟包括 從重組的報(bào)文中提取報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建私有協(xié)議報(bào)文,并且將構(gòu)建的私有協(xié)議報(bào)文發(fā)送給快速轉(zhuǎn)發(fā)引擎; 快速轉(zhuǎn)發(fā)引擎在接收到所述私有協(xié)議報(bào)文后,使用接收到的私有協(xié)議報(bào)文中的報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息更新創(chuàng)建的流表項(xiàng)。
18.如權(quán)利要求17所述的方法,其中,所述私有協(xié)議為快速命令控制協(xié)議。
19.一種執(zhí)行快速轉(zhuǎn)發(fā)引擎的流表自學(xué)習(xí)的交換機(jī),包括 第一模塊,用于每當(dāng)交換機(jī)從外部接收到報(bào)文時,如果使用接收的報(bào)文中的報(bào)頭信息在快速轉(zhuǎn)發(fā)引擎的流表中沒有找到匹配的流表項(xiàng),則控制第二模塊執(zhí)行操作; 第二模塊,用于在第一模塊控制下,使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“學(xué)習(xí)中”,通過網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和重組,根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“已學(xué)習(xí)”。
20.如權(quán)利要求19所述的交換機(jī),其中,第二模塊在創(chuàng)建新的流表項(xiàng)時,分別將所述流表項(xiàng)的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型設(shè)置為所述報(bào)頭信息中的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型,并且將所述流表項(xiàng)的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。
21.如權(quán)利要求20所述的交換機(jī),其中,第二模塊還通過網(wǎng)絡(luò)接口發(fā)送重組的報(bào)文。
22.如權(quán)利要求21所述的交換機(jī),第二模塊還設(shè)置hook函數(shù),所述hook函數(shù)用于在網(wǎng)絡(luò)接口發(fā)送所述重組的報(bào)文之前,觸發(fā)執(zhí)行所述更新創(chuàng)建的流表項(xiàng)。
23.如權(quán)利要求22所述的交換機(jī),其中,第二模塊在通過設(shè)置的hook函數(shù)執(zhí)行更新創(chuàng)建的流表項(xiàng)時,從重組的報(bào)文中提取報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建私有協(xié)議報(bào)文,并且將構(gòu)建的私有協(xié)議報(bào)文發(fā)送給快速轉(zhuǎn)發(fā)引擎; 其中,快速轉(zhuǎn)發(fā)引擎在接收到所述私有協(xié)議報(bào)文后,使用接收到的私有協(xié)議報(bào)文中的報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息更新創(chuàng)建的流表項(xiàng)。
24.如權(quán)利要求23所述的交換機(jī),其中,所述私有協(xié)議為快速命令控制協(xié)議。
25.一種使用快速轉(zhuǎn)發(fā)引擎轉(zhuǎn)發(fā)報(bào)文的交換機(jī),包括 第一模塊,用于從外部接收報(bào)文; 第二模塊,用于使用接收的報(bào)文中的報(bào)頭信息在流表中匹配流表項(xiàng); 第三模塊,用于如果在流表中沒有匹配到流表項(xiàng),則執(zhí)行以下操作 使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“學(xué)習(xí)中”, 通過網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和重組, 根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“已學(xué)習(xí)”, 通過網(wǎng)絡(luò)接口發(fā)送重組的報(bào)文。
26.如權(quán)利要求25所述的交換機(jī),其中,第三模塊在創(chuàng)建新的流表項(xiàng)時,分別將所述流表項(xiàng)的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型設(shè)置為所述報(bào)頭信息中的源IP地址、目的IP地址、源端口、目的端口以及協(xié)議類型,并且將所述流表項(xiàng)的創(chuàng)建時間戳設(shè)置為當(dāng)前時間。
27.如權(quán)利要求26所述的交換機(jī),其中,第三模塊還設(shè)置hook函數(shù),所述hook函數(shù)用于在網(wǎng)絡(luò)接口發(fā)送所述重組的報(bào)文之前,觸發(fā)執(zhí)行所述更新創(chuàng)建的流表項(xiàng)。
28.如權(quán)利要求27所述的交換機(jī),其中,第三模塊在通過設(shè)置的hook函數(shù)觸發(fā)執(zhí)行更新創(chuàng)建的流表項(xiàng)時,從重組的報(bào)文中提取報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息,使用提取的信息構(gòu)建私有協(xié)議報(bào)文,并且將構(gòu)建的私有協(xié)議報(bào)文發(fā)送給快速轉(zhuǎn)發(fā)引擎; 其中,快速轉(zhuǎn)發(fā)引擎在接收到所述私有協(xié)議報(bào)文后,使用接收到的私有協(xié)議報(bào)文中的報(bào)文重組信息、接口信息以及轉(zhuǎn)發(fā)策略信息更新創(chuàng)建的流表項(xiàng)。
29.如權(quán)利要求25所述的交換機(jī),其中,如果在流表中匹配到流表項(xiàng),并且匹配的流表項(xiàng)的狀態(tài)為“已學(xué)習(xí)”,則第三模塊使用匹配的流表項(xiàng)中的信息對接收的報(bào)文進(jìn)行重組,并且通過報(bào)文輸出(PKO)單元發(fā)送重組的報(bào)文。
30.如權(quán)利要求29所述的交換機(jī),其中,所述私有協(xié)議為快速命令控制協(xié)議。
全文摘要
提供一種流表自學(xué)習(xí)方法、報(bào)文轉(zhuǎn)發(fā)方法和交換機(jī)。一種快速轉(zhuǎn)發(fā)引擎的流表自學(xué)習(xí)方法,包括,每當(dāng)交換機(jī)從外部接收到報(bào)文時,如果使用接收的報(bào)文中的報(bào)頭信息在快速轉(zhuǎn)發(fā)引擎的流表中沒有找到匹配的流表項(xiàng),則執(zhí)行以下步驟使用所述報(bào)頭信息在流表中創(chuàng)建新的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“學(xué)習(xí)中”;通過網(wǎng)絡(luò)協(xié)議棧對接收的報(bào)文進(jìn)行路由和重組;根據(jù)重組的報(bào)文中的信息更新創(chuàng)建的流表項(xiàng),并且將所述流表項(xiàng)的狀態(tài)標(biāo)注為“已學(xué)習(xí)”。
文檔編號H04L12/56GK102769576SQ20121029582
公開日2012年11月7日 申請日期2012年8月17日 優(yōu)先權(quán)日2012年8月17日
發(fā)明者趙晗, 路濤 申請人:北京傲天動聯(lián)技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
淄博市| 三门峡市| 九寨沟县| 灵武市| 本溪市| 凯里市| 甘肃省| 永州市| 澎湖县| 尼玛县| 古蔺县| 金阳县| 宁津县| 呼和浩特市| 通海县| 齐齐哈尔市| 江北区| 鞍山市| 阳新县| 永福县| 鄂伦春自治旗| 柘城县| 横山县| 乌海市| 常州市| 黔西| 辛集市| 德化县| 永善县| 望都县| 元阳县| 三穗县| 蓬安县| 繁昌县| 福州市| 哈密市| 海原县| 南陵县| 天水市| 雷波县| 石城县|