IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 二十七、地址解析协议(三) -> 正文阅读

[网络协议]二十七、地址解析协议(三)

本节内容是我们ARP协议的最后一节内容,主要介绍ARP代理的应用,以及windows系统中CMD环境下的一些ARP相关命令。


?

ARP代理

前面我们所讲述的ARP协议的解析过程,是针对于两台主机都处在同一个物理网络相同的网段中的,这是一个很简单的情境。那么,如果两台主机不在同一个物理网络,比如主机A的IP地址是192.168.1.2,主机B的IP地址是172.16.1.2,按照标准IP地址分类和子网掩码,这显然两台主机不在同一个物理网络中,但是我们说两台主机互相通信最终要靠MAC地址,那么处于不同网络中的两台主机如何利用ARP获取到对方的MAC地址,这就要靠ARP代理

首先,我们要知道,两个不同的物理网络之间的连通,要通过路由器把它们连接起来,路由器一般会有两个接口,分别承接着两个网络,路由器接口的IP地址,我们称之为“网关地址”处于一个网络中的主机要想把数据发送给其它网络的主机,首先要经过这个“网关”(也就是路由器上承接着此网络的一个接口),才能到达别的网络,把数据交付到目标主机

现在,我们再来说一下路由器的特性,路由器是工作在网络层的设备,比普通的交换机还要高一层。前面讲了工作在物理层和链路层的设备,主要代表是集线器和交换机,集线器不能隔离广播域,不能隔离冲突域,交换机隔离冲突域但不能隔离广播域,现在路由器,网络层的设备,它是既隔离冲突域又隔离广播域的,要记住这一特性,非常重要。

现在问题就来了,我们知道如果主机A要和主机B通信,而又不知道主机B的MAC地址时,会广播发出ARP请求来期望得到主机B的回应。但是如果现在两台主机处于不同的网络中,两个网络之间用路由器互联,这时候,主机A发出的ARP请求是广播发出的,而由于路由器的隔离广播域的特点,所以路由器根本不会把这个广播包转发到主机B所在的那个网络中

为了解决这个问题,就要在路由器的接口上开启ARP代理。所谓“代理”就是代替主角去做一些工作,说到底也就是“让路由器来充当代理人的角色,当路由器收到主机A发出的ARP请求广播包以后,路由器先扮演主机B来给主机A回复一个ARP应答,然后由路由器再去访问主机B”。

在这个过程中,其实主机A会一直以为路由器就是主机B,我们举例来说:

设主机A的IP地址是192.168.1.2,MAC地址是01-02-03-04-05-06;

设主机B的IP地址是172.16.1.2,MAC地址是11-22-33-44-55-66;

设路由器和主机A相连的接口的IP地址是192.168.1.1,和主机B相连的接口的IP地址是172.16.1.1,路由器的MAC地址是AA-BB-CC-DD-EE-FF。

当主机A发出一个想要知道主机B的MAC地址的ARP请求之后,由于它们不在同一个网络中,所以主机B不会直接收到,而路由器同时承接着这两个网络,所以路由器会收到这个ARP的请求,这时候路由器就开始运用ARP代理的功能,把自己的MAC地址先告诉主机A,然后自己再发出一个新的ARP请求去往主机B,主机B就会把自己的MAC地址告诉路由器,这样一来,路由器就成了一个中间人,主机A和主机B都互相以为它们是直接通信的,而不知道其中隔着一个路由器

所以主机A的ARP缓存表中就会有“172.16.1.2 对应于 AA-BB-CC-DD-EE-FF”,

主机B的ARP缓存表中就会有“192.168.1.2对应于AA-BB-CC-DD-EE-FF”,

路由器的ARP缓存表中就会有“192.168.1.2对应于01-02-03-04-05-06、172.16.1.2对应于11-22-33-44-55-66”,用一句打趣的话来讲,就是:其中的苦,只有路由器默默承受着。

它们的逻辑关系如下图:


ARP命令

最后,我们再介绍几种windows系统下常用的ARP命令的选项:

1、arp -a(或 arp -g):这是最常用的一个命令,显示出本机的ARP缓存表。

2、arp -d:此命令是用来清空目前的ARP缓存,一般用在做实验观察效果时使用,平时不要轻易使用。

3、arp -s:此命令是用来绑定一个IP地址与MAC的对应。普通的ARP缓存记录都是动态的,如果在一定时间限制之内没有和特定某个主机通信,就会发生“ARP超时”,缓存表就会自动删除这条记录。而如果用arp -s?命令做了绑定,这条记录就不会超时被删除,

比如arp -s 192.168.1.1 AA-BB-CC-DD-EE-FF,就是把这个IP地址与MAC地址“绑”在一起,不会有时间限制,即使是电脑刚刚启动,缓存表也会自动加载出这条记录。如要解除绑定,就用arp -d 192.168.1.1即可。

4、arp -v:用来显示更详细更完整的arp缓存表,环回接口上的arp表项也会被显示出来,平时此命令很少用到。


在ARP协议的最后一节内容,我们学习了ARP代理和相关的命令。下节内容,我们将学习子网掩码、子网的划分。

参考资料:W.Richard Stevevs《TCP/IP详解/卷一》

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:30:30  更:2021-09-12 13:32:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/27 1:38:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码