【计算机网络】数据链路层 : 总结 ( 封装成帧 | 流量控制与可靠传输 | 差错控制 | 介质访问控制 | 局域网 | 广域网 | 数据链路层设备 ) ★★★(一)

简介: 【计算机网络】数据链路层 : 总结 ( 封装成帧 | 流量控制与可靠传输 | 差错控制 | 介质访问控制 | 局域网 | 广域网 | 数据链路层设备 ) ★★★(一)

一、数据链路层 功能


"数据链路层" 功能 :


① 可靠性服务 : “数据链路层” 在 物理层 提供的服务的基础上 , 提供可靠性服务 ;


② 服务内容 : 将 网络层 下发的数据 , 可靠地 传输给 相邻节点的 网络层 ;


③ 逻辑上无差错链路 : “数据链路层” 加强了 物理层 传输 比特流 的能力 , 物理层传输可能出错 , 数据链路层可以将 物理连接 改造成 逻辑上无差错 的数据链路 ;




"数据链路层" 功能 列举 :


① 为网络层 提供服务


无确认无连接服务

有确认无连接服务

有确认有连接服务

② 链路管理 , 面向连接的服务中 , 建立连接 , 维持连接 , 释放连接 ;


③ 将 数据报 组成 数据帧


④ 流量控制 , 主要是 限制 发送方的数据率 ;


⑤ 差错控制 , 帧错误处理 ( 重发 ) , 位错误处理 ( 纠正 ) ;



参考博客 : 【计算机网络】数据链路层 : 概述 ( 基本概念 | 功能 | 为 “网络层“ 提供的服务 )






二、封装成帧 ★


1 . 数据帧透明传输需求 :


① 数据帧封装 : 数据帧 添加 帧首部 , 和 帧尾部 ; 帧首部 和 帧尾部 之间的部分就是实际的数据 ;


② 传输 文本文件 : 数据帧 的数据 是 文本文件组成时 , 数据都是 ASCII 码 , 键盘上传输的任何字符 , 都 可以透明传输 ;


③ 传输 非文本文件 : 如果传输的文件是 非 文本文件 , 如 图像 , 音频 , 视频 等 , 此时 文件中的数据可能是任意值 , 就有可能与 帧尾部 或 帧首部 相同 , 此时就需要 采用 字符填充法实现 透明传输 ;




2 . 字符填充法 :


① 数据的随机性 : 原始数据中 , 存在 与 帧首部 , 帧尾部 相同的数据 ;


② 发送端填充转义字符 : 在这些 数据中的 帧首部 / 帧尾部 相同的数据前 , 填充一个转义字符 , 告诉接收端 , 转义字符后的后续数据作为帧数据 , 不当做 帧首部 / 帧尾部 使用 ;


③ 接收端接收数据 : 接收端 接收到的数据中有 转义字符 + 帧首部 / 尾部 样式的信息时 , 将转义字符后的数据当做帧数据 ; 当接收到 单独的 帧首部 / 尾部 时 ( 没有转义字符 ) , 才将其当做数据帧的首部 / 尾部 ;





3 . 零比特填充法 :


① “数据帧” 首部尾部设定 : 数据帧首部尾部 都设定成 01111110 0111111001111110 , 解决 数据中出现 01111110 0111111001111110 数据的情况 , 实现透明传输 ;


② 发送端 : 扫描发送数据 , 发现有连续的 5 55 个 1 11 , 就在后面加上一个 0 00 ; 这样 帧数据 永远不会出现 6 66 个 1 11 的数据 ;


③ 接收端 : 扫描接收数据 , 发现有连续的 5 55 个 1 11 , 就将后面的 0 00 删除 ; 对应 发送端的操作 ;



这样在比特流中可以传输任意比特组合 , 不会引起 数据帧 边界判定错误的问题 , 实现了透明传输 ;




参考博客 : 【计算机网络】数据链路层 : 封装数据帧 ( 附加信息 | 帧长度 | 透明传输 | 字符计数法 | 字符填充法 | 零比特填充法 | 违规编码法 )






三、流量控制 和 可靠传输 ★★




1、停止等待协议 ★


1 . 停止等待协议


停止-等待 协议 解决的问题 :


可靠传输 : 解决 由于 物理线路 , 设备故障 , 路由错误 等各种问题导致的 丢包问题 ;

流量控制 : 实现 发送端 与 接收端 的 流量控制 ;


停止-等待 协议 讨论场景 : 只考虑 一方为发送方 , 一方为接收方 ; 相当于 单工通信场景 ;



