互联网的早期主要是基于点对点的系统。这是一个由学者和研究人员构成的网络,连接到这个网络的计算机都是同等的,因为每台计算机都提供了尽可能多的信息。在点对点连接的初期,不需要考虑快速传输大型文件。
随着互联网的发展,客户端-服务器模式开始占据主导地位,特别是HTTP的出现和万维网。在这个系统中,角色与消费者分离,作为“客户端”连接到网络上某个“服务器”,从那里获取内容和数据。为了服务大量的观众,需要有很多这样的服务器。就在这个时候,大文件传输成为了这个模式的一个固有问题。
随着这个模式中需求的增加,性能降低,而脆弱性提高。相同数量的服务器不仅要更快地传输大型文件,而且还要满足众多客户端的需求。共享不断增长的负载自然会减少每个客户端可用的性能。另外,这样的系统本质上是脆弱的。使用服务器上的单一内容源,您会引入单点故障,这可能导致应用程序完全停止运行。
因此,出现了像内容分发网络(CDN)这样的技术,以跨多个内容源整合和复用服务器容量,以帮助快速进行大文件共享。难以预测的突发需求可以更容易地共享,更靠近客户的能力建设可以提高性能。这样的创新使早期的客户端-服务器模式更加健壮,但要付出很高的文件共享成本。
然而尽管效率低下,客户端服务器模式今天仍然占主导地位。常见的客户端-服务器模式示例包括大部分Web内容,搜索引擎,云计算应用程序,甚至包括FTP和rsync之类的通用工具。
点对点是传输文件的最快方法 点对点系统本质上是不同的,并且是传输文件的最快方法。在P2P文件传输系统中,每个“消费者”也是一个“生产者”。使用客户端服务器模式的语言,每个参与者都是“客户端”和“服务器”。通过这种方式,点对点系统不仅可以快速传输大型文件,而且可以自然扩展。随着对任何内容的需求增加,更多的供应也随之增加。随着需求的增长,P2P连接系统变得非常容错,并且对于大型文件实际上变得更快,这与客户端服务器模式形成了鲜明的对比,后者在相同情况下变得更慢且更脆弱。
总结本节,点对点具有以下优点:更快一些,更坚固一些,它减轻了服务器上的负载,这是对基础架构的有效利用,点对点大型文件传输的实际应用。
通过一个具体的示例,本节将研究大型文件传输中的点对点始终比任何客户端-服务器体系结构都更快。为了以一种简单的方式解释该技术,我们将进行以下假设。我们要通过P2P连接传输的文件有五个块。每台计算机都有一个连接通道,每个通道可以发送一个块。
我们有一个发送方,需要将数据发送到四个设备A,B,C和D(接收方)。
阶段1-分割档案:
发送方将文件拆分为独立的片段,并创建一个描述片段的元数据块。在我们的示例中,文件由5个部分组成。我们将每个部分标记为彩色点:Red,Green,Yellow,Blue和Black。
阶段2-接收文件:
接收方请求文件元数据。当接收方获取元数据时,他们知道有问题的文件包含五部分,目前只有发送方拥有它们。
阶段3-读取文件:
每个周期,接收方从文件中随机选择一个,然后开始下载。这一直持续到每个接收方都拥有文件的每个部分为止。
那么,传输数据需要几个周期?
使用客户端-服务器体系结构需要花费大约三倍的时间。接收方将仅从发送方下载作品。在P2P文件传输示例中,大部分都是来自其他接收方。让我们考虑一个真实的例子来说明这些差异。 使用P2P架构:仅7个周期
使用客户端-服务器体系结构:20个周期
快速文件传输和P2P的真实示例
假设我们有一台服务器和十个客户端,它们都通过1 Gbps网络连接。我们需要向所有计算机发送一个100GB的文件。点对点解决方案将在17分钟内完成大文件传输。相比之下,客户端-服务器方法将花费一个多小时。随着您对此P2P速度系统(具有更大的文件或更多的参与者)的需求增加,这两种模型之间的性能差异将越来越大。
关于P2P和快速文件共享的结论
速度和健壮性对现代业务至关重要。对于几乎所有数据分发任务,点对点 解决方案始终比客户端-服务器(点对点)传输更快。当数据大小和业务规模(位置或端点的数量)变大时,差异就很大。
下面介绍一下镭速的点对点传输 根据客户端是否在同一网络环境,点对点传输技术实现的难易程度有所不同。镭速传输利用先进的技术,深入挖掘点对点传输技术原理,找到了突破口,并且进行了技术再升级,速度再提升。
同一网络环境下:
假设内网接口1000M,局域网带宽10M,带宽利用率均为50%,客户端A与客户端B在同一内网络环境中,如下图所示。
同一网络环境下
如果用普通的文件传输方法,需要A将文件先上传至服务器,B再从服务器上下载,而且传输将在网络带宽10M的情况下进行。而通过点对点传输,A与B可以直接建立通信,文件传输充分利用内网网络带宽1000M,传输效率可以实现100X提升。
镭速(私有化部署方案,也可接入公有云,企业、社会组织用户可申请免费试用)点对点传输技术 镭速传输Raysync,镭速点对点传输技术与Raysync超高速传输协议相结合,网络带宽得到充分利用,带宽利用率能达到96%以上,传输再加速,能够实现TB级大数据及海量数据极速传输。
公网
不同网络环境下:
客户端A与客户端B在两个不同的网络环境中,它们需要尝试连接目标端,判断是否能够穿透网络建立通信。根据客户端的不同,客户端之间进行点对点传输的方法有:中继(Relaying)、逆向链接(Connection reversal)、UDP打洞(UDP hole punching)技术。通过下面这份特性对比表,我们可以先简单了解到这几种方法的特性及适用场景。
在浏览器中打开
方法
特点
适用场景
中继
通过服务器中转数据,不需要穿透NAT,但会增加服务器的负载和网络延迟
无法直接连接或穿透NAT的情况
逆向链接
通过服务器协调,让两个客户端交换角色,让主动连接的一方变为被动接受的一方,反之亦然
一方是完全锥形NAT,另一方是任意类型NAT的情况
UDP打洞
通过服务器协调,让两个客户端同时向对方发送UDP数据包,从而在NAT上创建出通道,实现直接通信
两方都是完全锥形NAT或地址限制锥形NAT的情况
针对以上点对点传输方法,镭速传输开启点对点传输时会优先尝试直接连接目标端的方式,如果无法直接连接则再使用逆向连接或UDP打洞的方式连接,如果都无法连接对端,则会通过服务器中转(中继)的方式传输。全程自动优选最佳传输方式,减轻网络负担,实现网络资源的充分利用。