HTTP-Tester- A web appliance testing tool Kiran Komaravolu Dept of Computer Science and Engg Lehigh University.

Slides:



Advertisements
Similar presentations
Communication Protocols II Ninth Meeting. TCP/IP family.
Advertisements

Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
HyperText Transfer Protocol (HTTP)
Hypertext Transfer Protocol Kyle Roth Mark Hoover.
1 HTTP – HyperText Transfer Protocol Part 1. 2 Common Protocols In order for two remote machines to “ understand ” each other they should –‘‘ speak the.
Scanning February 23, 2010 MIS 4600 – MBA © Abdou Illia.
HyperText Transfer Protocol (HTTP) Computer Networks Computer Networks Spring 2012 Spring 2012.
Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July.
Web, HTTP and Web Caching
Definitions, Definitions, Definitions Lead to Understanding.
1 K. Salah Module 2.1: Application Layer Application-level protocols provide high-level services –Web and HTTP –DNS –Electronic mail –Remote login –FTP.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
1 ELEN 602 Lecture 15 More on IP TCP. 2 byte stream Send buffer segments Receive buffer byte stream Application ACKs Transmitter Receiver TCP Streams.
HTTP Overview Vijayan Sugumaran School of Business Administration Oakland University.
2/9/2004 Web and HTTP February 9, /9/2004 Assignments Due – Reading and Warmup Work on Message of the Day.
PL-IV- Group A HTTP Request & Response Header
Rensselaer Polytechnic Institute CSC-432 – Operating Systems David Goldschmidt, Ph.D.
1 Advanced Application and Web Filtering. 2 Common security attacks Finding a way into the network Exploiting software bugs, buffer overflows Denial of.
HTTP; The World Wide Web Protocol
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
FTP (File Transfer Protocol) & Telnet
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
HyperText Transfer Protocol (HTTP).  HTTP is the protocol that supports communication between web browsers and web servers.  A “Web Server” is a HTTP.
TCP/IP Protocol Suite 1 Chapter 22 Upon completion you will be able to: World Wide Web: HTTP Understand the components of a browser and a server Understand.
Application Layer 2 Figures from Kurose and Ross
Rensselaer Polytechnic Institute Shivkumar Kalvanaraman, Biplab Sikdar 1 The Web: the http protocol http: hypertext transfer protocol Web’s application.
20-1 Last time □ NAT □ Application layer ♦ Intro ♦ Web / HTTP.
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,…
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
Introduction 1 Lecture 6 Application Layer (HTTP) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science & Engineering.
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,
Web application architecture
Sistem Jaringan dan Komunikasi Data #9. DNS The Internet Directory Service  the Domain Name Service (DNS) provides mapping between host name & IP address.
Chapter 1: Introduction to Web Applications. This chapter gives an overview of the Internet, and where the World Wide Web fits in. It then outlines the.
Protocol(TCP/IP, HTTP) 송준화 조경민 2001/03/13. Network Computing Lab.2 Layering of TCP/IP-based protocols.
Chapter 6-2 the TCP/IP Layers. The four layers of the TCP/IP model are listed in Table 6-2. The layers are The four layers of the TCP/IP model are listed.
CS 241 Section Week #12 (04/30/09). Announcements TA Final review: -Either Tuesday May 12, Or Wednesday May 13, 2009 (2:00pm - 4:00pm) || (6:30pm.
The Inter-network is a big network of networks.. The five-layer networking model for the internet.
HTTP Hypertext Transfer Protocol
©Yaron Kanza HTTP Written by Dr. Yaron Kanza, Edited with permission from author by Liron Blecher.
CIS679: Lecture 13 r Review of Last Lecture r More on HTTP.
1-1 HTTP request message GET /somedir/page.html HTTP/1.1 Host: User-agent: Mozilla/4.0 Connection: close Accept-language:fr request.
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.
CITA 310 Section 2 HTTP (Selected Topics from Textbook Chapter 6)
Advance Computer Networks Lecture#05 Instructor: Engr. Muhammad Mateen Yaqoob.
EE 122: Lecture 21 (HyperText Transfer Protocol - HTTP) Ion Stoica Nov 20, 2001 (*)
Overview of Servlets and JSP
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.
COMP2322 Lab 2 HTTP Steven Lee Jan. 29, HTTP Hypertext Transfer Protocol Web’s application layer protocol Client/server model – Client (browser):
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Week 11: Application Layer 1 Web and HTTP r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,… r Web page consists.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
HTTP Protocol Amanda Burrows. HTTP Protocol The HTTP protocol is used to send HTML documents through the Internet. The HTTP protocol sends the HTML documents.
Chapter 9: Transport Layer
Tiny http client and server
Block 5: An application layer protocol: HTTP
Instructor Materials Chapter 9: Transport Layer
The Hypertext Transfer Protocol
Internet transport protocols services
Networks Problem Set 1 Due Oct 3 Bonus Date Oct 2
Monkey See, Monkey Do A Tool for TCP Tracing and Replaying
CS 5565 Network Architecture and Protocols
HyperText Transfer Protocol
EE 122: HyperText Transfer Protocol (HTTP)
William Stallings Data and Computer Communications
HTTP Hypertext Transfer Protocol
Information Retrieval and Web Design
Presentation transcript:

