Discussion between a receiver and a sender in the data link layer.
Network Layer
Does the “routing” of packets..
Problem: shortest path is not always available!!
Even if it is available “routing” may opt for a different path? Why?
IP Internet Protocol (main representative of Network Layer)
An IP packet (frame) can be sent without any setup.
Virtual Path is gaining popularity (in ATM networks)
Transport Layer
Data will have to delivered to the other side
with no loss..
The job of the TL is exactly this!
Examples..
TCP (Transmission Control protocol)
UDP (Universal Datagram Protocol): almost similar to IP.
RTP (Real-Time Protocol)
Example: Client-Server TCP
Normal operation of TCP.
Transactional TCP (TCP for Transactions Suite)
High(-er) Level Protocols..
Session and Presentation Layer
Provides dialog facilities, keeps track of who is talking at this time, and provides synchronization if needed.
All these are useful into long transfers as precautions can be taken for the transmission of data.
Examples:
FTP (file transfer protocol)
HTTP (HyperText Transfer Protocol)
TELNET, SSH
Example of Higher Level Protocols: Middleware Protocols
An adapted reference model for networked communication that may enforce the notion of “atomicity”
Communication of Processes-RPCs
[Birell & Nelson TOCS94]
When a process A in machine a calls a routine on machine B, the calling process A suspends and the execution of the called program in B takes place transparently..
Information is transported from caller to callee in the parameters and the result returns
No message passing is visible to the user.
Remote Procedure Call (RPC).
Idea: make a remote procedure call appear as a local one!
Conventional Procedure Call
Parameter passing in a local procedure call: the stack before the call to read (from main() )
Marshaling of parameters has to initially take place.
Passing Value Parameters
Steps involved in doing remote computation through RPC
Possible Problems with Passing Value Parameters
Original message on the Pentium (little Endian-number their bytes from right to left)
The message after receipt on the SPARC (big Endian-numbers the bytes from left to right)
The message after being inverted is not a general solution.
The little numbers in boxes indicate the address of each byte (need some type of deli-meter in order to understand the various representations involved)
integers and strings have to be handled differently!
One solution is forbid passing of pointers all together (rather restrictive)
Some things can be done with arrays:
Copy the array into the message and send it over..
Call-by-reference is replaced by copy/restore..
If the stubs know whether the buffer is an Input parameter to the server or an output parameter to the client optimizations can be done.
Parameter Specification and Stub Generation
En example..
A procedure
The corresponding message.
Extensions of RPCs:Doors[Hamilton & Kougiouris 94]
Asynchronous RPC
The interconnection between client and server in a traditional RPC
The interaction using asynchronous RPC
Asynchronous RPC
A client and server interacting through two asynchronous RPCs
One-way RPCs
Distributed Computing Environment(DCE)
Idea: take a group of machines (running Unix, OS2, Windows etc) add a layer of software and then be able to run distributed applications without disturbing the running of existing applications!
Some basic services offered such as:
Distributed File Service (the worldwide file system)
Directory Service
Security Service
Distributed Time Service (why?)
Writing a Client and a Server
The steps in writing a client and a server in DCE RPC.
Binding a Client to a Server
A client can call a server as long as the server is registered and ready to accept calls!
Registration makes possible that the client can locatethe server and bind to it.
Server location is down into two steps:
Locate the server’s machine
Locate the server (ie, the correct process on that machine!).
Binding of Clients and Servers
In order to achieve the step (2) the port for the service needs to be known.. (or endpoint)
Ports are used by servers as different entry points to different procedure calls.
In DCE there is a daemon (DCE Daemon) that makes this look up between (server, endpoint)
The server also registers with a directory machine(name of machine and IP number)
Binding a Client to a Server
Client-to-server binding in DCE.
Remote Object Invocation
Object-Oriented Technology (CORBA, DCOM) is another way to develop distributed applications.
RPCs could be applied to those frameworks as well.
Object::
Encapsulates data
Methods (operations on data)
Methods are available via interfaces
The differentiation between object & interfaces is critical as far as Distributed Systems concerns.
Interface can be on one machine – Object on another.
Distributed Objects
Common organization of a remote object with client-side proxy.
Proxy = client stub ; Skeleton = Server Stub
The state of such distributed objects is NOT distributed!
A real-distributed object should be one that is physically distributed across multiple machines.
Implicit/Explicit Binding of a Client to an Object
An example with implicit binding using only global references
An example with explicit binding using global and local references (the client first calls a a special function that binds the object before the client can invoke the object’s methods)
Types of Remote Method Invocation (RMI)
Static Invocation
Interfaces of an object are know when client application is being developed.
Dynamic Invocation
Be able to compose a methods invocation at run time!
invoke(object, method, in_params, out_params)
Example: append an integer int to a file object fobject for which the object provides the method append
Static: fobejct.append(int)
Dynamic: invoke(fobject, id(append), int) where id returns an identifier for the method append.
Dynamic Invocation: when is it useful?
Parameter Passing in RMI
Passing an object by reference or by value.
Message Oriented Communication
Example: Mail-Server
Every host is connected to one mail-server (can think of it as being the “comm” server of the picture in the previous slide).
A client interface allows users to get access to the messages (located on the mail servers).
When a user submits an message, the host forwards the message its corresponding mail server.
Mail servers forward/delete messages.
Such a system is an example of persistent communication
Mail-servers follow the Pony Express Model
Persistence has to do with the fact that the mail is stored as long as it takes to deliver it..