国标GB28181-2022平台EasyGBS:安防监控中P2P的穿透方法

在安防监控领域,P2P技术因其去中心化的特性而受到关注,尤其是在远程视频监控和数据传输方面。P2P技术允许设备之间直接通信,无需通过中央服务器,这在提高效率和降低成本方面具有明显优势。然而,P2P技术在实际应用中也面临着一个主要挑战——网络穿透问题。

一、穿透方法

实现P2P穿透是可能的,成功的概率也比较高。UDP的协议进行数据传输穿透NAT的成功率比较高,接近100%,TCP则存在一些情况无法实现穿越,主要受限于路由器的端口映射机制。

要实现P2P穿透,需要有P2P穿透服务器部署在互联网(有固定的域名或者IP),由该服务器来协助网络摄像机和客户端来实现P2P穿透。有些服务器还能在TCP不能穿越的情况下,实现流媒体转发的功能,以确保二者之间能实现数据通信。

由于P2P穿透服务器不同于安防监控系统中的流媒体转发服务器,主要进行信令交互,不转发媒体数据,在协助打通数据通道之后,对应的网络摄像机和客户端就不会再占用服务器带宽和处理能力了,因此一台P2P穿透服务器可以接入数量庞大的网络摄像机和客户端。

通常网络摄像机都有唯一ID,并通过该ID注册到P2P服务器。客户端要访问对应的网络摄像机时,也需要先注册到P2P服务器,并提交对应网络摄像机的ID,由服务器查找对应的网络摄像机,并协助网络摄像机和客户端之间进行穿透,最后打通一个点对点的数据传输通道。之后,二者即可进行正常的媒体和信令交互了。

为实现更加有效地管理,服务器可对设备接入进行认证。

1、PC访问网络摄像机

PC访问网络摄像机,可以先访问一个网页,传入网络摄像机的序列号。

网页加载一个控件,该控件通过P2P穿透服务器和该序列号对应的网络摄像机实现穿透后,通过可靠的UDP传输信令和媒体数据。控件提供视频浏览、对讲、云台控制、参数查询设置等功能。

2、手机访问网络摄像机

手机由于平台的不同,需要单独开发对应的客户端或者插件以实现和PC访问类似功能。但原理是一样的,都需要通过P2P服务器和该序列号对应的网络摄像机实现穿透后,通过可靠的UDP传输信令和媒体数据。由于开源的P2P穿透库是可以移植的,在LINUX,iOS,Android等都可以实现同样的P2P穿透功能。

关于具体的穿透的代码,需要的可以自行搜索,同时网上有第三方的穿透中间件服务。穿透的核心是针对不同的网络环境,选择不同的策略。即明确设备处在的网络位置。这里涉及一个概念NAT。

因为互联网中的IPv4地址不够用,于是引入了NAT功能。NAT,即网络地址转换。这种方法即在内部网和外网之间使用带有NAT功能的路由器,路由器能分配一个公网IP,内部的任意一台机器和外网通信时都通过这个公网IP。这样就很好地解决IP地址有限的问题。但问题随之而来,很多网络协议无法通过NAT,此时我们需要穿透NAT,即P2P穿透或者NAT穿透。

NAT穿透的前提是确定NAT类型,一般而言,NAT分为静态NAT和NAPT两种。静态NAT好理解,即一个内网IP对应一个公网IP。NAPT要复杂很多,NAPT即端口多路复用技术,不但需要转换IP地址,还需要进行传输层的端口转换。具体表现就是对外只有一个公网IP,通过不同端口来区分内网的不同设备数据。

实际运用中,NAPT占绝大多数。NAPT又可以分成4种类型,分别为:

1、完全锥型(IP地址,端口都不受限)

2、受限锥型(IP受限,端口不受限)

3、端口受限型(IP地址,端口都受限)

4、对称型(一个请求对应一个端口)

P2P技术提高了数据传输的效率,在安防监控领域,EasyGBS平台作为一款基于国标GB28181协议构建的视频监控平台。该平台不仅支持视频直播、录像回放、云存储等基本功能,还具备告警处理、多级平台级联等高级功能,为各类监控场景提供了高效、稳定且智能的解决方案。

