120 likes | 313 Views
On the Performance of TCP Splicing for URL-aware Redirection Ariel Cohen, Sampath Rangarajan, and Hamilton Slye The 2 nd USENIX Symposium on Internet Technologies & Systems. Network Computing Lab, EECS, KAIST Hyun-ju Lee. Content. Introduction Solution approach Implementation detail
E N D
On the Performance of TCP Splicing for URL-aware RedirectionAriel Cohen, Sampath Rangarajan, and Hamilton SlyeThe 2nd USENIX Symposium on Internet Technologies & Systems Network Computing Lab, EECS, KAIST Hyun-ju Lee
Content • Introduction • Solution approach • Implementation detail • Performance • Conclusion Network Computing Lab.
Introduction(1) • Overview • Describe the design, implementation and performance of a layer-7 switch which support URL-aware redirection of HTTP traffic • Solution approach • URL-aware switch in the Linux kernel that uses TCP splicing • Contribution • Discuss in detail the design and implementation of URL-aware switch • Show the benefit of TCP splicing for small TCP sessions • Re-affirm the benefit of TCP splicing for transform of large amount of data Network Computing Lab.
Introduction(2) • Basic layer-4 switch • Redirect traffic based on transport-layer(TCP) and network-layer(IP) information • Uses : redirecting web traffic to caches, server load balancing, fault tolerance • URL-aware redirection • Capability of a switch located in front of clients or servers to redirect HTTP requests to servers based on the URL specified by the client in its GET request • Extend the scope of information to layer-7 information • Benefit : direct requests to optimized server, direct requests for dynamic content to live servers, reduce the need for replication Network Computing Lab.
Introduction(3) • Layer-4 switch • Redirect the initial SYN packet from the client to the choosen destination • Redirect all subsequent packets on the connection to the same destination • Use mechanisms such as NAT, PAT • URL-aware redirection • Connection must be established between a client and a switch before application-level information can be received • Approaches • TCP gateway • TCP Connection hop Network Computing Lab.
Introduction(4) • TCP Connection hop • Move the switch side end point of client-switch TCP connection to the server • Establish a direct TCP connection between the client and the server • TCP/IP stack at the back-end server needs to be extended • TCP gateway • Two TCP connections • Establish client-switch TCP connection • Receive GET request from client, Determine destination • Establish switch-server TCP connection • Forward GET request to the destination, receive the response • Transfer the response to the client Network Computing Lab.
Solution approach • TCP gateway • Overhead due to the use of two TCP connection • Go up the protocol stack to the application layer and down the protocol stack • TCP splicing • Once the two TCP connections are established, they are spliced together • IP packets are forwarded from one end point to the other at the network layer • Address translation and sequence number modification is required Network Computing Lab.
Implementation detail(1) • Application-level proxy(proxy-s) • Splice module(sp-mod) • NEPPI(Network Element for Programmable Packet Injector) • Linux ipchains firewall Network Computing Lab.
Establish client-URL- aware proxy TCP connection URL-aware proxy :Receive GET request from client sp-mod : record seq, ack_seq Determine destination Splice commend to sp-mod Send GET request to server Sp-mod : record seq, ack_seq Splice instruction to NEPPI NEPPI : address, sequence # translation All packet are redirected at network layer Implementation detail(2) Network Computing Lab.
Performance(1) • Experiments • run for a period of three minutes with a concurrent HTTP request of 75 • Once all the data is received, a new batch of requests is issued • proxy-s : TCP splicing proxy-ns : do not utilize TCP splicing • Internal / external workload • Proxy-s : significantly higher number of connections(47% higher) & lower CPU utilization Network Computing Lab.
Performance(2) • Impact of using TCP splicing on different file size • The biggest performance gain for large transfers • One might expect to obtain larger number of connections for smaller file (CPU was not fully utilized) Network Computing Lab.
Conclusion • URL-aware redirection switch • Loadable kernel modules for the Linux OS along with a user-level proxy • TCP splicing • Significant performance improvement Network Computing Lab.