ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:27.03KB ,
资源ID:4949446      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4949446.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(解析ARP数据包长沙理工大学.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

解析ARP数据包长沙理工大学.docx

1、解析ARP数据包长沙理工大学长沙理工大学信息学院课程设计课程设计题目:解析ARP数据包计划学时:2周所属课程名称:计算机网络课程设计开设时间: 2010学年第一学期 授课班级: 07软件R3指导教师:*学生姓名:*学 号:* 信息学院评分标准封面格式(5)正文格式(10)题目理解准确度(30)程序设计质量(30)设计报告质量(25)得分总分解析ARP数据包摘要:本文首先介绍了地址解析协议ARP的概念,详细说明了ARP的工作原理,ARP攻击的基本原理,详细分解了ARP数据包的各个字段含义,ARP协议工作的流程和这次课程设计的意义与目的;接着描述了此实验的总体设计;然后是详细设计,分析讲解了实现代

2、码的主要部分;最后还讲了做这次课程设计的个人总结,谈了一些个人观点。关键字:ARP数据包、工作原理、ARP攻击、解析、截获、功能1 引言1.1背景首先,我们来了解一下什么是ARP,ARP的工作原理以及ARP攻击所带来的危害。1.1.1什么是ARP 地址解析协议(Address Resolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议。因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDIIP网络中使用。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相

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

4、主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)。1.1.2ARP工作原理 程序的具体要求如下所示:1)以命令行的形式运行,如下所示:arpparselogfile其中,arpparse为程序名;logfile为日志文件名。2)程序输出内容如下所示:源IP地址源MAC地址目的IP地址目的MAC地址操作时间

5、各部分的说明如下所示:?源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通信的时候就

6、需要一个协议来建立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地址;如果没

7、有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。3. 网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;1.1.4 ARP包的格式ARP(同RARP)使用相同的报头结构,如图2所示。图2 ARP(RARP)包头结构硬件类型字段:指

8、明了发送方想知道的硬件接口类型,以太网的值为1;协议类型字段:指明了发送方提供的高层协议类型,IP为0800(16进制);硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;操作字段:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;发送方的硬件地址(0-3字节):源主机硬件地址的前3个字节;发送方的硬件地址(4-5字节):源主机硬件地址的后3个字节;发送方IP(0-1字节):源主机硬件地址的前2个字节;发送方IP(2-3字节):源主机硬件地址的后2个字节;目的硬件地址(0-1字节):目的主

9、机硬件地址的前2个字节;目的硬件地址(2-5字节):目的主机硬件地址的后4个字节;目的IP(0-3字节):目的主机的IP地址。1.1.5 ARP协议工作流程1. 首先,每台主机都会在自己的ARP缓冲区 ( ARP Cache )中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。2. 当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP

10、地址。3. 网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;4. 源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。1.2意义与目的 这次课程设计的意义与目的主要有以下两点:1、 我们已经学习了一

11、个学期的计算机网络课程,在网络协议体系结构中,不管采用哪一种划分形式,网络层都是作为独立的一层,可见其在网络通信中的重要性。在网络层中有对重要协议:ARP/RARP,用于网卡物理地址(MAC地址)与网络协议地址(IP地址)之间的转换。通过这个课程设计,加深对课本知识的理解与掌握,同时自己亲自动手实现,对知识的领悟能够起到事半功倍的效果。2、 认识ARP地址解析协议的工作原理,了解ARP攻击(ARP欺骗)的实现原理,找到解决ARP攻击的有效解决方案,为局域网计算机提供一个安全的运行环境,以及在不小心被攻击时知道如何处理。2 总体设计 2.1 系统或算法框架设计1. 得到网络驱动.利用PCAP提供

12、的PCAP_findalldevs( )函数实现此功能.2. 选择一块网卡,并判断其是否可用.3. 编辑设置过滤器,使其只捕获ARP包.过滤函数PCAP_complie和PCAP_setfilter.设置函数为PCAP_setfilter( ).4. 开始捕获数据包并进行处理.使用PCAP_next_ex( )函数实现此功能.2.2功能设计通过编制程序,获取网络中的ARP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。程序的具体要求如下所示:1)以命令行的形式运行,如下所示:arp1.exelog.txt其中,arp1.exe为程序名;log.txt为日志文件名。2)程序

