【计算机网络篇】数据链路层 功能|组帧|流量控制与可靠传输机制

      🧸安清h:个人主页

   🎥个人专栏:【计算机网络】

🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。

 系列文章目录

【计算机网络篇】计算机网络概述

【计算机网络篇】电路交换,报文交换,分组交换

 【计算机网络篇】物理层 (CSDN热榜文章)


文章目录

🎥前言

🎯一.数据链路层的功能

🎯二.组帧

🚦2.1封装成帧

🚦2.2透明传输 

✨2.2.1 解决透明传输问题

✨2.2.2零比特填充

🚦2.3差错检测 

🎯三.流量控制与可靠传输机制

🚦3.1流量控制,可靠传输,滑动窗口机制

✨基本概念

🚦 3.2停止-等待协议

✨3.2.1无差错情况和超时重传

✨3.2.2确认丢失和确认迟到

✨3.2.3信道利用率

总结



🎥前言

数据链路层是OSI模型的第二层,主要负责在相邻网络节点间提供可靠的数据传输。它通过帧同步、差错控制和流量控制来确保数据的完整性和准确性。这一层使用MAC地址识别设备,并在物理层传输的比特流上添加控制信息,形成数据帧。常见的数据链路层协议包括以太网和PPP,它们定义了数据封装和传输的具体方法。在本书中重要程度仅次于网络层,是非常重要的学习章节。下面我将逐步为大家介绍其重点。


🎯一.数据链路层的功能

  1. 链路是一条无源的点到点的物理线路段,中间没有任何其他的交换结点
  2. 数据链路层传送的是。 

链路层就是把上层的网络层给它的这个数据包,装入到帧这个结构的数据部分,中间链路上的比特经过曼彻斯特或差分曼彻斯特等编码方式传输到对端。数据从结点A被传输到结点B后,B把数据取出。

注意:链路中间没有任何东西,顶多放中继器用来放大信号。

🎯二.组帧

🚦2.1封装成帧

封装成帧就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。首部和尾部作用的帧定界(即确定帧的界限)。

数据部分长度上限--最大传送单元MTU

🚦2.2透明传输 

由于帧的开始和结束的标记是使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。

当数据部分是非ASCII码的文本文件时(如二进制代码的计算机程序或图像等),情况就不同了。如果数据中的某个字节的二进制代码恰好和SOH或EOT这种控制字符一样(见图3-6),数据链路层就会错误地“找到帧的边界”,把部分帧收下(误认为是个完整的帧),而把剩下的那部分数据丢弃(这部分找不到帧定界控制字符SOH)

✨2.2.1 解决透明传输问题

发送端的数据链路层在数据中出现控制字符‘SOH’或‘EOT’的前面插入一个转义字符‘ESC’。

字节填充或字符填充--接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。

如果转义字符也出现在数据当中,那么应在转义字符前再加入一个转义字符。当接收端收到两个转义字符时,就删除其中前面的一个。

该图表示用字节填充法解决透明传输问题。

✨2.2.2零比特填充

在发送端,只要发现有五个连续的1,则立即填入一个0。接收端对帧中的比特流进行扫描。每当发现5个连续1时,就把这5个连续1后的一个0删除。

🚦2.3差错检测 

  • 在数据链路传送帧中,往往广泛的使用循环冗余检验CRC的检错技术。
  • 为了进行检错而添加的冗余码常称为帧检验序列FCS。
  • 循环冗余检验CRC和帧检验序列FCS并不等同。
  • CRC是一种常用的检错方法,而FCS是添加在数据后的冗余码。
  • FCS可以用CRC这种方法得出,但CRC并非用来获得FCS的唯一方法。
  • 接收端对收到的每一帧进行CRC检验,若得出的余数R=0,则判定这个帧没有差错,就接受;若余数R≠0,则判定这个帧有差错,就丢弃。

在发送端,先把数据划分为组,假定每组 k个比特。现假定待传送的数据M=101001(k=6)。CRC运算就是在数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发送出去,一共发送(k + n)位。在所要发送的数据后面增加n位的冗余码,虽然增大了数据传输的开销,但却可以进行差错检测。

这n 位冗余码可用以下方法得出。用二进制的模 2 运算[插图]进行2n乘 M 的运算,这相当于在M后面添加n个0。得到的(k + n)位的数除以收发双方事先商定的长度为(n + 1)位的除数P,得出商是Q而余数是R(n 位,比P少一位)。

🎯三.流量控制与可靠传输机制

🚦3.1流量控制,可靠传输,滑动窗口机制

