二、数据链路层

二、数据链路层

数据链路层负责在两个相邻节点间的线路上,出差错地传送以“帧”为单位的数据。每一帧包括一定数量的数据和一些必要的控制信息。和物理层相似,数据链路层要负责建立维持和释放数据的连接。在传送数据时,如果接受点检测到所传数据中有差错,就通知发方重发这一帧。即数据链路层将数据分成一个个数据帧,以数据帧为单位进行传输,遇错重发。实现数据的无差错传送。它接收物理层的原始数据位流以组成帧(位组),并在网络设备之间传输。帧含有源站点和目的站点的物理地址。

数据链路层可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其连接。媒体是长期的,而连接是有生存期的。在连接生存期内收发两端可以进行不等的一次或多次数据通信。每次通信都要通过建立通信联络和拆除通信联络两过程。这种建立起来的数据收发关系就叫做数据链路。而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错。数据链路的建立和拆除,对数据的检错和纠错,是数据链路的基本任务。

链路层是为网络层提供数据传送服务的,这种服务是依靠本层具备的功能以及物理层提供的服务来实现。数据链路层协议的基本目的如下:

(1)物理层的位(1和0)组成称作“帧”的信息逻辑单位,像字节一样,一帧也是一系列连续的位组成的数据单位。

(2)错误检测,并且有时是改正错误。

(3)控制数据流。

(4)识别网上每台计算机(寻址)。

像大多数其他层一样,数据链路层也将它自己的控制信息加到数据帧前部。这信息包括一个源地址和目的地址(物理的或硬件的)、有关帧的长度的信息和一个上层协议的指示。下列网络互联设备通常与OSI数据链路层有关:①网桥;②智能集线器;③网络接口板(包括网络接口卡、适配器等)。

数据链路层的功能通常被划分到下面两个子层:媒介访问控制(Media Access Control,简称MAC)和逻辑链路控制(Logical Link Control,简称LLC)。

(1)媒介访问控制。媒介访问控制子层控制着收发器,共享单一传输信道的方式。

(2)逻辑链路控制。逻辑链路控制子层的功能是,当从一台设备向另一台设备传输数据时,建立和维护链路。

(一)逻辑拓扑结构

网络实体依靠网络的逻辑拓扑结构来传送数据。前面讨论的物理拓扑结构,是传输媒介的结构或数据的路径。在某些特定情况下,物理网络拓扑结构不能反映网络的操作方式,真正的信号路径叫做逻辑拓扑结构。传输媒介连接设备或媒介访问机制,可从一个与物理拓扑结构不同的逻辑链路方式发送。物理拓扑结构中的总线型结构和星型结构的逻辑拓扑结构是一样的,都是逻辑总线结构。

(二)媒介访问控制方式

逻辑拓扑结构是用特定的规则来控制何时准许网络实体传送信号,这个控制过程叫做媒介控制。为了理解此事的重要性,可以设想在一个有大量设备的网上,没有一个媒介访问规则,如果所有设备在它们准备好时就发送,那么有时它们就会同时发送,结果,信号就会被组合和破坏造成数据丢失,这叫做碰撞,它破坏了有效通信,人们无法在网络上工作,除非人们可控制或消除碰撞的影响。通常,有下列三种媒介访问方法:①争用(Contention);②令牌传递(Token passing);③轮询(Polling)。

在选择实现上述媒介方法之一的协议之前,要考虑以下4个问题:①数据传输的并发性;②数据传输量;③数据的时间敏感性;④网络上当前设备的数量。把这些因素与在这一节讨论的利弊结合起来,能帮助人们决定究竟哪种媒介访问方法最适合于自己的网络。

1.争用

