【数据链路层】ARP协议

news2024/11/14 15:43:55

文章目录

  • 以太网
    • 以太网帧对的格式
  • MAC地址
    • 对比MAC地址和IP地址
  • MTU和MSS
  • ARP协议
    • ARP协议的工作原理
    • ARP欺骗

以太网

”以太网" 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;

以太网帧对的格式

在这里插入图片描述
其中:

  • 源地址和目的地址是指网卡的硬件地址(也叫 MAC 地址), 长度是 48 位,是在网卡出厂时固化的;
  • 帧协议类型字段有三种值,分别对应 IP、ARP、RARP;
  • 帧末尾是 CRC 校验码

MAC地址

  • MAC 地址用来识别数据链路层中相连的节点;
  • 长度为 48 位, 及 6 个字节
  • 网卡出厂时就确定了, 不能修改. mac 地址通常是唯一的

对比MAC地址和IP地址

  • IP地址是分配给网络设备的逻辑地址,用于在网络层(第3层)进行通信。它可以通过网络管理员手动配置,也可以通过动态主机配置协议(DHCP)自动分配。IP地址用于在广域网(WAN)或互联网中标识设备,支持设备之间的数据传输。IP地址是可变的,在不同的网络中其IP地址可能会不一样。
  • MAC地址是网卡的硬件地址,是网络设备的物理标识符。它是由制造商在设备生产时分配的,并且在全球范围内是唯一的。MAC地址通常用于局域网(LAN)中的数据链路层(第2层)通信,用于标识网络中的设备。
  • 简单来说,IP地址帮助我们从一个网络到另一个网络,mac地址用于在一个局域网中找到目标设备

MTU和MSS

MTU是网络中的最大传输单元,MSS是最大报文段长度

  • MTU:网络层能够发送的最大数据包大小(通常是1500字节),以字节为单位。MTU包括IP包头和数据部分,因此它定义了在网络上传输的最大数据帧的总大小。如果传输的数据包大于MTU,数据包就会被分片(fragmentation),从而分成多个较小的包传输。一旦分片就会增加丢包的概率,所以网络层的IP报文不宜设置太大。
  • MSS:传输层(TCP)能够处理的最大报文段大小,它仅指数据部分,不包括TCP包头和IP包头。MSS通常由通信双方在TCP三次握手过程中协商确定。通常,如果MTU是1500字节,那么MSS=1500-20(IP报头)-20(TCP报头)=1460字节。

为什么要设置这个MTU呢?这是为了保证网络中的性能。如果每个报文数据太大,容易导致网络拥堵。

使用ifconfig指令可以查看自己主机的MTU
在这里插入图片描述

ARP协议

ARP 不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议用于将IP地址转换为MAC地址

当一台主机给另一台主机发送数据时,必须先知道对方的MAC地址,因为报文先经过数据链路层。那么ARP协议是如何获取目标IP地址对应的MAC地址的呢?

ARP协议的工作原理

  1. 当主机A(发送方)需要向主机B(目标方)发送数据时,主机A首先检查自己的ARP缓存中是否已经有目标IP地址对应的MAC地址。如果没有,主机A就会向所在的局域网发送一个ARP请求的广播报文,即同一局域网的所有主机都会收到这个请求。这个ARP请求包含了发送方的IP地址、MAC地址以及目标IP地址。这些数据包含在ARP的报头中。
  2. 其它主机收到这个ARP请求之后,会先把ARP请求报头解包,然后发现其请求的目标IP不是自己,就丢弃这个报文不做响应。相反,如果目标IP就是自己这台主机,那么目标主机B就会发送一个ARP响应报文,告知主机A自己的mac地址。由于通过请求已经知道了主机A的mac地址,所以发送响应时就把这个mac地址作为目标mac地址直接发送给主机A。
  3. 主机A收到ARP应答之后,在数据链路层解包,获取目标主机的mac地址。然后更新自己的ARP缓存,说白了就是存下一个目标IP和mac地址的映射,下一次要找主机B的mac地址就直接往这里面拿就行了。
    在这里插入图片描述
    下面是ARP数据报的格式:
    在这里插入图片描述
    其中
  • 硬件类型指链路层网络类型,1 为以太网;
  • 协议类型指要转换的地址类型,0x0800 为 IP 地址;
  • 硬件地址长度对于以太网地址为 6 字节;
  • 协议地址长度对于和 IP 地址为 4 字节;
  • op 字段为 1 表示 ARP 请求,op 字段为 2 表示 ARP 应答

