Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and.

Similar presentations


Presentation on theme: "An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and."— Presentation transcript:

1 An Introduction to Internetworking

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 SERVER A CLIENT 4444 The UDP: User Defined Package: like writing a letterRead write sequence UDP or TCP communication Internet frames and addresses electric pulses

5 Attending more than a client: The sequential server: The problem A SERVER A CLIENT 4444 ?

6 During the conversation the server is not listening at the port 444 A SERVER A CLIENT 4444 X

7 Only after the server is ready with the first client it can listen to the port 4444 again A SERVER A CLIENT 4444 ?

8 The service may be to transfer a file. The user at the client may have first to type and send the filename A SERVER A CLIENT 4444 X

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 SERVER A CLIENT 4444 Timeout X

10 Concurrent Servers: there are separate processes to attend the port and to transfer the file A SERVER A CLIENT 4444 ?

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 SERVER A CLIENT 4444 This is a “slave” process or thread It is executed paralell to the “master” process or thread ?

12 While the new process is serving the first client, the second client can contact the server at the port 4444 A SERVER A CLIENT 4444 ?

13 And the server creates another process A SERVER A CLIENT 4444 ?

14 Now the third client contacts the server A SERVER A CLIENT 4444 ?

15 And a third slave process or thread is created A SERVER A CLIENT 4444 ?

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 A SERVER A CLIENT Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file ? Request open file XYZ Answer file XYZ exists and ready

18 A stateless server means it does not remember previous requests A SERVER A CLIENT Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file ? Request read bytes 0 to 49 from file XYZ Answer the content of the bytes

19 The client must provide all the information again ! A SERVER A CLIENT Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file ? Request read bytes 50 to 99 from file XYZ Answer the content of the bytes

20 This may cause a lot of network traffic, especially if there are many clients A SERVER A CLIENT Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file ? Request read bytes X to X+50 from file XYZ Answer the content of the bytes

21 Stateful Server: it mantains some information abut what clients did A SERVER A CLIENT Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file ? Request open file XYZ Answer: file pointer to file XYZ Pointer File Position 0 XYZ 0 1 FILE ZXY 50

22 The information the client has to pass to the server is much smaller A SERVER A CLIENT Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file ? Request 0, read 50 Answer: the content Pointer File Position 0 XYZ 50 1 FILE ZXY 50

23 The information at the server should be updated with every request A SERVER A CLIENT Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file ? Request 0, read 50 Answer: the content Pointer File Position 0 XYZ 100 1 FILE ZXY 50

24 It is important to close the file !!! A SERVER A CLIENT Open file XYZ read first 50 bytes while (not end of file XYZ) read next 50 bytes close file ? Request 0, read 50 Answer: the content Pointer File Position 0 XYZ 100 1 FILE ZXY 50

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) Creates and publishes a Remote Object Other applications use and share this object (data) server

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) What do I gain? (protocols!)

30 Programming and running a RMI Interface Implementation RMI Interface Server prog. Client prog. The RMI-Registry server


Download ppt "An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and."

Similar presentations


Ads by Google