網(wǎng)絡程序設計-09-原始套接字-網(wǎng)絡嗅探器v1.0.0.ppt_第1頁
網(wǎng)絡程序設計-09-原始套接字-網(wǎng)絡嗅探器v1.0.0.ppt_第2頁
網(wǎng)絡程序設計-09-原始套接字-網(wǎng)絡嗅探器v1.0.0.ppt_第3頁
網(wǎng)絡程序設計-09-原始套接字-網(wǎng)絡嗅探器v1.0.0.ppt_第4頁
網(wǎng)絡程序設計-09-原始套接字-網(wǎng)絡嗅探器v1.0.0.ppt_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、原始套接字 網(wǎng)絡嗅探器,網(wǎng)絡程序設計,2,原始套接字-引入,前續(xù)課程中我們了解到,使用Socket可以方便的進行網(wǎng)絡通信,通信內(nèi)容由Socket封裝為TCP/UDP數(shù)據(jù)報在網(wǎng)絡上傳輸,開發(fā)者不用關心TCP/UDP數(shù)據(jù)報文是如何封裝的。 但是,有時我們需要對底層網(wǎng)絡協(xié)議進行處理,如發(fā)送自定義的IP包、接收/解析網(wǎng)絡上的數(shù)據(jù)包等。 這時就需要使用原始套接字技術。,3,原始套接字,原始套接字概述 協(xié)議數(shù)據(jù)頭部格式定義 網(wǎng)絡嗅探器開發(fā)實例 小結 動手實踐,4,原始套接字,原始套接字概述 協(xié)議數(shù)據(jù)頭部格式定義 網(wǎng)絡嗅探器開發(fā)實例 小結 動手實踐,5,1. 原始套接字概述,1.1.什么是原始套接字 原始套

2、接字(Raw Socket)是一種套接字類型,是使開發(fā)者能夠直接對底層網(wǎng)絡協(xié)議數(shù)據(jù)報(如IP報文)進行處理的套接字。 Raw英文含義: adj.生的,未加工的;n.半成品,原料。,6,1. 原始套接字概述,1.2.原始套接字的適用場景 (1)發(fā)送自己封裝的網(wǎng)絡報文 可以是預定義的協(xié)議,如ICMP、TCP、UDP等; 也可以是自定義的協(xié)議。 (2)接收/解析原始網(wǎng)絡報文 常見的網(wǎng)絡嗅探器(sniffer)就是抓取和解析原始的網(wǎng)絡報文實現(xiàn)的。,7,1. 原始套接字概述,1.3.如何創(chuàng)建原始套接字 示例: SOCKET rawSocket = socket(AF_INET, SOCK_RAW, IP

3、PROTO_IP);,8,1. 原始套接字概述,1.4.需要注意的問題 (1)操作系統(tǒng)對原始套接字的使用有一定限制 (2)使用原始套接字需要深入理解TCP/IP協(xié)議格式,9,原始套接字,原始套接字概述 協(xié)議數(shù)據(jù)頭部格式定義 網(wǎng)絡嗅探器開發(fā)實例 小結 動手實踐,10,2. 協(xié)議數(shù)據(jù)頭部格式定義,2.1.IPv4頭格式 typedef struct _IPHeader / 20字節(jié)的IP頭 UCHAR iphVerLen; / 版本號和頭長度(各占4位) UCHAR ipTOS; / 服務類型 USHORT ipLength; / 封包總長度,即整個IP報的長度 USHORT ipID; / 封包

4、標識,惟一標識發(fā)送的每一個數(shù)據(jù)報 USHORT ipFlags; / 標志 UCHAR ipTTL; / 生存時間,就是TTL UCHAR ipProtocol; / 協(xié)議,可能是TCP、UDP、ICMP等 USHORT ipChecksum; / 校驗和 ULONG ipSource; / 源IP地址 ULONG ipDestination; / 目標IP地址 IPHeader, *PIPHeader;,11,2. 協(xié)議數(shù)據(jù)頭部格式定義,2.2.TCP頭格式 typedef struct _TCPHeader/ 20字節(jié)的TCP頭 USHORTsourcePort;/ 16位源端口號 USH

5、ORTdestinationPort;/ 16位目的端口號 ULONGsequenceNumber; / 32位序列號 ULONGacknowledgeNumber; / 32位確認號 UCHARdataoffset;/ 高4位表示數(shù)據(jù)偏移 UCHARflags;/ 6位標志位 USHORTwindows;/ 16位窗口大小 USHORTchecksum;/ 16位校驗和 USHORTurgentPointer;/ 16位緊急數(shù)據(jù)偏移量 TCPHeader, *PTCPHeader;,12,原始套接字,原始套接字概述 協(xié)議數(shù)據(jù)頭部格式定義 網(wǎng)絡嗅探器開發(fā)實例 小結 動手實踐,13,3. 網(wǎng)絡嗅

6、探器開發(fā)實例,3.1.網(wǎng)絡嗅探器設計原理 網(wǎng)絡嗅探器即網(wǎng)絡數(shù)據(jù)包捕獲與分析工具,常見的有Sniffer、Wireshark等。一般可用于網(wǎng)絡協(xié)議分析或網(wǎng)絡安全問題分析。 通常套接字程序只能響應與自己MAC地址相匹配的或是以廣播形式發(fā)出的數(shù)據(jù)幀,對于其它形式的數(shù)據(jù)幀網(wǎng)卡會將其直接丟棄。 為使網(wǎng)卡能夠捕獲所有經(jīng)過它的數(shù)據(jù)包,要將其設為混雜模式。原始套接字可以將網(wǎng)卡設為混雜模式,方法是向套接字發(fā)送SIO_RCVALL控制命令。,14,3. 網(wǎng)絡嗅探器開發(fā)實例,3.1.網(wǎng)絡嗅探器設計原理 程序流程圖:,15,3. 網(wǎng)絡嗅探器開發(fā)實例,3.2.網(wǎng)絡嗅探器編程實現(xiàn) 3.3.測試網(wǎng)絡嗅探器,16,原始套接字

7、,原始套接字概述 協(xié)議數(shù)據(jù)頭部格式定義 網(wǎng)絡嗅探器開發(fā)實例 小結 動手實踐,17,4. 原始套接字-小結,原始套接字(Raw Socket)是一種套接字類型。原始套接字使開發(fā)者能夠直接對底層網(wǎng)絡協(xié)議數(shù)據(jù)報(如IP報文)進行處理。 其適用的場景主要是: (1)發(fā)送自己封裝的網(wǎng)絡報文; (2)接收/解析原始網(wǎng)絡報文。 需要注意的是: (1)操作系統(tǒng)對原始套接字的使用有一定限制; (2)使用原始套接字需要深入理解TCP/IP協(xié)議格式。,18,原始套接字,原始套接字概述 協(xié)議數(shù)據(jù)頭部格式定義 網(wǎng)絡嗅探器開發(fā)實例 小結 動手實踐,19,5.動手實踐,動手實踐環(huán)節(jié),(1)認真閱讀、分析、理解示例中的網(wǎng)絡嗅探器代碼; (2)嘗試添加對U

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論