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

目录

前言

一、以太网

二、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 地址。

相关推荐
猿的天空2 小时前
机器人双手迎来全栈训练系统:灵初智能EgoSteer让灵巧手无所不能
网络·人工智能·计算机·ai·程序员·机器人·编程
Xzaveir_7772 小时前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
wuqingshun3141593 小时前
从网络角度来看,用户从输入网址到网页显示,期间发生了什么?
网络
牛马工作号3 小时前
Zigbee 专业详解:从协议到排障
网络·物联网·安全
牛马工作号3 小时前
Wi‑Fi 完全指南:从 802.11 协议到 Wi‑Fi 7、AC+AP 与 Mesh 工程组网
网络·网络协议·智能路由器
智慧光迅AINOPOL3 小时前
智慧工厂全光网怎么扛住AGV与强电磁?光电复合缆与工业级方案
网络·全光网解决方案·全光网·酒店全光解决方案·泛住宿全光网解决方案
JoyCong19984 小时前
手机变身“司令台”!ToDesk AI安卓版上线
网络·人工智能·科技·智能手机·电脑·远程工作·远程操作
a4493153624 小时前
iPhone 基带故障诊断——无服务/搜索不到网络的芯片级维修实录
网络·macos·ios·电脑·iphone
XR1234567884 小时前
园区网络“三网合一“怎么落地?信锐全网智能方案实践
网络
sbjdhjd4 小时前
SQL 注入零基础详解:原理、手工注入流程与 Sqli-Labs 靶场实战1~5关和第9关思路
数据库·sql·计算机网络·web安全·网络安全·网络攻击模型·安全架构