Forum Discussion

liang_14081's avatar
liang_14081
Icon for Nimbostratus rankNimbostratus
Mar 05, 2009

RTSP Load Balancing with RTP&RTCP Persistency

I have a video server load balancing case in our Carrier, and the application protocol is RTSP, the detailed scenario as below:

 

Most clients are behind proxy servers, when the client initiate RTSP request, it sends to load balancer’s video VIP and the destination port is 554 (Standard RTSP protocol), load balancer will distribute to one of the backend video server, when RTSP session is established, server will negotiate four dynamic ports with client, two for audio, two for video, both of those four ports are RTP session base on UDP, my question is F5 can do RTSP session load balancing well, but can F5 do keeping persistency for those four ports sessions, RTP sessions?? I mean, if the RTSP signal load balance to backend video server_1, the RTP sessions (four different dynamic ports sessions on UDP which negotiate between backend video server and client) also can be redirected to same backend server, video server_1? Can we do that??? How??

 

All URLs in RTSP packets are domain name, NOT physical servers’ IP address, the domain name is resolution to the VIP which on AD.

 

Thanks very much for your great help.

 

  • RTSP profile should be able to create all 4 RTP/RTCP udp sessions for you by follow the Transport header sent by server

     

     

    Transport: RTP/AVP;unicast;client_port=6970-6971;server_port=6972-6973;ssrc=000017F8;source=172.16.59.31

     

     

    does RTP go to same server as RTSP? if not, you may need version 10.
  • So if the RTP/RTCP base on UDP protocol send to same server as RTSP, the F5 can understand and keep the ports in its table in the RTSP reply packets, right? If it's NOT same server, how does version 10 handle? Could you please share me something? Thanks very much for your help.
  • BIG-IP checks transport header. let say it is like this

     

    Transport: RTP/AVP;unicast;client_port=6970-6971;server_port=6972-6973;ssrc=000017F8;source=172.16.59.31

     

    then BIG-IP will create entries for communication between client and server in connection table as a combination of

     

    client_port=6970-6971;

     

    and

     

    server_port=6972-6973

     

    if you run command 'bigpipe conn', you should be able to see them listed.

     

    v9 does not honor the source attribute which indicate server address(in this example: source=172.16.59.31) but it is normally same as RTSP anyway.

     

    v10 honor "source" attribute, it also creates entries in connection table but between client and address specified by source attribute (if source attribute does not exist, it will do the same as v9)