Application Layer. Applications and application-layer protocols. Goals:

Similar documents
Lecture 6 Application Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Lecture 7 Application Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Application Layer. Goals: Service models. Conceptual aspects of network application protocols Client server paradigm

CS4/MSc Computer Networking. Lecture 3: The Application Layer

Application Layer Chapter 2

Application Layer. Goals:

Application Layer. Applications and application-layer protocols. Goals:

Review of Previous Lecture

Web, HTTP and Web Caching

Lecture 05: Application Layer (Part 02) Domain Name System. Dr. Anis Koubaa

Chapter 2 Application Layer

Operating Systems CS 571

Networking. Layered Model. DoD Model. Application Layer. ISO/OSI Model

Chapter 2 outline. 2.1 Principles of app layer protocols

HyperText Transfer Protocol

Computer Networks. Wenzhong Li. Nanjing University

Layered Model. DoD Model. ISO/OSI Model

CMSC 332 Computer Networking Web and FTP

Chapter 2: Application Layer. Chapter 2 Application Layer. Some network apps. Application architectures. Chapter 2: Application layer

Chapter 2 Application Layer. Lecture 5 DNS. Computer Networking: A Top Down Approach. 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012

WWW: the http protocol

Lecture 7b: HTTP. Feb. 24, Internet and Intranet Protocols and Applications

Chapter 2: Application layer

Chapter 2 Application Layer

SCS3004 Networking Technologies Application Layer Protocols

Application Layer Protocols

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

Foundations of Telematics

Chapter 2: Application Layer

Internet Services & Protocols. Application Layer and its Services

1-1. Switching Networks (Fall 2010) EE 586 Communication and. September Lecture 10

Chapter II: Application Layer

Computer Networking Introduction

Application Layer. Pure P2P architecture. Client-server architecture. Processes communicating. Hybrid of client-server and P2P. Creating a network app

Data Communication EDA344, DIT420 Description of Lab 1 and Optional Programming HTTP Assignment

Chapter 2. Application Layer. Chapter 2: Application Layer. Application layer - Overview. Some network apps. Creating a network appication

Domain Name System (DNS) 김현철 ( 화 ) 정보통신융합서울대학교컴퓨터공학부

The Application Layer: Sockets, DNS

Domain Name Service. DNS Overview. October 2009 Computer Networking 1

Application Layer: , DNS

Chapter 2 part B: outline

CSC358 Week 2. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

Application Layer: HTTP

Chapter 2 Application Layer

Applications & Application-Layer Protocols: The Web & HTTP

Course on Computer Communication and

Lecture 04: Application Layer (Part 01) Principles and the World Wide Web (HTTP) Dr. Anis Koubaa

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

FTP. Mail. File Transfer Protocol (FTP) FTP commands, responses. Electronic Mail. TDTS06: Computer Networks

CSEN 404 Introduction to Networks. Mervat AbuElkheir Mohamed Abdelrazik. ** Slides are attributed to J. F. Kurose

Internet applications. 2: Application Layer 1

Application Layer. Application Layer 1. By Mikkel Christiansen for NA mm7 Spring 2004

Different Layers Lecture 21

Communications Software. CSE 123b. CSE 123b. Spring Lecture 11: Domain Name System (DNS) Stefan Savage. Some pictures courtesy David Wetherall

CSEN 503 Introduction to Communication Networks

CSE 123b Communications Software. Overview for today. Names and Addresses. Goals for a naming system. Internet Hostnames

Lecture 7: Application Layer Domain Name System

Application Protocols and HTTP

EECS 3214: Computer Network Protocols and Applications

Computer Networks 2 *+ # $ $!,( -. ( - ( - # ( / $!

Internet Content Distribution

Computer Network 1 1

EECS 122: Introduction to Computer Networks DNS and WWW. Internet Names & Addresses

Application Layer. Pure P2P architecture. Client-server architecture. Processes communicating. Hybrid of client-server and P2P. Creating a network app

internet technologies and standards

Chapter 2 Application Layer

Chapter 2 APPLICATIONS. Computer Networks Timothy Roscoe Summer 2007

CS 3516: Advanced Computer Networks

Application layer. Some network apps. Client-server architecture. Hybrid of client-server and P2P. Pure P2P architecture. Creating a network app

Computer Science 425 Distributed Systems CS 425 / ECE 428. Fall 2013

Chapter 2: Application layer

Chapter 2 Application Layer

