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

news2024/11/23 14:53:17

一、点对点协议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局域网在运用该协议时,还要使用停止等待协议(因为无线信道的质量远不如有线信道)。所以该协议具有确认机制。注意,碰撞检测是没有确认机制的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/902842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计…

RabbitMq-2安装与配置

Rabbitmq的安装 1.上传资源 注意:rabbitmq的版本必须与erlang编译器的版本适配 2.安装依赖环境 //打开虚拟机 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xz3.安装erlan…

OpenCV笔记之solvePnP函数和calibrateCamera函数对比

OpenCV笔记之solvePnP函数和calibrateCamera函数对比 文章目录 OpenCV笔记之solvePnP函数和calibrateCamera函数对比1.cv::solvePnP2.cv::solvePnP函数的用途和工作原理3.cv::solvePnP背后的数学方程式4.cv::SOLVEPNP_ITERATIVE、cv::SOLVEPNP_EPNP、cv::SOLVEPNP_P3P5.一个固定…

AI项目二:基于mediapipe的虚拟绘画

若该文为原创文章,转载请注明原文出处。 一、项目介绍 随着人工智能时代的到来,许多技术得到了空前的发展,让人们更加认识到了线上虚拟技术的强大。 通过mediapipe识别手的关键点,检测中指,实现隔空画画的操作。 通…

Linux/Ubuntu 的日常升级和安全更新,如何操作?

我安装的是Ubuntu 20.04.6 LTS的Windows上Linux子系统版本,启动完成后显示: Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.90.4-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.c…

ros小车实现slam_gmapping建图

ros小车2d建图,如果有雷达,那么使用gmapping方式建图,其实就一个命令,启动建图程序,它默认会启动小车,之后,我们通过手柄或者键盘控制小车就可以有地图产生,然后就需要保存地图&…

【高级IO】- 五种 IO 模型 | 多路转接 - select

IO的基本概念 I/O(Input / output)就是输入和输出,在冯诺依曼体系中,将数据从输入设备拷贝到内存叫做输入,将数据从内存拷贝到输出设备叫做输出。 对文件进行的读写操作本质就是一种IO,文件IO对应的外设就…

【2023最新爬虫】爬取知乎任意问题下的全部回答

老规矩,先上结果: 爬取了前200多页,每页5条数据,共1000多条回答。(程序设置的自动判断结束页,我是手动break的) 共爬到13个字段,包含: 问题id,页码,答主昵称,答主性别,…

【Python】json文件的读取

文章目录 1. json简介2.json的使用规范3.json文件的书写4.json文件的读取 1. json简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于将结构化数据进行传输和存储。它基于JavaScript语法,但可以被多种编程…

玩机搞机----面具模块的组成 制作模块

root面具相信很多玩家都不陌生。早期玩友大都使用第三方卡刷补丁来对系统进行各种修复和添加功能。目前面具补丁代替了这些操作。今天的帖子了解下面具各种模块的组成和几种普遍的代码组成。 Magisk中运行的每个单独的shell脚本都将在内部的BusyBox的shell中执行。对于与第三方…

(排序) 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 ——【Leetcode每日一题】

❓剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 难度:简单 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。 示例: 输入:nums [1…

绘制原型图的常用工具之墨刀

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于OA项目的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.墨刀是什么 二.墨刀的作用 三.墨刀界…

opencv-手势识别

# HandTrackingModule.py import cv2 import mediapipe as mpclass HandDetector:"""使用mediapipe库查找手。导出地标像素格式。添加了额外的功能。如查找方式,许多手指向上或两个手指之间的距离。而且提供找到的手的边界框信息。"""…

【MySQL】JSON 格式字段处理

MySQL 5.7 版本后已支持 JSON 格式,这虽是 MySQL 的一小步,但可以说是程序开发的一大步,再也不用将 JSON 内容塞到 VARCHAR 类型字段了,程序设计也会变得更加灵活。网上大多只针对JSONObject 对象类型,本文也将详解 JS…

Linux网络服务之iptables防火墙工具

I P T A B L E S 一、防火墙简介1.1 netfilter1.2 firewalld和iptables 二、iptables工具简述2.1 定义2.2 三种报文流向2.3 iptables的表、链结构(非常重要)2.3.1 "四表" ----- 规则表2.3.2 "五链" ----- 规则链 三、iptables配置3.…

适合低成本兼职的十个职业,做得好可能比上班挣得还多

这个年头干点什么兼职或者副业比较合适的,其实做兼职和副业就那么几条原则:最好是轻资产或者不投入资金,因为这个年代是现金流和储蓄为王,不能乱投资,一旦出了差错,更是雪上加霜。还有就是最好在网络上做兼…

对话音视频牛哥:开发RTSP|RTMP直播播放器难不难?难在哪?

我关注的播放器指标 好多开发者跟我交流音视频相关技术的时候,经常问我的问题是,多久可以开发个商业级别的RTMP或RTSP播放器?你们是怎样做到毫秒级延迟的?为什么一个播放器,会被你们做到那么复杂?带着这些…

一文详解4种聚类算法及可视化(Python)

在这篇文章中,基于20家公司的股票价格时间序列数据。根据股票价格之间的相关性,看一下对这些公司进行聚类的四种不同方式。 苹果(AAPL),亚马逊(AMZN),Facebook(META&…

裴蜀定理-拓展欧几里得算法--夏令营

题目 知识点 1.裴蜀定理: 欧几里得算法gcd辗转相除法 拓展欧几里得算法exgcd裴蜀定理 2.证明: 3.. 代码: int exgcd(int a, int b, int& x, int& y) {if (!b){x 1, y 0;return a;}int d exgcd(b, a % b, y, x);y - a / b * x;…

rabbitMq安装后无法启动可视化页面http://localhost:15672处理

本次安装环境信息: 系统:win10 64位专业版 erlang:otp_win64_23.0 rabbitMQ:rabbitmq-server-3.8.5 安装rabbitMQ需要依赖erlang语言环境,所以需要我们下载erlang的环境安装程序。 一、下载安装程序 rabbitMQ安装…