國標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.pswp.cn/web/63966.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63966.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63966.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mac Android studio 升級LadyBug 版本,所產生的bug

當Build 出現,這樣的文字以后: Your build is currently configured to use incompatible Java 21.0.3 and Gradle 7.3.3. Cannot sync the project. We recommend upgrading to Gradle version 8.9. The minimum compatible Gradle version is 8.5. …

com.google.common.collect.ImmutableList$SerializedForm

今天AndroidStudio安裝了個2021版本的,gradle用了7.3.3,創建項目后控制臺總是有這樣一個錯誤: Unable to load class com.google.common.collect.ImmutableList$SerializedForm. This is an unexpected error. Please file a bug containing…

Docker部署Sentinel

一、簡介 是什么:面向分布式、多語言異構化服務架構的流量治理組件 能干嘛:從流量路由、流量控制、流量整形、熔斷降級、系統自適應過載保護、熱點流量防護等多個維度來幫助開發者保障微服務的穩定性 官網地址:https://sentinelguard.io/zh-c…

HTMLCSSJavaScriptDOM 之間的關系?

一、HTML 中文名:超文本標記語言 英文名:HyperText Markup Language HTML是一種用來結構化Web網頁及其內容的標記語言。 HTML 由一系列的元素組成,這些元素可以用來包圍不同部分的內容,使其以某種方式呈現或者工作。 圖Ⅰ 每…

Hadoop集群(HDFS集群、YARN集群、MapReduce?計算框架)

一、 簡介 Hadoop主要在分布式環境下集群機器,獲取海量數據的處理能力,實現分布式集群下的大數據存儲和計算。 其中三大核心組件: HDFS存儲分布式文件存儲、YARN分布式資源管理、MapReduce分布式計算。 二、工作原理 2.1 HDFS集群 Web訪問地址&…

位運算符、標記位傳參

位運算符: 位運算符作用于操作數的位(bit)。 按位與(&)對應位都為1時結果為1 int a 5; // 0101 int b 3; // 0011 int result a & b; // 0001 按位或(|)對應位至少有一個為1時結…

施耐德變頻器ATV320系列技術優勢:創新與安全并重

在工業自動化領域,追求高效、安全與智能已成為不可阻擋的趨勢。施耐德變頻器ATV320系列憑借其強大的設計標準和全球認證,成為能夠幫助企業降低安裝成本,提高設備性能的創新解決方案。 【全球認證,品質保障】ATV320 系列秉持施耐德…

項目練習:element-ui的valid表單驗證功能用法

文章目錄 一、情景說明二、代碼實現 一、情景說明 一般表單提交的時候,都要對表單數據進行前段驗證。 比如登陸表單提交。 二、代碼實現 package.json "element-ui": "2.15.14",main.js 引用ElementUI import ElementUI from element-ui; i…

【es6復習筆記】Symbol 類型及其應用(9)

一、Symbol 簡介 Symbol 是 JavaScript 中的一種基本數據類型,它表示唯一的標識符。Symbol 的主要目的是防止屬性名沖突,尤其是在多個代碼庫或模塊中共享對象時。Symbol 值可以用作對象的屬性名,這樣可以確保屬性名是唯一的,不會…

Linux挖礦程序排查

一、背景 我們收到一個阿里云安全告警,內容是服務器可能存在挖礦程序。 二、殺死挖礦程序 2.1 找到可疑服務器進程 #1.輸入top命令,輸入shift P會按照cpu的使用率大小從大到小進行排序,cpu使用率高的就是可疑進程。 top #2.查看運行該進程…

zabbix監控山石系列Hillstone配置模版(適用于zabbix6及以上)

監控項: 觸發器: 監控數據:

PE文件結構

PE文件是Windows系統下可執行文件的總稱,英文全稱 Portable Executable 可移植的可執行文件,常見的有exe、dll、sys、com、ocx 對于學習反(木馬、免殺、病毒、外掛、內核),了解PE文件結構是非常有必要且非常非常重要的…

C語言-08復合類型-結構體

一、結構體 1.結構體struct struct關鍵字,允許自定義復合數據類型,將不同類型的值組合在一起,這種類型稱為結構體類型。 2.使用步驟 第一步:創建或聲明結構體 第二步:定義結構體變量 第三步:調用并操作結…

Web前端基礎知識(一)

前端是構建網頁的一部分,負責用戶在瀏覽器中看到和與之交互的內容。 網頁是在瀏覽器中呈現內容的文檔或頁面。 通常,網頁使用HTML、CSS、JavaScript(JS)組成。 HTML:定義了頁面的結構和內容。包括文本、圖像、鏈接等。 CSS:定義頁面的樣式…

網絡安全詞云圖與技術淺談

網絡安全詞云圖與技術淺談 一、網絡安全詞云圖生成 為了直觀地展示網絡安全領域的關鍵術語,我們可以通過詞云圖(Word Cloud)的形式來呈現。詞云圖是一種數據可視化工具,它通過字體大小和顏色的差異來突出顯示文本中出現頻率較高…

fpgafor循環語句使用

genvar i;//循環變量名稱 generate for(i0;i<4;ii1)begin:tx//自己定義名稱 //循環內容 end endgenerate12位的16進制乘以4就是48位位寬的2進制 因為 222*2(2^4)16

【python高級】342-TCP服務器開發流程

CS模式&#xff1a;客戶端-服務端模式 TCP客戶端開發流程介紹&#xff08;五步&#xff09;&#xff08;C端&#xff09; 1.創建客戶端套接字對象 2.和服務端套接字建立連接 3.發送數據 4.接收數據 5.關閉客戶端套接字 TCP服務端開發流程&#xff08;七步&#xff09;&#xf…

es 中 terms set 使用

在 Elasticsearch 中&#xff0c;terms_set 查詢通常用于在一個字段上進行多值匹配&#xff0c;并支持設置一個條件&#xff08;例如最小匹配數量&#xff09;&#xff0c;讓查詢結果更具靈活性。為了展示如何使用 terms_set 查詢&#xff0c;我們首先會創建一個索引&#xff0…

修改采購訂單BAPI學習研究-BAPI_PO_CHANGE

這里是修改采購訂單BAPI&#xff0c;修改訂單數量和交貨日期的簡單應用 文章目錄 修改數量代碼運行結果 修改交貨日期代碼運行結果 修改數量 代碼 *&---------------------------------------------------------------------* *& Report Z_BAPI_PO_CHANGE *&----…

WSL2高級配置之mirrored鏡像網絡

WSL2高級配置之mirrored鏡像網絡 引言版本要求更改配置 引言 WSL2默認的網絡模式為NAT。盡管WSL2原生提供了localhost轉發這種能夠方便地在Windows中訪問子系統服務的特性&#xff0c;但如果想反過來&#xff0c;則只能通過局域網或者想辦法橋接&#xff0c;這兩種方法都有些許…