第三章 数据链路层

数据链路层属于计算机的底层。数据链路层使用的信道主要有以下两种类型:
(1)点对点信道 这种信道使用一对一的点通信方式。
(2)广播信道 这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
这一章,我们首先介绍点对点信道和在这种信道上最常用的点对点协议PPP。然后再用较大篇幅讨论共享信道的局域网和有关的协议。
链路
数据链路
网络适配器
也有人将链路分为物理链路和逻辑链路。物理链路就是上面所说的链路,逻辑链路就是上面说的数据链路,是物理链路上加上必要的通信协议。
早期的数据通信协议叫做通信规程。因此在数据链路层,规程和协议是同义语。
帧。数据链路层把网络层交下来的 的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并交给网络层。在因特网中,网络层协议数据单元就是IP数据报。
为了把主要精力放在点对点信道的数据链路层协议上,可以采用如图所示的三层模型。这三种模型中,不管那一段链路上的通信,我们都看成是结点和结点的通信,而每个结点只有下三层网络层、数据链路层和物理层。点对点信道的数据链路层在进行通信时的主要步骤如下:
(1)节点A的数据链路层把网络交下来的IP数据报添加首部和尾部封装成帧。
(2)结点A把封装好的帧发送给结点B的数据链路层。
(3)若结点B的数据链路层收到的帧无差错,则从收到的帧提出IP数据报上交给上面的网络层:否则丢弃这个帧。

三个基本问题
数据链路层协议有许多种,但有三个基本问题则是共同的。这三个基本问题是:封装成帧、透明传输和差错检测。

1.封装成帧
封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。我们知道,分组交换的一个重要概念就是:所有在因特网上传送的数据都是以分组为传送单位。网络层的IP数据报送到数据链路层就成为帧的数据部分。帧的数据部分的前面和后面分别加上首部和尾部,构成了一个完整的帧。因此,帧长等于数据部分的长度加上帧的首部和帧的尾部长度,而首部和尾部的一个重要作用就是进行帧定界。首部和尾部还包括许多必要的控制细腻。在发送帧时,是从帧首部开始发送。各种数据连路程协议都要对帧首部和帧尾部格式有明确的规定。显然,为了提高帧的传输效率,应当使帧的数据部分长度尽可能的大于首部和尾部长度。但是,每一种链路层协议都规定了帧的数据部分的长度上限–最大传送单元MTU。
当数据时可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。我们知道,ASCII码是7位编码,一共可组成128个不同的ASCII码,其中可打印的有95个,而不可打印的控制字符有33个。图3-5的例子可说明帧定界的概念。控制字符SOH放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT表示帧的结束。请注意SOH和EEOT都是控制字符的名称。他们的十六进制编码分别是01和04并不是S,O,H三个字符。
当数据在传输中出现差错时,帧定界符的作用更加明显。假定发送端在尚未发送完一个帧时突然出现故障。
2.透明传输
由于帧的开始和结束的标记是使用专门制定的控制字符,因此,所传输的数据中的任何比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。当传送的帧使用文本文件组成的帧时,其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符。可见不管从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输。当数据部分是非ASCII码的文本文件时,情况就不同了。如果数据中的某个字节的二进制代码恰好和SOH或EOT这种控制符一样,数据链路中的某个字节的二进制代码恰好和SOH或EOT这种控制字符一样,而把剩下的那部分数据丢弃。
像图3-6所示的帧的传输显然就不是“透明传输”,因为当遇到数据中碰巧吹安字符“EOT”时就传不过去了。数据中的“EOT”将被错误地解释为“传输结束”的控制字符,而在其后面的数据因找不到“SOH”被接收端当做是无效帧而被丢弃。但实际上在数据中出现的字符“EOT”并非控制字符而仅仅是二进制数据00000100。
为了解决传输问题,就必须是数据中可能出现的控制字符“SOH”和“EOT”在接收端不被解释为控制字符。具体方法是:发送端的数据链路层咋数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”。而在接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符。这种方法成为字节填充或字符填充。如果转义字符也出现数据当中,那么解决方法仍然是在转义字符的前面插入一个专一字符。因此当接收端接收到连续的两个转义字符时,就删除其中前面的一个。

3.错检测
显示的通信链路都不会是理想的。这就是说,比特在传输过程中可能会产生差错。1可能变成0,而0也可能变成1。这就叫做比特差错。比特差错是传输差错中的一种。本小节所说的“差错”,如无特殊说明,就是指“比特差错”。在一段时间内,传输错误的比特栈所传输比特总数的比率称为误码率。误码率与信噪比有很大的关系。如果设法提高信噪比,就可以使误码率减小。实际的通信链路并非理想的,他不可能使误码率下降到零。因此,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。目前在数据链路层广泛使用了循环冗余检测CRC检错技术。
下面通过一个例子来说明循环冗余检测的原理。
在发送端,先把数据划分为租,假定每组k个比特。现假定传送数据M=101001(k=6)。CRC运算就是在数据M后面添加供差错检测用的n位冗余码,然后构成了一个帧发送出去,一共发送(k+n)位。
这n位冗余码可用以下方法得出。用二进制的模2运算进行2的n次幂乘M的运算,这相当于在M后面添加n个0。得到的(k+n)位的数除以收发双方实现商定的长度为(n+1)位的除数P,得出商是Q而余数是R。在图中所示的例子中,M=101001(即k=6)。假定余数P=1101(n=3)。经模2除法运算后的结果是:商Q=110101,而余数R=001。这个余数R就作为冗余码拼接在数据M的后面发送出去。这种为了进行检错而添加的冗余码常称为帧检验序列FCS。因此加上FCS后发送的帧是101001001,公有(k+n)位。

