Download presentation
Presentation is loading. Please wait.
1
An Introduction to Internetworking
Topics on Distributed Systems
2
Algorithm for client-server communication with UDP (connectionless)
A SERVER A CLIENT Create a server-socket (listener)and bound it to a port (higher than 1024) Start listening for UDP packages comming Receive the UDP package and extract Message, Host Address & Port from seder Build a new UDP package with thesender´s Address & Port and the reply message Send message Build a UDP package with the request message, server´s address & port numbre Create socket Send package Listen to answer Receive package Extract answer
3
Algorithm for client-server communication with TCP (connection-oriented)
A SERVER A CLIENT Create a server-socket (listener)and bound it to a port (higher than 1024) Start listening for request Create another (normal) socket and build a TCP connection when a request arrives Open IO streams for this connection read-write Create socket and try a redezvous with a server (given address and port) If the redezvous occurs, build a TCP connection Open IO streams for this connection write-read THIS IS THE APPLICATION’S PROTOCOLL
4
Every layer has the illusion to be talking to the correspondent one in the other application
A CLIENT A SERVER The UDP: User Defined Package: like writing a letter Read write sequence 4444 UDP or TCP communication A CLIENT Internet frames and addresses A CLIENT electric pulses
5
Attending more than a client: The sequential server: The problem
A SERVER ? A CLIENT 4444 A CLIENT
6
During the conversation the server is not listening at the port 444
A CLIENT A SERVER X A CLIENT 4444 A CLIENT
7
Only after the server is ready with the first client it can listen to the port 4444 again
A CLIENT A SERVER ? A CLIENT 4444 A CLIENT
8
The service may be to transfer a file
The service may be to transfer a file. The user at the client may have first to type and send the filename A CLIENT A SERVER X A CLIENT 4444 A CLIENT
9
What if the server has to wait too much for a client to type in a file name ? (or the file is too big) A CLIENT A SERVER Timeout X A CLIENT 4444 A CLIENT
10
Concurrent Servers: there are separate processes to attend the port and to transfer the file
A CLIENT A SERVER ? 4444 A CLIENT A CLIENT
11
After the client contacts the server, the server creates another process to attend the client and keeps listening to the port 4444 for another A CLIENT A SERVER ? 4444 A CLIENT A CLIENT This is a “slave” process or thread It is executed paralell to the “master”
12
While the new process is serving the first client, the second client can contact the server at the port 4444 A CLIENT A SERVER ? 4444 A CLIENT A CLIENT
13
And the server creates another process
A CLIENT A SERVER ? 4444 A CLIENT A CLIENT
14
Now the third client contacts the server
A CLIENT A SERVER ? 4444 A CLIENT A CLIENT
15
And a third slave process or thread is created
A CLIENT A SERVER ? 4444 A CLIENT A CLIENT
16
When should I use iterative or concurrent server ?
When the answer to a request is small and speedy it is better to have an iterative server When the server should “talk” to the client and wait for actions of the client´s user it is better to use a concurrent server Iterative servers often use UDP connections while concurrent servers use TCP connections
17
Stateless vs. Stateful servers: the problem of reading a remote file by steps. File reading requests arrive with dealy Request open file XYZ A CLIENT A SERVER ? Answer file XYZ exists and ready Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file
18
A stateless server means it does not remember previous requests
Request read bytes 0 to 49 from file XYZ A CLIENT A SERVER ? Answer the content of the bytes Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file
19
The client must provide all the information again !
Request read bytes 50 to 99 from file XYZ A CLIENT A SERVER ? Answer the content of the bytes Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file
20
This may cause a lot of network traffic, especially if there are many clients
Request read bytes X to X+50 from file XYZ A CLIENT A SERVER ? Answer the content of the bytes Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file
21
Stateful Server: it mantains some information abut what clients did
Pointer File Position Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file XYZ 0 1 FILE ZXY Request open file XYZ A CLIENT A SERVER ? Answer: file pointer to file XYZ
22
The information the client has to pass to the server is much smaller
Pointer File Position Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file XYZ 50 1 FILE ZXY Request 0, read 50 A CLIENT A SERVER ? Answer: the content
23
The information at the server should be updated with every request
Pointer File Position Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file XYZ 1 FILE ZXY Request 0, read 50 A CLIENT A SERVER ? Answer: the content
24
It is important to close the file !!!
Pointer File Position Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file XYZ 1 FILE ZXY Request 0, read 50 A CLIENT A SERVER ? Answer: the content
25
Problems with stateful servers
They are more efficient but they are more sensitive to errors, especially with UDP connections What if a request does not arrive to the server? What if the client collapses without telling it?
26
New products between the application and transport layer make distributed programming much easier
Libraries for distributed programming (middleware) RPC, CORBA, RMI
27
RPC: remote procedure call
Remote process 1. Obtain reference 2. Call procedure & Receive results as the procedure were in the calling computer
28
RMI in JAVA (similar to CORBA)
server Other applications use and share this object (data) Creates and publishes a Remote Object
29
Problems to solve How does the client which are the name of the procedures that can be invoked (interface file) How can a client know where to find a remote object? (server) How is communication implemented? (http protocols)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.