Presented by Dan Goldshlack October 1, 2001 HTTP/TCP Interaction • Multiplexing TCP Connections • Server Overheads – Aborting Transfers – Nagle’s Algorithm – Delayed Acknowledgements • HTTP/TCP Layering – Retransmission Timer – Slow-start Restart – TIME_WAIT State • Introduction • TCP Timers Overview • usually only server side – Reclaiming state after connection termination • usually only client side – Repeating the slow-start phase • client and server side – Lost packet retransmission • Operations that involve the TCP timers: TCP Timers SYN 3 sec SYN Loss Loss 6 sec SYN Loss 12 sec SYN SYN-ACK – Mostly caused by congestion window size • Web Transfer Delay Client Server – 3-way handshake • TCP Connection Delay Retransmission Timer – Disable timer – Make timeout longer – Dynamic congestion window – Pace transmission packets • How does this affect persistent connections? • Ways to reduce the restart penalty Slow-start Restart – Change TCP – Change HTTP • Why is this state needed? • Effect on web servers • Reducing overhead TIME_WAIT State – Aborted HTTP Transfers – Nagle’s algorithm – Delayed Acknowledgements • Some issues that can apply to both the HTTP and the TCP layers: HTTP/TCP Layering – FIN packet abort – RST packet abort • HTTP has no support for aborts • How does a user’s abort command impact web performance? • Details of TCP connection abort: Aborted HTTP Transfers • • • • Made for older protocols Reduces amount of small packets Usability with persistent connections Why not just disable it? Nagle’s Algorithm Client Server response response response ACK Delayed-ACK timeout ACK • Why delay ACK packets? • Interaction with HTTP traffic (short) response Delayed Acknowledgements – Fairness – Server load – Latency • Problems with multiple connections? – Images with webpages – Proxies – Fooling the congestion window • What is good about using more than one connection for the web? Multiplexing TCP Connections • Limit simultaneous connections • Close persistent connections • GET requests • Send Header & Body with one call • Send Response and FIN with one call – Multiple system calls for single operations – Some can be combined: • System call overhead Server Overheads • Multiplexing TCP Connections • Server Overheads – Aborting Transfers – Nagle’s Algorithm – Delayed Acknowledgements • HTTP/TCP Layering – Retransmission Timer – Slow-start Restart – TIME_WAIT State • Introduction • TCP Timers Review Any Questions?