以太网常用协议——ARP协议

news2024/11/15 21:44:10

文章目录

    • 一、 ARP协议与MAC层
      • 1.TCP/IP协议
      • 2. MAC地址
      • 3. ARP映射
      • 4. ARP请求和ARP应答
    • 二、以太网帧格式
    • 三、ARP协议
      • 1. 以太网ARP通信测试:

以太网使用的协议很多,常用的有ARP、UDP等。
再介绍具体协议之前需要先知道一些基本的概念:

一、 ARP协议与MAC层

Q:ARP协议是是什么?它和MAC层的关系是什么。
A:
1.ARP (Address Resolution Protocol)即地址解析协议,是根据 IP 地址(逻辑地址)获取 MAC 地址的一种 TCP/IP 协议
2.在以太网中,一个主机和另一个主机进行通信,必须要知道目的主机的 MAC 地址(物理地址),而目的 MAC 地址的获取由 ARP 协议完成。
3.在以太网通信中,数据是以“帧”的格式进行传输的,帧格式里面包含目的主机的MAC 地址。因此在通信前需要先获得目的 MAC 地址,而 ARP 协议正是实现了此功能
4.在获取到目的 MAC地址之后,将目的MAC地址更新至ARP缓存表中,称为ARP映射。下次通信时,可以直接从 ARP 缓存表中获取,而不用重新通过 ARP 获取 MAC 地址。但一般 ARP缓存表会有过期时间,过期后需要重新通过 ARP 协议进行获取。

接下来介绍一下上面这段话中的一些专有名词

1.TCP/IP协议

TCP/IP 是网络使用中最基本的通信协议,虽然从名字看上去 TCP/IP 包括两个协议,TCP 和 IP,但 TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:TCP、IP、ARP、UDP 等。
而 TCP 协议和 IP协议是保证数据完整传输的两个重要的协议,因此 TCP/IP 协议用来表示 Internet 协议簇。
TCP/IP协议不仅可以运行在以太网上,也可以运行在FDDI(光纤分布式数据接口)和WLAN(无线局域网)上。反过来,以太网的高层协议不仅可以是TCP/IP协议,也可以是IPX协议(互联网分组交换协议)等,只不过以太网+TCP/IP 成为 IT 行业中应用最普遍的技术。

2. MAC地址

MAC地址在网络中表示网卡的 ID,每个网卡有且仅有一个 MAC 地址。
格式:MAC地址通常由12个十六进制字符组成,分为6对,用冒号或连字符分隔,例如00:1A:2B:3C:4D:5E。

3. ARP映射

将 IP 地址和 MAC 地址映射起来,分为静态映射动态映射
如下图ARP映射表,左边是IP地址,右边是MAC地址,实现映射。
在这里插入图片描述

静态映射: 指手动创建一张 ARP 表,把 IP 地址和 MAC 地址关联起来。手动绑定之后,源主机在通信 之前,就可以直接从 ARP 表中直接找到 IP 地址对应的 MAC 地址,但这样做有一定的局限性,因为 MAC地址可能会变化,比如:
1) 机器可能更换 NIC(网络适配器),结果变成一个新的物理地址;
2)在某些局域网中,每当计算机加电时,他的物理地址都要改变一次。
3) 移动电脑可以从一个物理网络转移到另一个物理网络,这样会改变物理地址。
要避免这些问题出现,必须定期维护更新ARP表,此类比较麻烦而且会影响网络性能。

动态映射:指使用协议来获取相对应的物理地址,之所以用动态这个词是因为这个过程是自动完成的,一般应用程序的用户或系统管理员不必关心。已经设计出用于实现动态映射协议的有ARPRARP(逆地址解析协议)两种,如下图所示
ARP :把 IP 地址映射为物理地址
RARP :把物理地址映射为 IP 地址。(这里不重点讲述)在这里插入图片描述

4. ARP请求和ARP应答

ARP请求:源主机发起查询目的 MAC 地址的报文称为 ARP 请求
ARP应答:目的主机响应源主机并发送包含本地 MAC 地址的报文称为 ARP 应答
在这里插入图片描述
由于发送的目的 MAC 地址为广播地址,所以此时局域网中的所有主机都会进行接收并处理这个 ARP 请求报文,然后进行验证,查看接收方的 IP 地址是不是自己的地址。是则返回 ARP 应答报文,不是则不响应。

