ARP(地址解析协议)

作用:

将目的IP解析为目的MAC,用于二层帧结构的目标MAC封装,数据必须封装为帧才能够被网卡发送出去,帧中必须包含MAC。

报文格式:

ARP报文不能穿越路由器,不能被转发到其他广播域。

主要参数:

Hardware Type表示硬件地址类型,一般为以太网(值为1);

Protocol Type表示三层协议地址类型,一般为IP;

Hardware Length和Protocol Length为MAC地址和IP地址的长度,单位是字节; Operation Code指定了ARP报文的类型,

ARP请求(1),ARP应答(2),RARP请求(3),RARP应答(4); Source Hardware Address指的是发送ARP报文的设备MAC地址; Source Protocol Address指的是发送ARP报文的设备IP地址;

Destination Hardware Address指的是接收者MAC地址,在ARP request报文中,该字段值为0;

Destination Protocol Address指的是指接收者的IP地址。

工作原理:

1. 首先检查自己的ARP缓存表,是否存在目的IP对应的目的MAC,如存在则不会触发ARP请求与应答过程,直接根据ARP缓存表项封装目的MAC;

2. 不存在arp缓存表,触发arp请求,对方收到arp请求,根据arp报文中的目的IP判断,是否寻找的主机是自己,如果是则发送arp响应携带自己的MAC地址, 回复对方。

示例:

1,主机A发送一个数据包给主机C之前,首先要获取主机C的MAC地址。

2,主机A先查询自己的ARP缓存表,看是否存在C的MAC,如果存在则直接封装C的MAC,

如果不存在则发送ARP request;

3,主机A发送时二层封装S.MAC为自己的MAC地址AA,目的MAC为FFFF FFFF FFFF

ARP消息中封装 S.MAC AA S.IP 0.1D.MAC 00/FFD.IP 0.3

4,主机C收到后进行解封装发现D.MAC为FFFF接收后,交于ARP协议处理,ARP协议 再拆包发现D.IP与自己的IP相同则进行接收(将对方IP、MAC记录下放入arp缓存表) 并进行响应arp reply(告诉对方自己的IP、MAC);

5,主机A收到主机C回复的ARP reply之后根据该消息中携带的IP、MAC,生成相应的ARP缓存表后续主机A、主机C之间的互访则直接根据ARP缓存表进行封装,不需要再发送ARP request;

一文详解ARP报文格式及工作原理相关推荐

  1. http详解 请求报文格式和响应报文格式

    题外话: <Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元>相信过去BTC的人,信不信未来的PI,了解一下,唯一一个高度与之持平的项目 HTTP 工作原理 超文本传 ...

  2. 网络-IP协议详解(报文格式、分类、NAT、子网、CIDR、抓包分析)

    目录 简介 报文格式 IPv4地址 分类 网络地址转换NAT 子网划分与子网掩码 CIDR 实战 参考 简介 IP(网际互连协议,Internet Protocol)是TCP/IP协议族中最为核心的协 ...

  3. DNS协议详解及报文格式分析

    https://blog.csdn.net/tianxuhong/article/details/74922454 目录 一. DNS协议理论知识 1.1. 域名结构 1.2. 域名服务器 1.3. ...

  4. HTTP运作方式、报文格式、工作原理

    运作方式: 在WWW中,"客户"与"服务器"是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器.基于HTTP协议的客 ...

  5. 详解Kafka应用场景及工作原理

    一.概述 Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的发布/订阅式分布式消息系统 二.特性 持久 ...

  6. 一文详解 m3u8视频格式与视频秒开优化

    公司要求对 视频秒开率 进行优化(一秒内成功加载的播放数/播放总数). 因此本意是想对比一下m3u8与mp4视频格式,并了解m3u8格式优缺点,以确定一个优化大概方向. 但对m3u8做简单了解后,觉得 ...

  7. HTTP协议 | 一文详解HTTP报文结构

    目录

  8. 【AI产品】超长文详解作业帮产品逻辑和技术原理

    今天一起体验作业帮"拍照搜题"功能,从实际产品使用流程中切实感受AI技术如何为教育创造更多可能~ 作者 | Luna 编辑 | Luna 前两期对抖音和美图的体验,让我们见证了计算 ...

  9. flash写保护原理_一文详解闪存flash读写的原理

    首先讲述的是基本原理,因为前面总结了很多基本原理,所以这个位置比较粗略的带过. 1.基本原理 从图上可以看出,Vt为开启电压,对于N沟道的cmos,当门极加的电压逐渐变大的时候,多数载流子被门极所吸引 ...

最新文章

  1. php ajax mysql 出错,php – 从mysql切换到mysqli后,Ajax的更新语句不能正常工作,但没有错误显示...
  2. R语言与总体比例的置信区间
  3. js(jQuery)获取时间的方法及常用时间类
  4. [学习笔记] 单位根反演
  5. 202.linux系统相关函数
  6. 专升本c语言名词解释题_福建普通高校专升本各类别考试题型及分值
  7. Linux USB驱动框架分析
  8. 简单谈谈3D打印培训的发展和前景
  9. 子类化和超子类化http://www.cppblog.com/wangjia184/archive/2008/03/27/45520.html
  10. Flume+Kafka+Storm+Redis流计算实现wordcount示例
  11. Java如何把文档转换成PDF
  12. Intellij idear使用心得
  13. React + Ant Design Pro项目实现keep-alive页签
  14. Word技巧之:将PPT框图以可编辑形式插入Word文档
  15. Word中给论文添加引用
  16. 线程安全的随机数生成
  17. PHP生成带图片的Excel
  18. 索尼随身听体积小吗?
  19. 关于EXE文件关联的.
  20. 【数理统计】估计的性质是否具有变换不变性

热门文章

  1. 《Delta-Sigma数据转换器从入门到精通》笔记之漫谈均值
  2. PS_BaseUse_红眼擦拭
  3. 北京大学生物信息学(9)第二代基因组测序技术
  4. mysql date 24小时制_SpringBoor连接mysql数据库取数据库中时间格式是12小时制的时间,如何显示成24小时制...
  5. python初体验-hello world答案_Python初体验(一)—【配置环境变量】【变量】【input】【条件语句】【循环语句】...
  6. Windows去快捷方式角标
  7. matlab实现三分之一倍频程,三分之一倍频程程序
  8. JavaScript高级教程(25)——ES6
  9. 布鲁斯·塔克曼(Bruce Tuckman)的团队发展阶段模型
  10. 【极客时间-网络编程实战】