An Introduction to Internetworking

Slides:



Advertisements
Similar presentations
TCP/IP MODEL Maninder Kaur
Advertisements

Java Network Programming Vishnuvardhan.M. Dept. of Computer Science - SSBN Java Overview Object-oriented Developed with the network in mind Built-in exception.
Transport Layer3-1 Transport Overview and UDP. Transport Layer3-2 Goals r Understand transport services m Multiplexing and Demultiplexing m Reliable data.
Slide 1 Client / Server Paradigm. Slide 2 Outline: Client / Server Paradigm Client / Server Model of Interaction Server Design Issues C/ S Points of Interaction.
Socket Programming.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 17 Introduction to the Application.
1 Java Networking – Part I CS , Spring 2008/9.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Sockets  Defined as an “endpoint for communication.”  Concatenation of IP address + port.  Used for server-client communication.  Server waits for.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
The Transport Layer Chapter 6. The Transport Service Services Provided to the Upper Layers Transport Service Primitives Berkeley Sockets An Example of.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Application Layer PART VI.
An Introduction to Internetworking. Why distributed systems - Share resources (devices & CPU) - Communicate people (by transmitting data)
An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
Process-to-Process Delivery:
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Jozef Goetz, Application Layer PART VI Jozef Goetz, Position of application layer The application layer enables the user, whether human.
1 7-Oct-15 OSI transport layer CCNA Exploration Semester 1 Chapter 4.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 Chapter 16 Socket Interface
 TCP (Transport Control Protocol) is a connection-oriented protocol that provides a reliable flow of data between two computers.  TCP/IP Stack Application.
Dr. John P. Abraham Professor University of Texas Pan American Internet Applications and Network Programming.
 Remote Procedure Call (RPC) is a high-level model for client-sever communication.  It provides the programmers with a familiar mechanism for building.
The InetAddress Class A class for storing and managing internet addresses (both as IP numbers and as names). The are no constructors but “class factory”
Position of application layer. Application layer duties.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Advanced UNIX programming Fall 2002, lecture 16 Instructor: Ashok Srinivasan Acknowledgements: The syllabus and power point presentations are modified.
UNIT-6. Basics of Networking TCP/IP Sockets Simple Client Server program Multiple clients Sending file from Server to Client Parallel search server.
©The McGraw-Hill Companies, Inc., 2000© Adapted for use at JMU by Mohamed Aboutabl, 2003Mohamed Aboutabl1 1 Chapter 16 Socket Interface.
Multimedia Retrieval Architecture Electrical Communication Engineering, Indian Institute of Science, Bangalore – , India Multimedia Retrieval Architecture.
1 Network Communications A Brief Introduction. 2 Network Communications.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
1 K. Salah Application Layer Module K. Salah Network layer duties.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
SOCKET PROGRAMMING Presented By : Divya Sharma.
UDP Socket Programming
Introduction To Application Layer
Introduction to Networks
Chapter 5 Network and Transport Layers
The Transport Layer Implementation Services Functions Protocols
Last Class: Introduction
Networking Based Applications
Client-Server Communication
Chapter 3 outline 3.1 Transport-layer services
Boots Cassel Villanova University
Client-Server Model and Sockets
MCA – 405 Elective –I (A) Java Programming & Technology
Understand the OSI Model Part 2
TCP Transport layer Er. Vikram Dhiman LPU.
#01 Client/Server Computing
Introduction to Networks
Client-Server Interaction
Congestion Control, Internet transport protocols: udp
DISTRIBUTED COMPUTING
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Process-to-Process Delivery:
Chapter 16 Socket Interface.
Issues in Client/Server Programming
Creating a Distributed System with Remote Procedure Calls and Web Services Ch.5 B.Ramamurthy 2/17/2019 B.Ramamurthy.
Internet Applications & Programming
An Introduction to Internetworking
Computer Networks Topic :User datagram protocol Transmission Control Protocol -Hemashree S( )
Kyle Broussard, Alexandra Mikolai,
Process-to-Process Delivery: UDP, TCP
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
#01 Client/Server Computing
Presentation transcript:

An Introduction to Internetworking Topics on Distributed Systems

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

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

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

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

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

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

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

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

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

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”

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

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

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

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

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

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

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

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

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

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 0 XYZ 0 1 FILE ZXY 50 Request open file XYZ A CLIENT A SERVER ? Answer: file pointer to file XYZ

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 0 XYZ 50 1 FILE ZXY 50 Request 0, read 50 A CLIENT A SERVER ? Answer: the content

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 0 XYZ 100 1 FILE ZXY 50 Request 0, read 50 A CLIENT A SERVER ? Answer: the content

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 0 XYZ 100 1 FILE ZXY 50 Request 0, read 50 A CLIENT A SERVER ? Answer: the content

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?

New products between the application and transport layer make distributed programming much easier Libraries for distributed programming (middleware) RPC, CORBA, RMI

RPC: remote procedure call Remote process 1. Obtain reference 2. Call procedure & Receive results as the procedure were in the calling computer

RMI in JAVA (similar to CORBA) server Other applications use and share this object (data) Creates and publishes a Remote Object

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)