我是靠谱客的博主 甜美老师,最近开发中收集的这篇文章主要介绍数据链路层的概念和基本问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、数据链路和链路的区别

1、链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点,一条链路只是一条通路的一个组成部分。

2、数据链路(data link)除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路

二、数据链路层的作用

1、数据链路层需要把网络层交下来的数据封装成帧发送到链路上,以及把接受到的帧中的数据取出并上交给网络层。

 2、从数据流动上来看数据链路层的作用

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

1、封装成帧

封装成帧(framing)就是在一-段数据的前后分别添加首部和尾部, 然后就构成了一个帧。帧首部和尾部的一个重要作用就是进行帧定界。即当数据发送中断时,接收端收到了只有帧开始符没有帧结束符的帧,就认为是一个不完整的帧,就会被丢弃。

2、 透明传输

①用ASCII非打印控制字符进行帧定界:当数据是由可打印的 ASCII码组成的文本文件时,帧定界可以使用ASCII非打印控制字符作为帧定界符。

②控制字符SOH放在该帧的最前面,表示帧的首部开始。另一个控制字符EOT 表示该帧的结束。

 ③当数据部分是非ASCII码表的文本文件时(比如二进制代码的计算机程序或图像等),情况就不同了。如果数据中的某一段二进制代码正好和SOH或EOT帧定界符编码一样,接收端就会误以为这是帧的边界。

④所以就引入了转义字符ESC,即在数据中出现的SOH、ESC、EOT字符编码之前的位置插入转义字符ESC的编码。如图所示就是透明传输过程。                                                                                                  

 3、差错检验

①为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。在数据链路层传送的帧中,广泛使用了循环冗余检验(CRC)的检错技术。

②CRC校验过程

③注意:

1.对于一个数据帧,具体是采用几位的FCS,以及用什么数作为除数,都是数据链路层相关协议所定义的。 

2.在数据后面添加上的冗余码称为帧检验序列FCS 。循环冗余检验CRC和帧检验序列FCS并不等同。 CRC是一种常用的检错方法,而FCS是添加在数据后面的冗余码。 FCS可以用CRC这种方法得出,但CRC并非用来获得FCS的唯一方法。

最后

以上就是甜美老师为你收集整理的数据链路层的概念和基本问题的全部内容,希望文章能够帮你解决数据链路层的概念和基本问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部