在接收端把接受到的数据以帧为单位进行CRC检验:把收到的每一个帧都出以同样的除数P,然后检查得到的余数R。
如果在传输过程中无差错,那么经过CRC检验后得出的余数R肯定是0。
但如果出现误码,那么余数R仍等于零的概率是非常非常小的。
总之,在接收端对收到的每一帧经过CRC检验后。
(1)若得出的余数R=0,则判定这个帧没有差错,就接受。
(2)若余数R!=0,则判定这个帧有差错,就丢弃。
最后强调一下,在数据链路层若仅仅使用循环冗余检验CRC差错检测技术,则只能做到对帧的无差错接受,即“凡是接收端数据链路层接收到的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。以上的所述可以近似地表述为:“凡是接收端数据链路层接收的帧均无差错”。
传输的差错可分为两大类:一类就是前面所说的及最基本的比特差错,而另一类传输差错则更复杂一些,这就是收到的帧并没有出现比特差错,但却出现了帧丢失,帧重复或帧失序。以上三种情况都属于“传输差错”,但都不是这些帧里有“比特差错”。帧丢失很容易理解。但出现帧重复和帧失序的情况则较为复杂,对这些问题我们现在不展开讨论。我们应当明确的是,在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
我们知道,OSI的观点是必须把数据链路层座城市可开传输的。因此在CRC检错的基础上,增加了帧编号确认和重传机制。收到正确的真就要向发送端发送确认。发送端在一定的期限内若没有收到对方的确认,就认为出现了差错,因而就进行重传,直到收到对方的确认为止。但目前因特网广泛使用的数据链路层协议都不实用确认和重传机制,即不要求数据链路层向上提供可靠传输服务。如果在数据链路层传输数据时出现了差错并且需要进行改正,那么改正差错的任务就由上层协议(运输层的TCP协议)来完成。实践证明,这样可以提供通信效率。
3.2点对点协议PPP
在通信线路质量较差的年代,在数据链路层使用可靠传输协议层是一种好方法因此能实现可靠汆熟的高级数据链路控制HDLC就成为当时比较流行的数据链路协议。但现在HDLC已很少使用了。对于点对点的链路,简单得多的点对点协议PPP则是目前使用得最广泛的数据链路层协议。
1.PPP协议应满足的需求
(1)简单 IETF在设计因特网体系结构时把其中最复杂的部分放在TCP协议中,而网际协议IP则相对比较简单,他提供的是不可靠的数据报服务。在这种情况下,数据链路层没有必要提供比IP协议更多的功能。因此,对数据链路层的帧,不需要纠错,不需要序号,也不需要流量控制。
总之,这种数据链路层的协议非常简单:接收每收到一个帧,就进行CRC检验。如CRC检验正确,就收下这个帧:反之,就丢弃这个帧,其他什么都不做。
(2)封装成帧 PPP协议必须以规定特殊的字符作为帧界定符,以便使接收端收到的比特流中能准确地找出帧的开始和结束位置。
(3)透明性 PPP协议必须保证数据传输的透明性。这就是说,如果数据中碰巧出现了帧杰定富一样的比特组合时,就要草去有效的措施来解决这个问题。
(4)多种网络层协议 PPP协议必须能够在同一条物理链路上同时支持多种网络层协议的运行。当点对点链路所连接的局域网或路由器你时,PPP协议必须同时支持在链路所连接的局域网或路由器上云心的各种网络层协议。
(5)多种类型链路 除了要支持多种网络层的协议外,PPP还必须能够在多种类型的链路上运行。
(6)差错检测 PPP协议必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。若在数据链路层不进行差错检测,那么已出现差错的无用帧还要在网络中继续向前转发,因而会拜拜浪费许多的网络资源。
(7)检测连接状态 PPP协议必须具有一种机制能够及时自动检测出链路是否处于正常工作状态。当出现故障的链路隔了一段时间后又重新恢复正常工作时,就特别需要有这种及时检测功能。
(8)最大传送单元 PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值。这样做是为了促进各种实现之间的互操作性。如果高协议发送的分组过长并超过MTU的数值,PPP就要丢弃这样的帧,并返回差错。需要强调的是,MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。
(9)网络层地址协商 PPP协议必须提供一种机制使通信的两个网络层的实体能够通过协商知道或能够配置彼此的网络层地址。协商 的算法应尽可能简单,并且能够在所有的情况下得出协商结果。这对拨号连接的链路特别重要,因为仅仅在链路层建立了连接而不知道对方网络层地址时,则还不能够保证网络成能够传送分组。
(10)数据压缩协商 PPP协议必须提供一种方法来协商使用数据压缩算法。但PPP不要求将数据压缩算法进行标准化。
2.PPP协议不需要的功能
(1)纠错
(2)流量控制
(3)序号
(4)多点线路
(5)半双工或单工链路

