首先解释一下介质是指信号最终的路径是在光纤中传输还是在超五类双绞线中传输。
-
MII是指介质无关接口:这是MAC层与PHY层之间的接口,他们之间的信号传输一般就是芯片到芯片的传输,还没有到介质中传输,所以说他们之间的传输是与介质无关的;
-
MDI是指与介质有关的接口:因为MDI信号是从PHY出来的信号经过变压器后连接到RJ45连接器上的,RJ45连接器是连接超五类双绞线的接口,不是连接光纤的接口,所以说MDI是与介质相关的。
关于MDI:
结构
从硬件的角度看,以太网接口电路主要由 MAC(Media Access Control,MAC)控制器和物理层接口 PHY(Physical Layer,PHY)两大部分构成。如下图所示:
但是,在实际的设计中,以上三部分并不一定是独立分开的。 由于,PHY 整合了大量模拟硬件,而 MAC 则是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将 MAC 集成进微控制器而将 PHY 留在片外。更灵活、密度更高的芯片技术已经可以实现 MAC 和 PHY 的单芯片整合。总的来说,可分为下列几种类型:
CPU 集成 MAC 与 PHY,目前来说并不多见。
CPU 集成 MAC,PHY 采用独立芯片,这种比较常见。
CPU 不集成 MAC 与 PHY,MAC 与 PHY 采用集成芯片(形成一个独立的网卡),这种也比较常见。
MAC 及 PHY 工作在 OSI 七层模型的数据链路层和物理层。具体如下
IEEE802.3 标准文档下载地址:https://ieeexplore.ieee.org/browse/standards/get-program/page/。它分为很多个 section。标准文档贼长,没有全部看过,大概第一部分是 10Mb/s 以太网(其中有关于 MAC 的规范),第二部分是 100BASE-T 100Mb/s 基带网络介绍,第三部分是 1000 Mb/s 基带网络介绍,第四部分是 10 Gb/s 基带网络介绍。但是,并不是说每部分都是独立的。
什么是 MAC
MAC(Media Access Control,MAC)即媒体访问控制。该部分有两个概念:MAC 可以指的是一个硬件控制器,也可以指 MAC 通信协议。该协议位于 OSI 七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。MAC 硬件大约就是下面的样子了:
在发送数据的时候,MAC 协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC 协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至 LLC(逻辑链路控制)层。该层协议是以太网 MAC,由 IEEE-802. 3 以太网标准定义。最新的 MAC 同时支持 10Mbps 和100Mbps 两种速率。
以太网数据链路层其实包含 MAC(介质访问控制)子层和 LLC(逻辑链路控制)子层。一块以太网卡 MAC 芯片的作用不但要实现 MAC 子层和 LLC 子层的功能,还要提供符合规范的 PCI 界面以实现和主机的数据交换。
MAC 从 PCI 总线收到 IP 数据包或者其他网络层协议的数据包后,将之拆分并重新打包成最大 1518Byte、最小 64Byte 的帧。这个帧里面包括了目标 MAC 地址、自己的源 MAC 地址和数据包里面的协议类型(比如IP数据包的类型用 80 表示),最后还有一个DWORD(4Byte)的 CRC 码。
可是目标的 MAC 地址是哪里来的呢?这牵扯到一个 ARP 协议(介乎于网络层和数据链路层的一个协议)。第一次传送某个目的 IP 地址的数据的时候,先会发出一个 ARP 包,其 MAC 的目标地址是广播地址,里面说到:“谁是 xxx.xxx.xxx.xxx 这个 IP 地址的主人?”因为是广播包,所有这个局域网的主机都收到了这个 ARP 请求。收到请求的主机将这