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

相关推荐
Json____33 分钟前
校园跑腿系统:使用node从零构建一套前后端分离的全栈实践项目
计算机网络·node·管理系统·wwwoop.com
上海云盾-小余2 小时前
流量攻击复盘:为什么 WAF 完好,业务依旧瘫痪
运维·服务器·网络
戴西软件2 小时前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d
芯盾时代2 小时前
《金融业网络安全管理办法(征求意见稿)》全条款深度拆解(三)
网络·安全·网络安全
米饭不加菜2 小时前
ESP-01S通过TCP直接与手机建立通信
网络·tcp/ip·智能手机
闲云野鹤在人间3 小时前
OpenStack架构介绍和安装流程
linux·网络·架构·openstack
xx~t3 小时前
嵌入式——Linux软件编程——网络1
linux·c语言·网络·vscode·网络协议
夜听莺儿鸣4 小时前
901-005_系统分析师基础知识-计算机网络与分布式系统
计算机网络·软件工程·软考·系统分析师
国科安芯5 小时前
星载CAN总线通信网络中抗辐射MCU的通信可靠性设计分析
网络·人工智能·分布式·单片机·嵌入式硬件·架构
xiaoye-duck5 小时前
《Linux网络编程·加餐》进程间关系与守护进程
linux·网络