| |
|
开发:
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地址解析协议 |
网际层的 IP 协议及配套协议网络层的功能是为数据包选择路径,转发数据包,这主要是IP协议。 ARP协议为IP协议提供服务,ARP协议在网络层但是在靠下方。 ICMP当网络不通的时候,比如数据包转发到路由器,路由器不知道怎么转了,那么这个路由器要返回查差错报告,告诉发送端怎么回事。也可以测试网络通不通,发送一个ICMP请求,对面返回一个ICMP响应。 ICMP是依赖于IP协议,ICMP要封装在ip数据包里面 ? ? 地址解析协议 ARP 的作用已经知道了一个机器(主机或路由器)的IP地址,如何找出其相应的硬件地址? 地址解析协议 ARP 就是用来解决这样的问题的。 PC1和PC4通信,可以看到ARP rquest请求转发到了另外一个交换机所有口,在PC4上面抓包可以看到PC4 ARP reply响应了。广播到交换机所有口,其次只有对应的PC4会响应,其他的机器不会响应。 ?PC5收到之后并不响应ARP请求?
?最后观察一些ARP请求的源IP MAC和目标IP MAC变化 ? 地址解析协议 ARP?通信时使用了两个地址:
在以太网当中,计算机网卡都有mac地址,在通信的时候网络层写上IP地址,在数据链路层,还需要写上mac地址,但是计算机如何知道目标计算机的mac地址呢? 这个时候就需要ARP协议了。它的作用就是将本网段当中的Ip地址解析出它的mac地址来。 解析就发广播问IP对应的IP地址是什么,一广播,那么都收到了。 ARP协议只在以太网当中使用,在本网段计算机通信的时候直接ARP协议发广播解析目标IP的mac地址。 如果和跨网段计算机通信,那么需要ARP解析网关的mac地址,然后使用网关的mac地址来封装。 当这个路由器D和计算机发数据的时候,也需要使用ARP协议解析到目标主机MAC地址来封装。 路由器和路由器之间是点到点链路用的是ppp协议,ppp协议没有mac地址这一说法,所以ARP协议只在计算机连接交换机网络当中可以使用的到,在ppp链路上使用不到。 IP协议在通信之前,第一件事情是解析mac地址,先用到ARP协议,所以ARP协议为IP协议提供服务。 计算机发广播到所有计算机 收到广播之后 可以看到ARP协议目标MAC地址为全f。 ARP的字段也可以看到? 地址解析协议 ARP 要点不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。 每一个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。 当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
ARP请求分组:包含发送方硬件地址 / 发送方 IP 地址 / 目标方硬件地址(未知时填ff:ff.......?) / 目标方 IP 地址。 本地广播 ARP 请求(路由器不转发ARP请求)。 ARP 响应分组:包含发送方硬件地址 / 发送方 IP地址 / 目标方硬件地址 / 目标方 IP 地址。 ARP 分组封装在物理网络的帧中传输? ? ? ARP 高速缓存的作用存放最近获得的 IP 地址到 MAC 地址的绑定,以减少 ARP 广播的数量。 为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。 从 IP 地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。 只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。 ? ? 应当注意的问题?ARP 用于解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。 所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。目标方硬件地址(未知时填ff:ff.......?) ? ? ? 使用 ARP 的四种典型情况
ARP欺骗H1问网关的MAC地址的时候,其实H2计算机也受到了,H2告诉其网关地址是M2,这样就将缓存里面信息写成M2了,以后通信的时候数据包就给了M2了,然后M2再给网关,那么H2就可以捕获H1上网的流量了。这叫ARP欺骗。 还有一种就是给了错误的mac地址,那么就转不到路由器上面,这样就不能上网了。有些病毒是专门做这种事情的。 |
|
网络协议 最新文章 |
使用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 7:27:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |