计算机网络——数据链路层(学习笔记)

白夜猫 白夜猫 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

数据链路层的概念

       数据链路层是 OSI 分层模型的第二层。该层是最复杂的层之一,具有复杂的功能和责任。数据链路层隐藏底层硬件的详细信息,并将自身表示到上层作为通信介质。

       数据链路层在某种意义上直接连接的两个主机之间工作。这种直接连接可以是点对点(point to point)或广播(Broadcast)。广播网络上的系统据说位于同一链路上。当数据链路层处理单个冲突域上的多个主机时,它的工作往往会变得更加复杂。

       数据链路层负责将数据流逐位转换为信号,并通过底层硬件发送,从而起到承上启下的作用。在接收端,数据链路层从电信号形式的硬件中获取数据,以可识别的帧格式组装它们,然后移交给上层。

数据链路层有两个子层:

逻辑链路控制Logical Link Control:它处理协议protocols、流量控制flow-control和错误控制error control。

媒体访问控制Media Access Control:它涉及媒体的实际控制。

使用点对点信道的数据链路层

       链路是指从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点,再进行数据通信时,链路作为路径的组成部分;

       数据链路:当需要一条线路上传输数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

       现在最常用的方法是使用网络适配器来实现这些协议,一般的适配器(比如网卡)都包括了数据链路层和物理层这两层的功能;

点对点信道中的数据链路层的协议数据单元为——帧,数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并交给网络层。在互联网中,网络层的协议数据单元就是IP数据报(简称为数据报、分组、包);

       数据链路层就像一个管道,它传输的是帧;

基本问题(封装成帧、透明传输、差错控制)

       数据链路层的协议有许多种,但3个最基本的问题是:封装成帧、透明传输、差错控制;

封装成帧:指的是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧;

       接收端收到物理层上交的比特流之后,会根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束;

       首部和尾部的重要作用就是作为帧定界(即确定帧的界限),此外还包括了许多必要的控制信息。

       为了提高帧的传输效率,应当使帧的数据部分长度尽可能大于首部和尾部的长度。因此就有了数据部分长度上限——最大传送单元MTU。

帧定界符

       当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。

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

       注意:这里的SOH和EOT不是时控制字符的名字,它们的十六进制编码为:01和04,并不是S,O,T(或E,O,T)三个字符;

       假定发送端在尚未发送完一个帧时突然出现故障,中断了发送,但随后又恢复正常,于是从头开始再发。由于使用了帧定界符,接收端就知道前面收到的数据是个不完整的帧(只有首部开始符SOH而没有传输结束符EOT),必须丢弃;

透明传输:

      当传输的帧是用文本文件组成的帧时,其数据部分显然不会出现SOH或EOT这样的帧定界控制字符,因此这样的传输称为透明传输;

      透明的意思是:某一个实际存在的事物看起来却好像不存在一样;
      在数据链路层中透明传送数据,表示无论什么样的比特组合的数据,对于传送的数据来说,它们看不见数据链路层又什么妨碍数据传输的东西,因此数据链路层对于这些数据来说是透明的;

       但当数据部分是非ASCII码的文本文件(如二进制代码的计算机程序或象),数据中的某个字节的二进制代码恰好和SOH或EOT这样的控制字符一样,数据链路层就会错误地“找到帧的边界”,把部分帧手下(误认为这是完整的),而丢弃剩下的数据;

       为了解决透明传输问题,就必须使数据中可能出现的控制字符“SOH”和“EOT”在接收端不被解释为控制字符。

字节填充

       具体的方法是:在“SOH”和“EOT”前面插入一个转义字符“ESC”(其16进制为1B),而在接收端的数据链路层把数据送往网络层之前删除这个插入的转义字符。
       如果转义字符也出现在数据当中,任然是在转义字符的前面插入一个转义字符

差错控制:

       比特在传输过程中可能产生差错,1可能变为0,0可能变为1,这就叫做比特差错;

       传输错误的比特占所传输比特总数的比率称为误码率(BER),误码率与信噪比有很大的关系,如果设法提高信噪比,就可以使误码率减小;

实际的通信链路并非是理想的,他不可能使误码率下降为0,因此数据链路层广泛使用循环冗余检验CRC的检错技术,原理为:

