12 Nov 07 CS 622 1 DHTTP: An Efficient and Cache- Friendly Transfer Protocol for the Web By Michael Rabinovich and Hua Wang Presented by Jerry Usery.

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Advertisements

Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Transmission Control Protocol (TCP)
Intermediate TCP/IP TCP Operation.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Chapter 7 – Transport Layer Protocols
TELE202 Lecture 14 TCP/UDP (2) 1 Lecturer Dr Z. Huang Overview ¥Last Lecture »TCP/UDP (1) »Source: chapter 17 ¥This Lecture »TCP/UDP (2) »Source: chapter.
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
Hypertext Transfer Protocol Kyle Roth Mark Hoover.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
1 Web Proxies Dr. Rocky K. C. Chang 6 November 2005.
Computer Networks Transport Layer. Topics F Introduction  F Connection Issues F TCP.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
Process-to-Process Delivery:
CS 218 F 2003 Nov 3 lecture:  Streaming video/audio  Adaptive encoding (eg, layered encoding)  TCP friendliness References: r J. Padhye, V.Firoiu, D.
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
Lect3..ppt - 09/12/04 CIS 4100 Systems Performance and Evaluation Lecture 3 by Zornitza Genova Prodanoff.
The Network Layer. Network Projects Must utilize sockets programming –Client and Server –Any platform Please submit one page proposal Can work individually.
1 IP: putting it all together Part 2 G53ACC Chris Greenhalgh.
Rensselaer Polytechnic Institute Shivkumar Kalvanaraman, Biplab Sikdar 1 The Web: the http protocol http: hypertext transfer protocol Web’s application.
Jaringan Komputer Dasar OSI Transport Layer Aurelio Rahmadian.
TCP/IP: Basics1 User Datagram Protocol (UDP) Another protocol at transport layer is UDP. It is Connectionless protocol i.e. no need to establish & terminate.
IP and Errors IP Best Effort Datagrams can be: –Lost –Delayed –Duplicated –Delivered out of order –Corrupted.
Protocol(TCP/IP, HTTP) 송준화 조경민 2001/03/13. Network Computing Lab.2 Layering of TCP/IP-based protocols.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
1 7-Oct-15 OSI transport layer CCNA Exploration Semester 1 Chapter 4.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
The Case for Persistent-Connection HTTP Telecommunication System LAB 최 명길 Western Research Laboratory Research Report 95/4 (Proceedings of the SIGCOMM.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
University of the Western Cape Chapter 12: The Transport Layer.
Fundamentals of Computer Networks ECE 478/578 Lecture #19: Transport Layer Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
1 The Internet and Networked Multimedia. 2 Layering  Internet protocols are designed to work in layers, with each layer building on the facilities provided.
Routers and Routing Basics CCNA 2 Chapter 10.
Sockets process sends/receives messages to/from its socket
Copyright 2002, S.D. Personick. All Rights Reserved.1 Telecommunications Networking II Topic 20 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Transport Layer Moving Segments. Transport Layer Protocols Provide a logical communication link between processes running on different hosts as if directly.
CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
Chapter 2 Applications and Layered Architectures Sockets.
TCP/IP Honolulu Community College Cisco Academy Training Center Semester 2 Version 2.1.
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
Networking Basics CCNA 1 Chapter 11.
CSC 600 Internetworking with TCP/IP Unit 5: IP, IP Routing, and ICMP (ch. 7, ch. 8, ch. 9, ch. 10) Dr. Cheer-Sun Yang Spring 2001.
Measuring the Capacity of a Web Server USENIX Sympo. on Internet Tech. and Sys. ‘ Koo-Min Ahn.
Web Services. 2 Internet Collection of physically interconnected computers. Messages decomposed into packets. Packets transmitted from source to destination.
Transport Layer: Sliding Window Reliability
1 COMP 431 Internet Services & Protocols HTTP Persistence & Web Caching Jasleen Kaur February 11, 2016.
1 Transport Layer: Basics Outline Intro to transport UDP Congestion control basics.
Networks, Part 2 March 7, Networks End to End Layer  Build upon unreliable Network Layer  As needed, compensate for latency, ordering, data.
79 Sidevõrgud IRT 4060/ IRT 0020 vooruloeng 8 / 3. nov 2004 Vooülekanne Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
1 Kyung Hee University Chapter 11 User Datagram Protocol.
Data Communications and Networks Chapter 6 – IP, UDP and TCP ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
1 Network Communications A Brief Introduction. 2 Network Communications.
1 14-Jun-16 S Ward Abingdon and Witney College CCNA Exploration Semester 1 OSI transport layer CCNA Exploration Semester 1 Chapter 4.
Process-to-Process Delivery:
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public 1 OSI transport layer CCNA Exploration Semester 1 – Chapter 4.
UDP: User Datagram Protocol. What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host – treats a computer as an.
The Transport Layer Implementation Services Functions Protocols
How HTTP Works Made by Manish Kushwaha.
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Process-to-Process Delivery:
Transport Protocols An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Process-to-Process Delivery: UDP, TCP
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Presentation transcript:

12 Nov 07 CS DHTTP: An Efficient and Cache- Friendly Transfer Protocol for the Web By Michael Rabinovich and Hua Wang Presented by Jerry Usery

12 Nov 07 CS Overview Introduction Introduction DHTTP protocol DHTTP protocol Implications of DHTTP Implications of DHTTP Server design Server design Performance analysis Performance analysis Future work Future work Summary Summary

12 Nov 07 CS Introduction Two issues addressed Two issues addressed 1) Violation of end-to-end principle by interception caches (Web proxies) 1) Violation of end-to-end principle by interception caches (Web proxies) Impersonation of origin servers Impersonation of origin servers Web interactions may be disrupted Web interactions may be disrupted 2) Performance implications of client-initiated TCP (Transmission Control Protocol) as transport protocol 2) Performance implications of client-initiated TCP (Transmission Control Protocol) as transport protocol HTTP generally conceived as file transfer protocol HTTP generally conceived as file transfer protocol TCP connection overhead, persistence & pipelining TCP connection overhead, persistence & pipelining

12 Nov 07 CS Introduction Interception Cache

12 Nov 07 CS Introduction Performance Implications TCP connection overhead, persistence & pipelining penalties TCP connection overhead, persistence & pipelining penalties Persistent connections Persistent connections Degradation of throughput and increasing connections Degradation of throughput and increasing connections Pipelined transmissions Pipelined transmissions Server must maintain connections, send responses in order Server must maintain connections, send responses in order Head-of-line delays can occur with slow responses Head-of-line delays can occur with slow responses

12 Nov 07 CS Introduction Main Ideas of DHTTP Two main ideas of DHTTP (Dual-Transport HTTP protocol) Two main ideas of DHTTP (Dual-Transport HTTP protocol) 1) Split Web traffic between UDP (User Datagram Protocol) and TCP 1) Split Web traffic between UDP (User Datagram Protocol) and TCP Client typically sends requests via UDP Client typically sends requests via UDP Server sends response via UDP or TCP Server sends response via UDP or TCP Response size Response size Network conditions Network conditions 2) Server establishes TCP connection to client 2) Server establishes TCP connection to client

12 Nov 07 CS Introduction UDP vs TCP UDP use for short responses UDP use for short responses Reduced number of open server connections Reduced number of open server connections Reduced number of TCP connection setups Reduced number of TCP connection setups DHTTP benefits DHTTP benefits Improves client latency Improves client latency Fewer Web interactions wait for connections Fewer Web interactions wait for connections Increases server capacity Increases server capacity Servers manage fewer open connections Servers manage fewer open connections Remaining TCP connections reserved for larger objects Remaining TCP connections reserved for larger objects Improved utilization of TCP connections Improved utilization of TCP connections Ordering constraints of pipelining doesn’t exist Ordering constraints of pipelining doesn’t exist

12 Nov 07 CS Introduction DHTTP Server-established TCP connections TCP connection client/server roles reversed TCP connection client/server roles reversed Some firewall implications (existing countermeasures suffice) Some firewall implications (existing countermeasures suffice) Benefits Benefits Retains end-to-end Internet principle Retains end-to-end Internet principle True interception cache IP address use True interception cache IP address use Allows arbitrary deployment of interception caches Allows arbitrary deployment of interception caches Server-initiated TCP reduces message round trips (even with initial UDP request) Server-initiated TCP reduces message round trips (even with initial UDP request) Message round trips decreases with UDP Message round trips decreases with UDP Bottleneck process removed (server-accepted TCP connections) Bottleneck process removed (server-accepted TCP connections)

