If you are using Load balancer, you know that LB can be single point of failure. Moreover, load baancer needs to handle both direction traffic. Assume the response to a http request which will be multi-fold higher in size. Load balancer needs to handle this traffic although return traffic doesn't need any load balancing logic. DSR tries to handle this case more efficiently.
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.
In DSR mode, the load-balancer routes packets to the backends without changing anything in it but the destination MAC address.
The backends process the requests and answer directly to the clients, without passing through the load-balancer.
Load balancer can't do SSL offload. Note that SSL offload needs both side traffic
Persistence will be restricted to source IP or destination IP methods, so no cookie based persistence.
WAF (Web Application firewall) can't be implemented at LB. WAF needs both side traffic
Acceleration technique like compression can't be done.
Backend server optimisation like TCP multiplexing can't be achieved. Note that for TCP multiplexing , traffic should end to LB and then
https://www.quora.com/Load-Balancing-What-is-DSR
http://blog.haproxy.com/2011/07/29/layer-4-load-balancing-direct-server-return-mode/
http://www.ingmarverheij.com/citrix-netscaler-dsr-poor-mans-load-balancing-solution/
https://www.haproxy.com/blog/layer-4-load-balancing-direct-server-return-mode/