点对点技术(peer-to-peer,
简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络通常用于通过Ad
Hoc连接来连接节点。这类网络可以用于多种用途,各种文件共享软件已经得到了广泛的使用。

自区块链诞生以来,去中心化一直被认为是区块链的最核心属性之一。但是随着区块链投资市场的转冷,很多国内大佬开始否认这一点,更有甚者,称去中心化这个词是区块链行业翻译产生的重大误导。近日,在央行发布的工作论文《区块链能做什么、不能做什么?》一文中,也重点讲到,区块链的去中心化不能被“神化”,去中心是一个相对的概念,比如很多数据在上链之前,依旧需要借助一个中心化的机构,承担审核的功能。“去中心化”是相对的区块链的网络是一个由众多节点组成的分布式系统,每个节点都具有高度自治的特征。节点之间彼此可以自由连接,形成新的连接单元。任何一个节点都可能成为阶段性的中心,但不具备强制性的中心控制功能。节点与节点之间的影响,会通过网络而形成非线性的因果关系。这种开放式、扁平化、平等性的系统现象或结构,可以称之为去中心化。如下图,可以理解为部分去中心化的系统。  简单的理解就是区块链的数据是分散存储在网络中许多节点上的。而传统的数据存储方式,则是存在网络中1个或几个大节点上的。所以,所谓的中心化与去中心化,就是存储数据的节点的多少的区别。所以从这个角度来看,区块链的去中心化是相对的。去中心化的2大基础  区块链如何实现去中心化,在徐明星看来是基于2大基础,一是P2P的通讯技术,一是共识机制。P2P通讯技术,又称点对点网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络通常用于通过Ad
Hoc连接来连接节点。这类网络可以用于多种用途,各种档案分享软件已经得到了广泛的使用。P2P技术也被使用在类似VoIP等实时媒体业务的数据通信中。徐明星表示,不同于中心化网络模式,P2P网络中每个节点拥有相同的网络权力,不存在中心的服务器。所有节点间通过特定的软件协议共享部分计算资源、软件或者信息内容。“在比特币出现之前,
P2P网络计算技术已被广泛用于开发各种应用,如文件共享和下载软件、网络视频播放软件等。”徐明星如是说。而“共识机制”则是指通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。通俗一点来讲,如果国内的一名微博大V、美国一名虚拟币玩家、一名非洲留学生和一名欧洲旅行者互不相识,但他们都一致认为你是个好人,那么基本上就可以断定你这人还不坏。在区块链技术应用里,最早的共识机制是比特币区块链中的工作量证明机制,此外还有以太坊的权益证明机制、股份授权证明机制等等。在徐明星看来,去中心化的核心在于通过技术手段(P2P通讯和共识机制)使单个组织和个人可以在统一共识的规则下按分布式的方式提高协作效率。徐明星认为这种机制的核心价值在于:1.
减少交易信息中转流程,提高交易处理效率;2.
剔除了中心机构运营的那部分成本负担;3.
网络上所有节点平等参与交易的验证、记录,排除了被任何中心组织控制的风险。(中国网)

3. WebRTC原理

WebRTC的实现是建立浏览器之间的直接连接而无需服务器中转,即P2P。因此要求彼此知道对方外网地址,而计算机大多位于NAT之后,少数主机拥有外网地址。这就要求一种方式可穿透NAT技术(STUN、TRUN)。
WebRTC实用默认STUN服务器获取当前主机的外网地址和端口,Chrome默认的是Google域名下的一个STUN,国内不大稳定。
P2P建立过程需依赖服务端中转(信令服务器),需实用双工通讯方式的WebSocket来实现信令的中转。

网络信息交换

浏览器A创建一个RTCPeerConnection对象,RTCPeerConnection自动向STUN服务器获取自己的外网IP与端口,然后将自己的网络信息经过信令服务器中转后发送给浏览器B。
浏览器B接收到A的网络信息后创建一个RTCPeerConnection对象,将接收的信息通过addIceCandidate添加到对象中。

音视频设备信息交换

浏览器A通过RTCPeerConnection对象的createOffer()获取本地音视频编码分辨率等信息,通过setLocalDescription添加到RTCPeerConnection中,并将这些信息经过信令服务器中转后发送给浏览器B。浏览器B接收到浏览器A发送过来的信息后,使用RTCPeerConnection对象的setRomoteDescription()保存。

简单的说,P2P直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。

RTCPeerConnection

WebRTC实用RTCPeerConnection在浏览器之间传递流数据,此流数据通道是P2P的,无需服务器中转。但并不意味着能抛弃服务器,仍需服务器为传递信令(signaling)来建立信道。WebRTC没有定义用于建立信道的信令协议,信令并不是RTCPeerConnection
API的一部分。

什么是P2P

ICE

ICE(Interactive Connectivity Establishment,
综合性NAT穿越技术)框架整合各种NAT穿越技术如STUN、TURN(Traversal Using
Relay
NAT,中继NAT实现的穿透),ICE先使用STUN尝试建立一个基于UDP的连接,失败后实用TCP(先尝试HTTP然后尝试HTTPS),若依然失败,ICE就会使用中继的TURN服务器。

同时含有纯P2P和杂P2P的特点。

NAT/防火墙穿越技术

在处于使用NAT设备的私有TCP/IP网络中的主机之间建立连接时需使用NAT穿越。NAT的行为是非标准化的,穿越技术大多使用公共服务器,使全球任何地方都能访问得到IP地址,在RTCPeerConnection中实用ICE框架来保证RTCPeerConnection实现NAT穿越。

节点同时作为客户端和服务器端。没有中心服务器,没有中心路由器。

MediaStream

var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
getUserMedia.call(navigator, {video:true, audio:true}, function(localMediaStream){
  var video = document.getElementById('video');
  video.src = window.URL.createObjectURL(localMediaStream);
  video.onloadedmetadata = function(e){
    console.log(localMediaStream.label);
    console.log(localMediaStream.getAudioTracks());
    console.log(localMediaStream.getVideoTreacks());
  }
}, function(err){
  console.log('rejected', err);
});

使用P2P技术的流媒体服务器系统

RTCDataChannel

既然能建立P2P信道来传递实时音视频数据流,为什么不能使用此信道传递其他数据呢?RTCDataChannel
API可实现浏览器之间传递任意数据。DataChannel是建立在PeerConnection之上的,不能单独使用。

P2P的技术优势

通过服务器建立信道

WebRTC提供浏览器之间P2P信道进行数据传输,但建立这个信道必须有服务器的参与。WebRTC需服务器提供:

  • 用户发现以及通信
  • 信令传输
  • NAT/防火墙穿越
  • 若P2P通信建立失败可作为中转服务器

P2P的三种模式

1. WebRTC?

浏览器本身不支持点对点建立信道进行通信,需通过服务器进行中转。因此浏览器之间一次通信需通过两段信道,通信效率同时受制于两段信道宽度。此种方式并不适合数据流的传输。
WebRTC使浏览器实时通信(RTC)提供JS接口,JS接口通过信令建立浏览器点对点(P2P,peer-to-peer)的信道,信道可发送任何数据并无需经过服务器。

1.Adobe Media Server

2. WebRTC API

WebRTC提供三个API,
MediaStream用于获取本地音视频流,RPCPeerConnection用于浏览器之间建立连接以传递音视频流,RTCDataChannel用于浏览器之间传递自定义数据。

2.八百里流媒体服务器系统(800Li Media
Server)

信令(signaling)

既然没有定义信令的协议,可选择任意方式(AJAX、WebSocket)任意协议(SIP、XMPP)来传递信令,建立信道。
需要信令来交换信息分为:

  • SESSION信息用来初始化信道还是错误信息
  • 网络配置,例如IP地址和端口等
  • 媒体适配, 发送方和接收方的浏览能接收什么样的编码器和分辨率

peer-to-peer简称P2P,即点对点技术。又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。

1.纯P2P

2.杂P2P

P2P网络的一个重要的目标就是让所有的客户端都能提供资源,包括带宽,存储空间和计算能力。因此,当有节点加入且对系统请求增多,整个系统的容量也增大。这是具有一组固定服务器的C/S结构不能实现的,这种结构中客户端的增加意味着所有用户更慢的数据传输。

365bet网址多少 1

3.混合P2P

有一个中心服务器保存节点的信息并对请求这些信息的要求做出响应。节点负责发布这些信息(因为中心服务器并不保存文件),让中心服务器知道它们想共享什么文件,让需要它的节点下载其可共享的资源。路由终端使用地址,通过被一组索引引用来取得绝对地址。

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注