计算机网络笔记3 数据链路层

计算机网络系列笔记目录👇

  • 计算机网络笔记6 应用层
  • 计算机网络笔记5 运输层
  • 计算机网络笔记4 网络层
  • 计算机网络笔记3 数据链路层
  • 计算机网络笔记2 物理层
  • 计算机网络笔记1 概述

文章前言 💗

站在巨人的肩膀上,让知识的获得更加容易!本文为立足B站最火的湖科大教书匠计网课程和王道课程的笔记,以及前人计网博客笔记,综合自己理解,梳理的一系列完整的笔记!如果您觉得文章对您有帮助记得👍⭐️,有不足之处欢迎指出,评论和私信会在第一时间回复。或者直接私信我。

  • 学习视频来源: 计算机网络微课堂(有字幕无背景音乐版)yyds
  • 课件pdf来源:评论区up bili_68567544整理目录分享
  • 参考文章:https://blog.csdn.net/weixin_45067603/article/details/107053479及百度百科、知乎等

课程相关资源(课件、PDF文档、仿真软件)稍后有时间整理后会分享链接到评论区自行下载😺

文章思维导图&知识点导航速览

1.链路层的功能
⒉链路层的两种信道
3.局域网、广域网
4.链路层的设备

一、数据链路层概述

  • 结点: 主机、路由器
  • 链路(Link): 一个结点到相邻结点的一段物理通道(双绞线、光纤、微波等,分为有线链路和无线链路),而中间没有任何其他的交换结点。
  • 数据链路(Data Link): 网络中两个结点之间的逻辑通道,把实现通信协议的硬件和软件加到链路上构成了数据链路。
  • 帧(Frame): 数据链路层以帧为单位,封装网络层数据报。
    数据链路层位置概述
    数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

说人话就是,物理层传的0101流怎么解读?有没有传输错误信息?是不是可靠的传输?
功能一∶为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。有连接一定有确认!功能二∶链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
功能三∶组帧。
功能四︰流量控制。限制发送方哦~
功能五∶差错控制〔帧错/位错)。

二、数据链路控制

数据链路控制处理两个邻近结点的通信过程,即结点到结点的通信,无论该链路是专用的还是广播的。数据链路控制( Data Link Control,DLC)的功能包括成帧、流量控制和差错控制,以及差错检测和差错纠正。

1.1 封装成帧

