无限多交换机串联,可以将网线无限延长吗?

网线使用时为了网络质量一般不超过100m,那我每隔100m接一个交换机是不是就可以无限延长了?

完全没有问题。

但是慎用无限、永远、永恒这些字眼,“爱你到永远”这句山盟海誓,看看现在的离婚率就知道有多么不靠谱。

但是,工程上并不这么使用,会使用传输距离(无需中继)高1-3个数量级的光纤。为什么要用费钱、费力、费时间、低可靠性、高延迟的网线方案呢?

题主想象中的交换机中继:

接收端口物理层将网线中的电信号,由于传输距离衰减,使用功率放大器将其放大,然后从出端口发送出去。到达终点之前每个交换机都是玩的,数据帧在每个交换机由于信号放大而引起的延迟微小到可以忽略不计。从起点到终点传输时延,只和传输距离成正比。

真实的交换机中继:

接收端口物理层心中就一个想法:检测同步信号,由于Preamble(同步信号)里是周期性重复的模拟波形,采样成离散信号(香农采样原理),因此计算机只能处理离散信号,而无法处理连续信号。用信号的前一个周期(多个采样点)与下一个周期(相同采样点)进行相关匹配,相关系数位于0-1之间。0是不相关,1完全相同的采样。

如果这个相关系数高于一个预设的阈值(比如0.7或0.8),意味着检测到同步信号。物理层立马来精神了,触发检测SFD,SFD检测成功,SFD屁股后面的一串串采样才是数据帧。

物理层将这些离散采样点de-modulation、decode、de-scramble成0、1组成的数据帧,然后notification一个消息给MAC层,MAC层接收并计算FCS。如果FCS错误,丢了。

如果FCS正确,问题来了,MAC层怎么处理?

很显然,MAC层需要将接收的数据帧(0、1组成)。可是MAC层凭自己是无法将0、1变成模拟信号,必须借助物理层。

MAC层联系物理层,Hi,老弟请把这串数据从出口发出去。

物理层于是添加同步信号(preamble + SFD),并将数据帧做了scramble、encode、modulation,上载波,信号就发了出去。

到了下一个交换机的接收端口,重复一遍上文的故事,直到到达终点。

延迟

看出问题了吧,每一个交换机中继数据帧,是从模拟信号到数字信号,然后再从数字信号到模拟信号的处理过程,这个处理延迟尽管小,但是也有几个us到几十个us不等,取决于数据帧的长度以及硬件处理速度。如果中继的交换机不多,可能感受不到,但是一旦中继数量上升到很多,叠加在一起的时延是巨大的。

可靠性

假设每个中继线的可靠性是99.99%,失效概率= 0.01%/中继。

10个中继失效概率= 10 * 0.01%= 0.1%

100个中继失效概率= 100 * 0.01%= 1%

1000个中继失效概率= 10 * 0.01%= 10%

到1000个中继的失效概率 =10%,网络已经无法使用了,更不要说什么无限了。

失效一般是如何造成的?

网线的屏蔽差,我方的send线到达对方,信号由于距离衰减。

对方恰好也有数据要发给我方,通过我方的receive先发送,但是和我方信号擦肩而过时,由于对方刚离开端口,信号较强(距离短,衰减小),通过屏蔽线泄露了出来,污染了我方的信号(cross-talk),对方接收的信号 = 我方衰减的信号 + 对方泄露的信号。

在我方信号眼里,对方泄露的信号是随机信号(噪音)。

  • 如果和我方信号正相关,对我方信号是放大,这是加分项。
  • 如果和我方信号正0相关,对我方信号没有影响,不加不减。
  • 如果和我方信号负相关,对我方信号抵消,这是减分项。

失效通常发生在减分项,即对方的数据和我方数据波动在相反的极性。

在大多数的情况下(99.99%),处于0相关或者接近0相关,所以不受影响。

如果屏蔽线质量高,可以减少cross-talk的能量,那么网线的可靠性会大大提高。

作者|车小胖谈网络|公众号

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

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

相关文章

MySQL数据库精讲001——概述

MySQL数据库精讲001——概述 文章目录 MySQL数据库精讲001——概述1.1 安装1.1.1 版本1.1.2 安装一、下载二、解压三、配置1. 添加环境变量2. 初始化MySQL3. 注册MySQL服务4. 启动MySQL服务5. 修改默认账户密码 四、登录MySQL五、卸载MySQL 1.1.3 连接1.1.4 企业使用方式(了解)…

共享单车(二):项目日志

stdin, stdout, stderr Linux系统下,当一个用户进程被创建时,与之对应的三个数据流(stdin,stdout和stderr,即三个文件)也会被创建。 stdin,标准输入文件,通常对应着终端的键盘。 s…

SpringBoot内容协商机制(就是接受数据的类型如json,xml)

目录 一、基于请求头的内容协商机制 二、基于请求参数的内容协商机制 一、基于请求头的内容协商机制 如果我们的Java服务为浏览器和安卓手机同时提供服务,浏览器期望接受的请求是JSON格式,安卓客户端期望接收的请求是XML格式,这个时候是否需…

Linux Shell字符串截取#与%使用

背景Jenkins需要解析gerrit的commit message中特殊字段的值,比如Depend-On:字段的值 比如commit msg内容如下:用变量msg表示 1. # 号截取, 截取指定字符保留右边的字符串,删除左边的部分。分为#和##两种 1.1 # 号截取&#xff0c…

Linux文件系统/企业文件系统选型/企业常规服务应用建议/软件及软件安装包管理,rpm,yum系列知识--12272字详谈

