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

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

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

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 5

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

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

EECS 3214: Computer Network Protocols and Applications

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

Chapter II: Application Layer

Chapter 2 Application Layer

DATA COMMUNICATOIN NETWORKING

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

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

Chapter 2 part B: outline

Chapter 2: Application layer

CSEN 503 Introduction to Communication Networks

Chapter 2 Application Layer

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

Chapter 2: Application layer

Application Layer: HTTP

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

CC451 Computer Networks

Computer Networking Introduction

Chapter 2 Application Layer

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

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

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

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

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

Application Layer: , DNS

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

EECS 3214: Computer Network Protocols and Applications

internet technologies and standards

CS 43: Computer Networks. HTTP September 10, 2018

Review of Previous Lecture

Applications & Application-Layer Protocols: (SMTP) and DNS

Chapter 2 Application Layer

Section 2: Application layer

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

Chapter 2: Application Layer. Chapter 2: application layer. outline. Some network apps. Client-server architecture. Application architectures

Chapter 2 Application Layer

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

Application Layer. Goals:

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

Chapter 2 Application Layer

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

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

Chapter 2: application layer

Chapter 2. Computer Networking: A Top. 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012

Chapter 2: Application layer

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 6

Chapter 2 Application Layer

Application-layer Protocols

Chapter 2 Application Layer

Layered Model. DoD Model. ISO/OSI Model

Chapter 1 Introduction

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

Network Application. Topic. Principle of Network Application. Principle of Network Application

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

Internet applications. 2: Application Layer 1

Chapter 2 Application Layer

COSC4377. Chapter 2: Outline

Computer Networks. Wenzhong Li. Nanjing University

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

CS 3516: Advanced Computer Networks

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

Chapter 2. Application Layer. 2: Application Layer 1

Chapter II: Application Layer

Information Network Systems The application layer. Stephan Sigg

Different Layers Lecture 21

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

Chapter 1 Introduction

CMSC 332 Computer Networks P2P and Sockets

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

CMSC 332 Computer Networking Web and FTP

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

CS 43: Computer Networks. Layering & HTTP September 7, 2018

CSCD 330 Network Programming Winter 2015

CSC 401 Data and Computer Communications Networks

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4

CSC 4900 Computer Networks:

Chapter 2: Application Layer

Chapter 2 Application Layer

CSc 450/550 Computer Networks Domain Name System

CSCE 463/612 Networks and Distributed Processing Spring 2018

Introduction to Computer Networking. Gang Wang Fall 2016

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

Lecture 7: Application Layer Domain Name System

WWW: the http protocol

Introduction to the Application Layer. Computer Networks Term B14

HyperText Transfer Protocol

Review for Internet Introduction

CSC 401 Data and Computer Communications Networks

Course on Computer Communication and

Chapter 8 Security. Computer Networking: A Top Down Approach

IP ADDRESSES, NAMING, AND DNS

Foundations of Telematics

Internet Protocol Stack! Principles of Network Applications! Some Network Apps" (and Their Protocols)! Application-Layer Protocols! Our goals:!

Domain Name System (DNS)

Web, HTTP and Web Caching

Network Applications Principles of Network Applications

Transcription:

Application Layer e- web instant messaging remote login P2P file sharing multi- network games streaming stored video (YouTube) voice over IP real-time video conferencing cloud computing Creating a network app Write programs that run on end systems communicate over network e.g., web - browser No need to write software for network-core devices application transport network data link physical application transport network data link physical application transport network data link physical Application 2-1 Application 2-2 Client- architecture Pure P2P architecture / : always-on permanent IP address farms for scaling s: communicate with not always connected dynamic IP addresses do not communicate directly with each other no always-on end systems directly communicate peer-peer peers are not always connected and change IP addresses Application 2-3 Application 2-4 Hybrid of - and P2P Skype voice-over-ip P2P application : finding address of remote party - speech: direct Processes communicating process: program running within a host. processes communicate by exchanging messages process: process that initiates communication process: process that waits to be contacted Application 2-5 Application 2-6 1

