计算机网络笔记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.rhkb.cn/news/153135.html

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

相关文章

Vue-1.8生命周期

Vue生命周期 一个Vue实例从创建到销毁的整个过程。 生命周期: 1)创建:响应式数据 ->发送初始化渲染请求 2)挂载:渲染数据->操作dom 3)更新:数据修改,更新视图 4&#xf…

【Java】微服务——RabbitMQ消息队列(SpringAMQP实现五种消息模型)

目录 1.初识MQ1.1.同步和异步通讯1.1.1.同步通讯1.1.2.异步通讯 1.2.技术对比: 2.快速入门2.1.RabbitMQ消息模型2.4.1.publisher实现2.4.2.consumer实现 2.5.总结 3.SpringAMQP3.1.Basic Queue 简单队列模型3.1.1.消息发送3.1.2.消息接收3.1.3.测试 3.2.WorkQueue3.…

Excel·VBA使用ADO合并工作簿

之前文章《ExcelVBA合并工作簿(7,合并子文件夹同名工作簿中同名工作表,纵向汇总数据)》处理合并工作簿问题,代码运行速度比较慢 而《ExcelVBA使用ADO读取工作簿工作表数据》读取数据非常快,那么是否可以使用…

Unity中Shader光强与环境色

文章目录 前言一、实现下图中的小球接受环境光照实现思路:1、在Pass中使用前向渲染模式2、使用系统变量 _LightColor0 获取场景中的主平行灯 二、返回环境中主环境光的rgb固定a(亮度),小球亮度还随之改变的原因三、获取Unity中的环境光的颜色1、Color模式…

k8s安全机制

安全机制 一、机制说明二、认证(Authentication)HTTP Token 认证HTTP Base 认证HTTPS 证书认证(最严格) 三、鉴权(Authorization)角色角色绑定主体(subject)Role and ClusterRoleRol…

体育场馆能源消耗监测管理平台,为场馆提供能源服务

随着能源问题的不断重视,体育场馆能源问题也被人们广泛的关注。为了让体育场馆的能源高效利用,体育场馆能源消耗监测管理平台应用而生。 该平台通过采集、监测场内数据,并对数据进行实时分析与反馈,从而帮助管理者了解到场内能源…

【Python】win安装

目录标题 下载目录安装步骤验证是否安装成功linux 、MacOs 安装 下载目录 https://www.python.org/downloads/ 安装步骤 验证是否安装成功 进入命令行,输入 : python 出现版本号即查看成功: linux 、MacOs 安装 Python 安装到 Linux 上…

Dubbo 环境隔离

通过标签实现流量隔离环境(灰度、多套开发环境等) 无论是在日常开发测试环境,还是在预发生产环境,我们经常都会遇到流量隔离环境的需求。 在日常开发中,为了避免开发测试过程中互相干扰,我们有搭建多套独…

Git 学习笔记 | Git 项目创建及克隆

Git 学习笔记 | Git 项目创建及克隆 Git 学习笔记 | Git 项目创建及克隆创建工作目录与常用指令本地仓库搭建克隆远程仓库 Git 学习笔记 | Git 项目创建及克隆 创建工作目录与常用指令 工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是…

机器人中的数值优化(二十)——函数的光滑化技巧

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,…

数据结构——常见的十种排序算法

一、常见的十种排序算法: 冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、桶排序、基数排序 1.【知识框架】 补充: 内部排序:整个排序过程完全在内存中进行。 外部排序:由于待排序记录数据量太…

vued中图片路径与主机路径相关联,例如img:‘http://127.0.0.1:8000/media/data/els.jpg‘

1.在Django项目的settings.py文件中,确保已指定正确的MEDIA_URL和MEDIA_ROOT。MEDIA_URL定义了图片的URL前缀,MEDIA_ROOT定义了本地文件系统中存储图片的路径。 2.在 Django 项目的主 urls.py 文件中,确保包含了适当的 URL 配置,以…

mfoc-hardnested在visual studio2022编译

1、点击mfoc-hardnested.sln 2、没有clang LLVM (clang-cl) (未安装) 打开installer 点击修改: 单个组件中搜索clang ,安装即可 3、编译 4、main函数 5、mfoc-hardnested.exe使用

关于webWorker未解问题

今天尝试学习webworker,尝试在vue3项目里面使用 使用的就是常规方法,使用worker-loader,加上在vue.config.js内部添加配置 使用完发现问题 如图所见,该worker仅仅配置点击后传输字符串"1",并在worker内部打印,发现打印不出来 但是仅仅只是将引入的文件换个名字 …

基于springboot实现汽车租赁管理系统项目演示【项目源码+论文说明】分享

基于springboot实现汽车租赁管理系统项目演示 摘要 随着社会的发展,计算机的优势和普及使得汽车租赁系统的开发成为必需。汽车租赁系统主要是借助计算机,通过对汽车租赁信息等信息进行管理。减少管理员的工作,同时也方便广大用户对个人所需汽…

用OpenCV(Python)获取图像的SIFT特征

import cv2 as cv import numpy as np import matplotlib.pyplot as plt imgcv.imread("../Lena.png") img_graycv.cvtColor(img,cv.COLOR_BGR2GRAY)#创建一个SIFI对象 siftcv.SIFT_create()#使用SIFT对象在灰度图像img_gray中检测关键点,结果存储在变量k…

解读非托管流动性协议Hover: 差异化、层次化的全新借贷体系

“Hover 是 DeFi 借贷赛道的另辟蹊径者,除了在自身机制(借贷模型、治理体系)上进行创新获得内生动力外,背靠日渐繁荣的 Kava、Cosmos 生态进一步获得外生动力,发展潜力俱佳” 与 DEX 类似,借贷也是 DeFi 世…

对一门不是非常熟悉的语言是怎么面试的

公司是一个基础通讯类的公司,需要的职位是一个高级系统和软件工程师。 职位要求,是一个完全不怎么大众的语言:Elixir。 没听过,这就对了,这是一个函数式的语言,可以认为是 Erlang 的升级版本,…

Postgresql源码(115)LLVM JIT运行逻辑分析(上)

1 JIT入口开关 总入口:jit_enabled打开 且 生成计划成本超过jit_above_cost启动JIT。 计划成本超过jit_optimize_above_cost,执行PGJIT_OPT3使用O3对IR进行优化。计划成本超过jit_inline_above_cost,执行PGJIT_INLINE。jit_expressions开关如…

Linux网络监控工具 - iftop

iftop 是一个基于 libpcap 库的网络流量监控工具。它通过监听指定网络接口上的数据包,并分析这些数据包的源地址、目标地址、源端口、目标端口、协议等信息,从而实时显示网络流量的相关统计信息。 安装 在大多数Linux发行版中,您可以使用包管…