亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種快速處理流表的方法和裝置制造方法

文檔序號(hào):7818342閱讀:452來(lái)源:國(guó)知局
一種快速處理流表的方法和裝置制造方法
【專利摘要】本發(fā)明提供一種快速處理流表的方法和裝置,應(yīng)用在SDN控制器上,包括:在SDN控制器本地建立一張hash表;接收來(lái)自交換機(jī)的第一報(bào)文,提取出該報(bào)文中攜帶的報(bào)文轉(zhuǎn)發(fā)信息,并結(jié)合學(xué)習(xí)到的該交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔?,依?jù)Hash算法計(jì)算出該交換機(jī)的出接口;根據(jù)提取的報(bào)文轉(zhuǎn)發(fā)信息及計(jì)算的出端口生成流表項(xiàng),然后將該流表項(xiàng)封裝成第二報(bào)文下發(fā)給交換機(jī)。根據(jù)本發(fā)明,可以提高SDN控制器處理Packet_in報(bào)文的速度以及降低Packet in報(bào)文的處理時(shí)延。
【專利說(shuō)明】一種快速處理流表的方法和裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】,特別涉及一種軟件定義網(wǎng)絡(luò)(Software DefinedNetwork, SDN)中SDN控制器快速處理流表的方法和裝置。

【背景技術(shù)】
[0002]SDN技術(shù)通過(guò)將傳統(tǒng)網(wǎng)絡(luò)設(shè)備的控制平面與數(shù)據(jù)平面分離,從而實(shí)現(xiàn)網(wǎng)絡(luò)流量的靈活控制。相應(yīng)地,SDN架構(gòu)中包括SDN控制器和SDN交換機(jī),其中:SDN控制器和SDN交換機(jī)之間通過(guò)SDN管理通道進(jìn)行通信,SDN控制器根據(jù)用戶的配置或者動(dòng)態(tài)運(yùn)行的協(xié)議生成流表下發(fā)到SDN交換機(jī),SDN交換機(jī)依據(jù)SDN控制器下發(fā)的流表進(jìn)行報(bào)文處理。


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

