概述
起序:本文摘录于《计算机网络(第七版)- 谢希仁》,里面也有自己对 MAC 帧
的理解。
五层协议体系结构 | 数据单元(数据单位) |
---|---|
应用层 | message(消息) |
运输层 | segment(TCP 报文段) 或 datagram(UDP 用户数据报) |
网络层 | packet(IP 数据报(或简称数据报、分组或包)) |
数据链路层 | frame(帧) |
物理层 | bit(比特流) |
一、MAC 层的硬件地址
在局域网中,
硬件地址
又称为物理地址
或MAC地址
。也就是咱们口中网卡地址
。这个地址是由网络设备制造商
在生产的时候就已经写在硬件内部了,是全球唯一的,不需要自己买回来之后再配置的。
MAC 地址:Media Access Control Address,直译为 媒体存取控制位址
,也称为 局域网地址(LAN Address)。
# 查看自己的 MAC 地址,命令行输入 cmd
ipconfig /all
可以看到图片上内容:物理地址: D8-C4-97-90-39-2F,这就是自己电脑的真实地址。
- 有线网卡地址
- 无线网卡地址(和有线网卡地址类似,暂不截图)
MAC地址的长度为
48位(6个字节)
,通常表示为12个16进制数
,每2个16进制数之间用冒号
隔开。地址的前24位是由生产厂家向IEEE
申请的厂商地址,后24位就由生产厂家自行定拟了,代表设备编号。
下面以我电脑上的 MAC 地址
举例。
查询MAC地址
便民查询网
- 有线网卡地址查询
- 无线网卡地址查询(和有线网卡地址类似,暂不截图)
二、MAC 帧的格式
- 帧的最大传输单元(MTU):1500 字节
- 帧的最小传输单元:64 字节,因为
IP报文段
最小为 46 字节
1、帧格式组成
帧头 + 上三层数据 + 帧尾
这里只介绍
帧头
和帧尾
,如果想了解上三层数据单元格式,可以关注我的博客,在博客中查找。
2、帧头
目的 MAC 地址 + 源 MAC 地址 + 类型 (头可破,血可流,这里顺序不能乱),可以看出
帧头字节长
为14 字节
。
字段 | 字节长 |
---|---|
目的 MAC 地址 | 6 字节 |
源 MAC 地址 | 6 字节 |
类型 | 2 字节 |
字段中
类型
的作用:识别上层协议,为上层提供服务。下面举例:
类型的值 | 代表上层使用的协议 |
---|---|
0x0800 | IP 协议 |
0x0806 | ARP 协议 |
3、数据字段
数据字段属于 IP层(网络层)的数据单元,这里不做详细介绍。
简单唠一下:数据字段的长度在
46 ~ 1500 字节
之间。(46 字节
:最小长度 64 字节减去18 字节的首部和尾部
就得出数据字段的最小长度。)
4、帧尾
帧检验序列 FCS(Frame Check Sequence),是一段固定
4个字节
的循环冗余校验码。使用 CRC 算法对整个数据进行计算得出的值,类似 hash 算法。
计算过程:
- 源节点发送数据帧时,由
帧的帧头
和数据部分
计算得出4个字节的FCS
。 - 目的节点接收到后,用同样的方式再计算一遍得出
4个字节的FCS
。 - 如果与接收到的
FCS
不同,则认为帧在传输过程中发生了错误,从而选择丢弃这个帧。
注:FCS
提供了一种错误检测机制,用来验证帧在传输过程中的完整性。
如果对您有帮助,点个赞再走吧。
最后
以上就是生动猎豹为你收集整理的【网络】数据单元 - 数据链路层 - MAC 帧的全部内容,希望文章能够帮你解决【网络】数据单元 - 数据链路层 - MAC 帧所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复