本發(fā)明屬于網(wǎng)絡(luò)通信領(lǐng)域,特別涉及一種大象流兩級(jí)識(shí)別系統(tǒng)及方法。
背景技術(shù):
數(shù)據(jù)流量的爆發(fā)式增長(zhǎng)對(duì)網(wǎng)絡(luò)管理提出了巨大的挑戰(zhàn),流量識(shí)別成為當(dāng)前的熱門技術(shù)。依據(jù)流攜帶數(shù)據(jù)量的多少通??蓪⒕W(wǎng)絡(luò)流分為大象流和老鼠流,大象流占網(wǎng)絡(luò)流總數(shù)的10%左右,但其承載了網(wǎng)絡(luò)85%的數(shù)據(jù)量,具有傳輸時(shí)間長(zhǎng)、占用帶寬大、數(shù)量較少的特點(diǎn),而老鼠流則正好相反。
現(xiàn)有大象流識(shí)別技術(shù)主要基于包采樣實(shí)現(xiàn),通過對(duì)網(wǎng)絡(luò)流進(jìn)行采樣并由SDN控制器對(duì)其出現(xiàn)頻率進(jìn)行統(tǒng)計(jì)分析,如分析結(jié)果超出預(yù)設(shè)大象流閾值則可認(rèn)定該流為大象流。但該方案有兩個(gè)缺點(diǎn),一是大象流識(shí)別準(zhǔn)確率不高,二是老鼠流誤判為大象流的錯(cuò)誤率較高。如果能夠終端識(shí)別大象流并依據(jù)網(wǎng)絡(luò)統(tǒng)計(jì)信息對(duì)識(shí)別結(jié)果進(jìn)行篩選,則可以提高大象流識(shí)別準(zhǔn)確性。目前,還沒有將大象流終端識(shí)別與SDN網(wǎng)絡(luò)監(jiān)測(cè)結(jié)合來識(shí)別大象流的方法,為此,本專利設(shè)計(jì)一種大象流的兩級(jí)識(shí)別系統(tǒng)及方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種大象流的兩級(jí)識(shí)別系統(tǒng)及方法,考慮主機(jī)終端的大象流識(shí)別,并依據(jù)SDN監(jiān)測(cè)信息對(duì)終端識(shí)別結(jié)果進(jìn)行篩選,以此提升大象流識(shí)別準(zhǔn)確性。本發(fā)明通過監(jiān)測(cè)主機(jī)端套接字緩存來實(shí)現(xiàn)終端大象流的識(shí)別,根據(jù)SDN控制器統(tǒng)計(jì)的大象流信息實(shí)現(xiàn)對(duì)終端識(shí)別結(jié)果的篩選,剔除不滿足條件的大象流。
本發(fā)明提出的一種大象流兩級(jí)識(shí)別系統(tǒng),其包括識(shí)別并標(biāo)記大象流模塊、統(tǒng)計(jì)大象流信息模塊和識(shí)別錯(cuò)檢大象流模塊。
1、識(shí)別并標(biāo)記大象流模塊:用戶主機(jī)與對(duì)端主機(jī)通過三次握手建立TCP連接,如果應(yīng)用程序存在待轉(zhuǎn)發(fā)數(shù)據(jù),該模塊啟動(dòng)計(jì)時(shí)器1記錄時(shí)間t1,允許主機(jī)端套接字緩存正常接收應(yīng)用程序數(shù)據(jù)但不允許TCP向網(wǎng)絡(luò)轉(zhuǎn)發(fā)數(shù)據(jù)。當(dāng)t1≥T0(T0為數(shù)據(jù)累積時(shí)間)或套接字緩存被填滿時(shí),該模塊監(jiān)測(cè)套接字緩存并記錄此時(shí)緩存中字節(jié)數(shù)m。比較m與M(M為大象流識(shí)別閾值),如果m≥M,則識(shí)別該流為大象流;如果m<M,則識(shí)別該流為老鼠流。某條流被識(shí)別為大象流后,該模塊通知IP協(xié)議在封裝該流數(shù)據(jù)包時(shí),設(shè)置該流數(shù)據(jù)包IP包頭差分服務(wù)代碼點(diǎn)(Differentiated Services Code Point,DSCP)字段為大象流標(biāo)識(shí)符;如果某條流識(shí)別為老鼠流,則不設(shè)置該流IP包頭DSCP字段。最后該模塊啟用數(shù)據(jù)包的正常發(fā)送功能。
2、統(tǒng)計(jì)大象流信息模塊:該模塊將終端識(shí)別的大象流記錄在大象流列表中,通過SDN控制器定時(shí)讀取網(wǎng)絡(luò)邊緣交換機(jī)流表項(xiàng)中計(jì)數(shù)器記錄的大象流信息,包括接收到該流數(shù)據(jù)包數(shù)p,接收到該流比特?cái)?shù)b以及該流持續(xù)時(shí)間。
3、識(shí)別錯(cuò)檢大象流模塊:該模塊讀取統(tǒng)計(jì)大象流信息模塊收集的大象流信息,計(jì)算最近時(shí)間段內(nèi)該流數(shù)據(jù)包的平均字節(jié)數(shù)n。如果n<N(N為大象流包平均字節(jié)數(shù)),則認(rèn)定該流為老鼠流,篩選大象流模塊將其大象流列表中刪除;如果n≥N,則認(rèn)定該流仍為大象流。
本發(fā)明提出的一種基于套接字緩存的大象流兩級(jí)識(shí)別系統(tǒng),如圖1所示。
本發(fā)明方法通過監(jiān)測(cè)主機(jī)端套接字緩存來實(shí)現(xiàn)大象流的識(shí)別,并依據(jù)網(wǎng)絡(luò)中大象流的特征信息實(shí)現(xiàn)終端識(shí)別結(jié)果的篩選。本發(fā)明方法應(yīng)用前,網(wǎng)絡(luò)管理員可依據(jù)大象流識(shí)別標(biāo)準(zhǔn)及網(wǎng)絡(luò)實(shí)際情況設(shè)置主機(jī)端套接字緩存的大小,數(shù)據(jù)累積時(shí)間T0,大象流識(shí)別閾值M,大象流包平均字節(jié)數(shù)N。
本發(fā)明提出的一種基于套接字緩存的大象流兩級(jí)識(shí)別方法,其按如下步驟:
步驟1、用戶主機(jī)與對(duì)端主機(jī)建立TCP連接并進(jìn)行數(shù)據(jù)交互。
兩臺(tái)主機(jī)建立TCP連接進(jìn)行數(shù)據(jù)交互時(shí),軟件判斷是否存在應(yīng)用程序數(shù)據(jù)待發(fā)送,如果有則進(jìn)入步驟2;否則繼續(xù)等待直到有應(yīng)用程序數(shù)據(jù)產(chǎn)生。
步驟2、在套接字緩存中累積應(yīng)用程序數(shù)據(jù)。
軟件啟動(dòng)計(jì)時(shí)器1并記錄時(shí)間t1,同時(shí)允許主機(jī)端套接字緩存正常接收應(yīng)用程序數(shù)據(jù)但不允許TCP向網(wǎng)絡(luò)轉(zhuǎn)發(fā)數(shù)據(jù),累積應(yīng)用程序數(shù)據(jù)。當(dāng)t1≥T0(T0為數(shù)據(jù)累積時(shí)間)或套接字緩存區(qū)被填滿時(shí),進(jìn)入步驟3;否則繼續(xù)步驟2。
步驟3、監(jiān)測(cè)套接字緩存中的累積字節(jié)數(shù)并據(jù)此識(shí)別該流是否為大象流。
軟件讀取用戶主機(jī)端套接字發(fā)送緩存中的累積字節(jié)數(shù)m。如果m≥M(M為大象流閾值),則軟件識(shí)別該流為大象流;如果m<M,軟件識(shí)別該流為老鼠流,本發(fā)明方法結(jié)束。
步驟4、設(shè)置IP包頭DSCP字段標(biāo)識(shí)大象流。
軟件設(shè)置該流IP包頭DSCP值為大象流標(biāo)識(shí)符,對(duì)該大象流進(jìn)行標(biāo)識(shí);不設(shè)置老鼠流數(shù)據(jù)包IP包頭DSCP值(采用默認(rèn)值)。
步驟5、大象流在SDN網(wǎng)絡(luò)中轉(zhuǎn)發(fā)。
主機(jī)端應(yīng)用程序數(shù)據(jù)封裝后在SDN網(wǎng)絡(luò)中傳輸,交換機(jī)按照相應(yīng)策略進(jìn)行轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)策略可由控制器制定。
步驟6、監(jiān)測(cè)并統(tǒng)計(jì)網(wǎng)絡(luò)中的大象流。
控制器記錄大象流于大象流列表中并監(jiān)測(cè)網(wǎng)絡(luò)中的大象流,定時(shí)讀取網(wǎng)絡(luò)邊緣交換機(jī)流表項(xiàng)計(jì)數(shù)器中記錄的大象流信息,包括接收到該流數(shù)據(jù)包數(shù)p,接收到該流比特?cái)?shù)b以及該流持續(xù)時(shí)間。
步驟7、篩選大象流
分析大象流相關(guān)信息并計(jì)算最近時(shí)間段內(nèi)該流數(shù)據(jù)包的平均字節(jié)數(shù)n,可由公式得到,其中b2、p2為最新統(tǒng)計(jì)信息,b1、p1為次新統(tǒng)計(jì)信息。
如果n<N(N為預(yù)設(shè)閾值),則識(shí)別該流為老鼠流,將該流從大象流列表中刪除,大象流識(shí)別方法結(jié)束;如果n>N,則識(shí)別該流仍為大象流,回到步驟5繼續(xù)轉(zhuǎn)發(fā)。
至此,整個(gè)大象流兩級(jí)識(shí)別方法結(jié)束,方法流程圖如圖2所示。
本發(fā)明的系統(tǒng)及方法具有以下兩個(gè)優(yōu)點(diǎn):
(1)通過在主機(jī)端套接字緩存中累積應(yīng)用程序數(shù)據(jù)并監(jiān)測(cè)緩存中字節(jié)數(shù)來識(shí)別大象流,大象流識(shí)別準(zhǔn)確性和實(shí)時(shí)性較高。
(2)依據(jù)網(wǎng)絡(luò)中大象流的傳輸特征實(shí)現(xiàn)主機(jī)端識(shí)別結(jié)果的篩選,將不滿足條件的大象流從大象流列表中剔除,。
附圖說明
圖1是本發(fā)明的系統(tǒng)框圖。
圖2是本發(fā)明的方法流程圖。
圖3是本發(fā)明實(shí)施例網(wǎng)絡(luò)拓?fù)涫疽鈭D
具體實(shí)施方式
下面對(duì)本發(fā)明優(yōu)選實(shí)施例作詳細(xì)說明。
本實(shí)施例以主機(jī)A(Host A)上的應(yīng)用程序1通過TCP連接與主機(jī)B(Host B)進(jìn)行數(shù)據(jù)交互為例,主機(jī)所處網(wǎng)絡(luò)如圖3所示。依據(jù)本專利大象流標(biāo)準(zhǔn)(傳輸數(shù)據(jù)大于10KB的流)以及網(wǎng)絡(luò)的實(shí)際情況,本實(shí)施例中網(wǎng)絡(luò)管理員可設(shè)置主機(jī)套接字發(fā)送緩存大小為20KB,數(shù)據(jù)累積時(shí)間T0=50ms,大象流識(shí)別閾值M=10KB,大象流標(biāo)志值位110000,大象流包平均字節(jié)數(shù)N=500B。
一種大象流兩級(jí)識(shí)別方法的步驟如下:
步驟1、用戶主機(jī)與對(duì)端主機(jī)建立TCP連接并進(jìn)行數(shù)據(jù)交互。
主機(jī)A應(yīng)用程序1與主機(jī)B建立TCP連接并進(jìn)行數(shù)據(jù)交互,軟件判斷此時(shí)存在應(yīng)用程序1數(shù)據(jù)待發(fā)送,進(jìn)入步驟2。
步驟2、在套接字緩存中累積應(yīng)用程序數(shù)據(jù)。
軟件啟動(dòng)計(jì)時(shí)器1并記錄時(shí)間t1,同時(shí)允許主機(jī)A的套接字緩存正常接收應(yīng)用程序1的數(shù)據(jù)但不允許TCP向網(wǎng)絡(luò)轉(zhuǎn)發(fā)數(shù)據(jù)。當(dāng)t1=50ms=T0時(shí)計(jì)時(shí)器計(jì)時(shí)結(jié)束,進(jìn)入步驟3。
步驟3、監(jiān)測(cè)套接字發(fā)送緩存中累積的數(shù)據(jù)字節(jié)數(shù)并識(shí)別該流是否為大象流。
軟件讀取主機(jī)A套接字緩存中的累積字節(jié)數(shù)m=15KB,判斷m>M,則識(shí)別應(yīng)用程序1的流為大象流。
步驟4、設(shè)置IP包頭DSCP字段標(biāo)記大象流。
軟件設(shè)置該流IP包頭DSCP值為110000,實(shí)現(xiàn)該大象流的標(biāo)識(shí)。
步驟5、大象流在SDN網(wǎng)絡(luò)中轉(zhuǎn)發(fā)。
主機(jī)A應(yīng)用程序1的數(shù)據(jù)封裝后在SDN網(wǎng)絡(luò)中傳輸,交換機(jī)按照相應(yīng)策略進(jìn)行轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)策略可由控制器制定。
步驟6、監(jiān)測(cè)并統(tǒng)計(jì)網(wǎng)絡(luò)中的大象流。
控制器記錄應(yīng)用程序1的數(shù)據(jù)流于大象流列表中并監(jiān)測(cè)該流,定時(shí)讀取網(wǎng)絡(luò)邊緣交換機(jī)流表項(xiàng)計(jì)數(shù)器中記錄的大象流信息,獲得如下數(shù)據(jù):最新接收到的該流數(shù)據(jù)包數(shù)p2=50個(gè)、最新接收到的該流比特?cái)?shù)b2=200Mb;次新接收到的該流數(shù)據(jù)包數(shù)p1=5個(gè)、次新接收到的該流比特?cái)?shù)b1=40Mb。
步驟7、對(duì)大象流進(jìn)行二次識(shí)別
分析應(yīng)用程序1的數(shù)據(jù)流相關(guān)信息并計(jì)算最近時(shí)間內(nèi)該流數(shù)據(jù)包的平均字節(jié)數(shù)n,可由公式字節(jié)/包得到,其中b2、p2為最新統(tǒng)計(jì)信息,b1、p1為次新統(tǒng)計(jì)信息。此時(shí)n<N,則識(shí)別該流為老鼠流,將該流從大象流列表中刪除,大象流識(shí)別方法結(jié)束。
至此,一種大象流兩級(jí)識(shí)別方法結(jié)束。
本發(fā)明的一種大象流兩級(jí)識(shí)別系統(tǒng),在實(shí)例中采用與方法實(shí)例中相同的場(chǎng)景。具體應(yīng)用如下:
1、識(shí)別并標(biāo)記大象流模塊:主機(jī)A應(yīng)用程序1與主機(jī)B建立TCP連接并進(jìn)行數(shù)據(jù)交互,該模塊啟動(dòng)計(jì)時(shí)器1記錄時(shí)間t1,允許主機(jī)端套接字緩存正常接收應(yīng)用程序1的數(shù)據(jù)但不允許TCP向網(wǎng)絡(luò)層傳輸數(shù)據(jù),對(duì)應(yīng)用程序數(shù)據(jù)進(jìn)行累積。當(dāng)t1=50ms=T0時(shí)計(jì)時(shí)器計(jì)時(shí)結(jié)束,允許數(shù)據(jù)段從傳輸層到網(wǎng)絡(luò)層的正常傳輸。該模塊讀取主機(jī)A套接字緩存中的累積字節(jié)數(shù)m=15KB,判斷m>M,則識(shí)別應(yīng)用程序1的流為大象流。主機(jī)A應(yīng)用程序1的流被識(shí)別為大象流后,該模塊通知IP協(xié)議在封裝該流數(shù)據(jù)段時(shí),設(shè)置該流數(shù)據(jù)包IP包頭DSCP值(Differentiated Services Code Point)為大象流標(biāo)記值(本實(shí)施例中為000011)。
2、統(tǒng)計(jì)大象流信息模塊:該模塊通過SDN控制器定時(shí)讀取網(wǎng)絡(luò)邊緣交換機(jī)流表項(xiàng)(Flow Entry)計(jì)數(shù)器記錄的應(yīng)用程序1的流相關(guān)信息,獲得如下數(shù)據(jù):最新接收到的該流數(shù)據(jù)包數(shù)p2=50個(gè)、最新接收到的該流比特?cái)?shù)b2=200Mb;次新接收到的該流數(shù)據(jù)包數(shù)p1=5個(gè)、次新接收到的該流比特?cái)?shù)b1=40Mb。
3、識(shí)別錯(cuò)檢大象流模塊:該模塊讀取統(tǒng)計(jì)大象流信息模塊收集的大象流相關(guān)信息,計(jì)算最近一段時(shí)間內(nèi)應(yīng)用程序1的數(shù)據(jù)包的平均字節(jié)n=455字節(jié)/包,則認(rèn)定該流為老鼠流,篩選大象流模塊將其大象流列表中刪除。
當(dāng)然,本技術(shù)領(lǐng)域中的普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,以上實(shí)施例僅是用來說明本發(fā)明的,而并非作為對(duì)本發(fā)明的限定,只要在本發(fā)明的范圍內(nèi),對(duì)以上實(shí)施例的變化、變型都將落入本發(fā)明的保護(hù)范圍。