13、输出内容如下所示:源IP地址源MAC地址目的IP地址目的MAC地址操作时间各部分的说明如下所示:1、源IP地址:输出ARP消息格式中的源IP地址字段。2、源MAC地址:输出ARP消息格式中的源物理地址字段3、目的IP地址:输出ARP消息格式中的目的IP地址字段。4、目的MAC地址:输出ARP消息格式中的目的物理地址字段。5、操作:输出ARP消息格式中的操作字段,若为ARP请求,则为1,若为ARP应答,则为2。6、时间:该ARP包产生的时间。3)当程序接收到键盘输入Ctrl十C时退出。2.3 平台设计Windows 7, Microsoft Microsoft Visual C+ 6.0 简体中

14、文版, WinPcap_4_1_2, WpdPack_4_1_22.4 数据结构的设计解析ARP数据包(一)源代码(2011-04-15 15:55:58) 转载标签: 杂谈分类: 学习专区 #include#pragma comment(lib, Ws2_32.lib) /使用ntohs()函数,转换2B/4B的数据#pragma comment(lib, wpcap.lib)#includepcap.h /需要另外导入,具体步骤见Winpcap使用说明#include#include /格式化输出#include /使用_getch()struct arppktunsigned short

15、 hdtyp; /硬件地址unsigned short protyp; /协议类型unsigned char hdsize; /硬件地址长度unsigned char prosize; /协议地址长度unsigned short op; /操作值u_char smac6; /源MAC地址u_char sip4; /源IP地址u_char dmac6; /目的MAC地址u_char dip4; /目的IP地址;/自定义处理包函数/pcap_pkthdr是winpcap加入的/pkt_data表示MAC帧的起始位置/out是输入流void packet_handler(const pcap_pkt

16、hdr *header,const u_char *pkt_data,ostream& );void main(int argc,char *argv)if(argc!=2)coutusage:arpparse logfilenameendl;coutpress anykey to continue.endl; /参数不对,进行提示_getch();return;pcap_if_t *alldevs; /网络设备结构pcap_if_t *d;pcap_t *adhandle;char errbufPCAP_ERRBUF_SIZE; /错误信息u_int netmask; /子网掩码char p

17、acket_filter = ether proto arp; /过滤,选择ARP协议struct bpf_program fcode;struct pcap_pkthdr *header;const u_char *pkt_data;/获取网络设备列表if (pcap_findalldevs(&alldevs, errbuf) = -1)coutError in pcap_findalldevs:next)/以混杂模式打开网卡,接受所有的帧if(adhandle= pcap_open_live(d-name,1000,1,300,errbuf) = NULL)coutaddresses !=

18、 NULL)break;if(d=NULL)coutaddresses-netmask)-sin_addr.S_un.S_addr;/调试过滤器,只捕获ARP包if(pcap_compile(adhandle, &fcode,packet_filter,1,netmask) 0)coutnUnable to compile the packet filter. Check the syntax.n;pcap_freealldevs(alldevs);return;/设置过滤器if (pcap_setfilter(adhandle, &fcode)0)coutnError setting the

19、 filter.n;pcap_freealldevs(alldevs);return;coutttlistening on description.endl Option - Directories,在include files中添加wpdpackInclude目录(步骤2中得到的);在Library files中添加wpdpackLib目录。 步骤4:Project- settings- Link,在Object/library modules中加上wpcap.lib。4.3 改进的方法1、以图形化界面设计,改善程序运行时的视觉效果,同时图形化界面操作简单,界面友好,也方便非计算机专业人员的使用。2、由于本程序所使用的头文件和链接库(WinPcap_4_1_2, WpdPack_4_1_2)在大多数电脑中都是没有的,若没有安装WinPcap_4_1_2,可能会影响程序的正确执行,所以应该尽量使用系统提供的应用程序编程接口。4.4 参考文献1、计算机网络(第五版),谢希仁编著,电子工业出版社,2009年5月第7次印刷。2、XX百科

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1