计算机网络:数据链路层 —— 共享式以太网

文章目录

    • 共享式以太网
      • CSMA/CD 协议
        • CSMA/CD 协议 的基本原理
      • 共享式以太网的争用期
      • 共享式以太网的最小帧长
      • 共享式以太网的最大帧长
      • 共享式以太网的退避算法
        • 截断二进制指数退避算法
      • 共享二进制以太网的信道利用率
      • 使用集线器的共享式以太网
        • 10BASE-T

共享式以太网

共享式以太网是当今局域网中广泛采用的一种通信协议标准,它定义了局域网(LAN)中电缆的类型和信号处理方法

共享式以太网中的所有节点都共享一段传输信道,并通过该信道传输信息。采用带冲突检测的载波侦听多路访问CSMA/CD)机制。当以太网中的一台主机要传输数据时,会先侦听信道上是否有其他设备正在传输,如果信道空闲,则开始传输数据;如果侦听到冲突,则等待一段时间后再次尝试传输。

![[共享式以太网.png]]

CSMA/CD 协议

CSMA/CD 协议(Carrier Sense Multiple Access/Collision Detection,载波监听多址接入/碰撞检测)是一种重要的媒体访问控制方法,特别是在以太网等局域网中广泛应用。

  • 在以太网的发展初期,人们普遍认为“无源的电缆线比有源器件可靠”,因此将多个站点连接在一条总线上来构建共享总线以太网。

  • 共享总线以太网具有天然的广播特性,即使总线上某个站点给另一个站点发送单播帧,表示帧的信号也会沿着总线传播到总线上的其他各站点

  • 当某个站点在总线上发送帧时,总线资源会被该站点独占。此时,如果总线上的其他站点也要在总线上发送帧,就会产生信号碰撞

  • 当两个或多个站点同时使用总线发送帧时,就会产生信号碰撞。

  • 为了解决各站点争用总线的问题,共享总线以太网使用了一种专用协议 CSMA/CD,它是载波监听多址接入/碰撞检测(Carrier Sense Multiple Access Collision Detection)的英文缩写词。

CSMA/CD 协议 的基本原理
  • CS 载波监听:每个站点在发送帧之前,先要检测一下总线上是否有其他站点在发送帧(“先听后说”)

    • 若检测到总线空闲 96 比特时间(发送96比特所耗费的时间,也称为帧间隔)则发送这个帧。

    • 若检测到总线忙,则继续检测并等待总线转为空闲 96 比特时间,然后发送这个帧。

  • MA 多址接入:多个站点连接在一条总线上竞争使用总线。

  • CD 碰撞检测:每个正在发送帧的站点边发送边检测碰撞(“边说边听”):

    • 一旦发现总线上出现碰撞立即停止发送,退避一段随机时间后再次从载波监听开始进行发送(一旦冲突,立即停说,等待时机,重新再说”)

共享式以太网的争用期

![[ 1.png]]

![[争用期2.png]]

  • 站点从发送帧开始,最多经过时长 2 τ 2\tau 2τ (即 δ \delta δ → 0)就可检测出所发送的帧是否遭遇了碰撞。

  • 共享总线以太网的端到端往返时间 2 τ 2\tau 2τ 被称为争用期(Contention Period)或碰撞窗口(ColisionWindow),它是一个非常重要的参数。

    • 站点从发送帧开始,经过争用期 2 τ 2\tau 2τ 这段时间还没有检测到碰撞,就可以肯定这次发送不会产生碰撞
  • 从争用期的概念可以看出,共享总线以太网上的每一个站点从发送帧开始,到之后的一小段时间内,都有可能遭遇碰撞,而这一小段时间的长短是不确定的,它取决于另一个发送帧的站点与本站点的距离,但不会超过总线的端到端往返传播时延,即一个争用期 2 τ 2\tau 2τ

    • 总线的长度越长(单程端到端传播时延越大),网络中站点数量越多,发生碰撞的概率就越大。

    • 共享以太网的总线长度不能太长,接入的站点数量也不能太多

