解析ARP数据包(二)——说明书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解析ARP数据包(二)——说明书(2007-04-16 19:59:51)转载▼

标签:计算机网络课程设计分类:IT技术

一.课程设计要求

通过编制程序,获取网络中的ARP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。

程序的具体要求如下所示:

1)以命令行的形式运行,如下所示:

arpparse logfile

其中,arpparse为程序名;logfile为日志文件名。

2)程序输出内容如下所示:

源IP地址源MAC地址目的IP地址目的MAC地址操作时间

各部分的说明如下所示:

?源IP地址:输出ARP消息格式中的源IP地址字段。

?源MAC地址:输出ARP消息格式中的源物理地址字段

?目的IP地址:输出ARP消息格式中的目的IP地址字段。

?目的MAC地址:输出ARP消息格式中的目的物理地址字段。

?操作:输出ARP消息格式中的操作字段,若为ARP请求,则为1,若为ARP应答,则为2。

?时间:该ARP包产生的时间。

3)当程序接收到键盘输入Ctrl十C时退出。

三.ARP协议工作原理

我们都知道以太网设备比如网卡都有自己全球唯一的MAC地址,它们是以MAC地址来传输以太网数据包的,但是它们却识别不了我们IP包中的IP地址,所以我们在以太网中进行IP通信的时候就需要一个协议来建立IP地址与MAC地址的对应关系,以使IP数据包能发到一个确定的地方去。这就是ARP(Address Resolution Protocol,地址解析协议)。

四.ARP包的格式

?/P>

帧头部帧数据ARP消息

14B

ARP数据包封装成一个帧

物理帧头格式

ARP数据包格式

五.ARP协议工作流程

1. 首先,每台主机都会在自己的ARP缓冲区(ARP Cache)中建立一个ARP列表,以表示IP地址和MAC地址的对应关系。

2. 当源主机需要将一个数据包要发送到目的主机时,会首先检查自己ARP列表中是否存在该IP地址对应的MAC地址,如果有﹐就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。

3. 网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP 地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP 地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个ARP响应数据包,告诉对方自己是它需要查找的MAC地址;

4. 源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP 响应数据包,表示ARP查询失败。

六.设计思路

本程序利用WINPCAP驱动为WIN32应用程序提供的访问网络底层的能力编写解析ARP 数据包的程序.

具体实现算法:

1. 得到网络驱动.利用PCAP提供的PCAP_findalldevs( )函数实现此功能.

2. 选择一块网卡,并判断其是否可用.

3. 编辑设置过滤器,使其只捕获ARP包.过滤函数PCAP_complie和PCAP_setfilter.设置函数为PCAP_setfilter( ).

4. 开始捕获数据包并进行处理.使用PCAP_next_ex( )函数实现此功能.

相关文档
最新文档