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

答案:ABCD

数据链路层位于物理层之上、网络层之下,为网络层提供有效、可靠的帧传输。
数据链路层的数据传输单元是“数据帧”
物理层是将发送端的网络电信号按照一定的规则进行传输,在接收端将收到的电信号按照一定的规则再转换成计算机内部可识别的信号(所以发送端与接收端就需要遵循相同的规则传输电信号,才能完成互联与数据传输)。
物理层主要负责将数据按照一定规则传输出去,而不需要了解传输的是什么,而数据链路层则是需要将数据处理后再转交给物理层。

封装成帧

简单地说,封装成帧是在一段数据的前后分别添加首部和尾部,于是构成了一个帧。其中,首部和尾部的一个重要作用是进行帧定界。在用控制字符进行帧定界的方法中,以控制字符SOH作为帧开始符,以EOT作为帧结束符。

常用的封装成帧实现透明传输的方法有:
1.带字节/字符填充的首尾定界符法
2.使用比特填充的标志法(也称零比特填充法)

带字节/字符填充的首尾定界符法:让每一帧用一些特殊的字节(标志字节)作为开始和结束。缺点是当传输数据中出现这些特殊的字节时容易造成帧定界混淆。相应的解决方法是在二进制数中偶然出现的标志字节前加入一个转义字节“ESC”,这称为字节/字符填充法。

零比特填充法:我们以01111110作为一帧的开始和结束标志F字段。为避免混淆,当发送端的数据链路层碰到比特流数据中有5个连续1时,就立即在该比特流后填入一个0。接收端接收帧时,先找到F字段确定帧的边界,再对比特流进行扫描。每发现5个连续1时,删除其后的一个“0”,进行还原。零比特填充法使得一帧中两个F字段之间不会出现6个连续1。

对于帧而言,不同的数据链路层协议对应着不同的帧,因此帧有多种,例如,PPP帧和以太网MAC帧。

介质访问控制

介质访问控制,是指采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
介质访问控制的两大分类:

差错控制

第三个功能是检查数据是否出错,即差错控制,并在帧上面加入防止数据出错的编码,即差错控制编码。差错控制编码分为检错码和纠错码。

在传输过程中可能会产生差错。差错类型分为
1.位错
2.帧错
位错是指比特位出错,1变为0,0变为1
帧错是指出现了帧的丢失,帧的重复,帧的失序

那么对于差错,数据链路层提供了差错控制。
不同于物理层编码针对的是单个比特,数据链路层编码针对的是一组比特,通过循环冗余码CRC技术进行检测。(只检错,不纠错)

循环冗余检验CRC的检错技术:
CRC码又称为多项式码。任何一个由二进制数位串组成的代码都可以和一个只含有0和1两个系数的多项式建立一一对应的关系。如:

发送端:
先将数据划分成组,假定一组k bit,为数据M。在求得r位冗余码(也称帧检验序列FCS)后,构成一个由k位信息位+r位冗余位组成的n=k+r位码字发送出去。
即信息位+冗余位=发送码字
冗余码的计算:
设待发送的k位的帧为M(x) 选定的生成多项式为G(x)
2^rM(x)/G(x)=Q(x)+R(x) Q(x)为商,R(x)为余数 R(x)为所求冗余码
为方便理解,举个例子:
要发送的一帧信息位M=101001,采用CRC检验,生成多项式为1101,那么最终发送的数据是:
补充:首先r值有时题目会说,如果没有说明,只给了生成多项式(即我们的除数G(x)),也能知道余数的位数比除数少一,在该题中r=4-1=3

接收端:
接收端对收到的每一帧进行CRC检验,用收到的数据帧除以生成多项式,判断余数是否为0。但不能确定出现差错的比特是哪个。
若余数为0:接收正确,接受数据帧
若余数不为零:接收有错,丢弃数据帧

目前数据链路层广泛使用循环冗余检验CRC的检错技术,采用CRC校验码的系统,需要约定一个生成多项式,即G(x)。只要经过严格的挑选,并使用位数足够多的G(x),那么检测不到的差错的概率就很小。
在数据链路层使用CRC检验,只能实现无比特差错的传输,要做到“可靠传输”,就必须加上帧编号,确认和重传机制。
(“可靠传输”:数据链路层的发送端发送什么,在接收端就会收到什么。)

流量控制

