The application delivery controller is a key component within enterprise and cloud data centers to improve availability, security and performance of applications. Application delivery controllers (ADCs) provide functions that optimize delivery of enterprise applications across the network. ADCs provide functionality for both user-to-application and application-to-application traffic, and effectively bridge the gap between the application and underlying protocols and traditional packet-based networks. This market evolved from the load-balancing systems that were developed in the latter half of the 1990s to ensure the availability and scalability of websites. Enterprises use ADCs today to improve the availability, scalability, end-user performance, data center resource utilization, security of their applications.