Before getting into the details of FLIP, it is useful to understand something about why it was designed. After all, there are plenty of existing protocols, so the invention of a new one clearly has to be justified. In Fig. 7-15 we list the principal requirements that a protocol for a distributed system should meet. First, the protocol must support both RPC and group communication efficiently. If the underlying network has hardware multicast or broadcast, as Ethernet does, for example, the protocol should use it for group communication. On the other hand, if the network does not have either of these features, group communication must still work exactly the same way, even though the implementation will have to be different. Fig. 7-15. Desirable characteristics for a distributed system protocol. A characteristic that is increasingly important is support for process migration. A process should be able to move from one machine to another, even to one in a different network, with nobody noticing. Protocols such as OSI, X.25, and TCP/IP that use machine addresses to identify processes make migration difficult, because a process cannot take its address with it when it moves. Security is also an issue. Although the get-ports and put-ports provide security for Amoeba, a security mechanism should also be present in the packet protocol so it can be used with operating systems that do not have cryptographically secure addresses. Another point on which most existing protocols score badly is network management. It should not be necessary to have elaborate configuration tables telling which network is connected to which other network. Furthermore, if the configuration changes, due to gateways going down or coming back up, the protocol should adapt to the new configuration automatically. Finally, the protocol should work on both local and wide-area networks. In particular, the same protocol should be usable on both.Protocol Requirements for Distributed Systems
Item
Description
RPC
The protocol should support RPC
Group communication
The protocol should support group communication
Process migration
Processes should be able to take their addresses with them
Security
Processes should not be able to impersonate other processes
Network management
Support is needed for automatic reconfiguration
Wide-area networks
The protocol should also work on wide area networks