7.1.3 数据链路层主要功能概述

数据链路层最基本的服务是将源计算机网络层来的数据可靠的传输到相邻节点的目标计算机的网络层。为达到这一目的,数据链路层必须具备一系列相应的功能,主要有:如何将数据组合成数据块(在数据链路层中将这种数据块称为帧,帧是数据链路层的传送单位);如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使之与接收方相匹配;在两个网路实体之间提供数据链路通路的建立、维持和释放管理。这些功能具体表现在以下几个方面。

l 成帧(帧同步)
为了向网络层提供服务,数据链路层必须使用物理层提供的服务。而物理层我们知道,它是以比特流进行传输的,这种比特流并不保证在数据传输过程中没有错误,接收到的位数量可能少于、等于或者多于发送的位数量。而且它们还可能有不同的值,这时数据链路层为了能实现数据有效的差错控制,就采用了一种“帧”的数据块进行传输。而要采帧格式传输,就必须有相应的帧同步技术,这就是数据链路层的“成帧”(也称为“帧同步”)功能。

采用帧传输方式的好处是,在发现有数据传送错误时,只需将有差错的帧再次传送,而不需要将全部数据的比特流进行重传,这就在传送效率上将大大提高。但同时也带来了两方面的问题:(1)如何识别帧的开始与结束;(2)在夹杂着重传的数据帧中,接收方在接收到重传的数据帧时是识别成新的数据帧,还是识别成已传帧的重传帧呢?这就要靠数据链路层的各种“帧同步”技术来识别了。
 
“帧同步”技术既可使接收方能从以上并不是完全有序的比特流中准确地区分出每一帧的开始和结束,同时还可识别重传帧。

l 差错控制
在数据通信过程可能会因物理链路性能和网络通信环境等因素,难免会出现一些传送错误,但为了确保数据通信的准确,又必须使得这些错误发生的机率尽可能低。这一功能也是在数据链路层实现的,就是它的“差错控制”功能。

在数字或数据通信系统中,通常利用抗干扰编码进行差错控制。一般分为4类:前向纠错(FEC)、反馈检测(ARQ)、混合纠错(HEC)和信息反馈(IRQ)。

FEC方式是在信息码序列中,以特定结构加入足够的冗余位——称为“监督元”(或“校验元”)。接收端解码器可以按照双方约定的这种特定的监督规则,自动识别出少量差错,并能予以纠正。FEC最适于高速数传而需实时传输的情况。

在非实时数据传输中,常用ARQ差错控制方式。解码器对接收码组逐一按编码规则检测其错误。如果无误,向发送端反馈“确认”ACK信息;如果有错,则反馈回ANK信息,以表示请求发送端重复发送刚刚发送过的这一信息。ARQ方式的优点在于编码冗余位较少,可以有较强的检错能力,同时编解码简单。由于检错与信道特征关系不大,在非实时通信中具有普遍应用价值。

HEC方式是上述两种方式的有机结合,即在纠错能力内,实行自动纠错;而当超出纠错能力的错误位数时,可以通过检测而发现错码,不论错码多少都可以利用ARQ方式进行纠错。

IRQ方式是一种全回执式最简单差错控制方式。在该检错方式中,接收端将收到的信码原样转发回发送端,并与原发送信码相比较,若发现错误,则发送端再进行重发。只适于低速非实时数据通信,是一种较原始的做法。

l 流量控制
在双方的数据通信中,如何控制数据通信的流量同样非常重要。它既可以确保数据通信的有序进行,还可避免通信过程中不会出现因为接收方来不及接收而造成的数据丢失。这就是数据链路层的“流量控制”功能。数据的发送与接收必须必须遵循一定的传送速率规则,可以使得接收方能及时地接收发送方发送的数据。并且当接收方来不及接收时,就必须及时控制发送方数据的发送速率,使两方面的速率基本匹配。

l 链路管理
数据链路层的“链路管理”功能包括数据链路的建立、链路的维持和释放三个主要方面。当网络中的两个结点要进行通信时,数据的发送方必须确知接收方是否已处在准备接受的状态。为此通信双方必须先要交换一些必要的信息,以建立一条基本的数据链路。在传输数据时要维持数据链路,而在通信完毕时要释放数据链路。

