艾巴生活网

您现在的位置是:主页>科技 >内容

科技

体系中hls是什么标准_hls协议是什么?hls协议详细介绍

2024-05-11 19:49:46科技帅气的蚂蚁
摘要:HTTP Live Streaming(简称HLS)是苹果公司提出的基于HTTP的流媒体网络传输协议。今天主要讲讲HLS协议的一些原理。HLS协议简介HTTP

体系中hls是什么标准_hls协议是什么?hls协议详细介绍

摘要:HTTP Live Streaming(简称HLS)是苹果公司提出的基于HTTP的流媒体网络传输协议。今天主要讲讲HLS协议的一些原理。

HLS协议简介HTTP Live Streaming(简称HLS)是苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果QuickTime X和iPhone软件系统的一部分。它的工作原理是将整个流分成基于HTTP的小文件来下载,每次只下载几个。当播放媒体流时,客户端可以选择以不同的速率从许多不同的备份源下载相同的资源,从而允许流媒体会话适应不同的数据速率。启动流媒体会话时,客户端将下载包含元数据的扩展M3U (m3u8)播放列表文件,以查找可用的媒体流。

HLS只请求基本的HTTP消息。与实时传输协议(RTP)不同,HLS可以通过任何允许HTTP数据通过的防火墙或代理服务器。使用内容分发网络传输媒体流也很容易。

苹果将HLS协议视为互联网草案(逐步提交),第一阶段已作为非正式标准提交给IETF。然而,即使苹果偶尔提交一些小的更新,IETF也没有采取任何进一步的行动来制定这个标准。

在HLS的整体架构之上是HLS的整体架构图。可以看到总共有三个部分:服务器、CDN、客户端。

HLS协议规定了要求1。文章的打包格式是TS。

2.文章编码格式为H264,音频编码格式为MP3、AAC或AC-3。

3.除了TS文章文件本身,还定义了用于控制回放的m3u8文件(文本文件)。

苹果为什么提出HLS协议?事实上,其主要目的是解决《RTMP议定书》中存在的一些问题。例如,RTMP协议不使用标准的HTTP接口来传输数据,因此在一些特殊的网络环境中,它可能会被防火墙阻止。但由于HLS传输数据使用的是HTTP协议,所以不会被防火墙屏蔽(不会有连80接口都不放过的防火墙)。

此外,由于负载的原因,RTMP是一个有状态协议,很难平滑扩展文章服务器,因为需要为每个播放文章流的客户端维护状态。而HLS是基于无状态协议(HTTP)的,客户端只是按顺序下载存储在服务器中的常用TS文件,和常用HTTP文件服务器的负载均衡一样简单。

另外,HLS协议本身实现了速率适配,不同带宽的设备可以自动切换到最适合自己速率的文章播放。其实HLS最大的优势就是他爸是苹果。苹果只在自己的IOS设备上提供HLS原生支持,放弃flash。安卓也是被苹果的“邪力”逼着原生支持HLS。这样一来,Adobe的flv、rtmp等文章解决方案需要额外的努力才能在移动设备上播放。当然,flash在移动设备上造成的性能压力真的是它自身的问题。

但是,HLS也有一些不可逾越的坑。比如使用HLS协议文章的文章延迟时间不能小于10秒,而RTMP协议的延迟时间可以低至0.10-310.194秒。因此,对于文章延迟敏感的业务,请慎用HLS。

HLS的请求流程:1 http请求m3u8的url。

服务器返回一个m3u8播放列表,实时更新,一般一次给五条数据的url。

3客户端解析m3u8的播放列表,然后请求每个片段的url,以便获得ts数据流。

RSA应该先用概率算法验证随机生成的大整数是否为素数,这样速度更快,可以剔除大部分非素数。如果一个数通过了这个测试,那么应该使用一个精确的测试来确保它确实是一个质数。

另外,这样求出的P和Q必须满足一定的要求。第一,它们不能太近,p-1或q-1的因子也不能太小,否则N很快就能分解。

另外,寻找素数的算法不能给攻击者任何信息,如何找到这些素数,尤其是生成随机数的软件一定要非常好。需求是随机的,不可预测的。这两个要求是不一样的。一个随机过程可能产生一系列不相关的数字,但如果有人能预测(或部分预测)这个序列,那就不靠谱了。比如有一些非常好的随机数算法,但是已经发表了,所以不能用,因为如果攻击者能猜出P和Q的一半比特,那么他们就能很容易地计算出另一半。

此外,密钥D必须足够大。1990年,证明了如果P大于Q小于2q(这是很常见的情况),那么就可以很有效地由N和E计算出D。此外,永远不要使用e=2。

因为运算速度是用大数计算的,所以RSA最快的情况,无论是用软件还是硬件实现,都比DES慢好几倍。速度一直是RSA的短板。一般来说,它只用于加密少量数据。RSA的速度比对应相同安全级别的对称密码算法慢1000倍左右。

