Readings for (Firewall) Software Developers

[this incomplete list includes only those books that i consider indispensible, excellent or very good in my experience; any suggestions for additions welcome.]

Networking, Operating Systems

W. Richard Stevens
Unix Network Programming
Prentice-Hall, 1990

W. Richard Stevens
TCP/IP Illustrated, Volume 1: The Protocols
Addison-Wesley, 1994

Gary R. Wright and W. Richard Stevens
TCP/IP Illustrated, Volume 2: The Implementation
Addison-Wesley, 1995

W. Richard Stevens
TCP/IP Illustrated, Volume 3: TCP for Transactions,
HTTP, NNTP, and the UNIX Domain Protocols

Addison-Wesley, 1996

Marshall McKusick, Keith Bostic, Michael J. Karels, John S. Quarterman
The Design and Implementation of the 4.4 BSD Operating System
Addison-Wesley, 1996

Firewalls, Cryptography

William R. Cheswick and Steven M. Bellovin
Firewalls and Internet Security: Repelling the Wily Hacker
Addison-Wesley, 1994

D. Brant Chapman and Elizabeth D. Zwicky
Building Internet Firewalls
O'Reilly & Associates, 1995

Bruce Schneier
Applied Cryptography: Protocols, Algorithms and Source Code in C
John Wiley & Sons, 1996 (Second Edition)

Dorothy E. Denning
Cryptography and Data Security
Addison-Wesley, 1982

Charlie Kaufman, Radia Perlman and Mike Speciner
Network Security: Private Communication in a Public World
PTR Prentice-Hall, 1995

Programming, Algorithms, Data Structures

W. Richard Stevens
Advanced Programming in the Unix Environment
Addison-Wesley, 1992

Donald E. Knuth
The Art of Computer Programming: Fundamental Algorithms
Addison-Wesley, 1973

Donald E. Knuth
The Art of Computer Programming: Sorting and Searching
Addison-Wesley, 1973

Donald E. Knuth
The Art of Computer Programming: Seminumerical Algorithms
Addison-Wesley, 1981

David R. Hanson
C Interfaces and Implementations: Techniques for Creating Reusable Software
Addison-Wesley, 1997

Gaston H. Gonnet and Ricardo Baeza-Yates
Handbook of Algorithms and Data Structures
Addison-Wesley, 1991 (Second Edition)

Programming Languages

Brian Kernighan and Dennis Ritchie
The C Programming Language
Prentice-Hall, 1989 (Second Edition)

Samuel Harbison and Guy Steele, Jr.
C: A Reference Manual (4th edition)
Prentice-Hall, 1995

P. J. Plauger
The Standard C Library
Prentice-Hall, 1992

James Gosling, Bill Joy and Guy Steele
The Java Language Specification
Addison-Wesley, 1996

Don Libes
Exploring Expect
O'Reilly & Associates, 1995

Larry Wall, Tom Christiansen and Randal L. Schwartz
Programming Perl (2nd edition)
O'Reilly & Associates, 1996

Programming in General

Jon L. Bentley
Programming Pearls
Addison-Wesley, 1986

Jon L. Bentley
More Programming Pearls
Addison-Wesley, 1988

Jon L. Bentley
Writing Efficient Programs
Prentice-Hall, 1982

Performance Analysis

Raj Jain
The Art of Computer Systems Performance Analysis
Techniques for Experimental Design, Measurement, Simulation and Modeling

John Wiley and Sons, 1991

General Reference

Patrick Chan and Rosanna Lee
The Java Class Libraries: An Annotated Reference
Addison-Wesley, 1997

Standards Documents

IEEE/ANSI Std 1003.1, Portable Operating System Inferface (POSIX)
Part 1: System Application: Pogram Interface

The Institute of Electrical and Electronics Engineers, 1996

Other OK-Useful Books

Ken Arnold and James Gosling
The Java Programming Language
Addison-Wesley, 1996

Craig Hunt
TCP/IP Network Administration
O'Reilly & Associates, 1992