10Mb/s共享总线以太网(传统以太网)规定:争用期 2 τ 2\tau 2τ 的值为 512 比特的发送时间,即 51.2 μ s 51.2\mu{s} 51.2μs

除考虑了信号传播时延外,还考虑到网络中可能存在转发器所带来的时延以及产生碰撞时继续发送 32比特 或 48比特 人为干扰信号所持续的时间等。

争用期 2 τ = 512 b 10 M b / s = 512 b 10 × 1 0 6 b / s = 51.2 μ s 争用期 2\tau = \frac{512b}{10 Mb/s} = \frac{512b}{10 \times{10^6 b/s}} = 51.2\mu s 争用期2τ=10Mb/s512b=10×106b/s512b=51.2μs

单程端到端传播时延 τ = 51.2 μ s 2 = 25.6 μ s 单程端到端传播时延 \tau = \frac{51.2\mu s}{2} = 25.6\mu s 单程端到端传播时延τ=251.2μs=25.6μs

假设信号的传播速率为 2 × 1 0 8 m / s ,则总线长度为 2 × 1 0 8 m / s × 25.6 μ s = 5120 m 假设信号的传播速率为 2\times10^8m/s,则总线长度为 2\times10^8m/s\times25.6\mu s = 5120m 假设信号的传播速率为2×108m/s,则总线长度为2×108m/s×25.6μs=5120m

共享总线以太网规定:总线长度不能超过2500m

共享式以太网的最小帧长

为了确保共享总线以太网上的每一个站点在发送完一个完整的帧之前,能够检测出是否产生了碰撞,帧的发送时延就不能少于共享总线以太网端到端的往返时间,即一个争用期 2 τ 2\tau 2τ

对于 10Mb/s 的共享总线以太网,其争用期 2 τ 2\tau 2τ 的值规定为 51.2 μ s 51.2\mu s 51.2μs,因此其最小帧长为 512b,即64B

10 M b / s × 51.2 μ s = 512 b = 64 B 10 Mb/s \times 51.2\mu s = 512b = 64B 10Mb/s×51.2μs=512b=64B

![[最小帧长.png]]

当某个站点在发送帧时,如果帧的前64B没有遭遇碰撞,那么帧的后续部分也就不会遭遇碰撞。也就是说,如果遭遇碰撞,就一定是在帧的前64B之内

由于发送帧的站点边发送帧边检测碰撞,一旦检测到碰撞就立即中止帧的发送,此时已发送的数据量一定小于64B。因此,接收站点收到长度小于64B的帧,就可判定这是一个遭遇了碰撞而异常中止的无效帧,将其丢弃即可。

共享式以太网的最大帧长

一般来说,帧的数据载荷的长度应远大于帧首部和尾部的总长度,这样可以提高帧的传输效率。然而,如果不限制数据载荷的长度上限,就可能使得帧的长度太长,这会带来一些问题。

![[最大帧长1.png]]

因此在以太网V2的MAC帧中,最大帧长度为 1518B

![[最大帧长2.png]]

共享式以太网的退避算法

共享式以太网的退避算法,特别是在使用 CSMA/CD(载波监听多址接入/碰撞检测)协议的共享总线以太网中,是为了解决多个站点同时发送数据时产生的碰撞问题而设计的,采用 截断二进制指数退避算法

  • 当站点在发送数据时检测到碰撞,它会立即停止发送,并等待一段随机时间后再重新尝试发送。
