数据链路层主要功能

article/2025/6/16 10:20:41
透明传输
个人理解,透明传输其实就是指无论是什么报文都可以传输,非透明传输就是指某些特殊字符不能传输,在计算机网络中,透明传输在数据链路层提到过,在数据链路层将网络层协议封装成帧时,会在首部和尾部分别添加SOH以及EOT这两个特殊字符,接收方是根据这两个字符来确定帧首和帧尾的,如果上层协议发送过来的数据(即链路层的数据部分)包含EOT,那么接收方在解析这个帧的时候就会误以为数据已经结束,所以,如果链路层对这种情况没有特殊处理,那么就可以理解链路层为非透明传输(因为无法传输EOT这个字符),但是数据链路层通过对这个字符添加转移符(如果网络层数据中还存在转移符,就再添加一个转移符)的办法来使数据部分可以传输EOT字符,就实现了透明传输。


差错控制

一种保证接收的数据完整、准确的方法。因为实际电话线总是不完美的。数据在传输过程中可能变得紊乱或丢失。为了捕捉这些错误,发送端调制解调器对即将发送的数据执行一次数学运算,并将运算结果连同数据一起发送出去,接收数据的调制解调器对它接收到的数据执行同样的运算,并将两个结果进行比较。
 
最常用的差错控制方法有奇偶校验法、循环冗余校验法和汉明码等。这些方法用于识别数据是否发生传输错误,并且可以启动校正措施,或者舍弃传输发生错误的数据,要求重新传输有错误的数据块

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

1. 封装成帧

  • 封装成帧(framing):就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。
  • 接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
  • 分组交换的一个重要概念:就是所有在因特网上传送的数据都是以分组(即IP数据报)为传送单位。
  • 网络层的IP数据报传送到数据链路层就成为帧的数据部分。在帧的数据部分的前面和后面分别添加上首部和尾部,就构成了一个完整的帧。
  • 帧长等于数据部分长度加上帧首部和帧尾部的长度,而首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。
  • 首部和尾部还包含许多必要的控制信息,在发送帧时,是从帧首部开始发送。
  • 各种数据链路层协议都要对帧首部和帧尾部的格式有明确的规定。
  • 为了提高帧的传输效率,应当使帧的数据部分长度尽可能大于首部和尾部的长度。但是,每一种链路层协议都规定了帧的数据部分的长度上限——最大传送单元MTU(Maximum Transfer Unit)。 
    这里写图片描述
  • 当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符
  • 控制字符SOH(Start Of Header)放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT(End Of Transmission)表示帧的结束。他们的十六进制编码分别是01(二进制是00000001)和04(二进制是00000100)。 
    这里写图片描述
  • 当数据在传输中出现差错时,帧定界符的作用更加明显。假定发送端在尚未发完一个帧时突然出现故障,中断了发送。但随后很快又恢复正常,于是重新从头开始发送刚才未发送完的帧。由于使用了帧定界符,在接收端就知道前面收到的数据时个不完整的帧(只有首部SOH,没有传输结束符EOT),必须丢弃。而后面收到的数据有明显的帧定界符(SOH和EOT),因此这是一个完整的帧,应当收下。

2. 透明传输

  • 由于帧的开始和结束的标记是使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。
  • 当传送的帧使用文本文件组成的帧时(文本文件中的字符都是从键盘上输入的),其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符。可见不管从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输
  • 问题:当数据部分是非ASCII码的文本文件时(如二进制代码的计算机程序或图像等),情况就不同了,如果数据中的某个字符的二进制代码恰好和SOH或EOT这种控制字符一样,数据链路层就会错误地找到帧的边界,把部分帧收下(误认为是完整的帧),而把剩下的那部分数据丢弃(这部分找不到帧定界控制字符SOH)。这样的帧的传输显然就不是透明传输。 
    这里写图片描述
  • 问题分析:为了解决透明传输的问题,就必须设法使数据中可能出现的控制字符”SOH”和”EOT”在接收端不被解析为控制字符。
  • 解决方法:发送端的数据链路层在数据中出现控制字符”SOH”和”EOT”的前面插入一个转义字符”ESC”(其十六进制编码是1B)。而在接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充(byte stuffing)或字符填充(character stuffing)。如果转义字符也出现在数据当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。因此,当接收端收到连续的两个转义字符时,就删除其中前面的一个。 
    这里写图片描述

