计算机网络——数据链路层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 地址。

相关推荐
Likeadust28 分钟前
视频汇聚平台EasyCVR“明厨亮灶”方案筑牢旅游景区餐饮安全品质防线
网络·人工智能·音视频
光电的一只菜鸡1 小时前
Wireshark使用教程(含安装包和安装教程)
网络·测试工具·wireshark
领世达检测V133529092492 小时前
【联网玩具】EN 18031欧盟网络安全认证
网络·en 18031
靡樊2 小时前
Socket编程UDP\TCP
网络·c++·学习·tcp/ip·udp
秋水丶秋水3 小时前
IP证书与 域名证书有什么区别?
网络·网络协议·tcp/ip
不想头秃a4 小时前
JavaEE初阶-网络编程
java·运维·服务器·网络
白码低代码5 小时前
质检 LIMS 系统数据防护指南 三级等保认证与金融级加密方案设计
网络·金融·lims·实验室管理系统
jz_ddk6 小时前
[zynq] Zynq Linux 环境下 AXI BRAM 控制器驱动方法详解(代码示例)
linux·运维·c语言·网络·嵌入式硬件
深思慎考6 小时前
Linux网络——socket网络通信udp
linux·网络·udp
孤寂大仙v6 小时前
【计算机网络】NAT、代理服务器、内网穿透、内网打洞、局域网中交换机
网络·计算机网络·智能路由器