Introduction to Computer Networking. Guy Leduc. Chapter 2 Application Layer. Chapter 2: outline

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

Review for Internet Introduction

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

Chapter 2 Application Layer

DATA COMMUNICATOIN NETWORKING

Electronic Mail. Three Components: SMTP SMTP. SMTP mail server. 1. User Agents. 2. Mail Servers. 3. SMTP protocol

Welcome Aboard! CprE 450/550 Distributed Systems and Middleware. Instructor: Yong Guan 3219 Coover Tel: (515)

Computer Networks and Applications

Chapter 2 Application Layer

Computer Networks. 2.Application Layer. László Böszörményi Computer Networks Application Layer - 1

Applications Layer Protocols. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806

CC451 Computer Networks

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

Application Layer: The Web and HTTP Sec 2.2 Prof Lina Battestilli Fall 2017

CS 716: Introduction to communication networks th class; 11 th Nov Instructor: Sridhar Iyer IIT Bombay

Information Network Systems The application layer. Stephan Sigg

Application Level Protocols

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng.

Part 2: Application Layer

CS 43: Computer Networks. 10: Naming and DNS September 24, 2018

Naming Computer Networking. Overview. DNS: Domain Name System. Obvious Solutions (1) Obvious Solutions (2)

Chapter 2: Application Layer last updated 22/09/03

DNS and HTTP. A High-Level Overview of how the Internet works

SC/CSE 3213 Winter Sebastian Magierowski York University CSE 3213, W13 L8: TCP/IP. Outline. Forwarding over network and data link layers

EECS 3214: Computer Network Protocols and Applications

Lab 2. All datagrams related to favicon.ico had been ignored. Diagram 1. Diagram 2

Chapter P2P file sharing network applications 2.22 Web and HTTP 2.3 FTP DNS

Transcription:

Application Layer Goals: Conceptual aspects of network application protocols Client paradigm Service models Learn about protocols by examining popular application-level protocols HTTP DNS 1 Applications and application-layer protocols Application: communicating, distributed processes Running in network hosts in user space Exchange messages to implement app E.g., email, file transfer, the Web Application-layer protocols One piece of an app Define messages exchanged by apps and actions taken User services provided by lower layer protocols application transport network data link physical application transport network data link physical application transport network data link physical 2

Client- paradigm Typical network app has two pieces: client and Client: Initiates contact with ( speaks first ) Typically requests service from, E.g., request WWW page, send email Server: Provides requested service to client E.g., sends requested WWW page, receives/stores received email application transport network data link physical request reply application transport network data link physical 3 Services provided by Internet transport protocols TCP service: Connection-oriented: setup required between client, Reliable transport between sending and receiving process Flow control: sender won t overwhelm receiver Congestion control: throttle sender when network overloaded Does not providing: timing, minimum bandwidth guarantees UDP service: Unreliable data transfer between sending and receiving process Does not provide: connection setup, reliability, flow control, congestion control, timing, or bandwidth guarantee Q: Why bother? Why is there a UDP? 4

WWW: the HTTP protocol HTTP: hypertext transfer protocol WWW s application layer protocol Client/ model Client: browser that requests, receives, displays WWW objects Server: WWW sends objects in response to requests HTTP/1.0: RFC 1945 HTTP/1.1: RFC 2616 PC running Explorer Mac running Navigator http request http request Server running NCSA Web 5 The HTTP protocol: more HTTP: TCP transport service: Client initiates TCP connection (creates socket) to, port 80 Server accepts TCP connection from client http messages (applicationlayer protocol messages) exchanged between browser (http client) and WWW (http ) TCP connection closed HTTP is stateless Server maintains no information about past client requests aside Protocols that maintain state are complex! Past history (state) must be maintained If /client crashes, their views of state may be inconsistent, must be reconciled 6

The HTTP protocol: even more Non-persistent connection: One object in each TCP connection Some browsers create multiple TCP connections simultaneously one per object Persistent connection: Multiple objects transferred within one TCP connection Pipelined persistent connections: Multiple requests issued without waiting for response 7 http message format: request Two types of http messages: request, response http request message: ASCII (human-readable format) request line (GET, POST, HEAD commands) header lines GET /somedir/page.html HTTP/1.1 Connection: close User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr Carriage return, line feed indicates end of message (extra carriage return, line feed) 8

