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

      🧸安清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.xdnf.cn/news/146706.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

cmake--set_target_properties

作用 设置某个指定的目标(文件,)的某些属性; 可以设置的属性 设置版本属性 cmake_minimum_required(VERSION 3.10)project(test_set_target_properties)add_library(mylib SHARED src/test.cpp) set_target_properties(mylib PROPERTIES VERSION 1.0.…

使用Kali Linux系统生成木马病毒并实现远程控制计算机

木 马 生成木马病毒并实现远程控制计算机 木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码 通常有控制端和被控制端两个可执行程序。 它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种者电脑的门户,使施种者可以任意毁坏、窃…

红队攻防 | 凭证获取的10个方法,零基础入门到精通,收藏这一篇就够了

作为红队成员,就像许多其他APT一样,我们须找到通往目标网络和资产的方法,因此要付出大量努力,从我们可以获得的任何资源中获取登录凭证或令牌。 这并不意味着我们只寻找登录特定服务的用户名和密码,在许多情况下&…

500元以内头戴式耳机哪款好?盘点500元以内百元宝藏品牌机型推荐

作为耳机发烧友,我深知一副优质的头戴式耳机都能为我们带来沉浸式的听觉体验,但然而,面对市场上琳琅满目的耳机品牌和型号,500元以内头戴式耳机哪款好?对于这个问题我将为大家盘点500元以内百元宝藏品牌机型推荐无论你…

读构建可扩展分布式系统:方法与实践10最终一致性

1. 最终一致性 1.1. 在一些应用领域,通常谈论的是银行和金融行业,最终一致性根本不合适 1.2. 事实上,最终一致性在银行业已经使用了很多年 1.2.1. 支票需要几天时间才能在你的账户上进行核对,而且你可以轻松地开出比账户余额多的…

【Elasticsearch】-实现向量相似检索

1、http请求方式 如果elasticsearch服务设置账号密码,则在请求的header中添加 Basic Auth 认证 请求方式:Post 请求地址:/index_name/_search 请求body:json格式 {"size": 10, //返回条数"min_score": 0.…

一生一芯 预学习阶段 PA1--RTFSC中“make menuconfig”

Enable debug information 问题如上。 在menuconfig将 Enable debug information 选项打开,编译时会产生什么变化? 从选项上看是打开了支持调试的选项,编译时应该是添加了支持编译的参数,具体看代码。 首先,我们先看…

Tomcat 乱码问题彻底解决

1. 终端乱码问题 找到 tomcat 安装目录下的 conf ---> logging.properties .修改ConsoleHandler.endcoding GBK (如果在idea中设置了UTF-8字符集,这里就不需要修改) 2. CMD命令窗口设置编码 参考:WIN10的cmd查看编码方式&am…

【hot100-java】【组合总和】

R8-回溯篇 印象题&#xff0c;很基本的回溯 class Solution {void backtrack(List<Integer> state,int target,int[] choices,int start,List<List<Integer>> ret){//子集和等于target&#xff0c;记录解if (target0){ret.add(new ArrayList<>(state)…

Java ----常用类

包装类 包装类的分类 1) 针对八种基本数据类型相应的引用类型—包装类2) 有了类的特点&#xff0c;就可以调用类中的方法。3) 如图 包装类和基本数据的转换 jdk5 前的手动装箱和拆箱方式&#xff0c;装箱&#xff1a;基本类型转包装类型&#xff0c;拆箱&#xff1a;包装类型…

探索丹摩智算平台的奇妙之旅:我的CogVideoX实践实验与深刻体验

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀CogVideoX &#x1f4d2;1. 初识CogVideoX&#x1f4da;2. 部署与准备&#x1f31e;在丹摩智算平台上创建实例&#x1f338;CogVideoX代码仓库…

Vue3 中组件传递 + css 变量的组合

文章目录 需求效果如下图所示代码逻辑代码参考 需求 开发一个箭头组件&#xff0c;根据父组件传递的 props 来修改 css 的颜色 效果如下图所示 代码逻辑 代码 父组件&#xff1a; <Arrow color"red" />子组件&#xff1a; <template><div class&…

公司网站改版时,需要注意哪些细节?

在公司网站改版时&#xff0c;需要注意的细节非常多&#xff0c;这些细节将直接影响到网站的用户体验、SEO效果以及整体品牌形象。以下是一些关键的注意事项&#xff1a; 明确改版目标&#xff1a; 在改版前&#xff0c;要明确改版的目标是什么&#xff0c;比如提升用户体验、增…

Linux:权限管理

基本权限和归属 权限和归属 基本权限与归属 • 访问权限 – 读取&#xff1a;允许查看内容-read – 写入&#xff1a;允许修改内容-write – 可执行&#xff1a;允许运行和切换-excute对于文本文件&#xff1a;r读取权限&#xff1a;cat、less、grep、head、tailw写入权限&am…

[已更新前两问代码+全部建模]2024华为杯C题详细思路代码文章建模分享研究生数学建模竞赛数学建模研赛

截止9.21 12点 已更新问题一二的代码和全部内容的建模 下面我们会先进行代码讲解,之后给出全部内容的建模公式 ## https://docs.qq.com/doc/DVWhyZ1NFY01XcmNw基于磁通密度数据的特征提取与分类分析。 问题一代码详解 1. 导入必要的库 import pandas as pd import numpy as…

Innodb内存结构

缓冲池Buffer Pool: 缓冲池是innodb内存结构缓冲区中的核心部分&#xff0c;在服务启动的时候服务器会向操作系统申请一块大小为128MB的内存空间&#xff0c;所有对数据库中数据的增删查改操作均在缓冲池bufferPool中完成&#xff0c;并且缓冲区中其他组件的描述信息也都存储在…

AI绘画Flux【lora模型】【微缩景观】:惊艳!3D场景融入手机上的微景观!

大家好&#xff0c;我是灵魂画师向阳 今天和大家分享一款基于Flux底模训练的微缩景观模型——FLUX|手机上的微景观。此模型主要将手机作为微型景观的基底&#xff0c;强制将3d情景融入手机并控制在手机屏幕上方范围内。 作者在使用提示词直出和使用该Loar提示词生成的图片进行…

手撕小顶堆

1. 抛砖引玉 给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。 定义一对值 (u,v)&#xff0c;其中第一个元素来自 nums1&#xff0c;第二个元素来自 nums2 。 请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。 分析 大根堆&#xff08;大顶堆&#x…

多旋翼无人机维修、组装、调试技术详解

多旋翼无人机作为现代航拍、农业植保、物流运输等领域的重要工具&#xff0c;其性能的稳定性和操作的便捷性对于任务的完成至关重要。因此&#xff0c;掌握多旋翼无人机的维修、组装与调试技术&#xff0c;对于无人机操作员及维修人员来说至关重要。本文将详细介绍这三个方面的…

线程池ForkJoinPool实战及其工作原理分析

1. 由一道算法题引发的思考 算法题&#xff1a;如何充分利用多核CPU的性能&#xff0c;快速对一个2千万大小的数组进行排序&#xff1f; 这道算法题可以拆解来看&#xff1a; 1&#xff09;首先这是一道排序的算法题&#xff0c;而且是需要使用高效的排序算法对2千万大小的数…