计算机网络④-③/④:流媒体协议:编码/推流/拉流、 P2P协议:.torrent/DHT

应用层(OSI 模型的第七层, TCP 模型的第四层, 即应用层,)还有RTMP、P2P等协议。
1 流媒体协议

视频流中的图片存在:空间冗余、时间冗余、视觉冗余、编码冗余。可以通过编码来压缩视频。

编码应该具有一定的标准:ITU-T(国际电信联盟电信标准化部门)和MPEG(ISO的动态图像专家组)联合制定了H.264/MPEG-4 AVC编码标准。

直播的过程
主播:采样-编码-推流
服务端:接流-流处理-分发
观众:拉流-解码-播放

如何编码
将视频分为三种帧:
I帧-关键帧
P帧-前向预测编码帧
B帧-双向预测内插编码帧

一个视频可以拆分成一系列的帧,每一帧拆分成一些列的片,每一片都放在一个NALU(Network Abstraction Layer Unit,网络提取层单元)里面,NALU之间都是通过特殊的起始标识符分隔的,在每一个I帧的第一片前,要插入单独保存的SPS和PPS的NALU,最终形成一个长长的NALU序列。

推流
使用RTMP推流。
推流的过程是将NALU放在消息里发送,这个消息也称为RTMP(Real Time Messaging Protocol,实时消息传输协议)包。

拉流
客户端建立一个RTMP连接,读取视频流,先读到H.264的解码参数,例如SPS和PPS,然后将收到的NALU组成的一个个帧进行解码,交给播放器播放。

④-③小结:
  ①编码的两大流派达成了一致,都是通过关于时间、空间的各种算法来压缩数据的。
  ②压缩好的数据,为了方便传输会组成一系列的NALU,按照帧和片依次排列。
  ③排列好的NALU在网络传输时,要按照RTMP包的格式进行包装,RTMP包会拆分成块进行传输。
  ④推送到流媒体服务器的视频流经过转码和分发,可以被客户端通过RTMP拉取,然后组合为NALU,解码成视频格式进行播放。

2 P2P协议

FTP协议
文件下载可以通过HTTP,但是速度慢。
还可以通过FTP(File Transfer Protocol,文件传输协议),FTP基于TCP,会建立控制连接和数据连接。

FTP有主动模式(PORT)和被动模式(PASV),这些是在FTP服务器的角度来说的。

P2P Peer to Peer
资源不在集中在某些设备上,而是分散的储存在多台设备上,设备称为Peer。

.torrent文件
.torrent文件由两部分组成,announce(tracker和URL)和文件信息

DHT(Distribute Hash Table,分布式哈希表)
每个加入这个DHT网络的机器,都要负责存储这个网络里的部分资源信息和其他成员的联系信息,相当于所有机器构成了一个庞大的分布式存储数据结构。
DHT的工作方式具体见书P167

④-④小结:
  ①下载一个文件可以使用HTTP或FTP,这两种协议都使用集中下载的方式,而P2P换了一种思路,采用去中心化下载的方式。
  ②P2P也有两种下载方式, 一种是依赖于tracker服务器,即元数据集中,文件数据分散;另一种基于分布式哈希算法,元数据和文件数据全部分散。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值