一、数据链路的作用
数据链路,指OSI参考模型中的数据链路层,有时也指以太网、无线局域网等通信手段。
TCP/IP中对于OSI参考模型的数据链路层及以下部分(物理层)未作定义。因为TCP/IP以这两层的功能是透明的为前提。然而,数据链路的知识对于深入理解TCP/IP与网络起着至关重要的作用。
数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范。通信媒介包括双绞线电缆、同轴电缆、光纤、电波以及红外线等介质。此外,各个设备之间有时也会通过交换机、网桥、中继器等中转数据。
实际上,各个设备之间再数据传输时,数据链路层和物理层都是必不可少的。众所周知,计算机以二进制0,1来表示信息,然而实际的通信媒介之间处理的却是电压的高低、光的闪灭以及电波的强弱等信号。把这些信号与二进制0、1进行转换正是物理层的责任。数据链路层处理的数据也不是单纯的0、1序列,该层把他们集合为一个叫做“帧”的块,然后再进行传输。
介绍OSI参考模型中数据链路层的相关技术,包括MAC地址(物理寻址)、介质共享、非共有网络、分组交换、环路检测、VLAN(Virtual Local Area Network,虚拟局域网)等。也会涉及作为传输方式的数据链路,如以太网、WLAN(Wireless Local Area Network,无线局域网)、PPP(Point to Point Protocol,点对点协议)等概念。数据链路也可以被视为网络传输中的最小单位。其实,仔细观察连通全世界的互联网就可以发现,它也不外乎是由众多这样的数据链路组成的,因此又可以称互联网为“数据链路的集合”。
在以太网与FDDI(Fiber Distributed Data Interface,光线分布式数据接口)的规范中,不仅包含OSI参考模型的第2层数据链路层,也规定了第1层物理层的规格。而在ATM(Asynchronous Transfer Mode,异步传输方式)的规范中,还包含了第3层网络层的一部分功能。
二、数据链路相关技术
2.1.MAC地址
MAC地址用于识别数据链路中互连的节点。以太网或FDDI中,根据IEEE802.3的规范使用MAC地址。其他诸如无线LAN、蓝牙等设备中也是用相同规格的MAC地址。
MAC地址长48比特。在使用网卡(NIC)的情况下,MAC地址一般会被烧入到ROM中。因此,任何一个网卡的MAC地址都是唯一的,在全世界都不会重复。
MAC地址中3~24位(比特位)表示厂商识别码,每个NIC厂商都有特定唯一的识别数字。25-48位是厂商内部为识别每个网卡而用。因此,可以保证全世界不会有相同MAC地址的网卡。
IEEE802.3制定MAC地址规范时没有限定数据链路的类型,即不论哪种数据链路的网络(以太网、FDDI、ATM、无线LAN、蓝牙等),都不会有相同的MAC地址出现。
2.2.共享介质型网络
从通信介质(通信、介质)的使用方法上看,网络可分为共享介质型和非共享介质型。
共享介质型网络指由多个设备共享一个通信介质的一种网络。最早的以太网和FDDI就是介质共享型网络。在这种方式下,设备之间使用同一个载波信道进行发送和接受。为此,基本上采用半双工通信方式,并有必要对介质进行访问控制。
共享介质型网络中有两种介质访问控制方式:一种是争用方式,另一种是令牌传递方式。
争用方式(Contention)是指争夺获取数据传输的权力,也叫CSMA(载波监听多路访问)。这种方法通常令网络中的各个站采用先到先得的方式占用信道发送数据,如果多个站同时发送帧,则会产生冲突现象。因此会导致网络拥堵与性能下降。
在一部分以太网当中,采用了改良CSMA的另一种方式——CSMA/CD方式。CSMA/CD要求每个站提前检查冲突,一旦发生冲突,则尽早释放信道。其具体工作原理如下:
如果载波信道上没有数据流动,则任何站都可以发送数据。
检查是否会发生冲突。一旦发生冲突时,放弃发送数据,同时立即释放载波信道。
放弃发送以后,随机延时一段时间,再重新争用介质,重新发送帧。
令牌传递方式是沿用令牌环发送一种叫做“令牌”的特殊报文,是控制传输的一种方式。只有获得令牌的站才能发送数据。这种方式有两个特点:一是不会有冲突,二是每个站都有通过平等循环获取令牌的机会。因此,即使网络拥堵也不会导致性能下降。
当然,在这种方式中,一个站在没有收到令牌前不能发送数据帧,因此在网络不太拥堵的情况下数据链路的利用率也就达不到100%。为此,衍生了多种令牌传递的技术。例如,早期令牌释放、令牌追加等方式以及多个令牌同时循环等方式。这些方式的目的都是为了尽可能地提高网络性能。
2.3.非共享介质网络
非共享介质网络是指不共享介质,是对介质采取专用的一种传输控制方式。在这种方式下,网络中的每个站直连交换机,由交换机负责转发数据帧。此方式下,发送端与接收端并不共享通信介质,因此很多情况下采用全双工通信方式。
不仅ATM采用这种传输控制方式,最近它也成为了以太网的主流方式。通过以太交换机构建网络,从而使计算机与交换机端口之间形成一对一的连接,即可实现全双工通信。在这种一对一连接全双工通信的方式下不会发生冲突,因此不需要CSMA/CD的机制就可以实现更高效的通信。
该方式还可以根据交换机的高级特性构建虚拟局域网(VLAN,Virtual LAN)、进行流量控制等。当然,这种方式也有一个致命的弱点,那就是一旦交换机发生故障,与之相连的所有计算机之间都将无法通信。
2.4.根据MAC地址转发
在使用同轴电缆的以太网等介质共享网络中,同一时间只能有一台主机发送数据。当连网的主机数量增加时,通信性能会明显下降。若将集线器或集中器等设备以星型连接,就出现了一款新的网络设备——交换集线器,这是一种将非介质共享型网络中所使用的交换机用在以太网中的技术,交换集线器也叫做以太网交换机。
以太网交换机就是持有多个端口的网桥。他们根据数据链路层中每个帧的目标MAC地址,决定从哪个网络接口发送数据。这时所参考的、用以记录发送接口的表就叫做转发表(Forwarding Table)。
这种转发表的内容不需要使用者在每个终端或交换机上手工设置,而是可以自动生成。数据链路层的每个通过点在接到包时,会从中将源MAC地址以及曾经接收该地址发送的数据包的接口作为对应关系记录到转发表中。以某个MAC地址作为源地址的包由某一接口接收,实质上可以理解为该MAC地址就是该接口的目标。因此也可以说,以该MAC地址作为目标地址的包,经由该接口送出即可。这一过程也叫自学过程。
由于MAC地址没有层次性,转发表中的入口个数与整个数据链路中所有网络设备的数量有关。当设备数量增加时,转发表也会随之变大,检索转发表所用的时间也就越来越长。当连接多个终端时,有必要将网络分成多个数据链路,采用类似于网络层的IP地址一样对地址进行分层管理。
2.5.环路检测技术
通过网桥连接网络时,一旦出现环路该如何处理?这与网络的拓扑结构和所使用额度网桥种类有直接关系。最坏的情况下,数据帧会在环路中被一而再再而三地持续转发。而一旦这种数据帧越积越多将会导致网络瘫痪。
为此,有必要解决网络中的环路问题。具体有生成树与源路由两种方式。如果使用具有这些功能的网桥,那么即使构建了一个带有环路的网络,也不会造成那么严重的问题。只要搭建合适的环路,就能分散网络流量,在发生某一处路由故障时选择绕行,可以提高容灾能力。
该方法由IEEE802.1D定义。每个网桥必须在每1-10秒内相互交换BPDU(Bridge Protocol Data Unit)包,从而判断哪些端口使用哪些不使用,以便消除环路。一旦发生故障,则自动切换通信线路,利用那些没有被使用的端口继续进行传输。
例如,以某一个网桥为构造树的根(Root),并对每个端口设置权重。这一权重可以由网络管理员适当地设置,指定优先使用哪些端口以及发生问题时该使用哪些端口。
生成树法其实与计算机和路由器的功能没有关系,但是只要生成树的功能就足以消除环路。
IEEE802.1D中所定义的生成树方法有一个弊端,就是在发生故障切换网络时需要几十秒的时间。为了解决这个用时过长的问题,在IEEE802.1W中定义了一个叫RSTP(Rapid Spanning Tree Protocol)的方法。该方法能将发生问题时的恢复时间缩短到几秒以内。