欢迎来到天天文库
浏览记录
ID:40635657
大小:41.00 KB
页数:12页
时间:2019-08-05
《发送 Ethernet ARP 包》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、发送EthernetARP包一、课程设计目的IP地址将不同的物理地址统一起来,从而将物理地址隐藏起来,上层软件使用IP地址标识结点。但是。两台计算机只有在知道彼此的物理地址时才能进行通信。IP数据包常通过Ethernet发送。Ethernet设备并不识别32位IP地址,它们是以48位MAC地址传输Ethernet数据包的。因此,IP驱动器必须把IP目的地址转换成Ethernet网络目的地址。这两种地址之间存在着某种静态的或动态的映射,通常需要查看一张表来进行这种映射。这种地址协议(ARP)就是用来确定这些映象的协议。ARP工作时,送出一个所希望的IP地址的Ethe
2、rnet广播数据包。目的地主机以一个含有IP和Ethernet地址对的数据包作为应答。发送者将这个地址对高速缓存起来,以节约不必要的ARP通信。本课程设计的目的是进一步熟悉ARP协议的帧结构以及它的运行过程二、课程设计要求在熟悉ARP协议并了解Winpcap编程的前提下,构造ARP包,选择并打开网卡,将ARP包发送出去。1)命令行格式:arpsendsrc_ipsrc_macdst_macflag其中arpsend作为程序名。各参数意义:src_ip:源IP地址。src_mac:源MAC地址。dst_ip:目的IP地址。dst_mac:目的MAC地址。Flag:0
3、表示ARP请求;1表示ARP应答。三、课程设计相关知识1.ARP协议概述ARP,即地址解析协议,实现通过IP地址得知其物理地址。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址。这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组协议就是ARP协议。2.ARP工作原理我们以主机A(
4、192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是
5、00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。3、ARP包的填充将命令行的参数作适当的转换后填到ARP分组结构的各字段中即可。要注意的是,填充请求包时。因为包要在Ethernet上广播,所以,物理帧头的“目的MAC”字段要填充为FFFFFFFFFFFF;而ARP帧结构中的目的MAC可填充
6、为任意值,因为它此时不起作用。“填充数据”字段要填充为0四、课程设计分析1.程序流程2.核心代码及说明头文件:一、二、#pragmaonce//#include#include#include".Iphlpapi.h"#include".IPRTRMIB.h"#include".IPTYPES.h"#include".IPEXPORT.h"//#pragmacomment(lib,"Iphlpapi.lib")#pragmacomment(lib,"ws2_32.lib")#pragmacomment(lib
7、,".\wpdpack\Iphlpapi.lib")#defineMAX_ADAPTER10#defineMAX_ARP20//网卡信息typedefstructAdapterInfo{charszDeviceName[128];//名字charszIPAddrStr[16];//IPcharszHWAddrStr[18];//MACDWORDdwIndex;//编号}INFO_ADAPTER,*PINFO_ADAPTER;//ARP条目信息typedefstructARPInfo{charszIPAddrStr[16];//MAC//IPcharszHWAd
8、drStr
此文档下载收益归作者所有