UNIX Network Programming

Last updated
UNIX Network Programming
Rstevens unp 1990.jpeg
Author W. Richard Stevens,
Bill Fenner, Andrew M. Rudoff (third ed)
LanguageEnglish
Genrenon-fiction
Publisher Prentice Hall
Addison-Wesley (third edition)
Publication date
1990 (first ed)
1998 (second ed)
2003 (third ed)
Pages768 (first edition)
1009 (second edition)
1024 (third edition)
ISBN 978-0139498763 (first ed)
978-0134900124 (second ed, vol 1)
978-0130810816 (second ed, vol 2)
978-0131411555 (third ed)
Website www.unpbook.com

Unix Network Programming is a book written by W. Richard Stevens. [1] It was published in 1990 by Prentice Hall and covers many topics regarding UNIX networking and Computer network programming. The book focuses on the design and development of network software under UNIX. The book provides descriptions of how and why a given solution works and includes 15,000 lines of C code. The book's summary describes it as "for programmers seeking an in depth tutorial on sockets, transport level interface (TLI), interprocess communications (IPC) facilities under System V and BSD UNIX." [2] The book has been translated into several languages, including Chinese, Italian, German, Japanese and others.

Later editions have expanded into two volumes, Volume 1: The Sockets Networking API [3] and Volume 2: Interprocess Communications. [4]

In the movie Wayne's World 2 , the book is briefly referenced. [5]

Related Research Articles

<span class="mw-page-title-main">Dennis Ritchie</span> American computer scientist, co-creator of the Unix operating system

Dennis MacAlistair Ritchie was an American computer scientist. He created the C programming language and, with long-time colleague Ken Thompson, the Unix operating system and B programming language. Ritchie and Thompson were awarded the Turing Award from the ACM in 1983, the Hamming Medal from the IEEE in 1990 and the National Medal of Technology from President Bill Clinton in 1999.

The Portable Operating System Interface is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system and user-level application programming interfaces (APIs), along with command line shells and utility interfaces, for software compatibility (portability) with variants of Unix and other operating systems. POSIX is also a trademark of the IEEE. POSIX is intended to be used by both application and system developers.

Berkeley sockets is an application programming interface (API) for Internet sockets and Unix domain sockets, used for inter-process communication (IPC). It is commonly implemented as a library of linkable modules. It originated with the 4.2BSD Unix operating system, which was released in 1983.

An ephemeral port is a communications endpoint (port) of a transport layer protocol of the Internet protocol suite that is used for only a short period of time for the duration of a communication session. Such short-lived ports are allocated automatically within a predefined range of port numbers by the IP stack software of a computer operating system. The Transmission Control Protocol (TCP), the User Datagram Protocol (UDP), and the Stream Control Transmission Protocol (SCTP) typically use an ephemeral port for the client-end of a client–server communication. At the server end of the communication session, ephemeral ports may also be used for continuation of communications with a client that initially connected to one of the services listening with a well-known port. For example, the Trivial File Transfer Protocol (TFTP) and Remote Procedure Call (RPC) applications can behave in this manner.

<span class="mw-page-title-main">Inter-process communication</span> How computer operating systems enable data sharing

In computer science, inter-process communication (IPC), also spelled interprocess communication, are the mechanisms provided by an operating system for processes to manage shared data. Typically, applications can use IPC, categorized as clients and servers, where the client requests data and the server responds to client requests. Many applications are both clients and servers, as commonly seen in distributed computing.

William Richard (Rich) Stevens was a Northern Rhodesia–born American author of computer science books, in particular books on Unix and TCP/IP.

In Unix and Unix-like computer operating systems, a file descriptor is a process-unique identifier (handle) for a file or other input/output resource, such as a pipe or network socket.