HTTP-Tester- A web appliance testing tool Kiran Komaravolu Dept of Computer Science and Engg Lehigh University

What is the need to test Web Appliances Need to use best components. Need to use best components. Compare performance of different web devices. Compare performance of different web devices. Verify if a device is performs as per specifications. Verify if a device is performs as per specifications. Choosing between different service providers. Choosing between different service providers.

Related Work The Ethereal network analyser ( The Ethereal network analyser ( TCPDUMP/PCAP ( TCPDUMP/PCAP ( Httpflow (Grevnin and Davison) Httpflow (Grevnin and Davison) Simultaneous proxy evaluation. (Davison). Simultaneous proxy evaluation. (Davison). Medusa Proxy. (Koletsou and Voelker). Medusa Proxy. (Koletsou and Voelker).

Http-Tester Replays captured requests to an existing server to one that is being evaluated. Replays captured requests to an existing server to one that is being evaluated. No active deployment needed. No active deployment needed. Does not affect existing services. Does not affect existing services. Can be used to evaluate any Web appliance running HTTP. Can be used to evaluate any Web appliance running HTTP.

HTTP-Tester Topology setup Topology setup

HTTP-Tester Components Components The Sniffer. The Sniffer. Logs all packets onto a packet database. Logs all packets onto a packet database. Request Replicator. Request Replicator. Replays all requests to the “tested device” Replays all requests to the “tested device” The Post Processor. The Post Processor. Reads the packet logs, extracts HTTP requests and responses and correlates them. Reads the packet logs, extracts HTTP requests and responses and correlates them.

HTTP HTTP Message Structure HTTP Message Structure A command line. (GET, POST, OK etc.) A command line. (GET, POST, OK etc.) GET / HTTP 1.0 GET / HTTP 1.0www.google.com Zero or more header lines. Zero or more header lines. Content-Type: text/html; charset=iso Content-Type: text/html; charset=iso Control Return + Line Feed. Control Return + Line Feed. Optional Message Body Optional Message Body Response message Response message

HTTP Transactions. HTTP 1.0 HTTP 1.0 No persistent connections. No persistent connections. A new connection is opened up for every request made, and is closed down after response sent. A new connection is opened up for every request made, and is closed down after response sent. HTTP 1.1 HTTP 1.1 Supports Persistent Connections. Supports Persistent Connections. Client may make a series of requests on a connection. Server returns responses in same order. Client may make a series of requests on a connection. Server returns responses in same order. Supports chunk encoding. Supports chunk encoding.

The Sniffer Blindly captures all relevant network packets and logs them. Blindly captures all relevant network packets and logs them. The pcap packet capture library has been used to read packets off the wire. The pcap packet capture library has been used to read packets off the wire. Berkeley DB package has been used to log the packets into a ‘db’ database. Berkeley DB package has been used to log the packets into a ‘db’ database. The job of efficient memory and disk usage has been delegated to DB. The job of efficient memory and disk usage has been delegated to DB.

Request Replicator Replays all requests flowing into original device onto the tested device. Replays all requests flowing into original device onto the tested device. Works in parallel with the sniffer module. Works in parallel with the sniffer module. Looks for TCP SYN packets and determines the beginning of a request flow. And opens up a new connection to the second device. Looks for TCP SYN packets and determines the beginning of a request flow. And opens up a new connection to the second device. The payload every next packet sent to on this connection is sent to the second device. The payload every next packet sent to on this connection is sent to the second device.

Request Replicator. This way the second server sees the same workload as the first one. This way the second server sees the same workload as the first one. The replies sent by the server are ignored. They are flushed out as the socket buffers overflow. The sniffer module though logs the TCP packets. The replies sent by the server are ignored. They are flushed out as the socket buffers overflow. The sniffer module though logs the TCP packets.

Post Processing. Extracts HTTP requests/responses from the packet logs. Extracts HTTP requests/responses from the packet logs. Every request is mapped onto its response. The same request response pair on the second connection is also identified. Every request is mapped onto its response. The same request response pair on the second connection is also identified. Httpflow routines used to extract HTTP requests from packet stream. Httpflow routines used to extract HTTP requests from packet stream.

Identifying Requests. We know which way requests flow. We know which way requests flow. Assumption: First TCP packet of every request has one of Assumption: First TCP packet of every request has one of GET, HEAD,OPTIONS, DELETE, POST, PUT. End of headers is determined by a CRLF. End of headers is determined by a CRLF. content-length field is specified in case of PUT/POST requests. content-length field is specified in case of PUT/POST requests.

Identifying responses Response headers extrated by looking for a CRLF. Response headers extrated by looking for a CRLF. End of Response message determined in three ways: End of Response message determined in three ways: Server sends a FIN or RST packet. Server sends a FIN or RST packet. Response headers contain a “content-length” field. Response headers contain a “content-length” field. Response is chunk encoded. Each chunk has its own length. Zero length chunk indicates end of stream. Response is chunk encoded. Each chunk has its own length. Zero length chunk indicates end of stream.

Correlating requests and responses HTTP 1.0 HTTP 1.0