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

文章目录

    • 共享式以太网
      • 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 代表采用双绞线作为传输媒体。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安宝特方案 | AR技术在轨交行业的应用优势

随着轨道交通行业不断向智能化和数字化转型,传统巡检方式的局限性日益凸显。而安宝特AR眼镜以其独特的佩戴方式和轻便设计,为轨道交通巡检领域注入了创新活力,提供了全新的解决方案。 01 多样化佩戴方法,完美适应户外环境 安宝特…

鸿蒙NEXT开发-知乎评论小案例(基于最新api12稳定版)

注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

盘点超好用的 Windows 录屏软件,轻松记录屏幕精彩

在当今数字化信息高速流转的时代,屏幕录制已经成为我们日常工作、学习和娱乐中不可或缺的一项技能。如果你是微软电脑,正好我今天想要介绍的就是windows怎么录屏相关工具的操作,感兴趣就继续往下看吧。 1.FOXIT录屏大师 链接直达&#xff1…

鸿蒙开发实战项目【硅谷租房】--- 项目介绍

目录 一、简述 二、项目资料 2.1 UI设计稿 2.2 服务器 2.3 Apifox接口JSON文件 使用 Apifox 测试接口 一、简述 这是一个基于 鸿蒙 API12 开发的移动端租房 App,用户可以使用该应用搜索租房列表、查看房屋详情、预约租房等。 该项目的tabbar包含五部分&…

Ubuntu系统下的用户管理

Ubuntu系统下的用户管理 一、ubuntu介绍1.1 ubuntu简介1.2 主要特点 二、创建新用户2.1 查看当前Ubuntu版本2.2 创建新用户2.3 修改密码2.4 查看用户id 三、新建用户组3.1 新建用户组3.2 查询用户组3.3 加入某个用户组 四、赋予sudo权限4.1 将用户添加到 sudo 组4.2 查看admin用…

NFTScan | 10.07~10.13 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2024.10.07~ 2024.10.13 NFT Hot News ​01/ 数据:9 月份加密市场大多数指标均出现下降,链上总交易量下降 13% 10 月 7 日,据 The Block 研究总监 la…

【C#网络编程】基础概念2

文章目录 网络、数据包和协议网络数据包协议TCP、UDP 地址客户端和服务器套接字 网络、数据包和协议 计算机网络通过通信通道互连的机器组成,通常把这些机器称为主机和路由器,主机是是运行应用程序(如 Web 浏览器)的计算机。路由器…

同三维T80001HK4 四路4K30HDMI H.264编码器

4路同时编码,带4路3.5外置音频 同三维T80001HK4四路4K30HDMI H.264编码器 同三维T80001HK4用于高清视频信号(4K30Hz)编码及网络传输的硬件设备,采用最新高效H.264高清数字视频压缩技术,具备稳定可靠、高清晰度、低码率…

CyberRt实践之Hello Apollo(Apollo 9.0版本)

apollo9.0环境安装参考官方网站 apollo.baidu.com/community/Apollo-Homepage-Document?docBYFxAcGcC4HpYIbgPYBtXIHQCMEEsATAV0wGNkBbWA5UyRFdZWVBEAU0hFgoIH0adPgCY%2BADwCiAVnEAhAILiAnABZxEgOzK1Y%2BQA51M3ROUnJBsbK2WZoyUdkBhcXoAMhlwDFlARnUXZdzE9AGY%2BbFINADYpUhCEFW…

JavaEE 多线程第二节 (多线程的简单实现Thread/Runable)

1. 创建线程(继承 Thread 类)步骤: 继承 Thread 类: 创建一个类并继承 Thread 类,然后重写 run() 方法,在该方法中写入线程执行的代码 class MyThread extends Thread {Overridepublic void run()…

SpringBoot 之 配置 RestTemplate + 跳过https 验证

上截图 目录文件结构 在配置文件下创建下面两个文件 文件内容 HttpsClientHttpRequestFactory.java package org.fri.config;import org.apache.http.ssl.SSLContexts; import org.apache.http.ssl.TrustStrategy; import org.springframework.context.annotation.Configur…

重学SpringBoot3-安装Spring Boot CLI

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-安装Spring Boot CLI 1. 什么是 Spring Boot CLI?2. Spring Boot CLI 的安装2.1. 通过 SDKMAN! 安装2.2. 通过 Homebrew 安装(适…

SpringCloud-OpenFeign-服务接口调用

是什么 把需要暴露的api使用接口来暴露,客户端需要调用的时候,直接查看这个接口中有没有就可以了 通用步骤 架构说明 common模块 common 引入 openfeign 新建服务接口类 FeignClient(value "cloud-payment-service") // 服务名 public i…

【C语言】动态内存管理及相关笔试题

文章目录 一、为什么有动态内存分配二、malloc和free1.malloc函数的使用2.free函数的使用 三、calloc和realloc1.calloc函数的使用2.realloc函数的使用 四、常见动态内存分配的错误五、动态内存经典笔试题题1题2题3 六、总结C/C中程序内存区域划分 一、为什么有动态内存分配 我…

SpringBoot基础(四):bean的多种加载方式

SpringBoot基础系列文章 SpringBoot基础(一):快速入门 SpringBoot基础(二):配置文件详解 SpringBoot基础(三):Logback日志 SpringBoot基础(四):bean的多种加载方式 目录 一、xml配置文件二、注解定义bean1、使用AnnotationCon…

SCRM呼叫中心高保真Axure原型 源文件分享

在数字化时代,客户关系管理(CRM)对于企业的成功至关重要。SCRM呼叫中心后台作为一款专为CRM设计的软件原型,致力于为企业提供高效、智能的客户沟通解决方案。本文将详细介绍该产品的核心功能及其对企业提升客户满意度和销售业绩的…

C++,STL 030(24.10.14)

stack容器(栈)的基本概念: 1.stack容器是一种先进后出的数据结构,它只有一个出口。 2.图例: 注意: (1)进栈顺序:a1 -> a2 -> a3 -> a4 -> a5 (2)出栈顺序:a5 -> …

机器学习-决策树详解

决策树 决策树简介 学习目标 1.理解决策树算法的基本思想 2.知道构建决策树的步骤 【理解】决策树例子 决策树算法是一种监督学习算法,英文是Decision tree。 决策树思想的来源非常朴素,试想每个人的大脑都有类似于if-else这样的逻辑判断&#xff…

12.1-基础柱状图构建

Python基础综合案例——数据可视化 动态柱状图 通过Bar构建基础柱状图 反转x和y轴 调用 bar.reversal_axis() 我们现在所看到的数值是从下到上的,当我们反转之后数据是从左向右的,我们现在把数据放到柱的右边。即数值标签在右侧 添加y轴数据的时候&am…

oceanbase的日志量太大,撑爆磁盘,修改下日志级别

oceanbase的日志量太大,撑爆磁盘,修改下日志级别: [adminlnpg ~]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123 Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3221561020 Server version: O…