TCP/IP协议(4): 地址解析协议(ARP)——网络地址转换为物理地址的方式

关于地址解析协议(Address Resolution Protocol, ARP)

关于 ARP

地址解析协议(Address Resolution Protocol, ARP) 协议是用于根据给定网络层地址,通常是 IPv4地址,查找其对应的数据链路层地址,如 MAC地址,的协议。 ARP 协议 定义于 1982 年的 RFC 826
(The Address Resolution Protocol (ARP) is a communication protocol used for discovering the link layer address, such as a MAC address, associated with a given network layer address, typically an IPv4 address. ARP was defined in 1982 by RFC 826.)

ARP 协议在 TCP/IP 协议栈中的位置

由于 IP 协议 中使用了 ARP 协议,因此通常将 ARP 协议归为网络层协议。
ARP 协议的用途是从网络层使用的 IP地址 中解析出在数据链路层使用的硬件地址。其消息由数据链路层协议封装,它是在同一局域网内部通信的,从不跨网络节点路由。因此,也可以认为 ARP 协议数据链路层协议。

地址解析协议的主要内容

本节内容改编自谢希仁编著**《计算机网络(第六版)》4.2.4 地址解析协议 ARP**。

  • 如下图的网络中, 主机 A 要向某网络设备 X 发送数据时,需要先在其 ARP 高速缓存中查看有无 网络设备XIP 地址。如果有,则直接在 ARP 高速缓存 查出其对应的 物理地址
  • 否则,主机 AARP 进程在本地局域网发送 ARP 请求广播。如下图。
  • 在本地局域网中的所有主机上运行的 ARP 进程 都收到此 ARP 请求。如下图。
  • 主机 DIP 地址和要查询的网络设备 X 一样,它在收到该 ARP 请求后向主机 A 发送 ARP 响应
  • 主机 A 收到主机 BARP 响应后, 会在其 ARP 高速缓存中记录 主机BIP 地址到其硬件地址的映射。

注意: ARP 协议是局域网内部的协议。它解决的是同一局域网内部的主机或路由器IP 地址和其对应的硬件地址的映射问题。根据 ARP 协议 , 主机 A 无法解析其他网络中的主机的硬件地址。实际上,也不需要主机 A 解析其他网络的主机地址。因为跨网络的数据传输一般是由上层协议来完成的。

地址解析协议包(Packet)格式

  • 硬件类型(Hardware Type, HTYPE): 当前网络数据链路层的协议类型, 实际指定了硬件地址类型。如,以太网HTYPE1
  • 协议类型(Protocol Type, PTYPE): 上层网络协议,实际指定了待映射的网络地址的类型。如,IPv4 协议PTYPE0x0800
  • 硬件大小(Hardware Length, HLEN): 硬件地址的长度(单位: 八位字节(Octets))。以太网HLEN6
  • 协议大小(Protocol Length, PLEN): PTYPE 指定的上层协议的网络地址长度(单位:八位字节(Octets))。IPv4 协议PLEN4
  • 操作(Operation, OPER): 该协议包的操作。ARP 请求包OPER1,而ARP 响应包OPER2
  • 发送方硬件地址(Sender Hardware Address, SHA): 发送方的硬件地址
  • 发送方协议地址(Sender Protocol Address, SPA): 发送方的上层协议的网络地址
  • 目的硬件地址(Target Hardware Address, THA): 接收方的硬件地址。在 ARP 请求包THA0
  • 目的方协议地址(Target Protocol Address, TPA): 接收方的上层协议的网络地址

地址解析协议的具体内容

  • 主机 AARP 进程在本地局域网发送 ARP 请求广播。
  • 主机 DIP 地址和要查询的网络设备 X 一样,它在收到该 ARP 请求后向主机 A 发送 ARP 响应

参考文献

