P2P在物联网领域的应用

一、P2P简介

P2P是Peer To Peer的缩写,是一种利用终端用户的上行带宽来辅助数据分发和交换的技术。当前普遍的互联网应用都是B/S或C/S的模式,以下行数据为主,用户上行的数据通常只是少量的数据请求。除了少量的UGC场景需要上传外,用户大部分时间的上行带宽都是空闲的。当前国内的用户已经可以有百兆的接入带宽,不过上行带宽和下行并不是对称的。类似传统的ADSL网络,上行带宽通常是下行带宽的1/3或1/4。这就为成为P2P应用创造了底层的物理条件。

P2P的应用通常有两种模式:第一种是访问相同资源的人形成一个Group,他们之间是对等的地位,每个参与者是一个peer,peer和peer间以一定的协议与对方通信。通常一个peer可以从很多个peer那里获取数据。这种模式要处理Group内的多个peer间如何有序无差错的交换数据的问题; 第二种模式则只需要考虑两个点间的通信,也就是所谓的Point To Point,点对点的通信相对来说简单一些,适合一对一通信的场景。

二、物联网领域里的P2P

随着物联网的普及,越来越多的设备接入物联网,各物联网厂商也建设了物联网平台来管理Iot终端设备。对于普通传感器类的窄带数据,通常都是通过MQTT等协议直接收集到了云端,可以供用户获取,也可以进行后续的数据分析。近些年,音视频类的物联网设备越来越普及,家用摄像头、行车记录仪、可视门铃、可视门锁、智能猫眼等设备都带了音视频采集能力。音视频数据有着非常大的数据量,全部上传存储到云端会带来极大的成本。

当前行业内处理这个问题的方案有多种,一种方式是在终端设备上放置上存储卡,也就是我们通常说的“卡录”,录制的视频数据以循环覆盖的方式存储到本地存储卡上。这种方式的优点是成本低,但随之带来的一个问题就是远程访问不方便。传统的NVR设备也是这个思路,NVR设备上挂载磁盘阵列,把接入的多路摄像头的流都存储到本地磁盘上。可以通过对应的管理软件本地查看录像回放。

随着移动设备普及,人们越来越希望随时随地就可以访问物联网设备采集到的实时视频和历史录像,传统的NVR方案已经无法满足这种需求。而视频数据全部上云的方式又会带来极高的成本。Point to Point的访问方式就应运而生。

三、P2P的基础技术挑战

在物联网场景下,P2P应用中要解决资源定位、连通性、可靠传输、兜底转发等几大问题,下面分别叙述。

1. 资源定位问题

在进行P2P连接之前,需要解决一个资源定位问题:如何找到需要连接的对象。通常是通过一个Tracker服务来跟踪资源的情况。对于每一个资源,都会有一个唯一标识,对于IOT里的设备,我们用设备的序列号(SN)来表征。每个设备都会把自己注册到Tracker服务器并保持一定的心跳。节点和Tracker间的通信通常是用的UDP协议。在进行P2P连接之前,连接发起者都会通过去查询Tracker获取到目标节点的信息(IP与端口)。

2. 连通性问题

获取到目标节点信息后,并不能保证就能直接连通了。国内的网络因为普遍缺乏IP地址,多采用网络地址转换(NAT)的接入方式。一个局域网里的多个设备共用相同的外网地址。路由器或网络软件会把局域网的网络连接会话进行网络地址转换(NAT),通信的另一方只能看到经过网络地址转换后的IP地址和端口。NAT通常有多种类型,比较通用的分类方式有全锥形、IP受限、端口受限锥形、对称等几类。

通信的双方如果有一方有公网地址,其实可以通过信令让另外一方主动发起连接。如果双方都在NAT之后,解决这个问题的方式就是“打洞”,也就是所谓的内网穿透技术。通常来说对称的NAT类型比较难处理,需要用猜端口等策略,很难保障穿透的成功率。一般情况下,对称性NAT还是少数,大部分场景下还是可以通过P2P穿透技术解决连通性问题。

3. 可靠传输问题

P2P的内网穿透技术解决了连通性问题,但通常的打洞都是基于UDP的(TCP的穿透更难,成功率更低,没有被广泛采用),UDP是一种不可靠的传输协议,对于传输音视频数据和信令控制大多要求数据有序和可靠。这就需要在建立的信道上做一层可靠传输协议。比较常用的开源项目有UDT,还有很多厂商则是模拟TCP的底层机制实现了一套私有的协议,不过在拥塞控制算法上则更激进一些,在弱网场景下能获得较大的优势。

4. 兜底转发

