数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范,数据链路层将物理层的0和1的比特流数据划分为数据帧进行传输。数据链路定义的是互连的设备之间传输的规范,因此,可以将数据链路视为网络传输中的最小单位,互联网即为“数据链路的集合”。该层包含的一些相关技术主要有:MAC寻址,介质共享、分组交换、环路检测和VLAN等。
MAC地址以及根据MAC地址转发
- MAC地址:MAC地址是用于识别数据链路中互连的节点。MAC地址长48比特,在使用网卡(NIC)的情况下,MAC地址一般会被烧入到ROM中,因此,任何一个网卡的MAC地址都是唯一的,在全世界都不会重复(不包括虚拟网卡等特殊情况)。
- 根据MAC地址转发:在交换机中,如何根据数据链路层中每个帧的目标MAC地址,决定从哪个网络接口发送数据呢?这里涉及到MAC寻址以及转发表,转发表就是用来用以记录发送接口的表。转发表不需要使用者在每个终端或者交换机上手工设置,而是可以自动生成,即自学,交换机自学的过程如下图所示。数据链路层的每个通过点在接到包时,会从中将源MAC地址以及曾经接收该地址发送的数据包的接口作为对应关系记录到转发表中。
- 交换机的转发方式:
- 存储转发:存储转发方式检查以太网数据帧末尾的FCS位后再进行转发。因此,可以避免发送由于冲突而被破坏的帧或者噪声导致的错误帧。
- 直通转发:直通转发方式不需要将整个帧全部接收下来以后再进行转发。只需要在得知目标地址即可开始转发。因此,具有延迟较短的优势,但同时也不可避免的有发送错误帧的可能性。
共享介质型网络
从通信介质的使用方法上来看,网络可以分为共享介质型和非共享介质型。
介质共享型网络是指由多个设备共享一个通信介质的一种网络。在这种方式下,设备之间使用同一载波信道进行发送和接收,因此,基本上采用半双工通信方式,所以必须对介质进行访问控制。共享介质型网络中有两种介质访问控制方式:
- 争用方式:争用方式是指争夺获取数据传输的权利,也叫CSMA(载波监听多路访问),主要介绍一种改良的CSMA方式:CSMA/CD方式,它要求每个站提前检查冲突,一旦发生冲突,则尽早释放信道。其工作原理如下:
1.如果载波信道上没有数据流动,则任何站都可以发送数据;
2.检查是否会发生冲突,一旦发生冲突,放弃发送数据(实际上会发送一个阻塞报文后再停止发送),同时立即释放载波信道。
3.放弃发以后,随机延时一段时间,再重新争用介质,重新发送帧。
- 令牌传递方式:令牌环方式是沿着令牌环发送一种叫做“令牌”的特殊报文。只有获得令牌的站才能发送数据。这种方式有两个特点:一是不会发生冲突,而是每个站都有通过平等循环获得令牌的机会。令牌环的传递方式如下图所示:
非共享介质型网络
非共享介质型是指不共享介质,是对介质采取专用的一种传输控制方式,在这种方式下,网络中的每个站直连交换机,由交换机赋负责转发数据帧,此种方式发送端和接收端不共享通信介质,很多情况下采用全双工通信方式。
通过以太网交换机构建网络,从而使计算机与交换机端口之间形成了一对一的连接,实现全双工通信,在这种一对一连接全双工通信方式下不会发生冲突,因此,不需要CSMA/CD的机制就可以实现更高效的通信。
VLAN
VLAN(TAG VLAN),是一种用于区分网段的标签。TAG VLAN对每个网段都用一个VLAN ID的标签进行唯一标识,在交换机中传输帧时,在以太网首部假如这个ID标签,根据这个值将数据帧发送到指定的那个网段。添加VLAN的好处在于,进行网络管理时,遇到分散网络负载、交换部署网络设备的位置等情况时,以往不得不修改网络的图拓扑结构,即需要进行硬件线路的改造,而使用VLAN的话,只需要修改网段即可。下图为普通以太网帧格式和添加VLAN标签的以太网帧格式: