With the growth of the speed of and access to the Internet, the use of networked or cloud-based applications have grown substantially. Even though there is an increase in the speed of the network, latencies presented to networked applications are often unacceptable and result in lowering user experience. In this paper, we review the state of the art techniques that optimize network latency. These techniques include caching, prefetching, data deduplication, compression, and protocol optimization.