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

Size: px
Start display at page:

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

Transcription

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

2 Applications + App Layer Protocols Applications, app. processes E.g., , WWW, DNS, P2P file sharing, instant messaging Run in end systems (hosts) Mostly Client (User Agent) / Server Exchange messages Application-layer protocols Define messages exchanged by the applications E.g. HTTP, FTP, DNS, SMTP, POP3, IMAP Use services provided by lower layer protocols (TCP, UDP) Network Programming Socket API to access TCP/UDP application transport network data link physical application transport network data link physical application transport network data link physical László Böszörményi Computer Networks Application Layer - 2

3 Client / Server Communication Client Initiates contact with server ( speaks first ) Requests service from server Web client: typically a browser client in mail reader Server Provides requested service to client Web server sends requested page Mail server delivers Push vs. Pull communication model application transport network data link physical Control is at the receiver, who pulls the info E.g. a Web browser or a mail reader Control is at the sender, who pushes the info E.g. a server broadcasting news request reply application transport network data link physical László Böszörményi Computer Networks Application Layer - 3

4 App-layer protocol defines Types of messages exchanged E.g. request & response Syntax of message types What fields in messages How fields are delineated Semantics of the fields Meaning of the information in fields Rules for when and how processes send & respond to messages Public-domain protocols E.g. HTTP, SMTP, POP3, IMAP, SOAP Proprietary protocols E.g. KaZaA László Böszörményi Computer Networks Application Layer - 4

5 Addressing of processes For a process to receive messages, it must have a unique identifier Every host (NIC) has a unique 32-bit IP address (4 bytes) E.g (byte values [ ]) Hierarchical structure, hierarchical assignment The IP address does not suffice On each host many processes may run Identification inside a host Port number Some conventions, as HTTP at port 80, Mail server at port 25 A full process identifier (Transport Service Access Point) IP address + port number Like phone number of a company and the extension for offices E.g László Böszörményi Computer Networks Application Layer - 5

6 Web and HTTP A web page consists of objects Protocol Object can be HTML file, JPEG image, Java applet, audio file, Web page usually consists of base HTML-file which includes several referenced objects Each object is addressable by a URL (Uniform Resource Locator) somedept/pic.gif Pathname The Web s AL protocol: HTTP (Hypertext Transfer Protocol) Designed for exchange of hypertext Version 1.0: RFC 1945, 1.1: RFC 2068 Not discussed: HTML, scripts etc. PC running Explorer DNS-Hostname Mac running Navigator Server running Apache Web server László Böszörményi Computer Networks Application Layer - 6

7 HTTP connections Uses TCP 1. Client initiates TCP connection (creates socket) to server 2. Server accepts TCP connection from client 3. HTTP messages (application-layer protocol messages) exchanged between browser (HTTP client) and Web server (HTTP server) 4. TCP connection closed HTTP is stateless Server maintains no information about past client requests In case of a server/client crash, no complex recovery is needed HTTP connections may be persistent and non-persistent Non-persistent: At most one object is sent over a TCP connection Persistent: Multiple objects over a single TCP connection; Server closes after a configurable timeout interval Persistent with pipelining: Many requests in parallel, served immediately at the server (Default in HTTP 1.1) László Böszörményi Computer Networks Application Layer - 7

8 Web Access Example HTTP is a pull protocol The client pulls the information it needs from the server László Böszörményi Computer Networks Application Layer - 8

