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

正文內(nèi)容

網(wǎng)絡(luò)編程課程設(shè)計(jì)-基于winpcap技術(shù)的網(wǎng)絡(luò)--數(shù)據(jù)包捕獲過濾和分析技術(shù)-資料下載頁

2025-10-31 10:20本頁面

【導(dǎo)讀】1)WinPcap獲取與網(wǎng)絡(luò)配置器綁定的設(shè)備列表…………………比如,一些單位的員工在工作期間炒股,玩網(wǎng)絡(luò)游戲等,面對(duì)這。些問題,基于WinPcap技術(shù)的網(wǎng)絡(luò)數(shù)據(jù)包捕獲,過濾和分析技術(shù)。用的,有了流量便可以成功的進(jìn)行管理。開發(fā)winpcap這個(gè)項(xiàng)目的目的在于為win32應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力。2>在數(shù)據(jù)報(bào)發(fā)往應(yīng)用程序之前,按照自定義的規(guī)則將某些特殊的數(shù)據(jù)報(bào)過濾掉;3>在網(wǎng)絡(luò)上發(fā)送原始的數(shù)據(jù)報(bào);4>收集網(wǎng)絡(luò)通信過程中的統(tǒng)計(jì)信息。在于獨(dú)立于主機(jī)協(xié)議而發(fā)送和接收原始數(shù)據(jù)包。享網(wǎng)絡(luò)上傳送的數(shù)據(jù)包。因此,它不能用于QoS調(diào)度程序或個(gè)人防火墻。差異,比如說9x只支持ANSI編碼,而NT系統(tǒng)則提倡使用Unicode編碼。密碼,它只能用在HUB網(wǎng)絡(luò)上。著名軟件tcpdump及idssnort都是基于libpcap. 編寫的,此外Nmap掃描器也是基于libpcap來捕獲目標(biāo)主機(jī)返回的數(shù)據(jù)包的。winpcap提供給用戶兩個(gè)不同級(jí)別的編程接口:一個(gè)基于libpcap的,對(duì)于一般的要與unix平臺(tái)上libpcap兼容的開發(fā)來。表,子網(wǎng)掩碼列表,廣播地址列表和目的地址列表。

  

