当 流媒体服务器有上百台, 需要动态的选择一台均衡负载最小的服务器, 或者选择一台离客户端机器最近的一台服务器提供流服务的时候,我们可以利用 rtsp协议的redirect 机制进行重定向,这样的话, 我们可以通过入口机进行分发重定向。
实现原理很简单:
client -> server 发出 rtsp请求
服务器收到请求后, 取出 客户端的 IP 地址, 根据客户端的IP地址, 判断客户端所在的地区, 在客户端所在地的服务器中选择一台负载最小的服务器。
通过 redirect 协议 的Location , 指定重定向的新地址即可完成任务。
RTSP/1.0 301 Moved
CSeq : 2
Location: rtsp://192.168.2.33/mp4/f1.ts
客户端收到该协议描述, 既会连接新的服务器进行流请求。
问题解答:
Transport: RTP/AVP;unicast;client_port=3008-3009
Authorization: Basic YWRtaW46YWRtaW4=
User-Agent: bestilyq
URI中带有streamid=0,表示对该通道进行设置。
Transport参数设置了传输模式。RTP/AVP/TCP表示通过TCP传输RTP包,RTP/AVP/UDP表示使用UDP传输RTP包。unicast表示单播。interleaved值有两个:0和1,0表示RTP包,1表示RTCP包,接收端根据interleaved的值来区别是哪种数据包。client_port值有3008和3009,3008表示客户端接收RTP包的端口,3009表示客户端接收RTCP包的端口,服务端要分别将RTP包和RTCP包发送到这两个端口。