截断二进制指数退避算法
  1. 确定退避时间

    • 使用公式:退避时间 = 基本退避时间(争用期 2 τ ) × 随机数 r 基本退避时间(争用期 2\tau) × 随机数 r 基本退避时间(争用期2τ×随机数r
      • r 是从 [ 0 , 1 , . . . , ( 2 k − 1 ) ] [0, 1, ..., (2^k - 1)] [0,1,...,(2k1)] 中随机选取的一个数。
      • 其中,k = m i n [ 重传次数(从 0 开始计数) , 10 ] min[重传次数(从0开始计数), 10] min[重传次数(从0开始计数),10]
      • 基本退避时间通常是固定的,根据网络配置和标准而定。
  2. 重传次数限制:当重传达16次仍不能成功时,就表明同时打算发送帧的站点太多,以至于连续产生碰撞,此时应放弃重传并向高层报告。

  3. 退避时间的动态调整:随着重传次数的增加(k 值增大),退避时间的范围(竞争窗口)会按2的指数增大,从而减少再次碰撞的概率。

  • 如果连续多次发生碰撞,就表明可能有较多的站点参与竞争信道。但使用上述退避算法可使重传需要推迟的平均时间,随重传次数而增大(即动态退避),因而减小产生碰撞的概率。

![[截断二进制指数退避算法.png]]

共享二进制以太网的信道利用率

理性情况下,不考虑信道可能发生(多次)碰撞进行(多次)退避的时间,考虑以下情况:

  • 总线一旦空闲就有某个站点立即发送帧

  • 各站点发送帧都不会产生碰撞

  • 发送一帧占用总线的时间为 T 0 + τ T_0+\tau T0+τ,而帧本身的发送时间是 T 0 T_0 T0

极限信道利用率 S m a x = T 0 T 0 + τ = 1 1 + τ T 0 = 1 1 + a (设 τ T 0 为 a ) 极限信道利用率 S_{max} = \frac{T_0}{T_0+\tau}=\frac{1}{1+\frac{\tau}{T_0}}=\frac{1}{1+a}(设 \frac{\tau}{T_0} 为 a) 极限信道利用率Smax=T0+τT0=1+T0τ1=1+a1(设T0τa

因此,参数a的值应尽量小,以提高信道利用率,共享总线以太网端到端的距离不应太长,帧的长度应尽量大

使用集线器的共享式以太网

在使用细同轴电缆的共享总线以太网之后,以太网发展出来了一种使用大规模集成电路来替代总线、并且可靠性非常高的设备,叫作集线器(Hub)。站点连接到集线器的传输媒体也转而使用更便宜、更灵活的双绞线电缆

![[使用集线器的共享式以太网.png]]

集线器的一些主要特点如下:

  • 使用集线器的以太网虽然物理拓扑是星型的,但在逻辑上仍然是一个总线网。总线上的各站点共享总线资源,使用的还是CSMA/CD协议

  • 集线器只工作在物理层,它的每个接口仅简单地转发比特,并不进行碰撞检测。碰撞检测的任务由各站点中的网卡负责。

  • 集线器一般都有少量的容错能力和网络管理功能,例如,若网络中某个站点的网卡出现了故障而不停地发送帧,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网能正常工作

  • 使用细同轴电缆的共享总线型以太网和使用集线器和双绞线的星型拓扑的共享式以太网,物理拓扑不相同,但工作逻辑相同,网络中的各站点都使用 CSMA/CD 协议来共享(争用)网络资源。

10BASE-T
  • IEEE于1990年制定了 10BASE-T 星型以太网的标准802.3i,这种以太网是局域网发展史上的一座非常重要的里程碑,它为以太网在局域网中的统治地位奠定了牢固的基础。

  • 10BASE-T以太网的通信距离较短每个站点到集线器的距离不能超过100m

  • IEEE 802.3以太网还可使用光纤作为传输媒体,相应的标准为10BASE-F,“F”表示光纤。光纤主要用作集线器之间的远程连接。

  • 10BASE-T10 代表传输速率为 10Mb/s, BASE 代表采用基带信号进行传输, T 代表采用双绞线作为传输媒体。

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

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

相关文章

51单片机数码管循环显示0~f

原理图&#xff1a; #include <reg52.h>sbit dulaP2^6;//段选信号 sbit welaP2^7;//位选信号unsigned char num;//数码管显示的数字0~funsigned char code table[]{ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};//定义数码管显…

yakit使用教程(四,信息收集)

本文仅作为学习参考使用&#xff0c;本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言&#xff1a;yakit下载安装教程。 一&#xff0c;基础爬虫。 在新建项目或新建临时项目后&#xff0c;点击安全工具&#xff0c;点击基础爬虫。 此工具并不是为了爬取网站上的一…

navicat下载教程(包会的)

目录 一、下载navicat安装包 步骤1---试用版本 步骤2---下载windws系统的navicat​编辑 步骤3---查看安装包 二、安装navicat 三、唤醒navicat 四、成功唤醒navicat 官网地址&#xff1a;Navicat | 下载 Navicat Premium 14 天免费 Windows、macOS 和 Linux 的试用版 …

[Linux] 创建可以免密登录的SFTP用户

本文主要包含: 创建新用户创建密钥对用于免密登录新用户将新建用户改造为SFTP用户为SFTP上传数据设置限速 1. 创建新用户 sudo useradd sftp_user sudo passwd sftp_user # 输入密码2. 创建密钥对 参考这篇文章 [Linux] 生成 PEM 密钥对实现服务器的免密登录 3. 将新建用户…

牛客习题—线性DP 【mari和shiny】C++

你好&#xff0c;欢迎阅读我的文章~ 个人主页&#xff1a;Mike 所属专栏&#xff1a;动态规划 mari和shiny mari和shiny ​ 分析: 使用动态规划的思路来解决。 思路&#xff1a; 分别统计s&#xff0c;sh&#xff0c;shy的数量即可。使用ss来统计字符s的数量&#xff0c;使…

ORA-65096:公用用户名或角色名无效

CREATE USER DATA_SHARING IDENTIFIED BY "Ab2"; Oracle建立用户的的时候&#xff0c;可能会出现一直提示 ORA-65096:公用用户名或角色名无效&#xff1b; 我查了一下&#xff0c;好像是 oracle 12版本及以上版本的特性&#xff0c;用户名必须加c##或者C##前缀才能创…

三勾软件/ java+springboot+vue3玖玖云电商ERP多平台源码

玖玖云ERP系统、支持多平台订单同步&#xff0c;仓库发货&#xff0c;波次拣货&#xff0c;售后服务&#xff0c;电商ERP一站式解决方案 项目介绍 玖玖云ERP系统基于javaspringbootelement-plusuniapp打造的面向开发的电商管理ERP系统&#xff0c;方便二次开发或直接使用。主…

FFmpeg的简单使用【Windows】

目录 一、视频生成图片 静态图片 转码过程 动态图片gif 二、图片生成视频 三、FFmpeg常用参数命令 3.1 主要参数 3.1.1、-i 3.1.2、-f 3.1.3、-ss 3.1.4、-t 3.2 音频参数 3.2.1、-aframes 3.2.2、 -b:a 3.2.3、-ar 3.2.4、-ac 3.2.5、-acodec 3.2.6、-an 3…

HarmonyOS中ArkUi框架中常用的装饰器

目录 1.装饰器 1&#xff09;Component 1--装饰内容 2&#xff09;Entry 1--装饰内容 2--使用说明 3&#xff09;Preview 1--装饰内容 2--使用说明 4&#xff09;CustomDialog 1--装饰内容 2--使用说明 5&#xff09;Observed 1--装饰内容 2--使用说明 6&#xff09;ObjectLin…

【实战篇】用SkyWalking排查线上[xxl-job xxl-rpc remoting error]问题

一、组件简介和问题描述 SkyWalking 简介 Apache SkyWalking 是一个开源的 APM&#xff08;应用性能管理&#xff09;工具&#xff0c;专注于微服务、云原生和容器化环境。它提供了分布式追踪、性能监控和依赖分析等功能&#xff0c;帮助开发者快速定位和解决性能瓶颈和故障。…

【机器学习(十三)】零代码开发案例之股票价格预测分析—Sentosa_DSML社区版

文章目录 一、背景描述二、Sentosa_DSML社区版算法实现(一) 数据读入(二) 特征工程(三) 样本分区(四) 模型训练和评估(五) 模型可视化 三、总结 一、背景描述 股票价格是一种不稳定的时间序列,受多种因素的影响。影响股市的外部因素很多,主要有经济因素、政治因素和公司自身因素…

ASP.NET Core8.0学习笔记(二十)——EFCore导航属性与外键

一、什么是实体间关系 数据库表&#xff08;实体&#xff09;之间的关系&#xff1a;一对一&#xff08;学生-成绩&#xff09;、一对多&#xff08;学生-科目&#xff09;、多对多&#xff08;教师-班级&#xff09;。数据库中&#xff0c;每一个实体可以由主键唯一标识&…

MySQL表的基本查询下/分组聚合统计

1&#xff0c;update 对查询到的结果进行列值更新&#xff0c;可以和older by&#xff0c;where&#xff0c;limit合并使用&#xff0c;为了方便讲解&#xff0c;将会以题目练习的方式进行说明&#xff1a; 1&#xff0c;将孙悟空同学的数学成绩变更为 80 分 本道题和where联…

动态规划(1)斐波那契数列模型

动态规划算法流程&#xff1a; 1、状态表示&#xff1a; 指的是dp&#xff08;dynamic programming&#xff09;表里面的值所表示的含义 如何得出&#xff1a;1、题目要求 2、经验题目要求 3、分析问题的过程中发现重复子问题 2、状态转移方程 dp[i]等于什么 3、初始化 保证…

dbt doc 生成文档命令示例应用

DBT提供了强大的命令行工具&#xff0c;它使数据分析师和工程师能够更有效地转换仓库中的数据。dbt的一个关键特性是能够为数据模型生成文档&#xff0c;这就是dbt docs命令发挥作用的地方。本教程将指导您完成使用dbt生成和提供项目文档的过程。 dbt doc 命令 dbt docs命令有…

案例实践 | 以长安链为坚实底层,江海链助力南通民政打造慈善应用标杆

案例名称-江海链 ■ 实施单位 中国移动通信集团江苏有限公司南通分公司、中国移动通信集团江苏有限公司 ■ 业主单位 江苏省南通市民政局 ■ 上线时间 2023年12月 ■ 用户群体 南通市民政局、南通慈善总会等慈善组织及全市民众 ■ 用户规模 全市近30家慈善组织&#…

leetcode二叉树(八)-二叉树的最大深度

题目 104.二叉树的最大深度 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&…

【STM32 HAL库】MPU6050姿态解算 卡尔曼滤波

【STM32 HAL库】MPU6050姿态解算 卡尔曼滤波 前言MPU6050寄存器代码详解mpu6050.cmpu6050.h 使用说明 前言 本篇文章基于卡尔曼滤波的原理详解与公式推导&#xff0c;来详细的解释下如何使用卡尔曼滤波来解算MPU6050的姿态 参考资料&#xff1a;Github_mpu6050 MPU6050寄存器…

项目管理软件真的能让敏捷开发变得更简单吗?

敏捷开发是一种以快速交付和适应变化为核心特点的软件开发方法。其特点包括尽早并持续交付、能够驾驭需求变化、版本周期内尽量不加任务、业务与开发协同工作、以人为核心、团队配置敏捷等。 例如&#xff0c;尽早并持续交付可使用的软件&#xff0c;使客户能够更早地体验产品…

【算法篇】动态规划类(4)——子序列(笔记)

目录 一、Leetcode 题目 1. 最长递增子序列 2. 最长连续递增序列 3. 最长重复子数组 4. 最长公共子序列 5. 不相交的线 6. 最大子序和 7. 判断子序列 8. 不同的子序列 9. 两个字符串的删除操作 10. 编辑距离 11. 回文子串 12. 最长回文子序列 二、动态规划总结 …