我前面说了流量的概念,流量是使用网络时经常要考虑的一个因素--如何才能更快的使用流量,如何才能节省流量使用的成本,对于这样的问题,你可能要了解一下什么是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的概念的更多相关文章

  1. CDN(Content Distribution Network)概念

    CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节 ...

  2. P2P金融

    P2P金融又叫P2P信贷,是互联网金融(ITFIN)的一种.意思是:点对点. P2P金融指不同的网络节点之间的小额借贷交易(一般指个人),需要借助电子商务专业网络平台帮助借贷双方确立借贷关系并完成相关 ...

  3. 阿里云有对手了!CDN横评:腾讯云优势明显

    如今,云计算产品越来越多,像国内的BAT三大巨头都提供了云主机(腾讯云CVM.阿里云ECS.百度云BCC),另外还有存储.数据库.安全等相关云服务.在这其中,CDN也是一项重要的云服务,CDN指的是内 ...

  4. python练习七—P2P下载

    最近有些事儿比较忙,python的学习就断断续续,这个练习来得比预期的晚,不过还好,不管做什么,我都希望能认真对待,认真做好每一件事. 引入 这个练习原书中称作“使用XML-RPC进行文件共享”,题目 ...

  5. 大直播时代,P2P才是降低成本的必杀技

    在流媒体传输分发领域,CDN和P2P一直是经常被拿来进行对比和讨论的一大热点,虽然不少大型视频企业目前同时使用着CDN和P2P两套分发机制,但相对于CDN,很多人对于P2P技术知之甚少.整体来说,P2 ...

  6. 《c# 实现p2p文件分享与传输系统》 一、 模型

    c#实现P2P文件分享与传输系统 一.模型 P2P的概念大家都不陌生,也就是所谓的“点对点传输”,即不直接通过服务器,在两台或多台客户端之间传输数据,实现信息交流和资源共享.P2P技术已经发展了很多年 ...

  7. 斗鱼 H5 直播原理解析,它是如何省了 80% 的 CDN 流量?

    斗鱼直播相信大家都听说过,打开斗鱼官网就可以直接在浏览器中观看直播.那么斗鱼是如何实现浏览器视频直播的呢?本篇文章就来解析斗鱼是如何实现直播的,以及它是如何节省 80% 的 CDN 流量,要知道视频直 ...

  8. Web 应用架构基础课(转载)

    Web 应用架构基础课 初级 web 应用开发者必学的基础网络架构概念 web 应用主流架构概览 上图便是我司(Storyblocks)网络架构的很好展现.如果你还没成为经验老道的 web 工程师,可 ...

  9. iOS开发——网络篇——HTTP/NSURLConnection(请求、响应)、http响应状态码大全

    一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新, ...

随机推荐

  1. spring学习(1)

    struts是web框架(jsp/action/action) hibernate是orm框架,处于持久层. spring是一个框架,是容器框架.用于配置bean,并维护bean之间关系的一种框架. ...

  2. 英语发音规则---发/i:/的字母及字母组合

    英语发音规则---发/i:/的字母及字母组合 一.总结 一句话总结: 1.字母组合ee发/iː/? bee beef see agree week meeting feel sweet free be ...

  3. jsoup抓取网页内容

    java项目有时候我们需要别人网页上的数据,怎么办?我们可以借助第三方架包jsou来实现,jsoup的中文文档,那怎么具体的实现呢?那就跟我一步一步来吧 最先肯定是要准备好这个第三方架包啦,下载地址, ...

  4. Unity3D连接WCF

    Unity3D连接WCF: 一.最简单的案例 1.VS2015中: (1)建立WCF应用服务程序ForUnity: (2)将自动生成的IService1.cs与Service1.svc删除:   (3 ...

  5. H.264 RTPpayload 格式------ H.264 视频 RTP 负载格式(包含AAC部分解析)

    H.264 RTPpayload 格式------ H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) NALU 头由一个字节组成, 它的语法如下: +------------ ...

  6. 2017.10.1北京清北综合强化班DAY1

    a[问题描述]你是能看到第一题的 friends 呢.——hja何大爷对字符串十分有研究,于是天天出字符串题虐杀 zhx. 何大爷今天为字符串定义了新的权值计算方法.一个字符串 由小写字母组成,字符串 ...

  7. python中http的一些编码转换

    http的数据需要2种编码解码. 1. url中的特殊字符转换, 比如",', :,//等 python3中通过urllib.parse.quote(..)和urllib.parse.unq ...

  8. understanding of Pipe line & Timing Logic

    ///////////////////////////////////////////////////////////////////////////////// module vlg_add(inp ...

  9. IIC编程1:i2c-tools使用

    安装: apt-get install libi2c-dev i2c-tools 检测i2c总线数目 用i2cdetect检测有几组i2c总线在系统上: i2cdetect -l 可以看到系统中有9组 ...

  10. Java标签引起的陷阱

    请看下面的代码,请问下面的代码是否能够通过编译: package com.yonyou.test; /** * 测试类 * @author 小浩 * @创建日期 2015-3-2 */ public ...