TCP/IP协议(4): 地址解析协议(ARP) —— 网络地址转换为物理地址的方式的更多相关文章

  1. TCP/IP的排头兵――地址解析协议(ARP) (转载)

    转自:http://blog.csdn.net/wangxg_7520/article/details/2488442 一.引言 古人行军打仗,都要有一个可以引领队伍前进方向的排头兵,在TCP/IP网 ...

  2. TCP/IP协议和OSI协议

    作为一个与网络密切相关的Web前端工程师,TCP/IP和OSI模型不可不知,至少要知道一下这些常识性知识,在这我做一下记录 TCP/IP协议簇: TCP/IP是一组协议的代名词,包括许多别的协议,组成 ...

  3. TCP/IP,HTTP,SOAP等协议之区别

    术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议.“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络.把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到 ...

  4. 计算机网络(二),TCP/IP四层模型常见协议

    目录 1.应用层协议 2.传输层协议 3.网络层协议 4.链路层协议 二.TCP/IP四层模型常见协议 1.应用层协议 (1)POP3 (2)FTP (3)HTTP (4)Telnet (5)SMTP ...

  5. 08_使用TCP/IP Monitor监视SOAP协议

    [SOAP定义] SOAP   简单对象访问协议,基于http传输xml数据,soap协议体是xml格式.SOAP   是一种网络通信协议SOAP   即Simple Object Access Pr ...

  6. 使用TCP/IP Monitor监视Soap协议

    什么是soap? soap,简单对象访问协议,基于http传输xml数据,soap协议体是xml格式. SOAP 是一种网络通信协议 SOAP即Simple Object Access Protoco ...

  7. TCP/IP详解之:ARP协议 和 RARP协议

    ARP功能:从逻辑internet地址(IP地址)到对应的物理硬件地址(以太网地址)之间的转换 ARP工作原理: (1)首先每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP和MAC间的 ...

  8. TCP/IP的网际层协议——ARP

    MAC地址对于每一台设备是全球唯一的,该地址被烧录在网卡的硬件电路上.MAC地址由12位十六进制数表示,其中前6位标识网卡的制造厂商,后6位是网卡的序列号.在以太网中,一个主机要和另一个主机进行通信, ...

  9. TCP/IP,HTTP,HTTPS,WEBSocket协议

    我看看着挺多的,我暂时没时间自己写,有需要的请借鉴 http://mp.weixin.qq.com/s?__biz=MzI0MDQ4MTM5NQ==&mid=2247486927&id ...

  10. tcp/ip协议和http协议

    TCP/IP 是一类协议系统,它是用于网络通信的一套协议集合. 传统上来说 TCP/IP 被认为是一个四层协议:应用层(telnet, ftp, http, smtp, dns等),传输层(tcp, ...

随机推荐

  1. Web Api出现500 Internal Server Error 错误

    在测试环境一切正常,但是部署到了生产环境发现一直报错.查询网上的方法设置了权限等等.都没有解决 原来发现是数据库连接字符串的问题.只需要把数据库连接字符串修改正确即可!

  2. windows10 设置VS一类的不提供兼容性视图的程序默认管理员启动

    选择兼容性疑难解答: 选择疑难解答程序: 下一步后保存即可.

  3. 【Java EE】Day14 Servlet、HTTP、Request

    一.Servlet 二.HTTP 三.Request 四.登录案例

  4. 【每日一题】2021年12月6日-剑指 Offer 22. 链表中倒数第k个节点

    输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点. 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1.2.3.4.5.6 ...

  5. http 缓存 笔记

    http 缓存,有时候静态资源没更新的情况下,不需要每次都去服务器获取,减少资源的请求. Http 报文中与缓存相关的首部字段 1. 通用首部字段(就是请求报文和响应报文都能用上的字段) 2. 请求首 ...

  6. 直接快速下载NLTK数据

    直接快速下载NLTK数据 直接下载NLTK的数据速度很慢,这里提供NLTK数据集,直接下载即可.或者选择下列百度云下载: 链接:https://pan.baidu.com/s/17ZgkoQeMosW ...

  7. 如何用 JavaScript 编写你的第一个单元测试

    前言 测试代码是使代码安全的第一步.做到这一点的最好方法之一是使用单元测试,确保应用程序中的每个小功能都能发挥其应有的作用--特别是当应用程序处于边缘情况,比如无效的输入,或有潜在危害的输入. 为什么 ...

  8. maven 项目依赖自动导入失败(pom.xml 文件爆红),解决--手动导入

    idea 报错信息提示:Dependency 'xxx' not found 解决方法:可以通过更换仓库的镜像配置解决,但是一般咱都在配置maven的时候,设置成阿里云仓库镜像了,更换成其他的,可能出 ...

  9. Azure DevOps 的架构窥探

    工作的缘故,接触 TFS (Team Foundation Server)挺多的,现在改名为 Azure DevOps,分为 可私有化部署版本 Azure DevOps Server,简称ADS,以及 ...

  10. eclipse打不开maven项目中的pom.xml

    1.问题描述 在eclipse中我双击打开maven项目中的pom.xml报错. 2.产生原因 正如报错中描述的那样"Failed to create the part's controls ...