3.PPP协议有三个组成成分
(1)一个将IP数据报封装到串行链路的方法。PPP既支持异步链路,也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分。这个信息部分的长度受最大传送单元MTU限制。
(2)一个用来建立、配置和测试数据链路的链路控制写LCP。通信的双方可协商一些选项。
(3)一套网络控制协议NCP

3.3.2 PPP协议的帧格式
1.字段意义
2.字节填充
3.零比特填充

3.2.3 PPP协议的工作状态

3.3使用广播信道的数据链路层
广播信道可以进行一对多的通信。下面要讨论的局域网使用的就是广播信道。局域网是在20世纪70年代发展起来的。局域网技术在计算机网络中占有非常重要的地位。
3.3.1 局域网的数据链路层
局域网最主要的特点是:网络作为一个单位所拥有,且地理范围和站点数目均有限。
局域网具有如下的一些优点:
(1)具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
(2)便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
(3)提高了系统的可靠性、可用性和生存性。
局域网可按网络拓补进行分类。由于集线器的出现和双绞线大量用于局域网中,星型以太网以及多级星型结构的以太网获得了非常广泛的应用。另外还有环形网,总线网,及树形网。
总线两端的匹配电阻吸收在总线上的传播的电磁波信号的能量,避免在总线上产生有害的电磁波反射。总线网可使用两种协议。一种是传统以太网使用的CSMA/CD,另一种是令牌传递总线网,即物理上是总线网而逻辑上是令牌环形网。另外是树形网,他是总线网的变形,都属于使用广播信道的网络,但这主要用于频分复用的宽带局域网。局域网经过了近三十年的发展,尤其是在快速以太网和吉比特以太网、10吉比特以太网进入市场后,以太网已经在局域网市场中占据了绝对优势。现在以太网几乎成为了局域网的同义词,因此本章从本节开始都是讨论以太网技术。
局域网可使用多种传输媒体。
必须指出,局域网工作的层次跨越了数据链路层和物理层。
共享信道要着重考虑的一个问题就是如何使众多用户能够合理而方便地共享通新媒体资源。这在技术上有两种方法:
(1)静态划分信道,
(2)动态媒体接入控制

3.3.2 CSMA/CD协议
人们通常把局域网上的计算机称为“主机”、“工作站”、“站点”或“站”。

3.4使用广播信道的以太网
3.4.1使用集线器的猩猩拓扑
3.4.2以太网的信道利用率
3.4.3以太网的Mac层
(1)MAC层的硬件地址
(2)MAC帧的格式

3.5 拓展的以太网
3.5.1在物理层拓展以太网
3.5.2在数据链路层扩展以太网
1.网桥的内部结构
2.透明网桥
3.源路由网桥
4.多借口网桥–以太网交换机

3.6高速以太网
3.61 100BASE-T以太网
(1)100BASE-TX 使用两对UTP5类线或屏蔽双绞线STP,其中一对用于发送,另一对用于接收。
(2)100BASE-FX 使用两根光纤,其中一根用于发送,另一根用于接收。
(3)100BASE-T4 使用4对UTP3类线或5类线,这是为已使用UTP3类线的大量用户而设计的。它使用3对线同时传送数据,用一对线作为碰撞检测的接收信道。
3.6.2吉比特以太网
吉比特以太网的标准IEEE 802.3z有以下几个特点:
(1)允许在1Gb/s下全双工和半双工两种方式工作。
(2)使用IEEE 802.3协议规定的帧格式。
(3)与10BASE-T和100BASE-T技术向后兼容。
(4)与10BASE-T和100BASE-T技术向后兼容。
吉比特以太网可用作现在网络的主干网,也可在自现有的以太网,另一种则是ANSI指定的光纤通道FC。采用成熟技术就能大大缩短吉比特以太网标准的开发时间。
吉比特以太网的物理层共有以下两个标准:
(1)1000BASE-X
(2)1000BASE-T
3.6.3 10吉比特以太网
10GE只工作在全双工方式,因此不存在争用问题,也不使用CSMA/CD协议。这就使得10GE的传输距离不再受进行碰撞检测的限制而大大提高了。10GE有两种不同的物理层:
(1)局域网物理层LAN PHY。局域网物理层的数据率10.000Gb/s,因此一个10GE交换机可以支持正好10个吉比特以太网接口。
(2)可选的广域网物理层WAN PHY。

3.7 其他类型的告诉局域网或接口
除了上述的高速以太网外,也还有一些其他类型的高速局域网。例如,在1988年问世的光纤分布式接口FDDI是一个使用光线作为传输媒体的令牌环形网。
还有一种短距离的高速接口,叫做高兴你能并行接口HIPPI,主要用于超级计算机与一些外围设备的告诉接口。HIPPI是一个美国国家标准化局ANSI的标准。
光纤通道。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值