on ti c ra

advertisement
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?
Download