0% found this document useful (0 votes)
10 views18 pages

Lecture 08

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views18 pages

Lecture 08

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

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

You might also like