ARP数据报传送格式

一. ARP

ARP协议是运行在网络体系中数据链路层的协议,用于在局域网内,当知道要发送目的地主机的IP地址和端口号但是却不知道MAC地址的时候,就需要用到ARP也被称为地址解析协议;因为数据链路层传输的数据格式是帧,接收方接收的时候是先经过物理层和数据链路层才到达网络层的,因此,在数据传输的时候是需要知道主机的MAC地址也就是其硬件地址的来发送和接收数据的;如果接收到的数据包的MAC地址与本机不符,则直接丢弃;若相符,则在解析之后误差错就交付给上一层处理。

-------------------------------------------------------------------------------------------

二. ARP工作流程

  1. 当需要知道目的主机的MAC地址时,在发送数据帧之前需要先发送一个ARP请求数据报,而这个数据报是发送给局域网内所有主机的,也就是以广播的形式来告知局域网内的主机们要找的是IP地址为XXX的主机的MAC地址;
  2. 当主机们收到这个ARP数据报时,如果请求中的目的IP地址与自身的IP不相符,则直接丢弃不处理;当IP地址就是源主机要找的主机时,就对ARP请求进行处理,之后再给发送ARP请求的源主机一个ARP应答数据报,并将自身的MAC地址填充其中;
  3. 而最后源主机收到ARP应答数据报之后,再进行处理获得MAC地址,就可以直接将要发送的数据给发送过去了;

-------------------------------------------------------------------------------------------

三. ARP数据报格式

不管是发送ARP请求的数据报还是ARP应答数据报,其格式如下:

其中:

  • 以太网目的地址是目的主机的MAC地址,共6个字节,当ARP作为请求发送时并不知道,因此是全F;当ARP作为应答回应时,以太网目的地址是请求的源主机MAC地址;
  • 以太网源地址就是发送ARP主机的MAC地址,也是6个字节,作为请求是源主机MAC地址,作为应答是目的主机MAC地址;
  • 帧类型就是ARP,2个字节来存放;
  • 硬件类型是处理当前网络的链路层网络类型,当前为以太网就是1,占用2个字节;
  • 协议类型是指要转换的地址类型,当前要转换的是IP地址,仍然占用2个字节;
  • 硬件地址长度也就是MAC地址的长度,为6个字节,因此“6”这个数字就用一个字节就能存放了;
  • 协议地址长度是指当前的IP地址长度,也是用一个字节就能存放了,IPv4为4个字节,IPv6为16个字节;
  • op为1的话表示请求,2表示应答;
  • 发送端以太网地址就是发送ARP数据报的以太网网地址,也就是前面的以太网源地址,同样为6个字节的空间;
  • 发送端IP地址就是发送ARP数据报的主机IP地址,4个字节;
  • 目的以太网地址当为请求时是全F,应答时就为源主机MAC地址,6字节;
  • 目的IP地址当请求时为目的主机的IP地址,当为应答时就为源主机IP地址,4个字节;

前面三个部分14个字节是以太网的头部信息,而后面的28个字节就是ARP数据报的请求/应答的有效载荷信息;

-------------------------------------------------------------------------------------------

栗子时间:

下面举个具体的栗子来分析上面ARP数据报的信息;

因为以太网中数据报中的有效信息最小字节数为46最大为1500,因此,ARP数据报中不够46位需要填充,而填充位内容没有定义,与具体实现相关;

上面的数据报为ARP请求数据报,也就是源主机请求目的主机的MAC地址,从上面可以看出,源主机的IP地址为 c0 a8 00 37 也就是192.168.0.55,而目的主机的IP地址是 c0 a8 00 02 也就是192.168.0.2;

下面为对上面ARP请求的一个应答ARP:

在ARP请求数据报中,发送端IP为192.168.0.55,接收端也就是目的IP为192.168.0.2;

在ARP应答数据报中,发送端IP为192.168.0.2,接收端为192.168.0.55;

从上面对ARP请求数据报和ARP应答数据报的分析中可以看出,两个主机都作为目的主机和源主机,当一个源主机要给目的主机发送数据但不知道其MAC地址时,就可以使用ARP请求数据报在局域网内请求目的主句的MAC地址,而当目的主机在收到ARP请求数据报发现其请求的IP地址和自身相符的时候,就会做出ARP应答并将自己的MAC地址填充其中,这样源主机接收ARP应答数据报之后提取目的主机的MAC地址就能够实现发送数据了。

《完》

时间: 2024-08-21 20:50:38

ARP数据报传送格式的相关文章

ARP数据报格式

