当前位置: 首页 > news >正文

旅游网站建设的论文/商丘网站优化公司

旅游网站建设的论文,商丘网站优化公司,百年建筑网官网,做的好的c2c网站一、概念与摘要 RTMP协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频、视频和互动内容)。RTMP提供了一套全双工的可靠的多路复用消息服务,类似于TCP协议[RFC0793]&…

一、概念与摘要

RTMP协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频、视频和互动内容)。RTMP提供了一套全双工的可靠的多路复用消息服务,类似于TCP协议[RFC0793],用来在一对结点之间并行传输带时间戳的音频流,视频流,数据流。通常情况下,不同类型的消息会被分配不同的优先级,当网络传输能力受限时,优先级用来控制消息在网络底层的排队顺序。

二、RTMP块流

实时消息传递协议块流(RTMP块流)。它作为一款高级多媒体流协议提供了流的多路复用和打包服务。RTMP块流被设计用来传输实时消息协议,它可以使用任何协议来发送消息流。每个消息都包含时间戳和有效类型标识。RTMP块流和RTMP适用于各种视听传播的应用程序,包括一对一的,和一对多的视频直播、点播服务、互动会议应用程序。

当使用一个可靠的传输协议如TCP[RFC0793]时,RTMP块流提供了一种可以在多个流中,基于时间戳的端到端交付所有消息的方法。RTMP块流不提供任何优先级或类似形式的控制,但可以使用更高级别的协议来提供这样的优先级。例如,一个视频服务器可以根据发送的时间或确认每个消息的时间,来决定为一个网络差的用户丢弃视频信息,以确保音频信息的及时接收。

RTMP块流不仅包含了自己的协议控制信息,同时也提供了一个更高级别的协议机制,用来嵌入用户控制信息。

消息格式

消息格式可以被分割成多个块,用来在更高的协议中支持多路复用。在创建块消息格式时,应该包含以下字段:

时间戳
消息的时间戳。这个字段占用4字节。

长度
消息的有效长度。如果消息头不能被忽略,它应该包括长度。这个字段在块头中占用3字节。

类型ID
各种类型的协议控制消息的ID。这些消息使用RTMP块流协议和更高级别的协议来传输信息。所有其他类型的ID可以用在高级协议,这对于RTMP块流来说,是不透明的。事实上,RTMP块流中没有要求使用这些值作为类型;所有(无协议的)消息可能是相同的类型,或者应用程序使用这个字段来区分多个连接,而不是类型。这个字段在块头中占用1字节。

消息流ID
消息流ID可以是任意值。当同一个块流被复用到不同的消息流中时,可以通过消息流ID来区分它们。另外,对于RTMP块流而言,这是一个不透明值。该字段占用4字节,使用小端序。

握手

RTMP连接从握手开始。它包含三个固定大小的块,不像其他的协议,是由头部大小可变的块组成的。

客户端(初始化连接的一端)和服务端发送同样的三个块。为了方便描述,客户端发送的三个块命名为C0,C1,C2;服务端发送的三个块命名为S0,S1,S2。  

握手序列

客户端通过发送C0和C1消息来启动握手过程。客户端必须接收到S1消息,然后发送C2消息。客户端必须接收到S2消息,然后发送其他数据。

服务端必须接收到C0或者C1消息,然后发送S0和S1消息。服务端必须接收到C1消息,然后发送S2消息。服务端必须接收到C2消息,然后发送其他数据。

C0和S0格式

C0和S0包由一个字节组成,下面是C0/S0包内的字段:

                              0 1 2 3 4 5 6 7+-+-+-+-+-+-+-+-+|   version     |+-+-+-+-+-+-+-+-+C0 and S0 bits

版本(8比特)
在C0包内,这个字段代表客户端请求的RTMP版本号。在S0包内,这个字段代表服务端选择的RTMP版本号。此文档使用的版本是3。版本0-2用在早期的产品中,现在已经被弃用;版本4-31被预留用于后续产品;版本32-255(为了区分RTMP协议和文本协议,文本协议通常以可打印字符开始)不允许使用。如果服务器无法识别客户端的版本号,应该回复版本3。客户端可以选择降低到版本3,或者中止握手过程。

C1和S1格式

C1和S1包长度为1536字节,包含以下字段:

      0                   1                   2                   30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|                        time (4 bytes)                         |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|                        zero (4 bytes)                         |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|                        random bytes                           |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|                         random bytes                          ||                            (cont)                             ||                             ....                              |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+C1 and S1 bits

时间(4字节)
本字段包含一个时间戳,客户端应该使用此字段来标识所有流块的时刻。时间戳取值可以为零或其他任意值。为了同步多个块流,客户端可能希望多个块流使用相同的时间戳。

零(4字节)
本字段必须为零。

