计网第三章(数据链路层)(三)
一、点对点协议PPP
在第一篇里有提到数据链路层的信道分为两种:点对点信道和广播信道。 PPP协议就属于点对点信道上的协议。
如果对前面数据链路层的三个基本问题了解的比较透彻,那么这一块很多东西都很好理解。
从考试的角度来讲,PPP协议并不算是数据链路层的重要考点。这里主要对它的一些特点进行说明:
(1)简单:
这种数据链路层的协议很简单,接收方每收到一帧,就进行CRC检验(三个基本问题里的差错检测),无误码就接收,有误码就丢弃,随后什么也不做。
这里能看出,PPP协议本身不具有可靠性,因为可靠是发送什么就接受到什么,但是PPP协议检错会直接丢弃,不符合可靠的规则。
(2)封装成帧:
该协议必须使用特殊的字符作为帧定界符(取值为0x7E)。(三个基本问题里的封装成帧)。
(3)透明性:
该协议必须保证数据传输的透明性。(三个基本问题里的透明传输)
具体措施就是面向字节的异步链路使用字节填充,即插入转义字符。
面向比特的同步链路就使用比特填充,插入比特0。
(4)多种网络层协议
该协议须在能够在同一条物理链路上同时支持多种网络层协议的运行。
PPP协议虽然本身没有可靠性,但是可以在其上层的协议中实现可靠性。
(5)多种类型链路
该协议须能在多种类型的链路上运行。如:串行的和并行的、同步的和异步的等。
二、广播信道
1.媒体接入控制
共享信道着重考虑的一个问题是如何协调多个发送和接收站点对一个共享传输媒体的占用。即媒体接入控制MAC。
(1)静态划分信道:
就是利用频分多址、时分多址、码分多址等。预先固定好分配信道,这类方法不灵活,对于突发性数据传输信道利用率很低。通常在物理层使用。
频分复用、码分复用和时分复用等都已经在物理层里介绍,这种划分信道的方式代价比较高,不适合局域网使用。
(2)动态接入控制:
分为随机接入和受控接入。
当一个团体去做一件事的时候,避免出现问题的方法大体可以分为两种:一种是大家都听从管理,不能擅自行动,那么出现问题的可能性自然会大大降低,这种就是受控接入。另一种是大家可以自由活动,而针对自由活动可能出现的问题提前准备好相应的措施,这就是随机接入。
受控接入:
特点是用户必须服从一定控制不能随机发送信息。该种接入在局域网中使用较少,不是重点内容,故不多讨论。
随机接入:
所有用户可以随机地发送信息,但是如果多个用户同时发送信息,自然会在共享媒体上产生碰撞从而导致用户发送失败。所以,就要有解决碰撞的协议。
CSMA/CD协议:
总线型局域网使用的协议。
载波监听多址接入/碰撞检测。其中
MA为多址接入:多个站连接在一条总线上,竞争使用总线。(就是说明这是一个总线型网络)。
CS为载波监听:每个站在发送帧前都要先检测一下总线上是否有其他站在发送帧(先“听”后“说”)。如果总线空闲就发送帧,如果检测到总线正在忙,那么就继续检测并等待总线空闲。
CD为碰撞检测:
每个正在发送帧的站边发送边检测碰撞(边“听”边“说”)。一旦检测到碰撞,立即停止发送,退避一段随机时间后再次发送。
争用期(碰撞窗口):
如图:
这让我莫名想到了经典的数学题,甲和乙相向行走的问题:现在假设甲在t=0时出发,乙在τ-时刻出发,问两人何时能相遇,已知路程s=v*τ,两人的速度都为v。
假设在第u时刻发生相遇。那么就有vu+v(u-(τ-))=vτ。解出有u=τ-δ/2。
回归正题,检测到碰撞也很好算,路程一样,速度一样,那么时间也必然是一样的。
对A来说,就是τ-δ/2时发生碰撞,从出发的时刻计算,应该过了τ-δ/2的时间,再传回去又得τ-δ/2的时间,所以在2τ-δ时刻A检测到碰撞。
对D来说,在τ-δ/2时发生碰撞,从出发的时刻计算,应该过了δ/2的时间,再传回去又得δ/2的时间,所以在τ时刻D检测到碰撞。
下面对细节进行讨论,假设δ趋于0,那么主机最多经过2τ的时间就可以检测到碰撞。所以,以太网端到端往返传播时延2τ为争用期,也叫碰撞窗口。过了这段时间没有检测到碰撞,就可以肯定这次发送不会产生碰撞。
每个主机在自己发送帧的一小段时间内有可能会产生碰撞。该小段时间主要取决于另一个发送帧的主机到本机的距离。但是不会超过一个争用期时间。
最小帧长:
假设A现在发送一个很短的帧,由于帧特别短,A发送完之后就不会再进行检测碰撞,该帧在信道上传输,如果还未到达C,C检测到信道空闲然后发送帧,结果必然会发生碰撞。由于A已经结束对该帧的检测,所以并不会重发该帧。
所以帧不能过短,以太网规定最小帧长为64字节。其保证了主机可在发送完帧之前检测该帧是否会发生碰撞,如果在争用期没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞。
最大帧长:
假设A给D发送一个很长的帧,那么B和C想发送帧,但是一直检测到信道处于忙的状态,所以无法发送,而对于D来说,D的接收缓存区可能会因为无法装下帧而溢出。
以太网的帧根据不同的版本格式,有不同的最大帧长。
截断二进制指数退避:
退避时间=基本退避时间2τ*随机数r。
其中r从离散的整数集合{0,1,2,...()}随机选取一个数。
k就决定了这个整数集合的范围。k=min{重传次数,10}, 也就是说当重传次数小于10时k就等于重传次数,否则就取10。
当重传达16次仍不能成功时,这表明同时打算发送数据的站太多,以致连续发生冲突,则丢弃该帧,并向高层报告。
CSMA/CA协议:
该知识在谢希仁老师的计算机网络第八版的第412页,放在这里是为了好比较,在考纲上算是超纲内容,所以只做简单介绍。
无线型局域网使用的协议。
其中CSMA的含义和前述协议一样,CA意为碰撞避免。
该协议是802.11局域网采用的无线信道访问控制协议。802.11局域网在运用该协议时,还要使用停止等待协议(因为无线信道的质量远不如有线信道)。所以该协议具有确认机制。注意,碰撞检测是没有确认机制的。
相关文章:
计网第三章(数据链路层)(三)
一、点对点协议PPP 在第一篇里有提到数据链路层的信道分为两种:点对点信道和广播信道。 PPP协议就属于点对点信道上的协议。 如果对前面数据链路层的三个基本问题了解的比较透彻,那么这一块很多东西都很好理解。 从考试的角度来讲,PPP协议…...
蓝桥杯每日N题 (砝码称重)
大家好 我是寸铁 希望这篇题解对你有用,麻烦动动手指点个赞或关注,感谢您的关注 不清楚蓝桥杯考什么的点点下方👇 考点秘籍 想背纯享模版的伙伴们点点下方👇 蓝桥杯省一你一定不能错过的模板大全(第一期) 蓝桥杯省一你一定不…...
Opencv 视频的读取与写入
目录 前言 通过路径获取视频内容 获取视频内容 检查是否正确打开 循环播放 完整代码 从摄像头读取视频数据 获取视频设备 其他与直接读取视频一致 完整实例 录制视频 用于创建视频编解码器的四字符码(FourCC) cv2.VideoWriter() 将视频帧…...

