news 2026/4/18 10:42:38

【计算机网络 | 第七篇】数据链路层及三个基本问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【计算机网络 | 第七篇】数据链路层及三个基本问题

文章目录

    • 3.1 数据链路层概述
      • 数据链路层的信道类型
      • 数据链路层的简单模型
    • 3.2 数据链路和帧
      • 链路与数据链路的区别
    • 3.1.2 数据链路层的三个基本问题
      • 1. 封装成帧
      • 2. 透明传输
      • 3. 差错检测

3.1 数据链路层概述

在计算机网络体系结构中,数据链路层主要研究在同一个局域网中,分组怎样从一台主机传送到另一台主机(或路由器),但更主要的是研究在同一个局域网中,分组怎样从一个节点传送到相邻节点。

数据链路层的信道类型

数据链路层使用的信道主要归纳为以下两种类型:

  1. 点对点信道:这种信道使用一对一的点对点通信方式。
  2. 广播信道:这种信道使用一对多的广播通信方式。由于广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。

数据链路层的简单模型

在数据传输过程中,数据在不同层次间流动。从物理层面看,数据经过了多个中间节点(路由器);但从数据链路层的逻辑层面看,通信主要关注的是相邻节点之间的链路。

当主机H 1 H_1H1H 2 H_2H2发送数据时,虽然中间经过了复杂的网络拓扑,但在数据链路层看来,可以将其抽象为在一段段独立的链路上进行传输。


3.2 数据链路和帧

链路与数据链路的区别

在技术定义上,“链路”与“数据链路”是两个不同的概念:

  • 链路:指从一个节点到相邻节点的一段物理线路(有线或无线),中间没有任何其他的交换节点。这是一条无源的点到点的物理线路段。
  • 数据链路:在物理线路(链路)的基础上,必须增加控制数据传输的通信协议(硬件和软件)来实现通信,这就构成了数据链路。

目前最常用的实现方法是使用网络适配器( 即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。

  • 也有人采用另外的术语。这就是把链路分为物理链路和逻辑链路。
  • 物理链路就是上面所说的链路
  • 逻辑链路就是上面的数据链路,是物理链路加上必要的通信协议。
  • 早期的数据通信协议曾叫做通信规程 (procedure)。因此在数据链路层,规程和协议是同义语。

数据链路层传送的数据单位是:Frame

数据链路层把网络层交下来的数据(IP 数据报)封装成帧发送。我们可以将数据链路层抽象为一个数字管道,数据以帧为单位在这条逻辑管道上进行传输。

数据链路层不必考虑物理层如何实现比特传输的细节,甚至可以简单地假设数据是沿着两个数据链路层之间的水平方向直接发送到对方的。


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

尽管数据链路层的协议种类繁多,但它们都需要解决三个共同的基本问题:封装成帧透明传输差错检测

1. 封装成帧

封装成帧是指在一段数据的前后分别添加首部和尾部,从而构成一个完整的帧。

  • 帧定界:首部和尾部的一个重要作用是进行帧定界(确定帧的界限)。接收端在收到物理层上交的比特流后,通过首部和尾部的标记来识别帧的开始和结束。
  • 帧长限制:为了提高传输效率和避免垄断信道,数据链路层通常限制帧的数据部分长度上限,称为最大传送单元 MTU,Maximum Transfer Unit。

eg.在 Ubuntu 上查看所有网卡的MTU:

用帧首部和帧尾部封装成帧:

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

  • SOH (Start Of Header):十六进制编码为01,放在一帧的最前面,表示帧的开始。
  • EOT (End Of Transmission):十六进制编码为04,放在一帧的结束,表示帧的结束。

2. 透明传输

透明传输是指无论发送什么样的比特组合,数据链路层都能够按照原样正确地传输,而不会因为数据中出现了与控制字符相同的编码而导致误判。

问题产生
如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”,导致部分数据被丢弃或误识别。

解决方法:字节填充 (Byte Stuffing)
为了解决上述问题,通常采用字节填充(或字符填充)的方法:

  1. 发送端在数据中出现的控制字符(如 SOH 或 EOT)前面插入一个转义字符ESC(十六进制1B)。
  2. 如果数据中本身也出现了转义字符 ESC,则在 ESC 前面再插入一个 ESC。
  3. 接收端在收到数据后,根据转义字符将填充的 ESC 删除,还原出原始数据。

通过这种方式,数据链路层实现了对任意数据的透明传输。

3. 差错检测

在通信链路上传输信号时,信号可能会受到各种干扰。

  • 比特差错:传输过程中,1 可能会变成 0,0 也可能变成 1。
  • 误码率:在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率。误码率与信噪比有很大的关系。

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

下一章节:循环冗余校验 CRC 等技术

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 4:11:07

喉咙有痰,挂哪个科室?

喉咙有痰优先挂耳鼻喉科,若伴随咳嗽、胸闷等呼吸道症状,可挂呼吸内科。 科室选择依据1. 优先耳鼻喉科的情况◦ 仅表现为喉咙有痰、咽部异物感、咽干咽痛,无明显咳嗽或胸闷;◦ 痰量较少且多附着在咽喉部,晨起或饭后症状…

作者头像 李华
网站建设 2026/4/18 9:41:16

微信小程序 java+Vue3基于springboot框架的社区团购自提系统

目录微信小程序社区团购自提系统摘要系统核心功能模块技术架构特点系统创新点开发技术源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!微信小程序社区团购自提系统摘要 基于SpringBoot框架和Vue3前端技术构建的社区团购自提系统&#x…

作者头像 李华
网站建设 2026/4/18 9:45:18

平台抽查要什么?带电池产品“材料包”一次讲清

很多带电池产品卖家,真正崩溃的不是“第一次发货”。而是货发出去了、也卖起来了,突然平台来一句:请在 X 天内提交合规材料,否则限制销售/下架。这时候你才发现:你不是缺一个“证”,你缺的是一套随时能拿出…

作者头像 李华
网站建设 2026/4/18 3:40:41

TCN卷积神经网络在多输入多输出拟合预测建模中的应用(Matlab实现)

TCN卷机神经网络做多输入多输出的拟合预测建模。 程序内注释详细直接替换数据就可以使用。 程序语言为matlab。 需求版本为2021及以上。 程序直接运行可以出拟合预测图,线性拟合预测图,多个预测评价指标。在机器学习领域,多输入多输出的拟合预…

作者头像 李华