| |
|
开发:
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地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 0:55:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |