1、概述

ARP,即地址解析协议(Address Resolution Protocol),是根据 IP 地址获取物理地址的一个 TCP/IP 协议,报文位于以太网帧的数据段内。网络设备给另一台设备发送数据时,需要知道对方的网络层地址(IP 地址),但是仅有 IP 地址是无法发送数据的,IP 报文需要封装为以太网帧才能通过数据链路层发送,而以太网帧需要知道对方的 MAC 地址,因此发送端需要知道目的 MAC 地址。ARP 命令可用于查询本机 ARP 缓存中 IP 地址和 MAC 地址的对应关系。

2、ARP 协议详解

主机发送信息时将包含目标 IP 地址的 ARP 请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回 ARP 应答后将该 IP 地址和物理地址存入本机 ARP 缓存中并保留一定时间,下次请求时直接查询 ARP 缓存以节约资源。

例如,主机 A (192.168.1.5)向主机 B (192.168.1.1)发送数据时,主机 A 会在自己的 ARP 缓存表中查找是否有目标 IP 地址。如果找到了,也就确定了目的 MAC 地址,直接把目的 MAC 地址写到以太网帧里发送;如果在 ARP 缓存表里没有找到对应的 IP 地址,主机 A 会在网络上发送一个 ARP 请求,目的 IP 地址为 192.168.1.1,目的 MAC 地址是 FF-FF-FF-FF-FF-FF,表示向同一网段内的所有主机发出这样的询问:“192.168.1.1 的 MAC 地址是什么?”。网络上其他主机不响应 ARP 请求,只有主机 B 接收到这个帧时,才向主机 A 发出 ARP 应答:“192.168.1.1 的 MAC 地址是 XX-XX-XX-XX-XX-XX(主机 B 的 MAC 地址)”。主机 A 收到 ARP 应答后,就知道了主机 B 的 MAC 地址,同时将主机 B 的 MAC 地址更新到 ARP 缓存表,下次再向主机 B 发送消息时,直接从 ARP 缓存表里查找就可以了。

3、ARP 报文格式

硬件类型(2byte):指明了发送方想知道的硬件接口类型,以太网的值为1;

协议类型(2byte):指明了发送方提供的高层协议类型,IP为 0800(16进制),表示 IPv4;

硬件地址长度(1byte)和协议地址长度(1byte):指明了硬件地址和高层协议地址的长度,单位为字节,硬件地址长度为 6,协议地址长度为 4;

操作类型(2byte):用来表示这个报文的类型,ARP 请求为 1,ARP 响应为 2;

发送方硬件地址(6byte):源主机硬件地址;

发送方 IP 地址(6byte):源主机 IP 地址;

目标硬件地址(6byte):目的主机硬件地址;

目标 IP 地址(6byte):目的主机 IP 地址。

TCP/IP(三):ARP报文格式详解相关推荐

  1. TCP/IP 协议栈及 OSI 参考模型详解

    TCP/IP 协议栈及 OSI 参考模型详解 转载地址:http://www.codeceo.com/article/tcp-ip-osi-model.html OSI参考模型 OSI RM:开放系统 ...

  2. 数据帧、IP数据包、TCP、UDP报文格式详解----网络通信原理

    数据链路层.网络层.传输层----网络通信原理 物理层 数据链路层 eNSP抓包实验 网络层 ICMP协议概述 eNSP抓包实验 ARP协议概述 eNSP抓包实验 传输层 TCP协议 eNSP抓包 三 ...

  3. TCP/IP(五):UDP 报文格式详解

    1.概述 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连 ...

  4. icmp报文格式_TCP/IP(二):IP报文格式详解

    1. IP 报文格式 0bit是指位于最左边的最高位,31bit是指位于最右边的最低位,4个字节的32bit按照 bigendian(大端格式:低字节位于高地址)字节序传输:首先是0~7bit,其次 ...

  5. tcp报文格式udp报文格式详解

    http://blog.csdn.net/a19881029/article/details/29557837 TCP(Transmission Control Protocol)传输控制协议是一种面 ...

  6. TCP/IP 协议栈及 OSI 参考模型详解--云平台技术栈04

    导读:之前发布了云平台技术栈(ps:点击可查看),本文主要说一下其中的tcp/ip和网络! 来源:王东裕 http://wangdy.blog.51cto.com/3845563/1588379 OS ...

  7. TCP/IP协议专栏——MAC地址详解——网络入门和工程维护必看

    以太帧格式 前导同步符:共8字节,由7个字节的前同步信号和一个分界符开始字节构成. DA/SA:共6个字节,前3个字节代表供应商代码,后3个字节代表厂商序列号. TPID:标记协议标识符,2个字节,值 ...

  8. QUIC报文格式详解

    QUIC的packet分为Special Packets和Regular Packets两种,其中各自又有两种不同的packet 特殊报文: 版本协商报文(Version Negotiation Pa ...

  9. TCP/IP协议和协议分层详解

    通常使用的网络是在TCP/IP协议族的基础上运作的,而HTTP属于它内部的一个子集. TCP/IP协议族 计算机与网络设备要相互通信,双方就必须基于相同的方法.比如,如何探测到通信目标.由哪一边先发起 ...

  10. TCP/IP:SCTP报文格式

    目录 SCTP通用报文格式 SCTP ABORT报文格式 SCTP COOKIE ACK格式 SCTP COOKIE ECHO数据块格式 SCTP DATA数据块格式 SCTP ERROR数据块格式 ...

最新文章

  1. 使用python愉快地做高数线代题目~
  2. 05-数据类型、常量、变量
  3. Spring框架分为哪七大模块以及各模块的主要功能作用
  4. oracle如何复制dept,[oracle]表复制的sql语句
  5. lm80认证_中国能效标识GB30255、GB38450和GB37478认证要求讲解
  6. 【TensorFlow】通过两个简单的例子实现反向传播
  7. python上传本地文件到ftp_python实现的简单FTP上传下载文件实例
  8. java valueof_Java Short类valueOf()方法及示例
  9. [转]ASP.NET面试题
  10. 原python实现素数判断_Python实现求最大公约数及判断素数的方法
  11. Prophet模型预测商品销售量
  12. python中round(x、2)是什么意思_python中round函数具体使用详解
  13. 58VIP账号发贴器
  14. oracle配置控制文件快照的位置以及名称为,Oracle快照控制文件(snapshotcontrolfile)
  15. 使用 Python 进行面部识别
  16. PCL点云库(2) — IO模块
  17. 大学里的网络安全专业为什么没多少人就读?
  18. u8服务器ip地址在哪修改,u8服务器ip地址在哪修改
  19. java中英文汉语混合排序_Java编程实现中英混合字符串数组按首字母排序的方法...
  20. Deep Learning_main

热门文章

  1. 智能门锁电路图_智能门锁原理图,智能锁工作原理科普
  2. skynet master/slave 模式
  3. 数据结构Status
  4. iOS 常用第三方开源框架介绍
  5. c语言中输入数组时用不用加地址符,C语言中,用格式符”%s”输入字符数组时,数组名前不能加。...
  6. n2n内网穿透神器--可以用于设置rac搭建时的网卡(在云平台上有用)
  7. Git学习8 Git分支操作
  8. 读《我怎样设计飞机》
  9. 200+ML知识速查卡;『图解算法数据结构』配套代码;『剑指Offer』解题代码;『Python3』高频面试题目集;前沿论文 | ShowMeAI资讯日报
  10. Word里面的大括号怎么打出来?