在这里插入图片描述
主机 A 将收到的 ARP 应答报文中的目的 MAC 地址解析出来,将目的 MAC 地址和目的 IP 地址更新至 ARP 缓存表中。当再次和主机 B 通信时,可以直接从 ARP 缓存表中获取,而不用重新发起 ARP 请求报文。
ARP 缓存表中的表项有过期时间(一般为 20 分钟),过期之后,需要重新发起 ARP 请求以获取目的 MAC 地址。

介绍ARP协议之前,先了解一下以太网的帧格式

二、以太网帧格式

ARP 协议通过以太网进行传输,那么必须也要按照以太网所规定的格式进行传输,那先来介绍一下太网的帧格式,随后再详细介绍 ARP 协议的具体格式。

我们知道串口通信单次只传输一个字节,而以太网通信是以数据包的形式传输,其单包数据量达到几十,甚至成百上千个字节。下图为以太网通过 ARP 传输单包数据的格式。
在这里插入图片描述
以太网 MAC 帧格式:
在这里插入图片描述
在这里插入图片描述

注意:以太网相邻两帧之间的时间间隔,即帧间隙(IFG,Interpacket Gap)。
帧间隙的时间就是网络设备和组件在接收一帧之后,需要短暂的时间来恢复并为接收下一帧做准备的时间,IFG 的最小值是 96 bit time,即在媒介中发送 96 位原始数据所需要的时间,在不同媒介中 IFG的最小值是不一样的。
不管10M/100M/1000M的以太网,两帧之间最少要有 96bit time,IFG 的最少间隔时间计算方法如下:
10Mbit/s 最小时间为:96100ns = 9600ns;
100Mbit/s 最小时间为:96
10ns = 960ns;
1000Mbit/s 最小时间为:96*1ns = 96ns。

三、ARP协议

ARP 协议属于 TCP/IP 协议簇的一种,ARP 协议位于以太网 MAC帧格式的数据段,ARP 数据包格式如下图所示。
在这里插入图片描述
在这里插入图片描述

1. 以太网ARP通信测试:

主机和fpga参数如下:
在这里插入图片描述
1:上位机发送ARP请求,FPGA产生ARP应答
在这里插入图片描述
在这里插入图片描述
2:FPGA发出ARP请求,上位机产生ARP应答
在这里插入图片描述
在这里插入图片描述
Q:上位机可以通过win的命令:arp-a查看fpga的IP 和 MACY的映射,那如何查看fpga接收到的上位机信息呢?
A:这里使用wireshark软件对以太网通信进行抓包。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1883494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生产环境部署与协同开发-Docker(原创超全)

关闭防火墙 systemctl stop firewalld.service 关闭SELinux vim /etc/selinux/config 查看yum支持的包并安装docker引擎 yum listyum install -y docker 启动docker设置docker自启动测试docker是否安装成功? systemctl start dockersystemctl enable dockerdoc…

HCIE实验这样玩太高级了吧?实现FRR+BFD+OSPF与BGP的联动

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 晚上好,我的网工朋友。 今天搞个HCIE实验玩玩,上回分享了个张总讲解的防火墙配置实验思路,后来还特地搞了个视…

【电路笔记】-A类放大器

A类放大器 文章目录 A类放大器1、A类放大器概述2、A类放大器基本通用发射极配置3、变压器耦合配置4、总结在 放大器类型简介的文章中,我们介绍了不同类别的放大器。 在本文中,我们将更详细地介绍A类放大器。 在介绍不同的A类放大器配置前,首先的是要记住放大器类别的选择标…

面向优秀SCI论文写作的语言大模型提示词设计

模板1:Abstract 润色 I want you to act as an SCI reviewer and evaluate the abstract of a research paper. You may check if the abstract is well-written and serves as an informative and descriptive overview of the research. You may also check if it…

Centos7网络配置(设置固定ip)

文章目录 1进入虚拟机设置选中【网络适配器】选择【NAT模式】2 进入windows【控制面板\网络和 Internet\网络和共享中心\更改适配器设置】设置网络状态。3 设置VM的【虚拟网络编辑器】4 设置系统网卡5 设置虚拟机固定IP 刚安装完系统,有的人尤其没有勾选自动网络配置…

IOS17闪退问题Assertion failure in void _UIGraphicsBeginImageContextWithOptions

最近项目更新到最新版本IOS17,发现一个以前的页面突然闪退了。原来是IOS17下,这个方法 UIGraphicsBeginImageContext(CGSize size) 已经被移除,原参数如果size为0的话,会出现闪退现象。 根据说明,上述方法已经被替换…

Python + OpenCV 酷游地址教学V鄋KWK3589

