• wms协议翻转的工作原理


    Windows Media Services 依据客户端的具体环境为其选择适当协议的能力称为协议翻转。如果要支持多种客户端版本,支持通过防火墙连接的客户端或通过不同类型的网络连接的客户端,那么协议翻转将很有用。如果服务器上所有可用的服务器控制协议插件(包括 WMS HTTP 服务器控制插件)都已启用,那么协议翻转的效果会达到最佳。

    Windows Media 服务器使用协议翻转的目的是为了与客户端建立最佳的连接。客户端在尝试连接服务器时,会发送有关自身类型以及能支持哪些协议的信息。Windows Media 服务器将该信息与已启用的协议进行比较,然后使用适用于当时情况的最佳协议。通常,服务器和客户端之间的第一次连接尝试是成功的,不需要采取进一步行动。如果该连接请求不成功,那么客户端将尝试使用其他可支持的协议连接到服务器。在每一次协议翻转尝试期间,客户端会经历一段非常短暂、通常不易察觉的延迟时间。

    此外,在客户端尝试与服务器建立新的连接时,将会优先选用客户端在前一次连接中使用的协议。如果您让客户端通过公告访问内容,那么 Microsoft Media 服务器 (MMS) 协议将被自动采用,从而确保在必要时进行协议翻转。

    建议您使用协议翻转,以确保客户端享受到最佳的流式播放体验。如果客户端使用带有 mms:// 前缀的 URL 连接到流,那么协议翻转将在必要时进行。请注意,用户可以在播放机的属性设置中禁用协议。如果播放机只支持一个协议,那么翻转就无法进行。协议翻转中使用的具体逻辑取决于连接服务器的客户端类型。

    Windows Media Player 9 系列应用程序及其更高版本

    当 Windows Media Player 9 系列应用程序及其更高版本或者使用 Windows Media Player 9 系列 ActiveX 控件的播放机尝试通过带有 mms:// 前缀的 URL 连接到服务器时,服务器会自动使用 RTSP。如果服务器上启用了“快速缓存”(所有新发布点的默认情况),那么服务器将首先尝试通过 RTSPT(即采用基于 TCP 的传输方式的 RTSP)连接到客户端。如果播放机不支持该协议,那么服务器将尝试使用 RTSPU(即采用基于 UDP 的传输方式的 RTSP)进行连接。如果该连接也不成功,则在启用了 WMS HTTP 服务器控制协议插件的情况下,服务器将尝试使用 HTTP 协议进行连接。如果没有启用快速缓存,那么在连接客户端时,服务器将首先尝试使用 RTSPU,然后是 RTSPT,最后使用 HTTP。

    早期播放机

    Windows Media Player 的早期版本,如 Windows XP 中的 Windows Media Player,不支持 RTSP 协议。然而,MMS 协议为这些播放机提供了协议翻转支持。因此,当早期版本的播放机尝试使用带有 mms:// 前缀的 URL 连接到服务器时,服务器将自动为播放机协商最佳的协议。服务器将首先尝试使用 MMSU(即采用基于 UDP 的传输方式的 MMS)连接到客户端。如果不支持该协议,那么服务器将尝试使用 MMST(即采用基于 TCP 的传输方式的 MMS)进行连接。如果该连接也不成功,则在启用了 WMS HTTP 服务器控制协议插件的情况下,服务器将尝试使用 HTTP 协议进行连接。

    分发服务器

    当分发服务器尝试连接到源服务器时,不使用协议翻转。分发服务器不能使用带有 mms:// 前缀的 URL 来请求连接到源服务器。如果分发服务器尝试使用 RTSP 进行连接,那么该请求将被转换为 RTSPU。如果必须采用或需要优先使用基于 TCP 的传输方式,那么 URL 中必须使用 rtspt:// 前缀。如果服务器必须使用 HTTP 进行连接,那么 URL 必须使用 http:// 前缀。

    注意

    • 如果 Windows Media 服务器与客户端之间被不能传递 UDP 数据包的防火墙或代理服务器隔开,则应在 WMS 单播数据写入器插件属性中禁用 UDP 数据包传输。试图通过未启用 UDP 的网络组件接收 UDP 传输内容的客户端可能会在协议翻转过程中遇到延迟。
  • 相关阅读:
    操作系统
    MarkDown语法实操
    mac 添加环境变量
    在django中建立mysql数据表时发生的低级错误
    models.Book.object.get()与models.Book.object.filter()区别
    django中数据库操作时distinct的用法
    ‘,’逗号并不是字符串的拼接方式
    django单表操作中update_or_create不能更新多于一个数据的信息
    在python中terminal中建立mysql数据库,无法再models.py 文件中建立数据库信息
    booleanfield()和booleanfield(default=True)在数据库的表中无法插入
  • 原文地址:https://www.cnblogs.com/happyday56/p/1431545.html
Copyright © 2020-2023  润新知