本發(fā)明涉及工業(yè)異構(gòu)網(wǎng)絡(luò)傳輸領(lǐng)域,具體地說是一種在Openflow交換機(jī)中實(shí)現(xiàn)支持多種工業(yè)網(wǎng)絡(luò)傳輸協(xié)議的方法。
背景技術(shù):OpenFlow使傳統(tǒng)的二層和三層交換機(jī)具備了細(xì)粒度流轉(zhuǎn)發(fā)能力,即傳統(tǒng)的基于MAC的網(wǎng)包轉(zhuǎn)發(fā),基于IP的路由轉(zhuǎn)發(fā),被拓展到了基于多域網(wǎng)包包頭描述的流轉(zhuǎn)發(fā)。同時(shí),傳統(tǒng)的控制層面從轉(zhuǎn)發(fā)設(shè)備中剝離出來,所有轉(zhuǎn)發(fā)行為的決策從交換機(jī)自身“遷移”到了某個(gè)集中控制器上。隨著OpenFlow的部署和應(yīng)用,支持OF的交換設(shè)備的性能瓶頸相繼出現(xiàn)。于是有了基于NetFPGA的實(shí)現(xiàn),提供多千兆的OF交換。工業(yè)界如HP,Juniper,NEC等也相繼提供了支持OF協(xié)議的交換機(jī)設(shè)備。目前高速實(shí)時(shí)現(xiàn)場總線種類繁多,很多廠家都在推廣自己的總線協(xié)議,這些協(xié)議從性能上可分為兩類:高實(shí)時(shí)總線和低實(shí)時(shí)總線。高實(shí)時(shí)性的總線:POWERLINK,EtherCat,MECHATROLINK。POWERLINK是一個(gè)可以在普通以太網(wǎng)上實(shí)現(xiàn)的方案,無需ASIC芯片,用戶可以在各種平臺(tái)上實(shí)現(xiàn)POWERLINK,如FPGA、ARM、x86CPU等,只要有以太網(wǎng)的地方,就可以實(shí)現(xiàn)POWERLINK。POWERLINK公開了所有的源碼,任何人都可以免費(fèi)下載和使用(就像Linux)。POWERLINK完全丟掉了TCP/IP,定義了一個(gè)精簡的、實(shí)時(shí)性極高的數(shù)據(jù)鏈路層協(xié)議,同時(shí)定義了CANopen為應(yīng)用層協(xié)議。這樣用戶在實(shí)現(xiàn)了POWERLINK的同時(shí),也實(shí)現(xiàn)了CANopen。EtherCAT(以太網(wǎng)控制自動(dòng)化技術(shù))是一種用于確定性以太網(wǎng)的高性能工業(yè)通信協(xié)議,它擴(kuò)展了IEEE802.3以太網(wǎng)標(biāo)準(zhǔn),使得數(shù)據(jù)傳輸中具有可預(yù)測性定時(shí)及高精度同步等特點(diǎn)。這個(gè)開放性標(biāo)準(zhǔn)作為IEC61158的組成部分,常用于機(jī)械設(shè)計(jì)及運(yùn)動(dòng)控制等應(yīng)用中。EtherCAT在標(biāo)準(zhǔn)的以太網(wǎng)電纜上應(yīng)用主/從式的構(gòu)架。EtherCAT技術(shù)實(shí)現(xiàn)確定性網(wǎng)絡(luò)的另一個(gè)因素是主控制器通過分布式時(shí)鐘同步從設(shè)備的能力。從設(shè)備中必須有一臺(tái)輸出主時(shí)鐘用于與其它從設(shè)備時(shí)鐘進(jìn)行同步。在NI的設(shè)計(jì)實(shí)現(xiàn)中,第一臺(tái)從設(shè)備包含了主時(shí)鐘,主控制器發(fā)送的特殊同步報(bào)文在每個(gè)掃描周期中讀取主時(shí)鐘。該報(bào)文更新并調(diào)整所有其它從設(shè)備時(shí)鐘,以消除時(shí)鐘偏移。精確同步非常重要,尤其是在大范圍分布式處理應(yīng)用中要求同步執(zhí)行時(shí),如運(yùn)動(dòng)軸間的協(xié)調(diào)運(yùn)動(dòng)。NI采用時(shí)間戳來衡量發(fā)送與返回幀之間的時(shí)差。利用這種方式,可以計(jì)算節(jié)點(diǎn)間的傳輸延時(shí),通過準(zhǔn)確調(diào)節(jié)分布式時(shí)鐘便可實(shí)現(xiàn)精確同步(小于1μs)。PROFINET是一個(gè)整體的解決方案,它使用TCP/IP和IT標(biāo)準(zhǔn),符合基于工業(yè)以太網(wǎng)的實(shí)時(shí)自動(dòng)化體系,覆蓋了自動(dòng)化技術(shù)的所有要求;能夠?qū)崿F(xiàn)與現(xiàn)場總線的無縫集成。更重要的是PROFINET所有的事情都在一條電纜中完成,IT服務(wù)和TCP/IP開放性沒有任何限制;它可以滿足用于所有客戶需要的統(tǒng)一的通信;從高性能到等時(shí)同步可以伸縮的實(shí)時(shí)通信?,F(xiàn)在已經(jīng)成為現(xiàn)場總線國際標(biāo)準(zhǔn)IEC-61158的第10類型。IEC61850標(biāo)準(zhǔn)是電力系統(tǒng)自動(dòng)化領(lǐng)域唯一的全球通用標(biāo)準(zhǔn)。它通過標(biāo)準(zhǔn)的實(shí)現(xiàn),實(shí)現(xiàn)了智能變電站的工程運(yùn)作標(biāo)準(zhǔn)化。使得智能變電站的工程實(shí)施變得規(guī)范、統(tǒng)一和透明。不論是哪個(gè)系統(tǒng)集成商建立的智能變電站工程都可以通過SCD(系統(tǒng)配置)文件了解整個(gè)變電站的結(jié)構(gòu)和布局,對于智能化變電站發(fā)展具有不可替代的作用。
技術(shù)實(shí)現(xiàn)要素:針對現(xiàn)有技術(shù)中存在的上述不足之處,本發(fā)明要解決的技術(shù)問題是提供一種在Openflow交換機(jī)中實(shí)現(xiàn)支持多種工業(yè)網(wǎng)絡(luò)傳輸協(xié)議的方法。本發(fā)明為實(shí)現(xiàn)上述目的所采用的技術(shù)方案是:一種在Openflow交換機(jī)中實(shí)現(xiàn)支持多種工業(yè)網(wǎng)絡(luò)傳輸協(xié)議的方法,包括以下步驟:將基于標(biāo)準(zhǔn)以太網(wǎng)幀格式的POWERLINK幀嵌入到流表中;通過劃分VLAN的方式實(shí)現(xiàn)POWERLINK中主站隔離,使每個(gè)VLAN中包括一個(gè)主站和若干個(gè)從站;當(dāng)邊緣交換機(jī)收到一個(gè)幀后,通過識(shí)別以太網(wǎng)幀中的第13和14個(gè)字節(jié)的幀類型字段,判斷幀類型,對不同類型的幀進(jìn)行不同處理,從而實(shí)現(xiàn)不同幀的轉(zhuǎn)發(fā)。所述通過劃分VLAN的方式實(shí)現(xiàn)POWERLINK中主站隔離,具體為:將每一個(gè)POWERLINK子網(wǎng)分配一個(gè)特定的VLAN,通過流表中的VLANID字段標(biāo)識(shí),通過指定每一個(gè)邊緣交換機(jī)入口處所屬的VLAN,為每一個(gè)邊緣交換機(jī)端口所連接的POWERLINK子網(wǎng)分配所需的VLAN。如果太網(wǎng)幀中的第13和14個(gè)字節(jié)的幀類型字段為0x88ab,則收到的幀為POWERLINK幀;根據(jù)邊緣交換機(jī)的接口判斷幀所屬的VLAN,并以幀的第1到6字節(jié)為目的地址,7到12字節(jié)為源地址,將其提取后分別按照流表項(xiàng)中的Ethernetdestinationaddress和Ethernetsourceaddress域的標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā)。如果太網(wǎng)幀中的第13和14個(gè)字節(jié)的幀類型字段為0x88a4,則收到的幀為EtherCat幀;根據(jù)邊緣交換機(jī)的接口判斷幀所屬的VLAN,并以幀的第1到6字節(jié)為目的地址,7到12字節(jié)為源地址,將其提取后分別按照流表項(xiàng)中的Ethernetdestinationaddress和Ethernetsourceaddress域的標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā)。如果太網(wǎng)幀中的第13和14個(gè)字節(jié)的幀類型字段為0x8100,則收到的幀為PROFINET幀或802.1Q幀;查看幀的第15個(gè)字節(jié)的后四位和第16個(gè)字節(jié),判斷該幀所屬的VLANID,并通過查找?guī)牡?5個(gè)字節(jié)的前三位判斷幀的優(yōu)先級(jí);以幀的第1到6字節(jié)為目的地址,7到12字節(jié)為源地址,將其提取后分別按照流表項(xiàng)中的Ethernetdestinationaddress和Ethernetsourceaddress域的標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā)。本發(fā)明具有以下優(yōu)點(diǎn)及有益效果:1.本發(fā)明首先給出了OPENFLOW的技術(shù)架構(gòu)和SDN的網(wǎng)絡(luò)交換模式,在此基礎(chǔ)上實(shí)現(xiàn)在OPENFLOW流表中對IEEE802.1Q協(xié)議的支持。2.本發(fā)明提出了在OPENFLOW技術(shù)架構(gòu)下支持POWERLINK、EtherCat、PROFINET和IEC61850等不同工業(yè)應(yīng)用層協(xié)議的方法,能夠滿足工業(yè)異構(gòu)網(wǎng)絡(luò)的傳輸需求。3.本發(fā)明通過VLAN的劃分融合了傳統(tǒng)控制網(wǎng)絡(luò)中一主多從的結(jié)構(gòu)模式,可以在每個(gè)VLAN中單獨(dú)實(shí)現(xiàn)一主多從結(jié)構(gòu),而整個(gè)網(wǎng)絡(luò)則可成為多主多從的結(jié)構(gòu)模式,為不同的網(wǎng)絡(luò)應(yīng)用提供了方便。附圖說明圖1為本發(fā)明中的OPENFLOW交換機(jī)的結(jié)構(gòu);圖2為本發(fā)明中的基于SDN的工業(yè)異構(gòu)網(wǎng)絡(luò)架構(gòu);圖3為本發(fā)明中的OPENFLOW交換機(jī)流表項(xiàng)結(jié)構(gòu);圖4為本發(fā)明中的OPENFLOW交換機(jī)流表項(xiàng)包頭域;圖5為POWERLINK數(shù)據(jù)幀的結(jié)構(gòu),其中SID為服務(wù)類型,DA為目標(biāo)站地址,SA為源站地址;圖6為POWERLINK幀在流表中的對應(yīng)關(guān)系示意圖;圖7為802.1q的幀格式示意圖。具體實(shí)施方式下面結(jié)合附圖及實(shí)施例對本發(fā)明做進(jìn)一步的詳細(xì)說明。由于POWERLINK網(wǎng)絡(luò)是采用主-從站的工作方式,每個(gè)網(wǎng)絡(luò)中只有一個(gè)活動(dòng)的主站。因此為了使SDN回程網(wǎng)能夠支持多個(gè)POWERLINK子網(wǎng)間的通信,通過劃分VLAN的方式實(shí)現(xiàn)POWERLINK中主站隔離。即將每一個(gè)POWERLINK子網(wǎng)分配一個(gè)特定的VLAN,通過流表中的VLANID字段標(biāo)識(shí)。這樣通過劃分主站所屬的VLAN,就可以保證每個(gè)VLAN中的主站唯一,從而避免主站沖突,與POWERLINK的特點(diǎn)一致。通過指定每一個(gè)邊緣交換機(jī)入口處所屬的VLAN,就可以為每一個(gè)邊緣交換機(jī)端口所連接的POWERLINK子網(wǎng)分配所需的VLAN。本發(fā)明通過對OPENFLOW交換機(jī)流表包頭域(headfields)的不同字節(jié)的定義和區(qū)分,實(shí)現(xiàn)對多種交換協(xié)議的支持。流表是交換機(jī)進(jìn)行轉(zhuǎn)發(fā)策略控制的核心數(shù)據(jù)結(jié)構(gòu)。交換芯片通過查找流表表項(xiàng)來決策,對進(jìn)入交換機(jī)的網(wǎng)絡(luò)流量采取合適的行為。每個(gè)表項(xiàng)包括三個(gè)域,包頭域(headerfield),計(jì)數(shù)器(counters),行動(dòng)(actions)。包頭域包括12個(gè)域,包括:進(jìn)入接口,Ethernet源地址、目標(biāo)地址、類型,VLANID,VLAN優(yōu)先級(jí),IP源地址、目標(biāo)地址、協(xié)議、IPToS位,TCP/UDP目標(biāo)端口、源端口。每一個(gè)域包括一個(gè)確定值或者所有值(any),更準(zhǔn)確的匹配可以通過掩碼實(shí)現(xiàn)。EtherType是以太幀里的一個(gè)字段,用來指明應(yīng)用于幀數(shù)據(jù)字段的協(xié)議。根據(jù)IEEE802.3,Length/EtherType字段是兩個(gè)八字節(jié)的字段,含義兩者取一,這取決于其數(shù)值。在量化評(píng)估中,字段中的第一個(gè)八位字節(jié)是最重要的。而當(dāng)字段值大于等于十進(jìn)制值1536(即十六進(jìn)制為0600)時(shí),EtherType字段表示為MAC客戶機(jī)協(xié)議(EtherType解釋)的種類。1.與POWERLINK網(wǎng)絡(luò)兼容性的實(shí)現(xiàn):POWERLINK包括五種數(shù)據(jù)幀:SoC、Preq、Pres、SoA、AsyncData。數(shù)據(jù)楨嵌在標(biāo)準(zhǔn)的以太網(wǎng)數(shù)據(jù)楨的數(shù)據(jù)段中,因此具有標(biāo)準(zhǔn)的以太網(wǎng)數(shù)據(jù)幀的幀頭和幀尾。從0至13字節(jié)是標(biāo)準(zhǔn)以太網(wǎng)的幀頭,第14字節(jié)到第n字節(jié)為POWERLINK數(shù)據(jù)幀信息。為了支持POWERLINK數(shù)據(jù),需要將基于標(biāo)準(zhǔn)以太網(wǎng)幀格式的POWERLINK幀嵌入到流表中。由于POWERLINK網(wǎng)絡(luò)是采用主-從站的工作方式,每個(gè)網(wǎng)絡(luò)中只有一個(gè)活動(dòng)的主站。因此為了使SDN回程網(wǎng)能夠支持多個(gè)POWERLINK子網(wǎng)間的通信,通過劃分VLAN的方式實(shí)現(xiàn)POWERLINK中主站隔離。即將每一個(gè)POWERLINK子網(wǎng)分配一個(gè)特定的VLAN,通過流表中的VLANID字段標(biāo)識(shí)。這樣通過劃分主站所屬的VLAN,就可以保證每個(gè)VLAN中的主站唯一,從而避免主站沖突,與POWERLINK的特點(diǎn)一致。通過指定每一個(gè)邊緣交換機(jī)入口處所屬的VLAN,就可以為每一個(gè)邊緣交換機(jī)端口所連接的POWERLINK子網(wǎng)分配所需的VLAN。邊緣交換機(jī)對在POWERLINK子網(wǎng)中收到的POWERLINK幀的處理過程如下:首先,當(dāng)收到一個(gè)幀以后,通過識(shí)別以太網(wǎng)幀中的第13和14個(gè)字節(jié)的幀類型字段,確定是否為POWERLINK幀,其中POWERLINK幀類型字段為0x88ab;然后,如果是POWERLINK幀,則根據(jù)交換機(jī)的接口判斷幀所屬的VLAN,并以幀的第1到6字節(jié)為目的地址,7到12字節(jié)為源地址,將其提取后分別按照流表項(xiàng)中的Ethernetdestinationaddress和Ethernetsourceaddress域的標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā)。2.與EtherCat網(wǎng)絡(luò)兼容性的實(shí)現(xiàn):EtherCat的幀格式也是基于標(biāo)準(zhǔn)以太網(wǎng)的結(jié)構(gòu),因此與POWERLINK類似,為了支持EtherCat數(shù)據(jù),需要將基于標(biāo)準(zhǔn)以太網(wǎng)幀格式的EtherCat幀融入到流表中。由于EtherCat網(wǎng)絡(luò)是采用主-從站的工作方式,每個(gè)網(wǎng)絡(luò)中只有一個(gè)活動(dòng)的主站。因此為了使SDN回程網(wǎng)能夠支持多個(gè)EtherCat子網(wǎng)間的通信,通過劃分VLAN的方式實(shí)現(xiàn)EtherCat中主站隔離。通過指定每一個(gè)邊緣交換機(jī)入口處所屬的VLAN,為每一個(gè)邊緣交換機(jī)端口所連接的EtherCat子網(wǎng)分配所需的VLAN。邊緣交換機(jī)對在EtherCat子網(wǎng)中收到的EtherCat幀的處理過程如下:首先,當(dāng)收到一個(gè)幀以后,通過識(shí)別以太網(wǎng)幀中的第13和14個(gè)字節(jié)的幀類型字段,確定是否為EtherCat幀,其中EtherCat幀類型字段為0x88a4;然后,如果是EtherCat幀,則根據(jù)交換機(jī)的接口判斷幀所屬的VLAN,并以幀的第1到6字節(jié)為目的地址,7到12字節(jié)為源地址,將其提取后分別按照流表項(xiàng)中的Ethernetdestinationaddress和Ethernetsourceaddress域的標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā)。3.與PROFINET網(wǎng)絡(luò)兼容性的實(shí)現(xiàn):PROFINET的物理層采用了快速以太網(wǎng)的物理層,數(shù)據(jù)鏈路層采用的是基于IEEE802.1q和IEEE802.1p的標(biāo)準(zhǔn)。網(wǎng)絡(luò)層和傳輸層采用了IP/TCP/UDP,OSI中的第5層、第6層未用,根據(jù)分布式系統(tǒng)中PROFINET控制對象的不同,應(yīng)用層分為無連接的和有連接的兩種。802.1Q幀就是在以太網(wǎng)幀的源MAC地址(SA)之后加了4個(gè)字節(jié)的TAG,802.1QTAG主要包括了TPID和TCI兩個(gè)字段。TPID(TagProtocolIdentifier,標(biāo)簽協(xié)議標(biāo)識(shí)符)用于標(biāo)識(shí)此幀作為一個(gè)標(biāo)記的幀,即表明這是一個(gè)加了802.1Q標(biāo)簽的幀。博達(dá)交換機(jī)缺省采用協(xié)議規(guī)定的TPID值(0x8100),當(dāng)幀中的EtherType也為0x8100時(shí),該幀傳送標(biāo)簽IEEE802.1Q/802.1P。某些廠商的設(shè)備將QinQ(802.1Qin802.1Q)報(bào)文外層TAG的TPID值設(shè)置為0x9100或0x9200。為了和這些設(shè)備兼容,交換機(jī)必須提供基于端口的QinQ報(bào)文TPID值可調(diào)功能。TCI(TagControlInformation,標(biāo)簽控制信息)包括用戶優(yōu)先級(jí)(UserPriority)、規(guī)范格式指示器(CanonicalFormatIndicator)和VLANID。支持IEEE802.1Q的交換端口可被配置來傳輸標(biāo)簽幀或無標(biāo)簽幀。一個(gè)包含VLAN信息的標(biāo)簽字段可以插入到以太網(wǎng)幀中。如果端口有支持IEEE802.1Q的設(shè)備(如另一個(gè)交換機(jī))相連,那么這些標(biāo)簽幀可以在交換機(jī)之間傳送VLAN成員信息,這樣VLAN就可以跨越多臺(tái)交換機(jī)。邊緣交換機(jī)對在PROFINET子網(wǎng)中收到的PROFINET幀的處理過程如下:首先,當(dāng)收到一個(gè)幀以后,通過識(shí)別以太網(wǎng)幀中的第13和14個(gè)字節(jié)的幀類型字段,確定是否為802.1Q幀,其中802.1Q幀類型字段為0x8100;然后,如果是802.1Q幀,則查看幀的第15個(gè)字節(jié)的后四位和第16個(gè)字節(jié),判斷該幀所屬的VLANID,并通過查找?guī)牡?5個(gè)字節(jié)的前三位判斷幀的優(yōu)先級(jí)。最后,以幀的第1到6字節(jié)為目的地址,7到12字節(jié)為源地址,將其提取后分別按照流表項(xiàng)中的Ethernetdestinationaddress和Ethernetsourceaddress域的標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā)。4.與IEC61850網(wǎng)絡(luò)兼容性的實(shí)現(xiàn):為了能夠?qū)崿F(xiàn)可靠性和實(shí)時(shí)性,IEC61850標(biāo)準(zhǔn)中給出了一個(gè)GSE模型,它是一個(gè)通用的變電站事件模型,在該模型下,在輸入和輸出數(shù)據(jù)值時(shí),能夠保證全系統(tǒng)范圍內(nèi)的高速性和可靠性。GSE共分為兩種,其一是是變電站事件GOOSE(GenericObjectOrientedSubstationEvent),其二是通用變電站狀態(tài)時(shí)間GSSE(GenericSubstationStateEvent),兩者類屬于控制類和報(bào)文結(jié)構(gòu)。其中前者是面向通用對象的,用來交換公共數(shù)據(jù),這些數(shù)據(jù)主要是由數(shù)據(jù)集組織的,而后者則是用來傳輸狀態(tài)變位信息(雙比特)。在抽象通信服務(wù)模型控制塊上,如果只考慮二者的屬性和服務(wù),那么GOOSE和GSSE基本上是一樣的,相差不大。只是在傳輸?shù)膱?bào)文內(nèi)容和實(shí)現(xiàn)的機(jī)制上有區(qū)別。IEC61850在數(shù)據(jù)鏈路層,采用IEEE802.1Q、IEEE802.1P協(xié)議。因此,在交換機(jī)制上IEC61850與PROFINET一致。首先,當(dāng)收到一個(gè)幀以后,通過識(shí)別以太網(wǎng)幀中的第13和14個(gè)字節(jié)的幀類型字段,確定是否為802.1Q幀,其中802.1Q幀類型字段為0x8100;然后,如果是802.1Q幀,則查看幀的第15個(gè)字節(jié)的后四位和第16個(gè)字節(jié),判斷該幀所屬的VLANID,并通過查找?guī)牡?5個(gè)字節(jié)的前三位判斷幀的優(yōu)先級(jí)。最后,以幀的第1到6字節(jié)為目的地址,7到12字節(jié)為源地址,將其提取后分別按照流表項(xiàng)中的Ethernetdestinationaddress和Ethernetsourceaddress域的標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā)。