安防自模拟转IP之后,网络在安防的应用越来越重要,也越来越复杂。笔者在安防网络领域从业多年,发现行业内的技术人员走了很多弯路,无论是安防厂商、集成商还是最终用户,对交换机如何选型及视频卡顿的原因存在不少误解。
市面上流传的很多所谓选型经验和文档,其实都是满满的坑,比如某篇《一个交换机到底能带几台摄像头》……,所以,今天我把这些常识性错误简单总结一下。
误区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项目就会出现卡顿,WHY?
立马联系厂家换一台,一换就好了,嗯,看来真是运气不好。可是过段时间又出现卡顿了,WHY?
不断的换设备,重启设备,调整网络结构等。反复折腾,也许好了,也许还是会随机卡顿,搞的筋疲力尽,最终也无法定论,甚至一线网络品牌厂家也给不出一个准确原因。
首先,我们先来简单的剖析一下视频流传输的基础原理:
视频流是由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,只是不同数据流大小传输所需的时间长短不同罢了。当速率相同的情况下,两个及以上的端口在同一时间点向同一端口传输时,就会拥塞。此时缓存如果能够存放下拥塞的数据流,就不会丢包,如果缓存存放不下,就会丢包。
通过以上两点的简单分析,我们可以明白,当交换机传输经过的视频流路数越多,瞬间并发的可能性就越大,那么拥塞的概率就越高,这也是为什么汇聚层或核心层更容易拥塞的原因,尤其是核心层,传输经过的视频流路数是最多的,整个网络几百路上千路都要经过核心交换机进行传输。
这里要再次重点强调,安防网络中,卡顿丢包多数是因为这种拥塞而导致的,而不是转发性能导致的,这是两个完全不同的概念。
备注:很多客户会将延时和卡顿混淆,延时指的是图像数据从前端的网络摄像机采集后到用户端的监视设备观看到图像的时间差。摄像机采集后的图像通过压缩编码、网络传输、解码输出显示等处理,这些过程虽然很短暂,但我们仍然可以感觉显示的图像有滞后,这个滞后就是图像延时。但延时只要不超过1S,是很难直观感觉到,并且多数场景也不影响应用。除非是一些特定的工业领域,需要依据视频的分析做出毫秒级的处理的,那延时就比较关键了。延时并不会产生图像丢失,也不会丢包。而卡顿则会造成图像丢失,是因丢包引起的。
除了拥塞丢包外,还有一种原因就是因为布线工程的质量引起的,比如线路老化,水晶头氧化,水晶头没有做好等,这些情况都会导致类似于FCS错误帧而引起丢包。严格意义上,这跟交换机没有关系,在此就不细说。
1、根据摄像机的码流和数量做好交换机规格选型,并设计好组网方案。
随着网络在安防的普及,从业人员的技术能力逐步加强,因规格选型和组网方案导致的网络故障会越来越少。如果因为这个原因导致带宽瓶颈,确实太低级了。某网络共有XX台X码流的摄像机,接入层该选多少台什么样端口规格(端口数量和端口速率)的交换机,汇聚层该选多少台什么样端口规格的交换机,核心层该怎么选,这类简单的知识我就不在这里浪费笔墨去写了,网上很多。
同时,为了应对突发流量,在选型和设计方案时,交换机端口的带宽使用率建议不要超过70%,最好控制在60%以内。注意:并不是因为实际性能只有理论值的 60~70%,而是为了预防突发流量,不建议使用率过高。转发性能是第一步要保证的,然后再去考虑避免拥塞。
2、尽可能选用缓存大的网管型交换机。
缓存是可以减少拥塞导致的丢包,理论上,如果缓存足够大,丢包为零,视频也不会因网络原因卡顿。曾经有客户问过笔者,那该怎么计算XX路XX码流的摄像机该用多大缓存的交换机?理论上是可以计算的,但实际上你计算完了之后,发现地球上目前还没有能满足这个缓存需求的交换机。
拥塞是有概率性的,不可能每个端口都会同时拥塞,所以芯片公司不会这样去设计缓存,因为缓存的成本太高。正常情况下,越高端的交换机,业务特性越丰富的交换机缓存越大。这也就是为什么当我们选择网管型,或者三层交换机,丢包卡顿的概率会低一些。同样24口千兆交换机,非网管的缓存可能只有几百K,而三层交换机缓存可能有几十M。
所以,当预算足够,成本可以接受的时候,尽可能选择缓存大的网管型交换机,因为这是芯片公司设计芯片时的规律。普及一个小知识,同样24口千兆非网管芯片与24口千兆三层芯片,交换容量是一样的,不一样的是各种表项容量,缓存大小,业务特性(功能)等。对于设备厂商来说,研发交换机时,只能尽可能选择缓存大的芯片,并不能更改缓存的大小,这是芯片的硬件特性。
可是,无论交换机怎么选型和组网设计,目前没有任何一家厂商敢保证他的产品和方案在任何安防项目中永远都不会出现卡顿。因为摄像机码流的传输是动态的,拥塞的可能性随时存在,而交换机的缓存大小又不可能完全解决所有摄像机拥塞的需要。