[0003]本發(fā)明提供一種快速處理流表的方法和裝置,通過(guò)本發(fā)明,可以提高SDN控制器處理Packet_in報(bào)文的速度以及降低Packet in報(bào)文的處理時(shí)延。
[0004]具體地,本發(fā)明是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的:
[0005]一種快速處理流表的方法,該方法應(yīng)用在SDN控制器上,包括:
[0006]在SDN控制器本地建立一張hash表;
[0007]接收來(lái)自交換機(jī)的第一報(bào)文,提取出該報(bào)文中攜帶的報(bào)文轉(zhuǎn)發(fā)信息,并結(jié)合學(xué)習(xí)到的該交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔?,依?jù)Hash算法計(jì)算出該交換機(jī)的出接口 ;
[0008]根據(jù)提取的報(bào)文轉(zhuǎn)發(fā)信息及計(jì)算的出端口生成流表項(xiàng),然后將該流表項(xiàng)封裝成第二報(bào)文下發(fā)給交換機(jī)。
[0009]其中,SDN控制器在下發(fā)第二報(bào)文給交換機(jī)的同時(shí),進(jìn)一步把第一報(bào)文的原有內(nèi)容封裝成第三報(bào)文發(fā)送給交換機(jī),以便交換機(jī)解析該報(bào)文后,根據(jù)本地保存的流表項(xiàng)加以轉(zhuǎn)發(fā)。
[0010]其中,當(dāng)轉(zhuǎn)發(fā)報(bào)文的源、目的IP地址不在同一個(gè)交換機(jī)上時(shí),所述SDN控制器根據(jù)提取的報(bào)文轉(zhuǎn)發(fā)信息及計(jì)算的出端口生成流表項(xiàng),具體為:
[0011]SDN控制器進(jìn)一步修改該轉(zhuǎn)發(fā)報(bào)文的五元組信息和/或封裝隧道信息,以形成該報(bào)文在二、三層網(wǎng)絡(luò)上轉(zhuǎn)發(fā)的完整流表項(xiàng),然后再將該流表項(xiàng)組裝成第二報(bào)文發(fā)送給交換機(jī)。
[0012]其中,該方法還包括:
[0013]當(dāng)SDN控制器接收到交換機(jī)發(fā)送的Port_StatuS報(bào)文告知出端口發(fā)生故障時(shí),更新SDN的網(wǎng)絡(luò)拓?fù)湫畔?,以便在后續(xù)Hash計(jì)算該交換機(jī)的出端口時(shí),將該發(fā)生故障的出端口剔除。其中,
[0014]所述第一報(bào)文為Packetjn報(bào)文,包含有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本、報(bào)文長(zhǎng)度信息;
[0015]所述第二報(bào)文為FloW_Mod報(bào)文,其中攜帶有指導(dǎo)交換機(jī)轉(zhuǎn)發(fā)所述報(bào)文的流表項(xiàng);
[0016]所述第三報(bào)文為Packet_out報(bào)文,包含有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本、報(bào)文長(zhǎng)度信息;
[0017]所述交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔樵摻粨Q機(jī)在SDN網(wǎng)絡(luò)中的上行端口。
[0018]本發(fā)明同時(shí)提供一種快速處理流表的裝置,運(yùn)行在SDN控制器上,包括:
[0019]Hash表建立單兀,用于在SDN控制器本地建立一張hash表;
[0020]出端口計(jì)算單元,用于接收來(lái)自交換機(jī)的第一報(bào)文,提取出該報(bào)文中攜帶的報(bào)文轉(zhuǎn)發(fā)信息,并結(jié)合學(xué)習(xí)到的該交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔?,依?jù)Hash算法計(jì)算出該交換機(jī)的出接口;
[0021]流表下發(fā)單元,用于根據(jù)提取的轉(zhuǎn)發(fā)報(bào)文信息及計(jì)算的出端口生成流表項(xiàng),然后將該流表項(xiàng)封裝成第二報(bào)文下發(fā)給交換機(jī)。
[0022]其中,流表下發(fā)單元在下發(fā)第二報(bào)文給交換機(jī)的同時(shí),進(jìn)一步把第一報(bào)文的原有內(nèi)容封裝成第三報(bào)文下發(fā)給交換機(jī),以便交換機(jī)解析該報(bào)文后,根據(jù)本地保存的流表項(xiàng)加以轉(zhuǎn)發(fā)。
[0023]其中,當(dāng)轉(zhuǎn)發(fā)報(bào)文的源、目的IP地址不在同一個(gè)交換機(jī)上時(shí),所述流表下發(fā)單元根據(jù)提取的轉(zhuǎn)發(fā)報(bào)文信息及計(jì)算的出端口生成流表項(xiàng),具體為:
[0024]流表下發(fā)單元進(jìn)一步修改該轉(zhuǎn)發(fā)報(bào)文的五元組信息和/或封裝隧道信息,以形成該報(bào)文在二、三層網(wǎng)絡(luò)上轉(zhuǎn)發(fā)的完整流表項(xiàng),然后將該流表項(xiàng)組裝成第二報(bào)文發(fā)送給交換機(jī)。
[0025]其中,該裝置還包括:
[0026]拓?fù)涓聠卧?用于當(dāng)SDN控制器接收到交換機(jī)發(fā)送的Port_Status報(bào)文告知出端口發(fā)生故障時(shí),更新SDN的網(wǎng)絡(luò)拓?fù)湫畔?,以便在后續(xù)流表計(jì)算單元在計(jì)算該交換機(jī)的出端口時(shí),將該發(fā)生故障的出端口剔除。
[0027]其中,
[0028]所述第一報(bào)文為Packetjn報(bào)文,包含有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本、報(bào)文長(zhǎng)度信息;
[0029]所述第二報(bào)文為FloW_Mod報(bào)文,其中攜帶有指導(dǎo)交換機(jī)轉(zhuǎn)發(fā)所述報(bào)文的流表項(xiàng);
[0030]所述第三報(bào)文為Packet_out報(bào)文,包含有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本、報(bào)文長(zhǎng)度信息;
[0031]所述交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔樵摻粨Q機(jī)在SDN網(wǎng)絡(luò)中的上行端口。
[0032]根據(jù)本發(fā)明,可以保證在實(shí)現(xiàn)流表負(fù)載分擔(dān)的前提下,可以提高SDN控制器處理Packet_in報(bào)文的速度以及降低Packet in報(bào)文的處理時(shí)延。