✨基本概念

  1. 流量控制是确保发送方不会因为发送数据过快而导致接收方处理不过来的情况。TCP通过滑动窗口机制来实现流量控制,接收方根据自己的缓冲区容量来调整通告给发送方的窗口大小,从而控制发送方的数据发送速率。我们假设A是发送方,B是接收方,流量控制是控制发送方的发送速度和接收方的接受速度保持一致,即控制的是发送方。
  2. 滑动窗口机制是TCP协议中用于流量控制和可靠传输的一个重要技术。它允许发送方在没有收到确认应答的情况下,继续发送一定数量的数据,这个数量由窗口大小决定。这样可以有效提高数据传输的效率,因为它减少了发送方因为等待确认而产生的空闲时间。
  3. 滑动窗口机制还包括快速重传和超时重传机制。快速重传是指发送方在连续收到三个重复确认(即接收方请求重传丢失的数据包)时,立即重传丢失的数据包,而不是等待超时计时器到期。这样可以快速响应丢包情况,提高传输效率。

🚦 3.2停止-等待协议

✨3.2.1无差错情况和超时重传

“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。有两种情况会出现,分别是无差错情况和有差错情况。

  • 在无差错情况中,A发送分组M1,发送完就暂停发送,等待B的确认。B收到了M1就向A发送确认。往后依此类推。
  • 在有差错情况中,A向B发送时,出现了帧丢失的情况或B收到帧后检查发现有错误,此时,A就引入了超时重传机制。A由于没有收到B发送来的确认,因而重传前面发送过的分组。

✨3.2.2确认丢失和确认迟到

  1. 确认丢失  (a)A在设定的超时重传时间里没有收到B发送的确认信息,A无法判断数据处于丢失,出错或B发送的确认丢失某种状态,所以A继续向B传输原来未发送过去的数据M1,直到收到了确认信息,继续传输数据。
  2. 确认迟到  (b)在传输过程中没有出现任何差错,但B对分组M1的确认迟到了,A就会再向B发送数据M1,B在收到了重复的数据后删掉了其中一个,然后向A发送了确认信息。

✨3.2.3信道利用率

 停止等待协议的优点是简单,但缺点是信道利用率太低

  • Td:分组帧的发送时间
  • RTT:端到端的传播时延
  • Ta:确认时间
  • 在整个传输周期的利用率就是Td

在此过程中,信道利用率最大为100%,重要公式:k×Td/Td+RTT+Ta=1

发送方可连续发送多个分组,不必每发完一个分组就停下来等待对方的确认。


总结

以上就是今天要讲的内容了,主要在组帧,流量控制与可靠传输机制方面做了重点的讲解,里面划分了很多值得重视的小点,在书中也是作为重要内容。由于篇幅有限的原因,剩下的部分只能放到下一篇来讲解啦😊!如果大家感兴趣的话,也可以看看我的专栏《计算机网络》之前的文章,相信会对您有所帮助的。

非常感谢您的阅读,如果这篇文章对您有帮助,那将是我的荣幸。我们下期再见啦🧸!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/430341.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧交通,智能消防系统助力高铁站安全

智慧交通是一项基于现代技术的创新领域,正不断为我们生活带来便利。在智慧交通领域中,高铁站是一个非常重要的环节。高铁站作为人流密集的区域,安全问题一直备受关注。为了提升高铁站的安全性和效率,智慧消防设备监测与集中监控系…

5、论文阅读:深水下的图像增强

深水下的图像增强 前言介绍贡献UWCNN介绍网络架构残差Residuals块 Blocks网络层密集串联网络深度减少边界伪影网络损失Loss后处理前言 水下场景中,与波长相关的光吸收和散射会降低图像的可见度,导致对比度低和色偏失真。为了解决这个问题,我们提出了一种基于卷积神经网络的…

基于python深度学习遥感影像地物分类与目标识别、分割实践技术

我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB,遥感大数据时…

【自学笔记】支持向量机(3)——软间隔

引入 上一回解决了SVM在曲线边界的上的使用,使得非线性数据集也能得到正确的分类。然而,对于一个大数据集来说,极有可能大体呈线性分类趋势,但是边界处混杂,若仍采用原来的方式,会得到极其复杂的超平面边界…

【C++篇】走进C++标准模板库:STL的奥秘与编程效率提升之道

文章目录 C STL 初探:打开标准模板库的大门前言第一章: 什么是STL?1.1 标准模板库简介1.2 STL的历史背景1.3 STL的组成 第二章: STL的版本与演进2.1 不同的STL版本2.2 STL的影响与重要性 第三章: 为什么学习 STL?3.1 从手动编写到标准化解决方…

字母与符号检测系统源码分享

字母与符号检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

十二、JDK17的GC调优策略