这里先补充一下上一节的命令: tune2fs 调整或查看ext2/ext3/ext4文件系统的参数(关闭ext4日志功能) 现在已经被淘汰但是企业笔试或者认证考试会存在 dumpe2fs 用于导出ext2,ext4,ext3文件系统信息(文件系统…

自己写的爬虫小案例

网址:aHR0cDovL2pzc2NqZ3B0Lmp4d3JkLmdvdi5jbi8/dXJsPS92aWV3L3dvcmtpbmdVbml0L3dvcmtpbmdVbml0Lmh0bWw 这串代码能够爬取勘察单位企业的详细信息。 import requests import time import csv f open(勘察单位公司信息.csv,w,encodingutf-8,newline) csv_writer …

时序分析基础(6)——input delay时序分析

1 简介 FPGA对于外部的时钟以及数据的延时信息是不知道的,在低速时钟且时钟发射沿在数据正中心的时候,一般可以不做约束来直接使用。但是到了高速时钟或者双沿采样或者发射沿和数据对齐的情况下,这时候就需要告诉VIVADO外部的时钟与数据情况来…

[Meachines][Medium]IClean

Main $ nmap -p- -sC -sV 10.10.11.12 -Pn --min-rate 1000 $ echo "10.10.11.12 capiclean.htb">>/etc/hosts 这题可能和python的SSTI有关 $ gobuster dir --url "http://capiclean.htb" --wordlist /usr/share/seclists/Discovery/Web-Content/c…

授权协议OAuth 2.0之通过OIDC实现SSO

写在前面 本文来一起看下OIDC(openid connect)相关内容。 1:什么是OIDC OIDC的全称是openid connect,和OAuth2.0一样,也是属于协议和规范的范畴。OAuth2.0是一种授权协议,即规定了what you can do的内容…

2024 证券从业资格证考试备考资料分享

2024 证券从业资格证考试备考资料分享 2024 年 06月1、2日 证券从业资格考试全国统一考试(统考),预计将于5月初(考前一个月)左右开启报名 有没有小伙伴在准备备考的,不知道大家都准备怎么学习呢&#xff…

前端css中keyframes(关键帧)的简单使用

前端css中keyframes的使用 一、前言二、例子(一)、例子源码1(二)、源码1运行效果1.视频效果2.截图效果 三、结语四、定位日期 一、前言 关键帧keyframes是css动画的一种,主要用于定义动画过程中某一阶段的样式变化&am…

【小白误闯】这可能是对 Tomcat 工作原理解释最详细的文章

脑子一闪而过,当年 V 哥在面试 Java 开发时,被问到让你写一个 Tomcat 服务器,你有什么想法?尼码,面试官摆明是在压工资了,你得逞了,我回答不上来,当时也没研究过 Tomcat 的源码&…

Codeforces Round 940 E. Carousel of Combinations 【威尔逊定理】

题意 给定一个正整数 n n n,定义 C ( i , j ) C(i, j) C(i,j) 为:从 ( 1 , 2 , 3 , . . . , i ) (1,2,3,...,i) (1,2,3,...,i) 中选出 j j j 个不同的数,构成一个圆排列的不同的方案数 求出: ∑ i 1 n ∑ j 1 i ( C ( i ,…

STM32的GPIO控制寄存器开发

寄存器GPIO控制 寄存器地址 寄存器地址计算 某个寄存器地址,由三个参数决定:1、总线基地址(BUS_BASE_ADDR);2,外设基于总线基地址的偏移量(PERIPH_OFFSET);3&#xff…

Linux系统CPU持续飙高,如何排查

若一台服务器CPU使用率持续处于一个高峰值,可能导致如:无法ssh链接、操作卡顿、用户访问超时等问题 1.查看CPU使用情况 top命令常用于分析内存指标使用情况 htop命令更直观于top 当CPU达到70%-80%以上时,使用率已过高需要处理 2.找出CPU占…

C++ Qt QMainWindow实现无边框窗口自定义标题栏可拖拽移动拉伸改变窗口大小

本篇博客介绍C Qt QMainWindow实现无边框窗口,适用于win10/win11系统。 QMainWindow相对于QWidget多了dockedwidget功能,跟多人可能更喜欢用QMainWindow做主窗口,如果不需要dockedwidget功能,QMainWindow与QWidget做主窗口基本无…

一款新型的Linux服务器管理工具

最近发现了一款新型的Linux服务器管理工具,名称叫1Panel,本文跟大伙分享一下。 一. 产品介绍 1Panel 是一个开源的 Linux 服务器运维管理面板,具有丰富的功能,可对服务器和容器进行管理。 产品提供简洁直观的We图形界面&#x…

如何使用RRT模式进行交易,昂首资本实例讲解

在上篇文章中,昂首资本用一篇文章讲解了,如何使用RRT模式进行交易以及背后的原理。如果没有看到的各位投资者可以往前翻一下,当然了也有投资者提到了新的问题,那就如何使用,今天昂首资本就用下面有几个例子实例讲解&am…

【C++】---STL之list详解

【C】---STL之list详解 一、了解list的基本信息二、成员函数1、构造2、迭代器3、empty()4、size()5、front()6、back()7、push_front()8、pop_front()9、push_back()10、pop_back()11、insert()12、erase()13、swap()14、sort()15、reverse() 一、了解list的基本信息 1、库里面…

windows查看xxx的版本号

node -v python --version redis-server --version java -version go version mvn -version git --version