0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数据链路层的三个基本问题

工程师 来源:未知 作者:姚远香 2019-02-27 15:10 次阅读

一、封装成帧

封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从比特流中识别帧的开始和结束。

数据链路层的三个基本问题

首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。此外,首部和尾部还包括许多必要的控制信息。 为了提高帧的传输效率,应当使帧的数据部分长度尽量大于首部和尾部的长度。最大传输单元MTU:帧数据部分长度上限。

当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。ASCII码是7位编码,一共可以组合成128个不同的ASCII码,其中可打印的有95个,而不可打印的控制字符有33个。(可打印的字符就是可以在键盘上输入的字符,我们使用的标准键盘有47个键可输入94个字符,包括使用shift键,加上空格键,一共可以输入95个可打印字符)

控制字符SOH放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT表示帧的结束。注意:SOH和EOT都只是控制字符的名称,他们的十六进制编码分别是01(二进制是00000001)和04(二进制是00000100)。SOH,EOT 并不是S O H E O T这几个字符,只是名字而已。当传输中出现差错,帧定界符的作用更加明显。假设未发送完一个帧而发生故障,接收端就知道收到的数据是不完整的帧(只有首部),必须丢弃。

二、透明传输

当传送的帧是用文本文件组成的帧时(文本文件中的字都是从键盘上输入的),其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符。可见不管从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输。

数据链路层的三个基本问题

但当数据部分是非ASCII码的文本文件时(如二进制代码的计算机程序或者图像等),情况就不同了。如果数据中的某个字节的二进制代码恰好和SOH或EOT这种控制字符一样,数据链路层就好错误地“找到帧的边界”,把部分帧收下(误以为是个完整的帧),而把剩下的那部分数据丢弃(这部分找不到帧定界控制字符SOH)。这种情况就不是透明传输,因为当遇到书中碰巧出现字符“EOT”时就传不过去了,而其后面的数据因找不到“SOH”被接收端当做无效帧而丢弃。但实际上数据中出现的字符“EOT”并非控制字符而仅仅是二进制数据00000100 。

为了解决透明传输问题,字节填充法或字符填充:在控制字符SOH、EOT的前面插入一个转义字符ESC(其十六进制编码是1B,二进制是00011011)。而接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。

三、差错检测

现实的通信链路都不会是理想的。传输过程中,1可能变成0, 0 可能变成1 。这就叫比特差错——误码率。 误码率和信噪比有很大的关系。因此,在计算机网络传输数据时,必须采用各种差错控制技术。目前在数据链路层广泛使用了循环冗余检验(CRC)的检错技术。

在数据链路层的CRC检验都是用硬件完成的,处理很迅速,因此不会延误数据的传输。为什么数据链路层要以帧为单位来传送数据呢?因为如果不以帧为单位,就无法加入冗余码来进行差错检验。传输差错分为两类:一类就是前面所说的最基本的比特差错。第二类:收到的帧出现了帧丢失、帧重复和帧失序。(停止等待协议,ARQ)。数据链路层并不需要给网络层提供“可靠传输”的服务。过去OSI的观点是:必须让数据链路层向上提供可靠传输。因此在CRC的基础上,增加了帧编号、确认和重传机制。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据链路层
    +关注

    关注

    0

    文章

    51

    浏览量

    11943
收藏 人收藏

    评论

    相关推荐

    中继器工作在什么网络的什么层?是数据链路层吗?

    中继器工作在什么网络的什么层?是数据链路层吗? 中继器是一种网络设备,用于将信号从一个网络传输到另一个网络。它工作在物理层,而不是数据链路层。本文将详细介绍中继器的工作原理、用途以及与其他网络设备
    的头像 发表于 02-20 15:08 505次阅读

    WiFi协议如何进行数据交换和通信

    WiFi协议栈主要包括三个层次:物理层(PHY)、数据链路层(DLL)和网络层(NET)。每个层次都有其特定的功能和协议。
    的头像 发表于 02-19 17:04 600次阅读
    WiFi协议如何进行<b class='flag-5'>数据</b>交换和通信

    Link-16数据链系统详解

    前面都是零零碎碎讲的数据链的部分信息,接下来将以Link16为模版,介绍一个完整的数据链是怎样的。
    的头像 发表于 11-27 10:10 7191次阅读
    Link-16<b class='flag-5'>数据链</b>系统详解

    DoIP系统物理层和数据链路层

    DoIP系统物理层和数据链路层 车载以太网的物理介质连接可使用符合IEEE 802.3 100BASE-TX的连接和一条激活线的组合。在ISO 13400-1的使用场景定义中,网络配置存在一条和多条
    的头像 发表于 10-07 10:59 489次阅读
    DoIP系统物理层和<b class='flag-5'>数据链路层</b>

    M16C/6S 数据链路层库 D2DL 用户手册

    M16C/6S 数据链路层库 D2DL 用户手册
    发表于 06-27 18:44 0次下载
    M16C/6S <b class='flag-5'>数据链路层</b>库 D2DL 用户手册

    网卡的MAC和PHY之间的关系是什么?

    则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能.以太网卡中数据链路层的芯片称之为MAC控制器.很多网卡的这两
    发表于 06-26 07:04

    PCIe链路层里的ACK/NAK介绍

    ✎ 编 者 按        读cocotbext-pcie源码,有部分牵涉到数据链路层。虽然自工作以来接触到PCIe还是蛮多的,但一般往往专注在TLP层,对于数据链路层还是接触的比较少的。PCIe
    的头像 发表于 06-25 10:31 1636次阅读
    PCIe<b class='flag-5'>链路层</b>里的ACK/NAK介绍

    物联网物理层、数据链路层通信协议大盘点,看完一目了然!

    物联网通信协议物联网的通信协议有很多,我们也曾跟大家聊过关于应用层面的协议,例如MQTT、HTTP等,也有网络层传输协议,如TCP......今天我们便换个角度,为大家盘点物联网物理层、数据链路层
    的头像 发表于 06-12 11:47 1124次阅读
    物联网物理层、<b class='flag-5'>数据链路层</b>通信协议大盘点,看完一目了然!

    数据链路层功能、差错检测与校正(2)(2)#计算机网络

    通信技术数据链路层计算机网络
    未来加油dz
    发布于 :2023年06月06日 16:54:35

    数据链路层功能、差错检测与校正(1)(3)#计算机网络

    通信技术数据链路层计算机网络
    未来加油dz
    发布于 :2023年06月06日 16:53:51

    数据链路层功能、差错检测与校正(1)(1)#计算机网络

    通信技术数据链路层计算机网络
    未来加油dz
    发布于 :2023年06月06日 16:53:09

    数据链路层三个基本问题(2)#计算机网络

    计算机网络
    未来加油dz
    发布于 :2023年06月02日 21:06:38

    数据链路层三个基本问题(1)#计算机网络

    计算机网络
    未来加油dz
    发布于 :2023年06月02日 21:05:59

    什么是数据链路层?二层交换机转发工作原理介绍

    数据链路层:封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。
    的头像 发表于 05-29 15:48 978次阅读
    什么是<b class='flag-5'>数据链路层</b>?二层交换机转发工作原理介绍

    M16C/6S 数据链路层库 D2DL 用户手册

    M16C/6S 数据链路层库 D2DL 用户手册
    发表于 05-08 19:04 0次下载
    M16C/6S <b class='flag-5'>数据链路层</b>库 D2DL 用户手册