ARP协议的作用 怎么做 3. 每台主机都维护一个ARP缓存表,可以用arp -a命令查看. 4. ARP数据报的格式 前14个字节为以太网首部,以太网目的地址和以太网源地址为MAC地址,源地址已知,目的地址未知,用ff ff ff ff ff ff 填充,类型指上层协议类型,有3种--IP(0800).ARP请求/应答(0806).RARP请求/应答(8035) 后28个字节,以ARP请求/应答为例 a. 硬件类型指链路层网络类型,1为以太网 b. 协议类型指要转换的地址类型,0x0800为I

MAC帧格式,IP数据报格式和ARP数据报格式

MAC帧格式: 以太网帧格式由5个字段组成,前两个字段分别是6字节长的目的地址和源地址字段,是指网卡的硬件地址(MAC地址).第三个字段是2字节的类型字段,用来标识上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议.例如,当类型字段的值是0X0800时,就表示上层使用的是IP数据报.第四个字段是数据字段,其长度在46~1500字节之间.最后一个字段是4字节的帧检验序列FCS(CRC检验).最大值1500称为以太网的最大传输单元(MTU),如果数据报长度大于这个长度,需要对数

IP数据报的格式

1.IP数据报的格式 2. (1)版本 占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.日前广泛使用的 IP协议版本号为 4 (即 IPv4).IPv6 目前还处于起步阶段. (2)首部长度 占4位,可表示的最大十进制数值是15,请注意,首部长度字段所表示数的单位是32字(1个32位字长是4字节),因此,首部长度字段的最小值是5(即0101),相当于IP首部长度为5×4=20字节,而当首部长度为1111时(即十进制15),即达到60个字节,当 IP 分组的首部长度不是4字节的整数倍

IP数据报首部格式

IP协议提供不可靠.无连接的数据报传送服务. 不可靠:尽力而为地传输,不保证IP数据报能成功到达目的地. 无连接:每一个数据报之间相互独立地进行路由选择,可不按发送顺序接收. IP首部格式例如以下: 以下就用这幅图结合Wireshark来分析个字段含义. 这次截取的是DNS数据报,它位于应用层. 首先看一下整个IP首部的内容: 相应的原始数据: 以下按字段分别进行说明. 4位版本号表示眼下的协议版本号号.这里使用的是IPv4,当然值就是4啦. 4为首部长度表示首部包括多少个4字节.相应Heade

IP数据报的格式总结

IP数据报的格式(没有严格对应数据长度) 版本号 首部长度 服务类型 总长度 标识 标志位 片偏移 TTL 协议 首部检验和 源IP 目标IP 选项字段 填充 数据

ARP数据报

地址解析协议ARP ARP协议是已知一个主机的IP地址,找到该主机的MAC地址 每一个主机都设有一个ARP高速缓存,里面有本局域网上的各主机和路由器的IP地址到MAC地址的映射,这是主机知道的一些地址,那么还有些主机不知道的MAC地址,它就会自动运行ARP 通过以下例子来说明: 主机A向本局域网上的主机B发送数据,首先在其ARP高速缓存里查找B的IP地址,如果找到了就把这个地址写入MAC帧的首部(可参考下图),在通过局域网把该MAC帧发往此硬件地址,如果没找到主机B的IP地址,主机A就会自动运行

ARP的一次请求与应答

ARP: 我们知道,网络层和网络层以上使用的是IP地址,但在实际网络的链路上传送数据帧时,数据包首先是被网卡接受到再去处理上层协议的,所以最终还是必须使用该网络的硬件地址.但IP地址和下面的网络的硬件地址之间由于格式不同而不存在简单的映射关系(例如,IP地址有32位,而局域网的硬件地址是48位).此外,在一个网络上可能经常会有新的主机加进来,或撤走一些主机.更换网络适配器也会使主机的硬件地址改变.地址解析协议(ARP)解决这个问题的方法是,在主机ARP高速缓存中应存放一个从IP地址到硬件地址的映

arp和rarp协议

ARP与RARP详细解析 原创zlnnjit 发布于2016-04-03 15:12:15 阅读数 9544 收藏 展开 地址解析协议 ARP和逆地址解析协议RARP 1.基本关系: ? 2.地址解析协议 ARP的实现过程: ?不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址. ?每一个主机都设有一个 ARP高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表. ?当主机 A 欲向本局域网上的某个主机B发送IP数据报

Linux网络编程基础-socket

一.协议的概念 1. 什么是协议 从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则. 假设,A.B双方欲传输文件.规定: 第一次,传输文件名,接收方接收到文件名,应答OK给传输方: 第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK: 第三次,传输文件内容.同样,接收方接收数据完成后应答OK表示文件内容接收成功. 由此,无论A.B之间传递何种文件,都是通过三次数据传输来完成.A.B之间形成了一个最简单的数据传输规则.双方都按此规则发送.接收数据.A.B之间达成的这个相