next up previous contents
Next: Contents

University of Newcastle upon Tyne
Dept. of Computing Science

UNIX Communication Facilities

Individual Project

done by: Gerhard Müller (muellerg@informatik.tu-muenchen,de)
Supervisor: Dr. N.A. Speirs (

2nd April 1996

This Document uses HTML 3.0 features, which may not be supported by all WWW-Browsers. Please update your browser to e.g. Netscape 2.0 if necessary.

I wish to thank especially my Supervisor, Dr. A. Speirs, and the Free Software Foundation; without them my work would have been much more difficult.


This document investigates the different mechanisms offered for interprocess and interprocessor communications by the UNIX operating system.

Some important background information is given to allow a better understanding of the UNIX communication facilities. This includes the history of the UNIX operating system, some important standards, and the idea of the client/server model.

Some communication facilities are only available between processes which are executed on the same computer. The usage of signals, pipes, FIFOs, stream pipes, message queues, semaphores, and shared memory is described.

Communication between processes on different computers includes knowledge about networking. Therefore the principles of networking are summarized and one protocol suite, TCP/IP, examined. With this knowledge the UNIX communication facilities for processes on different computers are described: the BSD socket interface and the System V Transport Layer Interface.

The knowledge gained is then used to measure the performance of all described communication facilities. Measurements on three different computer systems are done to allow general conclusions. It is found that buffer sizes over 8 Kb do not normally result in faster data exchange. Shared memory was found to be the fastest local interprocess communication facility, while the User Datagram Protocol (UDP) provides the fastest information exchange between processes on different computers.

While doing the performance measurements the unreliability of the UDP protocol was noticed. The overhead of making communication reliable in spite of an unreliable communication protocol was therefore investigated and a possible solution is described.

This document is also available as postscript file with 600 dpi.
All source code in this document is available here. as .tar.gz file

next up previous contents
Next: Contents

Gerhard Müller