写点什么

去中心化、P2P、NAT 浅析

用户头像
IT酷盖
关注
发布于: 2021 年 05 月 05 日
去中心化、P2P、NAT浅析

WebRTC 由于其开源,只需极少步骤便可建立媒体会话的优良特性,使得该项技术被广泛使用。随着 webrtc 技术的广泛使用,P2P,NAT,去中心化这些概念便出现在我们的视野中。那么什么是去中心化呢?什么又是 P2P?什么又是 NAT?它们之间又有什么关系呢?请往下看。

什么是去中心化

何为中心化

中心化架构


要想知道什么是去中心化,我们就得先看看什么是中心化。简单来说就是在一个体系中,一个节点(客户端,服务器,路由器等)要和另外的一个节点产生关联,就要通过特定的一个节点,这个特定的节点就可以称为中心化,我们下边将该中心化节点称为节点中心


我们熟悉的淘宝购物,就是一个中心化的应用。我们购物的流程大致是这样的:当我们选好商品后付款,淘宝收款,淘宝通知店铺发货,我们确认收货,然后淘宝把钱打给店铺。因此淘宝平台成了买卖双方选择的一个双方都相信的第三方担保平台,简单来说淘宝就是我们购物的一个节点中心


银行体系也是一个以银行为中心的体系,当一个人想要转账给另一个人,必须要经过银行的确认,所以银行也是一个我们转账的节点中心


我们平时购物所用的软件实际上就是中心化平台。不管你是选择商品,还是支付交易,对于买家与卖家来说,都有一个绕不开的角色,就是这个软件的创建公司。它能获得用户在这个过程中的全部数据,甚至可以决定卖家店铺销量的好坏,权力非常大,是整个过程中的中心角色,这就属于中心化


而所谓的去中心化,就是把这个中心去掉,使原来属于中心化角色的权力分散化,用户之间能自由的进行点对点交易。比如,原来用户购物产生的数据,交由用户去管理,中心化的公司只能调取,无权查看;再比如商家的好坏,会全部由用户来决定,中心化的公司没有办法去做搜索排名,影响商家的销量等,这就属于去中心化。

中心化的缺点

首先是风险性。因为淘宝现在做大了,所以我们大家都愿意相信它,但是我们谁能保证它就能一直稳定地运营下去呢?如果淘宝经营不善,它是存在倒闭或跑路的风险的。淘宝购物平台只是阿里公司的一个产品而已,当淘宝平台运营不善导致关闭,那么我们就无法通过淘宝平台购物了。


另外,我们的交易产生的数据被第三方平台无偿利用,我们却得不到任何报酬,它往往涉及用户的隐私。例如现在当我们在任意一个购物平台搜索想要购买的商品后,然后打开其他的购物平台或者浏览微信公众号文章时都会弹出我们搜索过的产品的推荐链接,这就是我们信息泄露的直接结果。如果平台对这些隐私信息管理不当,也极易给不法分子有机可乘。


最后,中心化的应用也使时间成本和金钱成本大大增加了,因为我们所有所做的操作都必须通过中心节点做中转,并且大部分中心节点还会抽取服务费用。

去中心化优点

去中心化架构


我们同样来看看淘宝购物的情景。它的流程现在就变成了我们付款给商家,商家收到款后发货给我们,交易完成,这样就省去了第三方平台(例如淘宝)的参与。这就防范了第三方风险,也节省了人力、财力和时间。比如现在比较火的区块链技术,因为所有的节点都保存有交易记录,每个节点权利相等,哪怕一个节点出现问题,也不会造成较大的影响,不用担心买卖双方的违约,信任问题就解决了。


还有就是在中心化的企业或组织中,管理者们为了自身利益,往往会相互勾结,私自更改数据,损坏客户利益。而去中心化系统,每个节点都是独立平行运行的,且数据记录不可更改。这样各种数据就更公开透明,客户的利益得到很好地维护。


所以,去中心化在某种程度上来说,可谓是互联网世界的共产主义化。

P2P

P2P 是 peer to peer 的缩写,意思是个人对个人。最早起源于英国,用来做网络信贷。其典型的模式为:网络信贷公司提供平台,让借款人和投资人直接对接,然后借贷双方自由竞价,撮合交易,信贷平台不做任何干预。这样投资人获得因借贷关系而产生利息收入,并承担风险,借款人因使用投资人的资金而支付利息,并最终偿还本金。网络信贷公司只是收取中介服务费而已。


总结起来就是:

1、借款人把需求提出来,然后做出保证,证明自己到期能还款;

2、放贷人判断投资价值,出资,享受利息;

3、平台,为借贷双方提供信息流通交互、信息价值认定和其他促成交易完成的服务;


在网络通信中我们常规的通信架构为 C/S 或者 B/S,而在 webrtc 中使用 C/C 架构即 P2P,这种通信模式其实就是去中心化。ClientA 通过信令服务器与 ClientB 建立连接,然后 ClientA 与 ClientB 直接进行通信而不用通过服务器,我们把这种通信方式称为点对点通信,即 P2P 通信。


那么 ClientA 如何能与 ClientB 建立连接进行 P2P 通信呢?这就需要使用 NAT 了。

NAT

网络地址转换协议(Network Address Translation)用来给你的(私网)设备映射一个公网的 IP 地址的协议。一般情况下,路由器的 WAN 口有一个公网 IP,所有连接这个路由器 LAN 口的设备会分配一个私有网段的 IP 地址(例如 192.168.1.3)。私网设备的 IP 被映射成路由器的公网 IP 和唯一的端口,通过这种方式不需要为每一个私网设备分配不同的公网 IP,但是依然能被外网设备发现。


看完上边概念大家可能对 NAT 的认识更不清晰了,我来放张图给大家详细解释下

NAT 的作用主要做网络地址映射,即 ClientA 进程与 ClientB 进程都通过服务器找到对方的网关地址,然后 ClientA 的网络进程与 ClientB 的网络进程直接通过网关(IP+Port)进行通信,而不用通过服务器。所以 NAT 的作用主要是做 IP+端口映射的。


那么 webrtc 中要想使用 p2p 通信必须要经过 NAT 吗?

答案是不需要。目前通过 NAT 来做网络穿透,俗称打洞,主要是因为 IPV4 地址不足,无法为每台机器都分配一个 ip 地址,所以要通过 NAT(IP+Port)来标记每台机器。如果以后大家都使用 IPV6 了,那么每台机器都可获得一个唯一的 IP 地址,就不需要 NAT 来穿透也可直接进行 P2P 通信了。


了解了 NAT 的作用后你是否还想要知道 NAT 有几种呢?如何鉴别 NAT 以及 NAT 如何实现穿透呢?由于篇幅原因,目前就先讲到这里,下篇文章会对上边提出的问题做详细介绍,如果不想迷路,欢迎点个关注哦~

结语

笔者尽量对去中心化、P2P、NAT 及它们之间的关系做了比较详细的介绍,但由于笔者也是刚在学习音视频技术,有些技术观点可能不一定非常准确,希望读者谅解。如果有什么问题欢迎留言交流。


参考:

https://www.zhihu.com/question/268003724/answer/672966247

https://zhuanlan.zhihu.com/p/88232715

https://www.zhihu.com/question/27088588

什么是去中心化? - 知乎 (zhihu.com)

发布于: 2021 年 05 月 05 日阅读数: 73
用户头像

IT酷盖

关注

写代码是一件快乐的事儿! 2021.03.31 加入

还未添加个人简介

评论

发布
暂无评论
去中心化、P2P、NAT浅析