计算机网络学习笔记(第三章数据链路层概述&封装成帧)

300 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情

从今天开始,我们继续进入第三章数据链路层的学习,今天我们主要进行数据链路层概述以及封装成帧的讲解和补充。

数据链路层概述

链路(Link) 就是从一个结点到相邻结点的-段物理线路,而中间没有任何其他的交换结点。

数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。

数据链路层以为单位传输和处理数据。

image.png

数据链路层的三个重要问题:封装成帧、差错检测、可靠传输

封装成帧

封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。 image.png

封装成帧实例:

image.png

差错检测

链路层数据以帧的形式发送,在发送的过程中,接收方节点的链路层硬件可能会由于信号干扰或者电磁噪音等原因错误的把 1 识别为 0 ,0 识别为 1。这种情况下没有必要转发一个有差错的数据报,所以许多链路层协议提供一种机制来检测这样的比特差错。通过让节点在帧中包括差错检测比特,让接收节点进行差错检查,以此来完成这项工作。

image.png

image.png

可靠传输

尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输(或透明传输)。

封装成帧、差错检测、可靠传输是数据链路层中最基本,最重要的问题。

封装成帧详解

下图为两个典型的帧格式

image.png

接收方的数据链路层如何从物理层交付的比特流中提取出一个个的帧?帧头和帧尾的作用之一就是帧定界

image.png

以太网规定帧间间隔为96比特时间因此Mac帧不需要帧定界符。

透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。

  • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。
  • 面向比特的物理链路使用比特填充的方法实现透明传输。

零比特传输习题:

image.png

解析:本题选A。高级数据链路控制协议HDLC采用帧头和帧尾中的标志字段作为帧定界符,其值为01111110; HDLC为了实现"透明传输”,采用“零比特填充法”(每5个连续1后面插入一个比特0);

image.png

为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。

考虑到差错控制等多种因素,每一-种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU (Maximum Transfer Unit)。

image.png


今天我们主要是对于数据链路层的三个重要问题进行一个概述,后续我们也将依次对差错检测、可靠传输等知识进行详细讲解,我们下次见!