随机数据(1528字节)
本字段可以包含任意数据。由于握手的双方需要区分另一端,此字段填充的数据必须足够随机(以防止与其他握手端混淆)。不过没必要为此使用加密数据或动态数据。

C2和S2格式

C2和S2包长度为1536字节,作为C1和S1的回应,包含以下字段:

      0                   1                   2                   30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|                        time (4 bytes)                         |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|                       time2 (4 bytes)                         |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|                        random echo                            |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|                         random echo                           ||                            (cont)                             ||                             ....                              |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+C2 and S2 bits

时间(4字节)
本字段必须包含对端发送的时间戳。

时间(4字节)
本字段必须包含时间戳,取值为接收对端发送过来的握手包的时刻。

随机数据(1528字节)
本字段必须包含对端发送过来的随机数据。握手的双方可以使用时间1和时间2字段来估算网络连接的带宽和/或延迟,但是不一定有用。

三、RMTP握手

握手过程示意图

+-------------+                           +-------------+
|    Client   |       TCP/IP Network      |    Server   |
+-------------+            |              +-------------+|                    |                     |
Uninitialized              |               Uninitialized|          C0        |                     ||------------------->|         C0          ||                    |-------------------->||          C1        |                     ||------------------->|         S0          ||                    |<--------------------||                    |         S1          |Version sent              |<--------------------||          S0        |                     ||<-------------------|                     ||          S1        |                     ||<-------------------|                Version sent|                    |         C1          ||                    |-------------------->||          C2        |                     ||------------------->|         S2          ||                    |<--------------------|Ack sent                |                  Ack Sent|          S2        |                     ||<-------------------|                     ||                    |         C2          ||                    |-------------------->|Handshake Done            |               Handshake Done|                    |                     |Pictorial Representation of Handshake握手示意图

下面是握手示意图中提到的状态:

未初始化
协议版本号在此阶段发送。客户端和服务器均处于未初始化状态。客户端发送携带协议版本号的C0包。如果服务器支持此版本,回复S0和S1包。如果服务器不支持此版本,使用适当的动作回复。在RTMP协议中,此动作是中止连接。
注: 在”C0和S0格式”章节中提及,如果服务器不支持客户端的版本号,可以选择降到版本3或中止。

发送版本
客户端和服务器双方在未初始化状态后,会进入发送版本状态。之后,客户端等待S1包,服务器等待C1包。待接收到数据包,客户端发送C2包,服务器发送S2包。然后,双方都进入答复状态。客户端等待C2的答复,服务器等待S2的答复。

握手完成
客户端和服务器交换消息。

 

http://www.lbrq.cn/news/1024921.html

相关文章:

  • 自己做网站卖衣服/下载百度免费
  • 高端品牌男鞋/seo快速排名优化方式
  • 腾讯云做网站/成都网站seo技巧
  • 网站建设学习/seo软件推广
  • 学做网站论坛vip视频/引流推广营销
  • 业余做网站/合理使用说明
  • 网上车辆租赁网站怎么做/阿里巴巴怎么优化关键词排名
  • 时时彩 网站开发/seo的优化流程
  • phpwind能做网站吗/百度推广代理商返点
  • 做网站卖酒/网上写文章用什么软件
  • 杂志排版设计用什么软件/优化公司怎么优化网站的
  • 做动漫主题的网站/腾讯企点注册
  • 建设网站需要提前准备的条件/查网站关键词工具
  • 做第三方网站注意什么/市场营销推广方案
  • 中国宁波网/免费seo关键词优化服务
  • 政府网站建设管理现状 申论/刷排名seo软件
  • 哈尔滨cms模板建站/拼多多关键词排名查询工具
  • 本网站服务器设在美国服务器保护/如何做企业网页
  • 网站优化的学习/推广普通话的手抄报
  • 一个域名怎么用来做多个网站/爱站网挖掘词
  • 阿里云可以做网站吗/seo单页快速排名
  • 定制型网站制作/青岛今天发生的重大新闻
  • 上海网站自然排名优化价格/中视频自媒体平台注册官网
  • 玩弄已婚熟妇做爰网站/下载百度安装到桌面
  • 做网站一个月可以赚多少钱/站长工具同大全站
  • 肇庆高端模板建站/谷歌官网入口手机版
  • 做网站卖产品投资大嘛/新软件推广
  • 网站建设找天宇智能/互联网营销是什么意思
  • 成都网站建设树莓/seo页面内容优化
  • 网站优化前景/百度学术论文查重入口
  • 无人机智能跟踪模块设计与运行分析
  • 【深度学习】深度学习的四个核心步骤:从房价预测看机器学习本质
  • 智能门锁:安全与便捷的现代家居入口
  • 【慕伏白】CTFHub 技能树学习笔记 -- 基础知识 签到
  • Spring Boot项目调用第三方接口的三种方式比较
  • VUE基础笔记