一、MAC 层的硬件地址

在局域网中,主机的硬件地址又称为物理地址,或 MAC 地址。6个字节。

IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位,组织唯一标识符OUI)。
后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址。

一个地址块可以生成224个不同的地址。
这种 48 位地址称为 MAC-48,它的通用名称是EUI-48。
“MAC地址”实际上就是适配器地址,固化在网卡的ROM中。

第一个字节的最低位I/G(Individual/Group)
0:单个地址
1:组播地址

第一个字节的最低第二位为G/L(Globe/Local)
0:G全球管理,厂商购买的MAC地址
1:L本地管理,不用购买

例:MAC地址 f6-20-e9-8a-00-37
厂商代码:f6-20-e9。先发送f6
第一字节f6=11110110
I/G为0,单个地址,最高位最先发送;G/L为1,本地管理

适配器检查 MAC 地址

+“发往本站的帧”包括以下三种帧:
单播(unicast)帧(一对一),I/G=0
广播(broadcast)帧(一对全体,全1),ff-ff-ff-ff-ff-ff
多播(multicast)帧(一对多),I/G=1
所有适配器都能识别前两种,最后一种一般靠软件识别。

二、 MAC 帧的格式

常用的以太网MAC帧格式有两种标准 :
DIX Ethernet V2 标准
IEEE 的 802.3 标准
最常用的 MAC 帧是以太网 V2 的格式。

类型字段用来标志上一层使用的是什么协议,
以便把收到的 MAC 帧的数据上交给上一层的这个协议。

数据字段的正式名称是 MAC 客户数据字段
最小长度 64 字节-18 字节的首部和尾部 = 数据字段的最小长度

当数据字段的长度小于 46 字节时,
应在数据字段的后面加入整数字节的填充字段,
以保证以太网的 MAC 帧长不小于 64 字节。

在帧的前面插入的 8 字节中的第一个字段共 7 个字节,
是前同步码,用来迅速实现 MAC 帧的比特同步。
第二个字段是帧开始定界符,表示后面的信息就是MAC 帧。

为了达到比特同步,
在传输媒体上实际传送的
要比 MAC 帧还多 8 个字节

三、为什么MAC帧最短长度为512bit(64字节)

CSMA/CD协议的一个要点就是当发送站正在发送时,若检测到冲突则立即终止发送,然后推后一段时间再发送。如果所发送的帧太短,还没来得及检测到最远到来的冲突就已经发送完了,那么就无法进行冲突检测了。结果是:发送失败,但未察觉而不重发。
因此所发送帧的最短长度应当要保证在该帧发送完毕前,必须检测到可能最晚来到的冲突信号。该时间为往返时延2τ,取为51.2us,相当于发送512bit。
数据字段最短长度为46字节=64字节-18字节(目的地址(6)+原地址(6)+协议类型(2)+FCS(4))

四、MAC帧中没有标示帧长度

以太网采用曼彻斯特编码,当发送完一个帧后就不再发送任何码元了,发送方网络适配器的接口上的电压不再变化。
往前数4个字节就是FCS部分。

上层协议如何知道填充字段的长度

当数据字段长度不足46字节时,MAC子层会在数据段后面加入整数个字节的填充字段,以保证MAC帧长度不小于64字节。
那么上层协议如何知道填充字段的长度?
上层使用IP协议时,IP数据报首部有一个“总长度”字段。

五、无效的 MAC 帧

帧的长度不是整数个字节;
用收到的帧检验序列 FCS 查出有差错;
数据字段的长度不在 46 ~ 1500 字节之间。
有效的 MAC 帧长度为 64 ~ 1518 字节之间。
对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。

六、帧间最小间隔

帧间最小间隔为 9.6 μs,相当于 96 bit 的发送时间(10M以太网)。
一个站在检测到总线开始空闲后,还要等待 9.6μ s 才能再次发送数据。
这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。