l MAC寻址
这是数据链路层中的MAC子层主要功能。这里所说的“寻址”与下一章将要介绍的“IP地址寻址”是完全不一样的,因为此处所寻找地址是计算机网卡的MAC地址,也称“物理地址”、“硬件地址”,而不是IP地址。在以太网中,采用媒体访问控制(Media Access Control, MAC)地址进行寻址,MAC地址被烧入每个以太网网卡中。这在多点连接的情况下非常必需,因为在这种多点连接的网络通信中,必须保证每一帧都能准确地送到正确的地址,接收方也应当知道发送方是哪一个站。
 
l 区分数据与控制信息
由于数据和控制信息都是在同一信道中传输,在许多情况下,数据和控制信息处于同一帧中,因此一定要有相应的措施使接收方能够将他们区分开来,以便向上传送仅是真正需要的数据信息。

l 透明传输
这里所说的“透明传输”是指可以让无论是哪种比特组合的数据,都可以在数据链路上进行有效传输。这就需要在所传数据中的比特组合恰巧与某一个控制信息完全一样时,能采取相应的技术措施,使接收方不会将这样的数据误认为是某种控制信息。只有这样,才能保证数据链路层的传输是透明的。

在以上七大链路层功能中,主要的还是前面的五项,后面的二项功能是在前五项功能中附带实现的,并无需另外的技术,所以在此仅介绍前面四项功能。

7.1.4 链路层向网络层提供的服务
数据链路层的设计目标就是为网络层提供各种需要的服务。实际的服务随系统的不同而不同,但是一般情况下,数据链路层会向网络层提供以下三种类型的服务:
l 无确认的无连接服务
l 有确认的无连接服务
l 有确认的面向连接服务

本节要对以上三种服务进行基本的介绍。

1. 无确认的无连接服务
“无确认的无连接服务”是指源计算机向目标计算机发送独立的帧,目标计算机并不对这些帧进行确认。这种服务,事先无需建立逻辑连接,事后也不用解释逻辑连接。正因如此,如果由于线路上的原因造成某一帧的数据丢失,则数据链路层并不会检测到这样的丢失帧,也不会恢复这些帧。出现这种情况的后果是可想而知的,当然在错误率很低,或者对数据的完整性要求不高的情况下(如话音数据),这样的服务还是非常有用的,因为这样简单的错误可以交给OSI上面的各层来恢复。如大多数局域网在数据链路层所采用的服务也是无确认的无连接服务。

2. 有确认的无连接服务
为了解决以上“无确认的无连接服务”的不足,提高数据传输的可靠性,引入了“有确认的无连接服务”。在这种连接服务中,源主机数据链路层必须对每个发送的数据帧进行编号,目的主机数据链路层也必须对每个接收的数据帧进行确认。如果源主机数据链路层在规定的时间内未接收到所发送的数据帧的确认,那么它需要重发该帧。 这样发送方知道每一帧是否正确地到达对方。这类服务主要用于不可靠信道,如无线通信系统。它与下面将要介绍的“有确认的面向连接服务”的不同之处在于它不需要在帧传输之前建立数据链路,也不要在在帧传输结束后释放数据链路。

3. 有确认的面向连接服务  
大多数数据链路层都采用向网络层提供面向连接确认服务。利用这种服务,源计算机和目标计算机在传输数据之前需要先建立一个连接,该连接上发送的每一帧也都被编号,数据链路层保证每一帧都会被接收到。而且它还保证每一帧只被按正常顺序接收一次。这也正是面向连接服务与前面介绍的“有确认无连接服务”的区别,在无连接有确认的服务中,在没有检测到确认时,系统会认为对方没收到,于是会重发数据,而由于是无连接的,所以这样的数据可能会复发多次,对方也可能接收多次,造成数据错误。这种服务类型存在3个阶段,即:数据链路建立、数据传输、数据链路释放阶段。每个被传输的帧都被编号,以确保帧传输的内容与顺序的正确性。大多数广域网的通信子网的数据链路层采用面向连接确认服务。
原文地址:点击打开链接

