地址解析协议ARP与逆地址解析协议RARP
IP地址是用来通信的,但是和硬件地址是有区别的。物理地址是数据链路层和物理层使用的地址,IP地址是网络层及以上各层使用的地址。
发送数据时,数据从高层向下层传输,使用IP地址的IP数据报交给下层的数据链路层,就会被封装为MAC帧。IP数据报的首部存放着IP地址,包括源地址和目的地址。MAC帧的首部存放着物理地址,在数据链路层看不到数据报的IP地址。
在通信过程中,不管网络层使用什么协议,在实际网络的链路上传输数据必须使用硬件地址。
IP地址有32位,MAC地址有48位,它们之间不存在简单的映射关系,在网络中,经常会出现加入新主机,撤走主机,以及更换网卡,这些都会使主机的硬件地址发生改变,在主机中存放IP-MAC的映射表,应该要经常动态更新,实现起来很繁琐。
我们如何简便地实现IP地址到物理地址的转换呢,地址解析协议ARP很好地解决了上述问题。
首先,每个主机上都应该设有一个ARP高速缓存,存放着所在的局域网上的各主机IP地址和其物理地址的映射表。那么这些映射表是如何来的呢?
当主机A想向本局域网上的主机B发送IP数据报,那么先在ARP高速缓存中查找主机B的IP地址,如果有,就对应出主机B的硬件地址,将地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。
如果在ARP高速缓存中没有找到主机B的IP地址,有可能是主机B刚刚入网,或者主机A刚刚上电,高速缓存是空的。这个时候主机A就自动运行ARP,然后按照一定步骤来获取主机B的物理地址。
(1)ARP进程在本局域网上广播发送一个ARP分组请求。主要内容包括自己的物理地址和IP地址,以及主机B的IP地址。
(2)本局域网上的所有主机上运行的ARP进程都会收到这个ARP分组请求
(3)主机B在分组请求中看到自己的IP地址后,就向A发送ARP分组响应,写入自己的物理地址。并将A的IP地址和物理地址的映射写入自己的ARP缓存中,以便自己向主机A发送数据。其余所有的主机虽然收到但是不理睬A的这个分组请求。另外这个分组响应是普通的单播,即从一个源地址发送到一个目的地址。
(4)主机A收到B的分组响应后,将主机B的IP地址和MAC地址的映射写入自己的ARP高速缓存中
注意:ARP高速缓存中的映射表是有生存时间的,一般设为10-20分钟。超过生存时间就会被删除。那是因为,会出现其中一个主机的网卡坏了,立即更新了一块,这样该主机的硬件地址就变了,如果映射表没变的话,已经存储的其他主机还按照原来的物理地址来寻找它,自然就找不到了。有了生存时间,如果在高速缓存中找不到,再次广播就好了。
逆地址协议RARP是使只知道自己硬件地址的主机能够知道自己的IP地址。一般是无盘工作站,它都是只要运行ROM中的文件传送代码,就能用下行装载的方法从局域网的其他主机上得到所需的操作系统和TCP/IP通信软件,但这些软件中没有IP地址。要通过运行ROM中的RARP来获得IP地址
为了能使RARP工作,在局域网上至少要有一个主机充当RARP服务器,无盘工作站先向局域网发生RARP分组请求,并在此分组中给出自己的硬件地址。RARP服务器上有一个事先做好的从无盘工作站的硬件地址到IP地址的映射表,当收到RARP分组请求后,RARP服务器就从这映射表查出该无盘工作站的IP地址。然后写入RARP分组响应,发回给无盘工作站。无盘工作站用此方法获得自己的IP地址。
地址解析协议ARP与逆地址解析协议RARP的更多相关文章
- 《TCP/IP详解卷1:协议》第5章 RARP:逆地址解析协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- (5)RARP:逆地址解析协议
一.简介 无盘系统的RARP实现过程是从接口卡上读取唯一的硬件地址,然后发送一份RARP请求(一帧在网络上广播的数据),请求某个主机响应该无盘系统的IP地址(在RARP应答中).感觉这个过程和上一章中 ...
- 《TCP/IP详解卷1:协议》——第5章 RARP:逆地址解析协议(转载)
1.引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址.但是无盘机,如X终端或无盘工作站,则需要采用其他方法来获得IP地址. 网络上的每个系统都具有唯一的硬件地址,它是由网络接口生 ...
- TCP/IP具体解释学习笔记——地址解析协议ARP
一 概述 我们知道,IP协议是用来在不同的物理网络之间数据传输的.要在不同的网络之间数据传输,至少须要将IP协议所用的地址转换成特定网络所使用的物理地址. 一般来说.就是将IPv4地址转换为mac地址 ...
- 地址解析协议(ARP) 分析
什么是ARP协议 ARP(A ddress R esolution P rotocol)- 地址解析协议 ,用于将IP地址解析为MAC地址.复杂来说,ARP用于32位IPv4地址和以太网的48位MAC ...
- 【RL-TCPnet网络教程】第23章 RL-TCPnet之地址解析协议ARP
第23章 RL-TCPnet之地址解析协议ARP 本章节为大家讲解ARP(Address Resolution Protocol,地址解析协议),通过前面章节对TCP和UDP的学习,需要大家 ...
- <TCP/IP>地址解析协议ARP
从前两章中有学到,网络层地址和链路层地址是由不同的,一个是物理地址,一个是IP地址.物理地址固定存储在网卡中,不会改变,而IP地址是可以网络管理员和用户自己分配的 在传统的IPv4网络中,一台A主机要 ...
- TCP/IP的排头兵――地址解析协议(ARP) (转载)
转自:http://blog.csdn.net/wangxg_7520/article/details/2488442 一.引言 古人行军打仗,都要有一个可以引领队伍前进方向的排头兵,在TCP/IP网 ...
- 2016.7.8 计算机网络复习要点第四章之地址解析协议ARP
1.地址解析协议ARP:知道一个机器的IP地址,需要找到其相应的硬件地址:ARP协议的用途是为了从网络层使用的IP地址解析出在链路层使用的硬件地址: 2.由于是IP协议使用了ARP协议,因此通常就把A ...
随机推荐
- Linux操作系统相关资料
玩转Linux操作系统 操作系统发展史 只有硬件没有软件的计算机系统被称之为"裸机",我们很难用"裸机"来完成计算机日常的工作(如存储和运算),所以必须用特定的 ...
- linux自定义位置安装tomcat8.5
1 下载tomcat安装文件 下载地址:https://tomcat.apache.org/download-80.cgi 2 解压文件 tar -zxvf apache-tomcat-8.5.56 ...
- ETCD数据迁移
ETCD数据迁移 本文阅读对象为想要将Rainbond平台rbd-etcd切换至外部etcd的相关人员. 在k8s master节点创建secret 本文中将要切换的ETCD为根据Rainbond官方 ...
- 【Android初级】利用startActivityForResult返回数据到前一个Activity(附源码+解析)
在Android里面,从一个Activity跳转到另一个Activity.再返回,前一个Activity默认是能够保存数据和状态的.但这次我想通过利用startActivityForResult达到相 ...
- Zerotier在windows下实现内网远程桌面
Zerotier实现内网远程桌面 使用背景 实验室设备条件过于恶劣 向日葵在有些场景下会莫名崩溃,或者画面不动. Teamviewer免费版在之前用的时候出现过疑似商业行为被断连,github上寻解决 ...
- Convert a string into an ArrayBuffer
https://github.com/mdn/dom-examples/blob/master/web-crypto/import-key/spki.js How to convert ArrayBu ...
- BigDecimal add方法问题:调用add后,求和结果没变
import java.math.BigDecimal; public class DecimalAdd { public static void main(String[] args) { BigD ...
- 长连接开发踩坑之netty OOM问题排查实践
https://mp.weixin.qq.com/s/jbXs7spUCbseMX-Vf43lPw 原创: 林健 51NB技术 2018-07-13
- C++ Primer Plus读书笔记(二)处理数据
1.格式化输出: 和C语言不太一样,C++格式化输出进制格式如下: 1 int a = 42; 2 int b = 42; 3 int c = 42; 4 5 cout << a < ...
- TRUNK与VTP
TRUNK协议: 交换机之间VLAN通信: 同一个VLAN可以跨越多个交换机 主干功能支持多个VLAN的数据 Trunk(主干) VLAN 中交换机之间的链路:用来承载多个VLAN的数据流. Trun ...