ARP欺骗

ARP协议本身没有安全机制,所以很容易受到中间人的攻击。攻击者可以发送伪造的ARP响应,导致网络中的设备将攻击者的MAC地址与某个合法IP地址关联,从而拦截或篡改数据

防御措施:为了防止ARP欺骗攻击,网络管理员可以使用静态ARP表ARP防火墙或使用更高级的网络安全协议(如IPsec)来保护网络通信的完整性。

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

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

相关文章

数学思维曼哈顿距离

前言:刚刚看到这个题的时候模拟了一下,感觉就是一个曼哈顿距离的问题,我们计算当前位置和中心的曼哈顿距离,然后比较x 或 y 到中心距离的大小,如果有一个小于等于,那么就是ok的 #define _CRT_SECURE_NO_WAR…

正点原子imx6ull-mini-Linux驱动之Linux IIO 驱动实验

工业场合里面也有大量的模拟量和数字量之间的转换,也就是我们常说的 ADC 和 DAC。 而且随着手机、物联网、工业物联网和可穿戴设备的爆发,传感器的需求只持续增强。比如手 机或者手环里面的加速度计、光传感器、陀螺仪、气压计、磁力计等,这些…

【数据结构】关于栈你必须知道的内部原理!!!

前言: 🌟🌟Hello家人们,小编这期将带来关于栈的相关知识,以及代码的实现,希望能够帮到屏幕前的你。 📚️上期双链表博客在这里哟:http://t.csdnimg.cn/xgjK1; &#x1f4…

预测云计算的未来

云计算的未来是否依旧未知? 直到最近,云计算还是软件编程界之外很少有人熟悉的一个概念。如今,云计算已成为一切的基础,从点播电视服务和在线游戏门户网站到电子邮件和社交媒体,这四大现代世界的基石。云计算将继续存在…

Electron 使用Electron-build 进行打包

看完下面两篇就可以完成! 基于vue3vite的web项目改为Electron桌面应用(一)_vue3转electron-CSDN博客 将web项目打包成electron桌面端教程(二)vue3vitets_vue3 打包桌面端-CSDN博客 打包报错 1. 首先确定依赖包 npm …

合金钢旋转花键:高强度与高耐磨性的选择

旋转花键‌是一种利用装在花键外筒内的滚珠,‌在精密研磨的滚动沟槽中作平滑滚动,‌同时传递力矩的直线运动系统。需要在振动冲击负荷作用过大、‌定位精度要求高的地方,‌以及需要高速运动性能的地方发挥重要作用。 旋转花键的性能跟材质有直…

龙迅#LT86102SXE适用于HDMI转两路HDMI应用方案,分辨率高达4K60HZ,提供技术支持!

1.功能 ⚫HDMI1.4和DVI 1.0规范兼容 ⚫支持3D视频格式和4Kx2K扩展分辨率格式高达3.4Gbps数据速率和4Kx2K 60Hz YCbCr 4:2:0格式 ⚫自适应均衡和失重,以补偿长电缆损耗 ⚫ODTs和校准 ⚫集成HDCP中继器引擎符合HDCP 1.4规范 ⚫完全硬件控制或可…

CSS文本两端对齐

背景 如果我们要写了列表或表单类的样式&#xff0c;名称长短不一&#xff0c;但是想要两端对齐&#xff0c;如下面这样的&#xff1a; 你是怎么写的&#xff1f; 是这样的吗&#xff0c;在HTML里调整加空格&#xff1a; <ul><li>用户名</li><li>账 …

探索算法系列 - 前缀和算法

目录 一维前缀和&#xff08;原题链接&#xff09; 二维前缀和&#xff08;原题链接&#xff09; 寻找数组的中心下标&#xff08;原题链接&#xff09; 除自身以外数组的乘积&#xff08;原题链接&#xff09; 和为 K 的子数组&#xff08;原题链接&#xff09; 和可被 …

