百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

这样接网络真的有(没)问题吗?(如何接通网络)

nanshan 2024-11-14 16:43 12 浏览 0 评论

前几天在网上贴了一张图片:

用一根网线连接家里的路由器的两个端口。这样的结果不出意外的话,在网络中就出现了一个环路(loop)。

这样做,其实不为别的,就是为了拍张照片炸出一些所谓的“大神”。和预想的一样,很多人会冒出来说你的路由器要宕机了、这样接影响网速、这样弄网络会瘫痪……

说这话吧,如果要放在30年前,是对的。但在现在看来其实是废话一句。

为什么这样说,咱们还得从以太网的标准架构来说起。

以太网的标准拓扑结构为总线型拓扑,这是一个大家几乎已经遗忘掉的网络架构。

在最初的以太网设计中,以太网是由一根同轴电缆当作总线的,这跟同轴电缆两端有阻抗端结器用来消除脉冲信号,而设备的以网卡会向这跟同轴电缆中以广播的形式发送网络脉冲信号。

因此,之前的网卡都是这样的:

这种方法其实在抗干扰性以及点对点的传输效率上都是优于双绞线的。但大家看总线型的拓扑结构也会发现,我们并不能很方便的在网络中增加或减少节点。毕竟要增加一台计算机到网络中,我们就要断开网络一次,因此,就出现了星形网络:

本质上,星形网络就是将总线型以太网的那根同轴电缆做到了集线器(Hub)中,在设备内部实现了广播信号。在设备外,可以通过方便的插入和拔出网线做到网络中节点数量的更改。

到今天,BNC并不是不存在了,而是被应用到了更加不注重系统结构改变的位置上,例如传输视频信号:

星形网络可以方便的接入设备,同时也可以接入其他星形网络设备,这时候星形网络就有了一个变体叫做树形网络

在一个星形节点上的广播信号会传递到另一个星形节点,以此类推,这个广播信号最终可以传播到整个网络结构中。这样的方式和当初总线型以太网要达到的目标是相同的。

看到这里,你会发现以太网的结构本质上是没有什么不同的,最终都是广播信号进入了网络总线进行传输。因此在以太网上一个网卡是可以接收到网络中任意主机发送的信号的。类似于宿管阿姨在楼道里喊了一声“李冬梅出来接电话”,整个楼道里面不仅仅是李冬梅一个人能听到,而是楼道里所有人都可以听到喊声,但只有李冬梅会颠颠颠的跑出来。

所谓的树形结构以太网既解决了网络容量方便扩容的问题也解决了流量传输的问题,因此现在大部以太网的形式都是树形的。看来树形以太网似乎是可以一统天下了,但这里面有一个bug。

这个bug就是如果树形结构并不是一棵真正的树呢?

例如上面的这张网络拓扑图,如果去掉了红线部分就是一个完美的树形结构,但有了红线网络结构就不是树形了。带来的问题就是以太网的广播信号会在SWA-SWC-SWE-SWB-SWA这样的一个环路中转圈反复传递而不会停下来。不会停止、反复传播的广播信号就叫做“广播风暴”,当以太网中环路形成后,广播风暴就会迅速不断的积累增加,最终导致设备达到满负载运行,以至于阻塞正常的网络传输信号。

在树形以太网出现初期,总有智力不健全的人错误的将网线插入不该插入的接口中,导致了环路的形成。

但这种事情吧,是3、40年前的事情了。在1985年针对于消除以太网中的环路问题,已经出台了STP(Spanning Tree Protocol,生成树协议),简单的说就是当一个交换机中如果到达根网桥有两条或者两条以上的链路,生成树协议都根据算法把其中一条切断,仅保留一条,从而保证任意两个交换机之间只有一条单一的活动链路。


回到咱们之前的那张照片实际上也是相同的道理。在STP的加持下,这条线路实际上是断开的。

除了会让设备上的LED指示灯亮起来之外并无其他任何作用。

各种技术和标准的出现,有很大一部分是防止SX无脑操作的。在技术领域叫做“防呆设计”。防呆(日语:ポカヨケ poka yoke),又称错误校对,是一种预防矫正的行为约束手段,运用防止错误发生的限制方法,让操作者不需要花费注意力、也不需要经验与专业知识,凭借直觉即可准确无误地完成的操作,在许多场景下可以提升效率和使用体验,也防止损坏更换的成本,因此优良的产品中防呆设计极为基础而普遍。这种设计思路遍布于我们生活中的方方面面,例如USB接头,是分出反正面的:

为的就是防止用户反接。当然了,还有头铁的用户用很大力量插废了usb设备,解决的方法就是升级了新的USB tpye C接口

增加额外的端子数量,让用户无论从哪个方向插都不会出现问题。

网络设备也是一样,大量的协议就是为了防止用户出错,例如今天我们讲到的STP协议,很多的指令协议都做到了预防,

