Transcript Chapter 24
PART VI
Application Layer
McGraw-Hill
©The McGraw-Hill Companies, Inc., 2004
Position of application layer
McGraw-Hill
©The McGraw-Hill Companies, Inc., 2004
Application Layer Duties
McGraw-Hill
©The McGraw-Hill Companies, Inc., 2004
Chapters
Chapter 24 Client-Server Model
Chapter 25 Domain Name System
Chapter 26 SMTP and FTP
Chapter 27 HTTP and WWW
Chapter 28 Multimedia
McGraw-Hill
©The McGraw-Hill Companies, Inc., 2004
Chapter 24: OBJECTIVES
Client-Server
Model:
Socket Interface
McGraw-Hill
©The McGraw-Hill Companies, Inc., 2004
Client-Server Model
Most common way by which a computer can ask for the
services of another computer.
Relationship:
The purpose of a network is to provide services to users.
User at local site wants to receive a service from a computer at a remote
site.
A computer runs a program to either request a service from another
computer or provide a service to another computer.
Application programs running at two end computers and communicating
with each other. They are entities that communicate with each other, not
computers or users.
Important queries:
McGraw-Hill
Should both applications be able to request services and provide
services, or should they just do one or the other?
One solution is to have an application program client.
Machine request a service from another application program server.
©The McGraw-Hill Companies, Inc., 2004
Application program provide services only to one specific
application program installed somewhere in an internet, or
should it provide services for any application program that
requests this service?
When should an application program be running – all the
time or just when there is a need for the service?
Server providing a service for any client, not a particular client.
Client program, which requests a service, should run only when it is
needed.
Server program, which provides a service, should run all the time
because it does not know when its services will be needed.
Should there be only one universal application program that
can provide any type of service a users wants? Or should
there be one application program for each type of service?
McGraw-Hill
Application program is available for specific service.
©The McGraw-Hill Companies, Inc., 2004
Concurrency
Concurrency in Clients
Clients can be run on a machine either iteratively or concurrently.
Running iteratively: means running them one by one; one client
must start, run, and terminate before the machine can start another
client.
Concurrent clients: Two or more clients can run at the same time.
Concurrency in Servers
McGraw-Hill
Iterative server: Can process only one request at a time; it receives
a request, processes it, and sends the response to the requestor
before it handles another request.
Concurrent server: Can process many requests at a time; share its
time between many requests.
©The McGraw-Hill Companies, Inc., 2004
Client-Server Model
Client-Server Relationship
McGraw-Hill
©The McGraw-Hill Companies, Inc., 2004
Figure 24.3
McGraw-Hill
Connectionless iterative server
It uses connectionless protocol: UDP.
Server processes one request at a time.
Server uses one single port [well-known port]
©The McGraw-Hill Companies, Inc., 2004
Figure 24.4 Connection-oriented Concurrent Server
Uses connection-oriented Protocol: TCP
Connection-oriented: request is a stream of bytes that can
arrive in several segments and the response can occupy several
segments.
At first connection is established.
Use one well-known port and many ephemeral ports
McGraw-Hill
Server issues passive-open at well-known port.
Client initially approaches this port.
After connection is made, server assigns a temporary port to free
the well-known port.
Data transfer via ephemeral port.
©The McGraw-Hill Companies, Inc., 2004
Processes
McGraw-Hill
In UNIX, program is a code. The code defines all the
variables and actions to be performed on those
variables.
Process is an instance of a program.
When the operating system executes a program, an
instance of the program, a process, is created.
Operating system can create several processes from
one program, which means several instances of the
same program are running at the same time
[concurrently].
Memory is allocated for each process separately.
©The McGraw-Hill Companies, Inc., 2004
Figure 24.5
Socket structure
Socket Interface
Sockets
Communication structure that we need in socket
programming is called socket.
Socket acts as an endpoint.
Two processes need a socket at each end to communicate
with each other.
McGraw-Hill
Family: Protocol group [IPv6, IPv4, UNIX domain protocols,…]
Type: Type of socket [Stream, packet or raw socket]
Protocol: set to zero for TCP and UDP.
Local socket address: Local IP and port address
Remote socket address: Remote IP and port address
©The McGraw-Hill Companies, Inc., 2004
Figure 24.6
McGraw-Hill
Socket types
Stream socket: Connection-oriented protocol [TCP]; uses a pair
of stream sockets to connect one application program to
another across the Internet.
Datagram socket: Connectionless protocol [UDP]; Uses a pair of
datagram sockets.
Raw socket: For ICMP or OSPF that directly use the services of
IP.
©The McGraw-Hill Companies, Inc., 2004
Connectionless Iterative Server
Server duties:
Create a socket
Bind: Asks OS to enter information in the socket
related to the server.
Repeat
Client duties:
Create a socket. No need for binding as OS
normally fills in the information in the socket.
Repeat
McGraw-Hill
Receive a request
Process
Send
Send
Receive
Destroy: The client has no more request, it will
ask operating system to destroy it.
©The McGraw-Hill Companies, Inc., 2004
Figure 24.7
McGraw-Hill
Socket interface for connectionless iterative server
©The McGraw-Hill Companies, Inc., 2004
Connection-oriented Concurrent Server
One buffer for each connection. Segments from clients are
stored in appropriate buffers and handled concurrently by
the server.
Server duties:
Create a socket
Bind: Asks OS to enter information in the socket related to the server.
Listen: Asks OS to be passive and listen to the client.
Repeat
Create a child process
Create a new socket
Repeating: Read [byte-oriented], Process, Write
Destroy the temporary socket
Client duties:
McGraw-Hill
Create a socket.
Connect.
Repeat: Write, Read
Destroy
©The McGraw-Hill Companies, Inc., 2004
Figure 24.8
McGraw-Hill
Socket interface for connection-oriented concurrent server
©The McGraw-Hill Companies, Inc., 2004