Sockets Addressing processes process sends/receives messages to/from its socket socket analogous to door host or process socket Transport layer controlled by app developer Internet host or process socket Transport layer a process must have an identifier host has unique IP address identifier includes both IP address and port number example port numbers: HTTP : 80 Mail : 25 controlled by OS Application 2-7 Application 2-8 App-layer protocol defines types of messages e.g., request, response message syntax: what fields in messages message semantics meaning of information in fields rules for when and how processes send & respond to messages public-domain protocols: defined in RFCs e.g., HTTP, proprietary protocols: e.g., Skype What transport service does an app need? Data loss some apps (e.g., audio) can tolerate some loss other apps (e.g., file transfer) require 100% reliable data transfer Timing some apps (e.g., Internet telephony, games) require low delay Throughput some apps (e.g., multimedia) require minimum throughput to work other apps ( elastic apps ) make use of whatever throughput they get Application 2-9 Application 2-10 Internet transport protocols services Web and HTTP TCP service: connection-oriented: setup required between and processes reliable transport flow control congestion control does not provide: timing, minimum throughput guarantees UDP service: unreliable data transfer between sending and receiving process web page consists of objects object can be HTML file, JPEG image, audio file, web page: base HTML-file + referenced objects each object has a URL example URL: www.someschool.edu/somedept/pic.gif host name path name Application 2-11 Application 2-12 2

HTTP overview HTTP overview HTTP: hypertext transfer protocol Web s application layer protocol / model : browser : Web PC running Explorer Mac running Chrome Server running Web Uses TCP: initiates TCP connection to accepts TCP connection from HTTP messages exchanged between browser and Web TCP connection closed HTTP is stateless maintains no information about past requests protocols that maintain state are complex! past history (state) must be maintained if / crashes, their views of state may be inconsistent Application 2-13 Application 2-14 HTTP connections HTTP request message non-persistent HTTP one object sent over TCP connection. persistent HTTP multiple objects can be sent over single TCP connection two types of HTTP messages: request, response HTTP request message: request line (GET, POST, HEAD commands) header lines carriage return, line feed at start of line indicates end of header lines carriage return character line-feed character GET /index.html HTTP/1.1\r\n Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n Accept-Language: en-us,en;q=0.5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n \r\n Application 2-15 Application 2-16 HTTP response message status line (protocol status code status phrase) header lines data, e.g., requested HTML file HTTP/1.1 200 OK\r\n Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n Server: Apache/2.0.52 (CentOS)\r\n Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=iso-8859-1\r\n \r\n data data data data data... HTTP response status codes status code in 1st line in -> response some sample codes: 200 OK request succeeded, requested object later in this msg 301 Moved Permanently requested object moved, new location specified later in this msg (Location:) 400 Bad Request request msg not understood by 404 Not Found requested document not found on this 505 HTTP Version Not Supported Application 2-17 Application 2-18 3

User- state: cookies many Web sites use cookies four components: 1) cookie header line of HTTP response message 2) cookie header line in HTTP request message 3) cookie file kept on s host, managed by s browser 4) back-end database at Web site example: Susan always access Internet from PC visits specific e- commerce site for first time when initial HTTP requests arrives at site, site creates: unique ID entry in backend database for ID Cookies: keeping state (cont.) ebay 8734 cookie file ebay 8734 amazon 1678 one week later: ebay 8734 amazon 1678 usual http request msg usual http response Set-cookie: 1678 usual http request msg cookie: 1678 usual http response msg Amazon creates ID 1678 for create entry cookiespecific action access backend database Application 2-19 Application 2-20 Web caches (proxy ) More about Web caching Goal: satisfy request without involving origin sets browser: Web accesses via cache browser sends all HTTP requests to cache object in cache: cache returns object else cache requests object from origin, then returns object to Proxy origin origin cache is and typically cache is installed by ISP (university, company, residential ISP) why Web caching? reduce response time for request reduce traffic on an institution s access link Application 2-21 Application 2-22 Conditional GET : the file transfer protocol Goal: don t send object if cache has up-to-date cached version cache: specify date of cached copy in HTTP request : response contains no object if cached copy is up-to-date: cache HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 304 Not Modified HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 200 OK <data> object not modified before <date> object modified after <date> at host interface local file system file transfer transfer file to/from remote host ftp: RFC 959 ftp : port 21 remote file system Application 2-23 Application 2-24 4