【正文】 e /* 如果接口沒有地址,那么我們假設(shè)一個(gè) C類的 掩碼 */ mask=0xffffff。 //編譯過濾器 if (pcap_pile(adhandle, amp。fcode, packet_filter, 1, mask) 0 ) { fprintf(stderr,\nUnable to pile the packet filter. Check the syntax.\n)。 /* 釋放設(shè)備列表 */ pcap_freealldevs(alldevs)。 return 1。 } //設(shè)置過濾器 if (pcap_setfilter(adhandle, amp。fcode)0) { fprintf(stderr,\nError setting the filter.\n)。 /* 釋放設(shè)備列表 */ pcap_freealldevs(alldevs)。 return 1。 } printf(\nlistening on %s...\n, ddescription)。 /* 釋放設(shè)備列表 */ pcap_freealldevs(alldevs)。 /* 開始捕捉 */ pcap_loop(adhandle, 0, packet_handler, NULL)。 return 0。 } /* 回調(diào)函數(shù),當(dāng)收到每一個(gè)數(shù)據(jù)包時(shí)會(huì)被 libpcap所調(diào)用 */ void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data) { struct tm *ltime。 char timestr[16]。 ip_header *ih。 udp_header *uh。 u_int ip_len。 u_short sport,dport。 time_t local_tv_sec。 /* 將時(shí)間戳轉(zhuǎn)換成可識(shí)別的格式 */ local_tv_sec = header。 ltime=localtime(amp。local_tv_sec)。 strftime( timestr, sizeof timestr, %H:%M:%S, ltime)。 /* 打印數(shù)據(jù)包的時(shí)間戳和長度 */ printf(%s.%.6d len:%d , timestr, header, headerlen)。 /* 獲得 IP數(shù)據(jù)包頭部的位置 */ ih = (ip_header *) (pkt_data + 14)。 //以太網(wǎng)頭部長度 /* 獲得 UDP首部的位置 */ ip_len = (ihver_ihl amp。 0xf) * 4。 uh = (udp_header *) ((u_char*)ih + ip_len)。 /* 將網(wǎng)絡(luò)字節(jié)序列轉(zhuǎn)換成主機(jī)字節(jié)序列 */ sport = ntohs( uhsport )。 dport = ntohs( uhdport )。 /* 打印 IP地址和 UDP端口 */ printf(%d.%d.%d.%d.%d %d.%d.%d.%d.%d\n, ih, ih, ih, ih, sport, ih, ih, ih, ih, dport)。 } 五、 NIC驅(qū)動(dòng)器和 NDIS 1) NPF 和 NDIS NDIS( Network Driver Interface Specification)是一個(gè)定義網(wǎng)絡(luò)適配器(或者說成是管理網(wǎng)絡(luò)適配器的驅(qū)動(dòng)程序)與協(xié)議驅(qū)動(dòng)(例如 TCP/IP 的實(shí)現(xiàn))之間通信的規(guī)范。 NDIS 最主要的目的是作為一個(gè)允許協(xié)議驅(qū)動(dòng)發(fā)送和接收網(wǎng)絡(luò)( LAN 或WAN)上的數(shù)據(jù)包而不必關(guān)心特定的適配器或特定的 Win32操作系統(tǒng)的封裝。 2) NDIS 支持三種類型的網(wǎng)絡(luò)驅(qū)動(dòng): a. 網(wǎng)絡(luò)接口卡 或 NIC 驅(qū)動(dòng) ( Network interface card or NIC drivers)。 NIC 驅(qū)動(dòng)直接管理著網(wǎng)絡(luò)接口卡( NIC)。 NIC 驅(qū)動(dòng)接下邊與硬件連接,從上邊表現(xiàn)為一個(gè)接口,該接口允許高層發(fā)送數(shù)據(jù)包到網(wǎng)絡(luò)上,處理中斷,重置 NIC,停止 NIC,查詢和設(shè)置驅(qū)動(dòng)的運(yùn)行特征。NIC 驅(qū)動(dòng)可以是小端口( miniport)或完全的 NIC 驅(qū)動(dòng)( full NIC driver)。 Miniport驅(qū)動(dòng)僅僅實(shí)現(xiàn)了管理 NIC 的必要操作 ,包括在 NIC 上發(fā)送和接收數(shù)據(jù)。對(duì)于所有最底層的NIC 驅(qū)動(dòng)的操作由 NDIS 提供,例如 同步 ( synchronization)。小端口( miniport)不直接調(diào)用操作系統(tǒng)函數(shù),它們對(duì)于操作系統(tǒng)的接口是 NDIS。 小端口僅僅是向上傳遞數(shù)據(jù)包給 NDIS 并且 NDIS 確保這些數(shù)據(jù)包被傳遞給正確的協(xié)議。 完全 NIC 驅(qū)動(dòng)( Full NIC driver)完成硬件細(xì)節(jié)的操作和所有由 NDIS 完成的同步和查詢操作。例 如,完全 NIC 驅(qū)動(dòng)維持接收到的數(shù)據(jù)的綁定信息。 b. 中間層驅(qū)動(dòng) ( Intermediate drivers)中間層驅(qū)動(dòng)位于高層驅(qū)動(dòng)(例如協(xié)議驅(qū)動(dòng))和小端口之間。對(duì)于高層驅(qū)動(dòng),中間層驅(qū)動(dòng)看起來像是小端口;對(duì)于小端口,中間層驅(qū)動(dòng)看起來像協(xié)議驅(qū)動(dòng)。一個(gè)中間層協(xié)議驅(qū)動(dòng)可以位于另一個(gè)中間層驅(qū)動(dòng)之上,盡管這種分層可能對(duì)系統(tǒng)性能帶來負(fù)面影響。開發(fā)中間層驅(qū)動(dòng)的一個(gè)關(guān)鍵原因是在現(xiàn)存的遺留協(xié)議驅(qū)動(dòng)( legacy protocol driver)和小端口之間形成媒體的轉(zhuǎn)化。例如,中間層驅(qū)動(dòng)可以將 LAN 協(xié)議轉(zhuǎn)換成 ATM協(xié)議。中間 層驅(qū)動(dòng)不能與用戶模式的應(yīng)用程序通信,但可以與其他的 NDIS 驅(qū)動(dòng)通信。 c. 傳輸驅(qū)動(dòng)或協(xié)議驅(qū)動(dòng) ( Transport drivers or protocol drivers)協(xié)議驅(qū)動(dòng)實(shí)現(xiàn)了網(wǎng)絡(luò)協(xié)議棧,例如 IPX/SPX 或 TCP/IP,在一個(gè)或多個(gè)網(wǎng)絡(luò)接口卡上提供它的服務(wù)。在協(xié)議驅(qū)動(dòng)的上面,它為應(yīng)用層客戶程序服務(wù);在它的下面,它與一個(gè)或多個(gè) NIC 驅(qū)動(dòng)或中間層 NDIS 驅(qū)動(dòng)連接。 3) 抓包 抓包 是 NPF最重要的操作。在抓包的時(shí)候,驅(qū)動(dòng)使用一個(gè)網(wǎng)絡(luò)接口監(jiān)視著數(shù)據(jù)包,并將這些數(shù)據(jù)包完整無缺地投遞給用戶級(jí)應(yīng)用程序。 抓包過程依賴于兩個(gè)主要組件: 一個(gè)數(shù)據(jù)包 過濾器 ,它決定著是否接收進(jìn)來的數(shù)據(jù)包并把數(shù)據(jù)包 拷貝 給監(jiān)聽程序。數(shù)據(jù)包過濾器是一個(gè)有 布爾 輸出的函數(shù)。如果 函數(shù)值 是 true, 抓包驅(qū)動(dòng) 拷貝數(shù)據(jù)包給應(yīng)用程序;如果是 false,數(shù)據(jù)包將被丟棄。 NPF數(shù)據(jù)包過濾器更復(fù)雜一些,因?yàn)樗粌H決定數(shù)據(jù)包是 否應(yīng)該被保存,而且還得決定要保存的字節(jié)數(shù)。被 NPF驅(qū)動(dòng)采用的過濾系統(tǒng)來源于 BSD Packet Filter( BPF),一個(gè)虛擬處理器可以執(zhí)行偽匯編書寫的用戶級(jí)過濾程序。應(yīng)用程序采用用戶定義的過濾器并使用 BPF程序。然后,應(yīng)用程序使用 BIOCSETF IOCTL寫入核心態(tài)的過濾器。這樣,對(duì)于每一個(gè)到來的數(shù)據(jù)包該程序都將被執(zhí)行,而滿足條件的數(shù)據(jù)包將被接收。與傳統(tǒng)解決方案不同, NPF不解釋( interpret)過濾器,而是執(zhí)行( execute)它。由于性能的原因,在使用過濾器前, NPF提供一個(gè) JIT編譯器 將它轉(zhuǎn)化成本地的 80x86函數(shù)。當(dāng)一個(gè)數(shù)據(jù)包被捕獲, NPF調(diào)用這個(gè)本地函數(shù)而不是調(diào)用過濾器 解釋器 ,這使得處理過程相當(dāng)快。 一個(gè)循環(huán)緩沖區(qū),用來保存數(shù)據(jù)包并且避免丟失。一個(gè)保存在 緩沖區(qū) 中的數(shù)據(jù)包有一個(gè)頭,它包含了一些主要的信息,例如 時(shí)間戳 和 數(shù)據(jù)包 的大小,但它不是協(xié)議頭。此外,以隊(duì)列插入的方式來保存數(shù)據(jù)包可以提高數(shù)據(jù)的存儲(chǔ)效率??梢砸越M的方式將數(shù)據(jù)包從 NPF緩沖區(qū)拷貝到應(yīng)用程序。這樣就提高了性能,因?yàn)樗档土俗x的次數(shù)。如果一個(gè)數(shù)據(jù)包到來的時(shí)候緩沖區(qū)已經(jīng)滿了,那么該數(shù)據(jù) 包將被丟棄,因此就發(fā)生了丟包 。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1