计网第三章(数据链路层)(三)
一、点对点协议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请求中的参数…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
 
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
 
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
 
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
 
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
 
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
