Direct Server Return (DSR) was introduced into the feature set of load balancers or Application Delivery Controllers (ADCs) to deal with a particular potential problem. The core design concept of load balancers is to distribute traffic load across clustered CPUs, RAM, network infrastructure and discs in order to increase network reliability and performance while introducing the benefits of redundancy. Incoming requests are assigned a Virtual IP address or VIP on the load balancer itself, and then the load balancer passes the request to the appropriate server with negligible modification to the packets. The server responds to the load balancer with the required data and then this is relayed onto the client by the load balancer.
Although this is a secure solution, there is a major drawback, which is that incoming requests can be small - for example 20Mbits - but replies are typically up to ten times bigger (200Mbits). As traffic needs to travel the load balancer on high traffic networks, the risk of the load balancer acting as a bottleneck rises considerably and network performance consequently suffers. Hence the requirement for DSR, which modifies the traffic flow by permitting the server to respond directly to the client, relieving the network load balancer of the need to handle the heavy traffic load.
While you may be left scratching your head and thinking you would have to be nuts to use DSR at any time, there are applications where it is very suitable. From the introduction of network load balancers, DSR was identified as being an ideal way to handle UDP applications that deliver streaming of audio or video content through RTSP.
In conclusion, as these are extremely sensitive real time applications, it is not sufficient to implement your load balancers, set up DSR algorithms and just sit back thinking that the job has been done. You will need to carefully check the application performance on each server and assure you have tuned each component in your network to be performing as optimally as possible.