原文出處:http://blog.csdn.net/langeldep/article/details/6229995
當 流媒體服務器有上百臺, 需要動態的選擇一臺均衡負載最小的服務器, 或者選擇一臺離客戶端機器最近的一臺服務器提供流服務的時候,我們可以利用 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包發送到這兩個端口。