封装成帧是指数据链路层在给上层交付的协议数据单元添加帧头和帧尾使之成为帧。帧头和帧尾中包含有重要的控制信息。帧头和帧尾的作用之一就是帧定界(确定帧的界限,从收到的比特流中识别帧的开始和结束)。
在这里插入图片描述
透明传输 就是为了防止特殊的数据无法正常传输的的情况的发生,比如说在封装成帧的过程中,可能出现数据中的某些标记符与开始/结束标记符恰巧重复的情况,如果不加以处理,那么会导致无法判定帧的开始于结束。
在这里插入图片描述
帧:
以太网规定,一组电信号构成一个数据包,叫做”帧”(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。
“标头”包含数据包的一些说明项,比如发送者、接受者、数据类型等等;”数据”则是数据包的具体内容。
“标头”的长度,固定为18字节。”数据”的长度,最短为46字节,最长为1500字节。因此,整个”帧”最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。

组帧的四种方法:(透明传输的实现)
1、字符计数法
在这里插入图片描述
一个格子代表一个字符,帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数

2、字符填充法
在这里插入图片描述
原始数据中的帧边界为从**SOH(start of header)开始到EOT(End of transmisson)**结束,两者之间的数据存在类似的EOT、SOH时可能导致误判的帧的开始和结束,于是在与标记字符重复的数据流前面添加一段转义字符。

3、零比特填充法:
在这里插入图片描述

4、违规编码法
数据部分采用曼彻斯特编码所以都是高-低,低-高类型的,所以头和尾可以用高-高,低–低来帧定界
在这里插入图片描述
由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。

1.2 差错控制(检错编码)

在这里插入图片描述
没错,就是计组中的检错编码!
在这里插入图片描述
1、编码vs调制
数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
2、冗余编码
数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
在这里插入图片描述
在这里插入图片描述
海明码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 流量控制与可靠传输

流量控制:让传输过程中的发送速度和接受速度匹配,减少传输出错与资源浪费
可靠传输:发送方发的是什么,接收方接受的就是什么

在这里插入图片描述
在这里插入图片描述

停止等待协议 :

发送一个就停止,等待对方确认后再发送下一个;
无差错情况下的停等协议:
在这里插入图片描述
有差错情况下的停等协议:
使用一个超时计时器,每发一帧就开始计时,设置时间略长于一个RTT(往返时延)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是信道利用率太低
在这里插入图片描述
在这里插入图片描述

后退N帧协议(GBN)

停等协议效率低,所以GBN连续发送数据帧提高信道利用率,累计确认。
累计确认:就是收到一个确认帧,那么它和它之前的所有帧都默认已收到,反之,如果某个确认帧没收到,那么它和它之后的所有帧都默认丢失(即使收到了也丢掉),进行重传
在这里插入图片描述
发送窗口不能无限大,与使用的编号的比特数有关,二进制表示

GBN的优缺点也显而易见,优点是相对于上面的停止等待协议,明显提高了信道利用率,缺点是因为重传机制的原因,导致已经收到数据却需要强行丢弃,进而造成浪费

选择重传协议(SR)

吸取了GBN协议的教训,我们打算尝试只重传错误的帧,这样的话就不用浪费资源把已经收到的帧再重传一次。
在GBN中,仅有接收端有一个窗口来存放数据帧,在SR中,两者都有窗口了。
和GBN的区别其实就是做了一个数据缓存,已经收到的帧不用扔了,等待之前因意外丢失的帧收到的时候确认即可,但是只能缓存窗口尺寸内的包含的帧(注释:缓存不可能无限大)
SR运行过程
注释:2帧丢失之后仍然在发送,但是2帧丢失之后只是缓存,并没有移动窗口;它可以继续接受窗口范围内排在2帧后面的数据帧,直至最后2帧收到后一次性确认窗口内的所有已经收到的帧,再移动窗口。
在这里插入图片描述

当发送窗口最后和接受窗口大小相同时,利用率比较高
sr协议特点:
1.对数据帧逐一确认。收一个确认一个
2只重传出镭帧
3.资收方有缓存
4.WT max= WRmay=2n-1

信道划分&介质访问控制

链路层设备

在这里插入图片描述

未完待续…

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

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

相关文章

vue,前端打包项目、部署上线

前端项目是在本地的IDE开发的。流程是:开发》打包》上线到生产环境》使用。 vue脚手架只是开发过程中,协助开发的工具,当真正开发完了,脚手架不参与上线。 这时候要用到打包了。 打包后,可以生成,浏览器能够直接运行的网页>就是需要上线的源码! 打…

Clion中使用C/C++开发stm32程序

前言 从刚开始学习阶段,一直是用的keil5开发stm32程序,自从看到稚晖君推荐的CLion开发嵌入式程序后,这次尝试在CLion上开发stm32程序。 1、配置CLion用于STM32开发的环境 这里我就不详细写了,没必要重新写,网上教程很多…

华为OD机试 - 数字反转打印(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷&#…

dataframe保存excel格式比csv格式小很多很多

问题描述: 一个3万行的数据保存成csv大概10个G,但保存成excel格式只有100多M 原因分析: 因为xlsx 实际上就是 zip 压缩包,同时,如果有大量重复的数据,XLSX 会提取文本值,将其存储在查找表中&…

华为云云耀云服务器L实例评测|部署项目管理工具 Focalboard

华为云云耀云服务器L实例评测|部署项目管理工具 Focalboard 一、云耀云服务器L实例介绍1.1 云服务器介绍1.2 产品优势1.3 产品规格1.4 应用场景 二、云耀云服务器L实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 Focalboard3.1 Focalboard 介绍3.2 Doc…

2023年中国CEM-1型覆铜板产量、需求量及行业销售收入分析[图]

CEM-1指覆铜板的一种,以玻纤布半固化片与纸基半固化片层压铜箔达到固化后形成的板材,属于复合型基材,CEM-1能用来制作频率特性要求高的PCB,如电视机的调谐器、电源开关、超声波设备、计算机电源和键盘,也可以用于电视机…

Xcode 15 编译出错问题解决

正常升级xcode 15以后发现原来没有出现报错的代码,现在出现了编译错误。(如果没有出现请忽略)下面教你如何解决这个问题。 1、pod update更新cocoapods,因为其根据xcode15做了很多的更新,保证cocoapods是最新的。 千…

【19】c++设计模式——>桥接模式

桥接模式的定义 C的桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与实现部分分离,使得它们可以独立地变化。桥接模式的核心思想是利用组合关系代替继承关系,将系统划分成多个独立的、功能不同的类层次结…

Suricata + Wireshark离线流量日志分析

目录 一、访问一个404网址,触发监控规则 1、使用python搭建一个虚拟访问网址 2、打开Wireshark,抓取流量监控 3、在Suricata分析数据包 流量分析经典题型 入门题型 题目:Cephalopod(图片提取) 进阶题型 题目:抓到一只苍蝇(数据包筛选…

c语言练习题83:#include“ “和#include<>的区别

#include" "和#include<>的区别 #include<> 默认根据环境变量的值去先搜索标准库&#xff0c;搜索系统文件会比较快。 #include“” 先搜索当前工程的路径&#xff0c;搜索自己自定义的文件会比较快。 因此自定义的头文件的名称包含在<>中的话…

【Docker】Docker的工具实践及root概念,时间戳的概念和Docker容器安全性设置的详细讲解

作者简介&#xff1a; 辭七七&#xff0c;目前大二&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…

运行软件提示丢失msvcr120.dll文件怎么办?msvcr120.dll丢失的5个最新解决方法

找不到msvcr120.dll是一个常见的错误信息&#xff0c;通常会在用户尝试运行某些程序或游戏时出现。msvcr120.dll是 Windows 操作系统中的一个动态链接库文件&#xff0c;它包含了 C 运行时库的一些函数和类&#xff0c;对于许多程序和游戏的正常运行至关重要。 当用户遇到找不到…

POI 和 EasyExcel 操作 Excel

一、概述 目前操作 Excel 比较流行的就是 Apache POI 和阿里巴巴的 easyExcel。 1.1 POI 简介 Apache POI 是用 Java 编写的免费开源的跨平台的 Java API&#xff0c;Apache POI 提供 API 给 Java 程序对 Microsoft Office 格式文档读和写的常用功能。POI 为 “Poor Obfuscati…

一般香港服务器带宽选多大够用?(带宽计算方法)

​  在海外IDC市场份额中&#xff0c;香港服务器依托自身优越的服务器资源条件&#xff0c;在各个行业中发挥的重要作用。但是&#xff0c;不同业务对网络带宽的要求各不相同&#xff0c;弄清楚如何计算带宽需求对于确保业务平稳运行至关重要&#xff0c;最好从一开始就使用正…

039:mapboxGL更换地图上的鼠标样式

第039个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中更换地图上的鼠标的样式。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共74行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:htt…

012-第二代硬件选型

第二代硬件选型 文章目录 第二代硬件选型项目介绍重新换平台缘由X86 && Arm 架构切换 ARM Linux 硬件选型系统确定Qt 版本确定总结一下 关键字&#xff1a; Qt、 Qml、 Arm、 X86、 linux 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QM…

【jvm--方法区】

文章目录 1. 栈、堆、方法区的交互关系2. 方法区的内部结构3. 运行时常量池4. 方法区的演进细节5. 方法区的垃圾回收 1. 栈、堆、方法区的交互关系 方法区的基本理解&#xff1a; 方法区&#xff08;Method Area&#xff09;与 Java 堆一样&#xff0c;是各个线程共享的内存区…

4.MySql安装配置(更新版)

MySql安装配置 无论计算机是否有安装其他mysql&#xff0c;都不要卸载。 只要确定大版本是8即可&#xff0c;8.0.33 8.0.34 差别不大即可。 MySql下载安装适合电脑配置属性有关&#xff0c;一次性安装成功当然是非常好的&#xff0c;因为卸载步骤是非常麻烦的 如果第一次安装…

医疗器械标准目录汇编2022版共178页(文中附下载链接!)

为便于更好地应用医疗器械标准&#xff0c;国家药监局医疗器械标准管理中心组织对现行1851项医疗器械国家和行业标准按技术领域&#xff0c;编排形成《医疗器械标准目录汇编&#xff08;2022版&#xff09;》 该目录汇编分为通用技术领域和专业技术领域两大类&#xff0c;通用…

NoSQL Redis

NoSQL Redis 1、数据库1.1关系型数据库1.2非关系型数据库1.3关系型和非关系型区别 2、非关系型数据库应用场景3、存储结构4、redis4.1redis概述4.2Redis 优点4.3Redis为什么这么快&#xff1f; 5、部署redis6、redis基础操作 1、数据库 1.1关系型数据库 关系型数据库是一个结…