停止-等待 协议内容 : 发送方 每 发送完一个 数据帧 ( 分组 / 数据报 ) , 就停止发送 , 等待接收端确认 , 接收到 接收端 确认信息后 , 再发送下一个分组数据 ;



停止-等待 协议 应用场景 :


无差错情况

有差错情况



2 . 信道利用率 :


"停止-等待协议" 性能分析 :


优点 : 简单


缺点 : 信道利用率 低 ;




信道利用率 :


U = T D T D + R T T + T A U = \cfrac{T_D}{T_D + RTT + T_A}

U=

T

D


+RTT+T

A


T

D




U UU 是信道利用率 ;


T D T_DT

D


 是发送方发送延迟 , 即发送方用了多长时间将数据帧发送完毕 ;


R T T RTTRTT 是往返时延 ;


T A T_AT

A


 是接收方 发送 A C K ACKACK 确认帧 的时延 ;



"停止-等待协议" 信道利用率很低 , 大部分事件都在 传输的延迟上 , 用于发送接收的时间很少 ;




3 . 停止等待协议 信道利用率 计算示例 :


信道传输速率 4000b/s , 单向传播时延 30ms , 使 “停止-等待” 协议 信道利用率达到 80% , 数据帧长度至少是多少 ? ??



信道利用率公式为 :


U = T D T D + R T T + T A U = \cfrac{T_D}{T_D + RTT + T_A}

U=

T

D


+RTT+T

A


T

D





先把数据单位收拾下 , 传输速率 4000 比特 / 秒 , 单向传播时延 0.03 秒 , RTT 是 0.06 秒 ; 设 数据帧长度是 L LL 比特 ; 这里没有给出 ACK 发送延迟 , 当做 0 00 ;



L 4000 L 4000 + 0.06 + 0 = 0.8 \cfrac{\dfrac{L}{4000}}{\dfrac{L}{4000} + 0.06 + 0} = 0.8

4000

L


+0.06+0

4000

L



=0.8



分子分母都乘以 4000 40004000 ;



L L + 240 = 0.8 \cfrac{L}{L+ 240} = 0.8

L+240

L


=0.8


L = 0.8 L + 192 L= 0.8 L + 192L=0.8L+192


0.2 L = 192 0.2L= 1920.2L=192


L = 960 L= 960L=960 单位是 比特 ;


数据帧的长度至少是 960 960960 比特 ;




参考博客 : 【计算机网络】数据链路层 : 停止-等待协议 ( 无差错情况 | 有差错情况 | 帧丢失 | 帧出错 | ACK 确认帧丢失 | ACK 确认帧延迟 | 信道利用率公式 | 信道利用率计算 )★




2、后退 N 帧 ( GBN ) 协议 ★


"停止-等待" 协议 弊端 : 信道利用率低 , 发送完一帧后等待 , 这个时候信道完全是空闲的 ;



为了提高信道利用率 , 发送端 发送完一帧后 , 不用等待 接收端的 ACK 确认帧 , 立刻发送 第二帧 , 第三帧 , 这样信道的利用率就提高了 ;



相应协议也要做一些更改 :


① 增加 发送方 的 帧 序号范围 ;


② 发送方 缓存 多个 帧分组 ; 连续发送 N NN 帧 , 其中某一帧 可能需要重传 , 但不知道哪一帧需要重传 , 这里 需要将这 N NN 帧全部缓存下来 ;



这里有引出了两个在 “停止-等待” 协议基础上 , 改进的两个协议 :


后退 N NN 帧协议 ( GBN )

选择重传协议 ( SR )



2 . 后退 N 帧协议 重点 ★


发送方 累计确认 机制 : 收到 ACK N NN , 就表示 N NN 号帧及之前的帧 , 全部正确 ;



接收方 按序接收 : 接收方 只能 按照顺序接收 , 人如果中间有帧丢失 , 那么后续帧全部丢弃 ;



接收方 确认帧 : 接收方 如果 收到错误帧 , 失序帧 , 那么查找最近成功接收的正确的帧的最大的 , 按序到达的帧 序号是多少 , 发送该帧对应的 ACK 确认帧 ;



发送窗口 : n nn 是帧序号编码长度 , 发送窗口大小 最大是 2 n − 1 2^n - 12

n

−1 , 最小 1 11 ;




3 . 后退 N 帧协议 计算示例 :


数据链路层 采用 后退 N NN 帧协议 , 发送方 发送了 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 0,1,2,3,4,5,6,70,1,2,3,4,5,6,7 编号的数据帧 , 当计时器超时时 , 只接收到了 0 , 2 , 3 0 , 2, 30,2,3 帧的确认帧 , 发送方需要重发的帧数时 4 , 5 , 6 , 7 4,5,6,74,5,6,7 帧 ;