与DES和其他对称算法相比,RSA的速度要慢得多。实际上,Bob通常使用一种对称算法来加密他的信息,然后使用RSA来加密他的更短的对称密码,然后将RSA加密的对称密码和对称算法加密的消息发送给Alice。

这样对随机数的要求更高,尤其是生成对称密码,因为否则对称密码可以绕过RSA直接被攻击。

与其他加密过程一样,密钥分发对于RSA分发公钥非常重要。分发公钥的过程必须能够抵御替换它们的攻击。假设Eve给了Bob一个公钥,并让Bob相信这是Alice的公钥,并且她可以截获Alice和Bob之间的信息传输,那么她就可以把自己的公钥传给Bob,Bob认为这是Alice的公钥。Eve可以拦截Bob发送给Alice的所有消息,用自己的密钥解密消息,读取消息,然后用Alice的公钥加密消息发送给Alice。理论上,爱丽丝和鲍勃都不会发现伊芙偷听他们的新闻。今天,人们普遍使用数字认证来防止这种攻击。

RSA的缺点1)生成密钥很麻烦,受限于素数生成技术,很难做到一次一密。

2)安全性,RSA的安全性依赖于大数的因式分解,但并没有从理论上证明破译RSA的难度与大数因式分解的难度是等价的,密码学中大多数人倾向于认为因式分解不是NP问题。

3)速度太慢。由于RSA的包长太大,为了保证安全性,n至少要600比特,使得运算成本非常高,尤其是速度慢,比对称密码算法慢几个数量级;而且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。

RSA的安全性首先我们来讨论一下RSA密码为什么难以破解。

在RSA密码学的应用中,公钥KU是公开的,即e和n的值可以被第三方窃听者获得。破解RSA密码的问题是从已知的e和n (n等于pq)的值中求d的值,从而得到私钥来破解密文。从上面的公式:d e-1 (mod((p-1)(q-1))或de1 (mod((p-1)(q-1))可以看出,密码破解的本质问题是从Pq的值中找出(p-1)和(q-1)。换句话说,只要找到p和q的值,就可以找到d的值,得到私钥。

当p和q是大素数时,从它们的乘积pq分解出因子p和q是公认的数学问题。比如pq大到1024位的时候,至今还没有人能用任何计算工具来完成因式分解的任务。所以RSA提出近20年,经过各种攻击的考验,逐渐被人们接受。它被普遍认为是目前最好的公钥方案之一。

然而,虽然RSA的安全性依赖于大数的因式分解,但并没有从理论上证明破译RSA的难度等同于大数因式分解的难度。即RSA的一大缺陷是理论上无法把握其保密性能。

此外,RSA还有一些缺点:a)生成密钥非常麻烦,受素数生成技术的限制,很难做到一次一密。b)包长太大,为了保证安全,n至少要600比特,使得运算成本非常高,特别是速度慢,比对称密码算法慢几个数量级;而且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。所以RSA只能加密少量数据,大量数据加密依赖于对称加密算法。

例子描述在这篇科普短文中,无法从数学上严格证明RSA算法的正确性,但我们可以通过一个简单的例子来了解RSA的工作原理。为了方便计算。在下面的例子中,只选取了具有十进制值的素数p、q和e,假设用户A需要通过RSA对明文“密钥”进行加密,然后传输给用户B,过程如下:

(1)设计公钥和私钥(e,n)和(d,n)。

设p=3,q=11,得到n=pq=311=33;f(n)=(p-1)(q-1)=210=20;取e=3,(3和20互质),则ed1 mod f(n),即3d1 mod 20。

怎么求d的值?你可以通过试错找到它。试验结果如下表所示:

通过试算,我们发现当d=7时,ed1 mod f(n)的同余方程成立。因此,我们可以使d=7。所以我们可以设计一对公钥和私钥。加密密钥(公钥)为KU=(e,n)=(3,33),解密密钥(私钥)为KR=(d,n)=(7,33)。

(2)英语的数字化。

将明文信息数字化,并在每个块中分组两个数字。假设简明英语字母码表是按字母顺序排列的,即:

那么分组密钥的明文信息就是:11,05,25。

(3)明文加密

用户加密密钥(3,33)将数字化的明文分组信息加密成密文。来自C Me(mod n):

所以对应的密文信息是:11,31,16。

(4)密文解密。

用户B收到密文,如果解密,只需要计算,即:

用户B获取的明文信息为:11,05,25。根据上面的编码表,我们将其转换成英文,我们得到了还原的原始“密钥”。

你看,它的原理可以解释的这么简单!

当然,实际应用要比这复杂得多,因为RSA算法的公钥和私钥长度(模长)只能保证1024位甚至2048位。所以P、Q、E的选取,公钥和私钥的生成,加解密的模指数运算都有一定的计算过程,需要计算机高速完成。