ping命令的实现详解.doc_第1页
ping命令的实现详解.doc_第2页
ping命令的实现详解.doc_第3页
ping命令的实现详解.doc_第4页
ping命令的实现详解.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

当实现了对enc28j60的驱动后,我们就可以利用enc28j60来制定自己的TCP/IP协议协议了,本章主要以实现ping命令来实现对arp、ICMP数据包进行封装。 要实现ping命令,主要分为两大步,一是对数据链路层的arp包进行封装,通过被ping主机的ip地址实现对其MAC地址的解析,二是对ICMP的数据包进行封装,实现ping命令。1. ARP协议 地址解析协议(ARP)是联系IP协议和LAN协议的桥梁,它的应用范围是局域网(LAN),如以太网、FDDI、令牌网等,它是基于访问共享和广播技术的协议。该协议把节点的IP解析成对应的MAC地址(即物理地址),它可以在局域网内寻找IP所对应的MAC地址,并保持起来以供发送使用。ARP协议是基于数据链路层协议之上的,但它不属于网络层协议,它是数据链路层和网络层之间的通道,他属于数据链路层的一部分。ARP由两种帧组成,一种是请求帧,即在网络里面查找IP地址所对应的MAC地址;另一种是应答帧,即回答该IP地址所对应的MAC地址是多少。请求帧由要发送IP报的节点发出,它是一个广播报,子网中每一个节点都能够收到。各节点收到后,如果目标IP和自己的IP相同,就发送一个ARP应答报,否则就丢弃。当发送请求帧的节点接收到应答报后,就可以知道了对方的MAC地址,即可发送IP报。 ARP帧的以太网类型是0x0806,ARP帧不包括IP帧,总共有28个字节,ARP帧具体结构如图1.1所示:图1.1ARP帧结构 ARP帧结构各字段含义如表1.1所示:表1.1 ARP帧各字段含义字段名称字节长度描述硬件类型2字节指出数据链路层的协议,如0x0001表示以太网,0x0006表示令牌网协议类型2字节指出要解析的协议,如0x0800表示该ARP报要解析的协议为IP协议硬件地址长度1字节指出物理地址的长度,如以太网MAC地址长度是6字节,该字段就为0x06协议地址长度1字节指出要解析的协议地址的长度,如IP协议的IP地址长度为4字节,该字段就为0x04操作2字节用于表示该ARP帧的类型,如0x0001表示请求帧,0x0002表示应答帧发送端MAC地址6字节发送端硬件地址发送端IP地址4字节发送端IP地址接收端MAC地址6字节接收端硬件地址接收端IP地址4字节接收端IP地址ARP帧分为请求帧与应答帧,下面,通过CommView找包软件具体对ARP帧进行分析。请求帧如下:分析 由于ARP处于数据链路层,而在数据链路层下还有物理层,所以在发送ARP数据帧时,前面14个字节为以太网帧。1) EthernetII网络协议层分析发送目标的MAC地址为FF:FF:FF:FF:FF:FF,即广播地址,本网段所以节点都能接受到,发送源MAC地址为00:26:82:D0:15:BA,下层协议为0x0806,即为ARP协议。实际EthernetII网络协议层接受数据 FF FF FF FF FF FF 00 26-82 D0 15 BA 08 062) ARP协议分析 硬件类型为以太网类型0x0001,要解析的协议类型为0x0800,即为IP协议,硬件地址长度为6,协议地址长度为4,操作为请求0x0001,发送端源MAC地址为00:26:82:D0:15:BA,发送端源IP地址为192.168.25.64,目标MAC地址为00:00:00:00:00:00,目标IP地址为192.168.25.6。 实际接受ARP帧数据 00 01 08 00 06 04 00 01 00 26-82 D0 15 BA C0 A8 19 40 00 00 00 00 00 00 C0 A8 19 06 应答帧如下 1) EthernetII网络协议层分析发送目标的MAC地址为00:26:82:D0:15:BA,发送源MAC地址为11:22:33:44:55:66,下层协议为0x0806,即为ARP协议。实际EthernetII网络协议层接受数据 00 26 82 D0 15 BA 11 22-33 44 55 66 08 062) ARP协议分析 硬件类型为以太网类型0x0001,要解析的协议类型为0x0800,即为IP协议,硬件地址长度为6,协议地址长度为4,操作为应答0x0002,发送端源MAC地址为11:22:33:44:55:66,发送端源IP地址为192.168.25.6,目标MAC地址为00:26:82:D0:15:BA,目标IP地址为192.168.25.64。 实际接受ARP帧数据 00 01 08 00 06 04 00 02 11 22-33 44 55 66 C0 A8 19 06 00 26 82 D0 15 BA C0 A8-19 40 2ICMP协议 ICMP本身是网络层协议。但是,它的报文不是如设想的那样直接传送给数据链路层。实际上,ICMP报文首先要封装成IP数据报,然后在传送给下一层。 2.1 网络层协议 IP协议是TCP/IP协议栈的核心。IP报是由报头和负载组成的。报头的长度范围为2060字节,有效负载的范围为865515字节。IP报头的封装如图2.1所示,现在分为第4版和第6版,第6版还没有完成推广。所以这里只介绍第4版的IP协议,即IPV4。图2.1IP报头IP帧结构各字段含义如表2.1所示:表2.1IP帧各字段含义字段名称字节长度描述版本4位表示该IP报的版本号IP报头长度4位表示IP报头的大小。它的数值范围是0x50xF,表示4的倍数的值服务类型1字节表示路由器传递数据报时所使用的服务质量总长度2字节表示该IP报的总长度(IP报头+有效负载)标识符3位也叫分段标志。最高位是保留位,为0;第二位是分段标志位,也称为DF位,为0是分段,为1是不分段最低位为更多段标志位,也称为MF位,为1表示分段还没有结束,为0表示该分段结束分段偏移量13位也是与分段有关,它的值等于分段的数据相对该完整数据帧的起始位置生存周期1字节也叫TTL,表示IP数据报被丢弃前可以经过多少个IP路由器,即转发的次数协议1字节表示有效负载内包含上层协议的类型,如TCP是6,UDP是17,ICMP是1,IGMP是2信息头校验2字节用来检验IP报头传输数据的完整性源IP地址4字节指本节点的IP地址目的IP地址4字节目标节点的IP地址IP选项和填充字符4字节的增加,长度不定字段长度具体取决所选择的IP选项IP帧如下:IP头部帧分析 版本为4,就是说IP地址由4字节组成。IP报头长度为20字节。服务类型为0,没有使用服务。IP数据帧的总长度为60字节(加上以太网首部14字节共74字节)。IP报标识为0x85E3。标志字段和片偏移字段设计为0x0000,就是DF=0允许分段,MF=0没有更多的分段,没有偏移。生存时间TTL是64。上层协议为ICMP协议。IP报首部校验和为0x4147.发送源IP地址为192.168.25.64,发送目标IP地址为192.168.25.6。实际接受ARP帧数据 45 00 00 3C 85 E3 00 00 40 01 41 47 C0 A8 19 40 C0 A8 19 062.2 ICMP协议ICMP是Internet控制信息协议,在结构上是属于传输层的,但在实际功能上是属于网络层的,是IP层的组成部分。ICMP协议为IP数据报提供传输过程中遇到的路由和传送错误报告。ICMP数据报总长度40个字节,前8个字节为报头信息,后面32字节为填充信息。ICMP数据报封装如图2.2所示:图2.2ICMP数据报ICMP帧结构各字段含义如表2.2所示:表2.2ICMP帧字段含义字段名称字节长度描述类型1字节表示ICMP帧的类型,具体如表2.3所示代码1字节表示在该类型下的错误代码,只有差错报文才有,其余都为0校验和2字节用来检验ICMP报头传输数据的完整性标识符2字节Windows下的ping一般发生0x0100或0x0200,如果是回应应答,就应该保持标识符与回应请求相同序列号2字节是一个随机数,如果是回应应答,就应该保持标识符与回应请求相同数据区32字节如果是回应应答,就应该保持标识符与回应请求相同表2.3ICMP的类型类型描述0回应应答(PING应答)3无法达到的目的地4源中断5重定向8回应请求(PING请求)9路由通过10路由选择11超时12IP报参数设错了13时间戳请求14时间戳应答17地址掩码请求18地址掩码应答跟ARP帧一样,ICMP帧也分为请求帧和应答帧。请求帧分析:ICMP请求帧分析: 类型为8,表示回应请求。代码为0。ICMP校验和为0x0200。标识符为0x0200,序列号为0x2100。数据区长度为32字节。实际接受ICMP帧数据: 08 00 2A 5C 02 00 21 00 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69应答帧分析:ICMP应答帧分析:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论