LeetCode 833. Find And Replace in String【字符串,哈希表,模拟】1460
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
Cesium轨迹漫游及视角切换
飞行漫游,就是让Camera飞行。Camera有一些方法可以实现位置、视角的调整,比如flyTo,setView方法。但这些方法并不能沿着我们想要的路径调整,在通过插值的方法不停的调用setView,但这样会造成视图卡顿,而且计…...

构建去中心化微服务集群,满足高可用性和高并发需求的实践指南!
随着互联网技术的不断发展,微服务架构已经成为了开发和部署应用程序的一种主流方式。然而,当应用程序需要满足高可用性和高并发需求时,单一中心化的微服务架构可能无法满足性能和可靠性的要求。因此,构建一个去中心化的微服务集群…...

开集输出和开漏输出
首先指明一下以下8中GPIO输入输出模式: GPIO_Mode_AIN 模拟输入; GPIO_Mode_IN_FLOATING 浮空输入; GPIO_Mode_IPD 下拉输入; GPIO_Mode…...

解决内网GitLab 社区版 15.11.13项目拉取失败
问题描述 GitLab 社区版 发布不久,搭建在内网拉取项目报错,可能提示 unable to access https://github.comxxxxxxxxxxx: Failed to connect to xxxxxxxxxxxxxGit clone error - Invalid argument error:14077438:SSL routines:SSL23_GET_S 15.11.13ht…...