P2P穿透技术通常只能解决大部分问题,对于对称NAT类型的,还是没有太好的办法。常规的P2P穿透成功率在60%-80%左右。对于无法穿透成功但还希望有100%连通率的情况下就需要走服务器中转了(通常称作Relay服务器)。用户终端在穿透失败后需要以一定的策略切换到服务器中转这条路径上,从而保证整体的连通成功率。

四、360智汇云物联网视频服务

360的IOT业务早在2014年就推出家用的“水滴”摄像机,凭借在互联网业务积累的技术以及对产品的极致追求,360摄像机上市以来就一直有着良好的用户口碑。而支持360摄像机底层技术的,则是360技术中台的智汇云团队。360智汇云把物联网的视频技术开放出来形成一套针对物联网音视频应用的PaaS服务平台帝视。帝视包含了音视频数据的传输、远程观看、卡录、云存、实时音视频对讲等多方面的功能。涵盖音视频数据生产和消费的全周期。而P2P技术则是帝视服务里一个比较突出的技术优势。

1. 95%的穿透成功率

360拥有P2P行业内的多位顶级技术人才,也有丰富的P2P应用场景。除此之外,360还有大量的边缘计算设备,用来做P2P的中继节点,极大提升穿透成功率。穿透成功率的提高意味着运营成本的节省。 80%与95%的穿透成功率相差4倍的中继带宽,无疑能给设备厂商带来更丰厚的利润。

另外,移动网络的NAT类型比较难进行P2P穿透,随着4G和5G设备的增多,整体的P2P穿透成功率会逐步下降,无疑会提升业务运营成本。这个时候拥有边缘计算节点辅助P2P穿透就显得至关重要。

2. 针对弱网、高效的传输协议

在实际应用场景下,大数据量的音视频数据传输对网络特别敏感。网络的抖动和突发故障都会影响观看端用户的体验(比如开流时间、卡顿、清晰度)。360的自研私有传输协议是网络专家经过多年的积累形成的一套高效、低开销的传输算法,同时也吸收了近年来行业内的新传输协议(BBR、QUIC等)的优点,形成了一套行业领先的传输技术。

BBR虽然有着良好的性能,但是需要高版本的内核并开启才可以,对于一般性的下行流量为主的应用,只用服务端开启就可以。但对于上行为主或直接点对点的P2P连接,则无法使用BBR带来的好处。P2P打洞是基于UDP的,也无法直接应用上BBR算法。

360智汇云自研的传输算法,一方面在拥塞算法上可以和BBR相媲美,另一方面是基于UDP之上的传输算法,可以直接应用到P2P连接上,还能保持较小的代码体积,特别适合嵌入式的场景。虽然QUIC协议之上也能与BBR拥塞算法结合,但是QUIC协议的实现代码体积太大,不适合资源非常受限的嵌入式场景。

如下面的表格,360智汇云自研的私有传输算法在丢包率到达30%时,还能比较充分的利用带宽。而传统的TCP则对丢包特别敏感,随着丢包率的上升,吞吐量急剧下降。基于BBR算法的TCP或QUIC则相对表现好些,但是在超高丢包率的场景下表现也略差。

表1: 360自研传输协议在弱网下的效果对比(条件: 5Mbps带宽, 50ms延时)

3. 智能切换策略

在P2P和Relay中转两条路径中,可以有并行和串行两种途径。串行的方式是优先尝试P2P连接,如果P2P连接超时,那么就切换到relay服务中转的路径上。串行方式的优点低成本,但也带来两个问题:一方面用户总体等待时间会变长,另一方面如果P2P连接的质量不高,还是会影响到用户的观看体验。并行的方式则是P2P和Relay中转同时进行连接,类似赛马机制,哪个更好就使用哪条通道。并行方式的优点是速度快,用户体验好。

360智汇云的帝视服务提供了多种方式,即可以强制优先P2P连接,也可以强制优先relay,或者两者并行竞速。另外,当P2P连接质量不高,出现数据堆积时,就会智能切换到Relay中转服务上。即最大限度了利用了P2P的带宽,降低运营成本,又保证用户体验不受影响。

五、总结

除家用摄像机外,当前360智汇云的帝视服务已经运用到4G版行车记录仪、低功耗可视门铃、智能可视门禁等物联网设备。超高的P2P穿透成功率极大的节省了运营成本,高效的弱网传输协议也保障了监控视频的观看体验。未来也会有更多品类、更多形态的物联网设备接入帝视服务,赋能未来美好的智慧生活。

附录:帝视服务(云监控): https://zyun.360.cn/product/iot

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