数据链路层Mac协议与ARP协议

news2024/11/8 17:29:14

Mac帧

如何将有效载荷和报头分离?

根据固定大小

报头固定大小,按报头大小分离

如何分用?

​​​​

类型为0800,代表为IP报文,应该交给网络层IP协议

目的地址 原地址为Mac地址

局域网通信

局域网发出的报文是先跟自己的主机的网络号匹配的,才知道到底是发到自己的局域网中,还是外网。

例如一个报文Mac起始地址为192.168.4.5,目标地址为192.168.4.6

先与发送的主机的子网掩码按位与,得到网络号192.168.4.0,我们主机的网络号为192.168.4

一个局域网网络号是相同的

所以我们知道是发送到我们这台主机的子网中的。

于是将该报文发送到该子网中,所有该子网中的自己都收到了消息,但是一对比发现不是发给自己的,于是将该报文丢弃

知道匹配到MacE。

我们只知道了MacE的ip地址,但是我们不知到MacE的Mac地址,报文也就匹配不到MacE

根据目标IP地址,得到目标Mac地址 —— ARP协议 地址解析协议

在一个局域网内,一台主机发出的消息该网内所有主机都能收到消息,但是要判断是不是发送给自己,如果不是,直接丢弃

碰撞问题

a.局域网中,任何时刻,只允许一台主机发送数据

b.如果同时发送,就会发生数据碰撞问题

一个子网通常叫做碰撞域

所以得有碰撞检测,和碰撞避免

主机越多,碰撞概率越高,这也能解释为什么一个局域网中主机中太多了,造成碰撞的消息越多,网速就越慢

交换机的引入相对的解决了一些数据碰撞的问题

MTU

为什么要有mtu呢?

发送长数据,通过的网络发生碰撞的概率也就越大。

重传一个mtu大小的报文损耗也比重传一个大数据的损耗要低得多

MSS

MSS 是 TCP 协议中的一个选项,用于在 TCP 连接建立时,通过三次握手过程由发送端和接收端协商确定每个数据报文段的最大数据长度(不包括TCP头部)。这个值的主要目的是为了减少数据包在网络中的分片,从而提高传输效率。默认情况下,MSS 通常设置为 1460 字节。

MSS是IP协议不会被分片的最大数据大小

我们双方主机由于MTU可能不同 MSS也一定不同,一般是取最小的MSS通信

ARP协议

ARP是在数据链路层的协议

​​

细节结论;

1.主机A收到ARP结果,会将ARP结果缓存起来,——有时间限制

2.任何一台主机都有可能既收到ARP请求,也一定去发送过ARP应答,

a.硬件类型指链路层网络类型,1为以太网;

b.协议类型指要转换的地址类型,0x0800为IP地址:

c.硬件地址长度对于以太网地址为6字节;

d.协议地址长度对于和IP地址为4字节

e.op字段为1表示ARP请求,op字段为2表示ARP应答。

MAC报文 ARP请求

FFFF..FF 广播地址

FFFFFF..FF 由于是不知道ipH的MAC地址的所以目的以太网地址填为FFFFFF..FF

​​

因为是广播地址,所以所有该局域网内的主机都会处理该MAC报文,但是发现类型为0806,ARP请求,到ARP解析后,发现目的ip为 ipH,所以会丢弃该报文

MACH收到该报文后,先看到的是op字段,要先辨别这哥ARP是请求还是应答

然后再看ipH,发现是自己这台主机。此时构建ARP应答

​​​

这个应答所有人也都会收到,但是当发现目的MAC地址为macA,直接在MAC协议层将该报文丢弃,走不到ARP协议

抓包

根据网络号,做一个循环,ping所有的地址,得到别人的地址,再根据arp得到mac地址,再用抓包工具监控

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

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

相关文章

轮椅车、医用病床等康复类器具检测设备的介绍

康复类器具检测设备是指用于检测、评估和测试康复类器具的设备。康复类器具包括轮椅、助行器、假肢、矫形器等。这些器具在使用前需要经过检测和评估以确保其满足质量、性能、安全和有效性的要求。 康复类器具的测试项目及其设备主要包括以下几种: 1、力学测试设…

WiFi一直获取不到IP地址是怎么回事?

在当今这个信息化时代,WiFi已成为我们日常生活中不可或缺的一部分。无论是家庭、办公室还是公共场所,WiFi都为我们提供了便捷的无线互联网接入。然而,有时我们可能会遇到WiFi连接后无法获取IP地址的问题,这不仅影响了我们的网络使…

基于SSM+VUE儿童接种疫苗预约管理系统JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档(1万字以上)开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统:Window操作系统 2、开发工具:IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

城镇住房保障:SpringBoot系统架构解析

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

软件测试—功能测试详解

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、测试项目启动与研读需求文档 (一) 组建测试团队 1、测试团队中的角色 2、测试团队的基本责任 尽早地发现软件程序、系统或产…

第十五届蓝桥杯C/C++B组题解——数字接龙

