Chapter 2: Application Layer

Size: px
Start display at page:

Download "Chapter 2: Application Layer"

Transcription

1 Chapter 2: Application Layer Our goals: Conceptual aspects of network application protocols transport-layer service models client-server paradigm peer-to-peer paradigm learn about protocols by examining some application-level protocols HTTP SMTP DNS P2P Content distribution networks (CDNs) programming network applications sockets API Application Layer (SSL) 1 Chapter 2: outline 2.1 principles of 2.5 P2P applications network video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer 2-2 1

2 Creating a network app Write programs that run on (different) end systems communicate over network e.g., web server software communicates with browser software No need to write software for network-core devices This approach allows for rapid app development application transport network data link physical application transport network data link physical application transport network data link physical Application Layer (SSL) 3 Application architectures Client-server to scale > racks of servers in a datacenter to improve throughput and response time -> geographically distributed clusters of servers in CDNs Peer-to-peer (P2P) difficult to manage -> super nodes (with some server characteristics) needed in addition to regular peers Application Layer (SSL) 4 2

3 Client-server architecture client/server server: always-on host permanent IP address data centers for scaling clients: communicate with server (speak first) may be intermittently connected may have dynamic IP addresses do not communicate directly with each other Application Layer (SSL) 5 Pure P2P architecture no always-on server arbitrary end systems directly communicate peers are intermittently connected and may change IP addresses difficult to manage find content or another peer by broadcast (flooding) NAT traversal problem peer-peer Example: BitTorrent has trackers (super nodes that manage the peers and chunks of a torrent) Application Layer (SSL) 6 3

4 Processes communicating Process: program running within a host. within same host, two processes communicate using inter-process communication (defined by OS). processes in different hosts communicate by exchanging messages Client process: process that initiates communication Server process: process that waits to be contacted Note: client & server processes run in P2P as well as client-server apps Note: A process in these slides may be a thread instead Application Layer (SSL) 7 Addressing processes to receive messages, process must have an identifier host device has unique 32-bit IP address Q: Is IP address of host on which process runs enough for identifying the process? A: No, many processes can be running on same host identifier includes both IP address and port number associated with process on host. Example port numbers: HTTP server: 80 Mail server: 25 to send HTTP message to gaia.cs.umass.edu web server: IP address: Port number: 80 more shortly Application Layer (SSL) 8 4

5 App-layer protocol specs Types of messages exchanged, e.g., request, response Message syntax: what fields in messages & how fields are delineated Message semantics meaning of information in fields Rules for when and how processes send & respond to messages Public-domain protocols: defined in RFCs which enable interoperability e.g., HTTP, SMTP Proprietary protocols: e.g., Skype Application Layer (SSL) 9 What transport service does an app need? Data loss some apps (e.g., audio) can tolerate some loss other apps (e.g., file transfer, telnet, ) require 100% reliable data transfer Timing some apps (e.g., Internet t telephony, interactive games) require low delay to be effective Throughput some apps (e.g., audio, video) require minimum amount of throughput h t to be effective other apps ( elastic apps ) make use of whatever throughput they get Security Encryption, data integrity, (in app layer, e.g. SSL/TLS) Application Layer (SSL) 10 5

6 Transport service requirements of common apps Application Data loss Throughput Time Sensitive file transfer Web documents interactive audio/video streaming stored audio/video interactive games instant messaging no loss no loss no loss loss-tolerant loss-tolerant loss-tolerant no loss elastic no elastic no elastic (few kbps) no audio: 5kbps-1Mbps yes, 100 s of ms video:10kbps-5mbps same as above yes, few secs few kbps up elastic yes, 100 s of ms yes and no Application Layer (SSL) 11 Internet transport protocols services TCP service: UDP service: connection-oriented: setup unreliable data required between client and transfer between server processes; state info sending and receiving reliable transport: between processes sending and receiving process does not provide: flow control: sender won t connection setup, overwhelm receiver reliability, flow control, congestion control, timing, congestion control: throughput guarantee, or throttle sender when network security is overloaded does not provide: timing, minimum throughput guarantee, security Q: why bother? Why is there a UDP? Application Layer (SSL) 12 6

7 Internet apps: application & transport protocols Application remote terminal access Web file transfer streaming multimedia Application layer protocol SMTP [RFC 5321] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (e. g., Youtube) Underlying transport protocol TCP TCP TCP TCP TCP Internet telephony SIP[RFC 3261],RTP[RFC 3550], proprietary(e.g., Skype) UDP or TCP Application Layer (SSL) 13 Chapter 2: outline 2.1 principles of 2.5 P2P applications network video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer

8 Web and HTTP First some jargon Web page consists of base HTML-file which includes several referenced objects Object can be HTML file, JPEG image, Java applet, audio file, Each object is addressable by a URL, for example host name path name Application Layer (SSL) 15 HTTP overview HTTP: hypertext transfer protocol Web s application layer protocol client/server model client: browser that requests, receives, displays Web objects server: Web server sends objects in response to requests PC running Explorer Server running Apache Web server Mac running Chrome Application Layer (SSL) 16 8

9 HTTP overview (continued) Uses TCP: client initiates TCP connection (creates socket) to server, port 80 server accepts TCP connection from client HTTP messages exchanged between browser (HTTP client) and Web server (HTTP server) 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 server/client crashes, their views of state may be inconsistent, must be reconciled Application Layer (SSL) 17 Nonpersistent HTTP Suppose user enters URL (contains text, references to 10 jpeg images) 1a. HTTP client initiates TCP connection to HTTP server (process) at on port HTTP client sends HTTP request message (containing URL) into TCP connection socket. Message indicates that client wants object somedepartment/home.index time 1b. HTTP server at host waiting for TCP connection at port 80, accepts connection, notifying client 3. HTTP server receives request message, forms response message containing requested object, and sends message into its socket Application Layer (SSL) 18 9

10 Nonpersistent HTTP (cont.) time 5. HTTP client receives response message containing html file, displays html. Parsing html file, finds 10 referenced jpeg objects 6. Steps 1-5 repeated for each of 10 jpeg objects 4. HTTP server closes TCP connection. Application Layer (SSL) 19 Non-Persistent HTTP: Response time Definition of RTT: time for a small packet to travel from client to server and back. Response time: one RTT to initiate TCP connection one RTT for HTTP request and first few bytes of HTTP response to return initiate TCP connection file response time total = 2RTT+ file transmission time RTT request file RTT file received time time time to transmit file Application Layer (SSL) 20 10

11 Nonpersistent vs. Persistent HTTP Nonpersistent HTTP delay requires 2 additional RTTs for an object most browsers open parallel TCP connections to fetch referenced objects very little additional time for all reference objects but OS overhead to allocate host resources for all TCP connections Persistent HTTP delay server leaves connection open after sending response subsequent HTTP messages between client/server are sent over same connection client sends a new request as soon as it encounters a referenced object (pipelining) as little as one additional RTT for all referenced objects (plus their transmission time) Application Layer (SSL) 21 HTTP history Nonpersistent HTTP At most one object is sent over a TCP connection Version 0.9 (in 1991) only one method (GET) only one object type (HTML) Version 1.0 (in 1996) Persistent HTTP Version 1.1 (since 1999) multiple objects can be sent over single TCP connection between client and server. pipelining of requests Version 2 (since 2015) allows server push multiplexing requests over a single TCP connection without HOL blocking Application Layer (SSL) 22 11

12 HTTP request message two types of HTTP messages: request, response HTTP request message: ASCII (human-readable format) request line (GET, POST, HEAD commands) Carriage return, line feed indicate end of header lines GET /somedir/page.html HTTP/1.1\r\n Host: User-agent: Mozilla/5.0\r\n header Connection: close\r\n lines Accept-language:fr\r\n \r\n Application Layer (SSL) 23 HTTP request message: general format Application Layer (SSL) 24 12

13 Uploading form input Post method: Web page often includes form input Input is uploaded to server in entity body GET method: Uses GET method Entity body is empty Input is uploaded in URL field of request line: Application Layer (SSL) 25 Method types HTTP/1.0 GET POST HEAD asks server to leave requested object out of response HTTP/1.1 GET, POST, HEAD PUT uploads file in entity body to path specified in URL field DELETE deletes file specified in the URL field (others) Application Layer (SSL) 26 13

14 HTTP response message status line (protocol status code status phrase) data, e.g., requested HTML file header lines HTTP/ OK\r\n Connection close\r\n Date: Tue, 09 Aug :00:15 GMT\r\n Server: Apache/2.2.3 (CentOS)\r\n Last-Modified: Tue, 09 Aug \r\n Content-Length: 6821\r\n Content-Type: text/html\r\n \r\n data data data data data... Aside: several other methods to indicate length of a response Application Layer (SSL) 27 Cookies: keeping state info client Cookie file usual http request msg usual http response + ebay: 8734 Set-cookie: 1678 server Amazon server creates ID 1678 for user Cookie file amazon: 1678 ebay: 8734 one week klater: Cookie file amazon: 1678 ebay: 8734 usual http request msg cookie: 1678 usual http response msg usual http request msg cookie: 1678 usual http response msg cookiespecific action cookiespectific action Application Layer (SSL) 28 14

15 Cookies Application end points keep state at client and server across multiple transactions http messages carry state info but http protocol is stateless What cookies can bring: authorization shopping carts recommendations user session state (Web ) Cookies and privacy: cookies permit sites (including third parties) to learn a lot about you Application Layer (SSL) 29 Web cache (proxy server) Goal: satisfy client request without involving origin servers user sets browser: web accesses via origin cache browser sends all HTTP requests to cache if object is not in cache, request object from origin server, then return object to client else cache returns object client client Proxy server server origin server Application Layer (SSL) 30 15

16 More about Web caching cache acts as both client and server typically cache is installed by ISP (university, company, residential ISP) Why Web caching? reduce response time for client request reduce traffic on an institution s access link. Application Layer (SSL) 31 Caching example Assumptions average object size = 1 Mbits avg. request rate from institution s browsers to origin servers = 15/sec Internet delay (ISP router to any origin server and back) = 2 sec Consequences utilization on LAN = 15% institutional utilization on access link = 100% network total delay = Internet delay + access link delay + LAN delay = 2 seconds + minutes second many lost packets in reponses public Internet 15 Mbps access link origin servers 100 Mbps LAN institutional cache Assumption: request is very short and takes no time to transmit Application Layer (SSL) 32 16

17 Caching example (2) possible solution increase bandwidth of access link to, say, 100 Mbps public Internet origin servers consequence utilization on LAN = 15% utilization on access link = 15% Total delay = Internet delay + access link delay + LAN delay = seconds institutional network 100 Mbps access link 100 Mbps LAN often a costly upgrade institutional cache Application Layer (SSL) 33 Caching example (3) possible solution: install cache suppose hit rate is 0.4 consequence 40% requests will be satisfied almost immediately 60% requests satisfied by origin servers utilization of access link reduced to 60%, resulting in negligible delay (say 70 ms) ave. total delay = Internet delay + access link delay + LAN delay = 0.6*( ) + 0.4* ( ) seconds = 1.25 sec institutional network public Internet 15 Mbps access link origin servers 100 Mbps LAN institutional cache Application Layer (SSL) 34 17

18 Conditional GET Goal: don t send object if cache has up-to-date cached cache version indicatesdateof HTTP request msg cache: date If-modified-since: cached copy in HTTP request <date> to server If-modified-since: HTTP response <date> HTTP/ Not Modified server: response contains no object if cached copy is upto-date: HTTP/ Not Modified HTTP request msg If-modified-since: <date> HTTP response HTTP/ OK <data> server object not modified object modified Application Layer (SSL) 35 Chapter 2: outline 2.1 principles of 2.5 P2P applications network video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer

19 Electronic Mail Major components: user agents mail servers simple mail transfer protocol: SMTP User Agent a.k.a. mail reader composing, editing, reading mail messages e.g., Outlook, alpine, Mozilla Thunderbird, iphone mail client user agent mail server SMTP mail server SMTP SMTP outgoing message queue mail server user mailbox user agent user agent user agent user agent user agent Application Layer (SSL) 37 Electronic Mail: mail servers Mail Servers mailbox contains incoming messages for user message queue of outgoing mail (to be sent) mail messages SMTP protocol between mail servers to send messages client : sender server : receiver Looks like it is the very first (hybrid) P2P system! server SMTP mail server user agent user agent SMTP SMTP user agent mail server user agent user agent user agent Application Layer (SSL) 38 19

