当前位置: 首页 > news >正文

计网第三章(数据链路层)(三)

一、点对点协议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时出发,乙在τ-\delta时刻出发,问两人何时能相遇,已知路程s=v*τ,两人的速度都为v。

假设在第u时刻发生相遇。那么就有vu+v(u-(τ-\delta))=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,...(2^{k}-1)}随机选取一个数。

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时报错&#xff1a;ImportError: cannot import name builder from google.protobuf.internal (stable-diffusion-webui/venv/lib/python3.8/site-packages/google/protobuf/internal/__init__.py) 原因&#xff1a;python版本过低&#xff0…...

el-popover弹窗修改三角样式或者位置

el-popover中设置类名 popper-class"filepopver"&#xff0c;我这位置是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 说明&#xff1a;全程使用的是终端操作 1. 下载Sublime Text&#xff0c;建议使用brew下载 2. 进入到下载的app的文件夹 cd "/Applications/Sublime Text.app/Contents/MacOS/"3. 执行以下操作以确认版本是否匹配 md5 -q sublime_text | grep -i…...

【排排站:探索数据结构中的队列奇象】

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

Mac OS 中JDK 环境(jdk 1.8.0_831)安装配置、环境变量配置及卸载操作

前言&#xff1a; 摊牌了&#xff0c;本来就有点喜新厌旧的我&#xff0c;特意把系统和开发环境都拉到比较高&#xff0c;想试验一下兼容性和某些新特性&#xff0c;探索了一下新大陆&#xff0c;也见识了各种光怪陆离的妖魔鬼怪。 因为要着手云平台项目的重构改版和新系统的架…...

[JAVAee]Tomcat - Servlet

目录 Tomcat Servlet的工作 创建Servlet ①项目 ②依赖 ③目录 ④代码 ⑤打包 ⑥部署 ⑦验证 Servlet的运行原理 Servlet API HttpServlet 方法 处理Get/POST请求 HttpServletRequest 方法 获取请求中的信息 获取GET请求中的参数 获取POST请求中的参数…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...