In computer networking, the Transport Layer Interface (TLI) was the networking API provided by AT&T UNIX System V Release 3 (SVR3) in 1987 and continued into Release 4 (SVR4). TLI was the System V counterpart to the BSD sockets programming interface, which was also provided in UNIX System V Release 4 (SVR4). TLI was later standardized as XTI, the X/Open Transport Interface.

The Berkeley r-commands are a suite of computer programs designed to enable users of one Unix system to log in or issue commands to another Unix computer via TCP/IP computer network. The r-commands were developed in 1982 by the Computer Systems Research Group at the University of California, Berkeley, based on an early implementation of TCP/IP.

In computer networking, STREAMS is the native framework in Unix System V for implementing character device drivers, network protocols, and inter-process communication. In this framework, a stream is a chain of coroutines that pass messages between a program and a device driver. STREAMS originated in Version 8 Research Unix, as Streams.

Computer network programming involves writing computer programs that enable processes to communicate with each other across a computer network.

A network socket is a software structure within a network node of a computer network that serves as an endpoint for sending and receiving data across the network. The structure and properties of a socket are defined by an application programming interface (API) for the networking architecture. Sockets are created only during the lifetime of a process of an application running in the node.

A Unix domain socket aka UDS or IPC socket is a data communications endpoint for exchanging data between processes executing on the same host operating system. It is also referred to by its address family AF_UNIX.

<span class="mw-page-title-main">CB UNIX</span> Unix variant developed by the Columbus, Ohio branch of Bell Labs

Columbus UNIX, or CB UNIX, is a discontinued variant of the UNIX operating system used internally at Bell Labs for administrative databases and transaction processing. It was developed at the Columbus, Ohio branch, based on V6, V7 and PWB Unix. It was little-known outside the company.

<span class="mw-page-title-main">Unix filesystem</span> Directory structure used by a Unix-like operating system

In Unix and operating systems inspired by it, the file system is considered a central component of the operating system. It was also one of the first parts of the system to be designed and implemented by Ken Thompson in the first experimental version of Unix, dated 1969.

The X/Open Transport Interface (XTI) is an Open Group specification for network application programming present in UNIX System V operating systems. It provides OSI transport layer services with protocol independence. Although Open Group considers this specification withdrawn, an implementation is part of the standard programming interfaces on modern UNIX System V operating systems where it is implemented using the STREAMS character input/output mechanism.

<i>TCP/IP Illustrated</i> 1994–96 book series by Richard Stevens

TCP/IP Illustrated is the name of a series of 3 books written by W. Richard Stevens. Unlike traditional books which explain the RFC specifications, Stevens goes into great detail using actual network traces to describe the protocol, hence its 'Illustrated' title.

<i>Advanced Programming in the Unix Environment</i>

Advanced Programming in the Unix Environment is a computer programming book by W. Richard Stevens describing the application programming interface of the UNIX family of operating systems. The book illustrates UNIX application programming in the C programming language.

<span class="mw-page-title-main">Shared memory</span> Computer memory that can be accessed by multiple processes

In computer science, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Shared memory is an efficient means of passing data between programs. Depending on context, programs may run on a single processor or on multiple separate processors.

References

  1. Stevens, W. Richard (1990). UNIX Network Programming, 1st Ed. Prentice Hall. ISBN   978-0139498763. OCLC   20631405.
  2. "Unix Network Programming - 90 edition: Summary". textbooks.com. Retrieved 2023-02-06.
  3. W. Richard Stevens; Bill Fenner & Andrew M. Rudoff (2003). Unix Network Programming, Volume 1: The Sockets Networking API (3rd ed.). Addison-Wesley Professional. ISBN   978-0131411555. OCLC   53867239.
  4. Stevens, W. Richard (1998). Unix Network Programming, Volume 2: Interprocess Communications (2nd ed.). Prentice Hall. ISBN   9780130810816. OCLC   1055101128.
  5. Chalmers, Rachel (Sep 1, 2000). "Guru of the Unix gurus". Salon.com . Retrieved 2023-02-06.