




























































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of the application layer in computer networking, focusing on its principles, protocols, and applications. Topics include network applications architectures and requirements, web and http, ftp, electronic mail, smtp, pop3, imap, dns, and socket programming with tcp and udp. The document also covers ftp commands and responses, mail message format, and dns records.
Typology: Study notes
1 / 129
This page cannot be seen from the preview
Don't miss anything!





























































































Computer Networking: A Top Down Approach , 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April
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 delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: (^) If you use these slides (e.g., in a class) in substantially unaltered form, that you mention their source (after all, we’d like people to use our book!) (^) If you post any slides in substantially unaltered form on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR All material copyright 1996- J.F Kurose and K.W. Ross, All Rights Reserved
(^) 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 programming with UDP
(^) 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 programming with UDP
(^) e-mail (^) web (^) instant messaging (^) remote login (^) P2P file sharing (^) multi-user network games (^) streaming stored video clips (^) voice over IP (^) real-time video conferencing (^) grid/cluster computing (^) Java RMI (^) CORBA-Based App (^) Web Services (^) J2EE (^) ESB (Mule) (^) Social network (^) Community
(^) Client-server (^) Peer-to-peer (P2P) (^) Hybrid of client-server and P2P (^) Message passing (Socket) (^) Message system: Point-to-point; Publish/Subscribe (^) Distributed objects: (^) Remote method invocation (RMI) (^) Object request broker (CORBA) (^) Object space (JavaSpaces) (^) Component-based/Web Service-based (J2EE/SOA) (^) Mobile agents (IBM’s Aglets) (^) Network services (Jini)
server: (^) always-on host (^) permanent IP address (^) server farms for scaling thru VIP clients: (^) communicate with server (^) may be intermittently connected (^) may have dynamic IP addresses (^) do not communicate directly with each other client/server
Skype voice-over-IP P2P application centralized server: finding address of remote party: client-client connection: direct (not through server) Instant messaging chatting between two users is P2P centralized service: client presence detection/location
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: applications with P2P architectures have client processes & server processes
(^) The Berkeley Unix mechanism for creating a virtual connection between processes. Sockets interface Unix's standard I/O with its network communication facilities. They can be of two types, stream (bi-directional) or datagram (fixed length destination-addressed messages). The socket library function socket() creates a communications end-point or socket and returns a file descriptor with which to access that socket. The socket has associated with it a socket address, consisting of a port number and the local host's network address. (^) From http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi? query=socket
(^) to receive messages, process must have identifier (^) host device has unique 32-bit IP address (^) Q: does IP address of host suffice for identifying the process?
(^) 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 (^) allows for interoperability (^) e.g., HTTP, SMTP Proprietary protocols: (^) e.g., Skype
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 telephony, interactive games) require low delay to be “effective” Throughput (^) some apps (e.g., multimedia) require minimum amount of throughput to be “effective” (^) other apps (“elastic apps”) make use of whatever throughput they get Security (^) Encryption, data integrity, …
TCP service: (^) connection-oriented: setup required between client and server processes (^) reliable transport between sending and receiving process (^) flow control: sender won’t overwhelm receiver (^) congestion control: throttle sender when network overloaded (^) does not provide: timing, minimum throughput guarantees, security UDP service: (^) unreliable data transfer between sending and receiving process (^) does not provide: connection setup, reliability, flow control, congestion control, timing, throughput guarantee, or security Q: why bother? Why is there a UDP?
Application e-mail remote terminal access Web file transfer streaming multimedia Internet telephony Application layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (eg Youtube), RTP [RFC 1889] SIP, RTP, proprietary (e.g., Skype) Underlying transport protocol TCP TCP TCP TCP TCP or UDP typically UDP