不是吧,你们对交换机的误解也太深了!

news2024/10/6 12:22:26

我的网工朋友大家好。

交换机和路由器系列,在我们这个公众号里可谓是C位选手,写过的内容有很多,从0基础小白都看得懂的趣味解读,到老网工最爱的实用命令,一应俱全。

但是好像从来没分析过,关于交换机,很多网工对它一些认知误区还是蛮多的。

有些是做久了才会突然察觉好像不对劲,有的是做了好多年都一直没搞懂……这样的心路历程,相信不是一个网工体会过。

今天这篇文章,从安防角度,整理了一下网工们都曾遇到过的误区,做一篇大合集。

今日文章阅读福利:《交换机笔记(独家)280页 》

想要学习交换机技术的小友,可以私信我,发送暗号“280”,即可获取此份精选笔记资源。

01 对交换机的三个大误区,你中枪了没?

误区1 盲目根据交换容量计算摄像机带机数量

这种算法,就是把交换机的交换容量简单除以摄像头的码流,然后计算出带机数量。

如果根据这个理论,一台24口全千兆非网管交换机每个端口速率都是1000Mbps,下连端口只要合计接入不超过250路4M码流的摄像机就没有问题,那整台交换机就可以带几千路?

估且按所谓的实际性能,一般只有理论值的 60~70%,那每个下连端口也可以合计接入不超过150路就没有问题,整机怎么着也可以带1000多路?

可实际情况是这样吗?

照这个逻辑,千兆傻瓜机和网管机带机能力也没啥区别了,当我们按照这个理论去分析视频卡顿的网络原因,会分析到你怀疑人生。

最后发现,网络的各个节点的带宽设计完全没有问题,流量根本不存在瓶颈,交换机运行状态看起来很正常的,可视频就是卡卡卡,马赛克花花花,怎么解释?

误区2 交换机的实际性能一般只有理论值的 60~70% ?

很多人,甚至是交换机厂家的售前,会在做安防方案的时候,跟你说,交换机实际转发性能只有理论值的60%~70%,所以,计算待机数量要留余量。

24口全千兆交换芯片,交换容量必须≥48Gbps【24(24个端口)X1G(1000M)X2(全双工)=48G】,否则就达不到线速转发,我想没有哪一家芯片设计公司会犯这种低级的常识性错误,也没有哪一家正规交换机厂商会把一款达不到线速转发性能的交换机推向市场(机箱式交换机线卡存在阻塞比另当别论)

如果你真遇到过交换机的交换容量达不到理论值,只有60~70%的性能,那恭喜你,你成功购买了一台次品。

这种次品正规厂商想做都做不到,因为只有研发设计或者生产制程有缺陷,并且没有经过专业测试就直接市场销售的才有可能出现这种产品。同理,包转发率也是如此。

误区3 根据经验进行交换机选型

目前各个网络设备厂商在涉足安防网络项目时,除了按端口规格选型,按交换容量选型,还有最重要的一个手段,就是根据以往的项目经验选型。

可是我们常常遇到这样的情况,同一款交换机在不同项目中,并且这些项目网络规模差不多,摄像机数量及码流也差不多,组网方案也是一样的。

A项目是好的,B项目也是好的,可是C项目就会出现卡顿,为什么?

立马联系厂家换一台,一换就好了,嗯,看来真是运气不好。可是过段时间又出现卡顿了,为什么?

不断的换设备,重启设备,调整网络结构等反复折腾,也许好了,也许还是会随机卡顿,搞的筋疲力尽,最终也无法定论,甚至一线网络品牌厂家也给不出一个准确原因。

首先,我们先来简单的剖析一下视频流传输的基础原理:

视频流是由I帧和P帧组成,其中I帧为超大帧,在网络传输的过程,I帧的任何一个报文的丢失,就会导致视频无法成像,同时,由于视频的实时性要求,一般采用UDP的传输机制,即丢包不重传,所以,基本上网络只要出现丢包,就会卡顿。

其次,再来简单介绍一下交换机的交换原理:

当某个100M端口向另一个100M端口传输1M的数据流时,是以100M的速率传输了1/100秒。如果这1/100秒时有另外一个100M端口也向同一个100M端口传输1M的数据流,虽然两个端口加起来数据流只有2M,远没有达到100M的带宽瓶颈,但也会拥塞。

同理,1000M端口在同一时间点只能接受一个1000M端口传输数据,但可以同一时间点接受10个100M端口传输数据,但超过10个,也会拥塞。

所以,流量(带宽)与速率是二个概念,不能混为一谈。

无论传输的数据流有多大,传输的速率都是100M或1000M,只是不同数据流大小传输所需的时间长短不同罢了。

当速率相同的情况下,两个及以上的端口在同一时间点向同一端口传输时,就会拥塞。

此时缓存如果能够存放下拥塞的数据流,就不会丢包,如果缓存存放不下,就会丢包。

