基于sdn控制器的以太網(wǎng)廣播優(yōu)化處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種改進(jìn)以太網(wǎng)廣播的優(yōu)化處理方法,確切地說,涉及一種基于SDN控制器的以太網(wǎng)廣播優(yōu)化處理方法,屬于計(jì)算機(jī)網(wǎng)絡(luò)通信的技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]當(dāng)今世界的網(wǎng)絡(luò)技術(shù)日新月異,基于傳輸控制協(xié)議TCP/互聯(lián)網(wǎng)協(xié)議IP(Transmiss1n Control Pro toco I/Internet Protocol)等技術(shù)的傳統(tǒng)互聯(lián)網(wǎng)在服務(wù)質(zhì)量體驗(yàn)、業(yè)務(wù)部署、業(yè)務(wù)適應(yīng)等許多方面都遇到越來越多的問題和挑戰(zhàn)。斯坦福大學(xué)提出的軟件定義網(wǎng)絡(luò)SDN(Software Defined Network)逐漸成為下一代互聯(lián)網(wǎng)發(fā)展的重要技術(shù)方向,已經(jīng)受到學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注。
[0003]SDN網(wǎng)絡(luò)主要包括兩部分:網(wǎng)絡(luò)控制器組成的控制網(wǎng)絡(luò)和底層交換機(jī)組成的數(shù)據(jù)網(wǎng)絡(luò)。它將傳統(tǒng)網(wǎng)絡(luò)中的智能控制的功能集中在控制器組成的控制網(wǎng)絡(luò)中,底層交換機(jī)不具有網(wǎng)絡(luò)智能功能,其僅僅按照控制器的指令轉(zhuǎn)發(fā)數(shù)據(jù)。其中SDN網(wǎng)絡(luò)通過將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分離開來,從而實(shí)現(xiàn)了網(wǎng)絡(luò)流量的靈活控制,使網(wǎng)絡(luò)作為管道變得更加智能化。圖1所示為SDN的網(wǎng)絡(luò)架構(gòu)圖。圖中的控制層和數(shù)據(jù)轉(zhuǎn)發(fā)層分別為控制網(wǎng)絡(luò)和數(shù)據(jù)網(wǎng)絡(luò),兩者之間通過控制/數(shù)據(jù)的接口平面(如OpenFlow協(xié)議)構(gòu)成通路。
[0004]由于SDN架構(gòu)的特性,采用OpenFlow協(xié)議能夠在一定程度上解決傳統(tǒng)網(wǎng)絡(luò)中地址解析協(xié)議ARP(Address Resolut1n Protocol)廣播風(fēng)暴的問題,但是,目前的SDN架構(gòu)對(duì)于廣播報(bào)文的處理方式,通常仍采用了傳統(tǒng)以太網(wǎng)處理網(wǎng)絡(luò)廣播報(bào)文的方法。例如采用基于生成樹協(xié)議STP(Spanning Tree Protocol)的模型消除環(huán)路問題。然而,這種模型會(huì)造成根節(jié)點(diǎn)交換機(jī)的流量負(fù)載呈指數(shù)級(jí)增大,無法利用網(wǎng)絡(luò)中可能存在的多路徑傳輸優(yōu)勢(shì)。因此,如何改進(jìn)廣播報(bào)文的處理方法,并解決環(huán)路問題就成為業(yè)內(nèi)科技人員關(guān)注的一個(gè)焦點(diǎn)。
[0005]在以太網(wǎng)協(xié)議中規(guī)定,同一局域網(wǎng)中的一臺(tái)主機(jī)要和另一臺(tái)主機(jī)進(jìn)行直接通信,必須要知道目標(biāo)主機(jī)的MAC地址。而在TCP/IP協(xié)議中,網(wǎng)絡(luò)層和傳輸層只關(guān)心目標(biāo)主機(jī)的IP地址。這就導(dǎo)致在以太網(wǎng)中使用IP協(xié)議時(shí),數(shù)據(jù)鏈路層的以太網(wǎng)協(xié)議接到上層IP協(xié)議提供的數(shù)據(jù)中,只包含目標(biāo)主機(jī)的IP地址。于是需要一種方法用于根據(jù)目標(biāo)主機(jī)的IP地址來獲得其對(duì)應(yīng)的MAC地址,即進(jìn)行地址解析。地址解析協(xié)議ARP(Address Resolut1n Protocol)就是用來確定這些映射的協(xié)議。ARP工作時(shí),以太網(wǎng)廣播數(shù)據(jù)包中含有通信對(duì)端的IP地址,但是,由于發(fā)送時(shí)只知道對(duì)端的目標(biāo)IP地址,不知道其MAC地址,因此需要發(fā)送ARP請(qǐng)求,并廣播至網(wǎng)絡(luò)內(nèi)所有終端,直到通信對(duì)端回復(fù)ARP應(yīng)答告知其MAC地址。
[0006]中國發(fā)明專利申請(qǐng)《一種基于ARP事件觸發(fā)代理的SDN廣播處理方法》(公開號(hào)CN103259732A)的技術(shù)方案目的是解決以太網(wǎng)中ARP廣播問題:通過在主機(jī)接入網(wǎng)絡(luò)初始階段建立全網(wǎng)主機(jī)信息IP-to-MAC映射表,使得網(wǎng)絡(luò)中任何一個(gè)主機(jī)發(fā)起的ARP請(qǐng)求都可以由SDN控制器統(tǒng)一處理并響應(yīng),從而避免ARP報(bào)文在以太網(wǎng)中廣播。該技術(shù)方案能夠在一定程度上減少廣播報(bào)文的數(shù)量,但不涉及對(duì)網(wǎng)絡(luò)環(huán)路的處理。
[0007]目前的SDN網(wǎng)絡(luò)對(duì)廣播報(bào)文的處理,仍舊采用傳統(tǒng)以太網(wǎng)處理網(wǎng)絡(luò)廣播報(bào)文的方法。參見圖2和圖3,分別介紹SDN網(wǎng)絡(luò)中的SDN控制器基于二層轉(zhuǎn)發(fā)學(xué)習(xí)的操作步驟及其在傳統(tǒng)以太網(wǎng)中處理廣播報(bào)文的下述方法:
[0008](I)主機(jī)A向其相鄰的交換機(jī)SI發(fā)出ARP請(qǐng)求報(bào)文。
[0009](2)交換機(jī)SI將該ARP請(qǐng)求報(bào)文封裝成packet-1n消息提交給SDN控制器。
[00?0] (3)SDN控制器接收該packet-1n消息,以packet-out消息方式通知交換機(jī)SI,并將ARP請(qǐng)求報(bào)文洪泛。
[0011 ] (4交換機(jī)SI將ARP請(qǐng)求packet-1n分別轉(zhuǎn)發(fā)給交換機(jī)S2和S3。
[0012](5)交換機(jī)S2和交換機(jī)S3分別將ARP請(qǐng)求報(bào)文封裝成packet-1n消息,再分別提交給SDN控制器;也就是兩者的操作步驟內(nèi)容都與步驟(2)相同。
[0013](6)SDN控制器接收該packet-1n消息,以packet-out消息方式分別通知交換機(jī)S2和S3,并將ARP請(qǐng)求報(bào)文泛洪;該操作內(nèi)容與步驟(3)相同。
[0014](7)交換機(jī)S2和3分別將ARP請(qǐng)求報(bào)文轉(zhuǎn)發(fā)給交換機(jī)S4,該兩者的操作步驟內(nèi)容都與步驟(4)相同。
[0015](8)交換機(jī)S4將ARP請(qǐng)求報(bào)文封裝成packet-1n消息提交給SDN控制器,該操作內(nèi)容與步驟(2)相同。
[0016](9)SDN控制器接收到該packet-1n消息,以packet-out消息方式通知交換機(jī)S4,并將ARP請(qǐng)求報(bào)文泛洪;其操作內(nèi)容與步驟(3)相同。
[0017](10)主機(jī)B接收到ARP請(qǐng)求,構(gòu)造ARP應(yīng)答,發(fā)送給交換機(jī)S4。
[0018](11)交換機(jī)轉(zhuǎn)發(fā)ARP應(yīng)答消息給發(fā)出請(qǐng)求報(bào)文的主機(jī)。
[0019]綜上所述,雖然傳統(tǒng)以太網(wǎng)基于廣播的地址解析機(jī)制(如ARP等)簡單有效,但是存在資源開銷大、安全隱患多等缺點(diǎn),限制了其在較大規(guī)模網(wǎng)絡(luò)的應(yīng)用。其主要原因如下:大量的廣播報(bào)文占用網(wǎng)絡(luò)帶寬,造成資源消耗巨大。且規(guī)模大的網(wǎng)絡(luò)可能存在環(huán)路,廣播報(bào)文容易造成廣播風(fēng)暴。雖然也有一定的解決辦法,例如基于生成樹STP協(xié)議(Spanning TreeProtocol)模型的消除環(huán)路措施,但會(huì)造成根節(jié)點(diǎn)交換機(jī)的流量負(fù)載呈指數(shù)級(jí)增大,同時(shí)故障恢復(fù)時(shí)延也會(huì)增大。再者,網(wǎng)絡(luò)控制器、交換機(jī)和終端都要增加額外的處理負(fù)擔(dān)和資源浪費(fèi);而且,基于洪泛轉(zhuǎn)發(fā)學(xué)習(xí),路徑流表的建立大多呈現(xiàn)串行模式,極大地影響網(wǎng)絡(luò)傳輸性能。因?yàn)閺V播報(bào)文到達(dá)SDN交換機(jī)時(shí),沒有匹配流表,就自動(dòng)發(fā)往SDN控制器,然后SDN控制器通過packet-1n和packet-out消息進(jìn)行處理。隨著網(wǎng)絡(luò)廣播報(bào)文的增加,SDN控制器負(fù)載也隨之迅速增大,還有網(wǎng)絡(luò)中所有終端都會(huì)接收并處理洪泛的廣播報(bào)文,對(duì)于終端來說,這些操作都是不必要的資源浪費(fèi)。
【發(fā)明內(nèi)容】
[0020]有鑒于此,本發(fā)明的目的是提供一種基于SDN控制器的以太網(wǎng)廣播優(yōu)化處理方法,本發(fā)明方法是對(duì)現(xiàn)有SDN網(wǎng)絡(luò)中的SDN控制器處理功能進(jìn)行擴(kuò)展,使得SDN網(wǎng)絡(luò)能夠處理以太網(wǎng)廣播、避免環(huán)路問題,降低網(wǎng)絡(luò)控制器、交換機(jī)節(jié)點(diǎn)和終端的負(fù)擔(dān)和資源浪費(fèi),實(shí)現(xiàn)無環(huán)路的廣播報(bào)文轉(zhuǎn)發(fā),同時(shí)增加了網(wǎng)絡(luò)的可編程性,使得SDN網(wǎng)絡(luò)靈活且可擴(kuò)展。
[0021]為了達(dá)到上述目的,本發(fā)明提供了一種基于SDN控制器的以太網(wǎng)廣播的優(yōu)化處理方法,其特征在于:終端接入網(wǎng)絡(luò)時(shí),SDN控制器對(duì)來自交換機(jī)的、包含該終端信息的packet-1n消息執(zhí)行實(shí)時(shí)解析,判斷該終端若是初次接入網(wǎng)絡(luò)時(shí),提取其中的終端信息,執(zhí)行終端接入處理:在SDN控制器上對(duì)以key-value形式存儲(chǔ)終端和交換機(jī)轉(zhuǎn)發(fā)節(jié)點(diǎn)之間信息映射關(guān)系的節(jié)點(diǎn)信息字典執(zhí)行更新操作,錄入該終端信息;再對(duì)終端之間通信時(shí)發(fā)起的ARP請(qǐng)求報(bào)文,執(zhí)行代理回復(fù)ARP響應(yīng):查詢節(jié)點(diǎn)信息字典,得到ARP請(qǐng)求報(bào)文的目的終端MAC地址,再構(gòu)造ARP應(yīng)答包,封裝成packet-out消息作為應(yīng)答回送給該終端;因網(wǎng)絡(luò)可能存在環(huán)路,執(zhí)行環(huán)路避免處理:根據(jù)從廣播報(bào)文中提取的每個(gè)終端及其對(duì)應(yīng)交換機(jī)接入端口之間的狀態(tài)信息所形成的key和value映射關(guān)系,查詢節(jié)點(diǎn)信息字典,是否存在同一個(gè)key對(duì)應(yīng)存儲(chǔ)有不同的value、即對(duì)應(yīng)不同的交換機(jī)接入端口的情況;若有,則執(zhí)行丟棄操作:下發(fā)packet-out消息,告知丟棄來自該終端的廣播報(bào)文,以避免環(huán)路問題;若沒有,則更新當(dāng)前key-value的映射信息于節(jié)點(diǎn)信息字典,表明該種類型的廣播報(bào)文來自于該交換機(jī)的某個(gè)特定端口;然后執(zhí)行傳統(tǒng)的報(bào)文轉(zhuǎn)發(fā)處理。
[0022]眾所周知,傳統(tǒng)STP解決環(huán)路的操作方法存在的缺陷如下:根橋節(jié)點(diǎn)附近流量壓力過大,網(wǎng)絡(luò)中本來存在的冗