数据链路层之组装成帧和透明传输

举报
哥的时代 发表于 2023/12/24 21:17:07 2023/12/24
【摘要】 以上就是数据链路层之组装成帧和透明传输的相关知识点,希望对你有所帮助。 积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…


一、数据链路层功能概述

数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据==可靠==地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为==逻辑上无差错的数据链路==,使之对网络层表现为一条无差错的链路。

二、组装成帧

image.png

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

首部和尾部包含许多的控制信息,他们的一个重要作用:==帧定界==(确定帧的界限)。

==帧同步==:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

==组帧的四种方法==: 1.字符计数法,2.字符(节)填充法,3.零比特填充法,4.违规编码法。

image.png

三、透明传输

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。

当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

四、字符计数法

帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。

image.png

每一个帧段的首位用来标明该帧有几个字符,比如第一帧的首位是5,那么当前帧就是五位。

但是这种就有个缺点:所有的帧都在同一段里,如果有一个错位,那么数据就是不准确的了。

五、字符填充法

当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码)。不管从键盘上输入什么字符都可以放在帧里传过去,即==透明传输==。

当传送的帧是由非ASCII码的文本文件组成时(二进制代码的程序或图像等)。就要==采用字符填充方法实现透明传输==。

image.png

六、零比特填充法

操作:
1.在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0。
⒉在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。

image.png

保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。

七、违规编码法

image.png

可以用“==高-高”,“低-低==”来定界帧的起始和终止。

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


总结

以上就是数据链路层之组装成帧和透明传输的相关知识点,希望对你有所帮助。
积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。