12 Nov 07 CS DHTTP Protocol Web clients and servers listen on two ports Web clients and servers listen on two ports One UDP, one TCP One UDP, one TCP Servers use well-known ports (or URL-specified) Servers use well-known ports (or URL-specified) Clients use ephemeral ports (short-lived, per download) Clients use ephemeral ports (short-lived, per download) Two channels exist between client and server Two channels exist between client and server UDP used for requests below 1460 bytes UDP used for requests below 1460 bytes Most HTTP requests met Most HTTP requests met Server opens TCP connection or reuses open one for larger messages Server opens TCP connection or reuses open one for larger messages If TCP request sent by client, server may use it If TCP request sent by client, server may use it

12 Nov 07 CS DHTTP Protocol Message Exchange (a) HTTP (b) DHTTP over UDP (c) DHTTP over TCP

12 Nov 07 CS DHTTP Protocol Message Format Description Response may arrive to client out of order Response may arrive to client out of order Client assigns request ID, then matches it Client assigns request ID, then matches it Client advises server of listening port numbers Client advises server of listening port numbers Channel’s source port number included in IP header already Channel’s source port number included in IP header already UDP request contains client’s TCP port number UDP request contains client’s TCP port number TCP request contains client’s UDP port number TCP request contains client’s UDP port number Flag field used for duplicate (resend) requests Flag field used for duplicate (resend) requests

12 Nov 07 CS DHTTP Protocol Message Format (a) – Request (b) – Response

12 Nov 07 CS DHTTP Protocol Reliability Reliability DHTTP stipulates that a client may resend UDP requests DHTTP stipulates that a client may resend UDP requests Lessens overhead Lessens overhead Fighting denial-of-service attacks beyond paper’s scope Fighting denial-of-service attacks beyond paper’s scope Nonidempotent (e-commerce, etc) requests Nonidempotent (e-commerce, etc) requests Delegated to TCP channel Delegated to TCP channel Congestion control Congestion control DHTTP responds to any resent client requests via TCP DHTTP responds to any resent client requests via TCP Aids packet loss issues Aids packet loss issues In congested Internet experiments, only 6% of responses sent via UDP In congested Internet experiments, only 6% of responses sent via UDP

12 Nov 07 CS DHTTP Protocol Channel Selection/Algorithm Response size Response size Network condition Network condition Server maintains “fresh requests” and “resent requests” counters Server maintains “fresh requests” and “resent requests” counters Loss threshold parameter “L” (currently 1%) Loss threshold parameter “L” (currently 1%) Size threshold parameter “S” (1460 bytes, default) Size threshold parameter “S” (1460 bytes, default) Algorithm Algorithm 1) Choose TCP for all large responses, i.e., whose size exceeds S, as well as for all resent requests. 2) If the ratio of resent request counter to fresh request counter exceeds L, enter a “high-loss” mode, else enter a “low-loss” mode. 3) In the low-loss mode, choose UDP for all small responses, i.e., those below the size threshold S. 4) In the high-loss mode, choose TCP for the 1-L fraction of small responses and UDP for the remaining L small responses.

12 Nov 07 CS DHTTP Implications DHTTP and Interception Caches DHTTP and Interception Caches DHTTP interception caches intercept UDP requests – TCP requests pass through DHTTP interception caches intercept UDP requests – TCP requests pass through Client is aware it speaks with cache Client is aware it speaks with cache Retains end-to-end principle (even with caching) Retains end-to-end principle (even with caching) DHTTP uses UDP channel for short requests DHTTP uses UDP channel for short requests Reduces TCP setup costs, connections, response time Reduces TCP setup costs, connections, response time DHTTP allows client or server to unilaterally close TCP connection DHTTP allows client or server to unilaterally close TCP connection Ensures no in-transit data exists Ensures no in-transit data exists

12 Nov 07 CS DHTTP Implications Server Design Description Master process Master process Accepts incoming requests Accepts incoming requests Three threads Three threads ReadRequest thread ReadRequest thread Reads incoming UDP request, copies into global buffer Reads incoming UDP request, copies into global buffer PipeRequest thread PipeRequest thread Pipes global buffer requests to worker processes Pipes global buffer requests to worker processes Global buffer moves requests ASAP so UDP port buffer will not fill up, requests don’t get dropped Global buffer moves requests ASAP so UDP port buffer will not fill up, requests don’t get dropped Maintenance thread checks worker process status every second Maintenance thread checks worker process status every second If too few idle worker processes, it forks new ones If too few idle worker processes, it forks new ones If too many, it kills some If too many, it kills some

