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, ...
随机推荐
- 【Devexpress】pivotGridControl设置不显示展开折叠按钮
只需要设置.效果看图二
- 推荐一款 .NET 编写的 嵌入式平台的开源仿真器--Renode
Renode 是一个开发框架,通过让你模拟物理硬件系统来加速物联网和嵌入式系统开发. Renode 可以模拟 Cortex-M.RISC-V 等微控制器,不仅可以模拟 CPU指令,还可以模拟外设,甚至 ...
- Linux deb系统 nginx 配置解析php
如果你是root用户可以不加sudo 首先安装php php-fpm nginx sudo apt-get install php php-fpm nginx -y nginx 是一个轻量级的http ...
- 【面试题总结】JVM02:JVM参数调优、类加载机制
四.JVM参数调优 1.调优工具 (1)jvisualvm:jdk提供的性能分析工具,可以监控java进程,对dump文件分析:查看应用程序的详细信息,针对不同插件,实现监控GC过程.内存.进程.线程 ...
- 1.4 Apache Hadoop完全分布式集群搭建-hadoop-最全最完整的保姆级的java大数据学习资料
目录 1.4 Apache Hadoop 完全分布式集群搭建 1.4.1 虚拟机环境准备 1.4.2 集群规划 1.4.3 安装Hadoop 1.4.3.1 集群配置 1.4.3.1.1 HDFS集群 ...
- STM32标准库中GPIO_ReadInputData与GPIO_ReadInputDataBit的区别
GPIO_ReadInputData读的是GPIOx的整个IDR寄存器的数据,返回一个十六位数,对应IDR寄存器的十六位.反映GPIOx所有端口的电平状态,所以参数只用传入GPIOx. uint16_ ...
- Linux基础守护进程、高级IO、进程间通信
守护进程(Daemon) 前言 Linux常用于服务器,程序通常不运行在前台.运行于前台的进程和终端关联,一旦终端关闭,进程也随之退出.因为守护进程不和终端关联,因此它的标准输出和标准输入也无法工作, ...
- 多线程爬取wallhaven
前言 最近整理自己的项目时,发现之前自己写的爬取wallhaven网站顿时有来的兴趣决定再写一遍来回顾自己以前学的知识 网站地址:"https://wallhaven.cc/" 1 ...
- python的grpc环境安装
环境 ubuntu:bionic的docker image docker run -it ubuntu:bionic python的grpc环境安装 参考grpc官网:https://grpc.io/ ...
- BFS广度优先搜索例题分析
洛谷P1162 填涂颜色 题目描述 由数字 \(0\) 组成的方阵中,有一任意形状闭合圈,闭合圈由数字 \(1\) 构成,围圈时只走上下左右 \(4\) 个方向.现要求把闭合圈内的所有空间都填写成 \ ...