1、在待传送的数据M后面添加供差错检验用的n位冗余码,然后构成一个帧发送出去;

2、这个冗余码可以用以下方法获得:在M后面添加n个0,得到的这个数出意收发双方事先商定的长度为(n+1)位的除数P,得出商位Q余数为R,这个R就作为冗余码拼接在M后面发送出去;

3、在接收端把接收到的数据以帧为单位进行检验,收到的每一个帧都除以同样的除数P,检查得到的余数R,如果传输过程无差错,余数R肯定为0,如果出现误码,R就可能不为0了;

       也就是说,凡是接收端数据链路层收到的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错。接收端丢弃的帧虽然曾经收到了,但是最终还是因为有差错被丢弃,即没有被接受。

       传输差错可以分为两大类:一类是前面说的比特差错,一类是比较复杂的:收到的帧并没有出现比特差错,但却出现了帧丢失、帧重复、帧失序;也就是说,无比特差错和无传输差错并不是同样的概念,在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是最可靠的传输;对于通信线路良好的有线传输链路,数据链路层协议不适用确认和重传机制,对于通信质量较差的无线传输链路,则使用确认和重传机制。

点对点协议 PPP

       互联网用户通常都需要接到某个ISP才能接入到互联网,PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议;

特点

PPP协议应满足的需求:

简单、封装成帧、透明性、多种网络层协议、多种类型链路、差错检验、检测连接状态、最大传输单元、网络层地址协商、数据压缩协商;

PPP协议的组成:

1、一个将IP数据报封装到穿行链路的方法;

2、一个用来建立、配置和测试数据链路连接的链路控制协议(LCP);

3、一套网络控制协议NCP;

PPP协议的帧格式

       标志字段表示一个帧的开始和结束,因此标志字段就是PPP帧的定界符。连续两帧之间只需要用一个标志字段。如果出现连续;两个标志字段,就表示这是一个空帧,应当丢弃;

当信息字段出现和标志字段一样的比特组合时,就必须采取一些措施:

       当PPP协议使用异步传输时,可以使用字节填充;由于在发送端进行了字节填充,因此在链路上传送的信息字节数就超过了原来的信息字节数。但接收端收到数据后再进行与发送端字节填充相反的变化,就可以正确恢复出原来的信息;

零比特填充:

       PPP协议使用同步传输的时候,可使用零比特传输,在发送端,扫描整个信息字段,如果发现有5个连续的1,就立即填入一个0;接收端在收到一个帧的时候,先找到标志字段F以确定一个帧的边界,接着再使用硬件对其中的比特流进行扫描,每当发现5个连续的1时,就把这5个连续1后面的一个0删除,以还原原来的信息比特流;

...全文

相关推荐

计算机网络学习笔记,计算机网络学习笔记,计算机网络学习笔记,计算机网络学习笔记,计算机网络学习笔记

、数据链路层、网络层、传输层、会话层、表示层和应用层七个层次。

ijk11

计算机网络学习笔记总结

这份"计算机网络学习笔记总结"涵盖了从基础概念到高级应用的广泛内容,旨在帮助学习者深入理解并掌握计算机网络的基本原理和技术。

CS898DN

计算机网络学习笔记分享

计算机网络是信息技术领域的重要组成部分,它涉及硬件、软件、协议等多个方面。这篇学习笔记将带你了解计算机网络的发展历程、基本概念、类型、性能指标以及常用的技术。

外咸瓜街的一条咸鱼

《计算机网络(谢希仁)》-学习笔记.pdf

计算机网络体系结构遵循开放系统互连(OSI)模型,该模型将网络通信分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

apple_51426592

北京航空航天大学软件学院2024年计算机网络课程原创学习笔记项目_基于课程PPT和王道考研资料整合互联网资源详细解析计算机网络核心概念协议与应用实例_涵盖OSI七层模型TCPIP协.zip

它详细解析了计算机网络中的每一个层次,如物理层、数据链路层、网络层、传输层、会话层、表示层和应用层等,每一层的主要功能和所涉及的协议都得到了清晰的介绍。

2501_92227435
评论
收藏 已收藏
分享
返回顶部