通过以上两点的简单分析,你就可以明白,当交换机传输经过的视频流路数越多,瞬间并发的可能性就越大,那么拥塞的概率就越高,这也是为什么汇聚层或核心层更容易拥塞的原因。

尤其是核心层,传输经过的视频流路数是最多的,整个网络几百路上千路都要经过核心交换机进行传输。

这里要再次重点强调,卡顿丢包多数是因为这种拥塞而导致的,而不是转发性能导致的,这是两个完全不同的概念。

02 安防交换机,到底怎么选型?

我们在之前的文章曾经提及过一般情况下的交换机该怎么选型,这里我们着重讲一下安防交换机。

1. 根据摄像机的码流和数量做好交换机规格选型,并设计好组网方案

随着网络在安防的普及,从业人员的技术能力逐步加强,因规格选型和组网方案导致的网络故障会越来越少。

如果因为这个原因导致带宽瓶颈,确实太低级了。

某网络共有XX台X码流的摄像机,接入层该选多少台什么样端口规格(端口数量和端口速率)的交换机,汇聚层该选多少台什么样端口规格的交换机,核心层该怎么选,这类简单的知识我就不在这里浪费笔墨去写了,网上很多。

同时,为了应对突发流量,在选型和设计方案时,交换机端口的带宽使用率建议不要超过70%,最好控制在60%以内。注意:并不是因为实际性能只有理论值的 60~70%,而是为了预防突发流量,不建议使用率过高。转发性能是第一步要保证的,然后再去考虑避免拥塞。

2. 尽可能选用缓存大的网管型交换机

缓存是可以减少拥塞导致的丢包,理论上,如果缓存足够大,丢包为零,视频也不会因网络原因卡顿。

曾经有客户问过我,那该怎么计算XX路XX码流的摄像机该用多大缓存的交换机?

理论上是可以计算的,但实际上你计算完了之后,发现地球上目前还没有能满足这个缓存需求的交换机。

拥塞是有概率性的,不可能每个端口都会同时拥塞,所以芯片公司不会这样去设计缓存,因为缓存的成本太高。

正常情况下,越高端的交换机,业务特性越丰富的交换机缓存越大。这也就是为什么当我们选择网管型,或者三层交换机,丢包卡顿的概率会低一些。

同样24口千兆交换机,非网管的缓存可能只有几百K,而三层交换机缓存可能有几十M。

所以,当预算足够,成本可以接受的时候,尽可能选择缓存大的网管型交换机,因为这是芯片公司设计芯片时的规律。

普及一个小知识,同样24口千兆非网管芯片与24口千兆三层芯片,交换容量是一样的,不一样的是各种表项容量,缓存大小,业务特性(功能)等。对于设备厂商来说,研发交换机时,只能尽可能选择缓存大的芯片,并不能更改缓存的大小,这是芯片的硬件特性。

可是,无论交换机怎么选型和组网设计,目前没有任何一家厂商敢保证他的产品和方案在任何安防项目中永远都不会出现卡顿,包括大家所熟知的华为、华三也不敢保证。

因为摄像机码流的传输是动态的,拥塞的可能性随时存在,而交换机的缓存大小又不可能完全解决所有摄像机拥塞的需要。

整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

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

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

相关文章

paraview调整color map文字颜色

paraview默认的背景颜色一般是灰色的,color map的数字及文字默认是白色的,如下: 然而,当我们将背景改为白色,往外输出图片时,color map的文字就看不见了,因此需要调整color map的文字为其他颜色…

<Linux开发>驱动开发 -之-Linux INPUT 子系统

<Linux开发>驱动开发 -之-Linux INPUT 子系统 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植 uboot移植过程…

LNMP (Nginx网站服务)

目录 1.1 Nginx的简介 1.2 Apache与Nginx的区别 Nginx对比Apache的优势: 1.3 Nginx的进程 Nginx的两个进程: 同步,异步,阻塞,非阻塞的概念补充 阻塞与非阻塞 同步和异步 2.1 编译安装Nginx 2.1 .1 关闭防火墙…

mysql索引优化系列(二)

一、limit优化 之前的member会员表,联合索引为KEY idx_name_age_address (name,age,address),表里插入了十万条数据,一般情况下分页查询的sql语句: select * from member limit 90000,10; explain select * from member limit 9…

MapReduce分布式计算(二)

MapReduce工作流程 原始数据File 1T数据被切分成块存放在HDFS上,每一个块有128M大小 数据块Block hdfs上数据存储的一个单元,同一个文件中块的大小都是相同的 因为数据存储到HDFS上不可变,所以有可能块的数量和集群的计算能力不匹配 我们需要一个动态…

ASP.NET Core MVC 从入门到精通之日志管理

随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生&#xff0c…

向内核模块中添加新功能