数据链路层的主要功能与服务相关推荐

  1. 计算机网络基础之数据链路层的功能与服务

    温故: 前一篇文章中给大家讲了物理层的功能与服务,今天咱们继续.接下来我要讲得是数据链路层的功能和服务.小二,上菜. 众所周知,数据链路层是OSI七层模型中的第二层,它的作用就是在物理层的基础上为更上 ...

  2. 计算机网络学习笔记(三)——数据链路层功能和服务、帧定位、差错、海明距离、检错码和纠错码

    文章目录 前言 概念 一.链路层功能与服务 二.成帧和帧同步(帧定位) [1]字节计数法 [2]字符填充首尾定界法 [3]位填充首尾定界法 [4]块传输与物理层违例编码定界法 [5]校验和法 三.链路 ...

  3. 计算机基础之网络层的功能和服务

    温故: 前面我们已经讲了物理层和数据链路层的相关知识,今天我要和大家分享的是网络层的相关知识,大家对网络层应该不陌生,网络层在OSI七层中为位于第三层,同时也是通信子网的最高层,物理层传输的单位是比特 ...

  4. ISO14229-1专栏(5)--诊断与通信管理功能单元服务介绍

    从这篇文章开始就要接触14229-1的核心内容--诊断服务的介绍了,在之后的文章中我们会接触到26个服务以及若干个他们的子服务. 我们介绍的顺序也是和14229-1中的顺序相同,不是按照SID从小到大 ...

  5. 计算机网络基础之会话层的功能和服务

    温故: 网络层在OSI七层中为位于第三层,同时也是通信子网的最高层,物理层传输的单位是比特流,数据链路层传输的是数据帧,而网络层的传输单位是数据包.这里还要做一个比较,物理层要解决的问题是创建.维护和 ...

  6. FaaS(功能即服务)

    FaaS 简介 - 一种云计算服务,使云应用程序开发人员可以更轻松地运行和管理微服务应用程序. 什么是 FaaS(功能即服务)? FaaS(功能即服务)是一种云计算服务,它允许您执行代码以响应事件,而 ...

  7. 数据链路层的基本功能简单总结

    因为遇到了这样一道题,所以想借此机会记录一下数据链路层的基本功能. 题目如下: (多选)下列属于数据链路层基本功能的有 ( ) A.流量控制 B.介质访问控制 C.成帧 D.差错控制 答案:ABCD ...

  8. 数据链路层协议的功能不包括( )

    数据链路层协议的功能不包括( D ) A. 定义数据格式 B. 提供结点之间的可靠传输 C. 控制对物理传输介质的访问 D. 为终端结点屏蔽物理传输的细节 A. 数据链路层的主要功能包括组帧,组帧即定 ...

  9. Gavin老师Transformer直播课感悟 - Rasa项目实战之银行金融Financial Bot智能业务对话机器人业务功能微服务解析与调试(八十九)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之银行金融Financial Bot智能业务对话机器人的主要业务功能所使用的微服务进行解析,并通过Rasa Interactive的调试 ...

最新文章

  1. vuex——做简单的购物车功能
  2. js框架页弹出页面关闭
  3. python 去重 字典_python按照list中字典的某key去重的示例代码
  4. 载 Kubernetes和OpenStack到底是什么关系?先搞清楚,再系列学习
  5. 实用的设计模式【二】——类的组织
  6. pom.xml中的dependency标签的classifier
  7. Android数据库框架总结
  8. 评分卡模型开发(九)--上线监测
  9. 基于树莓派的车牌识别门禁系统(工作日记)
  10. Python之quote() unquote()使用
  11. oracle run {,Oracle runInstaller 安装不显示 OUI 处理 说明
  12. 计算机系统动态库修复,无法定位程序输入点于动态链接库修复解决方法 | 专业网吧维护...
  13. 项目目标的SMART原则
  14. 李彦宏:有人弄死其他对手 自己也没好结果
  15. 【大脑】----如何增加大脑记忆?
  16. Java job interview:公司项目Java开发走进软件世界
  17. 揭秘:企业做知识管理常见的几种方式!
  18. onnx模型输出所有中间层结果
  19. C#:(角度)前方交会(VS2010窗体+代码)
  20. 【项目管理/PMP/PMBOK第六版/新考纲】计算题30道带答案解析!赶工/关键路径/类比估算/挣值/变更

热门文章

  1. ARM-LINUX-GCC交叉编译工具链必知必会
  2. 服务器hz和显示器hz,揭秘精神论:玩电竞是否必须144Hz显示器
  3. linux为用户指定资源大小,Linux_Linux系统下生成一个指定大小的文件,在装系统,因此在这里随便记 - phpStudy...
  4. Signing for ‘xxx‘ requires a development team.
  5. Python学习日志--摆动吧!钟摆!
  6. Student Alcohol Consumption学生酒类消费
  7. Linux下CAN总线通信调试记录
  8. 2019北京大学研究生推免上机考试
  9. 别人对你好是因为你有利用的价值,而我就不同了
  10. 二级页表分页存储需要目录页表数形象解释