12 Nov 07 CS DHTTP Implications Server Design Description Worker processes Worker processes Execute individual requests, respond to clients Execute individual requests, respond to clients Reads pipe requests, generates response, chooses UDP or TCP, sends response Reads pipe requests, generates response, chooses UDP or TCP, sends response If TCP connection chosen and one exists to client, it reuses it If TCP connection chosen and one exists to client, it reuses it One TCP connection per client, possibly many clients One TCP connection per client, possibly many clients Includes Timeout thread Includes Timeout thread Closes TCP connections idle > timeout period Closes TCP connections idle > timeout period

12 Nov 07 CS DHTTP Implications Server Design Modified Apache Web server

12 Nov 07 CS Performance Analysis Three-pronged performance study Three-pronged performance study Trace-driven simulation Trace-driven simulation Measured number/utilization of TCP connections experienced by server (HTTP and DHTTP) Measured number/utilization of TCP connections experienced by server (HTTP and DHTTP) Benchmarked Apache HTTP/DHTTP servers with clients on same LAN Benchmarked Apache HTTP/DHTTP servers with clients on same LAN Compared peak performance and scalability Compared peak performance and scalability Tested both servers in WAN environment with congested Internet connection Tested both servers in WAN environment with congested Internet connection

12 Nov 07 CS Performance Analysis Simulation Used access log from AT&T low-end hosting services Used access log from AT&T low-end hosting services Three month duration Three month duration Contained over 100 million accesses Contained over 100 million accesses Average response size of 13 K Average response size of 13 K Two threshold values used Two threshold values used 4 K, optimistic value for many small Web responses 4 K, optimistic value for many small Web responses 1460 bytes, conservative value, one Ethernet MTU (maximum transfer unit) 1460 bytes, conservative value, one Ethernet MTU (maximum transfer unit)

12 Nov 07 CS Performance Analysis Simulation Number of TCP connections at a server with three connections per client

12 Nov 07 CS Performance Analysis Simulation Connection utilization with three connections per client

12 Nov 07 CS Performance Analysis Simulation Number of TCP connections at a server with one connection per client

12 Nov 07 CS Performance Analysis Simulation Connection utilization with one connection per client

12 Nov 07 CS Performance Analysis Prototyped Testing Results Apache performance (bottleneck at server) (a) Throughput with three connections per client (b) Latency with three connections per client

12 Nov 07 CS Performance Analysis Prototyped Testing Results Apache performance (bottleneck at server) (c) Throughput with one connection per client (d) Latency with one connection per client

12 Nov 07 CS Performance Analysis Prototyped Testing Results DHTTP server performance (bottleneck at server) (a) Throughput with three connections per client (b) Latency with three connections per client

12 Nov 07 CS Performance Analysis Prototyped Testing Results DHTTP server performance (bottleneck at server) (c) Throughput with one connection per client (d) Latency with one connection per client

12 Nov 07 CS Performance Analysis Performance Comparison Comparison of Apache and DHTTP servers (a) Throughput (b) Latency

12 Nov 07 CS Performance Analysis Performance Comparison Apache and DHTTP server performance under network congestion (a) Throughput (b) Latency

12 Nov 07 CS Performance Analysis Performance Comparison Effectiveness of congestion detection in DHTTP server

12 Nov 07 CS Future Work Dividing response among several UDP packets Dividing response among several UDP packets Likely allows higher size thresholds Likely allows higher size thresholds Building native support for nonidempotent requests Building native support for nonidempotent requests Investigation of finer algorithms that track network conditions at the client and/or subnet Investigation of finer algorithms that track network conditions at the client and/or subnet Dynamic policies for size threshold selection Dynamic policies for size threshold selection High-loss vs low-loss environments High-loss vs low-loss environments

12 Nov 07 CS Summary Introduction Introduction DHTTP protocol DHTTP protocol Implications of DHTTP Implications of DHTTP Server design Server design Performance analysis Performance analysis Future work Future work Summary Summary