CSC339 – DATA COMMUNICATIONS AND
COMPUTER NETWORKS
LECTURE 08
Course Instructors:
Dr. Waseem Abbas
AGENDA
▪ Application Layer: Overview
▪ Network Application Examples
▪ Creating Network app
▪ Network Application Architectures
▪ Client-Server Architecture / Peer-to-Peer Architecture
▪ Process Communicating
▪ Client and Server Processes
▪ The Interface Between the Process and the Computer Network – Socket
▪ Addressing Processes
▪ Transport Services Available to Applications:
▪ Reliable Data Transfer, Throughput, Timing, Security
▪ Transport Services Provided by the Internet
▪ TCP Services / UDP Services
▪ Application-Layer Protocols
Chapter 2: Application Layer
Book: Computer Networking: A Top Down Approach.
Author: Jim Kurose, Keith Ross Addison-Wesley
APPLICATION LAYER: OVERVIEW
Our goals: ▪ learn about protocols by
▪ conceptual and examining popular
implementation aspects application-layer
of application-layer protocols
protocols • HTTP
• transport-layer service • SMTP, IMAP
models • DNS
• client-server paradigm ▪ programming network
• peer-to-peer paradigm applications
• socket API
SOME NETWORK APPS
▪ text email, remote access to ▪ streaming stored video
computers, file transfers, and (YouTube, Netflix)
newsgroups ▪ multi-user network games
▪ text messaging ▪ real-time video conferencing
▪ Web ▪ social networking
• Web surfing, Search, Electronic
Commerce (Facebook, Twitter, WhatsApp)
▪ voice over IP (e.g., Skype) ▪ …
CREATING A NETWORK APP
application
write programs that:
transport
mobile network
network
data link
physical
▪ run on (different) end systems national or global ISP
▪ communicate over network
▪ e.g., web server software
communicates with browser
software local or
regional
ISP
no need to write software for home network content
network-core devices application
transport
provider
network network datacenter
▪ network-core devices do not run
application
data link network
transport
physical
user applications
network
data link
physical
▪ applications on end systems enterprise
allows for rapid app network
development, propagation
NETWORK APPLICATION ARCHITECTURES
▪ From the application developer’s perspective, the network architecture is fixed and
provides a specific set of services to applications.
▪ The application architecture, on the other hand, is designed by the application
developer and dictates how the application is structured over the various end
systems.
▪ Two application architecture
▪ Client-Server architecture
▪ Peer-to-Peer architecture
CLIENT-SERVER PARADIGM
server:
▪ always-on host
▪ permanent IP address
▪ often in data centers, for scaling
clients:
▪ contact, communicate with
server
▪ may have dynamic IP addresses
▪ do not communicate directly
with each other
▪ examples: Web, FTP, Telnet, email
PEER-PEER ARCHITECTURE
▪ no always-on server mobile network
▪ arbitrary end systems directly national or global ISP
communicate
▪ peers request service from other
peers, provide service in return
to other peers local or
regional
• self scalability – new peers bring ISP
new service capacity, as well as new home network content
service demands provider
network datacenter
▪ peers are intermittently network
connected and change IP
addresses enterprise
network
• complex management
▪ example: P2P file sharing
PROCESSES COMMUNICATING
process: program running within a clients, servers
host
client process: process that
▪ within same host, two processes initiates communication
communicate using inter-process server process: process that
communication (defined by OS)
waits to be contacted
▪ processes in different hosts
communicate by exchanging
messages
▪ note: applications
▪ With the Web, a browser is a with P2P
client process and a Web server is
a server process.
architectures have
client processes &
server processes
SOCKETS
▪ process sends/receives messages to/from its socket
▪ socket analogous to door
• sending process shoves message out door
• sending process relies on transport infrastructure on other
side of door to deliver message to socket at receiving
process
• two sockets involved: one on each side
ADDRESSING PROCESSES
▪ to receive messages, ▪ identifier includes both IP
process must have address and port numbers
identifier associated with process on
▪ host device has unique 32- host.
bit IP address ▪ example port numbers:
▪ Q: does IP address of host • HTTP server: 80
on which process runs • mail server: 25
suffice for identifying the ▪ to send HTTP message to
process? gaia.cs.umass.edu web server:
▪ A: no, many • IP address: 128.119.245.12
processes can be • port number: 80
running on same
host
AN APPLICATION-LAYER PROTOCOL DEFINES:
▪ types of messages open protocols:
exchanged, ▪ defined in RFCs,
• e.g., request, response everyone has access to
▪ message syntax: protocol definition
• what fields in messages & ▪ allows for interoperability
how fields are delineated ▪ e.g., HTTP, SMTP
▪ message semantics
• meaning of information in
fields
▪ rules for when and how
processes send & respond to
messages
TRANSPORT SERVICES AVAILABLE TO
APPLICATIONS
▪ Many networks, including the Internet, provide more than one transport-layer
protocol.
▪ When you develop an application, you must choose one of the available transport-
layer protocols.
▪ How do you make this choice?
▪ Most likely, you would study the services provided by the available transport-layer
protocols, and then pick the protocol with the services that best match your application’s
needs
We can broadly classify the possible services along four dimensions: reliable data transfer,
throughput, timing, and security.
WHAT TRANSPORT SERVICE DOES AN APP NEED?
Reliable data Transfer throughput
▪ some apps (e.g., file ▪ some apps (e.g., multimedia)
require minimum amount of
transfer, web transactions) throughput to be “effective”
require 100% reliable data ▪ other apps (“elastic apps”)
transfer make use of whatever
▪ other apps (e.g., audio) can throughput they get
tolerate some loss ▪ Electronic mail, file transfer, and
timing Web transfers are all elastic
applications.
▪ some apps (e.g., Internet
telephony, interactive games) security
require low delay to be ▪ encryption, data
“effective” integrity, …
TRANSPORT SERVICE REQUIREMENTS: COMMON APPS
INTERNET TRANSPORT PROTOCOLS SERVICES
TCP service: UDP service:
▪ reliable transport between sending and ▪ unreliable data transfer between
receiving process sending and receiving process
▪ flow control: sender won’t overwhelm ▪ does not provide: reliability, flow
receiver control, congestion control,
▪ congestion control: throttle sender timing, throughput guarantee,
when network overloaded security, or connection setup.
▪ does not provide: timing, minimum
throughput guarantee, security
▪ connection-oriented: setup required
between client and server processes
INTERNET TRANSPORT PROTOCOLS SERVICES
NEXT LECTURE TOPICS
▪ Web and HTTP
▪ Non-Persistent and Persistent Connections
▪ HTTP Message Format
▪ User-Server Interaction: Cookies
▪ Web Caching