国标GB28181-2022平台EasyGBS支持多种流媒体协议输出,包括RTSP、RTMP、WebRTC、HTTP-FLV、WebSocket-FLV、HLS等这使得EasyGBS能够适应不同的网络环境和终端设备,提供灵活的视频分发服务。

总结来说,P2P技术在安防监控中的应用前景广阔,但要实现其潜力,必须克服网络穿透的难题。随着技术的不断进步和创新,我们有理由相信,未来将会出现更多高效、安全的P2P穿透解决方案。这些解决方案将进一步提升安防监控系统的灵活性和可靠性,使其能够更好地适应多变的网络环境,为用户提供更加稳定和便捷的远程监控体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/496609.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端开发 -- 自动回复机器人【附完整源码】

一&#xff1a;效果展示 本项目实现了一个简单的网页聊天界面&#xff0c;用户可以在输入框中输入消息&#xff0c;并点击发送按钮或按下回车键来发送消息。机器人会根据用户发送的消息内容&#xff0c;通过关键字匹配来生成自动回复。 二&#xff1a;源代码分享 <!DOCTYP…

【速成51单片机】1.已经学过stm32如何快速入门51单片机——软件下载与安装

引言 本系列专题用于已经熟悉stm32单片机的情况下&#xff0c;快速掌握51单片机。背景是我其实大一大二已经进入学校实验室了&#xff0c;已经学习了stm32单片机&#xff0c;但是现在大三期末考51单片机&#xff0c;实际期末复习更应该看老师给的重点和背书上知识点。但我不想…

node-js Express防盗链

什么是防盗连 一个简单的说明&#xff0c;假如在前端img标签想要引用图片网站上的图片&#xff0c;当你将图片地址放到img标签上想要显示的时候你发现&#xff0c;图片显示不了&#xff0c;这说明网站采用了防盗链。 怎么实现的呢 在请求头中一般会有 Referer&#xff0c;它…

68jQuery【jQuery操作DOM、事件】

jQuery jQuery操作DOM 元素节点的增删改查 创建元素节点 使用$(html)函数动态创建节点元素 函数$(html)只完成DOM元素创建&#xff0c;加入到页面还需要通过元素节点的插入或追加操作&#xff1b;同时&#xff0c;在创建DOM元素时&#xff0c;要注意字符标记是否完全闭合&am…

lin.security提权靶场渗透

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…

基于aspose.words组件的word bytes转pdf bytes,去除水印和解决linux中文乱码问题

详情见 https://preferdoor.top/archives/ji-yu-aspose.wordszu-jian-de-word-byteszhuan-pdf-bytes

[python学习笔记]对象、引用、浅复制、深复制

学了这么多年编程&#xff0c;发现在学校都是浑水摸鱼&#xff0c;从来没有精通过一门语言&#xff0c;一个月熟悉python和算法。不积硅步&#xff0c;无以至千里。 本文笔记来自以下博客&#xff0c;请参考原文。 Python&#xff1a;深拷贝与浅拷贝 - 七落安歌 - 博客园 h…

arm架构 uos操作系统离线安装k8s

目录 操作系统信息 安装文件准备 主机准备 主机配置 配置hosts&#xff08;所有节点&#xff09; 关闭防火墙、selinux、swap、dnsmasq(所有节点) 系统参数设置(所有节点) 配置ipvs功能(所有节点) 安装docker&#xff08;所有节点&#xff09; 卸载老版本 安装docke…

Animated Drawings:让纸上的角色动起来

前言 今天介绍的这个工具非常的有意思&#xff1a;它可以让我们在纸上绘画的角色动起来。先一起来看看效果&#xff1a; 准备 首先&#xff0c;我们先准备一张绘画。可以在纸上进行绘制&#xff0c;也可以在电子设备上进行绘制。绘制内容不限&#xff0c;在这里为了方便演示&am…

【WRF模拟】如何得到更佳的WRF模拟效果?

【WRF模拟】如何得到更佳的WRF模拟效果&#xff1f; 模型配置&#xff08;The Model Configuration&#xff09;1.1 模拟区域domain设置1.2 分辨率Resolution (horizontal and vertical)案例&#xff1a;The Derecho of 29-30 June 2012 1.3 初始化和spin-up预热过程案例1-有无…