9 Example in detail Client clicks on 1. Browser determines URL 2. Asks DNS for the IP address of 3. DNS replies with Browser makes TCP connection to :80 5. Requests (GET) for file /home/index.html 6. Receives /home/index.html from 7. TCP connection is released 8. Browser displays /home/index.html 9. Browser fetches and displays objects in this file Server side ( 1. Accept TCP connection 2. Get the name of the requested file 3. Get the file 4. Return the file to the client 5. Release TCP connection László Böszörményi Computer Networks Application Layer - 9

10 Client and Server Processes László Böszörményi Computer Networks Application Layer - 10

11 Response Time RTT (Round trip time) Time to send a small packet from client to server and back (handshake) Response Time 1 RTT to initiate TCP connection + 1 RTT for HTTP request and first few bytes of HTTP response to return + File transmission time Non-persistent connection overhead ~ 2*RTT / object. Browsers often use parallel TCP connections to fast up Persistent connection overhead ~ 1*RTT / object without pipelining ~ 1*RTT / all-objects with pipelining. Client sends parallel requests asap. initiate TCP connection RTT request file RTT file received time time to transmit file time 3-way handshake László Böszörményi Computer Networks Application Layer - 11

12 HTTP Request / Response Messages HTTP has human readable, text based messages 2 types of messages: request, response General format for request messages Empty for GET, used with POST László Böszörményi Computer Networks Application Layer - 12

13 HTTP Methods (1) Download objects: GET and HEAD methods Used to download objects from the server (HEAD without content) Example for GET and response (TCP connection already exists) GET /somedir/page.html HTTP/1.1 // Request line Host: // Header line: host of object User-agent: Mozilla/4.0 // Header line: specifies browser Accept-language:fr // Header line: specifies lang.... // Further content negotiation h.l. Crlf // End of header HTTP/ OK // Status line Connection: close // Start header lines (nonpers. c.) Date: Thu, 06 Aug :00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun Content-Length: 6821 Content-Type: text/html // End of header lines data data data data data // Data, e.g. a HTML file László Böszörményi Computer Networks Application Layer - 13

14 HTTP Methods (2) Upload input: POST or URL field of GET 1. POST used to upload input from the client, e.g. filled into a form Derived from the USENET news system 2. Input is uploaded in URL field of request line: E.g. GET Uploads the values monkey and banana HTTP 1.0 defines only GET, POST and HEAD László Böszörményi Computer Networks Application Layer - 14

15 Some HTTP Message Headers László Böszörményi Computer Networks Application Layer - 15

16 Authorization The server may require authorization for certain objects 1. The server answers with status code Authorization required (401) 2. Server includes WWW-Authenticate: typically user name and password are required 3. Client (browser) prompts the user for name and password 4. Client sends a request containing the header Authorization: with the user name and password 5. Client must send the authorization in each message 6. The user name and password are cached at the browser, thus the human user is not asked every time except she wishes The basic HTTP authorization is poor easy to break The secure version (HTTPS) is better, but still not perfect László Böszörményi Computer Networks Application Layer - 16

17 Keeping session state : Cookies Many major Web sites use handles (called magic cookies) 1. Cookie header line in the HTTP response message 2. Cookie header line in HTTP request message 3. Cookie file kept on user s host and managed by user s browser 4. Back-end database at Web site Cookie file ebay: 8734 client usual http request msg usual http response + Set-cookie: 1678 server server creates ID 1678 for user Cookie file amazon: 1678 ebay: 8734 usual http request msg cookie: 1678 usual http response msg cookiespecific action László Böszörményi Computer Networks Application Layer - 17

18 Cookies can bring Use of Cookies Authorization difficult in a stateless protocol Customization (e.g. Yahoo), Shopping carts with a cookie/product, Recommendations, User session state (Web ) Cookies may be used to violate privacy Cookies permit sites to learn a lot about you You may supply name and to sites Search engines use redirection & cookies to learn yet more Advertising companies obtain info across sites Browsers can check a few things Server s domain name must be the same as stored in the cookie A domain may have restricted numbers (20) of cookie/client Cookies may have an expiration date, may use only secure server László Böszörményi Computer Networks Application Layer - 18

19 Caching at Client or in a Proxy Cache: Store for reuse In client s browser or In a proxy Server for clients Client for servers Conditional GET Don t send the object, if cached client HTTP request msg If-modified-since: <date> HTTP response HTTP/ Not Modified server object not modified László Böszörményi Computer Networks Application Layer - 19

20 File Transfer Protocol (FTP) FTP client contacts FTP server at port 21, specifying TCP Client obtains authorization and browses remote directory over the control connection When server receives a command for a file transfer, the server opens a TCP data connection to client After transferring one file, server closes data connection FTP client TCP control connection port 21 TCP data connection e.g. a port nr > 1023 FTP server Differences to HTTP: Control: out of band, over control connection Server maintains states current directory, earlier authentication etc. László Böszörményi Computer Networks Application Layer - 20

21 Electronic Mail User Agent (Mail reader) Composing, editing, reading mail E.g. Outlook, Thunderbird, Eudora,.. Mail Servers Mailbox contains incoming messages for user Message queue of outgoing (to be sent) mail messages SMTP between mail servers Push client/server communication Client : the sending mail server Server : the receiving mail server Mail access protocols To read the mails (IMAP, POP) mail server SMTP mail server user agent SMTP IMAP user agent user agent SMTP SMTP mail server SMTP user agent László Böszörményi Computer Networks Application Layer - 21 user agent POP3 user agent outgoing message queue user mailbox

22 Simple Mail Transfer Protocol Uses persistent TCP conn. for reliable transfer, port 25 Three phases of transfer 1. Handshaking (greeting) 2. Transfer of messages 3. Closure Command/response interaction Commands: ASCII text Response: status code and phrase Messages must be in 7-bit ASCII nowadays inadequate: MIME 1 user agent mail server mail server 5 6 user agent László Böszörményi Computer Networks Application Layer - 22

23 SMTP Example C: telnet server-name 25 //Create transport connection S: 220 krapfen.edu //Receiving mail server (Server) C: HELO bretzel.at // Sending mail server (Client) S: 250 Hello bretzel.at, pleased to meet you C: MAIL FROM: S: 250 Sender ok C: RCPT TO: S: 250 Recipient ok C: DATA // Start of mail text S: 354 Enter mail, end with "." on a line by itself C: Do you like Brahms? C: Do you know his Ein Deutsches Requiem? C:. // End of mail text S: 250 Message accepted for delivery C: QUIT S: 221 krapfen.edu closing connection László Böszörményi Computer Networks Application Layer - 23

24 Mail Headers RFC 822 László Böszörményi Computer Networks Application Layer - 24

25 Multipurpose Internet Mail Extension Five new message headers declare MIME content type Version, Content-Description, -Id, -Transfer-Encoding, -Type For binary data (e.g. JPEG) uses a text-encoding (e.g. base64) From: alice@bretzel.at Different from To: bob@krapfen.edu TO of SMTP: Part Subject: Picture of salted Bretzel. of the mail MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=startofnextpart --StartOfNextPart Dear Bob, Please find a picture of a Bretzel --StartOfNextPart Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data base64 encoded data --StartOfNextPart Do you want the recipe? 7-bit ASCII bytes encodes 3 8-bit bytes in 4 7-bit ASCII bytes Content is bas64 and JPEG coded 7-bit ASCII bytes László Böszörményi Computer Networks Application Layer - 25

26 MIME Types Originally SGML based Newer subtypes: text/html, text/xml László Böszörményi Computer Networks Application Layer - 26

27 Mail Access Protocols Retrieval from server POP: Post Office Protocol (Version-3: POP3) Authorization (agent <-->server) and download Extremely simple IMAP: Internet Mail Access Protocol (Version IMAP4) More features (more complex) Manipulation of stored messages on the server HTTP Gmail, Hotmail, Yahoo! Mail, etc. user agent SMTP SMTP access protocol user agent sender s mail server receiver s mail server László Böszörményi Computer Networks Application Layer - 27

28 A comparison of POP3 and IMAP László Böszörményi Computer Networks Application Layer - 28

29 Domain Name System (DNS) Service: Maps human readable names to IP addresses Address/name translation Host and mail server aliasing Provides alternative (easy) mnemonics for long canonical names Load Distribution provides a set of IP addresses for a name The ordering of the list of IP addresses is rotated with each reply Content Distribution Networks (e.g. Akamai) use DNS more sophisticated Application-layer protocol Hosts, routers, name servers communicate to resolve names Core Internet function, implemented as application-layer protocol Complexity at network s edge Distributed database realized as a hierarchy of many servers No single point of failure No bottleneck: scales well Decentralized maintenance Hierarchical name structure hierarchical server architecture László Böszörményi Computer Networks Application Layer - 29

30 The DNS Name Space László Böszörményi Computer Networks Application Layer - 30

31 DNS Name Space divided in Zones László Böszörményi Computer Networks Application Layer - 31

32 The DNS Server hierarchy Authoritative name server Each host is registered at 2 authoritative servers: IP-addr/name Can perform name/address translation for that host s name 1. Local name server Each ISP, company provides local (default) name servers The IP address of it maybe set manually (or found automatically) Host DNS query first goes to local name server 2. Top-Level-Domain (TLD) name server Responsible for domains on the highest level 3. Root name server Contacted by local name server if this cannot resolve name 1. Contacts authoritative name server (via TLD) if name mapping not known 2. Gets mapping (to a local or an authoritative name server) 3. Returns mapping to local name server László Böszörményi Computer Networks Application Layer - 32

33 DNS Root servers a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD g DISA Vienna, VA h ARL Aberdeen, MD j NSI (TBD) Herndon, VA k RIPE London i NORDUnet Stockholm m WIDE Tokyo e NASA Mt View, CA f Internet Software C. Palo Alto, CA b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA 13 root name servers worldwide, February, 2000 László Böszörményi Computer Networks Application Layer - 33

34 Simple DNS example Host surf.eurecom.fr wants IP address of gaia.cs.umass.edu 1. Contacts its local DNS server, dns.eurecom.fr 2. dns.eurecom.fr contacts root name server, if necessary 3. Root name server Contacts authoritative server, dns.cs.umass.edu if necessary If does not know the authoritative name server, then Intermediate (TLD) name server: who knows the authoritative name server local name server dns.eurecom.fr requesting host surf.eurecom.fr 7 root name server 3 Top-Level- Domain Server 6 TLD name server dns.umass.edu 4 5 authoritative name server dns.cs.umass.edu gaia.cs.umass.edu László Böszörményi Computer Networks Application Layer - 34

35 Iterated / Recursive DNS Queries Recursive query: Pass name resolution on contacted name server, which forwards the query Iterated query: Contacted server replies with name of next server I don t know this name, but ask this server Local root is usually iterative, rest recursive local name server dns.eurecom.fr requesting host surf.eurecom.fr root name server iterated query intermediate name server dns.umass.edu 5 6 authoritative name server dns.cs.umass.edu gaia.cs.umass.edu László Böszörményi Computer Networks Application Layer - 35

36 DNS: Caching and Updating Records Name server learn cache the mappings Cache entries disappear after some time (time to live, ttl), e.g. 2 days Update/notify mechanisms under design by IETF Resource Records (RR) format: (name, value, type, ttl) Type=A Name is hostname, value is IP address (e.g. foo.com, ) Type=NS Name is a domain, value is the hostname of an authoritative name server for this domain (e.g. foo.com, dns.foo.com) Type=CNAME Name is an alias name for a real (canonical name), which is in value (e.g. foo.com, relay1.bar.foo.com) Type=MX (helps to create short addresses) Value is a canonical mail server name, associated with name (e.g. foo.com, mail.bar.foo.com). E.g. web and mail may have the same name László Böszörményi Computer Networks Application Layer - 36

37 Resource Records Summary Used as reverse lookup László Böszörményi Computer Networks Application Layer - 37

38 86400s = 1 day Resource Records Example Class IN: INTERNET Primary incoming mail server flits is a SUN comp. with Unix flits has 2 IP addresses 3 choices for mails to flits alias names for www and ftp server data for rowboat.cs.vu.nl László Böszörményi Computer Networks Application Layer - 38

39 DNS Protocol and Messages DNS protocol Query and reply messages Same message format Message header Identification Identifies a query + the reply for it Flags: query or reply recursion desired recursion available reply is authoritative 16 bits 16 bits László Böszörményi Computer Networks Application Layer - 39

40 Sockets Transport Service Access Points Integrated into the operating system (first in BSD4.1 UNIX, 1981) Reliable, byte stream-oriented (TCP) Unreliable datagram (UDP) Explicitly created, used, released by apps Client/server paradigm controlled by application developer controlled by operating system process socket TCP with buffers, variables internet process socket TCP with buffers, variables controlled by application developer controlled by operating system host or server host or server László Böszörményi Computer Networks Application Layer - 40

41 Socket Programming via TCP Server process must first be running and must have created a socket (door) in advance Client contacts server by Creating client-local TCP socket Specifying URL and port number of server process Client TCP establishes connection to server TCP when the client creates the socket When contacted by client Server TCP creates new socket to communicate with client Allows the server to talk with multiple clients Source port numbers are used to distinguish clients László Böszörményi Computer Networks Sockets - 41

42 Simple Example of Streams over TCP A stream is a sequence of characters that flow into or out of a process (input resp. output streams) 1. Client reads line from standard input (infromuser stream) 2. Sends to server via socket (outtoserver stream) 3. Server reads line from socket 4. Server converts line to uppercase, sends back to client 5. Client reads, prints modified line from socket (infromserver stream) Process Client process input stream output stream keyboard infromuser outtoserver to network monitor infromserver client TCP clientsocket socket input stream from network TCP socket László Böszörményi Computer Networks Sockets - 42

43 Client/server socket interaction: TCP Server (running on hostid) create socket, port=x, for incoming request: welcomesocket = ServerSocket() wait for incoming connection request connectionsocket = welcomesocket.accept() read request from connectionsocket write reply to connectionsocket close connectionsocket TCP connection setup Client create socket, connect to hostid, port=x clientsocket = Socket() send request using clientsocket read reply from clientsocket close clientsocket László Böszörményi Computer Networks Sockets - 43

44 Example: Java client (TCP) import java.io.*; import java.net.*; class TCPClient { Create input stream Create client socket, connect to server Create output stream attached to socket public static void main(string argv[]) throws Exception { String sentence; String modifiedsentence; BufferedReader infromuser = new BufferedReader(new InputStreamReader(System.in)); Socket clientsocket = new Socket("hostname", 6789); DataOutputStream outtoserver = new DataOutputStream(clientSocket.getOutputStream()); László Böszörményi Computer Networks Sockets - 44

45 Example: Java client (TCP), cont. Create input stream attached to socket Send line to server Read line from server BufferedReader infromserver = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); sentence = infromuser.readline(); outtoserver.writebytes(sentence + '\n'); modifiedsentence = infromserver.readline(); // read keyboard System.out.println("FROM SERVER: " + modifiedsentence); clientsocket.close(); } } László Böszörményi Computer Networks Sockets - 45

46 Example: Java server (TCP) import java.io.*; import java.net.*; class TCPServer { Create welcoming socket at port 6789 Wait, on welcoming socket for contact by client Create input stream, attached to socket public static void main(string argv[]) throws Exception { String clientsentence; String capitalizedsentence; ServerSocket welcomesocket = new ServerSocket(6789); while(true) { Socket connectionsocket = welcomesocket.accept(); BufferedReader infromclient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); László Böszörményi Computer Networks Sockets - 46

47 Example: Java server (TCP), cont Create output stream, attached to socket Read in line from socket DataOutputStream outtoclient = new DataOutputStream(connectionSocket.getOutputStream()); clientsentence = infromclient.readline(); capitalizedsentence = clientsentence.touppercase() + '\n'; Write out line to socket } } } outtoclient.writebytes(capitalizedsentence); End of while loop, loop back and wait for another client connection László Böszörményi Computer Networks Sockets - 47

48 Example: Java server (TCP), cont Create output stream, attached to socket Read in line from socket DataOutputStream outtoclient = new DataOutputStream(connectionSocket.getOutputStream()); clientsentence = infromclient.readline(); capitalizedsentence = clientsentence.touppercase() + '\n'; Write out line to socket } } } outtoclient.writebytes(capitalizedsentence); End of while loop, loop back and wait for another client connection László Böszörményi Computer Networks Sockets - 48

49 Socket Programming via UDP No connection between server and client No hand-shaking Sender explicitly attaches IP address and port of destination to each packet Server must extract IP address, port of sender from received packet László Böszörményi Computer Networks Sockets - 49

50 Client/server socket interaction: UDP Server (running on hostid) Client create socket, port=x, for incoming request: serversocket = DatagramSocket() read request from serversocket create socket, clientsocket = DatagramSocket() Create, address (hostid, port=x, send datagram request using clientsocket write reply to serversocket specifying client host address, port number read reply from clientsocket close clientsocket László Böszörményi Computer Networks Sockets - 50

51 Example: Java client (UDP) keyboard monitor Client Process process Output: sends packet (TCP sent byte stream ) input stream UDP packet infromuser sendpacket receivepacket client UDP clientsocket socket UDP packet UDP socket Input: receives packet (TCP received byte stream ) to network from network László Böszörményi Computer Networks Sockets - 51

52 Example: Java client (UDP) import java.io.*; import java.net.*; Create input stream Create client socket Translate hostname to IP address using DNS class UDPClient { public static void main(string args[]) throws Exception { BufferedReader infromuser = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket clientsocket = new DatagramSocket(); InetAddress IPAddress = InetAddress.getByName("hostname"); byte[] senddata = new byte[1024]; byte[] receivedata = new byte[1024]; String sentence = infromuser.readline(); senddata = sentence.getbytes(); László Böszörményi Computer Networks Sockets - 52

53 Example: Java client (UDP), cont. Create datagram with data-to-send, length, IP addr, port Send datagram to server Read datagram from server } DatagramPacket sendpacket = new DatagramPacket(sendData, senddata.length, IPAddress, 9876); clientsocket.send(sendpacket); DatagramPacket receivepacket = new DatagramPacket(receiveData, receivedata.length); clientsocket.receive(receivepacket); String modifiedsentence = new String(receivePacket.getData()); System.out.println("FROM SERVER:" + modifiedsentence); clientsocket.close(); } László Böszörményi Computer Networks Sockets - 53

54 Example: Java server (UDP) import java.io.*; import java.net.*; Create datagram socket at port 9876 Create space for received datagram Receive datagram class UDPServer { public static void main(string args[]) throws Exception { DatagramSocket serversocket = new DatagramSocket(9876); byte[] receivedata = new byte[1024]; byte[] senddata = new byte[1024]; while(true) { DatagramPacket receivepacket = new DatagramPacket(receiveData, receivedata.length); serversocket.receive(receivepacket); László Böszörményi Computer Networks Sockets - 54

55 Example: Java server (UDP), cont Get IP addr port #, of sender String sentence = new String(receivePacket.getData()); InetAddress IPAddress = receivepacket.getaddress(); int port = receivepacket.getport(); Create datagram to send to client Write out datagram to socket } } String capitalizedsentence = sentence.touppercase(); senddata = capitalizedsentence.getbytes(); DatagramPacket sendpacket = new DatagramPacket(sendData, senddata.length, IPAddress, port); serversocket.send(sendpacket); } End of while loop, loop back and wait for another datagram László Böszörményi Computer Networks Sockets - 55

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

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

Communication in Distributed Systems: Sockets Programming. Operating Systems

Communication in Distributed Systems: Sockets Programming. Operating Systems Communication in Distributed Systems: Sockets Programming Operating Systems TCP/IP layers Layers Message Application Transport Internet Network interface Messages (UDP) or Streams (TCP) UDP or TCP packets

More information

Chapter 2: outline. 2.1 principles of network applications. 2.6 P2P applications 2.7 socket programming with UDP and TCP

Chapter 2: outline. 2.1 principles of network applications. 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

Chapter 2 Application Layer

Chapter 2 Application Layer Internet and Intranet Protocols and Applications Lecture 4: Application Layer 3: Socket Programming Spring 2006 Arthur Goldberg Computer Science Department New York University artg@cs.nyu.edu Chapter 2

More information

Introduction to Sockets 9/25/14

Introduction to Sockets 9/25/14 Introduction to Sockets 9/25/14 81 Remote communication Inter-process communication is at the heart of all distributed systems Using the network protocol stack on a node is the only way to communicate

More information

Part 2: Application Layer

Part 2: Application Layer Part 2: Application Layer Our goals: conceptual, implementation aspects of network application protocols client-server paradigm service models learn about protocols by examining popular application-level

More information

Lecture 05: Application Layer (Part 02) FTP, Peer-to-Peer, . Dr. Anis Koubaa

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

More information

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

Chapter 2: Application Layer last updated 22/09/03 Chapter 2: Application Layer last updated 22/09/03 Chapter goals: conceptual + implementation aspects of network application protocols client server paradigm service models learn about protocols by examining

More information

CPSC 441 UDP Socket Programming. Department of Computer Science University of Calgary

CPSC 441 UDP Socket Programming. Department of Computer Science University of Calgary CPSC 441 UDP Socket Programming Department of Computer Science University of Calgary Socket programming using UDP (vs TCP) UDP: no connection between client and server vno handshaking vsender explicitly

More information

Computer Networking Introduction

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

More information

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

Application Layer. Application Layer 1. By Mikkel Christiansen for NA mm7 Spring 2004 Application Layer By Mikkel Christiansen for NA mm7 Spring 2004 Based on power-point material from J.F Kurose and K.W. Ross website Application Layer 1 Last on NA End-systems PCs workstations, servers

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: 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

CSCD 330 Network Programming Spring 2018

CSCD 330 Network Programming Spring 2018 CSCD 330 Network Programming Spring 2018 Lecture 6 Application Layer Socket Programming in Java Reading for Java Client/Server see Relevant Links Some Material in these slides from J.F Kurose and K.W.

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

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 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

CSCD 330 Network Programming Spring 2018

CSCD 330 Network Programming Spring 2018 CSCD 330 Network Programming Spring 2018 Lecture 7 Application Layer Socket Programming in Java Reading: Chapter 2, Java links Relevant Links page Some Material in these slides from J.F Kurose and K.W.

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

Layer 4 - Transport Layer. What do we need a Transport Layer for? Transport Protocols in the TCP/IP Reference Model. The Transport Layer TCP and UDP

Layer 4 - Transport Layer. What do we need a Transport Layer for? Transport Protocols in the TCP/IP Reference Model. The Transport Layer TCP and UDP Layer 4 - Transport Layer Core of the protocol hierarchy: Network-independent, reliable and economical data transfer Tasks of the transport layer: Connection-oriented or connectionless data transfer Addressing

More information

CSCD 330 Network Programming Winter 2019

CSCD 330 Network Programming Winter 2019 CSCD 330 Network Programming Winter 2019 Lecture 7 Application Layer Socket Programming in Java Reading: Chapter 2, Java links Relevant Links page Some Material in these slides from J.F Kurose and K.W.

More information

Layer 4 - Transport Layer

Layer 4 - Transport Layer Layer 4 - Transport Layer Core of the protocol hierarchy: Network-independent, reliable and economical data transfer Tasks of the transport layer: Connection-oriented or connectionless data transfer Addressing

More information

CPSC 441 Tutorial - 11 UDP Socket Programming Department of Computer Science University of Calgary

CPSC 441 Tutorial - 11 UDP Socket Programming Department of Computer Science University of Calgary CPSC 441 Tutorial - 11 UDP Programming Department of Computer Science University of Calgary TCP Vs UDP Input: receives packet (TCP receives byte stream ) Output: sends packet (TCP sends byte stream ) What

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

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 CSB051 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, IMAP 2.5 DNS

More information

Client/Server Computing & Socket Programming

Client/Server Computing & Socket Programming CPSC 852 Intering Client/Server Computing & Socket Programming Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu http://www.cs.clemson.edu/~mweigle/courses/cpsc852

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

Lecture 3. Java Socket Programming. TCP, UDP and URL

Lecture 3. Java Socket Programming. TCP, UDP and URL Lecture 3 TCP, UDP and URL 1 Java Sockets Programming The package java.net provides support for sockets programming (and more). Typically you import everything defined in this package with: import java.net.*;

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

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

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng. CS 355 Computer Networking Wei Lu, Ph.D., P.Eng. Chapter 2: Application Layer Overview: Principles of network applications? Introduction to Wireshark Web and HTTP FTP Electronic Mail: SMTP, POP3, IMAP

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

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

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer Prof. Yuh-Shyan Chen Department of Computer Science and Information Engineering National Taipei University March 2007 Computer Networking: A Top Down Approach Featuring the

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 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

More information

55:134/22C:178 Computer Communications Lecture Note Set 2 Summer 2004

55:134/22C:178 Computer Communications Lecture Note Set 2 Summer 2004 Chapter 2 Application Layer Note: These slides are adapted, with permission, from copyrighted material developed by the authors of Computer Networks, a Top-Down Approach All material copyright 1996-2002

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. All material copyright 1996-2007 J.F Kurose and K.W. Ross, All Rights

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

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

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

Chapter 2: Application layer. Chapter 2 Application Layer. Chapter 2: Application Layer. Some network apps 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 2.1 Principles of network applications

More information

Chapter 2 APPLICATIONS

Chapter 2 APPLICATIONS Chapter 2 APPLICATIONS Distributed Computing Group Computer Networks Summer 2006 Overview Learn specific application layer protocols http, ftp, smtp, pop, dns, etc. How to program network applications?

More information

Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ

Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ Chapter 2 Application Layer Computer Networking: A Top Down Approach, 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.

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

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. 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

Chapter 2 Application Layer

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. All material copyright 1996-2009 J.F Kurose and K.W. Ross, All Rights

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

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

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. All material copyright 1996-2009 J.F Kurose and K.W. Ross, All Rights

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

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

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

COMP 211 Chapter 2 Application Layer

COMP 211 Chapter 2 Application Layer COMP 211 Chapter 2 Application Layer All material copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down Approach 7 th edition Jim Kurose, Keith Ross Pearson/Addison

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

A note on the use of these ppt slides:

A note on the use of these ppt slides: 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

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

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. Some network apps. Chapter 2: Application Layer. Chapter 2: Application layer

Chapter 2: Application layer. Chapter 2 Application Layer. Some network apps. 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. Chapter 2 Application Layer. Chapter 2: Application Layer. Some network apps

Chapter 2: Application layer. Chapter 2 Application Layer. Chapter 2: Application Layer. Some network apps 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

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 Protocols

Application-layer Protocols Application-layer Protocols Kai Shen application transport data link physical Network Applications and Application-Layer Protocols application transport data link physical application transport data link

More information

Data Communications & Networks. Session 2 Main Theme Application Layer. Dr. Jean-Claude Franchitti

Data Communications & Networks. Session 2 Main Theme Application Layer. Dr. Jean-Claude Franchitti Data Communications & Networks Session 2 Main Theme Application Layer Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences Adapted from

More information

Data Communications & Networks. Session 2 Main Theme Application Layer. Dr. Jean-Claude Franchitti

Data Communications & Networks. Session 2 Main Theme Application Layer. Dr. Jean-Claude Franchitti Data Communications & Networks Session 2 Main Theme Application Layer Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences Adapted from

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

Process Communication COMPUTER NETWORKING Part 2

Process Communication COMPUTER NETWORKING Part 2 Process Communication COMPUTER NETWORKING Part 2 Client-server paradigm and Socket Programming ch 18 Thanks to the authors of the textbook [USP] and [KR] for providing the base slides. I made several changes/additions.

More information

COMPUTER NETWORKS CHAP 2 : APPLICATION LAYER

COMPUTER NETWORKS CHAP 2 : APPLICATION LAYER COMPUTER NETWORKS CHAP 2 : APPLICATION LAYER 0210 8 h 12 h 22 Sep 2011 Chapter 2: Application layer 2 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3, IMAP

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

Computer Networks Unit II Transport layer (2012 pattern)

Computer Networks Unit II Transport layer (2012 pattern) Computer Networks Unit II Transport layer (2012 pattern) By Prof. B.A.Khivsara Assistant Prof. Department of Computer Engg. SNJB s KBJ COE, Chandwad Introduction 1-1 Chapter 2: ROAD MAP Transport Layer

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

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: The notes used in this course are substantially based on powerpoint slides developed and copyrighted by J.F. Kurose and K.W. Ross, 2007

More information

Internet Services & Protocols. Application Layer and its Services

Internet Services & Protocols. Application Layer and its Services Department of Computer Science Institute for System Architecture, Chair for Computer Networks Internet Services & Protocols Application Layer and its Services Dr.-Ing. Stephan Groß Room: INF 3099 E-Mail:

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

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

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. Computer Networks. Application Layer. Chapter 2: Application Layer. Some network apps. Bu-Ali Sina University, Hamedan

Chapter 2: Application layer. Computer Networks. Application Layer. Chapter 2: Application Layer. Some network apps. Bu-Ali Sina University, Hamedan Computer Networks Chapter 2: Application layer Application Layer By: Mohammad Nassiri!! 2.1 Principles of network applications!! 2.2 Web and HTTP!! 2.3 FTP!! 2.4 Electronic Mail!! SMTP, POP3, IMAP!! 2.5

More information

Computer Networks. Application Layer

Computer Networks. Application Layer Computer Networks Application Layer By: Mohammad Nassiri Bu-Ali Sina University, Hamedan Fall 2009 Chapter 2: Application layer!! 2.1 Principles of network applications!! 2.2 Web and HTTP!! 2.3 FTP!! 2.4

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

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

CSCI Computer Networks Spring 2017

CSCI Computer Networks Spring 2017 source: computer-networks-webdesign.com CSCI 6760 - Computer Networks Spring 2017 Instructor: Prof. Roberto Perdisci perdisci@cs.uga.edu These slides are adapted from the textbook slides by J.F. Kurose

More information

Chapter 2 APPLICATIONS

Chapter 2 APPLICATIONS Overview Distributed Computing Group Chapter 2 APPLICATIONS Computer Networks Summer 2005 Learn specific application layer protocols http, ftp, smtp, pop, dns, etc. How to program network applications?

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

Different Layers Lecture 21

Different Layers Lecture 21 Different Layers Lecture 21 10/17/2003 Jian Ren 1 The Transport Layer 10/17/2003 Jian Ren 2 Transport Services and Protocols Provide logical communication between app processes running on different hosts

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

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

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

TCP and UDP Socket Programming in JAVA TCP Socket Programming 1. Write code for Client and save in GreetingClient.java

TCP and UDP Socket Programming in JAVA TCP Socket Programming 1. Write code for Client and save in GreetingClient.java TCP Socket Programming 1. Write code for Client and save in GreetingClient.java // File Name GreetingClient.java public class GreetingClient public static void main(string [] args) String servername =

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

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

COMP 3331/9331: Computer Networks and Applications

COMP 3331/9331: Computer Networks and Applications COMP 3331/9331: Computer Networks and Applications http://www.cse.unsw.edu.au/~cs3331 Week 3 Application Layer: DNS, P2P and Socket Programming Reading Guide: Chapter 2 - Sections 2.5 2.7 Announcements

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

Chapter 2 Application Layer. 2: Application Layer 1

Chapter 2 Application Layer. 2: Application Layer 1 Chapter 2 Application Layer 2: 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 v SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications

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

JAVA SOCKET PROGRAMMING

JAVA SOCKET PROGRAMMING JAVA SOCKET PROGRAMMING WHAT IS A SOCKET? Socket The combination of an IP address and a port number. (RFC 793 original TCP specification) The name of the Berkeley-derived application programming interfaces

More information

CSCE 463/612 Networks and Distributed Processing Spring 2018

CSCE 463/612 Networks and Distributed Processing Spring 2018 CSCE 463/612 Networks and Distributed Processing Spring 2018 Application Layer II Dmitri Loguinov Texas A&M University February 6, 2018 Original slides copyright 1996-2004 J.F Kurose and K.W. Ross 1 Chapter

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

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

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