当前位置: 首页 > news >正文

美畅物联丨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《安全防范视频监控联网系统信息传输、交换、控制技术要求》作为我国安防领域的重要标准&#xff0c;为视频监控系统的建设提供了全面的技术指导和规范。该标准详细规定了视频监控系统的信息传输、交换和控制技术要求&#xff0c;在视频流传输方面&#xff0c;GB/T 2…...

机器学习之实战篇——图像压缩(K-means聚类算法)

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

轴承介绍以及使用

轴承&#xff08;Bearing&#xff09;是在机械传动过程中起固定、旋转和减小载荷摩擦系数的部件。也可以说&#xff0c;当其它机件在轴上彼此产生相对运动时&#xff0c;用来降低运动力传递过程中的摩擦系数和保持转轴中心位置固定的机件。 轴承是当代机械设备中一种举足轻重的…...

【JAVA】算法笔记

一、ArrayList ArrayList类是一个可以动态变化的数组&#xff0c;与普通数组的区别就是它没有固定的长度。 ArrayList<String> arrList new ArrayList<String>(); arrList.add("吐泡泡"); System.out.println(arrList.get(0)); arrList.set(0,"J…...

Gnu Radio抓取WiFi信号,流程图中模块功能

模块流程如图所示&#xff1a; GNURadio中抓取WiFi信号的流程图中各个模块的功能&#xff1a; UHD: USRP Source&#xff1a; 使用此模块配置USRP硬件进行信号采集。设置频率、增益、采样率等参数。Complex to Mag^2&#xff1a; 将复数IQ数据转换为幅度的平方。Delay&#xf…...

GO语言中make与new的区别

区别 1 make不仅分配内存&#xff0c;还会初始化。 new只会分配零值填充的值2make只适用slice,map,channel的数据&#xff0c;new 没有限制3make返回原始类型(T),new返回类型的指针(*T) 源码中定义的区别 func make(t Type,size …IntegerType) Type func new(Type) *Type f…...

安全运维类面试题

1、你熟悉哪些品牌的安全设备 答&#xff1a;天融信的ngfw防火墙&#xff0c;老牌防火墙厂商&#xff0c;功能比较齐全&#xff0c;像流量检测&#xff0c;web应用防护和僵木蠕等模块都有&#xff0c;界面是红白配色&#xff0c;设计稍微有点老 2、IPS用的是哪个牌子的 答&…...

STM32外设之LTDC/DMA2D—液晶显示(野火)

文章目录 显示屏有几种?基本参数控制?显存 LTDC 液晶控制器LTDC 结构框图LTDC 初始化结构体 LTDC_InitTypeDefLTDC 层级初始化结构体 DMA2D 图形加速器DMA2D 初始化结构体 要了解什么 屏幕是什么&#xff0c;有几种屏&#xff0c;有什么组成。 怎么控制&#xff0c;不同屏幕控…...

调试vue build之后的js文件

调试 dist 目录下的 JavaScript 文件可以按照以下步骤进行&#xff1a; 1. 确保 Source Maps 正常生成 确认你的构建配置中已启用 Source Maps&#xff0c;确保 .map 文件与构建后的 .js 文件位于同一目录。 2. 启动一个本地服务器 使用本地服务器来服务 dist 目录&#xf…...

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、继承是否会破坏封装&#xff1f; 继承在面向对象编程中是一个重要的概念&#xff0c;但它确实可能对封装产生影响&#xff0c;具体情况取决于如何使用继承。以下是对这个问题的分析&#xff1a; 封装的定义 封装是面向对象编程中的一个基本原则&#xff0…...

CSS 实现文本溢出省略号显示,含单行与多行文本溢出

&#x1f680; 个人简介&#xff1a;某大型国企资深软件研发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主&#xff0c;华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f9…...

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命令 三、应用场…...

策略模式+模版模式+工厂模式

工厂模式&#xff1a; &#xff08;1&#xff09;避免类中出现过多的组合依赖 &#xff08;2&#xff09;同时减少代码中出现过多的if...else if...语句 &#xff08;2&#xff09;将调用者跟我们的实现类解耦 模版模式&#xff1a; &#xff08;1&#xff09;功能复用 &…...

云计算平台层(PaaS)指的是什么?常见的应用场景盘点

云计算平台层(PaaS)指的是什么&#xff1f;云计算平台层&#xff08;PaaS&#xff09;&#xff0c;全称PlatformasaService&#xff08;平台即服务&#xff09;&#xff0c;是云计算服务的一种重要模式。为用户提供了一个基于云端的开发和部署环境&#xff0c;允许用户开发、运…...

搜索引擎简介

搜索引擎架构 整个搜索引擎分为三个系统 爬虫系统 索引系统 线上搜素服务 爬虫系统 爬虫分为两个阶段&#xff1a; 第一阶段&#xff1a;根据目标网站的列表页&#xff0c;爬对应的文档 URL 第二阶段&#xff1a;根据文档 URL&#xff0c;下载文档内容 触发器&#xff1…...

每天认识几个maven依赖(aislib+A1TRMI+Andromda+Annogen)

十七、aislib 1、是什么&#xff1f; aislib用于与人工智能&#xff08;AI&#xff09;相关的任务。这可能包括支持机器学习、数据分析或其他 AI 功能的工具。用于集成或扩展 AI 功能到 Java 项目中。 2、有什么用&#xff1f; 机器学习&#xff1a; 提供各种机器学习算法和…...