【專利附圖】

【附圖說(shuō)明】
[0033]圖1是本發(fā)明SDN網(wǎng)絡(luò)中流量轉(zhuǎn)發(fā)的示意圖;
[0034]圖2是本發(fā)明提供的快速處理流表的方法流程示意圖;
[0035]圖3是本發(fā)明提供的快速處理流表的裝置所在設(shè)備的硬件架構(gòu)示意圖;
[0036]圖4是本發(fā)明提供的快速處理流表的功能模塊示意圖。

【具體實(shí)施方式】
[0037]如圖1所示,為SDN網(wǎng)絡(luò)中的流量轉(zhuǎn)發(fā)示意圖。在該SDN網(wǎng)絡(luò)中,SW-1、SW-2、SW-3和SW-4是支持SDN協(xié)議的交換機(jī),它們與SDN控制器(Controller)共同組成一個(gè)SDN網(wǎng)絡(luò),其中該4臺(tái)交換機(jī)只負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)發(fā),而指導(dǎo)所述交換機(jī)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)的流表則從Controller通過(guò)SDN管理通道下發(fā)。
[0038]下面以SDN網(wǎng)絡(luò)中最為流行的OpenFlow技術(shù)為例,描述圖1所示的SDN網(wǎng)絡(luò)中的流量轉(zhuǎn)發(fā)流程,具體如下:
[0039]S11、來(lái)自主機(jī)的流量到達(dá)交換機(jī)(假設(shè)為SW-1)后,先查詢交換機(jī)(SW-1)本地保存的流表,如果查找到匹配的流表項(xiàng),則根據(jù)該流表項(xiàng)的指導(dǎo)進(jìn)行相應(yīng)處理;如果沒(méi)有查找到匹配的流表項(xiàng),則交換機(jī)(SW-1)將首包封裝到SDN協(xié)議的Packet_in報(bào)文中,然后上送到SDN控制器(Controller)進(jìn)行步驟S2。
[0040]S12、SDN控制器(Controller)分析Packet_in報(bào)文中原始報(bào)文的源MAC、目的MAC、協(xié)議類型、源IP、目的IP等字段的信息,查詢SDN控制器(Controller)本地保存的流表,如果沒(méi)有查詢到對(duì)應(yīng)的匹配項(xiàng),則按照預(yù)定的算法(例如:輪詢計(jì)算的方式)計(jì)算出流表項(xiàng)。其中流表項(xiàng)通常包括:出端口、修改MAC、指定隧道信息等。
[0041]S13、SDN控制器(Controller)在本地保存該計(jì)算出的流表項(xiàng),并將流表項(xiàng)封裝成Flow_Mod報(bào)文后下發(fā)到交換機(jī)(SW-1)。
[0042]S14、交換機(jī)(SW-1)對(duì)接收到的該封裝的FloW_Mod報(bào)文后對(duì)之進(jìn)行解析,獲取流表項(xiàng)并在本地保存,以指導(dǎo)后續(xù)流量的轉(zhuǎn)發(fā)。
[0043]其中,在上述步驟中,通常把從Packet_in報(bào)文發(fā)給Controller以及Controller通過(guò)Flow_Mod報(bào)文下發(fā)流表項(xiàng)的這段時(shí)間,稱為Packet_in時(shí)延。另外,在交換機(jī)進(jìn)行流量轉(zhuǎn)發(fā)期間,如果其上的端口(假定為Port2)發(fā)生故障,則交換機(jī)(SW-1)還需要發(fā)送Port_Status報(bào)文給Controller告知該事件(例如,端口 Port2發(fā)生故障)。Controller收到該報(bào)告后,刪除在本地保存的有關(guān)該交換機(jī)(SW-1)所有出端口為該故障端口(Port2)的流表項(xiàng)。
[0044]在正常情況下,當(dāng)交換機(jī)上存在多個(gè)出端口,則其上的流量均能夠從該多個(gè)出端口負(fù)載分擔(dān)轉(zhuǎn)發(fā)出去(例如=SW-1的流量都能通過(guò)Portl和Port2負(fù)載分擔(dān)轉(zhuǎn)發(fā)出去)。然而, 申請(qǐng)人:經(jīng)過(guò)研究,發(fā)現(xiàn)上述流程仍然存在較多可以優(yōu)化的地方。例如:
[0045]l、Packet_in報(bào)文上送到Controller之后,Controller查詢流表信息的這個(gè)處理過(guò)程,消耗了 Controller上寶貴的CPU資源,延長(zhǎng)了 Packet_in報(bào)文的處理時(shí)間;
[0046]2、在Controller計(jì)算出流表項(xiàng)后,需要先保存流表項(xiàng)再下發(fā)給交換機(jī),這個(gè)處理過(guò)程,不僅消耗了 Controller的內(nèi)存資源,而且同樣也消耗了 Controller處理保存操作時(shí)的CPU資源;
[0047]3Xontroller保存流表項(xiàng)的目的在于后續(xù)進(jìn)行負(fù)載分擔(dān)時(shí)使用,其在后期并不需要和交換機(jī)的流表保持同步,顯然,如果能夠采用其他方式也能實(shí)現(xiàn)負(fù)載均衡的話,那么保存流表就完全沒(méi)有必要。
[0048]4、當(dāng)交換機(jī)的端口發(fā)生故障(DOWN掉),都會(huì)導(dǎo)致ControlIer刪除流表,如此也大幅增加了 Controller諸多的處理流程,消耗了 Controller上的CPU資源。
[0049]為此,本發(fā)明提供一種快速處理流表的方法和裝置,通過(guò)本發(fā)明方案,可以保證在實(shí)現(xiàn)流表負(fù)載分擔(dān)的前提下,大幅提高SDN控制器處理Packet_in報(bào)文的速度以及有效降低Packet in報(bào)文的處理時(shí)延。
[0050]如圖2所示,為本發(fā)明提供的快速處理流表負(fù)載分擔(dān)的方法流程圖,該方法應(yīng)用在SDN控制器上,包括:
[0051]S21、在SDN控制器本地建立一張hash表。
[0052]建立Hash表的目的,是為后續(xù)SDN控制器下發(fā)流表實(shí)現(xiàn)交換機(jī)不同出端口轉(zhuǎn)發(fā)流量負(fù)載分擔(dān)時(shí)使用。其中,在一個(gè)示例性的例子中,所述Hash表中通常包含有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本五元組信息和報(bào)文長(zhǎng)度等信息。
[0053]S22、接收來(lái)自交換機(jī)的第一報(bào)文,提取出該報(bào)文中攜帶的報(bào)文轉(zhuǎn)發(fā)信息,并結(jié)合學(xué)習(xí)到的該交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔?,依?jù)Hash算法計(jì)算出該交換機(jī)的出接口。
[0054]例如:在一個(gè)示例性的例子中,當(dāng)圖1所示的交換機(jī)SW-1從Port3上收到I個(gè)來(lái)自主機(jī)的轉(zhuǎn)發(fā)報(bào)文時(shí),首先查詢SW-1本地保存的流表,如果沒(méi)有發(fā)現(xiàn)匹配到對(duì)應(yīng)的流表項(xiàng),那么SW-1將通過(guò)SDN管理通道,將該轉(zhuǎn)發(fā)報(bào)文封裝成第一報(bào)文(例如Packet_in報(bào)文)上送給SDN控制器(Controller)。其中,所述第一報(bào)文中攜帶有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本五元組信息以及報(bào)文長(zhǎng)度等報(bào)文轉(zhuǎn)發(fā)信息。所述SDN控制器接收到第一報(bào)文后,會(huì)剝離封裝的報(bào)文頭,提取出里面的載荷報(bào)文,然后根據(jù)載荷報(bào)文里的源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本五元組以及報(bào)文長(zhǎng)度等信息,以及此前學(xué)習(xí)到的SW-1在SDN網(wǎng)絡(luò)中的拓?fù)湫畔?即上行UP的端口),按照預(yù)定的hash算法計(jì)算該轉(zhuǎn)發(fā)報(bào)文的出接口,亦即SW-1上的Portl或者Port2。
[0055]S23、根據(jù)提取的報(bào)文轉(zhuǎn)發(fā)信息及計(jì)算的出端口生成流表項(xiàng),然后將該流表項(xiàng)封裝成第二報(bào)文下發(fā)給交換機(jī)。
[0056]例如,在圖1所示的例子中,當(dāng)SDN控制器計(jì)算出轉(zhuǎn)發(fā)報(bào)文的出接口后,根據(jù)此前提取出的報(bào)文轉(zhuǎn)發(fā)信息及計(jì)算的出端口生成對(duì)應(yīng)的流表項(xiàng),然后將該流表項(xiàng)封裝成第二報(bào)文(例如Flow_Mod報(bào)文)下發(fā)給交換機(jī)SW-1。當(dāng)交換機(jī)SW-1接收到Controller發(fā)送的第二報(bào)文后,通過(guò)解析該報(bào)文,即可獲取該轉(zhuǎn)發(fā)報(bào)文對(duì)應(yīng)的流表項(xiàng),然后在本地對(duì)該流表項(xiàng)加以保存,以用于指導(dǎo)后續(xù)二層報(bào)文的轉(zhuǎn)發(fā)。
[0057]為了避免交換機(jī)上送給SDN控制器的首包轉(zhuǎn)發(fā)報(bào)文不因匹配不到流表而丟掉,在本發(fā)明中,SDN控制器在下發(fā)流表項(xiàng)給交換機(jī)的同時(shí),還需要一并把交換機(jī)此前發(fā)送給SDN控制器的Packet_in報(bào)文的原有內(nèi)容封裝成第三報(bào)文(例如:Packet_out報(bào)文),發(fā)給交換機(jī)SW-1,以便交換機(jī)SW-1解析后,根據(jù)本地保存的流表項(xiàng)加以轉(zhuǎn)發(fā)。
[0058]進(jìn)一步地,當(dāng)轉(zhuǎn)發(fā)報(bào)文的源、目的IP不在同一個(gè)SDN交換機(jī)上時(shí),所述SDN控制器根據(jù)提取的報(bào)文轉(zhuǎn)發(fā)信息及計(jì)算的出端口生成流表項(xiàng),具體為:
[0059]SDN控制器進(jìn)一步修改該轉(zhuǎn)發(fā)報(bào)文的五元組信息和/或封裝隧道等信息,以形成該報(bào)文在二、三層網(wǎng)絡(luò)上轉(zhuǎn)發(fā)的完整流表項(xiàng),然后再將該流表項(xiàng)組裝成第二報(bào)文(例如Flow_Mod報(bào)文),發(fā)送給SDN交換機(jī)。
[0060]例如,當(dāng)轉(zhuǎn)發(fā)報(bào)文為不同SDN交換機(jī)間的二層報(bào)文轉(zhuǎn)發(fā)時(shí),經(jīng)過(guò)SDN控制器修改轉(zhuǎn)發(fā)報(bào)文的目的IP地址和封裝隧道信息后,最終在源SDN交換機(jī)上生成的流表匹配項(xiàng)為報(bào)文的入端口、源MAC與目的MAC、ETH類型為IPv4、源IP與目的IP,流表動(dòng)作為向經(jīng)修改的vxlan隧道口發(fā)送報(bào)文,隧道的目的IP為經(jīng)修改的目的交換機(jī)所在的邊緣節(jié)點(diǎn)VTEP IP地址,隧道ID為network的vxlan隧道ID。在目的交換機(jī)上生成的流表匹配項(xiàng)則為VXLAN隧道,源MAC和目的MAC,ETH類型為IPv4、源IP與目的IP,流表動(dòng)作為從出端口發(fā)送此報(bào)文。
[0061]當(dāng)轉(zhuǎn)發(fā)報(bào)文為三層轉(zhuǎn)發(fā)時(shí),如果SDN控制器判斷報(bào)文的源IP與目的IP屬于同一個(gè)交換機(jī),則向該交換機(jī)下發(fā)的流表匹配項(xiàng)為報(bào)文入端口、源MAC為源主機(jī)的MAC地址、目的MAC為修改的該交換機(jī)全局的MAC地址、ETH類型為IPv4、源IP與目的IP,流表動(dòng)作為修改源MAC為該交換機(jī)的全局MAC地址,目的MAC為目的主機(jī)的MAC地址,出端口為目的主機(jī)所在Port,且TTL減I。如果屬于不同的交換機(jī),則需要對(duì)源主機(jī)所在交換機(jī)下發(fā)流表,匹配項(xiàng)為報(bào)文入端口、報(bào)文的源MAC與目的MAC、ETH類型、源IP與目的IP,流表動(dòng)作為從修改的VXLAN隧道發(fā)送報(bào)文,隧道的目的地址為目的主機(jī)所在交換機(jī)對(duì)應(yīng)的邊緣節(jié)點(diǎn)的VTEPIP,隧道ID為目的所屬network的VXLAN ID ;在目的主機(jī)所在的SDN交換機(jī)下發(fā)流表,匹配項(xiàng)為報(bào)文入端口、報(bào)文源MAC與目的MAC、ETH類型、源IP、目的IP、隧道ID,流表動(dòng)作為從目的主機(jī)所在端口發(fā)送報(bào)文。
[0062]另外,根據(jù)本發(fā)明,當(dāng)交換機(jī)的出端口發(fā)生故障(假設(shè)為SW-1的P0rt2D0Wn掉)后,交換機(jī)同樣會(huì)發(fā)送Port_Status報(bào)文給SDN控制器告知該事件。此時(shí),SDN控制器接收到該報(bào)文后,只需要更新SDN的網(wǎng)絡(luò)拓?fù)湫畔?,就可以在隨后的交換機(jī)上送Packet_in報(bào)文計(jì)算出端口時(shí),將該發(fā)生故障的出端口(例如Port2)剔除在外,不會(huì)參與出端口的Hash計(jì)算,因此,SDN控制器計(jì)算的出接口也不會(huì)計(jì)算出來(lái)有發(fā)生故障端口的結(jié)果,即流量只能從正常出端口(例如SWl上的Portl)處理。
[0063]對(duì)應(yīng)于上述方法,本發(fā)明同時(shí)提供一種處理流表裝置,所述裝置運(yùn)行在SDN控制器上,如圖3所示,該控制器在硬件架構(gòu)上包括有CPU 31、存儲(chǔ)器32、接口 33以及用于進(jìn)行內(nèi)部連接的內(nèi)部總線34。所述裝置通常以軟件的形式存儲(chǔ)在存儲(chǔ)品33上,從功能上劃分,如圖4所示,該裝置包括:
[0064]Hash表建立單兀41,用于在SDN控制器本地建立一張hash表;
[0065]出端口計(jì)算單元42,用于接收來(lái)自交換機(jī)的第一報(bào)文,提取出該報(bào)文中攜帶的報(bào)文轉(zhuǎn)發(fā)信息,并結(jié)合學(xué)習(xí)到的該交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔?,依?jù)Hash算法計(jì)算出該交換機(jī)的出接口;
[0066]流表下發(fā)單元43,用于根據(jù)提取的轉(zhuǎn)發(fā)報(bào)文信息及計(jì)算的出端口生成流表項(xiàng),然后將該流表項(xiàng)封裝成第二報(bào)文下發(fā)給交換機(jī)。
[0067]其中,流表下發(fā)單元43在下發(fā)第二報(bào)文給交換機(jī)的同時(shí),還把第一報(bào)文的原有內(nèi)容封裝成第三報(bào)文下發(fā)給交換機(jī),以便交換機(jī)解析該報(bào)文后,根據(jù)本地保存的流表項(xiàng)加以轉(zhuǎn)發(fā)。
[0068]當(dāng)轉(zhuǎn)發(fā)報(bào)文的源、目的IP地址不在同一個(gè)交換機(jī)上時(shí),所述流表下發(fā)單元42根據(jù)提取的轉(zhuǎn)發(fā)報(bào)文信息及計(jì)算的出端口生成流表項(xiàng),具體為:
[0069]流表下發(fā)單元42進(jìn)一步修改該轉(zhuǎn)發(fā)報(bào)文的五元組信息和/或封裝隧道信息,以形成該報(bào)文在二、三層網(wǎng)絡(luò)上轉(zhuǎn)發(fā)的完整流表項(xiàng),然后將該流表項(xiàng)組裝成第二報(bào)文發(fā)送給交換機(jī)。
[0070]進(jìn)一步地,該裝置還包括:
[0071]拓?fù)涓聠卧?4,用于當(dāng)SDN控制器接收到交換機(jī)發(fā)送的Port_Status報(bào)文告知出端口發(fā)生故障時(shí),更新SDN的網(wǎng)絡(luò)拓?fù)湫畔?,以便在后續(xù)流表計(jì)算單元在計(jì)算該交換機(jī)的出端口時(shí),將該發(fā)生故障的出端口剔除。
[0072]進(jìn)一步地,
[0073]所述第一報(bào)文為Packetjn報(bào)文,包含有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本五元組信息和報(bào)文長(zhǎng)度信息;
[0074]所述第二報(bào)文為FloW_Mod報(bào)文,其中攜帶有指導(dǎo)交換機(jī)轉(zhuǎn)發(fā)所述報(bào)文的流表項(xiàng);
[0075]所述第三報(bào)文為Packet_out報(bào)文,包含有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本、報(bào)文長(zhǎng)度信息;
[0076]所述交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔樵摻粨Q機(jī)在SDN網(wǎng)絡(luò)中的上行端口。
[0077]與當(dāng)前的技術(shù)方案相比,本發(fā)明方案保證在實(shí)現(xiàn)流表負(fù)載分擔(dān)的前提下,可以提高SDN控制器處理Packet_in報(bào)文的速度以及降低Packet in報(bào)文的處理時(shí)延。根據(jù)實(shí)測(cè)結(jié)果,依據(jù)本發(fā)明,在相同的硬件背景下,Packet_in的處理性能提高一倍以上,大幅度減少了 Packet_in報(bào)文的處理時(shí)延。
[0078]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種快速處理流表的方法,該方法應(yīng)用在SDN控制器上,包括: 在SDN控制器本地建立一張hash表; 接收來(lái)自交換機(jī)的第一報(bào)文,提取出該報(bào)文中攜帶的報(bào)文轉(zhuǎn)發(fā)信息,并結(jié)合學(xué)習(xí)到的該交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔ⅲ罁?jù)Hash算法計(jì)算出該交換機(jī)的出接口 ; 根據(jù)提取的報(bào)文轉(zhuǎn)發(fā)信息及計(jì)算的出端口生成流表項(xiàng),然后將該流表項(xiàng)封裝成第二報(bào)文下發(fā)給交換機(jī)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: SDN控制器在下發(fā)第二報(bào)文給交換機(jī)的同時(shí),進(jìn)一步把第一報(bào)文的原有內(nèi)容封裝成第三報(bào)文發(fā)送給交換機(jī),以便交換機(jī)解析該報(bào)文后,根據(jù)本地保存的流表項(xiàng)加以轉(zhuǎn)發(fā)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)轉(zhuǎn)發(fā)報(bào)文的源、目的IP地址不在同一個(gè)交換機(jī)上時(shí),所述SDN控制器根據(jù)提取的報(bào)文轉(zhuǎn)發(fā)信息及計(jì)算的出端口生成流表項(xiàng),具體為: SDN控制器進(jìn)一步修改該轉(zhuǎn)發(fā)報(bào)文五元組信息和/或封裝隧道信息,以形成該報(bào)文在二、三層網(wǎng)絡(luò)上轉(zhuǎn)發(fā)的完整流表項(xiàng),然后再將該流表項(xiàng)組裝成第二報(bào)文發(fā)送給交換機(jī)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法還包括: 當(dāng)SDN控制器接收到交換機(jī)發(fā)送的Port_Status報(bào)文告知出端口發(fā)生故障時(shí),更新SDN的網(wǎng)絡(luò)拓?fù)湫畔?,以便在后續(xù)Hash計(jì)算該交換機(jī)的出端口時(shí),將該發(fā)生故障的出端口剔除。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述第一報(bào)文為Packetjn報(bào)文,包含有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本五元組信息以及報(bào)文長(zhǎng)度信息; 所述第二報(bào)文為FloW_Mod報(bào)文,其中攜帶有指導(dǎo)交換機(jī)轉(zhuǎn)發(fā)所述報(bào)文的流表項(xiàng); 所述第三報(bào)文為Packet_out報(bào)文,包含有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本、報(bào)文長(zhǎng)度信息; 所述交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔樵摻粨Q機(jī)在SDN網(wǎng)絡(luò)中的上行端口。
6.一種快速處理流表的裝置,運(yùn)行在SDN控制器上,包括: Hash表建立單兀,用于在SDN控制器本地建立一張hash表; 出端口計(jì)算單元,用于接收來(lái)自交換機(jī)的第一報(bào)文,提取出該報(bào)文中攜帶的報(bào)文轉(zhuǎn)發(fā)信息,并結(jié)合學(xué)習(xí)到的該交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔ⅲ罁?jù)Hash算法計(jì)算出該交換機(jī)的出接口 ; 流表下發(fā)單元,用于根據(jù)提取的報(bào)文轉(zhuǎn)發(fā)信息及計(jì)算的出端口生成流表項(xiàng)并,然后將該流表項(xiàng)封裝成第二報(bào)文下發(fā)給交換機(jī)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,流表下發(fā)單元在下發(fā)第二報(bào)文給交換機(jī)的同時(shí),進(jìn)一步把第一報(bào)文的原有內(nèi)容封裝成第三報(bào)文下發(fā)給交換機(jī),以便交換機(jī)解析該報(bào)文后,根據(jù)本地保存的流表項(xiàng)加以轉(zhuǎn)發(fā)。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,當(dāng)轉(zhuǎn)發(fā)報(bào)文的源、目的IP地址不在同一個(gè)交換機(jī)上時(shí),所述流表下發(fā)單元根據(jù)提取的報(bào)文轉(zhuǎn)發(fā)信息及計(jì)算的出端口生成流表項(xiàng),具體為: 流表下發(fā)單元進(jìn)一步修改該轉(zhuǎn)發(fā)報(bào)文五元組信息和/或封裝隧道信息,以形成該報(bào)文在二、三層網(wǎng)絡(luò)上轉(zhuǎn)發(fā)的完整流表項(xiàng),然后再將該流表項(xiàng)組裝成第二報(bào)文發(fā)送給交換機(jī)。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,該裝置還包括: 拓?fù)涓聠卧?,用于?dāng)SDN控制器接收到交換機(jī)發(fā)送的Port_Status報(bào)文告知出端口發(fā)生故障時(shí),更新SDN的網(wǎng)絡(luò)拓?fù)湫畔?,以便在后續(xù)出端口計(jì)算單元在計(jì)算該交換機(jī)的出端口時(shí),將該發(fā)生故障的出端口剔除。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述第一報(bào)文為Packetjn報(bào)文,包含有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本、報(bào)文長(zhǎng)度信息;所述第二報(bào)文為FloW_Mod報(bào)文,其中攜帶有指導(dǎo)交換機(jī)轉(zhuǎn)發(fā)所述報(bào)文的流表項(xiàng); 所述第三報(bào)文為Packet_out報(bào)文,包含有源MAC、目的MAC、協(xié)議類型、源IP、目的IP、IP協(xié)議版本、報(bào)文長(zhǎng)度信息;所述交換機(jī)在SDN網(wǎng)絡(luò)中的拓?fù)湫畔樵摻粨Q機(jī)在SDN網(wǎng)絡(luò)中的上行端口。
【文檔編號(hào)】H04L12/741GK104283785SQ201410597586
【公開(kāi)日】2015年1月14日 申請(qǐng)日期:2014年10月29日 優(yōu)先權(quán)日:2014年10月29日
【發(fā)明者】葉鵬軍, 楊碧輝 申請(qǐng)人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1