A protocol used to transfer data between processes, usually across a network. Typically, a process creates a named pipe (conceptually, a conduit) with a well-known name; this process is the server process. Processes that can get the name of the pipe can open the other end of the pipe, subject to access restrictions specified by the pipe's creator; these processes are clients. After they are connected, the server and client can exchange data by performing read and write operations on the pipe.