【计算机网络】ARP协议的定义、实现过程 | ARP代理 | 免费ARP

news/2025/3/16 5:04:29/

创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
更多计算机网络知识专栏:计算机网络🔥
给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

在这里插入图片描述


目录

  • 一、ARP协议的定义
  • 二、ARP协议的实现过程
  • 三、ARP代理
  • 四、免费ARP

一、ARP协议的定义

ARP协议(地址解析协议)是根据IP获取MAC地址的一个TCP/IP协议

在双端设备在通讯收发数据之前,如果不知道对端的MAC地址,就可以通过ARP协议来获取

ARP协议的作用是在IP地址MAC地址之间建立映射关系,方便设备进行通信

ARP协议处于OSI七层中的数据链路层(TCP/IP中的网络层),上层协议是IP协议

ARP报文格式:

在这里插入图片描述

二、ARP协议的实现过程

当一个设备需要与另一个设备通信时,需要知道对方的物理地址。

它首先在自己的ARP缓存中查找目标IP地址对应的MAC地址,如果找到就直接通信

如果没找到,设备就会发送一个ARP Request的广播给本地网络中的所有设备,所有设备都会收到这个广播,ARP数据包中的目的MAC填0,收到这个广播的设备都会看自己的IP是不是这个广播的目IP,如果不是就会将这个包丢弃,如果发现自己的IP地址与请求中的IP地址相同,它就会回发一个ARP Reply的单播,将自己的MAC地址作为响应发送回去。然后就可以开始通信,并将这个MAC地址存入自己的ARP缓存中,以便下次的通信。

ARP Request:源IP、源MAC、目的IP、0(目的MAC) = => ARP Reply:源IP、源MAC、目的IP、目的MAC(已获取)

在这里插入图片描述

通过设备2返回ARP Reply 就获取到了设备2的MAC地址

三、ARP代理

当网络中的两个设备处于不同的子网上时,它们无法直接进行通信,需要通过路由器或者交换机进行转发

由于ARP无法穿过路由器或交换机,ARP请求和响应将不能直接传递,此时可以部署ARP代理解决:

当发送端广播ARP请求时,本地网络上没有回应(因为目的IP在外网),此时路由器将会回应请求,则发送源认为路由器就是目的主机,将报文全部转发给它,ARP代理(路由器)会接收到这个请求并将它转发到所在的子网上,然后接收到响应的ARP响应,再将响应转发回来,该路由器就被称为ARP代理

ARP代理可以让网络中处于不同子网上的设备进行访问

四、免费ARP

在主机开机配置时,会发送一个目的IP地址为自己IP地址的ARP请求报文,该报文称为免费ARP。

作用:

  • 1.通知本机MAC地址:在局域网内告知其他设备,这个IP地址对应的MAC地址是多少。当其他设备需要与该主机通信时,就可以快速地将数据包发送到正确的MAC地址上,使得进行快速通信
  • 2.配置本机IP:让主机确认本地网络上是否有与自己IP地址相同的主机,若有,则会返回一个错误报文。

(免费ARP以及其他ARP攻击方式会使网络攻击者对网络安全造成威胁)

免费ARP的 源MAC:本机MAC 目的MAC:0


在这里插入图片描述

大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●)

http://www.ppmy.cn/news/1106356.html

相关文章

MC我的世界大型生存服务器配置推荐首选I9-13900K高频服务器

当我们想要自建我的世界MC服务器&#xff0c;不管是面板服还是大型生存服务器&#xff0c;目前服务器配置顶配选择都是I9-13900K。自2022年9月28日发布至今&#xff0c;i9-13900K在游戏服务器CPU中的地位一直固若金汤。 为什么我的世界、Steam游戏开发者更偏爱I9-12900K和I9-1…

重拾vue

Vue 是一个用于 构建用户界面 的 渐进式 框架 1. 构建用户界面&#xff1a;基于 数据 动态 渲染 页面 2. 渐进式&#xff1a;循序渐进的学习 3. 框架&#xff1a;一套完整的项目解决方案&#xff0c;提升开发效率↑ (理解记忆规则) 规则 → 官网 插值表达式 利用表达式进…

关于Java的类加载机制

1、概述 类会在运行期间第一次使用时&#xff0c;被类加载器动态加载至JVM。JVM不会一次性加载所有类。因为如果一次性加载&#xff0c;会占用很多的内存。 2、类的生命周期 类的生命周期包括以下 7 个阶段&#xff1a; 加载&#xff08;Loading&#xff09;验证&#xff08;…

孙哥Spring源码第22集

第22集 refresh-registerBeanPostPrcoessor 【视频来源于&#xff1a;B站up主孙帅suns Spring源码视频】【微信号&#xff1a;suns45】 1、registerBeanPostPrcoessor的作用 实例化【放入singleObjects&#xff0c;放入beanPostProcessors】&#xff1a; AutowiredAnnotati…

springboot整合redis-sentinel哨兵模式集群(二)

定义Redis操作工具类 package com.luxifa.util; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component…

2023最新计算机信息管理毕设选题分享

文章目录 0 前言1 java web 管理系统 毕设选题2 java web 平台/业务系统 毕设选题3 游戏设计、动画设计类 毕设选题 (适合数媒的同学)4 算法开发5 数据挖掘 毕设选题6 大数据处理、云计算、区块链 毕设选题7 网络安全 毕设选题8 通信类/网络工程 毕设选题9 嵌入式 毕设选题10 开…

Python文件操作(02):读文件

一、读文本文件 打开文件读文件内容关闭文件 1、在读取文件内容后进行解码操作 """ 1. 打开文件- 路径&#xff1a;相对路径&#xff1a;当前项目&#xff08;读文件.py&#xff09;所在的目录下查找需要读取的文件绝对路径&#xff1a;文件--右键--Copy Pat…

数据结构题型1--头插法建立单链表

下面是可运行的代码 #include <iostream> //引入头文件 using namespace std;typedef int Elemtype;#define Maxsize 100 #define ERROR 0 #define OK 1typedef struct LNode {Elemtype data;//数据域struct LNode* next;//指针域 }LNode,* LinkList;bool InitList(…