一、向内核添加新功能 1.1 静态加载法: 即新功能源码与内核其它代码一起编译进uImage文件内 新功能源码与Linux内核源码在同一目录结构下 给新功能代码配置Kconfig #进入要添加的新功能的同级目录,这里用添加一个名为MY_HELLO的驱动做演示#cd到linux源…

C++基础(2)——函数高级

前言 本文主要介绍了C中函数高级相关的内容 3.1:函数默认参数 在函数定义的时候可以给形参赋初值,如果函数在调用的时候有传入参数,就使用传入的参数,如果没有就用默认的。 注意事项 1:如果某个参数有了默认值&…

Ubuntu下载速度过慢解决

今天用Ubuntu下载Roberta文件到本地,速度特别慢,Ubuntu 系统自带的源文件,都是国外的源网址,在国内下载安装升级源或者依赖的时候,都比较慢,更换国内的源地址,轻松搞定此问题。 目录 一、备份…

fecth

reducx巩固知识的传送门 1.向服务器发送数据请求的方案: 第一类:XMLHttpRequest 1.ajax:自己编写请求的逻辑和步骤 2.axios:第三方库,对XMLHttpRequest进行封装「基于promise进行封装」 第二类: fetchES6内置的API,本身即使基于promise,用全…

一文了解NAS协议原理

一文了解NAS协议原理 一、介绍二、NAS协议结构三、NAS协议工作原理四、NAS协议的安全机制4.1、NAS协议的认证过程4.2、NAS协议的加密过程 五、总结 一、介绍 NAS协议(Network Attached Storage Protocol)是一种用于网络附加存储设备(NAS&…

学习HCIP的day.16

目录 扩展知识点 一、端口镜像 SPAN 二、DHCP 三、DHCP snooping 四、端口安全 五、SSH 六、端口隔离 扩展知识点 一、端口镜像 SPAN [r1]observe-port interface GigabitEthernet 0/0/2 监控接口[r1]interface GigabitEthernet 0/0/0[r1-GigabitEthernet0/…

浅谈单元测试的那些事

Part 01 什么是单元测试 单元测试是一种软件测试方法,用于测试软件系统的最小可测试单元,例如函数、方法或类的行为。单元测试通常由开发人员编写,并在编写代码时就开始执行。这样可以保证实时检测代码中的错误、缺陷和潜在的问题&#xff0…

打包Java程序为.exe文件

文章目录 将Java程序打包成Jar包打包为.exe文件效果展示文件检索联系作者 ​👑作者主页:Java冰激凌 接上篇 我们还未介绍到如何打包为一个.exe文件 将Java程序打包成Jar包 1. file -> Project Structure 或者直接使用全局快捷键(Ctrl Al…

Java调用ChatGPT实现可连续对话和流式输出

目录 1. 配置阶段1.1 依赖引入1.2 配置application.yml文件1.3 注解添加 2. 使用2.1 生成回答2.1.1 测试 2.2 生成图片2.2.1 测试 2.3 下载图片2.3.1 测试 2.4 生成流式回答2.4.1 流式回答输出到IDEA控制台2.4.2 流式回答输出到浏览器页面2.4.3 流式回答结合Vue输出到前端界面 …

Docker: 改变容器化世界的革命性技术

目录 1.1什么是虚拟化 1.2什么是Docker 1.3容器与虚拟机的比较 1.4Docker组建 2、Docker安装 2.2设置ustc的镜像 2.3Docker的启动与停止 3、docker常用命令 3.1镜像 3.2容器相关命令 1.1什么是虚拟化 在计算机中,虚拟化(Vitualization&#x…

这可能是最全的Web测试各个测试点,有这一篇就够了

前言 什么是Web测试? Web测试测试Web或Web应用程序的潜在错误。它是在上线前对基于网络的应用程序进行完整的测试。 Web测试检查 功能测试 易用性测试 接口测试 性能测试 安全测试 兼容性测试 1、功能测试 测试网页中的所有链接、数据库连接、网页中用于提交或从…

结合具体代码理解yolov5-7.0锚框(anchor)生成机制

最近对yolov5-7.0的学习有所深入,感觉官方代码也比较易读,所以对网络结构的理解更进一步,其中对锚框生成这块没太看明白细节,也想弄明白这块,于是前前后后好好看了代码。现在把我的学习收获做一下记录。个人见解&#…

如何在大规模服务中迁移缓存

当您启动初始服务时,通常会过度设计以考虑大量流量。但是,当您的服务达到爆炸式增长阶段,或者如果您的服务请求和处理大量流量时,您将需要重新考虑您的架构以适应它。糟糕的系统设计导致难以扩展或无法满足处理大量流量的需求&…

第三章 decimal模块

1. decimal 模块介绍 decimal 模块是 Python 提供的用于进行十进制定点和浮点运算的内置模块。使用它可以快速正确地进行十进制定点和浮点数的舍入运算,并且可以控制有效数字的个数。 使用 decimal 模块主要是因为它与 Python 自带的浮点数相比,有以下…