封装成帧和透明传输

封装成帧

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

MTU:最大传送单元,帧的数据部分的极限大小(具体大小和协议有关)。

数据链路层的帧长:从帧首部到帧尾部之间的长度。在这里插入图片描述
封装成帧有四种方法:1.字符计数法 2.字符填充法 3.零比特填充法 4.违规编码法

而这四种方法首先要遵守的原则,就是透明传输。

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

解释略有点抽象,举个栗子:

在这里插入图片描述
如图所示,SOU为开头,EOT为结尾,透明传输就是要保证SOH到EOT之间的所有数据都能正确发送,要能保证在帧数据部分中遇到了EOT之类的控制字段而不为所动。

值得一提的是:当传送的帧都是文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码,不管从键盘上输入什么字符都可以放在帧里传过去,即实现了透明传输
下面介绍一下四种封装成帧的方法:

1.字符计数法

很简单的一种封装方法,它通过在帧首部使用一个计数字段(第一个字节,八位)来表明帧内字符数。

在这里插入图片描述
如图所示,每个帧首部都加了个数字,表明自己要发几个字符。这种方法就叫做字符计数法。
缺点也很显然,如果帧首部的数字突变了,就会造成毁灭性的连锁反应。

2.字符填充法

字符填充法是一种常用的方法,通过在关键字段前增加一个转义字符,使得在数据传输过程中忽略掉数据部分中的控制字。
这种方法的原理近似于c语言中的’‘字符。比如,要输出’]'字符,就要printf("]")一样。
在这里插入图片描述
接收端接收到这样加过转义字符的帧后,会自动脱去转移字符。

3.零比特填充法

零比特填充法的开始和结束标志都是一样的,都是01111110。它实现的方法是:在发送端,扫描整个信息字段,只要有5个1,就立即填入1个0,而在接收端,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
在这里插入图片描述

4.违规编码法

这种方法蛮特别,如图所示,曼彻斯特编码只有 “高-低” "低-高"两种,所以可以用“高-高”,“低-低”来定界帧的起始和众之。在这里插入图片描述

一般而言,由于字节计数法中 Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 数据链路层的三个基本问题(封装成帧透明传输和差错检测)为什么都必须加以解决? 因为数据链路层是网络中最底层的层,直接面对物理层,需要负责将网络层传来的数据转换成信号,并通过物理介质传输。在这个过程中,不可避免地会遇到一些问题,如信号干扰、传输错误等。为了保证数据的正确传输,在数据链路层必须加以解决封装成帧透明传输和差错检测等三个基本问题。只有这样数据才能正确、高效地在网络中传输。 ### 回答2: 数据链路层是在物理层和网络层之间的一层协议,主要的任务是将网络层传递过来的数据封装成帧,并通过物理层提供的媒介传输到另一端。数据链路层需要解决的三个基本问题为封装成帧透明传输和差错检测。这三个问题必须得到解决,才能确保数据在传输过程中不会出现错误和丢失。 首先是封装成帧问题。封装成帧的目的是将网络层的数据转化为对数据链路层可识别和处理的数据格式,也就是数据帧。如果不对数据进行封装,传输时就无法保证数据的完整性和可识别性,而且数据链路层在传输数据时还需要加上一些控制信息,例如帧开始与结束标记、地址、控制、校验等,这些信息可以帮助接收端正确地接收和处理数据。 其次是透明传输问题。透明传输表示传输的数据不受数据链路层所使用的物理媒介特性的影响,即在传输过程中,无论数据的内容和结构如何,都能正确传输和识别。这种透明传输对于用户来说是非常方便的,因为用户不需要担心传输过程中数据的丢失或者损坏。但是,如果数据链路层不能实现透明传输,那么就需要用户自己负责处理传输数据的格式问题,不仅增加了用户的工作量,更会影响传输效率。 最后是差错检测问题。在数据传输过程中,很容易发生因噪声等因素引起的比特错误,而差错检测的主要作用就是在传输过程中检测出这些错误。数据链路层使用差错检测技术可以帮助系统在发送数据时自动纠正出现的差错,从而提高数据传输的可靠性和成功率。 综上所述,封装成帧透明传输和差错检测这三个基本问题都是数据链路层需要解决的问题,并且都互相关联。只有在这些问题都得到正确地解决时,才能保证数据在传输过程中不会出现错误和丢失,实现数据传输的顺畅和可靠。 ### 回答3: 数据链路层是网络协议的一层,它主要负责将网络层的IP数据报封装成一个或多个数据帧,以便在物理层上进行传输。在数据链路层中,有三个基本问题需要加以解决,它们是封装成帧透明传输和差错检测。 首先是封装成帧。数据链路层需要将网络层传递下来的数据报封装成帧,以便在物理层上进行传输。封装成帧的主要目的是为了在物理层上传输数据时,可以把数据划分成较小的数据包,以节省传输成本。同时,封装成帧还可以帮助接收端识别出一个数据包的开始和结束。 其次是透明传输。所谓透明传输,就是指在数据传输过程中,不对数据进行任何改变,以确保数据的完整性。因为在物理层传输数据时,可能会存在一些噪声、干扰等问题,如果数据链路层对数据进行修改,就可能会破坏数据的完整性,影响数据的传输质量。 最后是差错检测。数据在传输过程中,很可能存在一些误码、漏码等差错情况。因此,数据链路层需要在传输过程中加入一些差错检测的方法,以确保数据的可靠传输。常见的差错检测方法有循环冗余校验(CRC)、纵向冗余校验(VRC)、横向冗余校验(LRC)等。 综上所述,数据链路层的三个基本问题(封装成帧透明传输和差错检测)都是必须加以解决的。封装成帧可以节省传输成本,便于数据包的传输和接收;透明传输可以确保数据的完整性,避免数据在传输过程中被破坏;差错检测能够保证传输的可靠性,避免数据传输过程中出现差错,保证数据的正确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值