Data Communication EDA344, DIT420 Description of Lab 1 and Optional Programming HTTP Assignment Aras Atalar Prajith R G 24/01/2018.

Slides:



Advertisements
Similar presentations
HTTP HyperText Transfer Protocol. HTTP Uses TCP as its underlying transport protocol Uses port 80 Stateless protocol (i.e. HTTP Server maintains no information.
Advertisements

HyperText Transfer Protocol (HTTP)
Application Layer-11 CSE401N: Computer Networks Lecture-4 Application Layer Overview HTTP.
HyperText Transfer Protocol (HTTP) Computer Networks Computer Networks Spring 2012 Spring 2012.
9/16/2003-9/18/2003 The Application Layer and Java Programming September 16-18, 2003.
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
2: Application Layer1 Chapter 2: Application Layer Our goals: r conceptual, implementation aspects of network application protocols m transport-layer service.
1 K. Salah Module 2.1: Application Layer Application-level protocols provide high-level services –Web and HTTP –DNS –Electronic mail –Remote login –FTP.
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.
EEC-484/584 Computer Networks Lecture 4 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
PL-IV- Group A HTTP Request & Response Header
CS 3830 Day 7 Introduction : Application Layer 2 Processes communicating Process: program running within a host. r within same host, two processes.
FTP (File Transfer Protocol) & Telnet
Mail (smtp), VoIP (sip, rtp)
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
2: Application Layer1 CS 4244: Internet Software Development Dr. Eli Tilevich.
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.
2: Application Layer1 Internet apps: their protocols and transport protocols Application remote terminal access Web file transfer streaming multimedia.
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,…
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
1 CSC111H Client-Server: An Introduction Dennis Burford
1 HTTP EECS 325/425, Fall 2005 September Chapter 2: Application layer r 2.1 Principles of network applications m app architectures m app requirements.
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 Layer1 Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross.
Important r There will be NO CLASS on Friday 1/30/2015! r Please mark you calendars 1.
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.
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):
World Wide Web r Most Web pages consist of: m base HTML page, and m several referenced objects addressed by a URL r URL has two components: host name and.
Data Communication EDA344, DIT420 Description of Lab 1 and Optional Programming HTTP Assignment Bapi Chatterjee Prajith R G.
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.
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
Lecture 5 Internet Core: Protocol layers. Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP 
2: Application Layer 1 Chapter 2 Application Layer These ppt slides are originally from the Kurose and Ross’s book. But some slides are deleted and added.
Data Communication EDA344, DIT420 Description of Lab 1 and Optional Programming HTTP Assignment Aras Atalar Prajith R G.
Application Layer Dr. Adil Yousif Lecture 2 CS.
Block 5: An application layer protocol: HTTP
Lab 2: Packet Capture & Traffic Analysis with Wireshark
Web Development Web Servers.
Application layer 1 Principles of network applications 2 Web and HTTP
Lecture 2 Dr. Richard Spillman Fall 2009
Computing with C# and the .NET Framework
COMP2322 Lab 2 HTTP Steven Lee Feb. 8, 2017.
Internet transport protocols services
Chapter 2 Application Layer
Introduction to Networks
Tutorial (4): HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
IS333D: MULTI-TIER APPLICATION DEVELOPMENT
The Internet and HTTP and DNS Examples
Chapter 2: outline 2.1 principles of network applications
Process-to-Process Delivery:
EEC-484/584 Computer Networks
لایه ی کاربرد مظفر بگ محمدی 2: Application Layer.
CS 5565 Network Architecture and Protocols
EEC-484/584 Computer Networks
Wireshark(Ethereal).
EEC-484/584 Computer Networks
The Application Layer: HTTP
Socket Programming 2: Application Layer.
HTTP Hypertext Transfer Protocol
Chapter 2 Application Layer
Chapter 3 Transport Layer
Presentation transcript:

Data Communication EDA344, DIT420 Description of Lab 1 and Optional Programming HTTP Assignment Aras Atalar Prajith R G 24/01/2018

Overview Lab 1 (Compulsory): WIRESHARK lab General Description Programming Assignment (Optional): Multi-threaded Web Server What to do and how to do it HTTP messages Processes and threads DataCommunication'18

Lab 1 (Compulsory): WIRESHARK lab Get insight into Internet traffic through the WIRESHARK tool  Beware of ethical considerations! E.g. it is inappropriate to use this and similar tools outside the lab environment. DataCommunication'18 3