题目描述 小蓝最近迷上了一款名为《数字接龙》的迷宫游戏,游戏在一个大小为N N 的格子棋盘上展开,其中每一个格子处都有着一个 0 . . . K − 1 之间的整数。游戏规则如下: 从左上角 (0, 0) 处出发,目标是到达右下角 (N − 1, N …

【9695】基于springboot+vue的学生就业管理系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取免费源码 项目描述 本学生就业管理系统以springboot作为框架&#xff…

Android使用scheme方式唤醒处于后台时的App场景

场景:甲App唤醒处于后台时的乙App的目标界面Activity,且乙App的目标界面Activity处于最上层,即已经打开状态,要求甲App使用scheme唤醒乙App时,达到跟从桌面icon拉起App效果一致,不能出现只拉起了乙App的目标…

centos7,yum安装mongodb

yum安装mongodb 1.配置MongoDB的yum源2.安装Mongodb3.启动Mongodb4.配置远程访问5.设置mongo密码 1.配置MongoDB的yum源 1.创建yum源文件,输入命令: vim /etc/yum.repos.d/mongodb-org-5.0.repo然后在文件中输入以下内容并保存: [mongodb-…

SpringBoot项目集成ONLYOFFICE

ONLYOFFICE 文档8.2版本已发布:PDF 协作编辑、改进界面、性能优化、表格中的 RTL 支持等更新 文章目录 前言ONLYOFFICE 产品简介功能与特点Spring Boot 项目中集成 OnlyOffice1. 环境准备2. 部署OnlyOffice Document Server3. 配置Spring Boot项目4. 实现文档编辑功…

【华为HCIP实战课程31(完整版)】中间到中间系统协议IS-IS路由汇总详解,网络工程师

一、IS-IS的汇总 1、可以有效减少在LSP中发布的路由条目,减小对系统资源的占用。 2、会减少LSP报文的扩散,接收到该LSP报文的其他设备路由表中只会出现一条聚合路由。 3、可以避免网络中的路由震荡,提高了网络的稳定性。 4、被聚合的路由可以是IS-IS路由,也可以是被引入…

LabVIEW编程过程中为什么会出现bug?

在LabVIEW编程过程中,Bug的产生往往源自多方面原因。以下从具体的案例角度分析一些常见的Bug成因和调试方法,以便更好地理解和预防这些问题。 ​ 1. 数据流错误 案例:在一个LabVIEW程序中,多个计算节点依赖相同的输入数据&#…

Vatee万腾平台:让企业数字化转型更轻松、更高效

在数字化浪潮席卷全球的今天,企业数字化转型已成为不可逆转的趋势。然而,对于许多企业来说,数字化转型并非易事,它涉及到技术、人才、流程等多个方面的变革。为了帮助企业顺利实现数字化转型,Vatee万腾平台应运而生&am…

STM32G0xx使用LL库将Flash页分块方式存储数据实现一次擦除可多次写入

STM32G0xx使用LL库将Flash页分块方式存储数据实现一次擦除可多次写入 参考例程例程说明一、存储到Flash中的数据二、Flash最底层操作(解锁,加锁,擦除,读写)三、从Flash块中读取数据五、测试验证 参考例程 STM32G0xx HAL和LL库Flash读写擦除操…

若依管理系统使用已有 Nacos 部署流程整理

背景 玩了一下开源项目 RuoYi 管理系统Cloud 版,卡住的地方是:它用到了 nacos 配置管理,如果用的 nacos 环境是单机且是内置数据库的话,该怎么配置呢? 本文整理本机启动 RuoYi Cloud 应用本地部署的过程,…

快速学习Python框架FastAPI

FastAPI是一种现代、快速(高性能)的Web框架,用于Python 3.6,使用Python类型提示构建API。它的设计初衷是帮助开发者在短时间内开发出高性能的API服务。FastAPI的灵感来源于许多高性能的编程框架,包括Express、Django R…

scala Map集合

一.Map的概述 Map是一种存储键值对的数据结构,Map中的键都是唯一的。 idea实例 二.Map的常见操作 idea实例 三.Map中的查询元素 idea实例 四.Map的常用方法 idea实例 五.Map的遍历 idea实例

Zabbix监控架构

目录 1. Zabbix监控架构-CS架构 2. Zabbix极速上手指南 主机规划 2.1 部署ngxphp环境并测试 检查安装结果 2.2 部署数据库 2.3 编译安装zabbix-server服务端及后续配置 2.4 部署前端代码代码进行访问 前端的配置文件(连接数据库与主机名等信息) 2.5 欢迎来到zabbix 2…

基于vue+neo4j 的中药方剂知识图谱可视化系统

前言 历时一周时间,中药大数据R02系统中药开发完毕,该系统通过scrapy工程获取中药数据,使用python pandas预处理数据生成知识图谱和其他相关数据,利用vuespringbootneo4jmysql 开发系统,具体功能请看本文介绍。 简要…

Java——》try-with-resource

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…