ARP

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

在相同网段的ARP工作原理

如图,在相同网段的时候,PC5会广播ARP请求,然后根据交换机的工作原理,如果划分了VLAN就在相同的VLAN内广播,如果没有划分VLAN隔离就,也就是默认的VLAN 1,在VLAN 1内广播,相当于也是在VLAN内广播。

PC上IP地址配置、MAC地址如图而且不配置网关地址,交换机不做任何配置;

在PC5上ping2.2.2.4,进行抓包

1.可以看到PC5源地址46:27:57:a4:05:06,目的地址为广播的ARP请求包,广播请求Who has 2.2.2.4?

2.PC6收到ARP广播包后把PC5的MAC地址和IP地址记入到ARP缓存表中,然后PC6回应源地址是46:27:59:05:06:06,目的地址是PC5的46:27:57:a4:05:06单播ARP回应;

3.PC5收到ARP单播回应,记入ARP缓存表;然后发送ICMP的ping包

配置地址如图,地址掩码相同,PC的网关是和路由器直连的路由器接口地址

首先,这里有几个问题,路由器有隔离广播域的功能,那么,当PC2广播ARP请求的时候,PC3应该是收不到的,那么PC2是怎么通过IP地址ARP广播请求得到PC3的MAC地址的呢?

回答一下上面的问题:

1.PC2得到的并不是PC3的MAC地址,而是网关R1的g0/0接口的MAC地址;

2.路由器的确隔离广播域;

首先,和上面没有配置网关地址可以看出,PC和路由器都会广播发送ARP的request报文

路由器在他接口的广播域发送广播报文,PC收到并记入到ARP缓存表;

PC广播自己的MAC地址,让网关能收到,路由器收到记入ARP缓存表;

这样PC和他的网关就有对方MAC地址和IP地址对应的缓存表;

接下来我们进行ping测试

可以看到,在PC6

发送不同网段的数据包的时候,ARP的作用是寻找网关的MAC地址,然后通过网关来转发不同网段的数据包;

这里再说明一下代理ARP和正常ARP是怎么样的一个区别:

代理ARP:

PC没有设置网关,在和不同网段通信的时候,直接发送ARP广播包,直接询问目的网段,而这时,最近一个网关路由器充当一个代理的功能,回应自己的MAC地址给他,前提是这个路由器有ARP代理的功能;

正常ARP:

PC设置了网关,PC在访问不同网段的时候,PC就直接会去找网关发送的是同网段的数据包,在发送和接受数据包的时候,要找的IP地址对应的MAC地址都是这个网关的MAC地址;

不管是那个形式的ARP,不同网段都是要查网关的MAC地址,代理ARP不会告诉你是他充当了你的网关,而是直接告诉你,他就算你要找的那个目的地,而正常ARP就在你知道他是网关的前提下,你直接找这个网关来帮你转发数据;

接下来我们在说一下,为什么一定要知道了MAC地址才能通信:

首先从OSI和TCP/IP的网络模型都可以看出,网络层也就是IP地址的所工作的位置,是被MAC地址所工作的位置数据链路层或者网络接口层封装,这是从规定上解释,网络层通信一定要被底层封装,也就是要知道了MAC地址后IP地址才能通信;

那为什么不直接用MAC地址在公网来寻址呢?

MAC地址就像身份证一样,它只唯一的标志一个网络接口,它没有被设计为具有寻址功能,因为MAC地址是固定的;

在局域网,网络规模不是非常大,可以靠MAC地址寻址;

所以我们想想如果一台PC要靠MAC地址在公网寻址,那这台PC最近的路由器就得知道这个数据帧的目的MAC地址从那个接口转发,但是MAC不想IP地址一样,有掩码,有对应路由协议学习,那你如果要通过MAC地址转发, 你就得知道所有网络的MAC,这样才能知道转发路径,这是不可能的,这种想法也是极端的,设计MAC地址当初就不是为了寻址,而是为了身份唯一;

走过路过,点个三连

一起学习,一起进步

技术交流:QQ---1740602259

