计算机网络解析ARP数据包

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

计算机网络解析A R P

数据包

-CAL-FENGHAI.-(YICAI)-Company One1

成绩评定表

课程设计任务书

3 相关知识 ................................ 错误!未定义书签。

4 课程设计分析......................... 错误!未定义书签。

5 程序代码 ................................ 错误!未定义书签。

6 运行结果与分析 ..................... 错误!未定义书签。

7 个人心得 (1)

8 参考文献 ................................ 错误!未定义书签。

摘要

本文首先介绍了解析ARP数据包课程设计的目的与意义,本次课程设计的要求,接着说明了,什么是ARPARP数据报消息格式以及ARP协议的工作流程加强我们对ARP协议的认识,然后分析了本次课程设计的难点、重点、参考算法、核心代码,以及对运行结果的分析,还有一些相关知识的拓展。最后对本次课设进行了个人心得的总结。

1课程设计目的

课程设计的目的是对网络上的ARP数据包进行解析,从而熟悉ARP数据包的结构,对ARP协议有更好的理解和认识。

2 课程设计要求

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

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

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

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

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

源IP地址源MAC地址目的IP地址目的MAC地址操作时间各部分的说明如下所示:

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

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

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

目的MAC地址:输出ARP消息格式中的目的物理地址字段操作:输出ARP消息格式中的操作字段,若为ARP请求,

则为1,若为ARP应答,则为2。

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

(3)当程序接收到键盘输入Ctrl+C时字段退出。

3相关知识

(1)什么是ARP

地址解析协议(Address Resolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议。因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDIIP网络中使用。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。

在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)。

(2)ARP数据报的消息格式

网络上的每台主机或设备都有一个或多个IP地址。IP地址是网络层的地址,在网络层,数据被组装成IP包。但是发送IP包需要物理设备的支持(通常是Ethernet设备,在本课程设计中我们指定为Ethernet设备),即发送端必须知道目的物理地址才能将IP包发送出去,所以需要一种将IP地址映射为物理地址的机制。ARP协议就是用来完成这个任务的。ARP协议能够在同一个物理网络中,在给定目的主机或设备的IP地址的条件下,得到目的主机或设备的物理地址。ARP协议的数据包格式如图所示:

0 8 16 24 31(位)

硬件类型协议类型

物理地址长度协议地址长度操作

源物理地址(八位组0~3)

源物理地址(八位组4~5)源IP地址(八位组0~1)

源IP地址(八位组2~3)目的物理地址(八位组

0~1)

目的物理地址(八位组2~5)

目的IP地址(八位组0~3)

ARP数据包的消息格式

下面对数据包的各个部分进行说明

硬件类型:指定硬件接口类型。例如,值为1表示Ethernet

协议类型:指定发送方支持的上层协议的类型

物理地址长度:指定物理(硬件)地址的长度

协议地址长度:网络层协议的地址长度。若为IP协议,其值为4

操作:指定ARP的操作类型,例如,1表示ARP请求,2表示ARP应

源物理地址:指定发送方的IP地址

目的物理地址:指定目的物理地址。

目的IP地址:指定目的IP地址

ARP分组必须在数据链路层中被封装成侦,才能发送出去封装形式如图所示

ARP消息

帧头部帧数据

(3)ARP协议的工作流程。

1)在发送一个ARP分组之前,源主机首先根据目的IP地址,在本地ARP高

速缓存表中查找与之对应的目的物理地址。如果找到对应的物理地址,就不用进行地址解析,否则需要进行地址解析。

2)实现地址解析的第一步是产生ARP请求分组。在相应的字段写入本地主

机的源物理地址、源IP地址,在目的物理地址字段写入0,并在操作字段写入1。

3)将ARP分组发送到本地的数据链路层,并封装成帧。以源物理地址作为

源地址,以物理广播地址(FF-FF-FF-FF-FF-FF)作为目的地址,通过物理层发送出去。

相关文档
最新文档