javaweb 04 springmvc

0.1 在上一次的课程中&#xff0c;我们开发了springbootweb的入门程序。 基于SpringBoot的方式开发一个web应用&#xff0c;浏览器发起请求 /hello 后 &#xff0c;给浏览器返回字符串 “Hello World ~”。 其实呢&#xff0c;是我们在浏览器发起请求&#xff0c;请求了我们…

openGauss与GaussDB系统架构对比

openGauss与GaussDB系统架构对比 系统架构对比openGauss架构GaussDB架构 GaussDB集群管理组件 系统架构对比 openGauss架构 openGauss是集中式数据库系统&#xff0c;业务数据存储在单个物理节点上&#xff0c;数据访问任务被推送到服务节点执行&#xff0c;通过服务器的高并…

JS 设置按钮的loading效果

本文是在其他博主的博客JS学习笔记 | 遮罩层Loading实现_jsp loading-CSDN博客基础上&#xff0c;进行实践的。 目录 一、需求 二、Jspcss实现代码 一、需求 在springboot项目中的原始html5页面中&#xff0c;原本的功能是页面加载时&#xff0c;使用ajax向后端发送请求&…

QT线程 QtConcurrent (深入理解)

QT多线程专栏共有16篇文章,从初识线程到、QMutex锁、QSemaphore信号量、Emit、Sgnals、Slot主线程子线程互相传值同步变量、QWaitCondition、事件循环、QObjects、线程安全、线程同步、线程异步、QThreadPool线程池、ObjectThread多线程操作、 moveToThread等线程操作进行了全…

“游戏信息化”:游戏后台系统的未来发展

3.1可行性分析 开发者在进行开发系统之前&#xff0c;都需要进行可行性分析&#xff0c;保证该系统能够被成功开发出来。 3.1.1技术可行性 开发该游戏后台系统所采用的技术是vue和MYSQL数据库。计算机专业的学生在学校期间已经比较系统的学习了很多编程方面的知识&#xff0c;同…

第十六届“蓝桥杯”全国软件和信息技术专业人才大赛简介及资料大全

蓝桥杯全国软件和信息技术专业人才大赛是由工业和信息化部人才交流中心主办的一项全国性竞赛&#xff0c;面向全国高校大学生&#xff0c;累计参赛院校超过1200余所&#xff0c;参赛人数达40万人&#xff0c;是我国极有影响力的高校IT类赛事。 “第十六届蓝桥杯全国软件和信息…

电子电气架构 --- 什么是自动驾驶技术中的域控制单元(DCU)?

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 所谓鸡汤&#xff0c;要么蛊惑你认命&#xff0c;要么怂恿你拼命&#xff0c;但都是回避问题的根源&…

yolov5及其算法改进

yolov5及其算法改进 1、YOLOV5目标检测简介2、前处理2.1、自适应 Anchor 计算2.2、自适应计算 Anchor 的流程如下:2.3、图像自适应3、YOLOV4与YOLOV5的架构区别3.1、SiLU激活函数3.2、CSPBlock结构图3.3、yolov5的spp改进4、正负样本匹配与损失函数4.1、坐标表示4.2、正负样本…

WPF 绘制过顶点的圆滑曲线(样条,贝塞尔)

项目中要用到样条曲线&#xff0c;必须过顶点&#xff0c;圆滑后还不能太走样&#xff0c;捣鼓一番&#xff0c;发现里面颇有玄机&#xff0c;于是把我多方抄来改造的方法发出来&#xff0c;方便新手&#xff1a; 如上图&#xff0c;看代码吧&#xff1a; -------------------…

阿里云新用户服务器配置

创建和链接实例 创建实例&#xff0c;点击左侧标签栏总的实例&#xff0c; 找到链接帮助 根据帮助中的ip信息&#xff0c;然后启用vscode的ssh链接 ctrlp选择配置&#xff0c;输入公网的ip即可 passwd修改root密码 安装conda 参考 https://blog.csdn.net/adreammaker/arti…