任务三计算机网络实验IP数据报捕获与分析

任务三计算机网络实验IP数据报捕获与分析

ID:47488289

大小:414.51 KB

页数:7页

时间:2020-01-12

任务三计算机网络实验IP数据报捕获与分析_第1页
任务三计算机网络实验IP数据报捕获与分析_第2页
任务三计算机网络实验IP数据报捕获与分析_第3页
任务三计算机网络实验IP数据报捕获与分析_第4页
任务三计算机网络实验IP数据报捕获与分析_第5页
资源描述:

《任务三计算机网络实验IP数据报捕获与分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、任务三网络编程一、实验目的捕获本机网卡的IP包,对捕获的IP包进行解析。要求必须输出以下字段:版本号、总长度、标志位、片偏移、协议、源地址和目的地址。二、实验环境平台:Windows编程环境:VC6.0语言:C++三、实验原理3.1数据报格式以太帧由一个包含三个字段的帧头开始,前两个字段包含了物理地址,各六个字节,头部的第三个字段包含了16位的以太帧类型,帧头后面是数据区。根据帧类型可以判断是哪种数据包,一般常用的有0X0080(IP数据包)、0X0806(ARP请求/应答)和0X8035(RARP请求/应答)三

2、种类型。TCP/IP协议簇中位于网络层的协议,也是最为核心的协议。所有的TCP,UDP,ICMP及IGMP数据都以IP数据报格式传输。IP协议提供了无连接的、不可靠的数据传输服务。同时IP协议的一个重要功能是为网络上的包传递提供路由支持。TCP/IP协议使用IP数据报这个名字来指代一个互联网数据包。IP数据报由两部分组成,前面的头部和后面的数据区,头部含有描述该数据报的信息,包括源IP地址和目的IP地址等。在IP数据报的报头中的众多信息可根据协议类型字段区分出该数据包的类型,常用的有TCP包、UDP包、ICMP包

3、等,各格式分别如下所示:IP数据报格式TCP数据报格式ICMP数据报格式UDP数据报格式3.2捕获数据包方法目前常用的捕获数据包的方法有原始套接字、LibPcap、WinPcap和JPcap等方法。本次实验选用套接字方法。套接字是网络应用编程接口。应用程序可以使用它进行网络通信而不需要知道底层发生的细节。有时需要自己生成一些定制的数据包或者功能并希望绕开Socket提供的功能,原始套接字(RawSocket)满足了这样的要求。原始套接字能够生成自己的数据报文,包括报头和数据报本身的内容。通过原始套接字,可以更加自

4、如地控制Windows下的多种协议,而且能够对网络底层的传输机制进行控制。网络数据包截获机制一般指通过截获整个网络的所有信息流,根据信息源主机,目标主机,服务协议端口等信息,简单过滤掉不关心的数据,再将用户感兴趣的数据发送给更高层的应用程序进行分析。一般数据包的传输路径依次为网卡、设备驱动层、数据链路层、IP层、传输层、最后到达应用程序。IP数据包的捕获就是将经过数据链路层的以太网帧拷贝出一个备份,传送给IP数据包捕获程序进行相关的处理。IP数据包的捕获程序一般由数据包捕获函数库和数据包分析器组成。数据包捕获函数

5、库是一个独立于操作系统的标准捕获函数库。主要提供一组可用于查找网络接口名称、打开选定的网络接口、初始化、设置包过滤条件、编译过滤代码、捕获数据包等功能函数。对捕获程序而言,只需要调用数据包捕获函数库的这些函数就能获得所期望的IP数据包。这种捕获程序与数据包捕获函数库分离的机制,使得编写的程序具有很好的可移植性。IP数据包捕获程序的核心部分就是数据包分析器。数据包分析器应具有识别和理解各种协议格式(IP、TCP、UCP、ICMP协议)和帧格式的能力,并对捕获的数据进行分析和统计处理。编写数据包捕获程序的主要工作就是

6、如何实现数据包分析器的功能。3.3数据包捕获与解析的程序设计首先对以太网帧头进行结构体定义,总共有以下13项内容:Version、HeadLen、ServiceType、TotalLen、Identifier、Flags、FragOffset、TimeToLive、Protocol、HeadChecksum、SourceAddr、DestinAddr、Options。根据数据包的捕获机制,分别对以上13个内容编写捕获的C语言程序,进行一一捕获,通过开始的运行程序中运行编译程序后所得到的.exe文件,就可以看到捕获

7、到的信息。捕获成功之后,最后将其各个信息进行解析,并写到一个文件之中。以上各个程序的编写都是在VisualStdioC++6.0编译器中完成。3.4网卡设置为了获取网络中的IP数据包,必须对网卡进行编程,在这里使用套接字进行编程。但是,在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的数据包或是以广播形式发出的数据包。对于其他形式的数据包,如已到达网络接口,但却不是发送到此地址的数据包,网络接口在骓投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的数据包。要想获取网络设备的所

8、有数据包,就需要将网卡设置为混杂模式。四、实验结果及分析程序运行结果截图:附件:网络数据包捕获与解析的完整程序#include#include#include#include#include#include#pragmacomment(lib,"ws2_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。