计算机网络——数据链路层Mac帧详解

server/2024/12/3 6:49:37/

目录

前言

一、以太网

二、Mac帧

三、MTU——最大传输单元

四、Mac帧的传输过程

1.ARP协议

2.RARP协议


前言

在之前,我们学习过网络层的IP协议,了解到IP协议解决了从哪里来,到哪里去的问题,也就是提供了将数据从A到B的能力,他能指挥数据链路层应该往哪里去发送数据,但具体的执行,还得是数据链路层去干,那么数据链路层是怎样去进行数据传输的呢?

一、以太网

数据链路层中最重要也是最常用的就是以太网。

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

其中以太网较为重要的内容就是Mac帧。

二、Mac帧

我们来看看Mac帧的格式

源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的。
帧协议类型字段有三种值,分别对应IP、ARP、RARP。(后面会将)
帧末尾是CRC校验码,用于确保数据的正确性。

Mac帧除了数据以外长度是固定的,因此将报头与有效载荷分离就可以通过读取固定长度,将数据交付给上层处理。具体交付给上层哪一个协议,就可以通过读取类型来进行指定协议的交付。

MAC地址用来识别数据链路层中相连的节点。
长度为48位,及6个字节。一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
在网卡出厂时就确定了,不能修改。mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址,可能会冲突;也有些网卡支持用户配置mac地址)。

三、MTU——最大传输单元

MTU(Maximum Transmission Unit) 最大传输单元。

MTU相当于发快递时对包裹尺寸的限制。在以太网中,MTU 通常为 1500 字节,这意味着每个以太网帧的数据部分(即去掉以太网头部后)最大为 1500 字节。

在以太网的传统工作方式(半双工)下,多个设备可能会在同一时间尝试向网络发送数据。由于这些设备共享同一个通信信道,若多个设备同时发送数据,就会发生碰撞。当数据包过大,就会有更大的几率发送碰撞,影响通信的效率,因此规定在以太网传输的数据不能超过MTU。

如果一个数据包超过了网络链路的 MTU,IP 层 会负责对数据包进行分片,然后将每个分片交给数据链路层进行传输。

四、Mac帧的传输过程

既然Mac帧要在双绞线(网线)中进行传输,那么他该如何传输的呢?你现在只知道自己的Mac地址,IP地址还有要去的IP地址,你如何知道对方的Mac地址,再发送给对方呢?

这就要使用到ARP协议。

1.ARP协议

如下是ARP协议的字段

  • 注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。
  • 帧类型8086代表ARP 协议
  • 硬件类型指链路层网络类型,1为以太网;
  • 协议类型指要转换的地址类型,0x0800为IP地址;
  • 硬件地址长度对于以太网地址为6字节;
  • 协议地址长度对于和IP地址为4字节;
  • op字段为1表示ARP请求,op字段为2表示ARP应答。

上面的内容我们都可以填写,而以太网目的地址怎么填写呢?

我们知道,网络协议中是存在广播的,也就是说当前局域网中所有的主机都会收到广播信号。因此我们可以将目标以太网地址给0XFFFFFFFFFFFF,代表广播。

这样该报文就会发送到局域网的所有主机,他们都会检查,目的IP地址是否为自己的IP地址,不是则丢弃不管了,若发现是自己的IP地址,再检查op字段,发现是1代表ARP请求,此时会重新填充op字段和其他字段,给源Mac发送ARP应答,源Mac主机收到了ARP应答,于是就知道了IP地址所对应的Mac地址,将内容缓冲起来,以后就知道对方的Mac地址了。

我们来举个例子

IPA在局域网广播询问谁是MacE,IPB IPC IPD 都收到了信息,但是目的IP不是自己,于是丢弃

MacE收到后,目的IP就是我的IP,于是会发送给MacA,我是IPE,我的mac地址为MacE。

并且在这过程中,MacA和MacE都会将对方的Mac地址进行缓存,建立起对方IP地址与Mac地址的映射,以便后续不需要再次询问能直接通信。 

ARP协议还有一些小细节,比如发送前还会通过网络号查询目标IP是否在本局域网内,在就进行ARP发送,得到对方的Mac地址,然后发送Mac帧。如果目标在其他网络,数据需要通过路由器 转发。

2.RARP协议

RARP(逆地址解析协议,Reverse Address Resolution Protocol) 也是一种网络协议,它与 ARP(地址解析协议)相反,用于根据设备的 MAC 地址 获取对应的 IP 地址。


http://www.ppmy.cn/server/146953.html

相关文章

本地Docker部署个人在线音乐平台Melody结合内网穿透远程访问听音乐

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

高职本科大数据实训平台及使用场景

大数据实验实训平台是在云计算、大数据、人工智能等基础上,以智能化容器集群技术搭建的“一站式”大数据、人工智能等相关专业的实验、实训、实战平台,支撑“教—学—练—赛—研”等全闭环的专业建设、人才培养、实验室建设等整体解决方案。 大数据…

深入学习MapReduce:原理解析与基础实战

标题:深入学习MapReduce:原理解析与基础实战 MapReduce是一种分布式计算框架,用于大规模数据的处理和分析。作为Hadoop生态系统的核心组件,MapReduce凭借其简单的编程模型和强大的并行计算能力,广泛应用于大数据领域。…

H3C OSPF实验

实验拓扑 实验需求 按照图示配置 IP 地址按照图示分区域配置 OSPF ,实现全网互通为了路由结构稳定,要求路由器使用环回口作为 Router-id,ABR 的环回口宣告进骨干区域 实验解法 一、配置IP地址 [R1]int l0 [R1-LoopBack0]ip add 1.1.1.1 32 […

Path类使用---python

一、初始化 1.1、路径拼接 操作符/ .Path对象 / Path对象 .Path对象 / 字符串 .字符串 / Path对象 joinpath .joinpath(*other)在当前Path路径连接多个字符串返回新路径对象 二、分解 parts属性,会返回目录各部分的元组 三、获取路径 str获取路径字符…

大数据技术Kafka详解 ② | Kafka基础与架构介绍

目录 1、kafka的基本介绍 2、kafka的好处 3、分布式发布与订阅系统 4、kafka的主要应用场景 4.1、指标分析 4.2、日志聚合解决方法 4.3、流式处理 5、kafka架构 6、kafka主要组件 6.1、producer(生产者) 6.2、topic(主题) 6.3、partition(分区) 6.4、consumer(消费…

高原地区分布式光伏电站监测系统解决方案

安科瑞刘鸿鹏 ​随着全球对可再生能源的日益关注,光伏发电作为清洁能源的重要组成部分,逐渐成为许多国家和地区能源结构转型的关键。然而,光伏发电系统的运行和稳定性离不开科学的运维管理。随着信息技术的更新,光伏运维管理系统…

Cannot resolve symbol ‘ActivityThread‘ | Android 语法

背景 ActivityThread 是 Android 系统内部使用的一个类,它位于 android.app 包中,但在 Android SDK 的公共 API 中并没有公开。 由于 ActivityThread 是隐藏的内部类,因此在编写单元测试或功能开发时,无法直接引用它。可以使用反射来访问内部 API,或者使用依赖注入的方式…