争用系统是建立在媒介访问允许“先来先服务”的原则基础上的。换句话说,每个网络设备都竞争媒介的控制权。争用系统设计成网络上的所有设备在它们想要发送时就能发送,这种做法最终会因碰撞的发生而导致数据丢失。每当有一新设备上网时,碰撞次数都会按几何级数增长。为减少碰撞次数,开发出一种新的争用协议,要求各站点在发送之前,首先对信道进行侦听。如果侦听站点检测到了一个信号,它就抑制自己发送,稍后再重试。这些协议叫做载波侦听、多重访问(CSMA)协议,CSMA极大地减少碰撞,但不能消除碰撞。当有两个站点对电缆进行侦听时,发现信道空闲,然后同时发送,仍会发生碰撞。这种争用协议的例子有:载波侦听多重访问/冲突检测(CSMA/CD)和载波侦听多重访问/冲突避免(CSMA/CA)。其中,CSMA/CD协议不仅在传输前对电缆进行侦听,也检测碰撞,并发起重传。CSMA/CD协议相当普遍,数字设备公司的Ethernet版本2和IEEE 802.3都是CSMA/CD协议的例子。而CSMA/CA协议使用可以分时访问(或请求发送)来获得对媒介的控制。

2.令牌传递

在令牌传递系统中,一个小的数据帧(令牌)以顺序方式从一台设备传到另一台设备。令牌是一个将媒介控制权暂时交给持有令牌的那台设备的一个特定的信息。令牌在网上的设备中转移着媒介访问控制权。每台设备都知道自己应从哪台设备接收令牌,然后应向哪台设备传递令牌。每台设备都周期性地获取令牌,完成自己的任务,然后将令牌传递,使下一台设备能使用它。各协议都对每台设备持有令牌的时间加以限制(有几个令牌传递的协议可用)。两个令牌传递的LAN标准是IEEE 802.4令牌总线和802.5令牌环。令牌总线网使用令牌传递访问控制,其在物理上或逻辑上采用总线拓扑结构,而令牌环使用令牌传递设备控制,并且物理上或逻辑上使用环形拓扑结构。另外一个令牌传递标准(对于光纤局域网)叫做FDDI,意为分布式光纤数据口。令牌传递网络,适用于设置优先级的、时间敏感通信的网络,如数字化声音或视频,或通信量负载重的网络。

3.轮询

轮询也是一种访问方法,它是指定一台设备(叫做控制器,或主设备)为媒介访问的管理器,这台设备按一些事先定好的顺序,询问另外每一台设备(在这里被称做次设备)。为从次设备获取数据,主设备向次设备发出一个数据请求,接收次设备发来的数据。然后,主设备再轮询另一个设备,并接收那台次设备发来的数据。依此类推,协议限制每一台设备在一次轮询后能传送多少数据。轮询系统对于时间敏感设备(如自动化设备组成的网络)是一个理想的系统。

(三)寻址

计算机网络实体需要某种方法来区分网络上的设备,这是通过寻址来完成的。寻址类似于邮政服务。邮递员用街道、城市和国家的名字,外加建筑物编号来投递信件。通常,也用邮政编码来简称不同地址的名字。同样,计算机网络使用软件进程、物理设备和网络号或网络名给每一个计算机网络实体赋予唯一的地址。有时,计算机网络也用逻辑名或逻辑号来简称一个较长的地址,数据链路层只关心物理设备地址(也叫做MAC地址),物理设备地址是由硬件赋予的唯一物理地址。硬件厂商使用由标准化组织分配给它们的地址,地址的格式依赖于所使用的媒介访问方法(这就是为什么叫MAC地址的缘故)。通常网卡地址由6个字节构成,其中前三个地址为厂商地址,而后三位是厂商赋予的世界上唯一的地址号。你不用去设置物理地址,但是,你应该知道它们的存在,以使自己了解在网络上怎样识别另外一台计算机和数据是怎样发送给它的。虽然网上的计算机可用物理地址来表示网上所有的设备。但在局域网传输数据时,只有物理地址和读到地址匹配的那台计算机才接收数据,其他所有设备不去接收。

物理设备地址也被网桥用来在分离的传输媒介段之间有选择地重发数据信号。网桥不要求进行初始化编程,安装后,它们就能“记住”网络设备的位置,并建一个设备/网段匹配表。通过分析数据包的目的地址,网桥能合理地向前传递数据包。如果目的地数据包来到那个网段上,那么网桥就将它丢弃,否则,数据包被发往适当的网段。

(四)传输同步

