In-class Paper Review #2 “Improving World Wide Web Latency” By Venkata N. Padmanabhan Department of Computer Science Southern Illinois University Edwardsville.

Slides:



Advertisements
Similar presentations
1 Transport Protocols & TCP CSE 3213 Fall April 2015.
Advertisements

CCNA – Network Fundamentals
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
Transport Layer – TCP (Part2) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
HyperText Transfer Protocol (HTTP)
EEC-484/584 Computer Networks Lecture 6 Wenbing Zhao
Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP  FTP  SMTP / POP3 / IMAP  Focus on client-server.
Chapter 2: Application Layer
Page: 1 Director 1.0 TECHNION Department of Computer Science The Computer Communication Lab (236340) Summer 2002 Submitted by: David Schwartz Idan Zak.
EEC-484/584 Computer Networks Discussion Session for HTTP and DNS Wenbing Zhao
HyperText Transfer Protocol (HTTP) Computer Networks Computer Networks Spring 2012 Spring 2012.
1 Web Proxies Dr. Rocky K. C. Chang 6 November 2005.
Internet and Intranet Protocols and Applications Section V: Network Application Performance Lecture 11: Why the World Wide Wait? 4/11/2000 Arthur P. Goldberg.
Web, HTTP and Web Caching
Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP  FTP  SMTP / POP3 / IMAP  Focus on client-server.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
HTTP Performance Objective: In this problem, we consider the performance of HTTP, comparing non-persistent HTTP with persistent HTTP. Suppose the page.
Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP  FTP  SMTP / POP3 / IMAP  Focus on client-server.
CS332 Ch. 28 Spring 2014 Victor Norman. Access delay vs. Queuing Delay Q: What is the difference between access delay and queuing delay? A: I think the.
Process-to-Process Delivery:
Department of Computer Science Southern Illinois University Edwardsville Dr. Hiroshi Fujinoki and Kiran Gollamudi {hfujino,
The Transport Layer.
Chapter 4. After completion of this chapter, you should be able to: Explain “what is the Internet? And how we connect to the Internet using an ISP. Explain.
Week 11: Application Layer1 Web and HTTP First some jargon r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,…
2: Application Layer1 Web and HTTP First some jargon Web page consists of base HTML-file which includes several referenced objects Object can be HTML file,
1 Computer Communication & Networks Lecture 28 Application Layer: HTTP & WWW p Waleed Ejaz
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking Introducing the Application Layer 0.
Protocol(TCP/IP, HTTP) 송준화 조경민 2001/03/13. Network Computing Lab.2 Layering of TCP/IP-based protocols.
The Case for Persistent-Connection HTTP Telecommunication System LAB 최 명길 Western Research Laboratory Research Report 95/4 (Proceedings of the SIGCOMM.
Computer Networks Performance Metrics. Performance Metrics Outline Generic Performance Metrics Network performance Measures Components of Hop and End-to-End.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
Section 5: The Transport Layer. 5.2 CS Computer Networks John Mc Donald, Dept. of Computer Science, NUI Maynooth. Introduction In the previous section.
Transmission Control Protocol TCP. Transport layer function.
Hui Zhang, Fall Computer Networking Web, HTTP, Caching.
Chapter 12 Transmission Control Protocol (TCP)
CS 164: Slide Set 2: Chapter 1 -- Introduction (continued).
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 8 Omar Meqdadi Department of Computer Science and Software Engineering University of.
HyperText Transfer Protocol (HTTP) RICHI GUPTA CISC 856: TCP/IP and Upper Layer Protocols Fall 2007 Thanks to Dr. Amer, UDEL for some of the slides used.
CSE 461 HTTP and the Web. This Lecture  HTTP and the Web (but not HTML)  Focus  How do Web transfers work?  Topics  HTTP, HTTP1.1  Performance Improvements.
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
Networking Fundamentals. Basics Network – collection of nodes and links that cooperate for communication Nodes – computer systems –Internal (routers,
Network Protocols: Design and Analysis Polly Huang EE NTU
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications  app architectures  app requirements r 2.2 Web and HTTP.
Web Services. 2 Internet Collection of physically interconnected computers. Messages decomposed into packets. Packets transmitted from source to destination.
Transmission Control Protocol (TCP) BSAD 146 Dave Novak Sources: Network+ Guide to Networks, Dean 2013.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
1 COMP 431 Internet Services & Protocols HTTP Persistence & Web Caching Jasleen Kaur February 11, 2016.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
EEC-484/584 Computer Networks Lecture 4 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
HyperText Transfer Protocol (HTTP) Deepti Kulkarni CISC 856: TCP/IP and Upper Layer Protocols Fall 2008 Acknowledgements Professor Amer Richi Gupta.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
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).
COMPUTER NETWORKS Hwajung Lee. Image Source:
CSEN 404 Introduction to Networks Amr El Mougy Lamia AlBadrawy.
Lecture 5 Internet Core: Protocol layers. Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP 
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Block 5: An application layer protocol: HTTP
COMP2322 Lab 6 TCP Steven Lee Mar 29, 2017.
Quick UDP Internet Connections
5. End-to-end protocols (part 1)
Vocabulary Prototype: A preliminary sketch of an idea or model for something new. It’s the original drawing from which something real might be built or.
Magda El Zarki Professor, ICS UC, Irvine
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Computer Communication & Networks
Process-to-Process Delivery:
Hypertext Transfer Protocol (HTTP)
Process-to-Process Delivery: UDP, TCP
CSCI-351 Data communication and Networks
Presentation transcript:

In-class Paper Review #2 “Improving World Wide Web Latency” By Venkata N. Padmanabhan Department of Computer Science Southern Illinois University Edwardsville Spring, 2006 Dr. Hiroshi Fujinoki CS 587 High-Speed Networks Padmanabhan/000

CS 587 High-Speed Networks Padmanabhan/001 Problems in HTTP (HTTP 1.0) = The required time after a web user makes a request for a web page until the page is (completely) displayed at the user’s local monitor Possible contributing factors in latency Transmission bandwidth Network congestion (due to high queuing delay at intermediate routers) Client/server host resources (we can never transmit more than link capacity) The problem addressed by the author Latency Example Transmitting a 1 Mbyte file across a 1Mbps link Never be less than 1 second Propagation delay The author claims that this is the most serious limiting factor in web latency

CS 587 High-Speed Networks Padmanabhan/002 Why is “propagation delay” is the most significant factor? Propagation delay is a function of the constant propagation speed of light It is the factor money can not improve anything  It is proportional to the physical end-to-end distance  If the distance becomes doubled, the latency will be doubled  You can not improve it by upgrading to a faster hardware  Reducing traffic load will not reduce the latency  Even transmitting 1 bit over a coast-to-coast will take at least 70 ms using the fastest Internet backbone (> 10Tbps)

CS 587 High-Speed Networks Padmanabhan/003 The two approaches used by the author to improve web latency Hide the propagation delay, if it is impossible to eliminate There are some delay components that are impossible to eliminate, then, try to hide it. Approach #2 Approach #1 Eliminate the propagation delay as much as possible. If there is unnecessary delay components and if it is Possible to eliminate, eliminate it!

CS 587 High-Speed Networks Padmanabhan/004 The three techniques the author proposed to hide the web latency  HTTP 1.1 Persistent Connection  HTTP 1.1 Pipelining  Pre-fetching web pages in conjunction client-side caching Already officially adopted in HTTP 1.1 Pre-fetch prediction algorithm Implementation in HTTP Backward compatibility is important Implemented by most of the web browsers

CS 587 High-Speed Networks Padmanabhan/005 How to eliminate latency? Eliminate unnecessary message round-trips in HTTP. Analysis Phase #1 Understand the essences in HTTP (HTTP 1.0) (The author called this “a brief sketch of the HTTP protocol” (page 3)) HTTP protocol is layered over a reliable bidirectional byte stream (i.e., socket) normally TCP. Each HTTP interaction consists of a request sent from a client to the server, followed by a response sent from the server (i.e., client-server model). Client requests are implemented by: - Methods (GET, POST, etc) - URL (Universal Resource Locator) - HTTP header (Specific data structure to transmit client information)

CS 587 High-Speed Networks Padmanabhan/006 Analysis Phase #1 (continued) Client requests are parsed by the server The server takes the action(s) according to the specified method. The server sends a response to the client (meta-information) The server sends a status code HTTP 200 OK HTTP 404 Page Not Found HTTP 500 Access Refused content-length The server transmits the content of a web page (just a file)

CS 587 High-Speed Networks Padmanabhan/007 Analysis Phase #1 (continued) Web Browser Web Server Connection request for a stream socket (=TCP) accept connect Socket type: AF_INET SOCK_STREAM

CS 587 High-Speed Networks Padmanabhan/008 Analysis Phase #1 (continued) Web Browser Web Server A socket (= TCP) connection as a bi-directional data channel

Web Browser CS 587 High-Speed Networks Padmanabhan/009 Analysis Phase #1 (continued) Web Server URL: Method: GET index.html HTTP/1.0 HTTP header Parse the client request Take the requested action Transmit a result status code (HTTP 200 OK) HTTP 200 OK Transmit server-side meta-information Context-length Contents of a file Transmit the contents of the requested web file

CS 587 High-Speed Networks Identify unnecessary round trips Analysis Phase #2 Eliminate unnecessary message round-trips in HTTP, but we need to identify which round-trips are unnecessary. client server SYN SYN-ACK ACK DAT ACK DAT ACK DAT      FIN ACK FIN ACK SYN SYN-ACK ACK DAT 0 RTT 1 RTT 2 RTT 3 RTT 4 RTT Establish stream socket TCP 3-way handshake Transmit GET request for index.html top page ACK can be piggy-backed to the GET payload packet Receive the top page Parse other required files Establish stream socket TCP 3-way handshake Transmit GET request for another file Receive the requested page TCP prepares data structure for a connection Server establishes a connection Server accesses its local HDD Server drops the connection TCP prepares data structure for a connection Padmanabhan/010

CS 587 High-Speed Networks Padmanabhan/012 Which round-trips are unnecessary? How can we eliminate those unnecessary round trips?? Padmanabhan said, “almost all of the unnecessary round trips may be eliminated by surprisingly simple changes in HTTP protocol. Analysis Phase #2 (continued)

CS 587 High-Speed Networks Padmanabhan/013 Analysis Phase #2 (continued) Significant expected benefits in eliminating unnecessary round-trips (page 5) Reducing number of round-trips Shorter web latency Reducing processing overhead at both client and server Reducing connections - Allocating new ports - Creating/deleting TCP data structures - Creating/deleting processes/threads Reducing application-level workload - Overhead for authentication - Overhead for message encryption Less probability of request refusal due to the max. # of TCP connections Significant for busy/popular web servers The author described these to convince The significance of his proposed solutions

CS 587 High-Speed Networks Padmanabhan/014 Analysis Phase #2 (continued) TCP TIME_WAIT and CLOSE_WAIT TCP TIME_WAIT: A host waits for up to a few minutes (4 min. in default) after FIN message has been released. For a busy/popular web server, the number of TCP connections opened (and those still not dropped) will quickly hit the max. number of connections allowed at a server host.

CS 587 High-Speed Networks Padmanabhan/015 Analysis Phase #2 (continued) At a busy/popular web server host, the TCP connections (entries in the TCP connection management table) tend to increase in a short time.

CS 587 High-Speed Networks Padmanabhan/016 Another thought to convince the importance in reducing the number of round-trips The average file size in web application is very small  Use of a subjective word - Mean document size is 13 Kbytes (12,925 bytes) - The median is 1.77 Kbytes (1,770 bytes) - 12,727 messages are zero-contents message (TCP+IP header only) The statistics from 200,000 HTTP retrievals say: Most of the files are less than 1.7KB. Occasional large files Only 40 bytes in a message

CS 587 High-Speed Networks Padmanabhan/017 Another thought to convince the importance in reducing the number of round-trips The average file size in web application is very small  Use of a subjective word client server Small messages S1S1 R1R1 U 1 = R 1 /S 1 Large messages client server S2S2 R2R2 U 2 = R 2 /S 2 U 1 < U 2

CS 587 High-Speed Networks Solution #1: Persistent Connection client server SYN SYN-ACK ACK DAT ACK DAT ACK DAT      FIN ACK FIN ACK SYN SYN-ACK ACK DAT Padmanabhan/018 Keep a stream socket connection (= TCP connection) until you download all the files

CS 587 High-Speed Networks Solution #1: Persistent Connection client server SYN SYN-ACK ACK DAT ACK DAT ACK DAT      ACK DAT Padmanabhan/019 Keep a stream socket connection (= TCP connection) until you download all the files DAT      Round trips reduced Reduced TIME_WAIT Reduced CLOSE_WAIT

CS 587 High-Speed Networks Padmanabhan/020 Implementation details in Persistent Connection 1. Detection of the end of transmissions (page 8) 2. Backward-compatible extension of HTTP 1.0 (page 9) How can the client know the end of transmissions? Boundary delimiter Blocked data transmission protocol Store-and-forward HTTP PC-enabled server should be able to handle PC-non-enabled HTTP clients HTTP PC-enabled client should be able to handle PC-non-enabled HTTP servers OS-kernel and TCP should not be changed

CS 587 High-Speed Networks client server SYN SYN-ACK ACK DAT ACK DAT ACK DAT      ACK DAT Padmanabhan/021 DAT Solution #2: HTTP Pipelining An improvement over Persistent Connection client server SYN SYN-ACK ACK DAT ACK DAT ACK DAT      ACK DAT This parallel HTTP requests are impossible in PC (since this requires multiple connections)

CS 587 High-Speed Networks Padmanabhan/022 Solution #2: HTTP Pipelining client server SYN SYN-ACK ACK DAT ACK DAT ACK DAT      ACK DAT GET-ALL DAT Parse the index.html Identify all the files needed for this page Request all files

Web Browser CS 587 High-Speed Networks Padmanabhan/023 Web Server URL: Method: GETALL ***** HTTP/1.0 HTTP header Parse the client request Take the requested action HTTP 200 OK Solution #2: HTTP Pipelining A requested file HTTP Header FTTP Header contains “context-length” field

US Home CNN Top CS 587 High-Speed Networks Padmanabhan/024 Solution #2: HTTP Pipelining HTTP Pipelining working with the client-side cache

Web Browser CS 587 High-Speed Networks Padmanabhan/025 Web Server URL: Method: GETLIST ***** HTTP/1.0 HTTP header HTTP 200 OK Solution #2: HTTP Pipelining A requested file Only the files missing in the client’s cache will be requested Using HTTP Pipelining CNN_icon.gif US_Home.gif NetScape.gif ToolBar.gif                   Client-Side cache Parse the client request Take the requested action

CS 587 High-Speed Networks Padmanabhan/026 Solution #3: HTTP Pre-Fetching CNN TOP US Home Weather page Travel page

CS 587 High-Speed Networks Solution #3: HTTP Pre-Fetching client server SYN SYN-ACK ACK GETALL ALL FILES GETALL ALL FILES ALL FILES GETALL Initial TCP hand- shaking delay Requesting TOP page Browsing time Requesting US home page Browsing time Requesting weather page Padmanabhan/027

CS 587 High-Speed Networks Solution #3: HTTP Pre-Fetching client server SYN SYN-ACK ACK GETALL ALL FILES GETALL ALL FILES ALL FILES GETALL Initial TCP hand- shaking delay Requesting TOP page Browsing time Requesting US home page Browsing time Requesting weather page Padmanabhan/028 Latency as observed by a web user Latency as observed by a web user Latency as observed by a web user Utilize the time for user’s browsing to transmit next data

CS 587 High-Speed Networks Solution #3: HTTP Pre-Fetching client server SYN SYN-ACK ACK GETALL ALL FILES GETALL ALL FILES ALL FILES GETALL Initial TCP hand- shaking delay Requesting TOP page Browsing time Padmanabhan/029 Latency as observed by a web user Requesting US home page Browsing time Requesting weather page Latency as observed by a web user Latency as observed by a web user

CS 587 High-Speed Networks Solution #3: HTTP Pre-Fetching client server SYN SYN-ACK ACK GETALL ALL FILES GETALL ALL FILES ALL FILES GETALL Initial TCP hand- shaking delay Requesting TOP page Browsing time Padmanabhan/030 Latency as observed by a web user Browsing time

CS 587 High-Speed Networks Solution #3: HTTP Pre-Fetching client server SYN SYN-ACK ACK GETALL ALL FILES GETALL ALL FILES ALL FILES GETALL Initial TCP hand- shaking delay Requesting TOP page Browsing time Padmanabhan/031 Browsing time Need to predict which files will be requested Need to predict which files will be requested

CS 587 High-Speed Networks Solution #3: HTTP Pre-Fetching Padmanabhan/032 How can we predict next files to be requested by a web user? New web customer Files in US Home Files in Weather Page Files in Europe Home Files in Another Page Files in Another Page 0.25 index.html (Top page) This figure almost stolen from Padmanabhan’s paper This figure almost stolen from Padmanabhan’s paper

CS 587 High-Speed Networks Solution #3: HTTP Pre-Fetching Padmanabhan/033 How to calculate the probability of a group of files to be requested next? Web Server Requests from clients Httpd Prefecthd OS/file-system Log web requests

Prediction Window CS 587 High-Speed Networks Solution #3: HTTP Pre-Fetching Padmanabhan/034 How to calculate the probability of a group of files to be requested next? Concept of “Prediction Window” index.html (Top page) - “Prediction Window” = An array of “slots” - Each slot remembers a file requested - Remember as many files as in the prediction window

CS 587 High-Speed Networks Solution #3: HTTP Pre-Fetching Padmanabhan/035 How to calculate the probability of a group of files to be requested next? The dependency (prediction) graph has an arch from a file A (or a group of files) to another file B, if and only if: - B was accessed within w accesses after A (w is the window size) The probability (weight) of an arc is the ratio of (the number of accesses to B) to (the number of accesses to A). INOUT Prediction Window as FIFO Queue When a page entry is kicked put or re-inserted, all the files after the one is recorded