美畅物联丨GB/T 28181系列之TCP/UDP被动模式和TCP主动模式
GB/T 28181《安全防范视频监控联网系统信息传输、交换、控制技术要求》作为我国安防领域的重要标准,为视频监控系统的建设提供了全面的技术指导和规范。该标准详细规定了视频监控系统的信息传输、交换和控制技术要求,在视频流传输方面,GB/T 28181支持多种传输模式,其中包括TCP/UDP被动模式和TCP主动模式。今天我们就讨论下这几种传输模式的工作原理(通过SDP数据包来帮助理解)、应用场景及各自的优势。
一、TCP/UDP被动模式(Passive Mode)
TCP(Transmission Control Protocol)即传输控制协议,是一种复杂、缓慢但可靠的传输协议。
UDP(User Datagram Protocol)即用户数据包协议,是一种简单、快速但可靠度较低的传输协议。在GB/T 28181中,UDP模式主要用于流媒体传输。
在TCP/UDP被动模式下,前端设备,诸如高清摄像头,主动跨越网络界限,向位于外网的监控中心服务器发起连接请求。这一模式尤其适用于前端设备部署于安全内网,而监控中心位于开放外网的场景,有效解决了跨网数据传输的难题。
1、工作原理:
(1)平台端作为服务器监听TCP端口,等待设备端的连接请求。
(2)设备端通过SIP信令向平台端发送INVITE请求,并在SDP中指定TCP传输方式和端口号,同时携带a=setup:passive参数表示采用被动模式。
(3)平台接收到INVITE请求后,解析SDP信息,确认采用TCP被动模式,并继续监听TCP端口。
(4)设备端主动向平台发起TCP连接请求,平台被动接收请求并建立连接。前端设备向平台发送高清视频流,确保视频画面的实时性与清晰度。
(5)平台端不仅作为数据的接收者,更通过这一连接向前端设备发送控制指令,实现了监控系统的远程操控与即时响应。
2、SIP会话流程
(1)INVITE请求
设备端通过SIP信令向平台端发送INVITE请求,开始会话。SDP中m指定使用TCP传输,如果把m里面的TCP改成UDP,即指定使用UDP传输。
INVITE sip:34020000002000000001@192.168.1.100 SIP/2.0
Via: SIP/2.0/TCP 192.168.1.2:5060;branch=z9hG4bK776sgdkse
From: <sip:34020000001320000001@192.168.1.2>;tag=5678
To: <sip:34020000002000000001@192.168.1.100>
Call-ID: 123456789@192.168.1.2
CSeq: 1 INVITE
Contact: <sip:34020000001320000001@192.168.1.2>
Content-Type: application/SDP
Content-Length: 160v=0
o=34020000001320000001 0 0 IN IP4 192.168.1.2
s=Play
c=IN IP4 192.168.1.2
t=0 0
m=video 6000 TCP/RTP/AVP 96
a=rtpmap:96 H264/90000
a=setup:passive
a=connection:new
(2)200 OK响应
设备端准备好推送视频流,它发送一个200 OK响应,包括会话描述。
SIP/2.0 200 OK
Via: SIP/2.0/TCP 192.168.1.2:5060;branch=z9hG4bK776sgdkse
From: <sip:34020000001320000001@192.168.1.2>;tag=5678
To: <sip:34020000002000000001@192.168.1.100>;tag=1234
Call-ID: 123456789@192.168.1.2
CSeq: 1 INVITE
Content-Type: application/SDP
Content-Length: 160v=0
o=34020000002000000001 0 0 IN IP4 192.168.1.100
s=Play
c=IN IP4 192.168.1.100
t=0 0
m=video 6000 TCP/RTP/AVP 96
a=rtpmap:96 H264/90000
a=setup:active
a=connection:new
(3)ACK请求
平台端确认发送ACK请求,确认200 OK响应,正式建立会话。
ACK sip:34020000002000000001@192.168.1.100 SIP/2.0
Via: SIP/2.0/TCP 192.168.1.2:5060;branch=z9hG4bK776sgdkse
From: <sip:34020000001320000001@192.168.1.2>;tag=5678
To: <sip:34020000002000000001@192.168.1.100>;tag=1234
Call-ID: 123456789@192.168.1.2
CSeq: 1 ACK
3、应用场景及优势
TCP/UDP被动模式适用于前端设备(如摄像头、编解码器等)主动连接到监控中心或服务器的场景。
(1)前端设备位于内网:当前端设备处于企业或组织的内部网络中,而监控中心或服务器位于外网时,前端设备需要主动穿越NAT(网络地址转换)或防火墙,与服务器建立连接。此时,TCP/UDP被动模式能够确保数据的安全、可靠传输。
(2)需要高可靠性和顺序性的数据传输:TCP协议以其面向连接的特性,提供了数据传输的可靠性和顺序性。在需要确保视频流不丢失、不乱序的场景中,TCP/UDP被动模式是理想的选择。
(3)网络环境相对稳定:在网络环境相对稳定、不易出现大规模网络波动或中断的情况下,TCP/UDP被动模式能够保持连接的稳定性,确保视频监控系统的持续运行。
二、TCP主动模式(Acvite Mode)
TCP主动模式与TCP/UDP被动模式不同,在TCP主动模式下,平台端主动向前端设备发起连接。适用于前端设备具有公网IP或网络环境允许入站连接。
1、工作原理
(1)设备端通过SDP协议告知平台端其监听的TCP端口情况。
(2)平台端根据前端设备的IP地址和端口,主动尝试建立TCP连接。
(3)连接建立后,平台端开始接收来自设备端的视频数据。
(4)平台也可以通过这个连接向设备端发送控制命令。
2、SIP会话流程
(1)INVITE请求
平台端向设备端发送INVITE请求,开始会话。SDP中m指定使用TCP传输,a=setup:acvite指定使用主动模式。
INVITE sip:34020000002000000001@192.168.1.100 SIP/2.0
Via: SIP/2.0/TCP 192.168.1.2:5060;branch=z9hG4bK776sgdkse
From: <sip:34020000001320000001@192.168.1.2>;tag=5678
To: <sip:34020000002000000001@192.168.1.100>
Call-ID: 123456789@192.168.1.2
CSeq: 1 INVITE
Contact: <sip:34020000001320000001@192.168.1.2>
Content-Type: application/sdp
Content-Length: 160v=0
o=34020000001320000001 0 0 IN IP4 192.168.1.2
s=Play
c=IN IP4 192.168.1.2
t=0 0
m=video 6000 TCP/RTP/AVP 96
a=rtpmap:96 H264/90000
a=setup:acvite
a=connection:new
(2)200 OK响应
设备端准备好TCP端口,等待平台端主动连接,它发送一个200 OK响应,包括会话描述。
1.SIP/2.0 200 OK
Via: SIP/2.0/TCP 192.168.1.2:5060;branch=z9hG4bK776sgdkse
From: <sip:34020000001320000001@192.168.1.2>;tag=5678
To: <sip:34020000002000000001@192.168.1.100>;tag=1234
Call-ID: 123456789@192.168.1.2
CSeq: 1 INVITE
Content-Type: application/sdp
Content-Length: 160v=0
o=34020000002000000001 0 0 IN IP4 192.168.1.100
s=Play
c=IN IP4 192.168.1.100
t=0 0
m=video 6000 TCP/RTP/AVP 96
a=rtpmap:96 H264/90000
a=setup:passive
a=connection:new
(3)ACK请求
平台端发送ACK请求,确认200 OK响应,正式建立会话。
ACK sip:34020000002000000001@192.168.1.100 SIP/2.0
Via: SIP/2.0/TCP 192.168.1.2:5060;branch=z9hG4bK776sgdkse
From: <sip:34020000001320000001@192.168.1.2>;tag=5678
To: <sip:34020000002000000001@192.168.1.100>;tag=1234
Call-ID: 123456789@192.168.1.2
CSeq: 1 ACK
3、应用场景及优势
TCP主动模式则适用于平台端主动向前端设备发起连接的场景。
(1)前端设备具有公网IP:当前端设备直接连接到公网,并拥有独立的公网IP地址时,平台端可以主动向前端设备发起连接请求,建立TCP连接。这种情况下,TCP主动模式能够减少前端设备的连接请求次数,降低网络负担。
(2)网络环境允许入站连接:在前端设备所在的网络环境允许入站连接的情况下,平台端可以主动与前端设备建立连接,实现视频流的实时传输和控制指令的交互。这种模式特别适用于需要平台端主动控制连接或前端设备处于NAT/防火墙之后的场景。
(3)对实时性要求较高:虽然TCP协议本身已经提供了较高的数据传输可靠性,但在某些对实时性要求极高的应用场景中(如实时视频会议、远程医疗等),TCP主动模式能够更快地建立连接并传输数据,减少传输延迟。
三、结语
GB/T 28181标准下的TCP/UDP被动模式与TCP主动模式,如同视频汇聚平台的双翼,各自在不同场景下展现出独特的魅力与优势。TCP/UDP被动模式以其稳健可靠著称,适用于对数据传输顺序与可靠性有严格要求的环境;而TCP主动模式则以其主动性与控制力见长,适用于需要平台主动建立连接或前端设备处于NAT/防火墙保护下的场景。通过精准选择与合理配置这些传输模式,我们不仅能够确保视频监控系统的稳定运行与高效传输,更能为各类应用场景提供量身定制的解决方案。
相关文章:

美畅物联丨GB/T 28181系列之TCP/UDP被动模式和TCP主动模式
GB/T 28181《安全防范视频监控联网系统信息传输、交换、控制技术要求》作为我国安防领域的重要标准,为视频监控系统的建设提供了全面的技术指导和规范。该标准详细规定了视频监控系统的信息传输、交换和控制技术要求,在视频流传输方面,GB/T 2…...

机器学习之实战篇——图像压缩(K-means聚类算法)
机器学习之实战篇——图像压缩(K-means聚类算法) 0. 文章传送1.实验任务2.实验思想3.实验过程 0. 文章传送 机器学习之监督学习(一)线性回归、多项式回归、算法优化[巨详细笔记] 机器学习之监督学习(二)二元逻辑回归 …...

轴承介绍以及使用
轴承(Bearing)是在机械传动过程中起固定、旋转和减小载荷摩擦系数的部件。也可以说,当其它机件在轴上彼此产生相对运动时,用来降低运动力传递过程中的摩擦系数和保持转轴中心位置固定的机件。 轴承是当代机械设备中一种举足轻重的…...
【JAVA】算法笔记
一、ArrayList ArrayList类是一个可以动态变化的数组,与普通数组的区别就是它没有固定的长度。 ArrayList<String> arrList new ArrayList<String>(); arrList.add("吐泡泡"); System.out.println(arrList.get(0)); arrList.set(0,"J…...

Gnu Radio抓取WiFi信号,流程图中模块功能
模块流程如图所示: GNURadio中抓取WiFi信号的流程图中各个模块的功能: UHD: USRP Source: 使用此模块配置USRP硬件进行信号采集。设置频率、增益、采样率等参数。Complex to Mag^2: 将复数IQ数据转换为幅度的平方。Delay…...
GO语言中make与new的区别
区别 1 make不仅分配内存,还会初始化。 new只会分配零值填充的值2make只适用slice,map,channel的数据,new 没有限制3make返回原始类型(T),new返回类型的指针(*T) 源码中定义的区别 func make(t Type,size …IntegerType) Type func new(Type) *Type f…...
安全运维类面试题
1、你熟悉哪些品牌的安全设备 答:天融信的ngfw防火墙,老牌防火墙厂商,功能比较齐全,像流量检测,web应用防护和僵木蠕等模块都有,界面是红白配色,设计稍微有点老 2、IPS用的是哪个牌子的 答&…...

STM32外设之LTDC/DMA2D—液晶显示(野火)
文章目录 显示屏有几种?基本参数控制?显存 LTDC 液晶控制器LTDC 结构框图LTDC 初始化结构体 LTDC_InitTypeDefLTDC 层级初始化结构体 DMA2D 图形加速器DMA2D 初始化结构体 要了解什么 屏幕是什么,有几种屏,有什么组成。 怎么控制,不同屏幕控…...
调试vue build之后的js文件
调试 dist 目录下的 JavaScript 文件可以按照以下步骤进行: 1. 确保 Source Maps 正常生成 确认你的构建配置中已启用 Source Maps,确保 .map 文件与构建后的 .js 文件位于同一目录。 2. 启动一个本地服务器 使用本地服务器来服务 dist 目录…...
Django一分钟:DRF快速实现JWT认证与RBAC权限校验
一、项目创建并实现JWT认证 1. 下载依赖 下载django、djangorestframework、djangorestframework_simplejwt pip install django djangorestframework djangorestframework_simplejwt2. 创建项目 启动Django项目 django-admin startproject <myproject> cd myprojec…...
面试题(六)
48、设计模式 49、继承是否会破坏封装? 继承在面向对象编程中是一个重要的概念,但它确实可能对封装产生影响,具体情况取决于如何使用继承。以下是对这个问题的分析: 封装的定义 封装是面向对象编程中的一个基本原则࿰…...

CSS 实现文本溢出省略号显示,含单行与多行文本溢出
🚀 个人简介:某大型国企资深软件研发工程师,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~ 💟 作 者:码喽的自我修养ǹ…...
Redis中String命令的基础操作
文章目录 Redis中String命令的基础操作一、引言二、String类型的基础命令1、设置与获取值1.1、SET命令1.2、GET命令 2、字符串操作2.1、APPEND命令2.2、GETRANGE命令2.3、SETRANGE命令2.4、STRLEN命令 3、数值操作3.1、INCR命令3.2、DECR命令3.3、INCRBY和DECRBY命令 三、应用场…...
策略模式+模版模式+工厂模式
工厂模式: (1)避免类中出现过多的组合依赖 (2)同时减少代码中出现过多的if...else if...语句 (2)将调用者跟我们的实现类解耦 模版模式: (1)功能复用 &…...

云计算平台层(PaaS)指的是什么?常见的应用场景盘点
云计算平台层(PaaS)指的是什么?云计算平台层(PaaS),全称PlatformasaService(平台即服务),是云计算服务的一种重要模式。为用户提供了一个基于云端的开发和部署环境,允许用户开发、运…...

搜索引擎简介
搜索引擎架构 整个搜索引擎分为三个系统 爬虫系统 索引系统 线上搜素服务 爬虫系统 爬虫分为两个阶段: 第一阶段:根据目标网站的列表页,爬对应的文档 URL 第二阶段:根据文档 URL,下载文档内容 触发器࿱…...
每天认识几个maven依赖(aislib+A1TRMI+Andromda+Annogen)
十七、aislib 1、是什么? aislib用于与人工智能(AI)相关的任务。这可能包括支持机器学习、数据分析或其他 AI 功能的工具。用于集成或扩展 AI 功能到 Java 项目中。 2、有什么用? 机器学习: 提供各种机器学习算法和…...

每日算法1(快慢指针)
通过一道题来了解快慢指针 这是一道力扣的算法题,首先来读题,是删除链表的中间元素,先来分析一下题,链表一共有三种可能,第一种是空链表,第二种链表的个数是偶数,第三种是链表的个数是奇数&…...

基于RealSense D435相机简单实现手部姿态重定向
基于Intel RealSense D435 相机和 MediaPipe的手部姿态检测,进一步简单实现手部姿态与机器人末端的重定向。 假设已经按照【基于 RealSenseD435i相机实现手部姿态检测】配置好所需的库和环境,并且有一个可以控制的机器人接口。 一、手部姿态重定向介绍 …...
Linux下搭建iSCSI共享存储-Tgt
Linux下搭建iSCSI共享存储-Tgt 在Linux上使用tgt搭建iSCSI共享存储,可以实现多个客户端同时访问共享存储。 1. 安装iSCSI Target软件包 使用下面命令安装: # centos sudo yum install scsi-target-utils sudo systemctl status tgtd# ubuntu sudo ap…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...

STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...

HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...
手动给中文分词和 直接用神经网络RNN做有什么区别
手动分词和基于神经网络(如 RNN)的自动分词在原理、实现方式和效果上有显著差异,以下是核心对比: 1. 实现原理对比 对比维度手动分词(规则 / 词典驱动)神经网络 RNN 分词(数据驱动)…...