一旦发送方知道何时发送数据,接收方就必须知道何时接收一个完整的帧。在第“OSI物理层”中,讨论了位同步、作为协调位的发送与接收的方法。但是,位同步仅在位一级传递时间间隔,计算机网络给位增加了结构,组成字符、字节、8位字节或帧。除同步位时间间隔外,网上计算机还必须协调帧的传输。下列三种传输同步方法决定了网络怎么协调帧的传输:①异步;②同步;③等时。网络使用的传输同步方法应从以下几个方面考虑:①传输同步会增加可观的开销,浪费网络容量;②实施一种不合适方法的网络,会招致大量的数据传输延迟。

1.异步传输

异步传输方法依赖于发送与接收设备都维持它们的内部时钟。两台设备使用相似的计时,但不对它们的时钟进行同步化操作。

异步设备使用异步位同步方法分别发送每一帧,每一帧或位串以一个起始位开始发送出去,而不管其他各帧的计时。因为串相对来说比较短,所以两台设备之间的计时错误不会引起接收设备弄错起始位。由于这个原因,这种类型的传输常用于字符在随机时间间隔内产生的场合。比如,用户在一台终端上击键,起始位和停止位不仅在指示接收方该何时去测量位串的出现,而且指出数据流的开始与结束。

虽然异步传输相对来说比较简单,但仍会发生位错误。一种广泛使用的检测异步传输中的错误的方法,是在一帧中的每个字节结尾增加一个附加位,称为奇偶校验位。

使用奇校验错误检测,附加位的选择原则是要保证发送的位串中1的个数为奇数。同样,使用偶校验错误检测,附加位的选择原则是要保证发送的位串中1的个数为偶数(包括检验位)。当然,接收方与发送方应使用相同的校验机制。但是,使用校验的一个主要问题是:有可能发生多位错,而无法检测出来,当然也就无法纠正。

2.同步传输

同步传输方法要求通信设备负责提供一个传输(或成帧)时钟,这可用下列方法来实现:①发送特殊位串(在面向位的情况下)或一个或多个控制字符(SYNC,在面向字符的情况下);②使用一个专服务于时钟的独立信道。

这两种方法都指示哪一位是一字节或帧的开始位。使用这种方法,接收方就能知道它何时需要开始接收数据,并计算一个字节或帧的填充位数。

同步传输会比异步传输少发生计时错误,因为收发双方都使用同一时钟。为在没有数据发送时仍保持成帧,同步传输系统使用了填充位,这样,发送方就能保持传输计时的完整性。

对于传输大块数据,同步传输是一个较有效的方法,因为它消除了与异步传输有关的大量额外开销。

与异步传输一样,同步传输也可进行错误检测,常用的方法是循环冗余检测(CRC)。CRC处理是将数据块纳入一个算法,计算的结果(叫做CRC)在数据发送前被附加到数据块上。在接收方,使用同样的算法,然后将结果与CRC域进行比较,出现任何差异都意味着帧已在传输过程中被破坏。CRC比各异步错误检测法都更能检测出多位错。

3.等时传输

等时传输法使用一个常量固定频率传输时钟来产生设定时间槽设备产生一个时钟信号,然后传递给网上所有设备。

使用规定的媒介访问规则,网络设备监视网络上各时间槽内的空闲空间,然后按需要插入数据。在每个时间槽内都可插入多个帧,直到槽满为止。使用这个方法,既无需像异步传输那样为每一帧都提供一个时钟信号,也无需像同步传输那样在一个串的开始由发送方提供一个时钟信号,而是由一个设备(不进行数据传输)为网上所有其他设备以恒定速率提供一个时钟。

(五)连接服务

网络层提供下列三种类型的连接服务:

(1)无确认无连接服务。以无流量控制、无差错控制及无包顺序控制的方式发送和接收数据。

(2)面向连接的服务。通过确认,提供流量控制、差错控制及包顺序控制。

(3)有确认无连接服务。使用确认,在点到点传输之间提供流量和差错控制。

连接服务使用确认,这是一个表示数据帧或包收到的特殊消息。下列数据链路LLC层连接服务允许使用确认。数据链路层还包括差错校验、流量控制和差错控制等。