ARP数据报

地址解析协议ARP

ARP协议是已知一个主机的IP地址,找到该主机的MAC地址

每一个主机都设有一个ARP高速缓存,里面有本局域网上的各主机和路由器的IP地址到MAC地址的映射,这是主机知道的一些地址,那么还有些主机不知道的MAC地址,它就会自动运行ARP

通过以下例子来说明:

主机A向本局域网上的主机B发送数据,首先在其ARP高速缓存里查找B的IP地址,如果找到了就把这个地址写入MAC帧的首部(可参考下图),在通过局域网把该MAC帧发往此硬件地址,如果没找到主机B的IP地址,主机A就会自动运行ARP,在本局域网上广播发送一个ARP请求分组,内容为:“我的IP地址是:192.168.1.106,硬件地址是00:0C:29:87:90:18,我想知道IP地址为192.168.1.101主机的硬件地址”,在本局域网上的所有主机上运行的ARP进程都受到此ARP请求分组,主机B在ARP请求分组中见到自己的IP地址,就向A发送ARP响应,并写入自己的硬件地址,其他主机不予理睬这个请求,ARP响应分组的内容主要是:“我的IP地址是:192.168.1.101,我的硬件地址是00:0c:29:2c:57:ce”,主机A收到B发送的响应分组后,就在其APR高速缓存中写入主机B的IP地址到硬件地址的映射,B也会把A的IP地址到硬件值得的映射写到它自己的ARP的高速缓存中

前14个字节是以太网的首部,其中的以太网目的地址和以太网源地址这两个字段是指MAC地址(物理地址),源地址是已知的,目的地址是未知的,用ff ff ff ff ff ff填充  类型是指上层协议的类型,有3种值(0800是IP,0806是ARP请求/应答,8035是RARP请求/应答),这里以ARP请求/应答为例

硬件类型是指链路层网络链路,以太网是1

协议类型是指要转换的协议类型(即交给谁),IP为0800

硬件地址长度和协议地址长度(相对于以太网来说)分别是6和4

op指明ARP是请求还是应答,1为请求,2为应答

一个具体的例子:

上图中第一行是请求帧

以太网首部的地址是MAC地址(6个字节),由于目的主机的物理地址是未知的,因此用全f填充(采用广播地址)

OP字段 00 01 表示为请求帧

目的主机 MAC地址全0待填写

第二行是应答帧(此时目的主机和源主机是反过来的,也就说原来的目的主机是现在的源主机)

以太网首部的目的MAC地址为请求帧中的源地址,源MAC地址为此时源主机的MAC地址

OP字段 00 02 表示为应答帧


时间: 2024-10-21 20:17:18

ARP数据报的相关文章

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

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

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

ARP数据报传送格式

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

ARP 请求帧与应答帧

一.ARP ---   地址解析协议 1.工作在 数据链路层,局域网(LAN),将 IP地址 转换为 MAC(物理)地址. 2.ARP 数据报 格式: 注:ARP 帧类型:0x0806 硬件类型:链路层网络类型,1 以太网 [0x0001] 协议类型:要转换的地址类型,0x0800为IP地址,后面两个地址长度对于以太网地址(6字节)和IP地址(4字节) op字段:1 ARP请求 ,2 ARP应答 3.实例: (1)请求帧(每行的前面加了字节计数,每行16个字节): 以太网首部(14字节) 000

010 使用netmap函数接管网卡,接收数据包,回应ARP请求

一.本文目的: 上一节中,我们已经在CentOS 6.7 上安装好了netmap,也能接收和发送包了,这节我们来调用netmap中的API,接管网卡,对网卡上收到的数据包做分析,并回应ARP请求. 二.netmap API简要介绍: 1.netmap API 主要包含在两个头文件中:netmap.h和netmap_user.h.在netmap/sys/net/目录下,其中netmap_user.h调用netmap.h. 2.netmap API一共七八个函数调用:nm_open()生成文件描述符

什么是ARP?如何防范ARP欺骗?

http://blog.csdn.net/terryzero/article/details/4092114今天发生了件很奇怪的事,由于我和邻居用路由器共享上网,但今天他一上线,我就上不了网了,经过多方面得寻找资料,发现时我邻居中了ARP病毒. 什么是ARP?     ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的低层协议,负责将某个IP地址解析成对应的MAC地址. 什么是ARP欺骗?     从影响网络连接通畅的方式来看,ARP欺

计算机网路之ARP协议初见

今天在做题的时候发现ARP协议不是很懂,于是我去搜了一些资料,学习了一下,这里记录一下自己的总结. 一.为什么会有ARP协议的产生呢? 答:这是因为在直接相连的网络中,两个节点是利用彼此的MAC地址互相传送帧的.但是当网络层数据报交付给源端系统时,该端系统只能获得目的端系统的ip地址,依然不能进行数据的传送,所以需要一个协议来根据已知的ip地址获得对应得MAC地址,这个时候就产生了ARP协议,ARP协议将解析到的目的IP和MAC地址存储在本地的ARP缓冲中(地址映射表),供下次使用.ARP全称是

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数据报