Werner Nutt
1
Interprocess Communication
3.1 Principles
1. 2. 3. 4. 5.
Principles APIs for UDP and TCP External Data Representation Client Server Communication Group Communication
2
Middleware
Middleware offers an infrastructure that enables application processes to communicate with each other Processes issue requests to the transportation layer
(i.e., the application takes the initiative, not the middleware)
Applications access the middleware via APIs, e.g., – creation and manipulation of sockets Integration into programming languages – remote procedure call (RPC) – remote method invocation (RMI) For higher level APIs, data has to be transformed before it can be shipped (“data marshalling”) Protocols for Client/Server Interaction (“Request/Reply”)
3
Middleware Layers
ISO/OSI
Applications, services RMI and RPC
This This chapter chapter
7
request-reply protocol marshalling and external data representation UDP and TCP
Middleware layers
6
4,5
4
Characteristics of IPC
Message Passing Primitives: Send, Receive Message = Destination = – Port = destination within a host that identifies a receiving process – Ports are uniquely identified by their port number – Hosts are uniquely identified ... (or not?)
5
Assigned Port Numbers
FTP Data FTP Control SSH Telnet SMTP Domain Name Server Whois HTTP POP3 IMAP4 BGP HTTPS IMAP4 over SSL 20 21 22 23 25 42 43 80 110 143 179 443 993
Assigned by IANA (= Internet Assigned Numbers Authority) Numbers between 0 and 1023 are “well-known” ports — opening a port for such numbers requires privileges
can be found - on the Web - in “/etc/services” under Linux and MAC/OS
6
Sockets
Characteristics – Endpoint for inter-process communication – Message transmission between sockets – A socket is associated with either UDP or TCP – Sockets are bound to ports – One process can use many ports – Processes don’t share sockets (unless
References: In preparing the lectures I have used several sources. The main ones are the following: Books: Coulouris, Dollimore, Kindberg. Distributed Systems – Concepts and Design (CDK) Slides: Marco Aiello, course on Distributed Systems at the Free University of Bozen-Bolzano Andrew Tanenbaum, Slides from his website CDK Website Marta Kwiatkowska, U Birmingham, slides of course on DS 57