这篇文章已经过机器翻译.放弃
RTSP 协议的应用程序层网关
实时流协议 (RTSP) 是一种用于传输实时媒体数据的应用级协议。RTSP 是媒体客户端和媒体服务器之间的控制通道协议,用于建立和控制端点点之间的媒体会话。典型的通信是客户端和流媒体服务器之间的通信。
从专用网络到公共网络的流媒体需要通过网络转换 IP 地址和端口号。Citrix ADC 功能包括用于 RTSP 的应用程序层网关 (ALG),该网关可与大型 NAT (LSN) 一起使用,以解析媒体流并进行任何必要的更改,以确保协议在网络上继续工作。
IP 地址转换的执行方式取决于消息的类型和方向,以及客户端-服务器部署支持的媒体类型。消息翻译如下:
- 出站请求-到 Citrix ADC 拥有的公有 IP 地址的私有 IP 地址,称为 LSN 池 IP 地址。
- 入站响应-LSN 池 IP 地址到私有 IP 地址。
- 入站请求-无翻译。
- 出站响应-LSN 池 IP 地址的私有 IP 地址。
注意
Citrix ADC 独立设备、Citrix ADC 高可用性设置以及 Citrix ADC 群集设置均支持 RTSP ALG。
RTSP ALG 的局限性
RTSP ALG 不支持以下内容:
- 多播 RTSP 会话
- 通过 UDP 进行的 RTSP 会话
- TD/行政分区
- RSTP 身份验证
- HTTP 通道
RTSP 和 LSN 场景
下图显示了 RTSP 设置请求流。通常,SENUP 请求指定必须如何传输单个媒体流。请求包含媒体流 URL 和传输说明符。此说明符通常包括一个用于接收 RTP 数据(音频或视频)的本地端口,另一个用于接收 RTCP 数据(元信息)的本地端口。服务器回复通常会确认所选参数并填充缺失的部分,例如服务器选择的端口。在发送聚合播放请求之前,必须使用 SEDENT 命令配置每个媒体流。
在典型的 RTSP 通信中,公用网络中的媒体客户端将 SEUP 请求发送到专用网络中的媒体服务器。RSTP ALG 拦截请求,并在媒体流中,将公有 IP 地址和端口号替换为 LSN 池 IP 地址和 LSN 端口号。下图显示了 Citrix ADC 设备在媒体流中为出站请求执行的转换:
专用网络中的媒体服务器使用 LSN 池 IP 地址和 LSN 端口号发送 200 OK 响应到公用网络中的媒体客户端。Citrix ADC RTSP ALG 拦截响应,并将 LSN 池 IP 地址和 LSN 端口号替换为媒体客户端的公有 IP 地址和端口号。下图显示了 Citrix ADC 设备在媒体流中为入站响应执行的转换:
配置 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