arp 不同网段 相同vlan_ARP工作原理,相同网段和不同网段通信过程,代理ARP和ARP的区别,MAC地址为什么不能用来寻址...相关推荐

  1. ARP协议在同网段及跨网段下的工作原理

    一.ARP在同个网段下的工作原理 首先,每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系.当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP ...

  2. gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_ARP协议在同网段及跨网段下的工作原理...

    前言:ARP协议是在链路层通讯中,已知目标IP地址,但是,仅有IP 地址是不够的,因为IP数据报必须封装成帧才能通过数据链路进行发送,而数据帧必须要有目的MAC地址,每一个网络设备在数据封装前都需要获 ...

  3. dhcp只能分配与路由器相同网段么_dhcp工作原理

    图文并茂的看一下dhcp的工作过程 这是一台华为路由器,加两台PC机,路由器来充当PC的DHCP服务器 既然充当服务器,我们在路由器上,开启dhcp服务,并建立两个地址池 然后,在接口上,启用dhcp ...

  4. SpringMVC→拦截器、SpringMVC拦截器实现、多个拦截器工作原理、拦截器使用场景、拦截器Interceptor与过滤器Filter区别

    拦截器 拦截器实现 多个拦截器工作原理 拦截器使用场景 请求编码设置及请求登录Session校验 使用时间段设置 拦截器Interceptor与过滤器Filter区别

  5. 网络基础2(分层模型,通信过程,以太网,ARP协议格式和具体功能详解)

    分层模型 OSI七层模型 OSI模型 1 物理层:主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1.0转化为电流强弱来进行传输,到达 ...

  6. View工作原理(四)view的layout过程

    刚过完自己的本命年,新的一年希望自己有个新的开始,祝自己在新的一年里一帆风顺,同时也祝广大的朋友们新年新气象,收获多多! 一.android中view的layout过程总概 Layout过程其实就是父 ...

  7. View工作原理(三)视图大小计算过程(measure过程)

    一.android中view的measure过程总概 视图大小计算的过程是从根视图measure()方法开始,接着该方法会调用根视图的onMeasure()方法,onMeasure()方法会对所包含的 ...

  8. CA认证的原理和流程以及https完整通信过程

    故事引入--什么是CA证书 看过一些博客,写的比较形象具体. ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 B 公司的所有人都不认识他,他咋办 ...

  9. ARP工作原理以及ARP欺骗、中间人攻击

    目录 什么是ARP?ARP的作用是什么? ARP的工作原理? ARP欺骗? ARP欺骗.中间人攻击实验? 什么是ARP?ARP的作用是什么? ARP即地址解析协议,属于网络层,作用是根据已知的IP地址 ...

最新文章

  1. DIV+CSS网页布局常用的一些基础知识
  2. 70.Climbing Stairs
  3. 20179214《网络攻防实践》第二周学习总结
  4. rcnn spp_net hcp
  5. mybatis + spring boot + yml 配置,告别XML
  6. java学习笔记(五)集合
  7. NA/NP/IE最好的模拟器GNS3 part2
  8. oracle11g win10版本,win10系统安装的oracle11g和cloud6.2 创建数据中心报错
  9. Java_GUI创建单机版QQ聊天小程序并实现简单的小功能(附所有源码)
  10. 【知识图谱系列】动态时序知识图谱EvolveGCN
  11. Talk预告 | 北京大学人工智能研究院杨耀东:一个合作博弈的通用求解框架
  12. Macbook怎么开启三指移动 ForceTouch TrackPad开启三指移动方法
  13. 永磁同步电机转速电流双闭环PI+MTPA+弱磁控制Simulink仿真模型
  14. CISSP第5/8知识点错题集
  15. 不考研也有出路?教育部重要通知,事关第二学士学位!
  16. 视频网站的植入性广告
  17. 环洋市场调研-2021年全球颜料红2行业调研及趋势分析报告
  18. bash: cat/etc/group: 没有那个文件或目录
  19. Ubuntu12.04如何修改窗口背景色为眼睛保护色来保护眼睛,强力推荐!!
  20. 在鼠标点击特效上加上鼠标移动特效(一)

热门文章

  1. 保存Delphi中的环境设置中的library path
  2. ARM的存储器映射与存储器重映射【转载】2009-12-14 10:29最近在用LPC2148,看到了一篇文章,感觉很有帮助,就转了过来。
  3. __declspec
  4. 利用ajax.dll进行Ajax的开发2007-07-15 15:38
  5. Grub4Dos 安装Ubuntu 收藏
  6. leetCode刷题--两数相加
  7. 实验五 编写、调试具有多个段的程序
  8. python向sqlite数据库中插入数据(变量)
  9. 队列的C语言实现(通过内核链表)
  10. Spring TX源码分析