发送ARP数据包
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
封皮
成绩评定表
课程设计任务书
摘要
计算机网络是多个计算机的集合,在网络中的计算机若想互相通信就需要用到Ethernet 设备。Ethernet 设备有自己全球唯一的MAC地址,它们以MAC地址来传输Ethernet数据包,但他们却不能识别IP包的IP地址。所以,在Ethernet中进行IP通信时就需要一个协议来建立IP地址和MAC地址的对应关系。在ARP协议中对于这种情况会发送Arp数据包用来寻找目的主机并建立对应关系用于下次传输。
关键字:物理帧 ARP帧 ip地址 mac地址
目录
一课程设计目的 (1)
二课程设计要求 (1)
三系统开发语言及环境的选择 (1)
四相关知识………………………………………… 1-3 1.ARP协议的工作原理……………………1-2
2.ARP的包格式 (2)
3.ARP包的填充………………………………2-3
五课程设计过程……………………………………3-11
1.流程图………………………………… 3-4
2.源程序代码…………………………… 4-10
3.程序运行结果分析……………………10-11
六课程设计小结 (11)
七参考文献………………………………………11-12
一课程设计目的
1) ARP协议用于完成IP地址与MAC地址间的转换。
2) 熟悉ARP协议对于IP数据包的传输过程具有重要意义。
3) 本课程设计的主要目的是通过封装与发送ARP帧,了解ARP协议的工作
原理与ARP帧的结构。
二课程设计要求
根据后面介绍的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)输出内容:ARP帧的各字数值,包括源IP地址,源MAC地址,目的IP地址,目的MAC地址等。
三系统开发语言及环境的选择
操作系统:Windows 8
运行环境:Microsoft Visual C++ 6.0
开发语言:C++。
四相关知识
1.ARP协议的工作原理
Ethernet 设备(比如网卡)有自己全球唯一的MAC地址,它们以MAC 地址来传输Ethernet数据包,但他们却不能识别IP包的IP地址。所以,在Ethernet中进行IP通信时就需要一个协议来建立IP地址和MAC地址的对应关系,这个协议就是ARP协议。
ARP的基本运行过程是:
1)主机A希望发行数据分组给主机B,但不知道B的物理地址。
2)A发送广播报文,要求B主机用他的物理地址来响应。
3)网站上所有主机都接收到这个分组。
4)B识别出自己的IP地址,发送给应答报文,告诉A自己的物理地址。
但是,所有的源节结点在发送任何一个分组或者连续向同一个目的主机发送分组时,都要通过ARP 服务去获取目的物理地址,他的工作效率肯定很低。为了克服这个缺点,要对ARP 做些改进。
ARP 改进的一个重要方法是,在使用ARP 的主机上保留一个专用的高速缓存,用于存放最近的IP 地址和物理地址的绑定,在发送ARP 请求时先看看这个高速缓存。
例如,在命令窗口中输入:arp-a
得到: Internet Address Physical Address Type
192.168.1.250 00-30-6e-07-e6-de dynamic
这就是该计算机里存储的IP 地址与MAC 地址的对应关系,dynamic
表示临时存储在ARP 缓存中的条目,过一段时间系统就会自动删除。 这样,当计算机要和另一台计算机192.168.1.19通信时,他会先检
查ARP 缓存,查找是否与192.168.1.19对应的ARP 条目。如果没找到,他就会发送ARP 请求包,广播询问与192.168.1.19对应的MAC 地址。192.168.1.19发现ARP 请求包中的IP 一样,就会发送ARP 应答分组,通知自己IP 地址与MAC 地址的对应关系。于是,计算机的ARP 缓存就会相应刷新,增加以下信息:192.168.1.19 00-40-05-42-84-f4 dynamic 。
2.ARP 的包格式
图1给了ARP 分组格式的示意图。
图1 ARP 包格式
(1) 物理帧头
物理帧头的结构如2图所示。
ARP 帧:0x0806
图2 物理帧头格式
(2)ARP 帧结构
图3给出了ARP 帧格式的示意图,长度为28B 。 3.ARP 包的填充
要注意的是,填充请求包时。因为包要在Ethernet
上广播,所以,物理帧头的“目的MAC ”字段要填充为FFFFFFFFFFFF ;而ARP 帧结构中的目的MAC 可填充为任意值,因为它此时不起作用。“填充数据”字段要填充
为0。
0 8 16 24 31(位)
图3 ARP帧结构
五课程设计过程
1.流程图