发送Ethernet+ARP数据包

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

《计算机网络》课程设计

实验报告

题目发送Ethernet ARP包

学院数理与信息工程学院

专业计算机科学与技术

班级计科101

学号************

学生姓名王立娟

同组成员潘明越、曾兵、田胜杰、宋炼杰、陈坦、韦国挺指导教师郭步

编写日期2012-6-30

目录

一、程设计的目的和意义 (2)

二、设计的内容和要求 (2)

三、设计的相关技术 (3)

3.1 ARP协议及工作原理 (3)

3.2 ARP的分组格式 (3)

3.3工作原理 (4)

3.4 ARP包的填充 (6)

四、程设计过程 (6)

4.1流程图 (7)

4.2源程序 (8)

4.3运行结果 (18)

五、课程设计小结 (19)

六、参考文献 (19)

一、程设计的目的和意义

IP地址将不同的物理地址统一起来,从而将物理地址隐藏起来,上层软件使用IP地址标识结点。但是。两台计算机只有在知道彼此的物理地址时才能进行通信。

IP数据包常通过Ethernet发送。Ethernet设备并不识别32位IP地址,它们是以48位MAC地址传输Ethernet数据包的。因此,IP驱动器必须把IP目的地址转换成Ethernet网络目的地址。这两种地址之间存在着某种静态的或动态的映射,通常需要查看一张表来进行这种映射。这种地址协议(ARP)就是用来确定这些映象的协议。

ARP工作时,送出一个所希望的IP地址的Ethernet广播数据包。目的地主机以一个含有IP和Ethernet地址对的数据包作为应答。发送者将这个地址对高速缓存起来,以节约不必要的ARP通信。

本课程设计的目的是进一步熟悉ARP协议的帧结构以及它的运行过程。

二、设计的内容和要求

2.1 基本要求

本次课程设计的基本要求是在熟悉ARP协议并了解Winpcap编程,或者下载JAVA类:jpcap包构造ARP包,选择并打开网卡,将ARP包发送。

1)命令行格式:

arpsend src_ip src_mac dst_ip dst_mac flag

其中arpsend作为程序名。

各参数意义:

src_ip: 源IP地址。

src_mac: 源MAC地址。

dst_ip: 目的IP地址。

dst_mac: 目的MAC地址。

Flag:0表示ARP请求;1表示ARP应答。

例如:

arpsend 192.168.1.1 FA:01:02:03:04:05 192.168.1.2 0D:E1:02:03:B4:06 1

2)输出:Send OK。

3)程序的正确性的检验。可以安装一个截包软件,如Iris,运行该软件以查看能否收到程序发出的ARP包,并检查包中个字段填充的内容(如各地址,协议类型)是否正确。

错误!未指定书签。2. 2系统开发语言及环境的选择

操作系统:Windows XP Professional

运行环境:Microsoft Visual C++ 6.0

开发语言:C语言,C++等

三、设计的相关技术

3.1 ARP协议及工作原理

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC 地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

ARP的基本运行过程是:

1)主机A希望发送数据分组给主机B,但不知道B的物理地址。

2)A发送广播报文,要求B主机用它的物理地址来响应。

3)网站上所有主机都接收到这个分组。

4)B识别出自己的IP地址,发送应答报文,告诉A自己的物理地址。3.2 ARP的分组格式

图一 ARP分组格式

图2 物理帧头

0 8 16 24 31(位)

图3 ARP帧结构

3.3工作原理:

源主机在传输数据前,首先要对初始数据进行封装,在该过程中会把目的主

机的IP地址和MAC地址封装进去。在通信的最初阶段,我们能够知道目的主机

的IP地址,而MAC地址却是未知的。这时如果目的主机和源主机在同一个网段

内,源主机会以第二层广播的方式发送ARP请求报文。ARP请求报文中含有源主

机的IP地址和MAC地址,以及目的主机的IP地址。当该报文通过广播方式到达

目的主机时,目的主机会响应该请求,并返回ARP响应报文,从而源主机可以

获取目的主机的MAC地址,同样目的主机也能够获得源主机的MAC地址。如果目

的主机和源主机地址不在同一个网段内,源主机发出的IP数据包会送到交换机

的默认网关,而默认网关的MAC地址同样可以通过ARP协议获取。经过ARP协议

解析IP地址之后,主机会在缓存中保存IP地址和MAC地址的映射条目,此后再

进行数据交换时只要从缓存中读取映射条目即可。ARP协议工作原理详见图4.

图4 网段内ARP工作原理

关于ARP的功能,仅限于在没有安全防护的网络里。

1) 如果有多个用户都在同一个网关上网,那么若要禁止机器A上网,应该怎么做呢?就是让A得不到正确的网关的ARP映射。可以采取如下措施:伪装成网关,给机器A发送ARP包,该ARP的发送方为网关的IP,而MAC部分随便填一个地址;接收方正确填写A的相关信息。

2)基于ARP欺骗的监听。如果某台计算机C和计算机A、B位于同一个局域网内,那么如何监听A和B间的通信呢?很简单,对A说“我是B”,在对B说“我是A”。具体的操作如下:给A发送一个伪造的ARP回应包,告诉A,B的IP 对应的MAC为C的MAC地址,于是A就会相应地刷新自己的ARP缓存,将发给B 的数据都发送到主机C上来。当然,因为ARP缓存是动态的,有超时时间,所以必须每隔一段时间就给A发送一个ARP回应包。为了不让B发现,我们还要对每次接受到的数据包进行转发。这样就监听了A发送给B的信息。如果想监听B发送给A的信息,方法类似。

3.4 ARP包的填充

将命令行的参数作适当的转换后填到ARP分组结构的各字段中即可。

要注意的是,填充请求包时。因为包要在Ethernet上广播,所以,物理帧头的“目的MAC”字段要填充为FFFFFFFFFFFF;而ARP帧结构中的目的MAC可填充为任意值,因为它此时不起作用。“填充数据”字段要填充为0。

相关文档
最新文档