HIK录像机GB28181对接相机不在线问题随笔

一、问题现象

【设备信息】 型号:DS-8664N-I16-V3 V4.63.000 build 230412

**【问题现象】**HIK录像机使用GB28181对接异常相机无法正常上线,对接HIK相机可以正常上线。

**【现场拓扑】**现场拓扑如下

  1. NVR侧使用固定公网IP地址。
  2. IPC侧使用家用宽带的方式,通过国标跨公网接入NVR。

图1.1:网络拓扑

上述拓扑与NVR使用GB接入三方平台的拓扑类似,只不过NVR此时充当了平台的角色。

二、问题排查过程

1、异常相机接入过程抓包及收集打印

现场反馈HIK相机接入正常,但是三方相机接入异常,所以我们先抓包查看异常的三方相机完整的注册过程

图2.1:三方相机异常抓包1

图2.2:三方相机异常抓包2

从上图可发现,三方相机抓包分析结果如下

  1. 录像机发起Invite请求
  2. 三方相机回复200 OK
  3. 录像机回复ACK并发起三次握手请求
  4. 未收到回复设备一直在重传三次握手(详见图2.2)

由上图分析,设备侧发起主动请求,但是未收到回复,目前看起来应该是异常相机的问题?因为相机并未正常回复相关三次握手,导致设备一直在重传,无法获取相关参数。但结果真的如此吗?

因为HIK相机是正常的,我们先抓取HIK相机的包,对比分析下是否有区别。

2、HIK相机正常抓包过程

因上述分析,我们决定抓取HIK相机的报文,对比分析下两个抓包有何区别。

图2.3:HIK相机正常抓包1

图2.4:HIK相机正常抓包2

图2.5:HIK相机正常抓包3

由上述现象可以判断出:

  1. HIK的相机正常接入是存在一个切换被动的机制在的。
  2. 先主动取流,取不到之后,会切换被动取流。

那么问题来了,为什么第一次主动取流总会失败呢?

3.为什么主动取流会失败呢?

要确定这个问题,我们时候首先得对Invite报文中的报文进一步分析

图2.6 异常相机Invite回复分析

图2.7 HIK相机第一次Invite回复分析

图2.8 HIK相机第二次Invite回复分析

由上图分析可知,相机200OK的C字段,IP一直是相机的内网IP,所以,在主动取流是取不到的,所以录像机必须得被动取流,即让相机主动和录像机建立连接。

根据上述分析录像机肯定是存在一个主动切换被动的逻辑在里面的,但是为什么三方相机无法正常上线,HIK相机可以正常上线呢?

4.进一步确认问题并检查相关逻辑。

根据上述分析,我们在确定下正常HIK相机抓包和异常相机抓包有何不同。

图2.9:相机异常抓包1

图2.10:三方相机异常抓包2

图2.11:HIK相机正常抓包1

图2.12:HIK相机正常抓包2

由上述抓包信息可以看出:

  1. 相机C字段回复的内网地址,录像机主动取流是取不到的(公网IP无法主动访问私网IP),所以问题点目前在于,录像机是否可以正常切换被动取流(invite中a字段setup:passive)。
  2. 异常的相机三次握手一直没有回应,导致设备侧一直在重传三次握手报文,取不到流。
  3. 正常的HIK相机在未收到录像机的三次握手后,会主动BYE掉连接,回收资源。

如上述分析,目前仅存在此一个疑点。是否此怀疑疑点便为三方相机无法接入的原因呢?

三、问题解决

【问题原因】将收集到的抓包提供给HIK同事分析,目前定位出原因为:

  1. HIK的NVR会先active去取流,海康的IPC 有超时机制,tcp建立连接超时,海康的IPC 会发bye 。NVR这个时候会发passive的invite.
  2. 现场的异常ipc超时没有发BYE造成HIK的NVR的主动的取流session一直没有释放,所以就不发invite了。导致问题出现

定位到问题原因与我们之前分析到的一致

四、问题遗留

此问题中抓包发现,存在以下遗留问题

  1. 目前HIK的录像机使用国标协议添加通道,协议类型自适应模式下虽然下发的是TCP取流但是仍无法切换passive取流
  2. 需要手动将通道管理界面,更改为TCP,才会切换被动取流。所以在国标跨公网接入IPC时候,仍需如下配置通道才可正常在线,配置如下图。
相关推荐
coding-fun2 小时前
电脑音频录制工具(语音聊天录音软件)
音视频
却道天凉_好个秋3 小时前
音视频学习(七十二):视频压缩:分块与预处理
音视频·视频压缩
车载测试工程师4 小时前
CAPL学习-SOME/IP交互层-原始数据访问类函数
网络协议·tcp/ip·以太网·capl·canoe
gf13211114 小时前
python_字幕文本、音频、视频一键组合
python·音视频·swift
YANshangqian4 小时前
音频录制和编辑软件
音视频
想用offer打牌5 小时前
一站式了解http1.1,http2.0和http3.0
后端·网络协议·面试
我爱学习_zwj5 小时前
Node.js拦截器模式实现动态HTTP服务
网络协议·http·node.js
huangyuchi.5 小时前
【Linux 网络】理解并应用应用层协议:HTTP(附简单HTTP服务器C++代码)
linux·服务器·网络·网络协议·http·c/c++
捧 花5 小时前
Go Web 中 WebSocket 原理与实战详解
网络·后端·websocket·网络协议·http·golang·web
gf13211115 小时前
python_字幕、音频、媒体文件(图片或视频)一键组合
python·音视频·swift