p2p原理分析
使用zeroTier+moonlight的P2P串流
场景
台式主机离本人surface相距10KM,使用zeroTier打通P2P实现surface全分辨率7ms延迟串流。
P2P技术介绍
简介
全称为peer-to-peer,是一种个人对个人去中心化的模型,即每个人都是服务器,例如我需要下载一份文件,我便会向存在这些文件的个人去请求,所有使用P2P的用户都会贡献一部分带宽,秉承着人人为我我为人人 世界更美好的思想,P2P使用的人越多,下载会更通畅速度更快。P2P下载链接就是加入与资源有关的P2P网络,并且连接资源,向个人索取数据
原理分析
P2P的连通常常需要一个中心节点,来交流双方地址,双方将自己可直连的地址告知中间服务器来完成握手,并非不需要中心节点,而只是中心不再承受下载任务,仅承担媒人职责,中心是可以有多个的。
P2P下载流程:拿到P2P的下载链接,他会告诉你的下载器,在哪里有资源,你便尝试与那里的机器请求。在你使用的同时,你自身也会被中心节点记录,变成别人可请求的对象。所以建议大家都不要下载完就关闭P2P下载器,使用的人越多,我们的下载会越快。
应用
P2P下载,zeroTier,QQ在线传输文件
zeroTier技术介绍
原理分析
采用P2P技术,进行内网穿透,能成功打通隧道的时候,由节点间直连传输数据,无法直连的时候,由中心节点转发流量
Planet:中心节点,注册节点,转发流量
moon:节点离用户更近,能加速打通效率
中文环境离Planet较远,往往连接效率低下,甚至无法连通,所以往往都会推荐购买国内的服务器,自建一个moon节点,在moon节点的链接更好的情况下,moon会优于Planet承担连接P2P与转发流量的任务
思路分析
通过zeroTier打通P2P直连,通过城市数据中心传输,理想情况下,延迟基本等于城市主干网络,数据交换延迟,举个例子,打王者荣耀,由深圳游戏服务器连接你所在城市数据交换中心,通过分发进入你的手机,比如深圳到长沙10ms,长沙数据中心处理数据3ms,传输到你家5ms,你的wifi传输5ms,你的王者延迟即为21ms,所以我们能接近城市基本网络延迟。当然上述皆为笔者推测,并非实际测试数据,实际每个单节点因该会更快,还有很多细节节点我并不知道。