20 Mail access protocols user agent SMTP SMTP Mail access protocol sender s mail server receiver s mail server SMTP: for delivery to receiver s server Mail access protocol: for retrieval from server POP: Post Office Protocol [RFC 1939] authorization (agent <-->server) and download user agent IMAP: Internet Mail Access Protocol [RFC 3501] more features (keeps user state across sessions) manipulation of stored msgs in folders on server Web use HTTP for both send and receive Application Layer (SSL) 39 Electronic Mail: SMTP uses TCP to reliably transfer message from client to server, port 25 direct transfer: sending server to receiving server three phases of transfer handshaking (greeting) transfer of messages (persistent connection) closure command/response interaction commands: ASCII text response: status code and phrase messages must be in 7-bit ASCII Application Layer (SSL) 40 20

21 Sample smtp interaction (after TCP connection established) S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: S: 250 Sender ok C: RCPT TO: S: 250 Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C:. S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection Application Layer (SSL) 41 Try SMTP interaction for yourself: telnet servername 25 see 220 reply from server enter HELO, MAIL FROM, RCPT TO, DATA, QUIT commands above lets you send without using client (reader) Log on a UTCS linux machine. Then do telnet mailbox2.cs.utexas.edu 25 (opens TCP conn.) Application Layer (SSL) 42 21

22 Mail message format SMTP (rfc 5321): protocol for exchanging msgs rfc 5322: standard for text message format: header lines, e.g., To: From: Subject: different from SMTP commands and responses body the message, ASCII characters only header body blank line Application Layer (SSL) 43 Message format: multimedia extensions Multipurpose Internet Mail Extensions (MIME) additional lines in msg header declare media content types (also multipart content types) MIME version method used to encode data multimedia data type, subtype, parameter declaration encoded data From: To: Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data base64 encoded data Application Layer (SSL) 44 22

23 Chapter 2: outline 2.1 principles of 2.5 P2P applications network video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer 2-45 DNS: Domain Name System People: many identifiers: SSN, name, passport # Internet hosts, routers: IP address (32 bit) - used for addressing datagrams name, e.g., - used by humans Required: map between name and IP addresses Domain Name System: distributed database implemented as a hierarchy of many name servers application-layer protocol used to resolve names (address/name translation) note: core Internet function, implemented as applicationlayer protocol complexity at network s edge Application Layer (SSL) 46 23

24 DNS DNS services Hostname to IP address translation Host alias Canonical and alias names Mail server alias Load distribution Replicated Web server: a set of IP addresses for one canonical host name Why not centralized DNS? single point of failure traffic volume distant centralized database maintenance/update doesn t scale! Application Layer (SSL) 47 Distributed, Hierarchical Database Root DNS Servers Top-level domains.com DNS servers.org DNS servers.edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS servers poly.edu umass.edu DNS servers DNS servers Client wants IP address for 1 st approx: Client queries a root server to find.com DNS server Client queries.com DNS server to get amazon.com DNS server Client queries amazon.com DNS server to get IP address for Application Layer (SSL) 48 24

25 DNS: root name servers c. Cogent, Herndon, VA (5 other sites) d. U Maryland College Park, MD h. ARL Aberdeen, MD j. Verisign, Dulles VA (69 e. NASA Mt View, CA other sites ) f. Internet Software C. Palo Alto, CA (and 48 other sites) a. Verisign, Los Angeles (5 other sites) b. USC-ISI Marina del Rey, CA l. ICANN Los Angeles, CA (41 other sites) g. US DoD Columbus, OH (5 other sites) k. RIPE London (17 other sites) i. Netnod, Stockholm (37 other sites) 13 root name servers worldwide m. WIDE Tokyo (5 other sites) Application Layer (SSL) 49 TLD and Authoritative Servers Top-level domain (TLD) servers: responsible for.com,.org,.net,.edu,, and all top-level country domains.uk,.fr,.ca,.jp Verisign maintains servers for.com TLD Educause for.edu TLD Authoritative DNS servers: organization s DNS servers, providing authoritative hostname-to-ip mappings for organization s named hosts (e.g., Web and mail). Can be locally maintained by organization or a service provider Application Layer (SSL) 50 25

26 Local Name Server does not strictly belong to hierarchy each hisp( (residential lisp, company, university) has one. also called default name server when host makes DNS query, query is sent to its local DNS server which h acts as proxy, forwards query into hierarchy Application Layer (SSL) 51 DNS name resolution example Host at cis.poly.edu wants IP address for gaia.cs.umass.edu It sends a recursive query to local DNS server iterated query: contacted server replies with name of server to contact I don t know this name, but ask this other server 2 local DNS server dns.poly.edu 1 8 requesting host cis.poly.edu root DNS server 3 TLD DNS server authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu Application Layer (SSL) 52 26

27 DNS: caching when (any) name server learns mapping, it caches mapping cached entries timeout (disappear) after some time (e.g., 2 days) TLD servers typically cached in local name servers -Thus root name servers not often visited cached entries may be out-of-date (best effort service) if host changed IP address, this may not be known Internet-wide until all TTLs expire Application Layer (SSL) 53 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 hostname of authoritative name server for this domain Type=CNAME name is alias name for some canonical (the real) name e.g., is really servereast.backup2.ibm.com value is canonical name Type=MX value is host name of mail server associated with name Application Layer (SSL) 54 27

28 DNS protocol messages DNS protocol : query and reply messages, both with same message format msg header identification: 16 bit # for query, reply to query uses same # flags: query or reply recursion desired recursion available reply is authoritative Application Layer (SSL) 55 DNS protocol messages (cont.) Name, type fields for a query RRs in response to query records for authoritative servers additional helpful info that may be used Application Layer (SSL) 56 28

29 Inserting records into DNS Example: just created startup Network Utopia Register name networkutopia.com at a registrar (e.g., Network Solutions) Need to provide registrar with names and IP addresses of your authoritative name servers (primary and secondary) Registrar inserts NS and A resource records for each authoritative server into.com TLD servers: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, , A) Put into authoritative servers, CNAME record for MX record for networkutopia.com, and How do people get the IP address of your Web site? Application Layer (SSL) 57 Chapter 2: outline 2.1 principles of 2.5 P2P applications network video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer

30 P2P architecture no always-on server arbitrary end systems directly communicate peers are intermittently connected and change IP addresses peer-peer Hybrid deployment examples: File distribution, e.g., BitTorrent (has trackers) Internet telephony, e.g., original Skype (had super peers), Application Layer (SSL) 59 File Distribution: Client-Server vs P2P Question : How much time to distribute a file from one server to N peers? u s server upload capacity (bps) Server u i peer i upload u s u 1 d 1 u 2 d2 capacity (bps) d i peer i download capacity (bps) File, size F d N u N Network (with abundant bandwidth) Application Layer (SSL) 60 30