本篇文章汇整了一系列的Python OpenCV 教学,只要按照教学文的顺序阅读和实作,就可以轻松入门OpenCV,并透过OpenCV 实现许多影像相关的创意应用。 接下来我们来介绍OpenCV-- OpenCV 是一个跨平台的电脑视觉函式库( 模组) ,可应用…

Supabase 自托管部署实践

Supabase 是 Firebase 的开源替代品。使用 Postgres 数据库、身份验证、即时 API、边缘函数、实时订阅、存储和向量嵌入来启动您的项目。 Supabase介绍 Supabase 是一个开源的后端即服务(BaaS)平台,提供了一系列工具和服务,帮助…

qt中数据库和excel互导数据————附带详细步骤和代码

文章目录 0 背景1 准备QXlsx环境1.1 cmake安装使用1.2 qmake使用 2 把excel数据导出到mysql数据库3 把mysql数据库的数据写入到excel4 完整代码5 项目代码仓库 0 背景 因为需要批量导入和导出数据,所以需要用到excel。实现把数据库的数据导入到excel中,…

matrix-breakout-2-morpheus靶场

1 信息收集 1.1 主机发现 arp-scan -l 1.2 端口与服务扫描 发现开放22、80、81端口 2 访问服务 2.1 访问80端口 查看源代码 2.2 访问81端口 3 目录扫描 3.1 dirsearch目录扫描 dirsearch -u 192.168.1.14 发现robots.txt文件和javascript文件 访问文件 http://192.168…

linux网络命令:httpie详解-简单易用的命令行 HTTP 客户端

目录 一、命令概述 二、基本特点 1、直观和友好的命令语句 2、内置 JSON 支持 3、支持多种请求方法 4、支持 HTTPS、代理和授权验证 5、支持多种请求数据格式 6、自定义 headers 头 7、持久 sessions 存储 8、插件支持 三、安装 1、对于基于 Debian 的系统&#xf…

【你也能从零基础学会网站开发】关系型数据库中的表(Table)设计结构以及核心组成部分

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 关系型数据库中…

idea 项目互联网转内网开发 依赖报错问题 maven问题

场景: 这个问题困扰好久,通过分析后,发现是maven配置问题,废话不多说,上干活。 问题描述 项目互联网从转内网开发,提前下载好repository,跟项目一起导入内网,导入后,发…

Jasper Report详细使用教程

1、编写jrxml文件 1.1 新建项目 使用Jaspersoft Studio来创建一个项目,如图所示,新建一个项目,步骤: File -> New -> Project->JasperReportsProject 1.2 新建一个Jasper Report模板 找到你新建的项目。步骤:…

昇思25天学习打卡营第6天|简单的深度学习模型实战 - 函数式自动微分

自动微分(Automatic Differentiation)是什么?微分是函数在某一处的导数值,自动微分就是使用计算机程序自动求解函数在某一处的导数值。自动微分可用于计算神经网络反向传播的梯度大小,是机器学习训练中不可或缺的一步。 这些公式难免让人头大…

抛弃 Neofetch?众多优秀替代方案等你体验!

目录 抛弃 Neofetch?众多优秀替代方案等你体验Neofetch 的替代品FastfetchscreenFetchmacchina 抛弃 Neofetch?众多优秀替代方案等你体验 NeoFetch 是用 Bash 3.2 编写的命令行系统信息工具,该项目的主要开发人员已将 GitHub 存储库存档&…

【C++11:右值引用,列表初始化】

统一列表初始化: 构造函数的函数名与函数体之间增加一个列表,用于对成员初始化 在实例化对象时,支持单/多参数的隐式转化,同时也可以省略符号,让代码更简洁 右值的引用 左值: 左值与右值的重要区别就是能…

用代码实现加载中动图 loading.gif

效果 仅使用htmlcss&#xff0c;效果如下所示 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>加载中</title><style>.el-loading-spinner .circular {height: 42px;width: 42px;…

7.1作业

初始化 /******rcc章节初始化********/ |//1.使能gpiob组控制器 |RCC->MP_AHB4ENSETR |(0X1<<1); |//2.使能gpiog组控制器 |RCC-&…

【TB作品】矩阵键盘电话拨号,ATMEGA16单片机,Proteus仿真 atmega16矩阵键盘电话拨号

atmega16矩阵键盘电话拨号 c代码和仿真图&#xff1a; 使用ATmega16实现矩阵键盘电话拨号功能 项目背景 在电子设计和嵌入式系统开发中&#xff0c;矩阵键盘是常见的人机交互方式。它可以实现较多按键的输入&#xff0c;同时节省单片机的I/O资源。结合LCD显示和蜂鸣器&am…