第三章 数据链路层(一)

数据链路层谁计算机网络底层,它使用的信道主要有两种类型:
点对点信道:使用一对一的点对点通信方式。
广播信道:使用一对多的广播通信方式。

使用点对点信道数据链路层:

帧的概念:它是数据链路层的协议数据单位。它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包。
在这里插入图片描述
在这里插入图片描述

三个基本问题

数据链路层协议有许多种,但有三个基本问题则是共同的。这三个基本问题是:封装成帧、透明传输和差错检测。下面分别讨论这三个基本问题。
一、封装成帧:就是在一段数据的前后分别添加首部和尾部,这样就够成一个帧。接收端在收到物理层上交的比特流后就能根据首部和尾部标记从比特流中识别帧的开始和结束。
在这里插入图片描述
一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。我们知道,ASCII码是7位编码,一共可组合成128个不同的ASCII码,其中可打印的有95个,而不可打印的控制字符有33个。下图的例子可说明帧定界的概念。控制字符SOH (Start Of Header)放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT (End Of Transmission)表示帧的结束。请注意,SOH和EOT都是控制字符的名称。它们的十六进制编码分别是01(二进制是00000001)和04(二进制是00000100)。SOH(或EOT)并不是S, O, H(或E, O, T)三个字符。由于使用了帧定界符,接收端就知道前面收到的数据是否是个不完整的帧,进而判定是否丢弃。
在这里插入图片描述
二、透明传输:但当帧的数据部分是非ASCII码的文本文件时(如二进制代码的计算机程序或图像等),情况就不同了。如果数据中的某个字节的二进制代码恰好和SOH或EOT这种控制字符一样,数据链路层就会错误地“找到帧的边界”,把部分帧收下(误认为是个完整的帧),而把剩下的那部分数据丢弃
透明是一个很重要的术语。它表示:某一个实际存在的事物看起来却好像不存在一样在数据链路层透明传送数据表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层。因此,对所传送的数据来说,这些数据就“看不见”数据链路层有什么妨碍数据传输的东西。或者说,数据链路层对这些数据来说是透明的。

为了解决透明传输问题,就必须设法使数据中可能出现的控制字符SOH和EOT在接收端不被解释为控制字符具体的方法是:发送端的数据链路层在数据中出现控制字符SOH或EOT的前面插入一个转义字符ESC(其十六进制编码是1B,二进制是00011011)。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充(byte stuffing)或字符填充(character stuffing)。如果转义字符也出现在数据当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。因此,当接收端收到连续的两个转义字符时,就删除其中前面的一个。下图表示用字节填充法解决透明传输的问题。
在这里插入图片描述
三、差错检测:比特在传输过程中可能会产生差错1可能会变成0,而0也可能变成1。这就叫做比特差错。比特差错是传输差错中的一种。本小节所说的“差错”,如无特殊说明,就是指“比特差错’。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER ,误码率与信噪比有很大的关系。如果设法提高信噪比,就可以使误码率减小。实际的通信链路并非是理想的,它不可能使误码率下降到零。因此,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。目前在数据链路层广泛使用了**循环冗余检验CRC** (Cyclic Redundancy Check)的检错技术。可以实现无比特差错的传输。
(此外还有无传输差错,传输差错包括帧丢失、帧重复、帧失序等,对此可增加帧编号、确认和重传机制,现在互联网根据链路通信质量采取区别对待提高通行效率(对于通信链路好的不使用确认和重传机制)具体在第五章讨论)

点对点协议PPP

互联网用户通常都要连接到某个ISP才能接入到互联网。PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议,如下图
在这里插入图片描述
PPP协议满足的需求:
1.简单
数据链路层没有必要提供比IP协议更多的功能,IETF把“简单”作为首要的需求。协议非常简单:接收方每收到一个帧,就进行CRC检验。如CRC检验正确,就收下这个帧;反之,就丢弃这个帧,其他什么也不做。

2.封装成帧。必须规定特殊字符作为帧界定符,以便准确找出帧开始和结束位置。

3.透明传输。遇到和帧界定符一样的符号时采取有效措施解决。

4.多种网络层协议。
PPP协议必须能够在在同一条物理链路上同时支持多种网络层协议(如IP和IPX等)的运行。当点对点链路所连接的是局域网或路由器时,PPP协议必须同时支持在链路所连接的局域网或路由器上运行的各种网络层协议。

5.多种类型链路
除了要支持多种网络层的协议外,PPP还必须能够在多种类型的链路上运行。例如,串行的(一次只发送一个比特)或并行的(一次并行地发送多个比特),同步的或异步的,低速的或高速的,电的或光的,交换的(动态的)或非交换的(静态的)点对点链路。

6.差错检测。能够对接收端收到的帧进行检测,并立即丢弃掉有差错的帧。

7.检测连接状态。PPP协议必须具有一种机制能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态。

8.最大传送单元
PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值。这样做是为了促进各种实现之间的互操作性。如果高层协议发送的分组过长并超过MTU的数值,PPP就要丢弃这样的帧,并返回差错。需要强调的是,MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。

9.网络层地址协商
PPP协议必须提供一种机制使通信的两个网络层(例如,两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。协商的算法应尽可能简单,并且能够在所有的情况下得出协商结果。这对拨号连接的链路特别重要,因为如果仅仅在链路层建立了连接而不知道对方网络层地址,则还不能够保证网络层可以传送分组。

10.数据压缩协商
PPP协议必须提供一种方法来协商使用数据压缩算法。但PPP协议并不要求将数据压缩算法进行标准化。

PPP协议有三个组成部分:
1.一个将IP数据报封装到串行链路的方法。
PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分。这个信息部分的长度受最大传送单元MTU的限制。

2.一个用来建立、配置和测试数据链路连接的链路控制协议LCP (Link Control Protocol)。
通信的双方可协商一些选项。在RFC 1661中定义了11种类型的LCP分组。

3.一套网络控制协议NCP (Network Control Protocol)。
其中的每一个协议支持不同的网络层协议,如IP, OSI的网络层、DECnet,以及AppleTalk等。

PPP协议的帧格式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

** PPP的工作状态**
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值