31 Time to distribute file to N users : Client-Server server sequentially sends N copies: Server F NF/u u d s time 1 1 u d s 2 client i takes F/d i time to download d N u N u 2 Network (with abundant bandwidth) Time to distribute F to N clients is (lower bound) T cs max { NF/u s, F/min(d i ) } i When N is large, min(d i ) > u s /N i Application Layer (SSL) 61 Time to distribute file to N users: P2P server must send one Server copy: F/u s time F u d u client i takes F/d u d i time to s 2 download NF bits must be uploaded (aggregate) fastest possible upload rate: u s + Σ 1 i N-1 u i d N u N Network (with abundant bandwidth) T P2P max { F/u s, F/min(d i ), NF/(u s + Σu i ) } i Largest value as N u s > (u s + Σu i )/N and, for large N, min(d i ) > (u s + Σu i )/N i Application Layer (SSL) 62 31

32 Client-server vs. P2P: example Client upload rate = u for all i, F/u = 1 min., u s = 10u, d min u 3.5 Minimum Distribution Tim me P2P Client-Server NF / u = NF /(10 u) s = N /10 min. as N 2 servers N 1 NF /( u + u ) = F / u = 1 min. s i= 1 i What if more than 1 server? I.e., a data center Application Layer (SSL) 63 N Chapter 2: outline 2.1 principles of 2.5 P2P applications network video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer

33 Sockets process sends/receives messages to/from its socket socket analogous to door sending process shoves message out of door it relies on transport infrastructure on other side of door which delivers message to socket at receiving process host or server process socket TCP with buffers, variables controlled by OS controlled by app developer Internet host or server process socket TCP with buffers, variables Application Layer (SSL) 65 Socket programming Goal: learn how to write client and server programs which communicate by sending data into sockets, reading data out of sockets Socket API introduced in BSD4.1 UNIX, 1981 sockets are explicitly created, used, then released by applications client/server paradigm API: choice of a transport protocol and ability to specify a few parameters reliable byte stream unreliable datagram Application Layer (SSL) 66 33

34 Socket programming with TCP Before client contact: server process must first be running server must have created socket (door) that welcomes client s contact Client contacts server by: creating client-local TCP socket specifying IP address, port number of server process When client makes connect call: client TCP establishes connection to server TCP When contacted by client, server TCP creates a new connection socket for server process to communicate with client allows server to talk with multiple clients source IP address and port number used to distinguish clients (more in Chap 3) application viewpoint TCP provides reliable, in-order transfer of byte stream between client and server Application Layer (SSL) 67 Socket API for TCP (BSD Unix) Client side socket(), returns client socket id connect(), need to specify server IP address and port, sends conn req send(), sends to client socket recv(), receives from client socket close(), closes connection note: OS supplies local IP address and port for client Server side socket(), returns server socket id bind(), binds server socket to server IP address and port listen(), willing to accept conn req on server socket accept(), accepts new conn req and returns its connection socket id recv(), receives from connection socket send(), sends to connection socket close(), closes connection Application Layer (SSL) 68 34

35 Client/server socket interaction: TCP server (running on hostid) create socket: port=x serversocket = socket() serversocket.bind() serversocket.listen() wait for incoming connection request connectionsocket = serversocket.accept() TCP connection setup client create socket: clientsocket = socket() connect to hostid, port=x recv request from connectionsocket t send request using clientsocket send reply to connectionsocket close connectionsocket Note: syntax is neither complete nor precise recv reply from clientsocket close clientsocket Application Layer 69 Socket programming with UDP UDP: no connection between client and server no handshaking sender explicitly attaches IP address and port of destination to every packet server must extract IP address, port of sender from every received packet UDP: transmitted data may be received out of order, or lost application viewpoint UDP provides unreliable transfer of groups of bytes ( datagrams ) between client and server Application Layer (SSL) 70 35

36 Socket API for UDP (BSD Unix) Client side Server side socket(), returns client socket(), returns server socket id socket id sendto(), sends to client bind(), binds server socket, need to specify socket to server IP destination s IP address and address and port port recvfrom(), receives recvfrom(), receives from from server socket: client socket: data and data and sender s IP sender s IP address and port address and port sendto(), sends to bind(), optional server socket, need to specify destination s IP note: needs timeout address and port management; OS supplies local IP address and port for client if bind() not used Application Layer (SSL) 71 Client/server socket interaction: UDP server (running on serverip) create socket: port= x serversocket = socket(af_inet, SOCK_DGRAM) serversocket.bind() recv datagram with client s address from serversocket send reply pywith client s address to serversocket client create socket: clientsocket = socket(af_inet, SOCK_DGRAM) create datagram with server IP address and port=x; send datagram to clientsocket recv datagram with server s address from clientsocket close clientsocket Note: syntax is neither complete nor precise Application Layer 72 36

37 Chapter 2: outline 2.1 principles of 2.5 P2P applications network video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP, POP3, IMAP 2.7 socket 24DNS 2.4 programming with UDP and TCP Application Layer 2-73 Video Streaming and CDNs: context video traffic: major consumer of Internet bandwidth Netflix, YouTube: 37%, 16% of downstream residential ISP traffic in 2015 ~1B YouTube users, ~75M Netflix users challenge: scale ~1B users? single mega-video server won t work challenge: heterogeneity different users have different capabilities and bandwidths (e.g., wired versus mobile) solution: distributed, application-level infrastructure Application Layer

38 Multimedia: video CBR: (constant bit rate): video encoding rate fixed spatial coding example: instead of sending N values of same color (all purple), send only two values: color value (purple) and number of repeated values (N).... VBR: (variable bit rate): video encoding rate changes as amount of spatial, temporal coding changes examples: MPEG-1 (CD-ROM) 1.5 Mbps MPEG-2 (DVD) 3-6 Mbps MPEG-4 (often used in Internet < 1 Mbps) frame i temporal coding example: instead of sending complete frame at i+1, send only differences from frame i frame i+1 Application Layer 2-75 Streaming stored video: simple scenario: video server (stored video) Internet client Video can be compressed to essentially any bit rate by trading image quality E.g., Internet video from 100Kbps for low quality to over 3 Mbps for high-definition movies Application Layer

