电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解IOS WebRTC的實(shí)現(xiàn)原理

瀏覽:7日期:2022-09-16 15:53:48
目錄概述P2P連接模式WebRTC的服務(wù)器與信令WebRTC的NAT/防火墻穿越技術(shù)概述

它在2011年5月開(kāi)放了工程的源代碼,在行業(yè)內(nèi)得到了廣泛的支持和應(yīng)用,成為下一代視頻通話的標(biāo)準(zhǔn)。

WebRTC的音視頻通信是基于P2P,那么什么是P2P呢?

它是點(diǎn)對(duì)點(diǎn)連接的英文縮寫(xiě)。

P2P連接模式

一般我們傳統(tǒng)的連接方式,都是以服務(wù)器為中介的模式:

類似http協(xié)議:客戶端?服務(wù)端(當(dāng)然這里服務(wù)端返回的箭頭僅僅代表返回請(qǐng)求數(shù)據(jù))。

我們?cè)谶M(jìn)行即時(shí)通訊時(shí),進(jìn)行文字、圖片、錄音等傳輸?shù)臅r(shí)候:客戶端A?服務(wù)器?客戶端B。

而點(diǎn)對(duì)點(diǎn)的連接恰恰數(shù)據(jù)通道一旦形成,中間是不經(jīng)過(guò)服務(wù)端的,數(shù)據(jù)直接從一個(gè)客戶端流向另一個(gè)客戶端:

客戶端A?客戶端B ... 客戶端A?客戶端C ...(可以無(wú)數(shù)個(gè)客戶端之間互聯(lián))

這里可以想想音視頻通話的應(yīng)用場(chǎng)景,我們服務(wù)端確實(shí)是沒(méi)必要去獲取兩者通信的數(shù)據(jù),而且這樣做有一個(gè)最大的一個(gè)優(yōu)點(diǎn)就是,大大的減輕了服務(wù)端的壓力。

而WebRTC就是這樣一個(gè)基于P2P的音視頻通信技術(shù)。

WebRTC的服務(wù)器與信令

講到這里,可能大家覺(jué)得WebRTC就不需要服務(wù)端了么?這是顯然是錯(cuò)誤的認(rèn)識(shí),嚴(yán)格來(lái)說(shuō)它僅僅是不需要服務(wù)端來(lái)進(jìn)行數(shù)據(jù)中轉(zhuǎn)而已。

WebRTC提供了瀏覽器到瀏覽器(點(diǎn)對(duì)點(diǎn))之間的通信,但并不意味著WebRTC不需要服務(wù)器。暫且不說(shuō)基于服務(wù)器的一些擴(kuò)展業(yè)務(wù),WebRTC至少有兩件事必須要用到服務(wù)器:

瀏覽器之間交換建立通信的元數(shù)據(jù)(信令)必須通過(guò)服務(wù)器。 為了穿越NAT和防火墻。

第1條很好理解,我們?cè)贏和B需要建立P2P連接的時(shí)候,至少要服務(wù)器來(lái)協(xié)調(diào),來(lái)控制連接開(kāi)始建立。而連接斷開(kāi)的時(shí)候,也需要服務(wù)器來(lái)告知另一端P2P連接已斷開(kāi)。這些我們用來(lái)控制連接的狀態(tài)的數(shù)據(jù)稱之為信令,而這個(gè)與服務(wù)端連接的通道,對(duì)于WebRTC而言就是信令通道。

詳解IOS WebRTC的實(shí)現(xiàn)原理

圖中signalling就是往服務(wù)端發(fā)送信令,然后底層調(diào)用WebRTC,WebRTC通過(guò)服務(wù)端得到的信令,得知通信對(duì)方的基本信息,從而實(shí)現(xiàn)虛線部分Media通信連接。

當(dāng)然信令能做的事還有很多,這里大概列了一下:

用來(lái)控制通信開(kāi)啟或者關(guān)閉的連接控制消息 發(fā)生錯(cuò)誤時(shí)用來(lái)彼此告知的消息 媒體流元數(shù)據(jù),比如像解碼器、解碼器的配置、帶寬、媒體類型等等 用來(lái)建立安全連接的關(guān)鍵數(shù)據(jù) 外界所看到的的網(wǎng)絡(luò)上的數(shù)據(jù),比如IP地址、端口等

在建立連接之前,客戶端之間顯然沒(méi)有辦法傳遞數(shù)據(jù)。所以我們需要通過(guò)服務(wù)器的中轉(zhuǎn),在客戶端之間傳遞這些數(shù)據(jù),然后建立客戶端之間的點(diǎn)對(duì)點(diǎn)連接。但是WebRTC API中并沒(méi)有實(shí)現(xiàn)這些,這些就需要我們來(lái)實(shí)現(xiàn)了。

而第2條中的NAT這個(gè)概念,參考文章iOS即時(shí)通訊,從入門到“放棄”?,中也提到過(guò),不過(guò)是為了應(yīng)對(duì)NAT超時(shí),所造成的TCP連接中斷。在這里我們就不展開(kāi)去講了,感興趣的可以看看:NAT百科

這里我簡(jiǎn)要說(shuō)明一下,NAT技術(shù)的出現(xiàn),其實(shí)就是為了解決IPV4下的IP地址匱乏。舉例來(lái)說(shuō),就是通常我們處在一個(gè)路由器之下,而路由器分配給我們的地址通常為192.168.0.1 、192.168.0.2如果有n個(gè)設(shè)備,可能分配到192.168.0.n,而這個(gè)IP地址顯然只是一個(gè)內(nèi)網(wǎng)的IP地址,這樣一個(gè)路由器的公網(wǎng)地址對(duì)應(yīng)了n個(gè)內(nèi)網(wǎng)的地址,通過(guò)這種使用少量的公有IP 地址代表較多的私有IP 地址的方式,將有助于減緩可用的IP地址空間的枯竭。