http message format: reply status line (protocol status code status phrase) data, e.g., requested html file header lines HTTP/1.1 200 OK Connection: close 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... 9 http reply status codes In first line in 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 404 Not Found requested document not found on this 505 HTTP Version Not Supported 10

User- interaction: authentication Authentication goal: control access to documents Stateless: client must present authorization in each request Authorization: typically name, password authorization: header line in request If no authorization, refuses access, sends WWW authenticate: header line in response client usual http request msg 401: authorization req. WWW authenticate: usual http request msg + Authorization:line usual msg usual http request msg + Authorization:line usual msg time 11 User- interaction: conditional GET Goal: don t send object if client has up-to-date stored (cached) version Client: specify date of cached copy in http request If-modified-since: <date> Server: response contains no object if cached copy up-todate: HTTP/1.0 304 Not Modified client http request msg If-modified-since: <date> HTTP/1.0 304 Not Modified http request msg If-modified-since: <date> HTTP/1.1 200 OK <data> object not modified object modified 12

Web Caches (proxy ) Goal: satisfy client request without involving origin User sets browser: WWW accesses via web cache Client sends all http requests to web cache If object at web cache, web cache immediately returns object in Else requests object from origin, then returns http response to client client client http request http request Proxy http request http request origin origin 13 DNS: Domain Name System People: many identifiers: SSN, name, Passport # Internet hosts, routers: IP address (32 bit) used for addressing datagrams name, e.g., gaia.cs.umass.edu used by humans Q: Map between IP addresses and name? Secure Domain Name System (DNS) Dynamic Update: RFC 3007 14

DNS: Domain Name System Domain Name System: Distributed database: implemented in hierarchy of many name s Application-layer protocol: host, routers, name s communicate to resolve names (address/name translation) Core Internet function implemented as application-layer protocol Complexity at network s edge 15 DNS name s Why not centralize DNS? Single point of failure Traffic volume Distant centralized database Maintenance Does not scale! 16

DNS name s (2) No has all name-to-ip address mappings Local name s: Each ISP, company has local (default) name Host DNS query first goes to local name Authoritative name : For a host: stores that host s IP address, name Can perform name/address translation for that host s name 17 DNS records DNS: distributed db storing resource records (RR) RR format: (name, value, type, ttl) Type=A name is hostname value is IP address Type=NS name is domain (e.g., foo.com) value is IP address of authoritative name for this domain Type=CNAME for alias Type=MX for mail 18

Simple DNS example root name Host surf.eurecom.fr wants IP address of gaia.cs.umass.edu 1. Contacts its local DNS, dns.eurecom.fr 2. dns.eurecom.fr contacts root name, if necessary 3. Root name contacts authoritative name, dns.umass.edu, if necessary local name dns.eurecom.fr 1 2 6 requesting host surf.eurecom.fr 5 3 4 authorititive name dns.umass.edu gaia.cs.umass.edu 19 DNS: Root name s Contacted by local name that can not resolve name Root name : Contacts authoritative name if name mapping not known Gets mapping Returns mapping to local name ~ dozen root name s worldwide 20

Simple DNS example root name host surf.eurecom.fr wants IP address of gaia.cs.umass.edu 1. Contacts its local DNS, dns.eurecom.fr 2. dns.eurecom.fr contacts root name, if necessary 3. Root name contacts authoritative name, dns.umass.edu, if necessary local name dns.eurecom.fr 1 2 6 requesting host surf.eurecom.fr 5 3 4 authorititive name dns.umass.edu gaia.cs.umass.edu 21 DNS example root name Root name : May not know authoritative name May know intermediate name : who to contact to find authoritative name local name dns.eurecom.fr 1 2 8 requesting host surf.eurecom.fr 7 3 6 intermediate name dns.umass.edu 4 5 authoritative name dns.cs.umass.edu gaia.cs.umass.edu 22

DNS: iterated queries root name Recursive query: Puts burden of name resolution on contacted name Heavy load? Iterated query: Contacted replies with name of to contact I don t know this name, but ask this local name dns.eurecom.fr 1 2 8 requesting host surf.eurecom.fr 3 4 7 iterated query intermediate name dns.umass.edu 5 6 authoritative name dns.cs.umass.edu gaia.cs.umass.edu 23 DNS: caching and updating records Once (any) name learns mapping, it caches mapping Cache entries timeout (disappear) after some time Update/notify mechanisms under design by IETF RFC 3007 (Feb. 2004) http://www.ietf.org/html.charters/dnsind-charter.html 24