数据链路层的第四个功能将帧交给物理层进行传输,因为传输链路上数据很多,需要防止数据冲突等突发状况,所以需要对数据传输进行控制,这叫做流量控制。流量控制的方法主要有两种:停等流量控制和滑动窗流量控制。

数据链路层的基本功能简单总结相关推荐

  1. 数据链路层的主要功能与服务

    7.1.3 数据链路层主要功能概述 数据链路层最基本的服务是将源计算机网络层来的数据可靠的传输到相邻节点的目标计算机的网络层.为达到这一目的,数据链路层必须具备一系列相应的功能,主要有:如何将数据组合 ...

  2. 用python做一个数据查询软件_Python实现功能简单的数据查询及可视化系统

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. image.png 前言 数据时代,数据的多源集成 ...

  3. python日历下拉框_Python版的农历日历Calendar,功能简单

    1.[代码][Python]代码 Python语言: Python版的农历日历Calendar,功能简单 #coding=utf-8 #代码修改自wangfei(wangfei@hanwang.com ...

  4. Qt 2D绘图功能简单总结

    文章目录 Qt 2D绘图功能简单总结 Qt 2D绘图功能简单总结 Qt 的绘图功能非常强大,它可以绘制一切想要的图形,从最简单的一条直线到其他任何复杂的图形,还可以用来绘制文本和图片. Qt的绘图系统 ...

  5. html 12306页面实现,jQuery模拟12306城市选择框功能简单实现方法示例

    本文实例讲述了jQuery模拟12306城市选择框功能简单实现方法.分享给大家供大家参考,具体如下: www.jb51.net jQuery城市选择框 #parent{ width:500px; po ...

  6. python密码登录程序三次_Python实现账号密码输错三次即锁定功能简单示例

    本文实例讲述了Python实现账号密码输错三次即锁定功能.分享给大家供大家参考,具体如下: 初学Python-1 #实现账号输错三次即锁定 user = "hubery" pass ...

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

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

  8. 多人审批功能简单实现

    文章目录 前言 一.数据库设计 2.实现逻辑 前言 多人审批功能简单实现 一.数据库设计 流程表 CREATE TABLE `system_flow` (`id` int NOT NULL AUTO_ ...

  9. 功能简单的erp软件

    功能简单的erp软件 每家的ERP都各有优势,您最好找到可以试用软件,测试过功能合适再决定,适合自己的ERP才是最好的ERP, 我们使用的是泛普软件的,运行还不错.价格比较便宜功能强大 泛普ERP软件 ...

最新文章

  1. pandas计算滑动窗口中的中位数实战(Rolling Median of a Pandas Column):计算单数据列滑动窗口中的中位数、计算多数据列滑动窗口中的中位数
  2. 实战2--应用EL表达式显示投票结果
  3. ITK:计算两个索引之间的距离
  4. python全栈工程_Python全栈工程师(编码)
  5. BZOJ3527:[ZJOI2014]力(FFT)
  6. ASCII码与string的相互转换
  7. 学习总结——接口测试基础
  8. 教会别人编程,你能收获什么?
  9. numpy.cumsum()函数
  10. python中area是什么意思_Python案例 下面这个代码if item.area self.free_area:中item.area是在哪里定义的呢?...
  11. 微软虚拟学院MVA 字幕获取方法
  12. 简易语音助手—python
  13. 微软独特的数字化转型思想和方法论
  14. 关于Excel表格快捷键
  15. 毕业好几年,改行学IT哪个岗位容易上手?
  16. Nature:16年前的论文生成软件SCIgen至今仍有人用,骗过同行评审,论文被接收...
  17. 室内定位技术将会怎样颠覆传统商业运营?
  18. 真正的软件测试实习一
  19. 有理函数多项式分解以及系数的留数法求解
  20. 百度网盘青春版:我就糊弄一下

热门文章

  1. UiBot 邮件群发
  2. android7.0版本适配(一):应用间文件文件共享——FileProvider
  3. 【阅读笔记】Mutual CRF-GNN for Few-shot Learning
  4. phpstorm9中文输入法不好用的解决方案
  5. 牛牛的DRB迷宫II
  6. 骨传导有什么品牌,骨传导耳机品牌推荐
  7. 走进游戏中的美术:游戏美术风格介绍
  8. 计算机网络技术主要课程阐述,计算机网络技术专业实训课程体系研究
  9. iOS信鸽推送:解决通过账号推送不成功的问题
  10. SIP协议之代理服务器