网络应用(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.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新, ...
随机推荐
- Oracle的select检索数据
--Select语法 select [distinct | All] select_list from table_list [where_clause] [group_by_clause] [Hav ...
- uva 111 History Grading(lcs)
题目描述 在信息科学中有一些是关于在某些条件限制下,找出一些计算的最大值. 以历史考试来说好了,学生被要求对一些历史事件根据其发生的年代顺序来排列.所有事件顺序都正确的学生无疑的可以得满分.但是那些没 ...
- Spring4面向切面AOP
AOP(Aspect Oriented Programming)面向切面编程,通过预编译方式和运行期动态代理实现程序功能的横向多模块统一控制的一种技术.AOP是OOP的补充,是spring框架中的一个 ...
- stl_deque.h
stl_deque.h // Filename: stl_deque.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http:/ ...
- 不要使用Android Studio的Git Commit了---->记一次debug
今天下午写了一些代码,吃晚饭时分用Android Studio commit了一下,不知道有没有选择Commit and push,结果刚才代码出bug我想回滚到上个版本的时候,发现Android S ...
- [原]NYOJ-小光棍数-458
大学生程序代写 /http://acm.nyist.net/JudgeOnline/problem.php?pid=458 *题目458题目信息运行结果本题排行讨论区小光棍数 时间限制:1000 ms ...
- [JSOI 2015] 最大公约数
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4488 [算法] 不妨首先枚举左端点 注意到对于任意一个正整数n , 其质因子个数是l ...
- IDEA发布运行web项目(曾经遇到的项目启动报404)
问题: 配置: 配置 facets ,此步很重要,配置 web resource directories ,路径配错,就会报 404 ,一定要定位到项目根目录,也就是下面有整个项目源码的地方 下面是配 ...
- 标准模板库(STL)学习指南之sort排序
对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思 ...
- 转载 : 10大H5前端框架
原文作者: http://www.cnblogs.com/kingboy2008/p/5261771.html 作为一名做为在前端死缠烂打6年并且懒到不行的攻城士,这几年我还是阅过很多同门从知名到很知 ...