但是這也帶來(lái)了一系列的問(wèn)題,例如這里點(diǎn)對(duì)點(diǎn)連接下,會(huì)導(dǎo)致這樣一個(gè)問(wèn)題:

如果客戶端A想給客戶端B發(fā)送數(shù)據(jù),則數(shù)據(jù)來(lái)到客戶端B所在的路由器下,會(huì)被NAT阻攔,這樣B就無(wú)法收到A的數(shù)據(jù)了。

但是A的NAT此時(shí)已經(jīng)知道了B這個(gè)地址,所以當(dāng)B給A發(fā)送數(shù)據(jù)的時(shí)候,NAT不會(huì)阻攔,這樣A就可以收到B的數(shù)據(jù)了。這就是我們進(jìn)行NAT穿越的核心思路。

于是我們就有了以下思路:

我們借助一個(gè)公網(wǎng)IP服務(wù)器,a,b都往公網(wǎng)IP/PORT發(fā)包,公網(wǎng)服務(wù)器就可以獲知a,b的IP/PORT,又由于a,b主動(dòng)給公網(wǎng)IP服務(wù)器發(fā)包,所以公網(wǎng)服務(wù)器可以穿透NAT A,NAT B送包給a,b。

所以只要公網(wǎng)IP將b的IP/PORT發(fā)給a,a的IP/PORT發(fā)給b。這樣下次a和b互相消息,就不會(huì)被NAT阻攔了。

WebRTC的NAT/防火墻穿越技術(shù)

基于上述的一個(gè)思路來(lái)實(shí)現(xiàn)的:

建立點(diǎn)對(duì)點(diǎn)信道的一個(gè)常見(jiàn)問(wèn)題,就是NAT穿越技術(shù)。在處于使用了NAT設(shè)備的私有TCP/IP網(wǎng)絡(luò)中的主機(jī)之間需要建立連接時(shí)需要使用NAT穿越技術(shù)。以往在VoIP領(lǐng)域經(jīng)常會(huì)遇到這個(gè)問(wèn)題。目前已經(jīng)有很多NAT穿越技術(shù),但沒(méi)有一項(xiàng)是完美的,因?yàn)镹AT的行為是非標(biāo)準(zhǔn)化的。這些技術(shù)中大多使用了一個(gè)公共服務(wù)器,這個(gè)服務(wù)使用了一個(gè)從全球任何地方都能訪問(wèn)得到的IP地址。在RTCPeeConnection中,使用ICE框架來(lái)保證RTCPeerConnection能實(shí)現(xiàn)NAT穿越

詳解IOS WebRTC的實(shí)現(xiàn)原理

這里提到了ICE協(xié)議框架,它大約是由以下幾個(gè)技術(shù)和協(xié)議組成的:STUN、NAT、TURN、SDP,這些協(xié)議技術(shù),幫助ICE共同實(shí)現(xiàn)了NAT/防火墻穿越。

以上就是詳解IOS WebRTC的實(shí)現(xiàn)原理的詳細(xì)內(nèi)容,更多關(guān)于IOS WebRTC的實(shí)現(xiàn)原理的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: IOS
相關(guān)文章:
主站蜘蛛池模板: 热风机_工业热风机生产厂家上海冠顶公司提供专业热风机图片价格实惠 | 中细软知识产权_专业知识产权解决方案提供商 | 南京试剂|化学试剂|分析试剂|实验试剂|cas号查询-专业60年试剂销售企业 | 华溶溶出仪-Memmert稳定箱-上海协烁仪器科技有限公司 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 飞飞影视_热门电影在线观看_影视大全| 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 定制/定做冲锋衣厂家/公司-订做/订制冲锋衣价格/费用-北京圣达信 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 厌氧反应器,IC厌氧反应器,厌氧三相分离器-山东创博环保科技有限公司 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 鼓风干燥箱_真空烘箱_高温干燥箱_恒温培养箱-上海笃特科学仪器 | 暖气片十大品牌厂家_铜铝复合暖气片厂家_暖气片什么牌子好_欣鑫达散热器 | 庭院灯_太阳能景观灯_草坪灯厂家_仿古壁灯-重庆恒投科技 | 厌氧反应器,IC厌氧反应器,厌氧三相分离器-山东创博环保科技有限公司 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 土壤肥料养分速测仪_测土配方施肥仪_土壤养分检测仪-杭州鸣辉科技有限公司 | 纸箱抗压机,拉力机,脂肪测定仪,定氮仪-山东德瑞克仪器有限公司 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 电销卡 防封电销卡 不封号电销卡 电话销售卡 白名单电销卡 电销系统 外呼系统 | 武汉宣传片制作-视频拍摄-企业宣传片公司-武汉红年影视 | 我爱古诗词_古诗词名句赏析学习平台 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 手表腕表维修保养鉴定售后服务中心网点 - 名表维修保养 | SMC-ASCO-CKD气缸-FESTO-MAC电磁阀-上海天筹自动化设备官网 | 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 施工电梯_齿条货梯_烟囱电梯_物料提升机-河南大诚机械制造有限公司 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 沥青灌缝机_路面灌缝机_道路灌缝机_沥青灌缝机厂家_济宁萨奥机械有限公司 | 办公室家具公司_办公家具品牌厂家_森拉堡办公家具【官网】 | 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | 超声波_清洗机_超声波清洗机专业生产厂家-深圳市好顺超声设备有限公司 |