?目录
?编辑?
前言?
开篇
概念补充?
?直播原理
真实场景
总结?
前言?
大家好哇!我是爷爷的茶七里香,发现一个很有意思的现象,想必大家也遇到过,我是在跟朋友同时看LOL总决赛直播的时候发现的,当时我跟他连的明明是同一个网络,就不明白他为什么进度比我快,这个时候我的好胜心来了:“不行,我一定要比他快!”,我就刷新了一波,有点效果,但始终没他的快,放弃了,哈哈~
开篇
想必大家对以上说的情况已经是见怪不怪了,今天呢我们就一点一点去挖掘下背后的运作方式,通只有了解了背后的运作原理才能解释这种现象!
概念补充?
?需要大家明白一个概念(这里就拿百度举例):
大家都熟知www.baidu.com,但肯定不知道182.61.200.7,当我们在地址栏输入182.61.200.7的时候也能访问到百度,如图:
当我们访问www.baidu.com实际上访问的是182.61.200.7,那么问题来了:
1. www.baidu.com是什么呢?
? ? ? ? 答:www.baidu.com通俗的讲它是182.61.200.7的名字,这就好像是一个人的名字。
2. 为什么www.baidu.com能够跟182.61.200.7对应上?
? ? ? ? 答:这就要涉及另一个知识点了——DNS域名解析服务器,www.baidu.com就是一个域名,当我们在地址栏输入这个域名之后,先是在本机的缓存里边找有没有这个域名对应的IP地址,如果没有那就需要向DNS服务器发送请求,请求什么呢?当然是请求182.61.200.7这个IP地址啦!在找到了这个IP地址之后它就会返回给我们的浏览器,浏览器再拿着这个IP地址访问百度的服务器!
?直播原理
我这里只是简单的说一下直播的大概原理,但并不是一些直播平台的做法!!!
主播在开了直播之后会向服务器发送直播相关的数据包,张三无聊了想养养眼,通过一个封面进入了直播间,在它进入这个直播间的过程中会走相应的DNS解析域名,然后才访问到对应的服务器拿到了直播的数据,嘿嘿嘿~流程如图:
在现实生活中的网络请求响应过程并没有图片中的那么简单,这个过程当中做了很多努力,如一个请求要经过很多台二层交换机、三层交换机等设备,因此部署链路是一个极其复杂的工程。
真实场景
在我们开始讲现实生活中直播平台的做法之前,需要理解一个概念 —— CDN,CDN也叫内容分发网络,那么它在网络中起着一个什么作用呢??
????????首先我们需要思考下直播为什么能保证那么多人同时观看,对这方面有了解的都知道一个服务器的访问量高与不高取决于这台服务器的配置以及带宽方面的问题,想要做到一台服务器能同时容纳100w用户的话投入比较大,企业没必要。那么企业是通过什么手段来做到的呢?没错,就是CDN,CDN是一个很重要的桥梁,而CDN指的是很多台不同地区的服务器,比如你在北京,那么你访问的ip其实就是北京所在的CDN服务器,如果是你人在上海,那么访问的ip就是上海所在的CDN服务器,前提是CDN厂商在该地区有自己的服务器,这么做可以提高访问速度,假设源服务器是在海外的,那么你的每次访问就要跑到海外去,但是使用了CDN之后就只会访问距离你最近的服务器了,访问速度也提高上去了。
????????那么问题来了,为什么我访问CDN的服务器能取到我想要的直播内容?因为CDN服务器已经把源服务器的直播数据给缓存下来了,只要源服务器交给了CDN去代理,那么它就会自己去请求源服务器然后把那些数据缓存起来,然后每个CDN服务器之间同步缓存的数据;这也就是为什么直播间能同时那么多人观看的原因了。
????????在使用了缓存这个概念提高了访问量的问题之后,它也出现了文章标题所说的问题了,就是明明是同一个网络下,为什么看到的直播进度不一样的问题,这就是缓存数据不是实时同步的,虽然是同一个网络下,但是两台设备请求的目标ip不一样,两台服务器缓存的数据也是不一致的,所以就造成了这种现象,造成这种现象的因素很多,更直接的原因还是网速的问题。
大致流程如图:?
总结?
????????大家对DDOS攻击都不陌生,这种攻击手段基本上是无解的,那么我们当中的一个防御手段就是可以通过CDN进行防御,?DDOS攻击就是对你的服务器传输大量数据包,直到超过服务器所能接受的量,而且在攻击过程中会导致用户无法正常访问你的产品(假如服务器上有部署的话),那么CDN是如何来进行防御的呢?当你使用CDN之后,用户的请求就不是直接通过访问你的服务器来拿到响应数据了,而是从CDN的服务器中取到缓存的数据。
????????总结下来CDN的好处还是挺多的,可以提高访问速度、并发数等等,CDN也能建立在这些优点上做出一些策略帮助你抵御DDOS攻击。?
🥇原创不易,还希望各位大佬支持一下!
👍点赞,你的认可是我创作的动力?!
🌟收藏,你的青睐是我努力的方向!
??评论,你的意见是我进步的财富!?
|