Transcript module_20
Module 2.0
Application Layer
K. Salah
1
Network layer duties
K. Salah
2
Client-Server
Model:
Socket Interface
K. Salah
3
Most common way by which a computer
can ask for the services of another
computer.
Internet is based on C/S model
When should an application program be
running – all the time or just when
there is a need for the service?
K. Salah
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.
4
Concurrency
Concurrency in Clients
Concurrency in Servers
K. Salah
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.
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.
5
Client-Server Model
Client-Server Relationship
K. Salah
6
Figure 24.3
K. Salah
Connectionless iterative server
Uses connectionless protocol: UDP.
Server processes one request at a time.
Server uses one single port [well-known port]
7
Figure 24.4
Uses connection-oriented: 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.
Uses one well-known port and many ephemeral ports
K. Salah
Connection-oriented concurrent server
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.
8
Processes
Process is a program in execution.
When the operating system executes a
program, the program becomes a live,
i.e. becomes a process.
Several processes or threads can run
simultaneously
K. Salah
9
Figure 24.5
Socket structure
Socket Interface
Sockets
Communication structure that we need in socket
programming.
Socket acts as an endpoint.
Two processes need a socket at each end to communicate
with each other.
K. Salah
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
10
Figure 24.6
K. Salah
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.
11
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
K. Salah
Receive a request
Process
Send
Send
Receive
Destroy
12
Figure 24.7
K. Salah
Socket interface for connectionless iterative server
13
Connection-oriented Concurrent Server
One buffer is 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 passive and listen to the client.
Repeat
Client duties:
K. Salah
Create a child process
Create a new socket
Repeating: Read [byte-oriented], Process, Write
Destroy the temporary socket
Create a socket.
Connect.
Repeat: Write, Read
Destroy
14
Figure 24.8
K. Salah
Socket interface for connection-oriented concurrent server
15