这篇文章已经过机器翻译.放弃
RTSP 协议的应用程序层网关
实时流媒体协议 (RTSP) 是用于传输实时媒体数据的应用程序级协议。RTSP 是媒体客户端和媒体服务器之间的控制信道协议,用于建立和控制端点之间的媒体会话。典型的通信是在客户端和流媒体服务器之间。
将媒体从专用网络传输到公共网络需要通过网络转换 IP 地址和端口号。NetScaler 功能包括适用于 RTSP 的应用层网关 (ALG),该网关可与大规模 NAT (LSN) 一起使用,以解析媒体流并进行任何必要的更改,以确保协议继续在网络上运行。
IP 地址转换的执行方式取决于消息的类型和方向,以及客户端-服务器部署支持的媒体类型。消息翻译如下:
- 出站请求 — NetScaler 拥有的公有 IP 地址的专用 IP 地址,称为 LSN 池 IP 地址。
- 入站响应-LSN 将 IP 地址汇集为专用 IP 地址。
- 入站请求—不进行翻译。
- 出站响应-LSN 池 IP 地址的专用 IP 地址。
注意
NetScaler 独立设备、NetScaler 高可用性设置以及 NetScaler 群集设置都支持 RTSP ALG。
RTSP ALG 的局限性
RTSP ALG 不支持以下内容:
- 多播 RTSP 会话
- UDP 上的 RTSP 会议
- TD/管理员分区
- RSTP 身份验证
- HTTP 通道
RTSP 和 LSN 场景
通常,RTSP SETUP 请求会指定必须如何传输单个媒体流。该请求包含媒体流 URL 和传输说明符。该说明符通常包括一个用于接收 RTP 数据(音频或视频)的本地端口,以及另一个用于接收 RTCP 数据(元信息)的本地端口。服务器回复通常会确认所选参数并填补缺失的部分,例如服务器选择的端口。在发送聚合播放请求之前,必须使用 SETUP 命令配置每个媒体流。
在典型的 RTSP 通信中,公共网络中的媒体客户端向专用网络中的媒体服务器发送 SETUP 请求。RSTP ALG 拦截请求,并在媒体流中将公有 IP 地址和端口号替换为 LSN 池 IP 地址和 LSN 端口号。
专用网络中的媒体服务器使用 LSN 池 IP 地址和 LSN 端口号向公共网络中的媒体客户端发送 200 OK 响应。NetScaler RTSP ALG 拦截响应,将 LSN 池 IP 地址和 LSN 端口号替换为媒体客户端的公有 IP 地址和端口号。
配置 RTSP ALG
将 RTSP ALG 配置作为 LSN 配置的一部分。有关配置 LSN 的说明,请参阅 LSN 的配置步骤。配置 LSN 时,请确保:
- 添加 LSN 池时,将 NAT 类型 设置为确定性或动态。
- 添加 LSN 应用程序配置文件时设置以下参数:
- IP 共享 = 已配对
- 地址和端口映射 = 与端点无关
- 过滤 = 与端点无关
- 创建 RTSP ALG 配置文件并将 RTSP ALG 配置文件绑定到 LSN 组
RTSP ALG 配置示例:
以下示例配置演示了如何使用单个订阅者网络、单个 LSN NAT IP 地址和 RTSP ALG 设置创建简单的 LSN 配置:
enable ns feature WL SP LB CS LSN
Done
add lsn pool pool1 -nattype DETERMINISTIC
Done
bind lsn pool pool1 10.102.218.246
Done
add lsn client client1
Done
bind lsn client client1 -network 200.200.200.11 -netmask 255.255.255.0
Done
add lsn appsprofile app1 TCP -ippooling PAIRED -mapping ENDPOINT-INDEPENDENT -filtering ENDPOINT-INDEPENDENT
Done
add lsn appsprofile app2 UDP -ippooling PAIRED -mapping ENDPOINT-INDEPENDENT -filtering ENDPOINT-INDEPENDENT
Done
bind lsn appsprofile app1 1-65535
Done
bind lsn appsprofile app2 1-65535
Done
add lsn rtspalgprofile rtspalgprofiledefault -rtspIdleTimeout 1000 -rtspportrange 554
Done
add lsn group group1 -clientname client1 -nattype DETERMINISTIC -portblocksize 512 -rtspalg ENABLED
Done
bind lsn group group1 -poolname pool1
Done
bind lsn group group1 -appsprofilename app1
Done
bind lsn group group1 -appsprofilename app2
Done
bind lsn group group1 -rtspalgprofilename rtspalgprofiledefault
Done