真正能给大家带来问题的实际上还是各种SX操作而已。

但和SX操作相比,更多的观点的错误,例如一根网线插入相同设备就会成环路的问题已经是老古董了。再拿出来当作什么知识来忽悠人也就没有必要了。

相关推荐

使用nginx配置域名及禁止直接通过IP访问网站

前段时间刚搭建好这个网站,一直没有关注一个问题,那就是IP地址也可以访问我的网站,今天就专门研究了一下nginx配置问题,争取把这个问题研究透彻。1.nginx配置域名及禁止直接通过IP访问先来看n...

如何在 Linux 中使用 PID 号查找进程名称?

在Linux的复杂世界中,进程是系统运行的核心,每个进程都由一个唯一的「进程ID」(PID)标识。无论是系统管理员在排查失控进程,还是开发者在调试应用程序,知道如何将PID映射到对应的进程名称都是一项...

Linux服务器硬件信息查询与日常运维命令总结

1.服务器硬件信息查询1.1CPU信息查询命令功能描述示例lscpu显示CPU架构、核心数、线程数等lscpucat/proc/cpuinfo详细CPU信息(型号、缓存、频率)cat/proc/c...

Ubuntu 操作系统常用命令详解(ubuntu常用的50个命令)

UbuntuLinux是一款流行的开源操作系统,广泛应用于服务器、开发、学习等场景。命令行是Ubuntu的灵魂,也是高效、稳定管理系统的利器。本文按照各大常用领域,详细总结Ubuntu必学...

从 0 到 1:打造基于 Linux 的私有 API 网关平台

在当今微服务架构盛行的时代,API网关作为服务入口和安全屏障,其重要性日益凸显。你是否想过,不依赖商业方案,完全基于开源组件,在Linux上构建一个属于自己的私有API网关平台?今天就带你...

Nginx搭建简单直播服务器(nginx 直播服务器搭建)

前言使用Nginx+Nginx-rtmp-module在Ubuntu中搭建简单的rtmp推流直播服务器。服务器环境Ubuntu16.04相关概念RTMP:RTMP协议是RealTi...

Linux连不上网?远程卡?这篇网络管理指南你不能错过!

大家好!今天咱们聊个所有Linux用户都躲不开的“老大难”——网络管理。我猜你肯定遇到过这些崩溃时刻:新装的Linux系统连不上Wi-Fi,急得直拍桌子;远程服务器SSH连不上,提示“Connecti...

7天从0到上线!手把手教你用Python Flask打造爆款Web服务

一、为什么全网开发者都在疯学Flask?在当今Web开发的战场,Flask就像一把“瑞士军刀”——轻量级架构让新手3天速成,灵活扩展能力又能支撑百万级用户项目!对比Django的“重型装甲”,Flas...

nginx配置文件详解(nginx反向代理配置详解)

Nginx是一个强大的免费开源的HTTP服务器和反向代理服务器。在Web开发项目中,nginx常用作为静态文件服务器处理静态文件,并负责将动态请求转发至应用服务器(如Django,Flask,et...

30 分钟搞定 Docker 安装与 Nginx 部署,轻松搭建高效 Web 服务

在云计算时代,利用容器技术快速部署应用已成为开发者必备技能。本文将手把手教你在阿里云轻量应用服务器上,通过Docker高效部署Nginx并发布静态网站,全程可视化操作,新手也能轻松上手!一、准...

Nginx 配置实战:从摸鱼到部署,手把手教你搞定生产级配置

各位摸鱼搭子们!今天咱不聊代码里的NullPointerException,改聊点「摸鱼必备生存技能」——Nginx配置!先灵魂拷问一下:写了一堆接口却不会部署?服务器被恶意请求打崩过?静态资源加载...

如何使用 Daphne + Nginx + supervisor部署 Django

前言:从Django3.0开始支持ASGI应用程序运行,使Django完全具有异步功能。Django目前已经更新到5.0,对异步支持也越来越好。但是,异步功能将仅对在ASGI下运行的应用程序可用...

Docker命令最全详解(39个最常用命令)

Docker是云原生的核心,也是大厂的必备技能,下面我就全面来详解Docker核心命令@mikechen本文作者:陈睿|mikechen文章来源:mikechen.cc一、Docker基本命令doc...

ubuntu中如何查看是否已经安装了nginx

在Ubuntu系统中,可以通过以下几种方法检查是否已安装Nginx:方法1:使用dpkg命令(适用于Debian/Ubuntu)bashdpkg-l|grepnginx输出...

OVN 概念与实践(德育概念的泛化在理论和实践中有什么弊端?)

今天我们来讲解OVN的概念和基础实践,要理解本篇博客的内容,需要前置学习:Linux网络设备-Bridge&VethPairLinux网络设备-Bridge详解OVS+Fa...

取消回复欢迎 发表评论: