SUMMARY: A Good Network Programming Book.
Christian Marcotte
scoob at vlsi.polymtl.ca
Thu Jan 10 04:06:24 AEST 1991
Hello networker out there !!!
After posting a request for advise on a good Unix Network
programming book covering both Berkeley Sockets ant TLI,
I received replies, ALL of them praising the same book:
Unix Network Programming
By: W. Richard Stevens
Prentiss Hall Software Series
(Published in 1990)
ISBN 0-13-949876-1
It seems unanimous, every one loves this book. It covers
everything I asked for and more. There seems to be examples
of code with sources available on the NET (UUNET.UU.NET).
Here's some of the feedbacks I received. (The last one was
sent by the author and is the table of content).
Many thanks to every one who bothered to reply.
Scoob.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
This book in my opinion should give you a good platform on
exactly how all the pieces of a network fit together. It has
a good introduction on the use of Interprocess Communication
facilities (Pipes,Fifos,Messages,Shared Memory, etc.), it then
discusses Protocols (TCP/IP,XNS,SNA,OSI,UUCP, etc.). Finally,
the book has entire chapters on the discussion of Sockets and
the System V TLI.
Another interesting feature I like about this book (besides
the examples) is that it point out some limitations of different
vendors products, that is, it takes such things as byte ordering,
maximum amount of shared memory, etc for different CPU's.
-----------------------------------------------------------------------
[...]
It'd take years to fully sing its praises; suffice it to say,
it's precisely what you want.
------------------------------------------------------------------------
``UNIX Network Programming'' is the best book I have found on the subject of
sockets, TLI, XNS, etc... It is quite comprehensive with good chapters on
controlling UNIX processes and an overview of networks in addition to
covering the various network standards.
-----------------------------------------------------------------------
It is a good introduction for beginning network programmers in general
and does a good job of explaining both sockets and TLI. Examples are
done in both forms to make it clear how things work. The sources to
the examples are supposed to be available on UUNET.
-----------------------------------------------------------------------
----------------------------------------------------------------------
"UNIX Network Programming" by W. Richard Stevens
(c) Prentice Hall 1990
ISBN# 0-13-949876-1
Preface x
Chapter 1. Introduction 1
1.1 History 1
1.2 Layering 3
1.3 OSI Model 3
1.4 Processes 4
1.5 A Simplified Model 4
1.6 Client-Server Model 5
1.7 Plan of the Book 6
1.8 A History of Unix Networking 8
Chapter 2. The Unix Model 10
2.1 Introduction 10
2.2 Basic Definitions 10
2.3 Input and Output 38
2.4 Signals 43
2.5 Process Control 54
2.6 Daemon Processes 72
2.7 Summary 85
Chapter 3. Interprocess Communication 87
3.1 Introduction 87
3.2 File and Record Locking 88
3.3 A Simple Client-Server Example 101
3.4 Pipes 102
3.5 FIFOs 110
3.6 Streams and Messages 115
3.7 Name Spaces 119
3.8 System V IPC 121
3.9 Message Queues 126
3.10 Semaphores 137
3.11 Shared Memory 153
3.12 Sockets and TLI 169
3.13 Summary 170
Chapter 4. A Network Primer 171
Chapter 5. Communication Protocols 197
5.1 Introduction 197
5.2 TCP/IP--the Internet Protocols 198
5.3 XNS--Xerox Network Systems 214
5.4 SNA--Systems Network Architecture 224
5.5 NetBIOS 238
5.6 OSI Protocols 245
5.7 UUCP--Unix-to-Unix Copy 252
5.8 Protocol Comparisons 254
5.9 Summary 257
Chapter 6. Berkeley Sockets 258
6.1 Introduction 258
6.2 Overview 261
6.3 Unix Domain Protocols 262
6.4 Socket Addresses 264
6.5 Elementary Socket System Calls 267
6.6 A Simple Example 278
6.7 Advanced Socket System Calls 298
6.8 Reserved Ports 303
6.9 Stream Pipes 304
6.10 Passing File Descriptors 306
6.11 Socket Options 312
6.12 Asynchronous I/O 326
6.13 Input/Output Multiplexing 328
6.14 Out-of-Band Data 332
6.15 Sockets and Signals 333
6.16 Internet Superserver 334
6.17 Socket Implementation 339
6.18 Summary 340
Chapter 7. System V Transport Layer Interface 342
7.1 Introduction 342
7.2 Overview 343
7.3 Transport Endpoint Addresses 345
7.4 Elementary TLI Functions 345
7.5 A Simple Example 360
7.6 Advanced TLI Functions 370
7.7 Streams 374
7.8 TLI Implementation 379
7.9 Stream Pipes 381
7.10 Passing File Descriptors 386
7.11 Input/Output Multiplexing 388
7.12 Asynchronous I/O 389
7.13 Out-of-Band Data 390
7.14 Summary 391
Chapter 8. Library Routines 392
8.1 Introduction 392
8.2 Berkeley Network Library Routines 392
8.3 Network Utility Routines 397
8.4 Providing a Reliable Message Service 405
8.5 Summary 419
Chapter 9. Security 420
9.1 Introduction 420
9.2 4.3BSD Routines 421
9.3 Kerberos 430
9.4 Summary 436
Chapter 10. Time and Date Routines 437
10.1 Introduction 437
10.2 Internet Time and Date Client 437
10.3 Network Time Synchronization 443
10.4 Summary 443
Chapter 11. Ping Routines 445
11.1 Introduction 445
11.2 Internet Ping Client 445
11.3 XNS Echo Client 460
11.4 Summary 464
Chapter 12. Trivial File Transfer Protocol 465
12.1 Introduction 465
12.2 Protocol 465
12.3 Security 471
12.4 Data Formats 471
12.5 Connections 472
12.6 Client User Interface 473
12.7 UDP Implementation 474
12.8 TCP Implementation 520
12.9 Summary 525
Chapter 13. Line Printer Spoolers 527
13.1 Introduction 527
13.2 4.3BSD Print Spooler 527
13.3 4.3BSD lpr Client 543
13.4 System V Print Spooler 554
13.5 Summary 561
Chapter 14. Remote Command Execution 563
14.1 Introduction 563
14.2 Security Issues 564
14.3 rcmd Function and rshd Server 565
14.4 rexec Function and rexecd Server 587
14.5 Summary 587
Chapter 15. Remote Login 589
15.1 Introduction 589
15.2 Terminal Line Disciplines 590
15.3 A Simple Example 591
15.4 Pseudo-Terminals 600
15.5 Terminal Modes 606
15.6 Control Terminals (Again) 613
15.7 rlogin Overview 616
15.8 Windowing Environments 617
15.9 Flow Control 621
15.10 Pseudo-Terminal Packet Mode 622
15.11 rlogin Client 625
15.12 rlogin Server 646
15.13 Summary 665
Chapter 16. Remote Tape Drive Access 668
16.1 Introduction 668
16.2 Unix Tape Drive Handling 668
16.3 rmt Protocol 669
16.4 rmt Server 671
16.5 Summary 679
Chapter 17. Performance 680
17.1 Introduction 680
17.2 IPC Performance 680
17.3 Tape Performance 684
17.4 Disk Performance 686
17.5 Network Performance 687
17.6 Summary 690
Chapter 18. Remote Procedure Calls 692
18.1 Introduction 692
18.2 Transparency Issues 694
18.3 Sun RPC 700
18.4 Xerox Courier 709
18.5 Apollo RPC 716
18.6 Summary 719
Appendix A. Miscellaneous Source Code 720
A.1 System Type Header File 720
A.2 System Type Shell Script 722
A.3 Standard Error Routines 722
A.4 Timer Routines 731
Bibliography 735
Index 748
More information about the Comp.unix.questions
mailing list