数据包编程说课讲解.doc

数据包编程说课讲解.doc

ID:57127653

大小:105.00 KB

页数:29页

时间:2020-08-03

数据包编程说课讲解.doc_第1页
数据包编程说课讲解.doc_第2页
数据包编程说课讲解.doc_第3页
数据包编程说课讲解.doc_第4页
数据包编程说课讲解.doc_第5页
资源描述:

《数据包编程说课讲解.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据包编程精品文档关于ARP协议的基础知识1.ARP的工作原理本来我不想在此重复那些遍地都是的关于ARP的基本常识,但是为了保持文章的完整性以及照顾初学者,我就再啰嗦一些文字吧,资深读者可以直接跳过此节。 我们都知道以太网设备比如网卡都有自己全球唯一的MAC地址,它们是以MAC地址来传输以太网数据包的,但是它们却识别不了我们IP包中的IP地址,所以我们在以太网中进行IP通信的时候就需要一个协议来建立IP地址与MAC地址的对应关系,以使IP数据包能发到一个确定的地方去。这就是ARP(AddressResolutionPro

2、tocol,地址解析协议)。 讲到此处,我们可以在命令行窗口中,输入    arp–a来看一下效果,类似于这样的条目210.118.45.100   00-0b-5f-e6-c5-d7   dynamic就是我们电脑里存储的关于IP地址与MAC地址的对应关系,dynamic表示是临时存储在ARP缓存中的条目,过一段时间就会超时被删除(xp/2003系统是2分钟)。 这样一来,比如我们的电脑要和一台机器比如210.118.45.1通信的时候,它会首先去检查arp缓存,查找是否有对应的arp条目,如果没有,它就会给这个以太网

3、络发ARP请求包广播询问210.118.45.1的对应MAC地址,当然,网络中每台电脑都会收到这个请求包,但是它们发现210.118.45.1并非自己,就不会做出相应,而210.118.45.1就会给我们的电脑回复一个ARP应答包,告诉我们它的MAC地址是xx-xx-xx-xx-xx-xx,于是我们电脑的ARP缓存就会相应刷新,多了这么一条:收集于网络,如有侵权请联系管理员删除精品文档210.118.45.1  xx-xx-xx-xx-xx-xx  dynamic 为什么要有这么一个ARP缓存呢,试想一下如果没有缓存,我

4、们每发一个IP包都要发个广播查询地址,岂不是又浪费带宽又浪费资源?   而且我们的网络设备是无法识别ARP包的真伪的,如果我们按照ARP的格式来发送数据包,只要信息有效计算机就会根据包中的内容做相应的反应. 试想一下,如果我们按照ARP响应包的相应的内容来刷新自己的ARP缓存中的列表,嘿嘿,那我们岂不是可以根据这点在没有安全防范的网络中玩些ARP包的小把戏了?在后面的文章里我就手把手来教你们如何填充发送ARP包,不过先别急,我们再继续学点基础知识^_^ 2.ARP包的格式     既然我们要来做一个我们自己的ARP包,当

5、然首先要学习一下ARP包的格式。     从网络底层看来,一个ARP包是分为两个部分的,前面一个是物理帧头,后面一个才是ARP帧。        首先,物理帧头,它将存在于任何一个协议数据包的前面,我们称之为DLCHeader,因为这个帧头是在数据链路层构造的,并且其主要内容为收发双方的物理地址,以便硬件设备识别。 DLCHeader字段长度(Byte)默认值备注接收方MAC6 广播时,为ff-ff-ff-ff-ff-ff发送方MAC6  收集于网络,如有侵权请联系管理员删除精品文档Ethertype20x08060x0

6、806是ARP帧的类型值                          图1物理帧头格式     图1是需要我们填充的物理帧头的格式,我们可以看到需要我们填充的仅仅是发送端和接收端的物理地址罢了,是不是很简单呢?     接下来我们看一下ARP帧的格式. ARPFrame字段长度(Byte)默认值备注硬件类型20x1以太网类型值上层协议类型20x0800上层协议为IP协议MAC地址长度10x6以太网MAC地址长度为6IP地址长度10x4IP地址长度为4操作码2 0x1表示ARP请求包,0x2表示应答包发送方MAC6 

7、 发送方IP4  接收方MAC6  接收方IP4  填充数据18 因为物理帧最小长度为64字节,前面的42字节再加上4个CRC校验字节,还差18个字节                            图2ARP帧格式 我们可以看到需要我们填充的同样也只是MAC,IP,再加上一个1或2的操作码而已。 3.ARP包的填充1)请求包的填充:     比如我们的电脑MAC地址为aa-aa-aa-aa-aa-aa,IP为192.168.0.1 我们想要查询192.168.0.99的MAC地址,应该怎么来做呢? 收集于网络,如

8、有侵权请联系管理员删除精品文档     首先填充DLCHeader,通过前面的学习我们知道,想要知道某个计算机对应的MAC地址是要给全网发送广播的,所以接收方MAC肯定是ffffffffffff,发送方MAC当然是自己啦,于是我们的DLCHeader就填充完成了,如图,加粗的是我们要手动输入的值(当然我编的程序比较智

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。