Jump to content

Fast Local Internet Protocol

From Wikipedia, the free encyclopedia

The Fast Local Internet Protocol (FLIP) is a communication protocol for LAN and WAN, conceived for distributed applications. FLIP was designed at the Vrije Universiteit Amsterdam to support remote procedure call (RPC) in the Amoeba distributed operating system.[1]

Comparison to TCP/IP

[edit]

In the OSI model, FLIP occupies the network layer (3), thus replacing IP, but it also obviates the need for a transport layer (4) protocol like TCP.

Layers of functionality in OSI, TCP/IP, and FLIP.[1]
Layer OSI TCP/IP FLIP
7 Application User-defined User-defined
6 Presentation User-defined Amoeba Interface Language (AIL)
5 Session Not used RPC and Group communication
4 Transport TCP or UDP Not needed
3 Network IP FLIP
2 Data Link E.g., Ethernet E.g., Ethernet
1 Physical E.g., Coaxial cable E.g., Coaxial cable

Properties

[edit]

FLIP is a connectionless protocol designed to support transparency (with respect to the underlying network layers of the OSI model: 2. data link and 1. physical), efficient RPC, group communication, secure communication and easy network management. The following FLIP properties helps to achieve the requirements of distributed computing:[1]

  1. FLIP identifies entities with a location-independent 64-bit identifier called Network Service Access Points (NSAPs). An entity can, for example, be a process; contrary to the IP protocol where an IP address identifies a host.
  2. FLIP uses a one-way mapping between the “private” address, used to register an endpoint of a network connection, and the “public” address used to advertise the endpoint.
  3. FLIP routes messages based on NSAP (transparency).
  4. FLIP discovers routes on demand.
  5. FLIP uses a bit in the message header to request transmission of sensitive messages across trusted networks.

See also

[edit]

References

[edit]
  1. ^ a b c M. Frans Kaashoek, Robbert van Renesse, Hans van Staveren, and Andrew S. Tanenbaum. 1993. FLIP: an internetwork protocol for supporting distributed systems. ACM Trans. Comput. Syst. 11, 1 (Feb. 1993), 73–106. https://doi.org/10.1145/151250.151253