OSI参考模型最下两层是数据链路层和物理层,这两层是纯粹的物理层,也是我们研究协议栈接触比较少的内容,本文主要介绍这两层的一些基础知识。
链路层和物理层在OSI参考模型中位置如下图:
一、以太网MAC
MAC是Media Access Control的缩写,即媒体访问控制子层,对应OSI和TCP/IP模型的链路层,主要用于连接和控制物理层。而MAC层又包括MAC(Medium Access Control ,介质访问控制层)和LLC(Logical Link Control,逻辑链路控制)两部分。
MAC(媒体访问控制子层)的主要功能是:
上层协议层发送数据时,MAC层检查是否可以发送数据(通过PHY芯片检查链路是否冲突)。如果链路空闲,则给数据帧添加一些必要的控制信息,将包装好的数据通过MII接口发往PHY芯片,PHY芯片在将数字信号转换为实际的物理电平信号发送到实际电气设备上。
接收数据时,PHY芯片将数据位传递给MAC层,MAC(介质访问控制层)首先校验帧格式,若无错误则发送给LLC层,LLC层负责识别上层协议类型,主要通过LLC头进行识别。
典型的接受数据过程如图:
二、以太网PHY
PHY是模拟电路元件,主要用于将MAC层传递下来的数字信号转换为物理电气信号。PHY有两种模式,10BaseT和100BaseTX,主要区别是两者的硬件编码不同,10BaseT采用曼彻斯特编码,100BaseTX采用4B/5B编码。
PHY的主要功能如下:
发送数据时,接受MAC层传递过来的数据。注意,对PHY来说,没有任何帧的概念,无论是LLC头,还是CRC校验码,对PHY来说都一样。PHY将并行数据转换为串行流数据,再按物理编码规则,转换为物理电气信号发送出去。
接收数据过程与发送数据相反。
PHY的一个重要作用是实现CSMA/CD的部分功能,它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待;一旦检测到网络空闲,再等待一个随机时间后将送数据出去;如果两个碰巧同时送出了数据,那样必将造成冲突,冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据。这个随机时间很有讲究的,并不是一个常数,在不同的时刻计算出来的随机时间都是不同的,而且有多重算法来应付出现概率很低的同两台主机之间的第二次冲突。
除此之外,PHY还提供和对端连线状态提示的功能,通过LED灯显示链路状态。我们插网线后看到的一闪一闪的灯。
三、MII(媒体独立接口)
明晚继续。。。。。。