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

文章目录

    • 共享式以太网
      • 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.rhkb.cn/news/451066.html

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

相关文章

自监督学习:引领机器学习的新革命

引言 自监督学习(Self-Supervised Learning)近年来在机器学习领域取得了显著进展,成为人工智能研究的热门话题。不同于传统的监督学习和无监督学习,自监督学习通过利用未标注数据生成标签,从而大幅降低对人工标注数据…

Modbus TCP 西门子PLC指令以太口地址配置以及 Poll Slave调试软件地址配置

1前言 本篇文章讲了 Modbus TCP通讯中的一些以太网端口配置和遇到的一些问题, 都是肝货自己测试的QAQ。 2西门子 SERVER 指令 该指令是让外界设备主动连接此PLC被动连接, 所以这里应该填 外界设备的IP地址。 这边 我因为是电脑的Modbus Poll 主机来…

反弹shell检测的一些思路

前言 反弹shell是攻击者常用的手段之一,通过反弹Shell,攻击者可以绕过防火墙,获取目标系统的shell访问权限,进行后续的恶意操作。因此,及时检测并阻止反弹Shell行为对于安全防护来说非常重要。本文通过介绍反弹shell的…

Kafka原理剖析之「Purgatory(炼狱 | 时间轮)」

一、前言 本文介绍一下Kafka赫赫有名的组件Purgatory,相信做Kafka的朋友或多或少都对其有一定的了解,至少是听过它的名字。那它的作用是什么呢,用来解决什么问题呢?官网confluent早就有文章对其做了阐述 https://cwiki.apache.o…

Redis和Jedis的区别

目录 含义与用途 Jedis案例 总结 含义与用途 Redis: 概念:Redis是一个基于内存的键值存储数据库,支持丰富的数据结构。比如:字符串功能:除了基础的数据存储,Redis还提供了丰富的高级功能。如持久化&…

golang生成并分析cpu prof文件

1. 定义一个接口,请求接口时,生成cpu.prof文件 在主协程中新启一个协程,当请求接口时,生成一个60秒的cpu.prof文件 go func() {http.HandleFunc("/prof", startProfileHandler)http.ListenAndServe(":9092"…

MySQL中什么情况下类型转换会导致索引失效

文章目录 1. 问题引入2. 准备工作3. 案例分析3.1 正常情况3.2 发生了隐式类型转换的情况 4. MySQL隐式类型转换的规则4.1 案例引入4.2 MySQL 中隐式类型转换的规则4.3 验证 MySQL 隐式类型转换的规则 5. 总结 如果对 MySQL 索引不了解,可以看一下我的另一篇博文&…

markdown 笔记,语法,技巧

起因, 目的: markdown 有些语法,不常用,记不住。单独记录一下。 1. 插入数学公式 用 $$ 来包裹住多行数学公式。 $$ 多行数学公式 $$ 2. 2个星号 ** , 加粗, 3. 单行代码的 引用, 左右各一个顿号 8.…

HTML_文本标签

概念: 1、用于包裹:词汇、短语等。 2、通常写在排版标签里面。 3、排版标签更宏观(大段的文字),文本标签更微观(词汇、短语)。 4、文本标签通常都是行内元素。 常用的文本标签 标签名 全称 标签语义em Emphasized 加重(文本)。要着重阅…

数字图像处理:图像复原应用

数字图像处理:图像复原应用 1.1 什么是图像复原? 图像复原是图像处理中的一个重要领域,旨在从退化(例如噪声、模糊等)图像中恢复出尽可能接近原始图像的结果。图像复原与图像增强不同,复原更多地依赖于图…

3D一览通常见问题QA

感谢大家一直以来对大腾智能3D一览通的支持,我们致力于提供便捷高效的3D协同服务。这里小编整理了一些关于3D一览通的常见问题,以便大家更好地了解和使用3D一览通。 Q:3D一览通的功能是什么? 3D一览通是大腾智能打造的一款云端轻…

如何在 JSON 中编写“anyOf”语句?

在 JSON 中,anyOf 语句通常用于 JSON Schema(JSON 模式)中,来定义多个可能的模式,表示数据可以匹配多个子模式中的任意一个。这种功能常用于验证 JSON 数据是否符合某一组可能的条件之一。 1、问题背景 问题&#xff…

【计算机网络 - 基础问题】每日 3 题(三十六)

✍个人博客:https://blog.csdn.net/Newin2020?typeblog 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞…

MongoDB 的安装详情

在虚拟机里面opt下 新建一个mongodb文件夹 再新建一个opt/mongodb/data文件夹, 然后将挂载的mongodb数据放到data文件夹里: 【把mongodb的数据挂载出来,以后我们再次重启的时候 数据起码还会在】 冒号右边 挂载到左边的路径 docker run -…

Matlab终于能够实现Transformer预测了

声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 原理简介 数据介绍 结果展示 完整代码 今…

ubuntu24 修改ip地址 ubuntu虚拟机修改静态ip

1. ubuntu 修改地址在/etc/netplan # 进入路径 cd /etc/netplan # 修改文件夹下的配置文件,我的是50-cloud-init.yaml. ye可能你得是20-cloud-init.yaml 2. 修改为: dhcp4: 改为false 192.168.164.50 是我自己分配的ip地址, /24 为固定写法&#xff…

数据结构与算法:堆与优先队列的深入剖析

数据结构与算法:堆与优先队列的深入剖析 堆是一种特殊的树形数据结构,广泛应用于优先队列的实现以及各种高效的算法中,如排序和图算法。通过深入了解堆的结构、不同堆的实现方式,以及堆在实际系统中的应用,我们可以掌…

初级网络工程师之从入门到入狱(四)

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 网络工程师从入门到入狱 前言一、Wlan应用实战1.1、拓扑图详解1.2、LSW11.3、AC11.4、抓包1.5、Tunnel隧道模式解析1.6、AP、…

服务器软件之Tomcat

服务器软件之Tomcat 服务器软件之Tomcat 服务器软件之Tomcat一、什么是Tomcat二、安装Tomcat1、前提:2、下载3、解压下载的tomcat4、tomcat启动常见错误4.1、tomcat8.0 startup报错java.util.logging.ErrorManager: 44.2、java.lang.UnsatisfiedLinkError 三、Tomca…

LVGL模拟器使用以及安装

LVGL模拟器介绍 LVGL模拟器:使用PC端软件模拟LVGL运行,而不需要任何嵌入式硬件。 优点:便于学习、跨平台协同开发。 我这里使用的是CodeBlocks。 环境搭建及工程获取 环境搭建 安装包获取:https://www.codeblocks.org/downlo…