39 Streaming multimedia: DASH Dynamic, Adaptive Streaming over HTTP server: divides video file into multiple chunks chunks stored, encoded at different rates manifest file: provides URLs for different chunks client: periodically measures server-to-client bandwidth consulting manifest, requests one chunk at a time chooses maximum coding rate sustainable at current bandwidth can choose different coding rates at different points in time Application Layer 2-77 Streaming multimedia: DASH (cont.) intelligence at client: client determines when to request chunk -so that t buffer starvation, or overflow does not occur what encoding rate to request - higher quality when more bandwidth available where to request chunk may ypossibly request from another server that has higher available bandwidth (less congested path) [actually client will need help from CDN] Application Layer

40 Content distribution networks challenge: how to stream content (selected from millions of videos) to hundreds of thousands of simultaneous users? option 1: single, large mega-server single point of failure point of network congestion long path to distant clients multiple copies of same video sent over outgoing links.this solution doesn t scale Application Layer 2-79 Content distribution networks option 2: third-party CDN multiple copies of videos at geographically distributed, store/serve sites: enter deep: place CDN servers deep into many access networks close to users e.g., used by Akamai, 1700 locations bring home: smaller number (10 s) of larger clusters in IXPs/POPs near (but not within) access networks e.g., used by Limelight option 3: private CDN, e.g., Google and NetFlix use both enter-deep and bring-home servers Application Layer

41 CDN content access: DNS redirect Bob (client) requests video video stored in KingCDN.com 1. Bob clicks on URL for video 1 on netcinema.com web page netcinema.com netcinema s authoratative DNS 6. request video from KINGCDN server, streamed via HTTP 3. netcinema s DNS returns hostname 1105.KingCDN.com 4 3 KingCDN.com Client resolves video.netcinema.com via local DNS Bob s local DNS server KingCDN authoritative DNS 4&5. Local DNS resolves 1105.KingCDN.com from KingCDN s authoritative DNS, which returns the IP address of a KingCDN server Bob s client then establishes a direct TCP connection with the KingCDN server and issues an HTTP GET request for video Application Layer 2-81 Cluster selection strategy (proprietary) copies of content stored at CDN servers subscriber requests content from CDN directed d to nearby copy, retrieves content t may choose different copy if network path is congested where s Madmen? manifest file Application Layer

42 Case study: Netflix Netflix registration, accounting servers 1 1. Bob manages Netflix account 2. Bob browses Netflix video 2 Amazon cloud 3. Manifest file returned for requested video 3 upload copies of multiple versions of video to CDN servers CDN server Netflix CDN server CDN server 4. DASH streaming Application Layer 2-83 End of Chapter 2 Application Layer (SSL) 84 42

Chapter 2: Application layer

Chapter 2: Application layer Chapter 2: Application layer 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 Socket programming with TCP 2.8 Socket

More information

Review of Previous Lecture

Review of Previous Lecture Review of Previous Lecture Network access and physical media Internet structure and ISPs Delay & loss in packet-switched networks Protocol layers, service models Some slides are in courtesy of J. Kurose

More information

Computer Networking Introduction

Computer Networking Introduction Computer Networking Introduction Halgurd S. Maghdid Software Engineering Department Koya University-Koya, Kurdistan-Iraq Lecture No.5 Chapter 2: outline 2.1 principles of network applications app architectures

More information

Application Layer: , DNS

Application Layer:  , DNS Application Layer: E-mail, DNS EECS 3214 Slides courtesy of J.F Kurose and K.W. Ross, All Rights Reserved 22-Jan-18 1-1 Chapter 2: outline 2.1 principles of network applications 2.2 Web and HTTP 2.3 electronic

More information

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

CSEN 404 Introduction to Networks. Mervat AbuElkheir Mohamed Abdelrazik. ** Slides are attributed to J. F. Kurose CSEN 404 Introduction to Networks Mervat AbuElkheir Mohamed Abdelrazik ** Slides are attributed to J. F. Kurose HTTP Method Types HTTP/1.0 GET POST HEAD asks server to leave requested object out of response

More information

Chapter 2 part B: outline

Chapter 2 part B: outline Chapter 2 part B: outline 2.3 FTP 2.4 electronic, POP3, IMAP 2.5 DNS Application Layer 2-1 FTP: the file transfer protocol at host FTP interface FTP client local file system file transfer FTP remote file

More information

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

Chapter 2: Application Layer. Chapter 2 Application Layer. Some network apps. Application architectures. Chapter 2: Application layer Chapter 2 Application Layer Computer Networking: A Top Down Approach, 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009. Chapter 2: Application Layer Our goals: conceptual, implementation

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and

More information

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

Chapter 2 Application Layer. Lecture 5 DNS. Computer Networking: A Top Down Approach. 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 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 2-1 Chapter 2: outline 2.1 principles

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer Reference: Computer Networking: A Top Down Approach 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2007. Application Layer 1 Chapter 2: Application layer 2.1 Principles

More information

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

FTP. Mail. File Transfer Protocol (FTP) FTP commands, responses. Electronic Mail. TDTS06: Computer Networks TDTS0: Computer Networks Instructor: Niklas Carlsson Email: niklas.carlsson@liu.se FTP Notes derived from Computer Networking: A Top Down Approach, by Jim Kurose and Keith Ross, Addison-Wesley. The slides

More information

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

Lecture 05: Application Layer (Part 02) Domain Name System. Dr. Anis Koubaa NET 331 Computer Networks Lecture 05: Application Layer (Part 02) Domain Name System Dr. Anis Koubaa Reformatted slides from textbook Computer Networking a top-down appraoch, Fifth Edition by Kurose and

More information

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

Chapter 2. Application Layer. Chapter 2: Application Layer. Application layer - Overview. Some network apps. Creating a network appication Mobile network Chapter 2 The Yanmin Zhu Department of Computer Science and Engineering Global ISP Home network Regional ISP Institutional network CSE Department 1 CSE Department 2 Application layer - Overview

More information

CSC 4900 Computer Networks:

CSC 4900 Computer Networks: CSC 4900 Computer Networks: Email Professor Henry Carter Fall 2017 Villanova University Department of Computing Sciences Review Last week we talked about design principles, and the application protocols

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and

More information

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

Application Layer. Pure P2P architecture. Client-server architecture. Processes communicating. Hybrid of client-server and P2P. Creating a network app Application Layer e- web instant messaging remote login PP file sharing multi- network games streaming stored video (YouTube) voice over IP real-time video conferencing cloud computing Creating a network

More information

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

CS4/MSc Computer Networking. Lecture 3: The Application Layer CS4/MSc Computer Networking Lecture 3: The Application Layer Computer Networking, Copyright University of Edinburgh 2005 Network Applications Examine a popular network application: Web Client-server architecture

More information

Chapter II: Application Layer

Chapter II: Application Layer Chapter II: Application Layer UG3 Computer Communications & Networks (COMN) MAHESH MARINA mahesh@ed.ac.uk Slides thanks to Myungjin Lee, and copyright of Kurose and Ross First, a review Web and HTTP web

More information

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

Lecture 7 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 protocols Application: communicating, distributed processes running in network hosts

More information

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

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP Chapter 2: outline 2.1 principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming with UDP and TCP Application

More information

EECS 3214: Computer Network Protocols and Applications

EECS 3214: Computer Network Protocols and Applications EECS 3214: Computer Network Protocols and Applications Suprakash Datta Course page: http://www.eecs.yorku.ca/course/3214 Office: LAS 3043 Email: datta [at] cse.yorku.ca These slides are adapted from Jim

More information

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

Application Layer. Pure P2P architecture. Client-server architecture. Processes communicating. Hybrid of client-server and P2P. Creating a network app 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

More information

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

Lecture 04: Application Layer (Part 01) Principles and the World Wide Web (HTTP) Dr. Anis Koubaa NET 331 Computer Networks Lecture 04: Application Layer (Part 01) Principles and the World Wide Web (HTTP) Dr. Anis Koubaa Reformatted slides from textbook Computer Networking a top-down appraoch, Fifth

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Application Layer Video Streaming, CDN and Sockets Sec 2.6 2.7 Prof. Lina Battestilli Fall 2017 Outline Application Layer (ch 2) 2.1 principles of network

More information

Foundations of Telematics

Foundations of Telematics Foundations of Telematics Chapter 2 Application Layer Principles of network applications Important application protocols Using sockets Acknowledgement: These slides have been prepared by J.F. Kurose and

More information

CSEN 503 Introduction to Communication Networks

CSEN 503 Introduction to Communication Networks CSEN 503 Introduction to Communication Networks 1-1 Mervat AbuElkheir Hana Medhat Ayman Dayf ** Slides are attributed to J. F. Kurose Roadmap: Application layer Cookies and User-Server State Web caches

More information

Application Layer: HTTP

Application Layer: HTTP Application Layer: HTTP EECS 3214 Slides courtesy of J.F Kurose and K.W. Ross, All Rights Reserved 23-Jan-18 1-1 Chapter 2: outline 2.1 principles of network applications 2.2 Web and HTTP 2.3 electronic

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 Application Layer 2-1 Some network apps e-mail web text messaging remote

More information

Web caches (proxy server)

Web caches (proxy server) Web caches (proxy server) goal: satisfy client request without involving origin server user sets browser: Web accesses via cache browser sends all HTTP requests to cache object in cache: cache returns

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer Chapter 2: outline 2.1 principles of network applications 2.2 Web and HTTP 2.3 electronic mail SMTP, POP3, IMAP 2.4 DNS 2.5 P2P applications 2.6 video streaming and content

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer A note on the use of these Powerpoint slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see the animations;

More information

Application layer. Some network apps. Client-server architecture. Hybrid of client-server and P2P. Pure P2P architecture. 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 Application layer Some network apps 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

More information

Web, HTTP and Web Caching

Web, HTTP and Web Caching Web, HTTP and Web Caching 1 HTTP overview HTTP: hypertext transfer protocol Web s application layer protocol client/ model client: browser that requests, receives, displays Web objects : Web sends objects

More information

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

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 CSC358 Week 2 Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright 1996-2016 J.F Kurose and K.W. Ross, All Rights Reserved Logistics Tutorial this Friday Assignment 1 will be out shortly

More information

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

Introduction to Computer Networking. Guy Leduc. Chapter 2 Application Layer. Chapter 2: outline Introduction to Computer Networking Guy Leduc Chapter 2 Application Layer Computer Networking: A Top Down Approach, 7 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2016 2: Application Layer

More information

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

Electronic Mail. Three Components: SMTP SMTP. SMTP mail server. 1. User Agents. 2. Mail Servers. 3. SMTP protocol SMTP Electronic Mail Three Components: 1. User Agents a.k.a. mail reader e.g., gmail, Outlook, yahoo 2. Mail Servers mailbox contains incoming messages for user message queue of outgoing (to be sent) mail

More information

Application-Layer Protocols Peer-to-Peer Systems, Media Streaming & Content Delivery Networks

Application-Layer Protocols Peer-to-Peer Systems, Media Streaming & Content Delivery Networks COMP 431 Internet Services & Protocols Application-Layer Protocols Peer-to-Peer Systems, Media Streaming & Content Delivery Networks Jasleen Kaur February 14, 2019 Application-Layer Protocols Outline Example

More information

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

Applications & Application-Layer Protocols:  (SMTP) and DNS CS 312 Internet Concepts Applications & Application-Layer Protocols: E (SMTP) and DNS Dr. Michele Weigle Department of Computer Science Old Dominion University mweigle@cs.odu.edu http://www.cs.odu.edu/~mweigle/cs312-f11

More information

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

Lecture 6 Application Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it Lecture 6 Application Layer Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it Application-layer protocols Application: communicating, distributed processes running in network hosts

More information

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

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP Chapter 2: outline 2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming

More information

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

Application Layer. Goals: Service models. Conceptual aspects of network application protocols Client server paradigm Application Layer Goals: Conceptual aspects of network application protocols Client server paradigm Service models Review protocols by examining popular application-level protocols HTTP DNS 1 Applications

More information

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

Introduction to Computer Networking. Guy Leduc. Chapter 2 Application Layer. Chapter 2: outline Introduction to Computer Networking Guy Leduc Chapter 2 Application Layer Computer Networking: A Top Down Approach, 6 th edition. Jim Kurose, Keith Ross Addison-Wesley, March 2012 2: Application Layer

More information

Chapter 2 Application Layer

Chapter 2 Application Layer CSF531 Advanced Computer Networks 高等電腦網路 Chapter 2 Application Layer 吳俊興 國立高雄大學資訊工程學系 Chapter 2: Outline 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3,

More information

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

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 5 CMPE 150/L : Introduction to Computer Networks Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 5 1 Any problem of your lab? Due by next Monday (Jan 29) Using Canvas? Email me cqian12@ucsc.edu

More information

Chapter 2. Application Layer. 2: Application Layer 1

Chapter 2. Application Layer. 2: Application Layer 1 Chapter 2 Application Layer 2: Application Layer 1 Some network apps e-mail web instant messaging remote login P2P file sharing multi-user network games streaming stored video clips voice over IP real-time

More information

Chapter 2 Application Layer. Lecture 4: principles of network applications. Computer Networking: A Top Down Approach

Chapter 2 Application Layer. Lecture 4: principles of network applications. Computer Networking: A Top Down Approach Chapter 2 Application Layer Lecture 4: principles of network applications Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 Application Layer 2-1 Chapter

More information

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

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition ELEC / COMP 177 Fall 2012 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Homework #1 Assigned today Due in one week Application layer: DNS, HTTP, protocols Recommend you start early

More information

Section 2: Application layer

Section 2: Application layer Section 2: Application layer 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 Socket programming with UDP 2.8 Socket

More information

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

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition ELEC / COMP 177 Fall 2013 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Project 1 Python HTTP Server Work day: Next Tuesday (Sept 24 th ) Due Thursday, September 26 th by 11:55pm

More information

CMSC 332 Computer Networking Web and FTP

CMSC 332 Computer Networking Web and FTP CMSC 332 Computer Networking Web and FTP Professor Szajda CMSC 332: Computer Networks Project The first project has been posted on the website. Check the web page for the link! Due 2/2! Enter strings into

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and

More information

CC451 Computer Networks

CC451 Computer Networks CC451 Computer Networks Lecture 4 Application Layer (cont d) Application Layer 1 Chapter 2: Application layer 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3,

More information

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

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 CSC358 Week 3 Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright 1996-2016 J.F Kurose and K.W. Ross, All Rights Reserved Logistics Assignment 1 Tutorial 2 is programming exercise,

More information

WWW: the http protocol

WWW: the http protocol Internet apps: their protocols and transport protocols Application e-mail remote terminal access Web file transfer streaming multimedia remote file Internet telephony Application layer protocol smtp [RFC

More information

Chapter 2: Application layer

Chapter 2: Application layer Chapter 2 Application Layer A note on the use of these ppt slides: Were making these slides freely available to all (faculty, students, readers). Theyre in PowerPoint form so you can add, modify, and delete

More information

EECS 3214: Computer Network Protocols and Applications

EECS 3214: Computer Network Protocols and Applications EECS 3214: Computer Network Protocols and Applications Suprakash Datta datta@cse.yorku.ca Office: LAS 3043 Phone: 416-736-2100 ext 77875 Course page: http://www.cse.yorku.ca/course/3214 These slides are

More information

DATA COMMUNICATOIN NETWORKING

DATA COMMUNICATOIN NETWORKING DATA COMMUNICATOIN NETWORKING Instructor: Ouldooz Baghban Karimi Course Book: Computer Networking, A Top-Down Approach By: Kurose, Ross Introduction Course Overview Basics of Computer Networks Internet

More information

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

Networking. Layered Model. DoD Model. Application Layer. ISO/OSI Model Networking Networking is concerned with the physical topology of two or more communicating entities and the logical topology of data transmission. Layered Model Systems communicate over a shared communication

More information

Internet applications. 2: Application Layer 1

Internet applications. 2: Application Layer 1 Internet applications 2: Application Layer 1 Recall Internet architecture Intelligence at end systems e.g., web server software communicates with browser software No need to write software for network-core

More information

Computer Networks. Wenzhong Li. Nanjing University

Computer Networks. Wenzhong Li. Nanjing University Computer Networks Wenzhong Li Nanjing University 1 Chapter 8. Internet Applications Internet Applications Overview Domain Name Service (DNS) Electronic Mail File Transfer Protocol (FTP) WWW and HTTP Content

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see the animations;

More information

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

Network Application. Topic. Principle of Network Application. Principle of Network Application Topic Network Application o Principle of Network Application o Web & HTTP o FTP o E-mail o DNS o Peer-to-peer 2 Principle of Network Application o Network Applications e-mail web instant messaging remote

More information

HyperText Transfer Protocol

HyperText Transfer Protocol Outline Introduce Socket Programming Domain Name Service (DNS) Standard Application-level Protocols email (SMTP) HTTP HyperText Transfer Protocol Defintitions A web page consists of a base HTML-file which

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Application Layer: Cookies, Web Caching, SMTP Sec 2.2.4-2.4 Prof. Lina Battestilli Fall 2017 Outline Application Layer (ch 2) 2.1 principles of network

More information

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

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 6 CMPE 150/L : Introduction to Computer Networks Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 6 1 Midterm room for overflow students The students who used my registration code to enroll

More information

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

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4 CMPE 150/L : Introduction to Computer Networks Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4 1 Lab schedule confirmation Mondays, 12:00-2:00pm Tuesdays, 11:00am-1:00pm Wednesdays, 4:00-6:00pm

More information

Chapter 2: Application Layer

Chapter 2: Application Layer Chapter 2: Application Layer Course on Computer Communication and Networks, CTH/GU The slides are adaptation of the slides made available by the authors of the course s main textbook: Computer Networking:

More information

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

1-1. Switching Networks (Fall 2010) EE 586 Communication and. September Lecture 10 EE 586 Communication and Switching Networks (Fall 2010) Lecture 10 September 17 2010 1-1 Announcement Send me your group and get group ID HW3 (short) out on Monday Personal leave for next two weeks No

More information

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

Domain Name System (DNS) 김현철 ( 화 ) 정보통신융합서울대학교컴퓨터공학부 Domain Name System (DNS) 김현철 2010.09.29 ( 화 ) 정보통신융합서울대학교컴퓨터공학부 Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students,

More information

Layered Model. DoD Model. ISO/OSI Model

Layered Model. DoD Model. ISO/OSI Model Data Communications vs Networking (later) Communication is concerned with the transmission of data over a communication medium/channel between two entities. Here we are more concerned about EE issues such

More information

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

Domain Name Service. DNS Overview. October 2009 Computer Networking 1 Domain Name Service DNS Overview October 2009 Computer Networking 1 Why DNS? Addresses are used to locate objects (contain routing information) Names are easier to remember and use than numbers DNS provides

More information

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

Application Layer. Applications and application-layer protocols. Goals: 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

More information

Chapter 1 Introduction

Chapter 1 Introduction Chapter 1 Introduction Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 Slides adopted from original ones provided by the textbook authors. Introduction

More information

CS 3516: Advanced Computer Networks

CS 3516: Advanced Computer Networks Welcome to CS 3516: Adanced Computer Networks Prof. Yanhua Li Time: 9:00am 9:50am M, T, R, and F Location: Fuller 320 Fall 2017 A-term 1 Some slides are originally from the course materials of the textbook

More information

Lecture 7: Application Layer Domain Name System

Lecture 7: Application Layer Domain Name System Lecture 7: Application Layer Domain Name System COMP 332, Spring 2018 Victoria Manfredi Acknowledgements: materials adapted from Computer Networking: A Top Down Approach 7 th edition: 1996-2016, J.F Kurose

More information

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

Chapter P2P file sharing network applications 2.22 Web and HTTP 2.3 FTP DNS Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and

More information

Application Layer Chapter 2

Application Layer Chapter 2 Application Layer Chapter 2 Silvia Giordano SUPSI CH-6928 Manno silvia.giordano@supsi.ch http://www.supsi.ch SUPSI-DTI Silvia Giordano 10/06/2004 Application Layer 1 Chapter goals: learn about protocols

More information

Application Layer. Goals:

Application Layer. Goals: Application Layer Goals: Conceptual aspects of network application protocols Client server paradigm Service models Learn about protocols by examining popular applicationlevel protocols HTTP DNS SMTP, POP3,

More information

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

Application Layer. Applications and application-layer protocols. Goals: Application Layer Goals: Conceptual aspects of network application protocols Client server paradigm Service models Learn about protocols by examining popular applicationlevel protocols HTTP DNS SMTP, POP3,

More information

Introduction to the Application Layer. Computer Networks Term B14

Introduction to the Application Layer. Computer Networks Term B14 Introduction to the Application Layer Computer Networks Term B14 Intro to Application Layer Outline Current Application Layer Protocols Creating an Application Application Architectures Client-Server P2P

More information

internet technologies and standards

internet technologies and standards Institute of Telecommunications Warsaw University of Technology 2015 internet technologies and standards Piotr Gajowniczek Andrzej Bąk Michał Jarociński Internet application layer introduction The majority

More information

Course on Computer Communication and

Course on Computer Communication and Chapter 2: Application Layer Course on Computer Communication and Networks, CTH/GU The slides are adaptation ti of the slides made available by the authors of the course s main textbook: Computer Networking:

More information

Chapter II: Application Layer

Chapter II: Application Layer Chapter II: Application Layer UG3 Computer Communications & Networks (COMN) Myungjin Lee myungjin.lee@ed.ac.uk Slides copyright of Kurose and Ross Internet hourglass Here 2 Some network apps e-mail web

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see the animations;

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All material copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights

More information

CS 3516: Advanced Computer Networks

CS 3516: Advanced Computer Networks Welcome to CS 3516: Advanced Computer Networks Prof. Yanhua Li Time: 9:00am 9:50am, T, R, and F Location: Fuller 320 Fall 2017 A-term 1 Some slides are originally from the course materials of the textbook

More information

Application Layer Protocols

Application Layer Protocols Application Layer Protocols Dr. Ihsan Ullah Department of Computer Science & IT University of Balochistan, Quetta Pakistan Email: ihsan.ullah.cs@gmail.com These slides are adapted from the slides accompanying

More information

Chapter 2 outline. 2.1 Principles of app layer protocols

Chapter 2 outline. 2.1 Principles of app layer protocols Chapter 2 outline 2.1 Principles of app layer protocols clients and servers app requirements 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.5 DNS 2.6 Socket programming with TCP 2.7 Socket

More information

Lecture 6: Application Layer Web proxies, , and SMTP

Lecture 6: Application Layer Web proxies,  , and SMTP Lecture 6: Application Layer Web proxies, Email, and SMTP COMP 332, Spring 2018 Victoria Manfredi Acknowledgements: materials adapted from Computer Networking: A Top Down Approach 7 th edition: 1996-2016,

More information

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

CS 43: Computer Networks. 10: Naming and DNS September 24, 2018 CS 43: Computer Networks 10: Naming and DNS September 24, 2018 Last class Distributed systems architectures Client-Server Peer-to-Peer Challenges in design Partial failures Event ordering Lecture 10 -

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer Computer Networking: A Top Down Approach, 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2007. 2: Application Layer 1 Chapter 2: Application layer 2.1 Principles

More information

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

Applications Layer Protocols. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806 Applications Layer Protocols Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806 1 Acknowledgements Some pictures used in this presentation were obtained

More information

Computer Networks and Applications

Computer Networks and Applications COMP 3331/COMP 9331 Week 2 Introduction(Protocol Layering) & Application Layer (Principles, Web, E- mail) Reading Guide: Chapter 1, Sections 1.5 Chapter 2, Sections 2.1-2.4 Week2: Introduction & Application

More information

Lecture 2 - Application Layer. Lecture 1 Review. Application Layer. Principles of network applications. Notes. Notes. Notes. Notes

Lecture 2 - Application Layer. Lecture 1 Review. Application Layer. Principles of network applications. Notes. Notes. Notes. Notes Lecture 2 - Application Layer Networks and Security Jacob Aae Mikkelsen IMADA September 9, 2013 September 9, 2013 1 / 101 Lecture 1 Review Explain in short the following terms Protocol Network Edge Network

More information

Goal and A sample Network App

Goal and A sample Network App Application Layer Goal and A sample Network App Write programs that run on different end systems and communicate over a network. e.g., Web: Web server software communicates with browser software Little

More information

Multimedia: video ... frame i+1

Multimedia: video ... frame i+1 Multimedia: video video: sequence of images displayed at constant rate e.g. 24 images/sec digital image: array of pixels each pixel represented by bits coding: use redundancy within and between images

More information

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

Internet Protocol Stack! Principles of Network Applications! Some Network Apps (and Their Protocols)! Application-Layer Protocols! Our goals:! Internet Protocol Stack! Principles of Network Applications! application: supporting network applications!! HTTP,, FTP, etc.! transport: endhost-endhost data transfer!! TCP, UDP! network: routing of datagrams

More information

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. outline. Some network apps. Client-server architecture. Application architectures Chapter 2: Application Layer Chapter 2: layer outline 2.1 principles of s 2.2 Web and HTTP 2.3 electronic, POP3, IMAP 2.4 socket programming with UDP and TCP our goals: conceptual, implementation aspects

More information

Chapter 2: application layer

Chapter 2: application layer Chapter 2: outline 2.1 principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications Application Layer 2-1 Chapter 2: application layer our

More information

Application Layer. CMPS 4750/6750: Computer Networks

Application Layer. CMPS 4750/6750: Computer Networks Application Layer CMPS 4750/6750: Computer Networks 1 Agenda Principles of Network Applications Case Studies Web and HTTP Email Domain Name System (DNS) Peer-to-Peer File Sharing Socket Programming with

More information