最近我们在做一个生态化养殖的项目时,发现一个奇怪的现象:
- 项目现场由于没有有线网络,所以,我们在现场IPC接入到海康NVR之后,再通过一款4G的CPE接入到天翼云的国标GB28181视频平台;
- 我们采用UDP协议播放NVR的国标通道视频,很正常,启流、停流,都很正规;
- 为了能够给客户提供稳定的观看效果,我们将取流协议切换成了TCP被动模式,结果发现,TCP被动模式下,取流大概2分钟多一点,设备就停流了,而且心跳报文也不发了,整个设备就跟平台失去了联络,平台无法控制设备了;
我们对比了采用UDP取流和TCP被动取流的方式,没发现报文上有什么大的不同,既然流都取到了,说明报文是没有问题的:
解决方法
由于项目现场在野外,反复对比SIP报文,同事蹲守了几天,换了几张电信卡都没有变化,于是,我们突发奇想,会不会是电信的4G卡对TCP流做了限制?
于是,现场同事将4G电信卡,换成了4G联通卡,然后......问题就解决了,TCP被动取流也稳定了,设备也不掉线了!!!
结论
理论上,我们采用4G方式无论是用哪家的网络应该都不会有这种限制,但是在很多运营商这里,电信做了TCP流量控制,导致我们的设备被断网了!!!,所以,以后我们遇到这种问题的时候,换个运营商,试一试!