【正文】
…………………………裝……………………………………訂…………………………………線…………………………… 摘要 隨著因特網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)通信 問題日益成為人們關(guān)注的焦點, IP包流量分析程序便是一種分析網(wǎng)絡(luò)狀況的有效方法,它從數(shù)據(jù)包流量分析角度出發(fā),通過實時地收集和監(jiān)視網(wǎng)絡(luò)數(shù)據(jù)包信息,來檢查網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)臓顟B(tài),從而監(jiān)控網(wǎng)絡(luò)環(huán)境。 當(dāng)前, 網(wǎng)絡(luò)在人們生活中發(fā)揮著越來越大的作用,人們也對網(wǎng)絡(luò)有了越來越高的需求,要適應(yīng)時代的需要,提供完善便利的網(wǎng)絡(luò)服務(wù),進(jìn)行 IP 包流量分析的課題研究很有必要。 本設(shè)計是針對于 IP包 流量分析的 ,對所經(jīng)過的 IP數(shù)據(jù)包進(jìn)行分析可以得到一系列對應(yīng)的屬性值。 IP包流量分析程序使用 RAW SOCKET設(shè)置網(wǎng)卡混雜模式以此來接受經(jīng)過的數(shù)據(jù)包,并且運用鏈表結(jié)構(gòu)來存儲符合條件的數(shù)據(jù)包,實現(xiàn)了分析 IP數(shù)據(jù)包來源、類型、數(shù)量及長度的功能。 關(guān)鍵詞 : IP數(shù)據(jù)包; 流量分析; 報文信息分析 緒論 ABSTRACT With the Inter technology, work munication is increasingly being the focus of attention, IP packet traffic analysis program is one effective method of work conditions, it is the angle from the data packet traffic analysis, realtime work data collection and monitoring Package information, to check the status of work data transmission to monitor the work environment. At present, the work plays in people39。 異常流量是指能對網(wǎng)絡(luò)的正常運行造成危害的流量 ,異常流量可能會導(dǎo)致網(wǎng)絡(luò)擁塞。尤其是在宏觀發(fā)現(xiàn)流量異常的同時 ,如何迅速有效地分離和抑制異常流量 ,對非法業(yè)務(wù)實行遏止 ,使網(wǎng)絡(luò)流量能保持其健壯性 ,就成為我們迫切想要解決的問題。而這是廣大網(wǎng)絡(luò)管理人員不愿意看到的情況,本設(shè)計通過對 IP包的捕獲與分析可以獲取與本機進(jìn)行數(shù)據(jù)交換的數(shù)據(jù)包的內(nèi)容,進(jìn)而做出合理的選擇保護(hù)網(wǎng)絡(luò)。網(wǎng)絡(luò)管理人員在做好防護(hù)的同時也要對 IP包進(jìn)行捕獲和流量分析。 緒論 開發(fā)工具及環(huán)境簡介 本設(shè)計采用的程序設(shè)計語言為 C語言。同時 C語言又是一種通用的 程序 設(shè)計語言,在國際上廣泛流行。 開發(fā)環(huán)境選用的是 Microsoft Visual C++( 微軟公司的開發(fā)工具),具有集成開發(fā)環(huán)境的功能 , 可提供編輯 C 語言 , C++以及 C++/CLI 等編程語言。發(fā)行至今一直被廣泛地用于大大小小的項目開發(fā)。比如,它允許用戶進(jìn)行遠(yuǎn)程調(diào)試,單步執(zhí)行等。 之所以采用以 上兩種工具是因為在大學(xué)期間我主要學(xué)習(xí)的語言課程就是 C 語言,還系統(tǒng)的學(xué)習(xí)了 Visual C++程序設(shè)計教程。 7 ……………………………裝……………………………………訂…………………………………線…………………………… 2. 系統(tǒng)分析 需求分析 在程序開發(fā)之前,設(shè)計人員要對系統(tǒng)進(jìn)行需求分析,要認(rèn)真了解網(wǎng)絡(luò)管理員的要求,細(xì)致地進(jìn)行調(diào)查分析,深入描述程序的功能和性能。如今網(wǎng)絡(luò)發(fā)展日新月異,大量的中小網(wǎng)絡(luò)層出不窮,伴隨而來的也有流量壓力對網(wǎng)絡(luò)的沖擊。 IP 流量分析能夠幫助網(wǎng)絡(luò)管理人員更好的了解所管理的網(wǎng)絡(luò),流量分析技術(shù)能夠幫助網(wǎng)絡(luò)管理人員提高解決問題的效率,解決問題的快慢關(guān)鍵在于如何快速分析問題發(fā)生的原因,一個高級的管理人員必須懂得有效的利用各種分析工具和手段來提高問題分析的效率,而 IP 流量分析是最為有效的手段之一。針對于 IP 包的分析可以得到以下內(nèi)容:本地 IP 地址及與本機發(fā)生數(shù)據(jù)通信的 IP 地址,交換的數(shù)據(jù)包數(shù)量、數(shù)目, IP 包的版本和生存時間等。 可行性分析 在系統(tǒng)調(diào)查的基礎(chǔ)上,針對本設(shè)計的開發(fā)具有可操作性,對其進(jìn)行從經(jīng)濟、技術(shù)、社會三方面進(jìn)行分析和研究。該程序的可行性分析包括以下幾個方面的內(nèi)容。此外,程序不僅開發(fā)成本小,維護(hù)成本也不多,并且易于維護(hù),非常適用于中小網(wǎng)絡(luò)管理員的使用。 Visual C++ 在很多學(xué)校作為教學(xué)工具進(jìn)行教學(xué)工作,由此可見此開發(fā)工具深受專業(yè)人士推崇,是種被開發(fā)人員看好且認(rèn)可的技術(shù)工具 。同時,還學(xué)會了設(shè)計事件驅(qū)動程序來響應(yīng) Windows 消息、創(chuàng)建定制對話框、繪制窗口、顯示位置圖以及常用的菜單等操作,因此在技術(shù)層面上是可以實現(xiàn)的。 IP 包流量分析程序強大功能的實現(xiàn)將會使它成為網(wǎng)絡(luò)流量分析軟件的模范,將會被大量中小網(wǎng)絡(luò)管理人員競相使用。 IP協(xié)議是 TCP/IP一系列協(xié)議的核心,主要能負(fù)責(zé) IP分組的傳輸?!安豢煽康摹焙x是指它不能 保證 IP分組成功的傳送到達(dá)目的站。最后,IP提供的是“盡最大努力交付”的服務(wù)指盡力發(fā)送每個數(shù)據(jù)包,并不隨意丟棄分組。 是一個非常簡單的協(xié)議,除了運輸層協(xié)議能夠做的最少的工作,除了提供進(jìn)程到進(jìn)程之間的通信,幾乎沒對 IP 增加任何東西。因為報頭的長度是固定的,所以該域主要被用來計算可變長度的數(shù)據(jù)部分。 特點如下: (1)UDP 是一個 無連接協(xié)議 , 傳輸數(shù)據(jù)之前源端和終端不建立連接,當(dāng)它想傳送時就簡單地去抓取來自應(yīng)用程序的數(shù)據(jù),并盡可能快地把它扔到網(wǎng)絡(luò)上。 (3)UDP 信息包的標(biāo)題很短,只有 8 個字節(jié),相對于 TCP 的 20 個字節(jié)信息包的額 外開銷很小。 (5)UDP 使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持復(fù)雜的鏈接狀態(tài)表(這里面有許多參數(shù))。發(fā)送 方的UDP 對應(yīng)用程序交下來的報文,在添加首部后就向下交付給 IP 層。 UDP 數(shù)據(jù)包格式由手部和數(shù)據(jù)兩部分組成。 系統(tǒng)分析 首部8B 數(shù)據(jù) 源端口號16bit 目的端口號16bit 檢驗和16bit 總長度16bit 圖 UDP數(shù)據(jù)報格式 ( TCP,Transmission Control Protocol)就是為了在不可靠的互聯(lián)網(wǎng)上提供一個可靠的端到端、面向字節(jié)流連接設(shè)計的。應(yīng)用層向 TCP層發(fā)送用于網(wǎng)間傳輸?shù)?、?8位字節(jié)表示的數(shù)據(jù)流,然后 TCP把數(shù)據(jù)流分割成適當(dāng)長度的報文段(通常受該計算機連接的網(wǎng)絡(luò)的數(shù)據(jù)鏈路層的最大傳送單元 (MTU)的限制)。 TCP和 UDP都具有端口號,而且它們對端口號的使用是彼此獨立的。其中 TCP建立連接之后,通信雙方都同時可以進(jìn)行數(shù)據(jù)的傳輸,其次,他是全雙工的;在保證可靠性上,采用 超時重傳和 捎帶確認(rèn) 機制。如圖 。 管理好一個網(wǎng)絡(luò)最重要的就是對網(wǎng)絡(luò)的了解 ,對 IP 流量分析能使網(wǎng)絡(luò)管理人員更深入 地了解網(wǎng)絡(luò)。網(wǎng)絡(luò)上重要的應(yīng)用在運行時,每一個訪問,每一個交易處理,數(shù)據(jù)都由網(wǎng)絡(luò)來傳輸,通過分析應(yīng)用的流量,能夠清楚的了解應(yīng)用運行的規(guī)律,數(shù)據(jù)包內(nèi)容、數(shù)據(jù)包處理數(shù)量、響應(yīng)時間等數(shù)據(jù),都可以通過 IP 流量分析手段獲取。 ,如果能做到及時地發(fā)現(xiàn)網(wǎng)絡(luò)中的異常,將使網(wǎng)絡(luò)管理更主動,將為網(wǎng)絡(luò)的持續(xù)高性能運行提供重要的保障 [5]。網(wǎng)絡(luò)中流量的異常,包括利用率、數(shù)據(jù)包數(shù)的異常、連接數(shù)量、應(yīng)用流量的異常,都可以通過長期主動 IP 流量分析來及時發(fā)現(xiàn)。 IP 流量分析可以為網(wǎng)絡(luò)和應(yīng)用問題的分析提供依據(jù),特別是數(shù)據(jù)包級的分析,因為這些依據(jù)是真實的,它們是實實在在的在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包,這也是流量分析能夠大大提高網(wǎng)絡(luò)和應(yīng)用問題分析效率的原因。 13 ……………………………裝……………………………………訂…………………………………線…………………………… 3. 系統(tǒng)總體設(shè)計 開發(fā)設(shè)計思想 程序開發(fā)設(shè)計思想有以下幾點: ,從而達(dá)到充分利用現(xiàn)有資源,提高程序開發(fā)水平和應(yīng)用效果的 目的。 統(tǒng)采用模塊化程序設(shè)計方法,既便于程序功能的各種組合和修改,又便于未參與開發(fā)的技術(shù)人員對其功能的補充。所以我們要 想截獲流經(jīng)網(wǎng)絡(luò)設(shè)備的所有數(shù)據(jù)包,就要采取一點特別的手段了:將網(wǎng)卡設(shè)置為混雜模式。但是要注意一點,這種截獲僅僅是數(shù)據(jù)包的一份拷貝,而不能對其進(jìn)行截斷。用命令提示符輸入程序所在位置并且加系統(tǒng)總體設(shè)計 上程序運行時間 程序才能運行。 程序結(jié)構(gòu)設(shè)計 在 main方法中首先判斷命令行輸入的參數(shù)格式是否合乎要求,然后將獲取的時間長度的字符串轉(zhuǎn)化為整型的,然后依靠系統(tǒng)時間進(jìn)行判斷程序執(zhí)行時間是否已經(jīng)滿足要求。 混雜模式( Promiscuous Mode)是指一臺機器能夠接收所有經(jīng)過它的數(shù)據(jù)流,而 不論其目的地址是否是它?;祀s模式就是接收所有經(jīng)過網(wǎng)卡的數(shù)據(jù)包,包括不是發(fā)給本機的包。簡單的講 ,混雜模式就是指網(wǎng)卡能接受所有通過它的數(shù)據(jù)流,不管是什么格式,什么地址的。 在程序執(zhí)行過程中時刻監(jiān)視系統(tǒng)時間以便時間滿足要求后能及時退出,將捕捉到的數(shù)據(jù)包的頭文件的內(nèi)容加入鏈表中,同時 將相應(yīng)的信息輸出到屏幕,此鏈表再追加的時候可以自行作出判斷,如果之前捕捉到的相同源目的地址和協(xié)議類型的數(shù)據(jù)包則不添加新的結(jié)點而是把原來的計數(shù)器加一,在執(zhí)行時間滿足之后退出循環(huán),將鏈表中的信息輸出作為這段時間里的捕捉到的數(shù)據(jù)包的統(tǒng)計信息。 15 ……………………………裝……………………………………訂…………………………………線…………………………… 數(shù) 據(jù) 包 源 地 址 目 的 地 址 協(xié) 議 類 型 長 度 版 本 生 存 時 間 流 量 分 析 數(shù) 據(jù) 長 度 數(shù) 據(jù) 包 數(shù) 量 數(shù) 據(jù) 交 換 時 間 發(fā) 送 數(shù) 量 接 受 數(shù) 量 具 體 協(xié) 議 I P 包 流 量 分 析 圖 鏈表是一種物理存儲單元上非連續(xù)、非順序的存儲結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的 [6]。每個結(jié)點包括兩個部分:一個是存儲數(shù)據(jù)元素的數(shù)據(jù)域,另一個是存儲下一個結(jié)點地址的指針域。因此,為了表示每個數(shù)據(jù)元素與其直接后繼數(shù)據(jù)元素之間的邏輯關(guān)系,對數(shù)據(jù)元素來說,除了存儲其本身的信息之外,還需存儲一個指示其直接后繼的信息 相比于線性表順序結(jié)構(gòu),鏈表比較方便插入和刪除操作。 系統(tǒng)總體設(shè)計 協(xié) 議 類 型 下 一 行 指 針 表 頭 指 針 本 地 主 機 I P 目 的 主 機 I P 計 數(shù) i p N o d e 表 尾 指 針 圖 統(tǒng)計模塊設(shè)計 輸出統(tǒng)計的 IP 數(shù)據(jù)包信息 , 列出源地