TCP/IP协议(4): 地址解析协议(ARP) —— 网络地址转换为物理地址的方式
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 高速缓存中查看有无 网络设备X 的 IP 地址。如果有,则直接在 ARP 高速缓存 查出其对应的 物理地址。
- 否则,主机 A 的 ARP 进程在本地局域网发送 ARP 请求广播。如下图。
- 在本地局域网中的所有主机上运行的 ARP 进程 都收到此 ARP 请求。如下图。
- 主机 D 的 IP 地址和要查询的网络设备 X 一样,它在收到该 ARP 请求后向主机 A 发送 ARP 响应。
- 主机 A 收到主机 B 的 ARP 响应后, 会在其 ARP 高速缓存中记录 主机B 的 IP 地址到其硬件地址的映射。
注意: ARP 协议是局域网内部的协议。它解决的是同一局域网内部的主机或路由器的 IP 地址和其对应的硬件地址的映射问题。根据 ARP 协议 , 主机 A 无法解析其他网络中的主机的硬件地址。实际上,也不需要主机 A 解析其他网络的主机地址。因为跨网络的数据传输一般是由上层协议来完成的。
地址解析协议包(Packet)格式
- 硬件类型(Hardware Type, HTYPE): 当前网络数据链路层的协议类型, 实际指定了硬件地址类型。如,以太网 的 HTYPE 是
1。 - 协议类型(Protocol Type, PTYPE): 上层网络协议,实际指定了待映射的网络地址的类型。如,IPv4 协议的 PTYPE 是
0x0800。 - 硬件大小(Hardware Length, HLEN): 硬件地址的长度(单位: 八位字节(Octets))。以太网的 HLEN 是
6。 - 协议大小(Protocol Length, PLEN): PTYPE 指定的上层协议的网络地址长度(单位:八位字节(Octets))。IPv4 协议的 PLEN 是
4。 - 操作(Operation, OPER): 该协议包的操作。ARP 请求包的 OPER 是
1,而ARP 响应包的 OPER 是2。 - 发送方硬件地址(Sender Hardware Address, SHA): 发送方的硬件地址。
- 发送方协议地址(Sender Protocol Address, SPA): 发送方的上层协议的网络地址。
- 目的硬件地址(Target Hardware Address, THA): 接收方的硬件地址。在 ARP 请求包的 THA 是
0。 - 目的方协议地址(Target Protocol Address, TPA): 接收方的上层协议的网络地址。
地址解析协议的具体内容
- 主机 A 的 ARP 进程在本地局域网发送 ARP 请求广播。
- 主机 D 的 IP 地址和要查询的网络设备 X 一样,它在收到该 ARP 请求后向主机 A 发送 ARP 响应。
参考文献
TCP/IP协议(4): 地址解析协议(ARP) —— 网络地址转换为物理地址的方式的更多相关文章
- TCP/IP的排头兵――地址解析协议(ARP) (转载)
转自:http://blog.csdn.net/wangxg_7520/article/details/2488442 一.引言 古人行军打仗,都要有一个可以引领队伍前进方向的排头兵,在TCP/IP网 ...
- TCP/IP协议和OSI协议
作为一个与网络密切相关的Web前端工程师,TCP/IP和OSI模型不可不知,至少要知道一下这些常识性知识,在这我做一下记录 TCP/IP协议簇: TCP/IP是一组协议的代名词,包括许多别的协议,组成 ...
- TCP/IP,HTTP,SOAP等协议之区别
术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议.“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络.把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到 ...
- 计算机网络(二),TCP/IP四层模型常见协议
目录 1.应用层协议 2.传输层协议 3.网络层协议 4.链路层协议 二.TCP/IP四层模型常见协议 1.应用层协议 (1)POP3 (2)FTP (3)HTTP (4)Telnet (5)SMTP ...
- 08_使用TCP/IP Monitor监视SOAP协议
[SOAP定义] SOAP 简单对象访问协议,基于http传输xml数据,soap协议体是xml格式.SOAP 是一种网络通信协议SOAP 即Simple Object Access Pr ...
- 使用TCP/IP Monitor监视Soap协议
什么是soap? soap,简单对象访问协议,基于http传输xml数据,soap协议体是xml格式. SOAP 是一种网络通信协议 SOAP即Simple Object Access Protoco ...
- TCP/IP详解之:ARP协议 和 RARP协议
ARP功能:从逻辑internet地址(IP地址)到对应的物理硬件地址(以太网地址)之间的转换 ARP工作原理: (1)首先每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP和MAC间的 ...
- TCP/IP的网际层协议——ARP
MAC地址对于每一台设备是全球唯一的,该地址被烧录在网卡的硬件电路上.MAC地址由12位十六进制数表示,其中前6位标识网卡的制造厂商,后6位是网卡的序列号.在以太网中,一个主机要和另一个主机进行通信, ...
- TCP/IP,HTTP,HTTPS,WEBSocket协议
我看看着挺多的,我暂时没时间自己写,有需要的请借鉴 http://mp.weixin.qq.com/s?__biz=MzI0MDQ4MTM5NQ==&mid=2247486927&id ...
- tcp/ip协议和http协议
TCP/IP 是一类协议系统,它是用于网络通信的一套协议集合. 传统上来说 TCP/IP 被认为是一个四层协议:应用层(telnet, ftp, http, smtp, dns等),传输层(tcp, ...
随机推荐
- day22 存储过程 & 游标 & 事务
存储过程 是一种在数据库中存储复杂程序(复杂sql语句),以便外部程序调用的一种数据库对象 存储过程是为了完成特定功能的sql语句集,经编译创建并保存在数据库中,用户可以通过指定存储过程的名字并给定参 ...
- Qt VideoMeeting_Intercom师生对讲开发中实际上遇到的一些问题,终于结项了,也照例写一下总结吧。
layout: post title: Qt VideoMeeting_Intercom师生对讲开发中实际上遇到的一些问题,终于结项了,也照例写一下总结吧. description: 软件开发,初次开 ...
- ping localhost时出现::1的原因以及解决办法
ping localhost时出现: 在cmd中ping localhost解析出来的是ipv6的::1的原因是windows有个优先解析列表,当ipv6的优先级高于ipv4时,就会出现这种情况. 具 ...
- xxl-job定时调度任务Java代码分析
简介 用xxl-job做后台任务管理, 主要是快速解决定时任务的HA问题, 项目代码量不大, 功能精简, 没有特殊依赖. 因为产品中用到了这个项目, 上午花了点时间研究了一下运行机制. 把看到的记一下 ...
- python文件的写入与读出
Python对文件的处理,新建目录,写入一个txt文件然后读取刚才写入的内容.这里是在windows系统演示,目录用"\".如果在linux系统,区别就是目录的斜杠号要用" ...
- [常用工具] mermaid学习笔记
mermaid是一个基于Javascript的图表绘制工具,类似markdown用文本语法,用于描述文档图形(流程图. 时序图.甘特图),开发者可以通过一段mermaid文本来生成SVG或者PNG形式 ...
- 能将三次握手讲到这个程度,不给你offer给谁!
摘要:在后端相关岗位的入职面试中,三次握手的出场频率非常的高,甚至说它是必考题也不为过. 本文分享自华为云社区<能将三次握手理解到这个深度,面试官拍案叫绝~>,作者:龙哥手记. 在后端相关 ...
- 一文详解RocketMQ的存储模型
摘要:RocketMQ 优异的性能表现,必然绕不开其优秀的存储模型. 本文分享自华为云社区<终于弄明白了 RocketMQ 的存储模型>,作者:勇哥java实战分享. RocketMQ 优 ...
- 降本超30%,智聆口语通过 TKE 注册节点实现 IDC GPU 节点降本增效实践
背景介绍 腾讯云智聆口语评测(Smart Oral Evaluation,SOE)是腾讯云推出的中英文语音评测产品,支持从儿童到成人全年龄覆盖的语音评测,提供单词.句子.段落.自由说等多种评测模式,从 ...
- Java读取文件后文件被占用
Java读取文件响应后文件一直被占用问题 原因: 由于是封装的函数,请求和响应对象都是 形参地址 虽然在此函数里关闭了输出流,但是由于有返回值,调用未结束,输出流无法提前关闭 解决: 1:调用函数后, ...