文章目录 一、JVM有哪些参数可以调?二、从RocketMQ学习常用GC调优三部曲三、基于JDK17优化JVM内存布局1、定制堆内存大小2、定制非堆内存大小设置元空间设置线程栈空间设置热点代码缓存空间应用程序类数据共享 四、基于JDK17定制JVM的GC参数G1重要参数ZGC重要参数 五…

C++设计模式(更新中)

文章目录 1、创建型模式1.1 简单工厂(Simple Factory)(1)示例(2)总结 1.2 工厂方法(Factory Method)(1)示例(2)总结 1.3 抽象工厂&…

1--SpringBoot外卖项目介绍及环境搭建 详解

目录 软件开发整体流程 软件开发流程 角色分工 软件环境 苍穹外卖项目介绍 项目介绍 产品原型 技术选型 开发环境搭建 前端环境搭建 后端环境搭建 完善登录功能 导入接口文档 Swagger 介绍 使用方式 常用注解 软件开发整体流程 软件开发流程 需求分析&#x…

Microsoft 365 Copilot: Wave 2 发布,开启AI时代下的全新工作流

本周一(9月16日),微软对 Microsoft 365 Copilot 办公辅助工具进行了重大升级,推出 Wave 2 版本。新版 Copilot 将为 Microsoft 365 用户带来一系列新功能和改进,进一步提升工作效率与用户体验,正式开启AI时…

一个能同时to B和to C、批发零售一体化的需求分析和系统设计

一些企业纠结自己的模式是to B还是to C,一些企业在to B和to C中转型,还有一些企业在做着to B的业务,也在做to C的代发,这些企业在不停地变更着业务,更换着系统,给企业带来巨大的资金和时间成本,…

关于SpringBoot项目使用maven打包由于Test引起的无法正常打包问题解决

一、问题描述 在日常工作中,在接手项目时,项目未必是“正常”的,一般平常搭建项目,都不会采用一键式生成的方式,现在说下旧项目,可能项目结构并不是那么简洁,通常都带有与main同层级的test&…

同声传译翻译工具哪个好?不妨试试这些翻译工具

在全球化的浪潮中,语言沟通的重要性日益凸显,它不仅是跨文化交流的桥梁,更是连接不同文化和思想的关键。 为了跨越语言的鸿沟,市场上涌现了众多同声传译工具,它们像是科技的魔法,让沟通变得触手可及。 然…

Nginx实用篇:实现负载均衡、限流与动静分离

Nginx实用篇:实现负载均衡、限流与动静分离 | 原创作者/编辑:凯哥Java | 分类:Nginx学习系列教程 Nginx 作为一款高性能的 HTTP 服务器及反向代理解决方案,在互联网架构中扮演着至关重要的角色。它…

【数据结构与算法 | 灵神题单 | 二叉搜索树篇】力扣653

1. 力扣653:两数之和IV - 输入二叉搜索树 1.1 题目: 给定一个二叉搜索树 root 和一个目标结果 k,如果二叉搜索树中存在两个元素且它们的和等于给定的目标结果,则返回 true。 示例 1: 输入: root [5,3,6,2,4,null,7…

大数据处理技术:HBase的安装与基本操作

目录 1 实验名称 2 实验目的 3 实验内容 4 实验原理 5 实验过程或源代码 5.1 Hbase数据库的安装 5.2 创建表 5.3 添加数据、删除数据、删除表 5.4 使用Java操作HBase 6 实验结果 6.1 Hbase数据库的安装 6.2 创建表 6.3 添加数据、删除数据、删除表 6.4 使用Java操…

C++:类和对象全解

C:类和对象全解 一、类的定义和初始化(一)类的定义1、类的成员变量(1)成员变量(2)成员函数 2、实例化对象(1)采用普通构造函数(2)采用初始化列表 …

CAD的案例

在这个案例我会一步步教如何快速实现 比如我们要复刻这个图形 首先先画直线 输入L,然后空格,输入尺寸70,按ESC退出 到这一步画斜线,很简单就是直线旋转30的角度 直线教学: 先从右边拖到左边,选中这条直线…

【ShuQiHere】 探索数据挖掘的世界:从概念到应用

🌐 【ShuQiHere】 数据挖掘(Data Mining, DM) 是一种从大型数据集中提取有用信息的技术,无论是在商业分析、金融预测,还是医学研究中,数据挖掘都扮演着至关重要的角色。本文将带您深入了解数据挖掘的核心概…

中小企业体系技术抽象沉淀-异地灾备篇

IT团队内部使用工具 系列文章:https://blog.csdn.net/caicongyang/article/details/136857045 DDL DML管控 https://github.com/hhyo/Archery/ flyway 文档编写 wiki 技术对外输出文档推荐gitbook 同城双活数据同步方案 总览: vivo 系列文章&#x…