网络应用(3):CDN与P2P的概念
我前面说了流量的概念,流量是使用网络时经常要考虑的一个因素--如何才能更快的使用流量,如何才能节省流量使用的成本,对于这样的问题,你可能要了解一下什么是cdn,什么是p2p。
(1)cdn是什么
cdn是一个基于已有的internet网络而进行扩展的网络系统,叫作内容分发网络,content delivery network。
搭建cdn网络的思路,是在网络边缘,也就是接入网络的设备(用户)的地方,增加服务结点,再通过各种策略,把用户划分到不同的cdn结点,并让用户能在最短的时间获取到数据。
为什么可以更快拿到数据?我可以更简单地解释:在没有cdn之前,你需要到经过一个很曲折的小路去看电影,而有了cdn后,cdn直接把电影缓存过来了,而且,cdn就在你面前,你直接看电影就好了,这个道理,跟“就近救援”或“就近配送”是一个道理。所以,cdn的根本就是缓存(而它跟源服务间是高速公路,数据很快就传过来),让用户就近取数据,而不是走长长的小路去取数据--极端一点,每个用户都配一台缓存服务器。
cdn的基本意图,是让用户更快更稳地取得数据。cdn最基本的作用是加速,但随着时代的发展,cdn提供的服务已经远不仅加速的功能,还有预缓存、支持https等诸多功能。
为了提升服务体验,以及其它考虑,很多公司都接入了cdn,或自建cdn。
cdn服务商有很少,比如阿里云cdn、百度、腾讯、七牛、网宿等。
这时,不可避免要考虑一个问题,cdn的使用,是占用带宽的(当然,不使用cdn而使用缓存服务器,也一样占用带宽),而这个带宽的使用,相当使用了运营商修建的道路,是要给钱的。一般来说,按带宽的使用来计费(具体可能按月的带宽峰值,也可能按实际使用来分摊到月,等等。),而在某些场景,比如直播、视频播放等,在客户端从cdn或缓存服务器获取数据时,服务器占用了很大的带宽。
加一个题外话,怎么从流量换算出带宽?一般来说,很容易统计到文件下载(或被试听)的次数,根据文件的大小与一天的下载的次数,就可以算出一天产生的流量,比如小程的服务器的一个语音文件是250kB,如果一天有100次播放,那一天的流量就是(250*100)=25000kB。再把流量分摊到每一秒,就是带宽(bps):25000*1024*8/(24*60*60)=204800000/86400=2370bps,也就是一天占用的带宽是2.3k左右。这是一天的带宽,一般来说,一个月内会产生峰值(比如活动日或周末等),这时的带宽可能是正常的几倍,比如3倍,那就是6.9k。然后,根据这个6.9k来计算要给多少钱(先问一下运营商或cdn服务商,1m带宽要多少钱)。
那么,有没有办法,减少服务器带宽的占用,从而节省费用的开销呢?
(2)p2p是什么
p2p,peer to peer,是点到点的数据交换的网络技术。
对比cdn跟p2p的网络结构,很容易看出它们的差别。对于cdn,客户端之间的数据交换,需要经过cdn服务器来转发,因此,服务器带宽成本是一个问题(如上所述)。对于p2p,客户端之间可以直接交换数据而不经cdn服务器,所以理论上可以大幅节省带宽成本。注意,客户端间直接交换数据,会使用用户的流量,但一般是在wifi或带宽网络下才使用流量,而带宽网络一般是以带宽或速度来收费的,也就是这时使用多少流量并不需要用户来买单。
所以,如果为了节省cdn的带宽成本,p2p是一个可以考虑的技术。
一个简单的p2p应用的结构图是这样的:
网络应用(3):CDN与P2P的概念的更多相关文章
- CDN(Content Distribution Network)概念
CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节 ...
- P2P金融
P2P金融又叫P2P信贷,是互联网金融(ITFIN)的一种.意思是:点对点. P2P金融指不同的网络节点之间的小额借贷交易(一般指个人),需要借助电子商务专业网络平台帮助借贷双方确立借贷关系并完成相关 ...
- 阿里云有对手了!CDN横评:腾讯云优势明显
如今,云计算产品越来越多,像国内的BAT三大巨头都提供了云主机(腾讯云CVM.阿里云ECS.百度云BCC),另外还有存储.数据库.安全等相关云服务.在这其中,CDN也是一项重要的云服务,CDN指的是内 ...
- python练习七—P2P下载
最近有些事儿比较忙,python的学习就断断续续,这个练习来得比预期的晚,不过还好,不管做什么,我都希望能认真对待,认真做好每一件事. 引入 这个练习原书中称作“使用XML-RPC进行文件共享”,题目 ...
- 大直播时代,P2P才是降低成本的必杀技
在流媒体传输分发领域,CDN和P2P一直是经常被拿来进行对比和讨论的一大热点,虽然不少大型视频企业目前同时使用着CDN和P2P两套分发机制,但相对于CDN,很多人对于P2P技术知之甚少.整体来说,P2 ...
- 《c# 实现p2p文件分享与传输系统》 一、 模型
c#实现P2P文件分享与传输系统 一.模型 P2P的概念大家都不陌生,也就是所谓的“点对点传输”,即不直接通过服务器,在两台或多台客户端之间传输数据,实现信息交流和资源共享.P2P技术已经发展了很多年 ...
- 斗鱼 H5 直播原理解析,它是如何省了 80% 的 CDN 流量?
斗鱼直播相信大家都听说过,打开斗鱼官网就可以直接在浏览器中观看直播.那么斗鱼是如何实现浏览器视频直播的呢?本篇文章就来解析斗鱼是如何实现直播的,以及它是如何节省 80% 的 CDN 流量,要知道视频直 ...
- Web 应用架构基础课(转载)
Web 应用架构基础课 初级 web 应用开发者必学的基础网络架构概念 web 应用主流架构概览 上图便是我司(Storyblocks)网络架构的很好展现.如果你还没成为经验老道的 web 工程师,可 ...
- iOS开发——网络篇——HTTP/NSURLConnection(请求、响应)、http响应状态码大全
一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新, ...
随机推荐
- node 渲染html模板配置
node 渲染html模板配置 安装swig模块 npm install swig--save - dev 加载swig模块 var swig = require('swig'); 模板配置 //第一 ...
- thinkphp3.2新部署是错
下载好thinkphp3.2,使用M或者D方法是,报FILE: tp\ThinkPHP\Library\Think\Db.class.php LINE: 42 可能的错误是,配置文件中没有配置数据库连 ...
- 维度表, 事实表, 数据仓库, BI...
以前一直对维度表, 事实表, 数据分析, BI等概念等有一些模糊. 这几天的学习终于让这些有了一些眉目了: 维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进 ...
- windows 10 安装 spark 环境(spark 2.2.1 + hadoop2.7)
安装步骤基本参考 Spark在Windows下的环境搭建.不过在安装新版本 spark2.2.1(基于 hadoop2.7)的配置时,略略有一些不同. 1. sqlContext => spar ...
- PS色调— —通道混合
clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); Image=im ...
- jQuery插件:图片放大镜--jQuery Zoom
本文转载于http://blog.csdn.net/xinhaozheng/article/details/4085644, 这是一款非常不错的给图片添加放大镜效果,可以应用在诸如zen cart,m ...
- 本地windows安装memcached服务
1.安装到系统服务中: 在doc中:执行此软件 memcached.exe -d install(如果提示错误,要找到cmd.exe用管理员身份打开) 安装后在,服务里吗就有个服务了,如果没有启动,点 ...
- Windows cmd findstr
/********************************************************************************** * Windows cmd fi ...
- js基础:关于Boolean() 与 if
最近面试比较多,但每次我问这个问题的时候,答出来的同学并不多 var a = 0; if( a) { alert(1); } 这个问题有部分人会答alert(1), 有些人会答不执行. 结果是不执 ...
- 【队列】最大值减去最小值小于等于num的子数组数量
摘自<程序员代码面试指南> 题目: 给定数组 arr 和整数 num, 共返回有多少个⼦数组满⾜如下情况:max(arr[i...j]) - min(arr[i...j]) <= n ...