: separate control, data connections contacts at port 21, TCP is transport protocol authorized over control connection browses remote directory by sending commands over control connection. when receives file transfer command, opens 2 nd TCP connection (for file) to after transferring one file, closes data connection. TCP control connection, port 21 TCP data connection, port 20 opens another TCP data connection to transfer another file. maintains state : current directory, earlier authentication Application 2-25 Electronic Mail Three major components: s s simple transfer protocol: User Agent reader composing, editing, reading messages e.g., Outlook, Mozilla Thunderbird, iphone outgoing, incoming messages stored on outgoing message queue box Application 2-26 Electronic Mail: s Electronic Mail: [RFC 2821] Mail Servers box contains incoming messages for message queue of outgoing (to be sent) messages protocol between s to send e messages uses TCP to reliably transfer e message from to, port 25 direct transfer: sending to receiving three phases of transfer handshaking (greeting) transfer of messages closure Application 2-27 Application 2-28 Mail message format Mail access protocols : protocol for exchanging e msgs RFC 822: standard for text message format: header lines, e.g., To: From: Subject: body the message header body blank line access protocol sender s receiver s : delivery/storage to receiver s access protocol: retrieval from POP: Post Office Protocol authorization and download IMAP: Internet Mail Access Protocol more features manipulation of stored msgs on HTTP: g, Hot, Yahoo! Mail, etc. Application 2-29 Application 2-30 5

DNS DNS services hostname to IP address translation load distribution replicated Web s: set of IP addresses for one canonical name Why not centralize DNS? single point of failure traffic volume distant centralized database maintenance doesn t scale! Distributed, Hierarchical Database Root DNS Servers com DNS s org DNS s edu DNS s yahoo.com DNS s amazon.com DNS s pbs.org DNS s poly.edu umass.edu DNS s DNS s wants IP for www.amazon.com; 1 st approx: queries a root to find com DNS queries com DNS to get amazon.com DNS queries amazon.com DNS to get IP address for www.amazon.com Application 2-31 Application 2-32 DNS: Root name s TLD and Authoritative Servers a Verisign, Dulles, VA c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 21 locations) e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 36 other locations) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA k RIPE London (also 16 other locations) i Autonomica, Stockholm (plus 28 other locations) m WIDE Tokyo (also Seoul, Paris, SF) 13 root name s worldwide Top-level domain (TLD) s: responsible for com, org, net, edu etc. and country domains, e.g.: se, uk, fr, ca Authoritative DNS s: organization s DNS s, hostname to IP mappings for organization s s maintained by organization or service provider Application 2-33 Application 2-34 DNS name resolution example host wants IP address for eit.lth.se local DNS 1 2 8 requesting host root DNS 3 4 5 7 TLD DNS 6 authoritative DNS DNS name resolution example recursive query: puts burden of name resolution on contacted name local DNS 1 2 8 requesting host root DNS 7 6 5 3 4 authoritative DNS TLD DNS Application 2-35 Application 2-36 6

Minimum Distribution Time DNS: caching and updating records DNS s learn mapping, it caches mapping cache entries timeout after some time TLD s typically cached in local name s Thus root name s not often visited DNS protocol, messages DNS protocol : query and reply messages, both with same message format Header identification: 16 bit # for query, reply to query uses same # flags: query or reply recursion desired recursion available reply is authoritative Application 2-37 Application 2-38 Pure P2P architecture File Distribution: Server-Client vs P2P no always-on end systems directly communicate peers are not always connected and change IP addresses peer-peer Question : How much time to distribute file from one to N peers? File, size F Server u 1 d 1 u 2 u s d2 u s : upload bandwidth u i : peer i upload bandwidth d i : peer i download bandwidth d N u N Network (with abundant bandwidth) Application 2-39 Application 2-40 Server- vs. P2P: example 3.5 3 2.5 2 P2P Client-Server File distribution: BitTorrent P2P file distribution tracker: tracks peers participating in torrent torrent: group of peers exchanging chunks of a file 1.5 1 0.5 0 0 5 10 15 20 25 30 35 N obtain list of peers peer trading chunks Application 2-41 Application 2-42 7

BitTorrent file divided into 256KB chunks. peer joining torrent: has no chunks, but will accumulate them over time registers with tracker to get list of peers, connects to subset of peers ( neighbors ) while downloading, peer uploads chunks to other peers. peers may come and go once peer has entire file, it may (selfishly) leave or (altruistically) remain BitTorrent Pulling Chunks at any given time, different peers have different subsets of file chunks periodically, a peer (Alice) asks each neighbor for list of chunks that they have. Alice sends requests for her missing chunks rarest first Sending Chunks: tit-for-tat Alice sends chunks to four neighbors currently sending her chunks at the highest rate re-evaluate top 4 every 10 secs every 30 secs: randomly select another peer, starts sending chunks newly chosen peer may join top 4 Application 2-43 Application 2-44 P2P example: Skype pairs of s communicate proprietary application-layer protocol hierarchical overlay with SNs Index maps names to IP addresses; distributed over SNs Skype login Skype s (SC) Supernode (SN) Application 2-45 8