【MySQL--->表的约束】
文章目录 [TOC](文章目录) 一、表的约束概念二、空属性约束三、default约束四、zerofill约束五、主键约束六、auto_increment(自增长)约束七、唯一键约束八、外键约束 一、表的约束概念 表通过约束可以保证插入数据的合法性,本质是通过技术手段,保证插入数据收约束,保证数据的…...

github中Keyless Google Maps API在网页中显示地图和标记 无需api key
使用Google Maps API在网页中显示地图和标记的示例博客。以下是一个简单的示例: C:\pythoncode\blog\google-map-markers-gh-pages\google-map-markers-gh-pages\index.html 介绍: 在本篇博客中,我们将学习如何使用Google Maps API在网页中…...

ComPDFKit PDF SDK for Windows Crack
ComPDFKit PDF SDK for Windows Crack 添加了在创建文本框时调整默认属性的支持。 增加了对调整PDF大小时调整宽度的支持。 添加了对编辑文本时更多快捷方式的支持。 优化了文本输入,并将字体样式与原始文本相匹配。 在内容编辑器模式下复制和粘贴时优化了UI交互。 …...

React+Typescript 状态管理
好 本文 我们来说说状态管理 也就是我们的 state 我们直接顺便写一个组件 参考代码如下 import * as React from "react";interface IProps {title: string,age: number }interface IState {count:number }export default class hello extends React.Component<I…...
stable diffusion 运行时报错: returned non-zero exit status 1.
运行sh run.sh安装stable diffusion时报错:ImportError: cannot import name builder from google.protobuf.internal (stable-diffusion-webui/venv/lib/python3.8/site-packages/google/protobuf/internal/__init__.py) 原因:python版本过低࿰…...
el-popover弹窗修改三角样式或者位置
el-popover中设置类名 popper-class"filepopver",我这位置是placement"top-start" <el-popover placement"top-start" popper-class"filepopver" class"filename" width"300" trigger"hover&q…...

Linux驱动开发之点亮三盏小灯
头文件 #ifndef __HEAD_H__ #define __HEAD_H__//LED1和LED3的硬件地址 #define PHY_LED1_MODER 0x50006000 #define PHY_LED1_ODR 0x50006014 #define PHY_LED1_RCC 0x50000A28 //LED2的硬件地址 #define PHY_LED2_MODER 0x50007000 #define PHY_LED2_ODR 0x50007014 #define…...
【SA8295P 源码分析】71 - QAM8295P 原理图参考设计 之 MIPI DSI 接口硬件原理分析
【SA8295P 源码分析】71 - QAM8295P 原理图参考设计 之 MIPI DSI 接口硬件原理分析 一、MIPI-DSI 接口介绍二、高通参考硬件原理图分析:ANX7625 桥接芯片方案2.1 高通参考设计:两路 4-Lane DSI 接口2.2 高通参考设计:DSI0 硬件原理图,将 4 Lane DSI数据通过 ANX7625 桥接芯…...

macOS(m1/m2)破解Sublime Text和Navicat16
破解Sublime Text 说明:全程使用的是终端操作 1. 下载Sublime Text,建议使用brew下载 2. 进入到下载的app的文件夹 cd "/Applications/Sublime Text.app/Contents/MacOS/"3. 执行以下操作以确认版本是否匹配 md5 -q sublime_text | grep -i…...

【排排站:探索数据结构中的队列奇象】
本章重点 队列的概念及结构 队列的实现方式 链表方式实现栈接口 队列面试题 一、队列的概念及结构 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out) 入队列&#x…...

Mac OS 中JDK 环境(jdk 1.8.0_831)安装配置、环境变量配置及卸载操作
前言: 摊牌了,本来就有点喜新厌旧的我,特意把系统和开发环境都拉到比较高,想试验一下兼容性和某些新特性,探索了一下新大陆,也见识了各种光怪陆离的妖魔鬼怪。 因为要着手云平台项目的重构改版和新系统的架…...

[JAVAee]Tomcat - Servlet
目录 Tomcat Servlet的工作 创建Servlet ①项目 ②依赖 ③目录 ④代码 ⑤打包 ⑥部署 ⑦验证 Servlet的运行原理 Servlet API HttpServlet 方法 处理Get/POST请求 HttpServletRequest 方法 获取请求中的信息 获取GET请求中的参数 获取POST请求中的参数…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...

认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...