專(zhuān)利名稱(chēng):基于報(bào)文截取的內(nèi)網(wǎng)視頻文件監(jiān)控系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,尤其涉及一種基于報(bào)文截取的內(nèi)網(wǎng)視頻文件監(jiān)控系 統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)視頻隨著互聯(lián)網(wǎng)的普及,網(wǎng)絡(luò)視頻漸漸成為一種非常重要的信息載體,而網(wǎng)絡(luò)視頻流 量在整個(gè)互聯(lián)網(wǎng)流量中也占到了非常大的比例。網(wǎng)絡(luò)視頻是指視頻網(wǎng)站提供的在線(xiàn)視頻播放服務(wù),主要利用流媒體格式的視頻文 件,眾多的流媒體格式中,flv格式由于文件小,占用客戶(hù)端資源少等優(yōu)點(diǎn)成為網(wǎng)絡(luò)視頻所 依靠的主要文件格式。視頻格式可以分為適合本地播放的本地影像視頻和適合在網(wǎng)絡(luò)中播放的網(wǎng)絡(luò)流 媒體影像視頻兩大類(lèi)。盡管后者在播放的穩(wěn)定性和播放畫(huà)面質(zhì)量上可能沒(méi)有前者優(yōu)秀,但 網(wǎng)絡(luò)流媒體影像視頻的廣泛傳播性使之正被廣泛應(yīng)用于視頻點(diǎn)播、網(wǎng)絡(luò)演示、遠(yuǎn)程教育、網(wǎng) 絡(luò)視頻廣告等等互聯(lián)網(wǎng)信息服務(wù)領(lǐng)域。swf (shock wave flash)是Macromedia(現(xiàn)已被ADOBE公司收購(gòu))公司的動(dòng)畫(huà)設(shè) 計(jì)軟件Flash的專(zhuān)用格式,是一種支持矢量和點(diǎn)陣圖形的動(dòng)畫(huà)文件格式,被廣泛應(yīng)用于網(wǎng) 頁(yè)設(shè)計(jì),動(dòng)畫(huà)制作等領(lǐng)域,swf文件通常也被稱(chēng)為Flash文件。FLV是FLASH VIDEO的簡(jiǎn)稱(chēng),F(xiàn)LV流媒體格式是一種新的視頻格式。由于它形成的 文件極小、加載速度極快,使得網(wǎng)絡(luò)觀看視頻文件成為可能,它的出現(xiàn)有效地解決了視頻文 件導(dǎo)入Flash后,使導(dǎo)出的SWF文件體積龐大,不能在網(wǎng)絡(luò)上很好的使用等缺點(diǎn)。目前各在線(xiàn)視頻網(wǎng)站均采用此視頻格式。如新浪播客、六間房、56、優(yōu)酷、土豆、酷 6、y0UtUbe等,無(wú)一例外。FLV已經(jīng)成為當(dāng)前視頻文件的主流格式。FLV是目前被眾多新一 代視頻分享網(wǎng)站所采用,是目前增長(zhǎng)最快、最為廣泛的視頻傳播格式。是在sorenson公司 的壓縮算法的基礎(chǔ)上開(kāi)發(fā)出來(lái)的。FLV格式不僅可以輕松的導(dǎo)入Flash中,速度極快,并且 能起到保護(hù)版權(quán)的作用,并且可以不通過(guò)本地的微軟或者REAL播放器播放視頻。報(bào)文截獲網(wǎng)絡(luò)報(bào)文截獲是網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的基礎(chǔ)。一般指通過(guò)截獲整個(gè)網(wǎng)絡(luò)的所有信息 流量,根據(jù)信息源主機(jī),目標(biāo)主機(jī),服務(wù)協(xié)議端口等信息簡(jiǎn)單過(guò)濾掉不關(guān)心的數(shù)據(jù),再將用 戶(hù)感興趣的數(shù)據(jù)發(fā)送給更高層的應(yīng)用程序進(jìn)行分析。Iibpcap是imix/linux平臺(tái)下的網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)包,大多數(shù)網(wǎng)絡(luò)監(jiān)控軟件都 以它為基礎(chǔ)。Libpcap可以在絕大多數(shù)類(lèi)imix平臺(tái)下工作。Libpcap提供了系統(tǒng)獨(dú)立的用戶(hù)級(jí)別網(wǎng)絡(luò)數(shù)據(jù)包捕獲接口,并充分考慮到應(yīng)用程 序的可移植性。Libpcap可以在絕大多數(shù)類(lèi)unix平臺(tái)下工作。在windows平臺(tái)下,一個(gè)與 Iibpcap很類(lèi)似的函數(shù)包winpcap提供捕獲功能。內(nèi)網(wǎng)監(jiān)控
計(jì)算機(jī)和互聯(lián)網(wǎng)的普及和應(yīng)用為企業(yè)帶來(lái)了巨大的經(jīng)濟(jì)效益,同時(shí)不容忽視的問(wèn) 題是企業(yè)的員工上班期間都是內(nèi)網(wǎng)的計(jì)算機(jī)來(lái)工作,還是占用上班時(shí)間來(lái)玩游戲,或是聊 天、炒股、上與工作無(wú)關(guān)的網(wǎng)站?還有部分下載電影占用大量的帶寬而影響其他員工的工 作?還有一些員工將公司的機(jī)密文件或者代碼通過(guò)U盤(pán)、郵件、IM等方式泄露出去,給公 司造成損失。如何提升工作效率,如何讓公司信息資產(chǎn)免受損失是擺著每個(gè)企業(yè)面前的難 題?很多內(nèi)網(wǎng)監(jiān)控是專(zhuān)門(mén)針對(duì)解決以上問(wèn)題所研發(fā)的,管理人員在辦公室中既可以實(shí) 時(shí)監(jiān)控所有被控計(jì)算機(jī)的工作狀況,也可以像電視墻一樣查閱全屏幕錄像,還可以看到所 有的需要監(jiān)控的員工使用計(jì)算機(jī)的歷史記錄,包括訪(fǎng)問(wèn)的網(wǎng)站、外發(fā)的資料、收發(fā)郵件的內(nèi) 容及附件、聊天內(nèi)容、拷貝重要資料等所有操作,安裝非法軟件、黑客程序、閑聊、盜竊公司 重要資料等行為,提高企業(yè)信息化管理的效率,保護(hù)企業(yè)信息資產(chǎn)安全。目前的這些內(nèi)網(wǎng)監(jiān)控軟件,往往是服務(wù)企業(yè)的。但是,從信息監(jiān)控的角度看,目前 有很多內(nèi)網(wǎng)監(jiān)控系統(tǒng)尚沒(méi)有發(fā)現(xiàn)對(duì)內(nèi)網(wǎng)中的視頻文件進(jìn)行監(jiān)視的系統(tǒng)。隨著社會(huì)的發(fā)展, 視頻以其信息量豐富,越來(lái)越成為重要的信息載體。從信息監(jiān)控的角度看,對(duì)視頻文件信息 進(jìn)行監(jiān)控也正在越來(lái)越成為一種安全需要。
發(fā)明內(nèi)容
本發(fā)明利用winpcap函數(shù)包實(shí)現(xiàn)了報(bào)文的截獲,實(shí)現(xiàn)了內(nèi)網(wǎng)中對(duì)fIv視頻文件進(jìn) 行監(jiān)視的系統(tǒng)。通過(guò)該系統(tǒng),可以實(shí)現(xiàn)對(duì)內(nèi)網(wǎng)中所有計(jì)算機(jī)的網(wǎng)絡(luò)視頻信息的捕獲還原,實(shí) 現(xiàn)監(jiān)控的目的。該系統(tǒng)采用了一種高效率和低內(nèi)存占用的視頻文件還原方法,提高了實(shí)用 性。根據(jù)本發(fā)明的一種基于報(bào)文截取的內(nèi)網(wǎng)視頻文件監(jiān)控系統(tǒng),包括監(jiān)控時(shí)間設(shè)定器,用于進(jìn)行監(jiān)控時(shí)間的設(shè)定,設(shè)定對(duì)內(nèi)網(wǎng)實(shí)施視頻監(jiān)控的時(shí)間段, 即監(jiān)控啟動(dòng)時(shí)間和停止時(shí)間,到達(dá)指定的監(jiān)控時(shí)間時(shí),啟動(dòng)監(jiān)控系統(tǒng);網(wǎng)絡(luò)探測(cè)器,向內(nèi)網(wǎng)中廣播ARP請(qǐng)求報(bào)文,根據(jù)收到的回復(fù)報(bào)文,得到內(nèi)網(wǎng)主機(jī)的 IP列表;網(wǎng)卡選擇器,監(jiān)控主機(jī)可能有多個(gè)網(wǎng)卡,首先選定進(jìn)行視頻監(jiān)控所使用的網(wǎng)卡;端口設(shè)定器,為每個(gè)IP地址設(shè)定需要監(jiān)控的源端口列表,默認(rèn)設(shè)定源端口為80 ;報(bào)文截取與分流器,進(jìn)行報(bào)文截取與分流,截獲進(jìn)入內(nèi)網(wǎng)的網(wǎng)絡(luò)原始報(bào)文,隨后進(jìn) 行報(bào)文解析,將報(bào)文的鏈路層、IP層、TCP層的報(bào)文頭、以及TCP載荷分別解析出來(lái),根據(jù)報(bào) 文IP頭指定的目的IP地址,將報(bào)文分流到該IP的報(bào)文處理器;報(bào)文處理器,在接收到分流過(guò)來(lái)的報(bào)文后,分析TCP層報(bào)文頭,如果報(bào)文的源端口 與端口設(shè)定器設(shè)定的端口相同,則創(chuàng)建視頻報(bào)文緩存文件,其中將每個(gè)報(bào)文存儲(chǔ)為一個(gè)記 錄,記錄內(nèi)容包括該報(bào)文的TCP序列號(hào)、期望序列號(hào)、報(bào)文載荷長(zhǎng)度、報(bào)文載荷內(nèi)容,并記錄 該報(bào)文的源IP,作為視頻源IP,記錄該報(bào)文的目的端口,作為視頻目的端口,并設(shè)置視頻報(bào) 文啟動(dòng)標(biāo)識(shí);當(dāng)視頻報(bào)文啟動(dòng)標(biāo)識(shí)啟動(dòng)且后續(xù)接收到的報(bào)文的源IP與所述視頻源IP相同 時(shí),將所述后續(xù)接收到的報(bào)文以預(yù)設(shè)格式寫(xiě)入當(dāng)前視頻報(bào)文緩存文件;如果在設(shè)置時(shí)間段 內(nèi)沒(méi)有收到來(lái)自視頻源IP的報(bào)文,視為該視頻傳輸結(jié)束,關(guān)閉視頻報(bào)文緩存文件;視頻文件處理器,打開(kāi)視頻報(bào)文緩存文件,并將文件中的所有記錄的載荷內(nèi)容按照TCP序列號(hào)升序的方式,重新寫(xiě)入一個(gè)目標(biāo)文件,完成后得到的文件,即為還原后的視頻 文件。更具體的,所述報(bào)文處理器進(jìn)一步包括源端口判斷單元、視頻首報(bào)文判斷單元、中 間報(bào)文處理單元、視頻結(jié)束判斷單元、循環(huán)監(jiān)控單元,其中源端口判斷單元用于分析接收到分流過(guò)來(lái)的報(bào)文的TCP層報(bào)文頭,如果報(bào)文的源 端口與端口設(shè)定器設(shè)定的端口相同,則繼續(xù);否則,丟棄該報(bào)文,退出報(bào)文處理流程;視頻首報(bào)文判斷單元,在TCP載荷中搜索flv視頻的起始標(biāo)志字符串,如果找到, 則新建一個(gè)視頻報(bào)文緩存文件,其中將每個(gè)報(bào)文存儲(chǔ)為一個(gè)記錄,記錄內(nèi)容包括該報(bào)文的 TCP序列號(hào)、TCP序列號(hào)加報(bào)文載荷長(zhǎng)度的和、報(bào)文載荷長(zhǎng)度、報(bào)文載荷內(nèi)容,同時(shí),記錄該 報(bào)文的源IP,作為視頻源IP,記錄該報(bào)文的目的端口,作為視頻目的端口,并設(shè)置視頻報(bào)文 啟動(dòng)標(biāo)識(shí);中間報(bào)文處理單元,判斷后續(xù)接收的視頻報(bào)文啟動(dòng)標(biāo)識(shí),如果沒(méi)有啟動(dòng),則丟棄該 報(bào)文,報(bào)文處理流程結(jié)束,如果已經(jīng)啟動(dòng),則判斷該報(bào)文的源IP是否與所述視頻源IP相同, 如果相同,將該后續(xù)接收的報(bào)文的TCP序列號(hào)、期望序列號(hào)、報(bào)文載荷長(zhǎng)度、報(bào)文載荷內(nèi)容 作為一個(gè)記錄寫(xiě)入當(dāng)前的視頻報(bào)文緩存文件;如果不同,丟棄該報(bào)文;視頻結(jié)束判斷單元,如果在設(shè)置時(shí)間內(nèi)沒(méi)有收到來(lái)自視頻源IP的報(bào)文,視為該視 頻傳輸結(jié)束,關(guān)閉視頻報(bào)文緩存文件;循環(huán)監(jiān)控單元,在監(jiān)控結(jié)束時(shí)間結(jié)束之前,循環(huán)往復(fù)進(jìn)行報(bào)文的截獲、分流和處理 流程。更具體的,所述視頻文件處理器,讀取視頻報(bào)文緩存文件中的第一個(gè)記錄,設(shè)置第 一變量值tcpSeqWant的值為期望序列號(hào),將報(bào)文載荷內(nèi)容寫(xiě)入目標(biāo)文件,從視頻緩存文件 中讀取下一個(gè)記錄,設(shè)置第二變量值tcpSeq的值為該記錄的TCP序列號(hào),通過(guò)比較前一記 錄的期望序列號(hào)與后一記錄的TCP序列號(hào)的大小,確定是否將后一記錄的報(bào)文載荷內(nèi)容 寫(xiě)入目標(biāo)文件,寫(xiě)入目標(biāo)文件后,更新第一變量值tcpSeqWant的值為后一記錄的期望序列 號(hào),直至視頻報(bào)文緩存文件所有記錄讀取完畢,生成最終還原視頻文件。
圖1示意性的示出了根據(jù)本發(fā)明的基于報(bào)文截取的內(nèi)網(wǎng)視頻文件監(jiān)控系統(tǒng)的邏 輯框圖;圖2示意性的示出了根據(jù)本發(fā)明的報(bào)文處理器的邏輯框圖;圖3示意性的示出了根據(jù)本發(fā)明的報(bào)文處理器對(duì)抓取的報(bào)文進(jìn)行還原的流程圖。
具體實(shí)施例方式參照?qǐng)D1,示出了本發(fā)明的視頻文件監(jiān)控系統(tǒng)的邏輯框圖。其中包括監(jiān)控時(shí)間設(shè) 定器101,用于進(jìn)行監(jiān)控時(shí)間的設(shè)定,設(shè)定對(duì)內(nèi)網(wǎng)實(shí)施視頻監(jiān)控的時(shí)間段,即監(jiān)控啟動(dòng)時(shí)間 和停止時(shí)間。到達(dá)指定的監(jiān)控時(shí)間時(shí),啟動(dòng)監(jiān)控系統(tǒng)。網(wǎng)絡(luò)探測(cè)器102,向內(nèi)網(wǎng)中廣播ARP 請(qǐng)求報(bào)文,根據(jù)收到的回復(fù)報(bào)文,得到內(nèi)網(wǎng)主機(jī)的IP列表。網(wǎng)卡選擇器103,監(jiān)控主機(jī)可能 有多個(gè)網(wǎng)卡,首先選定進(jìn)行視頻監(jiān)控所使用的網(wǎng)卡。端口設(shè)定器104,為每個(gè)IP地址設(shè)定 需要監(jiān)控的源端口列表,由于目前視頻信息絕大多數(shù)是基于web的,故默認(rèn)設(shè)定源端口為80。報(bào)文截取與分流器105,進(jìn)行報(bào)文截取與分流,首先截獲進(jìn)入內(nèi)網(wǎng)的網(wǎng)絡(luò)原始報(bào)文;進(jìn) 行報(bào)文解析將報(bào)文的鏈路層、IP層、TCP層的報(bào)文頭、以及TCP載荷分別解析出來(lái);報(bào)文分 流(器)根據(jù)報(bào)文IP頭指定的目的IP地址,將報(bào)文分流到該IP的報(bào)文處理器106。如 圖2所示,每個(gè)IP的報(bào)文處理器106進(jìn)一步包括源端口判斷單元201、視頻首報(bào)文判斷單元 202、中間報(bào)文處理單元203、視頻結(jié)束判斷單元204、循環(huán)監(jiān)控單元205,在接收到分流過(guò)來(lái) 的報(bào)文后,啟動(dòng)報(bào)文處理流程如下源端口判斷分析TCP層報(bào)文頭,如果報(bào)文的源端口與端口設(shè)定器104設(shè)定的端口 相同,則繼續(xù);否則,丟棄該報(bào)文,退出報(bào)文處理流程視頻首報(bào)文判斷在TCP載荷中搜索flv視頻的起始標(biāo)志字符串(“FLV” ),如果 找到,則新建一個(gè)文件,該文件稱(chēng)為視頻報(bào)文緩存文件。文件中將每個(gè)報(bào)文存儲(chǔ)為一個(gè)記 錄,記錄內(nèi)容包括該報(bào)文的TCP序列號(hào)、TCP序列號(hào)加報(bào)文載荷長(zhǎng)度的和(本發(fā)明稱(chēng)之為期 望序列號(hào))、報(bào)文載荷長(zhǎng)度、報(bào)文載荷內(nèi)容。同時(shí),記錄該報(bào)文的源IP,作為視頻源IP,記錄 該報(bào)文的目的端口,作為視頻目的端口,并設(shè)置視頻報(bào)文啟動(dòng)標(biāo)識(shí),報(bào)文處理流程結(jié)束。如 果沒(méi)有找到起始標(biāo)志字符串,進(jìn)入下一步。判斷視頻報(bào)文啟動(dòng)標(biāo)識(shí),如果沒(méi)有啟動(dòng),則丟棄該報(bào)文,報(bào)文處理流程結(jié)束。如果 已經(jīng)啟動(dòng),則判斷該報(bào)文的源IP是否與上述的視頻源IP相同,如果相同,將該報(bào)文的TCP 序列號(hào)、TCP序列號(hào)加報(bào)文載荷長(zhǎng)度的和(本發(fā)明稱(chēng)之為期望序列號(hào))、報(bào)文載荷長(zhǎng)度、報(bào)文 載荷內(nèi)容作為一個(gè)記錄寫(xiě)入當(dāng)前的視頻報(bào)文緩存文件;如果不同,丟棄該報(bào)文,報(bào)文處理流 程結(jié)束。視頻結(jié)束判斷連續(xù)3分鐘沒(méi)有收到來(lái)自視頻源IP的報(bào)文,視為該視頻傳輸結(jié)束。 關(guān)閉視頻報(bào)文緩存文件。循環(huán)監(jiān)控報(bào)文的截獲、分流和處理流程循環(huán)往復(fù),一直持續(xù)到監(jiān)控結(jié)束時(shí)間。監(jiān)控結(jié)束時(shí)間到達(dá)后,停止報(bào)文的截獲、分流和處理,將已經(jīng)生成的視頻報(bào)文緩存 文件提交給視頻文件處理器107進(jìn)行處理。視頻文件處理器107處理視頻報(bào)文緩存文件。由于視頻報(bào)文在傳遞的過(guò)程中可能 會(huì)發(fā)生亂序,所以必須要對(duì)接收到的報(bào)文重新排序。但是,如果實(shí)時(shí)的進(jìn)行排序,會(huì)因?yàn)闄C(jī) 器的性能限制,造成較嚴(yán)重的丟包,即無(wú)法抓取到所有的到達(dá)網(wǎng)絡(luò)的視頻報(bào)文。所以需要先 將報(bào)文保存在視頻報(bào)文緩存文件,在監(jiān)控結(jié)束后由視頻文件處理器107進(jìn)行處理。如圖3所示,視頻文件處理器107打開(kāi)視頻報(bào)文緩存文件,并將文件中的所有記錄 的載荷內(nèi)容按照TCP序列號(hào)升序的方式,重新寫(xiě)入一個(gè)目標(biāo)文件,完成后得到的文件,即為 還原好的視頻文件,從而實(shí)現(xiàn)了對(duì)內(nèi)網(wǎng)中視頻信息的監(jiān)控。首先通過(guò)第一記錄讀取步驟,從視頻報(bào)文緩存文件中讀取第一個(gè)記錄,設(shè)置 tcpSeqffant值為期望序列號(hào),將報(bào)文載荷內(nèi)容寫(xiě)入目標(biāo)文件。后續(xù)記錄讀取步驟,從視頻緩存文件中讀取下一個(gè)記錄,設(shè)置tcpSeq值為該記錄 的TCP序列號(hào)。序列號(hào)比較步驟,判斷tcpSeq大于、等于還是小于tcpSeqffant ;如果tcpSeq < tcpSeqffant,則判斷傳輸過(guò)程出錯(cuò)而出現(xiàn)重復(fù)報(bào)文,丟棄該報(bào)文重新進(jìn)行后續(xù)記錄讀取 步驟;如果tcpSeq > tcpSeqffant,則轉(zhuǎn)到早到報(bào)文處理步驟;如果二者相等,則轉(zhuǎn)到記錄載 荷寫(xiě)入步驟。
早到報(bào)文處理步驟,判斷接收到的該記錄對(duì)應(yīng)的tcp報(bào)文早到,將該記錄按TCP序 列號(hào)升序的方式放入記錄緩沖鏈表;如果記錄緩沖鏈表尚未建立,則建立該鏈表,并將該記 錄按TCP序列號(hào)升序的方式放入記錄緩沖鏈表。轉(zhuǎn)到后續(xù)記錄讀取步驟,進(jìn)行下一記錄的 讀取。記錄載荷寫(xiě)入步驟,將tcpSeqWant值更新為當(dāng)前記錄的期望序列號(hào),將該記錄的 載荷寫(xiě)入目標(biāo)文件。記錄緩沖鏈表查詢(xún)步驟,查詢(xún)記錄緩沖鏈表中是否有記錄,使得該記錄的TCP序 列號(hào)=tcpSeqWant,如果有,則從記錄緩沖鏈表中讀取該記錄,將tcpSeqWant值設(shè)置為該 記錄的期望序列號(hào),并將記錄的載荷內(nèi)容寫(xiě)入目標(biāo)文件;然后從鏈表中刪除該項(xiàng)記錄,并進(jìn) 行下一輪查詢(xún);如果沒(méi)有,則轉(zhuǎn)到后續(xù)記錄讀取步驟,進(jìn)行下一記錄的讀取。為了實(shí)現(xiàn)還原視頻文件的目的,也可以先將所有記錄從視頻報(bào)文緩存文件中讀入 一個(gè)鏈表,然后對(duì)鏈表排序,最后重新寫(xiě)入目標(biāo)文件;但是,采用這種方法會(huì)占用較多的存 儲(chǔ)資源,而且,先讀入全部的記錄然后排序,其排序工作量也會(huì)比較大。與這種方法相比,本 發(fā)明采用的方法具有較高的速度和較低的資源占用。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技 術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于報(bào)文截取的內(nèi)網(wǎng)視頻文件監(jiān)控系統(tǒng),包括監(jiān)控時(shí)間設(shè)定器,用于進(jìn)行監(jiān)控時(shí)間的設(shè)定,設(shè)定對(duì)內(nèi)網(wǎng)實(shí)施視頻監(jiān)控的時(shí)間段,即監(jiān) 控啟動(dòng)時(shí)間和停止時(shí)間,到達(dá)指定的監(jiān)控時(shí)間時(shí),啟動(dòng)監(jiān)控系統(tǒng);網(wǎng)絡(luò)探測(cè)器,向內(nèi)網(wǎng)中廣播ARP請(qǐng)求報(bào)文,根據(jù)收到的回復(fù)報(bào)文,得到內(nèi)網(wǎng)主機(jī)的IP列表;網(wǎng)卡選擇器,監(jiān)控主機(jī)可能有多個(gè)網(wǎng)卡,首先選定進(jìn)行視頻監(jiān)控所使用的網(wǎng)卡; 端口設(shè)定器,為每個(gè)IP地址設(shè)定需要監(jiān)控的源端口列表,默認(rèn)設(shè)定源端口為80 ; 報(bào)文截取與分流器,進(jìn)行報(bào)文截取與分流,截獲進(jìn)入內(nèi)網(wǎng)的網(wǎng)絡(luò)原始報(bào)文,隨后進(jìn)行報(bào) 文解析,將報(bào)文的鏈路層、IP層、TCP層的報(bào)文頭、以及TCP載荷分別解析出來(lái),根據(jù)報(bào)文IP 頭指定的目的IP地址,將報(bào)文分流到該IP的報(bào)文處理器;報(bào)文處理器,在接收到分流過(guò)來(lái)的報(bào)文后,分析TCP層報(bào)文頭,如果報(bào)文的源端口與端 口設(shè)定器設(shè)定的端口相同,則創(chuàng)建視頻報(bào)文緩存文件,其中將每個(gè)報(bào)文存儲(chǔ)為一個(gè)記錄,記 錄內(nèi)容包括該報(bào)文的TCP序列號(hào)、期望序列號(hào)、報(bào)文載荷長(zhǎng)度、報(bào)文載荷內(nèi)容,并記錄該報(bào) 文的源IP,作為視頻源IP,記錄該報(bào)文的目的端口,作為視頻目的端口,并設(shè)置視頻報(bào)文啟 動(dòng)標(biāo)識(shí);當(dāng)視頻報(bào)文啟動(dòng)標(biāo)識(shí)啟動(dòng)且后續(xù)接收到的報(bào)文的源IP與所述視頻源IP相同時(shí),將 所述后續(xù)接收到的報(bào)文以預(yù)設(shè)格式寫(xiě)入當(dāng)前視頻報(bào)文緩存文件;如果在設(shè)置時(shí)間段內(nèi)沒(méi)有 收到來(lái)自視頻源IP的報(bào)文,視為該視頻傳輸結(jié)束,關(guān)閉視頻報(bào)文緩存文件;視頻文件處理器,打開(kāi)視頻報(bào)文緩存文件,并將文件中的所有記錄的載荷內(nèi)容按照TCP 序列號(hào)升序的方式,重新寫(xiě)入一個(gè)目標(biāo)文件,完成后得到的文件,即為還原后的視頻文件。
2.根據(jù)權(quán)利要求1的系統(tǒng),所述報(bào)文處理器進(jìn)一步包括源端口判斷單元、視頻首報(bào)文 判斷單元、中間報(bào)文處理單元、視頻結(jié)束判斷單元、循環(huán)監(jiān)控單元,其中源端口判斷單元用于分析接收到分流過(guò)來(lái)的報(bào)文的TCP層報(bào)文頭,如果報(bào)文的源端口 與端口設(shè)定器設(shè)定的端口相同,則繼續(xù);否則,丟棄該報(bào)文,退出報(bào)文處理流程;視頻首報(bào)文判斷單元,在TCP載荷中搜索flv視頻的起始標(biāo)志字符串,如果找到,則新 建一個(gè)視頻報(bào)文緩存文件,其中將每個(gè)報(bào)文存儲(chǔ)為一個(gè)記錄,記錄內(nèi)容包括該報(bào)文的TCP 序列號(hào)、TCP序列號(hào)加報(bào)文載荷長(zhǎng)度的和、報(bào)文載荷長(zhǎng)度、報(bào)文載荷內(nèi)容,同時(shí),記錄該報(bào)文 的源IP,作為視頻源IP,記錄該報(bào)文的目的端口,作為視頻目的端口,并設(shè)置視頻報(bào)文啟動(dòng) 標(biāo)識(shí);中間報(bào)文處理單元,判斷后續(xù)接收的視頻報(bào)文啟動(dòng)標(biāo)識(shí),如果沒(méi)有啟動(dòng),則丟棄該報(bào) 文,報(bào)文處理流程結(jié)束,如果已經(jīng)啟動(dòng),則判斷該報(bào)文的源IP是否與所述視頻源IP相同,如 果相同,將該后續(xù)接收的報(bào)文的TCP序列號(hào)、期望序列號(hào)、報(bào)文載荷長(zhǎng)度、報(bào)文載荷內(nèi)容作 為一個(gè)記錄寫(xiě)入當(dāng)前的視頻報(bào)文緩存文件;如果不同,丟棄該報(bào)文;視頻結(jié)束判斷單元,如果在設(shè)置時(shí)間內(nèi)沒(méi)有收到來(lái)自視頻源IP的報(bào)文,視為該視頻傳 輸結(jié)束,關(guān)閉視頻報(bào)文緩存文件;循環(huán)監(jiān)控單元,在監(jiān)控結(jié)束時(shí)間結(jié)束之前,循環(huán)往復(fù)進(jìn)行報(bào)文的截獲、分流和處理流程。
3.根據(jù)權(quán)利要求1的系統(tǒng),其中所述視頻文件處理器,讀取視頻報(bào)文緩存文件中的第 一個(gè)記錄,設(shè)置第一變量值tcpSeqWant的值為期望序列號(hào),將報(bào)文載荷內(nèi)容寫(xiě)入目標(biāo)文 件,從視頻緩存文件中讀取下一個(gè)記錄,設(shè)置第二變量值tcpSeq的值為該記錄的TCP序列號(hào),通過(guò)比較前一記錄的期望序列號(hào)與后一記錄的TCP序列號(hào)的大小,確定是否將后一記 錄的報(bào)文載荷內(nèi)容寫(xiě)入目標(biāo)文件,寫(xiě)入目標(biāo)文件后,更新第一變量值tcpSeqWant的值為后 一記錄的期望序列號(hào),直至視頻報(bào)文緩存文件的所有記錄讀取完畢,生成最終還原視頻文 件。
全文摘要
一種基于報(bào)文截取的內(nèi)網(wǎng)視頻文件監(jiān)控系統(tǒng),包括監(jiān)控時(shí)間設(shè)定器,用于到達(dá)指定的監(jiān)控時(shí)間時(shí),啟動(dòng)監(jiān)控系統(tǒng);網(wǎng)絡(luò)探測(cè)器,向內(nèi)網(wǎng)中廣播ARP請(qǐng)求報(bào)文,根據(jù)收到的回復(fù)報(bào)文,得到內(nèi)網(wǎng)主機(jī)的IP列表;網(wǎng)卡選擇器,選定進(jìn)行視頻監(jiān)控所使用的網(wǎng)卡;端口設(shè)定器,為每個(gè)IP地址設(shè)定需要監(jiān)控的源端口列表;報(bào)文截取與分流器,進(jìn)行報(bào)文截取與分流,截獲進(jìn)入內(nèi)網(wǎng)的網(wǎng)絡(luò)原始報(bào)文,隨后進(jìn)行報(bào)文解析,創(chuàng)建視頻報(bào)文緩存文件;視頻文件處理器,打開(kāi)視頻報(bào)文緩存文件,并將文件中的所有記錄的載荷內(nèi)容按照TCP序列號(hào)升序的方式,重新寫(xiě)入一個(gè)目標(biāo)文件,完成后得到的文件,即為還原后的視頻文件,由此獲得較高的處理速度和較低的資源占用,實(shí)現(xiàn)對(duì)內(nèi)網(wǎng)視頻文件的監(jiān)控。
文檔編號(hào)H04L12/26GK102082709SQ20111002555
公開(kāi)日2011年6月1日 申請(qǐng)日期2011年1月24日 優(yōu)先權(quán)日2011年1月24日
發(fā)明者劉明, 劉波, 張靜, 王天佐, 王懷民, 肖楓濤, 胡華平, 陳新, 陳林 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)