WIRESHARK Lab: Important Deadlines Jan 29: Study and submit in ping-pong the preparatory assignment. ** ONLY after this submission, you can get an invitation to the lab and book a timeslot.  Accept the invitation & book lab-slot in ping-pong ** Feb 5, 6: Labs @ Lindholmen. Study and get a printed copy of the manual for this lab and get the printed copy along when coming to lab Feb 12: Submit Lab Report in ping-pong DataCommunication'18

Accepting the invitation When an invitation is sent to you, you will also be notified by mail to your mail-id. You should log-in to your ping-pong account and go to the invitations (On top menu : Tools -> Invitations). Check the current invitations and click on the link 'Book me on event' to book yourself for the event.  DataCommunication'18

Focus on the labs now DataCommunication'18

WIRESHARK Lab Download WIRESHARK and install it in your machine Follow the preparation notes for the lab to get familiar with WIRESHARK . Try the lab instruction manual yourself and there will be help during the lab session. DataCommunication'18

copy of all Ethernet frames sent/received packet capture (pcap) analyzer copy of all Ethernet frames sent/received Transport (TCP/UDP) Network (IP) Link (Ethernet) Physical application (www browser, email client) OS [Computer Networking : A TOP DOWN APPROACH, 7th Edition, Kurose, Ross] DataCommunication'18

Programming Assignment (Optional): Multi-threaded Web Server Implement a multi-threaded webserver following the HTTP RFC specifications Successful completion gives extra credit if you pass the March 2018 exam DataCommunication'18

Programming Assignment: Important Deadlines Study the assignment description. Work on the assignment. For support with questions consult the Freuently-Asked-Questions Document Jan 31, Feb 14: Join the Q&A sessions  Feb 21: Present your solution at the demo session Feb 28: Submit your code in ping-pong system DataCommunication'18

Multi-threaded Web Server The task: Write a small Web server that supports a subset of the HTTP 1.0 specifications The server should be able to handle simultaneous requests implement the HTTP methods GET and HEAD handle and respond to invalid requests Include Date:, Server:, Content-Type: and Content- Length: headers in all responses. Last-Modified: should be included where appropriate. DataCommunication'18

Multi-threaded Web Server Hints Read the textbook an example: simple Web server that does not handle simultaneous requests (Section 2.7, 2.9, 5th edition) To handle concurrent requests One way is to create a thread for each request Java tutorial Writing a Client/Server pair Check course assignments page for hints DataCommunication'18

http message format: request ASCII (human-readable format; try telnet to www server, port 80) request line (GET, POST, HEAD commands) GET /somedir/page.html HTTP/1.0 Host: www.someschool.edu Connection: close User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (extra carriage return + line feed) header lines Carriage return, line feed indicates end of message DataCommunication'18

http request message: general format DataCommunication'18

http message format: response status line (protocol status code status phrase) HTTP/1.0 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html data data data data data ... header lines data, e.g., requested html file DataCommunication'18

http response status codes In first line in server->client response message. A few sample codes: 200 OK request succeeded, requested object later in this message 301 Moved Permanently requested object moved, new location specified later in this message (Location:) 400 Bad Request request message not understood by server 404 Not Found requested document not found on this server 505 HTTP Version Not Supported DataCommunication'18

Java Concurrency Support class MessagePrinter implements Runnable { protected String msg_; The message to print protected PrintStream out_; The place to print it MessagePrinter(String msg, PrintStream out) { out_ = out; msg_ = msg; } public void run() { out_.print(msg_); // display the message DataCommunication'18

Sequential Version class SequentialPrinter { public static void main(String[] args) { MessagePrinter mpHello = new MessagePrinter("Hello\n", System.out); MessagePrinter mpGoodbye = new MessagePrinter("Goodbye\n", System.out); mpHello.run(); mpGoodbye.run(); } DataCommunication'18

MultiThreaded Version class ConcurrentPrinter { public static void main(String[] args) { MessagePrinter mpHello = new MessagePrinter("Hello\n", System.out); MessagePrinter mpGoodbye = new MessagePrinter("Goodbye\n", System.out); Thread tHello = new Thread(mpHello); Thread tGoodbye = new Thread(mpGoodbye); tHello.start(); tGoodbye.start(); } DataCommunication'18

Different types of servers Single process/thread do forever accept client connection process all client requests close connection One thread per connection create a new thread to process requests DataCommunication'18

Socket programming goal: learn how to build client/server applications that communicate using sockets socket: door between application process and end-end-transport protocol Internet controlled by OS controlled by app developer transport application physical link network process socket DataCommunication'18

We will see examples in our skeleton code Socket programming Two socket types for two transport services: UDP: unreliable datagram TCP: reliable, byte stream-oriented TCP Client Socket: Socket TCP Server Socket: ServerSocket We will see examples in our skeleton code DataCommunication'18