3. 差错检测

  • 传输差错:可分为两大类,一类就是最基本的比特差错,另一类就是收到的帧并没有出现比特错误,但却出现了帧丢失、帧重复或帧失序。
  • 比特差错:就是比特在传输过程中可能会产生差错,即1可能会变成0,0可能会变成1。比特差错是传输差错中的一种。
  • 三个帧:[#1]-[#2]-[#3],假定在接收端收到的却有可能出现的情况: 
    (1)帧丢失:收到[#1]-[#3](丢失了[#2])。 
    (2)帧重复:收到[#1]-[#2]-[#2]-[#3](收到两个[#2])。 
    (3)帧失序:收到[#1]-[#3]-[#2](后面发的帧反而先到达了接收端,这与一般的数据链路层传输概念不一样)。
  • 误码率BER(Bit Error Rate):就是在一段时间内,传输错误的比特占所传输比特总数的比率。例如,误码率为10^(-10)时,表示平均每传送10^10个比特就会出现一个比特的差错。误码率与信噪比有很大的关系,如果提高信噪比,就可以使误码率减小。
  • 问题:实际的通信链路并非理想的,它不可能使误码率下降到零。
  • 问题分析:为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种检测措施。
  • 解决方法:目前在数据链路层广泛使用了循环冗余检验CRC(Cyclic Redundancy Check)的检测技术。
  • 注:在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。

补充: OSI的观点是必须把数据链路层做成是可靠传输的。因此在CRC检测基础上,增加了帧编号、确认和重传机制。收到正确的帧就要向发送端发送确认。发送端在一定的期限内若没有收到对方的确认,就认为出现了差错,因而就进行重传,直到收到对方的确认为止。 
这种方法在历史上曾经起到很好的作用。但现在的通信线路的质量已经大大提高了,由通信链路质量不好引起差错的概率已经大大降低。 
因特网广泛使用的数据链路层协议都不适用确认和重传机制,即不要求数据链路层向上层提供可靠传输的服务(因为这要付出的代价太高,不合算)。如果在数据链路层传输数据时除了差错并且需要进行改正,那么改正差错的任务就由上层协议(如,运输层TCP协议)来完成。实验证明,这样可以提高通信效率。







 

http://chatgpt.dhexx.cn/article/VgYOxmjo.shtml

相关文章

数据链路层(内容超多哦)

数据链路层——交换机 1. 数据链路概述2. 以太网2.1 以太网帧格式2.2 交换机设备简介2.3 交换机的工作原理2.4 交换机以太网的工作模式2.5 配置前的准备 3. 命令行的使用 1. 数据链路概述 数据链路层的功能:1.数据链路的建立、维护与拆除 2.帧包装、帧传输、帧同步…

计算机网络:数据链路层功能

文章目录 1.为网络层提供服务2.链路管理3.帧定界、帧同步与透明传输4.流量控制5.差错控制 数据链路层在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据…

计算机网络-数据链路层功能概述

数据链路层的研究思想 基本概念 结点: 主机, 路由器 链路: 网络中两个结点之间的物理通道, 链路的传输介质主要有双绞线, 光纤 和微波, 分为有线链路和无线链路 数据链路: 网络中两个结点的逻辑通道, 把现实控制数据传输协议的硬件和软件加到链路上就构成了数据链路 帧: 链…

第三章:数据链路层(一)

数据链路层基本概念 结点:主机、路由器 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构…

随机信号的特征—(自相关函数\互相关函数、协方差矩阵、相关矩阵\相关系数矩阵\相关系数)

在学习概率统计之前,我学习的都是确定的函数。概率统计讨论了一次取值时获得的值是不确定的,而随机过程讨论了不确定会发生哪个时间函数。 每个x(t)函数(样本函数)就是实际发生的一个表达式确定的函数,对每个x(t)的处理,都是与之…

使用 VPN 你一定要了解这几个真相!

关注公众号,回复“1024”获取2TB学习资源! 什么是 VPN? VPN 是一种隐藏您的Internet 协议 (IP) 地址的服务。这使您可以匿名浏览互联网,因为没有人可以将您的数据链接到您的IP地址。 要了解VPN的作用,您只需分解“虚拟…

苹果Mac电脑L2TP连接公司内部网络失败解决方案

苹果Mac电脑L2TP连接公司内部网络 苹果Mac电脑的L2TP连接公司内部网络失败是一种常见的问题,可能会导致用户无法访问公司内部资源。以下是一些可能的解决方案,可以尝试解决这个问题: 检查网络连接:首先要确保你的Mac电脑已经连接…

mac电脑升级Monterey12.1版之后L2TP连接公司内网后无法正常访问的问题解决

公司内网设置: L2TP,无共享密钥。 mac版本: macOS Monterey 版本12.6 审核人员看这里,文章中的VPN不是翻墙用的,是远程连接公司内网环境用的。 配置连接公司内容 1、系统偏好设置 → 网络; 2、点击左下角的…

传统网络安全设备-VPN介绍

前言 VPN设备介绍 定义 虚拟专用网络指的是在公用网络上建立专用网络的技术。之所以称为虚拟网主要是因为整个VPN网络的任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是架构在公用网络服务商所提供的网络平台之上的逻辑网络,用户数…

US5M-ASEMI贴片快恢复二极管US5M

编辑:ll US5M-ASEMI贴片快恢复二极管US5M 型号:US5M 品牌:ASEMI 封装:SMC 电流:5A 电压:1000V 恢复时间:50ns 正向电压: 引脚数量:2 芯片个数:1 芯…

NXP/Freescale i.MX 计算机模块 - NXP i.MX 8Q、i.MX 6Q、i.MX 6D、i.MX 6DL、i.MX 6S、i.MX 6ULL、i.MX 7D 和 i.MX 7S

https://www.toradex.com/zh_cn/computer-on-modules/nxp-freescale-i.mx NXP/Freescale i.MX 计算机模块 NXP/Freescale i.MX 处理器是采用多核 ARM 的解决方案。Toradex 提供基于 NXP/Freescale i.MX 8、i.MX 6 和 i.MX 7 处理器的系统模块。 NXP i.MX 7 处理器是开发互联和 …

Semi-prime H-numbers

UVA11105 线性筛即可。 #include <iostream> #include <algorithm> #include <cmath> #include <vector> using namespace std;const int MAXN 1000001;bool IsNotHPrimer[MAXN 1];bool IsSemiHPrimer[MAXN 1];int sum[MAXN 1];vector<int>…

Mendix Marketplace 概述

Mendix Marketplace是一个充满活力的市场&#xff0c;它除了有开箱即用的完整示例应用程序&#xff0c;还有用来更快速构建定制化应用程序的各种组件 (连接器、小组件和模块)。在Mendix Marketplace中&#xff0c;您可以浏览所有内容&#xff0c;获取您想要的内容&#xff0c;并…

欧洲急了,正式发起 2nm 芯片总攻

本文转载自IT之家&#xff0c;昨日&#xff0c;欧盟委员会提出数字化转型最新目标&#xff1a;到 2030 年&#xff0c;欧洲先进和可持续半导体的生产总值至少占全球生产总值的 20%&#xff0c;生产能力冲刺 2nm&#xff0c;能效达到今天的 10 倍。 此外&#xff0c;欧盟计划在 …

Microchip / ATMEL MaxTouch ATMXT*系列-king-chip

Microchip / ATMEL MaxTouch ATMXT***系列 -------------深圳市天吉芯技术开发有限公司提供完整触摸屏解决方案 产品介绍&#xff1a;屏幕尺寸&#xff1a;&#xff1c;23寸触摸屏&#xff0c;调试CTP功能&#xff0c;TP设计和功能调试&#xff0c;。 2D多指触摸屏&#xff…

#芯片# SM25QH128M

国产芯片 FLASH芯片 学习笔记 国微的SM25QH128M 百度上搜索的资料太少了。目前为止&#xff0c;百度只能搜到2条相关的文章。 该国产芯片与进口芯片W25Q128JV 很相似。可以参考W25Q128JV。 1. 简述 SM25QH128M是一种Nor FLash芯片。存储空间大小为128Mbit。工作环境满足国…

继i.MX 6、i.MX 8之后,NXP发布性能强劲的i.MX 9

关注星标公众号&#xff0c;不错过精彩内容 编排 | strongerHuang 微信公众号 | 嵌入式专栏 最近&#xff0c;NXP在i.MX 6、 i.MX 7、 i.MX 8之后&#xff0c;发布了全新的i.MX 9应用处理器。 i.MX 9 集成Arm Ethos-U65 microNPU&#xff0c;并采用采用了恩智浦&#xff08;NXP…

编写 Matlab mexFunction (C mex)

资料一 MATLAB的MEX文件编写和调试 1. MEX的编写格式 写MEX程序其实就是写一个DLL程序,所以你可以使用C,C++,Fortran等多种编程语言来写。 编写MEX程序的编辑器可以使用MATLAB的代码编辑器,也可使用自己的C++编辑器,如VS2008等。 用MATLAB的编辑器的好处是,MEX函数会加粗…

matlab和C/C++混合编程--Mex

最近的项目需要matlab和C的混合编程&#xff0c;经过一番努力终于完成了项目要解决的问题。现在就将Mex的一些经验总结一下&#xff0c;当然只是刚刚开始&#xff0c;以后随着学习的深入继续添加。首先讲讲写Mex的一些常规规定&#xff0c;然后我们会重点关注混合编程中最难解决…

R语言【多因素方差分析】

《R语言与大数据编程实战》 学习笔记