以太网的 MAC 层的更多相关文章

  1. 网络协议 3 - 从物理层到 MAC 层

        在上一篇博文中,我们见证了 IP 地址的诞生,机器一旦有了 IP,就可以在网络的环境里和其他的机器展开沟通了.     今天,我们来认识下 物理层 和 MAC 层.     日常生活中,身为 ...

  2. MAC层作用

    对于无线传感网 MAC,顾名思义,就是介质访问控制,是用来控制无线介质的访问的,由于无线传输是共享空中资源的,必然存在多个无线传感器节点对传输介质的争用,MAC层协议就是用来解决这个问题的,包括冲突的 ...

  3. 802.11 MAC层

    1. 介绍 本文主要介绍了802.11 MAC层 2. 访问机制 CSMA/CA:  Carrier Sense Multiple Access with Collision Avoidance Wi ...

  4. RK3288以太网的mac地址调试笔记【学习笔记】【原创】

    平台信息:内核:linux3.1.0系统:android/android6.0平台:RK3288 作者:庄泽彬(欢迎转载,请注明作者) 邮箱:2760715357@qq.com 说明:提供以太网mac ...

  5. 网络协议 3 - 物理层 和 MAC 层

    在上一篇博文中,我们见证了 IP 地址的诞生,机器一旦有了 IP,就可以在网络的环境里和其他的机器展开沟通了.     今天,我们来认识下 物理层 和 MAC 层.     日常生活中,身为 90 后 ...

  6. 5(计算机网络)从物理层到MAC层

    故事就从我的大学宿舍开始讲起吧.作为一个八零后,我要暴露年龄了. 我们宿舍四个人,大一的时候学校不让上网,不给开通网络.但是,宿舍有一个人比较有钱,率先买了一台电脑.那买了电脑干什么呢? 首先,有单机 ...

  7. 第5讲 | 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?

    第一层(物理层) 水晶头要做交叉线,用的就是所谓的 1-3.2-6 交叉接法. 有一个叫做 Hub 的东西,也就是集线器.这种设备有多个口,可以将宿舍里的多台电脑连接起来.但是,和交换机不同,集线器没 ...

  8. 计算机网络-3-5-以太网MAC层及交换机

    MAC层的硬件地址 在局域网中,硬件地址又称为物理地址或者MAC地址(因为这种地址用在MAC帧中) IEEE 802标准为局域网规定了一种48位(6字节)的全球地址,固化在适配器的ROM中. 如果计算 ...

  9. 网络协议学习笔记(二)物理层到MAC层,交换机和VLAN,ICMP与ping原理

    概述 之前网络学习笔记主要讲解了IP的诞生,或者说整个操作系统的诞生,一旦有了IP,就可以在网络的环境里和其他的机器展开沟通了.现在开始给大家讲解关于网络底层的相关知识. 从物理层到MAC层:如何在宿 ...

随机推荐

  1. python笔记04-----字典、元组、集合操作

    1.字典 是一种key-value的数据类型,使用就像字典 无序的因为无下标 创建一个字典: info = {     'stu1':'qq',     'stu2':'ww',     'stu3' ...

  2. Node.js创建第一个应用

    在我们创建 Node.js 第一个 "Hello, World!" 应用前,让我们先了解下 Node.js 应用是由哪几部分组成的: 引入 required 模块:我们可以使用 r ...

  3. 微信小程序(二)框架的基本组成

    安装好 微信web开发者工具后. 让我们来了解一下工具的框架,上图: 工具总共分为三个部分,左上角红框框: 模拟器:模拟手机小程序界面,模拟器左上角可以选择手机型号,右上角红框处,千万别选成Offic ...

  4. Cheatsheet: 2018 04.01 ~ 04.30

    Web Writing VS Code Extensions with TypeScript Docker How to write excellent Dockerfiles Raspberry P ...

  5. [javaEE] Servlet中Session的使用

    Session是一个域 作用范围:当前会话范围 生命周期:当程序第一次调用request.getSession()创建出客户端的session对象,30分钟没有操作认为超时,这个可以在web.xml中 ...

  6. SpringBoot 初体验

    1.Spring Boot 简介 简化Spring应用开发的一个框架 整个Spring技术栈的一个大整合 J2EE开发的一站式解决方案 2.微服务 2014, martin fowler 微服务:架构 ...

  7. UI设计师必备

    网站大全 国外的花瓣--Pinterest • The world’s catalog of ideas 字体海洋--求字体网提供中文和英文字体库下载.识别与预览服务,找字体的好帮手原创设计UI--站 ...

  8. Java数据库操作(JDBC)

    JDBC Java数据库连接(Java DataBase Connectivity,JDBC)用于在Java程序中实现数据库操作功能,它提供了执行SQL语句.访问各种数据库的方法,并为各种不同的数据库 ...

  9. cookie、session、分页

    一.cookie HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情 ...

  10. python,tensorflow线性回归Django网页显示Gif动态图

    1.工程组成 2.urls.py """Django_machine_learning_linear_regression URL Configuration The ` ...