| |
|
开发:
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 协议工作原理(同网段及跨网段) |
目录 一、ARP简介ARP全称是“Address Resolution Protocol”(地址解析协议),ARP作用于以太网的环境之中,以太网环境之中数据的传输依赖的是MAC地址并不是我们所熟悉的IP地址,每个电脑都有一个IP地址记以及一个MAC地址(全球唯一),二者缺一不可,将我们所知道熟悉的IP地址转换为MAC地址就是ARO协议的工作 二、ARP的工作原理?1.Host1发送数据前设备会先查找自己的ARP缓存表,如果有直接封装到帧里进行发送,如ARP缓存表没有对应IP地址的MAC信息,则会通过ARP进行获取 2.Host1会发送ARP Request报文来请求获取Host2的MAC地址(因为帧内没有目的MAC地址是不可以进行传输的,所以ARP报文内的目的MAC地址为全F) 3.因为ARP Request目的MAC地址为?FF-FF-FF-FF-FF-FF(广播数据帧),所以交换机收到后会直接对该帧进行泛洪(广播)操作,并且学习该IP的MAC地址以及端口号到交换机自己的MAC缓存表 4.所有主机都接受到该ARP Request报文后,都会检查该帧的目的IP地址与自身的IP地址是否匹配,不匹配就直接丢弃,Host发现与自己IP地址匹配,就会先把发送端的IP与MAC地址信息记录到自己的ARP缓存表之中,然后Host2就会发送ARP Reply报文(因为刚才进行了学习所以知道Host1的MAC地址,所以ARP Reply是单播数据帧)来进行响应 5.交换机收到单播数据帧以后,会对该帧进行转发操作,并且学习Host2的MAC地址和端口号到自己的MAC缓存表 6.Host1收到Host2的ARP Reply报文后会检查目的IP与自己IP地址字段是否相同,如果匹配就将回应报文的源IP地址与MAC地址学习到自己的ARP缓存表之中,然后就可以传输信息进行通信 总结 -----Host1查找自身缓存表 -----发送广播ARP Request报文 -----交换机对该广播帧直接执行泛洪操作并且进行学习 -----Host2查询到是在问询自己,先进行学习再进行回复 -----交换机进行转发该单播数据帧,并且学习MAC地址信息和端口号 -----Host1收到回复后进行学习到ARP缓存表中 三、ARP协议在同网段工作原理?在同网段也就是在同一个局域网之中同一个广播域之中,以下统称为局域网,在局域网中,网络传输的实际是“帧”,帧里面有很重要的两个构成是源MAC地址与目的MAC地址,所以两台PC间想要通信就必须获取目的PC的MAC地址,但是我们一般都只是知道目的PC的IP地址(简单好记嘛),如何通过IP地址找到对应的MAC地址呢,这时候就是发挥ARP(地址解析协议)作用的时候,ARP协议可以通过目标设备的IP地址查询目标设备的MAC地址,然后对数据进行转发,以保证通信的顺利进行 -----Host1查找自身缓存表,如没有发送广播ARP Request报文 -----交换机对该广播帧直接执行泛洪操作并且进行学习 -----Host2查询到是在问询自己,先进行学习再进行回复 -----交换机进行转发该单播数据帧,并且学习MAC地址信息和端口号 -----Host1收到回复后进行学习到ARP缓存表中 -----Host1将Host2的MAC地址封装到目的MAC地址,然后进行传输信息 -----交换机收到该单播信息帧后,将该帧解封装到第二层数据链路层(交换机是二层设备)获取目的MAC地址,在查询自身MAC缓存表进行转发操作 -----Host2收到该帧后进行解封装获取信息内容 ?四、ARP协议在不同网段工作原理目标:pc1(192.168.1.1)向pc3(192.168.2.1)跨网段通信,以下统称pc1为主机1? pc2为主机3 -----1. 主机1数据封装IP后继续向下封装,但是发现没有主机2的MAC地址,于是查询ARP,ARP缓存表里没有该IP的MAC地址信息,但是发现主机2IP不是本网段IP需要跨网段传输(跨网段传输借助IP),跨网段相当于要出本局域网的这个大门,所以需要找网关,查询ARP表,发现没有网关MAC地址信息 -----2.主机1先把要发送的信息放入缓存中,然后在本局域网内发送ARP Request报文请求网关的MAC地址 -----3.LSW1对该帧源mac和接口信息进行学习,然后对该广播报文进行泛洪操作 -----4.AR1收到广播数据包后,先将主机1的MAC信息学习到自己的MAC地址表中,然后对比该报文的目的IP是否为自己,AR1发现请求的正是自己的MAC地址,于是AR1回复一个ARP Reply报文(封装自己的IP地址为源IP地址,自己的MAC地址为源MAC地址),内容大概是“我是网关,我的MAC地址是xxxxxxxxxxxxxxxxxx” -----5.LSW1进行学习网关MAC与端口信息,并进行转发 -----6.主机1收到AR1的回复报文后,将缓存的数据拿出,目的IP为主机3IP目的MAC为本网段网关的MAC地址(跨网段通信,目的MAC地址统一写本网段内网关的MAC地址,意思是帧交给网关就完事了,由网关进行下一步转发,就没主机的事了,目的MAC写网关即可),重新封装好后进行重新发送 -----7.在同网段内靠MAC地址进行传输,所以AR会收到这个数据包,但是AR发现这个数据包的目的IP地址并不是自己,所以就需要进行路由(查询一条前往的道路),从路由表查找通向192.168.2.0网段192.168.2.1的地址,AR准备从对应的网关(接口)进行发送,然乎查询MAC地址表,如果有就进行转发,没有的话就发送ARP Request报文进行问询主机3的地址 -----8.LSW2学习MAC地址和端口信息并泛洪该广播报文 -----9.主机3学习核对并回复一个ARP Reply报文 -----10.LSW2学习并转发该单播回复报文 -----11.AR收到回复后i,先学习然后将该数据包源IP与源MAC地址信息封装成AR自己的,目的IP以及目的MAC地址信息封装为主机3的相关信息,加上FCS,封装好后进行发送 -----12.LSW2查询并转发 -----13,主机3收到数据包进行解封装,看到数据载荷,发送过程完成 -----14,主机3收到信息后进行回复,不在同网段就回复给本网段网关,通过LSW2转发给AR1(不需要学习,MAC地址表有一定有效时间) -----15,网关(AR)收到回复后将数据包里的目的MAC换成主机1的MAC,再通过LSW1转发到主机1的手中 注:有发送有回复,才是一个完整的传输过程,二者缺一不可
本文借鉴于(只是借鉴思想,文字全部手敲,不存在Ctrl+c/v)ARP协议在同网段及跨网段下的工作原理_SoldierJazz的专栏-CSDN博客_arp跨网段请求的过程 |
|
网络协议 最新文章 |
使用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 11:42:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |