Application Layer in Computer Networking: Principles, Protocols, and Applications - Prof. , Study notes of Information Technology

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

Pre 2010

Uploaded on 12/09/2010

kool-nrt
kool-nrt 🇺🇸

3 documents

1 / 129

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
2: Application Layer 1
Chapter 2
Application Layer
Computer
Networking: A Top
Down Approach,
5th edition.
Jim Kurose, Keith
Ross
Addison-Wesley, April
2009.
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-2009
J.F Kurose and K.W. Ross, All Rights Reserved
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Partial preview of the text

Download Application Layer in Computer Networking: Principles, Protocols, and Applications - Prof. and more Study notes Information Technology in PDF only on Docsity!

Chapter 2

Application Layer

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

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 programming with UDP

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 programming with UDP

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 video conferencing  (^) grid/cluster computing  (^) Java RMI  (^) CORBA-Based App  (^) Web Services  (^) J2EE  (^) ESB (Mule)  (^) Social network  (^) Community

Application architectures

 (^) 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)

Client-server architecture

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

Hybrid of client-server and

P2P

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

  • (^) user registers its IP address with central server when it comes online
  • (^) user contacts central server to find IP addresses of buddies

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: applications with P2P architectures have client processes & server processes

Sockets

 (^) 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

Addressing Processes

 (^) 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?

App-layer protocol defines

 (^) 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

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

Internet transport protocols services

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?

Internet apps: application, transport protocols

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