计时器超时 , 发送方 发送 已发送 , 但是没有被 确认 的帧 ;


确认机制 是 累计确认 的 , 发送方 接收到了 3 33 确认帧 , 说明 3 33 之前的帧已经成功接收了 , 虽然没有收到 1 11 确认帧 , 但是该帧已经默认接收成功 ;


重发 没有被确认的帧 , 即 4 , 5 , 6 , 7 4,5,6,74,5,6,7 帧 ;




参考博客 : 【计算机网络】数据链路层 : 后退 N 帧协议 GBN ( 滑动窗口 | 发送窗口长度 | “发送方“ 累计确认、超时机制 | “接收方“ 按序接收、确认帧发送机制 | 计算示例 )★




相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
1月前
|
存储 安全 Linux
Dell OpenManage Enterprise 4.4 - Dell 服务器、存储和网络设备集中管理软件
Dell OpenManage Enterprise 4.4 - Dell 服务器、存储和网络设备集中管理软件
46 4
Dell OpenManage Enterprise 4.4 - Dell 服务器、存储和网络设备集中管理软件
|
29天前
|
存储 监控 算法
公司内部网络监控中的二叉搜索树算法:基于 Node.js 的实时设备状态管理
在数字化办公生态系统中,公司内部网络监控已成为企业信息安全管理体系的核心构成要素。随着局域网内终端设备数量呈指数级增长,实现设备状态的实时追踪与异常节点的快速定位,已成为亟待解决的关键技术难题。传统线性数据结构在处理动态更新的设备信息时,存在检索效率低下的固有缺陷;而树形数据结构因其天然的分层特性与高效的检索机制,逐渐成为网络监控领域的研究热点。本文以二叉搜索树(Binary Search Tree, BST)作为研究对象,系统探讨其在公司内部网络监控场景中的应用机制,并基于 Node.js 平台构建一套具备实时更新与快速查询功能的设备状态管理算法框架。
39 3
|
11天前
|
存储 安全 网络架构
网络设备的分类和功能、机柜布局、网络设备安装
中继器是局域网互连的最简单设备,它工作在OSI体系结构的物理层,它接收并识别网络信号,然后再生信号并将其发送到网络的其他分支上。要保证中继器能够正确工作,首先要保证每一个分支中的数据包和逻辑链路协议是相同的。
|
1月前
|
安全 Ubuntu Linux
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
66 0
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
|
2月前
|
XML 安全 网络安全
Nipper 3.7.0 Windows x64 - 网络设备漏洞评估
Nipper 3.7.0 Windows x64 - 网络设备漏洞评估
51 0
Nipper 3.7.0 Windows x64 - 网络设备漏洞评估
|
4月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
130 20
|
5月前
|
安全 Linux 网络安全
利用Python脚本自动备份网络设备配置
通过本文的介绍,我们了解了如何利用Python脚本自动备份网络设备配置。该脚本使用 `paramiko`库通过SSH连接到设备,获取并保存配置文件。通过定时任务调度,可以实现定期自动备份,确保网络设备配置的安全和可用。希望这些内容能够帮助你在实际工作中实现网络设备的自动化备份。
151 14
|
4月前
|
监控 关系型数据库 MySQL
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
73 0
|
5月前
|
存储 监控 安全
网络设备日志记录
网络设备日志记录是追踪设备事件(如错误、警告、信息活动)的过程,帮助IT管理员进行故障排除和违规后分析。日志详细记录用户活动,涵盖登录、帐户创建及数据访问等。为优化日志记录,需启用日志功能、管理记录内容、区分常规与异常活动,并使用专用工具进行事件关联和分析。集中式日志记录解决方案可收集并统一管理来自多种设备和应用的日志,提供简化搜索、安全存储、主动监控和更好的事件可见性,增强网络安全。常用工具如EventLog Analyzer能灵活收集、存储和分析日志,确保高效管理。
276 5
|
6月前
|
5G 数据安全/隐私保护
如果已经链接了5Gwifi网络设备是否还能搜索到其他5Gwifi网络
当设备已经连接到一个5G Wi-Fi网络时,它仍然有能力搜索和发现其他可用的5G Wi-Fi网络。这里所说的“5G Wi-Fi”通常指的是运行在5GHz频段的Wi-Fi网络,而不是与移动通信中的5G网络(即第五代移动通信技术)混淆。

热门文章

最新文章