freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

網(wǎng)絡流量監(jiān)控及分析工具的設計與實現(xiàn)—計算機(論文)(編輯修改稿)

2025-01-11 03:22 本頁面
 

【文章內(nèi)容簡介】 能實現(xiàn)數(shù)據(jù)的采集。 第二 , 需要了解套接字的工作程序和使用方法: 一般來說, 采用套 接 字開發(fā) 網(wǎng)絡 程序需 要經(jīng)歷以下幾個基本步驟: 啟動、創(chuàng)建、綁定、監(jiān)聽(接受連接)、連接、發(fā)送 /接收數(shù)據(jù)、關閉、卸載等。 第三 , 具體到 Windows 下利用原始套接字捕獲網(wǎng)絡數(shù)據(jù)可以這樣設計: ( 1)啟動套接字; ( 2)創(chuàng)建一個原始套接字; ( 3)將套接字與本地地址綁定; ( 4)設置操作參數(shù); ( 5)設置網(wǎng)絡接口為混雜模式; ( 6)啟動監(jiān)聽線程,開始接收數(shù)據(jù); ( 7)退出 關閉套接字 。 原始數(shù)據(jù)包捕獲的關鍵函數(shù) ( 1)啟動函數(shù) WSAStartup int PASCAL FAR WSAStartup (DWORD wVersionRequested , LPWSADATA lpWSAData); 每一個套接字應用程序都必須調(diào)用該函數(shù)進行一系列初始化工作,并且只有調(diào)用成功返回后,才能開始使用套接字,其中參數(shù) wVersionRequested 是版本號,高字節(jié)是次版本號、低字節(jié)是主版本號,參數(shù) lpWSAData 是指向 WSADATA 結構的指針 。 ( 2)套接字創(chuàng)建函數(shù) socket SOCKET socket (int af , int type , int protocol)。 所有的通信在建立之前都必須創(chuàng)建一個套接字, socket 函數(shù)的功能就是創(chuàng) 第 8 頁 共 22 頁 建套接字,其中參數(shù) af 指協(xié)議地址族( address family),當建立的套接字是依賴于 UDP 或 TCP 的話,需要設置 af為 AF_INET,表示采用 IP 協(xié)議。參數(shù) type 是指協(xié)議的套接字類型,采用流式套接字時用 SOCK_STREAM,采用數(shù)據(jù)報套接字時用 SOCK_DGRAM,采用原始套接字時用 SOCK_RAW。參數(shù) protocol 是協(xié)議字段,默認 情況下可直接設置為 0。 ( 3)綁定函數(shù) bind int bind ( SOCKET s , struct sockaddr_in* name , int namelen)。 成功創(chuàng)建套接字后的下一步工作就是將本地網(wǎng)絡接口與套接字進行綁定,其中參數(shù) s 是創(chuàng)建的套接字,參數(shù) name 是需要綁定的通信對象的信息結構體指針,namelen 是該結構的長度。需要注意 的是 sockaddr_in 結構: struct sockaddr_in{ short sin_family。 //地址族,設置為 AF_INET unsigned short sin_port。 //指定的端口號 struct in_addr sin_addr。 //IP 地址 char sin_zero[8]。 }。 由于主機序列與網(wǎng)絡序列的關系,在程序中需要使用 htons 等函數(shù)進行轉(zhuǎn)換工作。 ( 4)設置接口模式函數(shù) WSAIoctl int WSAAPI WSAIoctl(SOCKET s, DWORD dwIoControlCode, LPVOID lpvInBuffer, DWORD cbInBuffer, LPVOID lpvOutBuffer, DWORD cbOutBuffer, LPDWORD lpcbBytesReturned, LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)。 其中, s 為一個套接口的句柄, dwIoControlCode 為操作控制代碼,lpvInBuffer 為 輸入緩沖區(qū)的地址, cbInBuffer 為輸入緩沖區(qū)的大小,lpvOutBuffer 為輸出緩沖區(qū)的地址, cbOutBuffer 為輸出緩沖區(qū)的大小, lpcbBytesReturned 為輸出實際字節(jié)數(shù)的地址, lpOverlapped 為 WSAOVERLAPPED 結構的地址, lpCompletionRoutine 為一個指向操作結束后調(diào)用的例程指針。 調(diào)用成功后, WSAIoctl 函數(shù)返回 0, 否則的話,將返回 INVALID_SOCKET 錯誤,應用程序可通過 WSAGetLastError 來獲取錯誤代碼。 第 9 頁 共 22 頁 ( 5)數(shù)據(jù)接收 函數(shù) recv int recv (SOCKET s , char* buf ,int len , int flags)。 4 網(wǎng)絡流量監(jiān)控系統(tǒng)各模塊的設計與實現(xiàn) 開發(fā)背景介紹 本設計開發(fā)平臺采用 Microsoft ,它是目前使用比較廣泛的 Winsock 開發(fā)平臺,因此具有較強的適應性 , 能夠在很多的操作系統(tǒng)平臺上運行,設計后具有直觀的簡潔的操作界面,穩(wěn)定性也比較高。 總體結構設計 通過收集與分析簡單網(wǎng)絡流量監(jiān)控軟件的用戶需求, 總結出以下特征: ( 1)需要實現(xiàn)對網(wǎng)絡接口數(shù)據(jù)包的盡可能多的 捕獲 , 將網(wǎng)卡設置為混雜模式,然后進行數(shù)據(jù)包的采集; ( 2)數(shù)據(jù)包的內(nèi)容要進行一定的解析,對數(shù)據(jù)包的協(xié)議類型、源目地址、數(shù)據(jù)包截獲時間、數(shù)據(jù)包內(nèi)容需要進行分析; ( 3)根據(jù)用戶不同的要求能夠依照特定地址范圍、特定協(xié)議類型相關包等條件進行自定義監(jiān)視; ( 4)監(jiān)視結果輸出有實時流量圖、列表等顯示; ( 5)實現(xiàn)日志記錄,便于日后分析 ; ( 6)對某些常見的攻擊進行發(fā)現(xiàn)分析。 總合以上 系統(tǒng) 要求與綜合分析,本系統(tǒng)總體設計如下,采用 VC++ 編寫,系統(tǒng)具有三個主要功能部分:數(shù)據(jù)捕獲與顯示模塊、流量信息統(tǒng)計模塊、流量繪制 模塊,如圖 5所示 。 數(shù)據(jù)采集模塊: 完成網(wǎng)絡接口數(shù)據(jù)的捕獲、 解析和顯示,可以根據(jù)用戶定義條件組合來進行捕獲,如只監(jiān)視采用 TCP 或 UDP 協(xié)議的數(shù)據(jù)包,也可以監(jiān)視用戶希望關注的相關 IP 地址的數(shù)據(jù)包,同時完成數(shù)據(jù)封包日志記錄,提高了系統(tǒng)的靈活性。 同時,在對數(shù)據(jù)包的解析過程中對 一些常見入侵攻擊特征進行判斷,發(fā)出預警。該模塊采用編寫原始套接字開發(fā) 。 圖 5 系統(tǒng)總體設計結構圖 流量監(jiān)控分析系統(tǒng) 數(shù)據(jù)采集模塊 信息統(tǒng)計模塊 流量繪制模塊 第 10 頁 共 22 頁 信息統(tǒng)計模塊:完成統(tǒng)計功能,如統(tǒng)計 IP 要實現(xiàn)統(tǒng)計接收到的數(shù)據(jù)報數(shù)量、接收到的數(shù)據(jù)中協(xié)議出錯的數(shù)量、正在請求傳輸?shù)臄?shù)量、路由表中可用路由數(shù)量、丟棄的數(shù)量、需要 重組 /成功重組的數(shù)量等,統(tǒng)計 ICMP 需要完成發(fā)送 /接收的消息數(shù)量、滿足超過 TTL 的數(shù)量、重定向數(shù)量、時間戳請求 /應答數(shù)量等;采用 IP助手函數(shù)完成。 流量繪制模塊:完成總流量、輸入流量、輸出流量、瞬時流量值、最高流量值的顯示;采用訪問注冊表網(wǎng)絡性能數(shù)據(jù)完成有關數(shù)據(jù)的獲取,通過流量圖顯示。 流程圖 設計 根據(jù)上面對各個功能模塊的劃分,進行更進一步的分析和設計,得到數(shù)據(jù)采集、注冊表網(wǎng)絡性能塊訪問大致的工作流程圖,如圖 6 與圖 7所示。 圖 6 數(shù)據(jù)捕獲處理流程 圖 7 網(wǎng)絡性能數(shù)據(jù)塊訪問流程 第 11 頁 共 22 頁 各模塊功能概述與實現(xiàn) 數(shù)據(jù)包采集中 各類的關系 經(jīng)過上面的分析與設計,得到該系統(tǒng)的總體功能結構、工作流程,也 確定 了從編寫套接字到最后捕獲數(shù)據(jù),要經(jīng)過創(chuàng)建、綁定、設置工作模式、啟動線程、接收數(shù)據(jù)等一系列的處理操作。為了實現(xiàn)處理中的每一步操作,設計了數(shù)據(jù)捕獲的類關系 ,如圖 8 所示 。 在上圖中 CSockSupport, CSockHelper , CPackInterDlg, CBinDataDlg 等是封裝了各部分主要處理功能的類。且這些類中封裝了和這些類的操作相關的方法。將在 后 面對這些類的功能和實現(xiàn)進行詳細介紹。 數(shù)據(jù)包捕獲與分析模塊 ( 1) 功 能實現(xiàn)說明 該 功 能模 塊主 要 由封 裝的 CSockSupport ,CsockHelper , CpackInterDlg, CbinDataDlg 四個類完成 ,下面將對這些類進行詳細說明。 CsockSupport 類:主要負責檢查 Socket 是否支持 版本,在該類中封裝了 WSAStartup 完成 Socket的啟動; CsockHelper 類:主要實現(xiàn)了從獲取本機信息結構、 Socket 創(chuàng)建、綁定、設置、啟動線程、數(shù)據(jù)接收到協(xié)議分析的全部方法,詳細處理流程見圖 9 所示。 GetLocalIP 實現(xiàn)獲取本機地址操 作的方法,LPHOSTENT lphp 是定義一個主機信息結構,獲取過程由 gethostname(szLoame,MAX_HOSTNAME_LAN) 與gethostbyname(szLoame)完成;第一個參數(shù)是用于放置本機名稱的緩沖,第二個參數(shù)是緩沖區(qū)長度,最后利用 i_ntoa 將 IP 地址轉(zhuǎn)化為“ .”式地址。 圖 8 數(shù)據(jù)包采集中各類的關系 圖 9 CSockHelper類處理流程 第 12 頁 共 22 頁 StartCapture 方法完成套接字的創(chuàng)建、綁定、設置操作方式和啟動線程;具體完成如下: m_sockCap = socket(AF_INET , SOCK_RAW , IPPROTO_IP)。//創(chuàng)建套接字 bind(m_sockCap, (PSOCKADDR)amp。sa, sizeof(sa))。//綁定 setsockopt(m_sockCap, SOL_SOCKET, SO_REUSEADDR, (char*)amp。bopt, sizeof(bopt)) 。//設置操作 setsockopt(m_sockCap, IPPROTO_IP, IP_HDRINCL, (char*)amp。bopt, sizeof(bopt)) 。//設置操作 WSAIoctl(m_sockCap,SIO_RCVALL,amp。dwBufferInLen,sizeof(dwBufferInLen),dwBufferLen,sizeof(dwBufferLen),amp。dwBytesReturned,NULL,NULL)。// 混 雜模式 m_hCapThread = CreateThread(NULL, 0, CaptureThread, this, 0, NULL)。//啟動線程 線程函數(shù) CaptureThread 主要完成數(shù)據(jù)的接收。數(shù)據(jù)接收后,將緩沖區(qū)數(shù)據(jù)轉(zhuǎn)化為 IP 數(shù)據(jù)格式后即可以開始解析過程,協(xié)議名稱獲取如下: for(int i=0。 iMAX_PROTO_NUM。 i++) if(ProtoMap[i].ProtoNum==iProtocol) return ProtoMap[i].ProtoText。 return “”。 ParseIPPack 方法完成數(shù)據(jù)包的解析: int iIphLen = sizeof(unsigned long) * (pIpheaderh_lenver amp。 0xf) //獲取數(shù)據(jù)包長度 協(xié)議解析: switch(iProtocol) { case IPPROTO_TCP : ?? case IPPROTO_UDP : ?? case IPPROTO_ICMP : ?? default :?? } StopCapture 完成關閉線程和套接字操作: 第 13 頁 共 22 頁 if(m_hCapThread) {TerminateThread(m_hCapThread, 0)。 //中斷進程 CloseHandle(m_hCapThread)。 //關閉句柄 m_hCapThread = NULL。} if(m_sockCap) closesocket(m_sockCap)。 //關閉套接字 CbinDataDlg 類主要完成對已捕獲數(shù)據(jù)的存儲和顯示方法; CpackInterDlg類通過建立 CbinDataDlg 類和 CsockHelper 類對象實現(xiàn)數(shù)據(jù)捕獲、解析、顯示、存儲等,同時它完成對捕獲條件設置控件、日志記錄控件的編寫,在這里就不做詳細介紹了。 ( 2)界面設計(見圖 10) 流量獲取模塊 ( 1)設計說明 設計思路:實際編程時, Windows 系統(tǒng)內(nèi)提供了一個系統(tǒng)性能的接口,只需要訪問這個接口就可以得到網(wǎng)絡性能相關的數(shù)據(jù),如流量;根據(jù)這個想 法,設計出了本功能模塊的子功能模塊如下: ? 訪問性能數(shù)據(jù)子模塊:負責對注冊表進行訪問,獲取流量數(shù)據(jù); ? 顯示子模塊:負責將數(shù)據(jù)繪制在窗口中; 圖 10 數(shù)據(jù)捕獲模塊界面 第 14 頁 共 22 頁 ? 框架子模塊:負責消息映射和消息處理; 本模塊中,將使用到一個注冊表訪問函數(shù) RegQueryValueE
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1