每日算法1(快慢指针)

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

基于RealSense D435相机简单实现手部姿态重定向

基于Intel RealSense D435 相机和 MediaPipe的手部姿态检测&#xff0c;进一步简单实现手部姿态与机器人末端的重定向。 假设已经按照【基于 RealSenseD435i相机实现手部姿态检测】配置好所需的库和环境&#xff0c;并且有一个可以控制的机器人接口。 一、手部姿态重定向介绍 …...

Linux下搭建iSCSI共享存储-Tgt

Linux下搭建iSCSI共享存储-Tgt 在Linux上使用tgt搭建iSCSI共享存储&#xff0c;可以实现多个客户端同时访问共享存储。 1. 安装iSCSI Target软件包 使用下面命令安装&#xff1a; # centos sudo yum install scsi-target-utils sudo systemctl status tgtd# ubuntu sudo ap…...

OpCore-Simplify:让黑苹果配置从专业难题变为点击操作,3步完成自动化EFI构建

OpCore-Simplify&#xff1a;让黑苹果配置从专业难题变为点击操作&#xff0c;3步完成自动化EFI构建 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你…...

Python多解释器冷启动优化:从2.1s到87ms的极致压缩术(附可复用的预热调度器)

第一章&#xff1a;Python多解释器冷启动优化&#xff1a;从2.1s到87ms的极致压缩术&#xff08;附可复用的预热调度器&#xff09; 在微服务与Serverless场景中&#xff0c;Python多解释器&#xff08;如PyO3、subinterpreters或进程级隔离&#xff09;常因模块导入、C扩展初始…...

如何使用铜钟音乐打造纯净无广告的个人听歌空间

如何使用铜钟音乐打造纯净无广告的个人听歌空间 【免费下载链接】tonzhon-music 铜钟 (Tonzhon.com): 免费听歌; 没有直播, 社交, 广告, 干扰; 简洁纯粹, 资源丰富, 体验独特&#xff01;(密码重置功能已回归) 项目地址: https://gitcode.com/GitHub_Trending/to/tonzhon-mus…...

Windows下OpenClaw全流程指南:ollama GLM-4-7-Flash接入与技能扩展

Windows下OpenClaw全流程指南&#xff1a;ollama GLM-4-7-Flash接入与技能扩展 1. 为什么选择OpenClawGLM-4-7-Flash组合 去年我在处理日常办公自动化时&#xff0c;发现很多重复性工作既耗时又容易出错。尝试过各种RPA工具后&#xff0c;最终被OpenClaw的"AI智能体本地…...

告别兼容性烦恼:在Windows 11上为特定网站配置专属IE访问环境的完整指南

告别兼容性烦恼&#xff1a;在Windows 11上为特定网站配置专属IE访问环境的完整指南 当Windows 11彻底移除了IE浏览器的桌面入口&#xff0c;许多依赖特定网站的企业用户、财务人员和政府工作人员陷入了困境。那些仅兼容IE的老旧系统——从企业内部OA到税务申报平台&#xff0c…...

突破原厂限制:用开源相机工具解锁Sony相机7大隐藏功能

突破原厂限制&#xff1a;用开源相机工具解锁Sony相机7大隐藏功能 【免费下载链接】Sony-PMCA-RE Reverse Engineering Sony Digital Cameras 项目地址: https://gitcode.com/gh_mirrors/so/Sony-PMCA-RE 作为一名摄影爱好者&#xff0c;我一直梦想能充分掌控我的Sony相…...

实战教程:3分钟掌握高效抖音内容保存方案

实战教程&#xff1a;3分钟掌握高效抖音内容保存方案 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 还在为喜欢的抖音内容无法保存而烦恼吗&#xff1f;这款完全免费的抖音下载工具正是你需要的专业解决方案…...

easy-connect-gr-peach:GR-PEACH多网络连接抽象库详解

1. easy-connect-gr-peach 项目概述 easy-connect-gr-peach 是专为 Renesas GR-PEACH 开发板设计的轻量级网络连接抽象库&#xff0c;属于 mbed OS 生态中 easy-connect 系统在特定硬件平台上的适配实现。其核心目标并非提供底层驱动&#xff0c;而是构建一套 统一、可配置…...

Aspen Plus模拟电解质水脱酸:一场化工模拟的奇妙之旅

Aspen Plus模拟电解质水脱酸Aspen 化工过程模拟→电解质水脱酸模拟在温度为 8C、压力为 1 atm、质量流量为 5000 kg/h 的条件下&#xff0c;含有 0.20 wt% CO2、0.15 wt% H2S 和 0.1 wt% NH3 的酸性水流将通过 1.1 atm、质量流量为 1500 kg/h 的干蒸汽进行处理。在化工领域&…...

nli-distilroberta-base环境配置:Ubuntu/CentOS下Python依赖与CUDA版本兼容说明

nli-distilroberta-base环境配置&#xff1a;Ubuntu/CentOS下Python依赖与CUDA版本兼容说明 1. 项目概述 nli-distilroberta-base是一个基于DistilRoBERTa模型的自然语言推理(NLI)Web服务&#xff0c;专门用于判断两个句子之间的逻辑关系。该服务能够快速分析句子对&#xff…...