IEEE Transactions on Software Engineering

User-Process Communication Performance in Networks of Computers

View publication


Berkeley UNIX® 4.2BSD is an operating system that provides alternative ways for processes to communicate with each other. User processes may choose intermachine communications media, network protocols, addressing families, and styles of communication. In particular, user processes may use datagram or stream communication. In this paper we present a study of the performance achieved by user processes when using the IPC mechanisms as implemented in Berkeley UNIX 4.2BSD in Ethernet based environments. This study not only assesses the impact that different processors, network hardware interfaces, and Ethernets have on the communication across machines, but also the effect of the loading of the hosts and communication media that participate in the interprocess communication mechanism. Our measurements highlight the ultimate bounds on performance that may be achieved by user process applications communicating across machines, and serve as a guide in designing performance critical applications. Moreover, we present a detailed timing analysis of the dynamic behavior of the TCP/IP and the UDP/IP network communication protocols' implementation in Berkeley UNIX 4.2BSD. This analysis sheds light on architectural constraints of UNIX, on the tradeoffs encountered when software and hardware perform the same actions on data (e.g., checksums) and when several buffering schemes coexist at different levels in a system. © 1988 IEEE