W. Richard Stevens
W. Richard Stevens (1951 ~ 1999) was an extraordinary tech writer and teacher. He's considered as Guru of the Unix gurus.
"I really believe that my background is fundamental to the success of Unix Network Programming and my other books," he said. "That is, I was not one of the developers at Berkeley or AT&T, so the writing of UNP was not a 'memory dump.' Everything that is in the book I had to dig out of somewhere and understand myself."
Unix Network Programming
Before he published Unix Network Programming 1/e in 1990, there was very limited resource on how to program with BSD Sockets API. Besides manpages, I could only found two short tutorials from BSD documents, ~20 pages each.
- An Introductory 4.3BSD Interprocess Communication Tutorial, Stuart Sechrest, 1986.
- An Advanced 4.3BSD Interprocess Communication Tutorial, Samuel J. Leffler, et al., 1986.
Quote from Usenix Lifetime Achievement Award:
He made network programming accessible, even possible, to learn.
TCP/IP Illustrated
Quote from Usenix Lifetime Achievement Award:
His three volume work, TCP/IP Illustrated, was so complete and true to reality that it is used as a reference by members of the Internet Engineering Task Force, the group charged with creating and maintaining the standards for the Internet.
For example, TCP/IP Illustrated, vol. 1: The Protocols was published in Jan 1994. It often appeared as the reference of TCP, on many papers and RFCs published after that.
- TCP Vegas: End to End Congestion Avoidance on a Global Internet, Lawrence Brakmo and Larry Peterson, JSAC 1995.
- Performance Problems in BSD4.4 TCP, L. Brakmo and L. Peterson, 1995.
- RFC1948: Defending Against Sequence Number Attacks, 1996.
- Simulation-based Comparisons of Tahoe, Reno, and SACK TCP, Kevin Fall and Sally Floyd, 1996.
- RFC2018: TCP Selective Acknowledgment Options, 1996.
- Automated Packet Trace Analysis of TCP Implementations, Vern Paxson, 1997.
- The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm, Matthew Mathis, et al., 1998.
- TCP Congestion Control with a Misbehaving Receiver, Stefan Savage, et al., 1999.
- RFC2525: Known TCP Implementation Problems, 1999.
APUE
Quote Dennis Ritchie's Foreword to the Second Edition
In fact, I would claim that a central reason for the [Unix] system’s longevity has been that it has attracted remarkably talented writers to explain its beauties and mysteries. Brian Kernighan is one of these; Rich Stevens is certainly another. The first edition of this book, along with his series of books about networking, are rightfully regarded as remarkably well-crafted works of exposition, and became hugely popular.
RFCs
Besides the classic books he wrote, W. Stevens authored and co-authored two series of RFCs.
- TCP Congestion Control
- RFC2001: TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms, W. Stevens, 1997
- First RFC to document TCP congestion control, much of this memo is taken from TCPv1 and TCPv2 books.
- RFC2581: TCP Congestion Control, M. Allman, V. Paxson, W. Stevens, 1999.
- RFC2001: TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms, W. Stevens, 1997
In RFC5681, the current standard of TCP congestion control, in Acknowledgments:
W. Richard ("Rich") Stevens wrote the first version of this document [RFC2001] and co-authored the second version [RFC2581]. This present version much benefits from his clarity and thoughtfulness of description, and we are grateful for Rich's contributions in elucidating TCP congestion control, as well as in more broadly helping us understand numerous issues relating to networking.
- IPv6 Sockets API
- RFC 2133: Basic Socket Interface Extensions for IPv6, Gilligan, R., Thomson, S., Bound, J., and W. Stevens, 1997.
- RFC 2533: 1999
- RFC 3493: 2003
- RFC 2292: Advanced Sockets API for IPv6, W. Stevens and M. Thomas, 1998.
- RFC 3542: 2003
- RFC 2133: Basic Socket Interface Extensions for IPv6, Gilligan, R., Thomson, S., Bound, J., and W. Stevens, 1997.
In other words, Rich Stevens not only documented the Sockets API, he helped design it.