电脑开机后出现bootmgr is missing原因及解决方法

最近有网友问我为什么我电脑开机后出现bootmgr is missing&#xff0c;这个提示意思是:意思是启动管理器丢失&#xff0c;说明bootmgr损坏或者丢失&#xff0c;系统无法读取到这个必要的启动信息导致无法启动。原因有很多&#xff0c;比如我们采用的是uefi引导&#xff0c;而第…

【数学建模】简单的优化模型-6 血管分支

背景&#xff1a;机体提供能量维持血液在血管中的流动&#xff0c;给血管壁以营养&#xff1b;克服血液流动的阻力&#xff0c;能量消耗与血管的几何形状有关。在长期进化中动物血管的几何形状已经在能量消耗最小原则下达到最优化。 问题&#xff1a;在能量消耗最小原则下&…

学习!胖东来秋季陈列欣赏

生鲜区 丰满、新鲜、有量感&#xff1b;色彩搭配更显艺术美&#xff01; 每个石榴专门被泡沫网套半包裹&#xff0c;避免果体受伤的同时&#xff0c;方便顾客挑选。 非季节性商品&#xff0c;以精而美的陈列形式呈现。 蔬菜区的商品分层立体陈列&#xff0c;顾客既拿既走&…

【实现100个unity特效之16】unity2022之前或者之后版本实现全屏shader graph的不同方式 —— 适用于人物受伤红屏或者一些其他状态效果

最终效果 文章目录 最终效果前言unity2022版本 Fullscreen shader graph首先&#xff0c;请注意你的Inity版本&#xff0c;是不是2022.2以上&#xff0c;并且项目是URP项且基本配置 修改shader graph边缘效果动起来优化科幻风制作一些变量最终效果最终节点图代码控制 2022之前版…

鸿蒙(API 12 Beta3版)【音频解码】

开发者可以调用本模块的Native API接口&#xff0c;完成音频解码&#xff0c;即将媒体数据解码为PCM码流。 当前支持的解码能力如下: 容器规格音频解码类型mp4AAC、MPEG(MP3)、Flac、Vorbis、AudioViVid11m4aAACflacFlacoggVorbis、opusaacAACmp3MPEG(MP3)amrAMR(amrnb、amrw…

Journyx soap_cgi.pyc接口XML外部实体注入漏洞复现 [附POC]

文章目录 Journyx soap_cgi.pyc接口XML外部实体注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现Journyx soap_cgi.pyc接口XML外部实体注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术…

线程池原理(一)线程池核心概述

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 线程回顾 创建线程的方式 继承 Thread 类实现 Runnable 接口 创建后的线程有如下状态&#xff1a; NEW&#xff1a;新建的线程&#xff0c;无任何操作 public static void main(String[] args) {Thread…

嵌入式初学-C语言-十八

#接嵌入式初学-C语言-十七# 变量的生命周期 1. 概念&#xff1a;变量在程序运行中存在的时间 2. 根据变量存在的时间不同&#xff0c;变量可分为静态存储和动态存储 3. 变量的存储类型 变量的完整定义格式&#xff1a;[存储类型] 数据类型 变量列表; 4. 存储类型 auto&…

yolov8人脸识别案例

GitHub - wangWEI201901/YOLOv8-Detection-Project: &#x1f6e3;️基于YOLOv8的智慧校园人脸识别和公路汽车检测

ITSM垂类下,企业如何逐步搭建一个好的AI Agent

随着企业数字化转型的不断深入&#xff0c;智能服务管理&#xff08;ITSM&#xff09;逐渐成为提升企业运营效率和服务质量的关键。企业纷纷探索如何将AI技术融入到IT服务管理中&#xff0c;以提升效率、降低成本并增强用户体验。成功实施AI并非易事&#xff0c;它要求企业在战…

探索全光网技术 | 全光网络技术方案选型建议五 (大厅场景)

目录 一、场景设计需求二、大厅场景拓扑三、部署方式四、产品相关规格说明五、方案优势与特点 注&#xff1a;本文章参考资料为&#xff1a;华三官方资料 - “新华三全光网络3.0解决方案&#xff08;教育&#xff09;”与 锐捷官方资料 - “【锐捷】高校极简以太全光3.X方案设计…