Lecture 08
Lecture 08
COMPUTER NETWORKS
LECTURE 08
Course Instructors:
Dr. Waseem Abbas
AGENDA
▪ Application Layer: Overview
▪ Network Application Examples
▪ Creating Network app
▪ Process Communicating
▪ Client and Server Processes
▪ The Interface Between the Process and the Computer Network – Socket
▪ Addressing Processes
▪ 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
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
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