Synopses & Reviews
This volume answers the question "How does one use TCP/IP?"—focusing on the client-server paradigm, and examining algorithms for both the client and server components of a distributed program. KEY TOPICS: It presents an implementation that illustrates each design and discusses techniques like application-level gateways and tunneling. The book also reviews several standard application protocols and uses them to illustrate the algorithms and implementation techniques.
Appropriate for a one semester introductory networking course at the senior or graduate level.This volume answers the question "How does application software use TCP/IP to communicate over a network?"--focusing on the client-server paradigm, and examining algorithms for both the client and server components of a distributed program.
Organized for easy reading. First the client-server paradigm and socket interface that application programs use for network communication are covered. this is followed by a discussion of client and server designs that emphasize practical design principles and techniques that are important to programmers.
Includes bibliographical references (p. -498) and index.
Table of Contents
1. Introduction and Overview.
2. The Client Server Model and Software Design.
3. Concurrent Processing In Client-Server Software.
4. Program Interface to Protocols.
5. The Socket API.
6. Algorithms and Issues in Client Software Design.
7. Example Client Software.
8. Algorithms and Issues in Server Software Design.
9. Iterative, Connectionless Servers (UDP).
10. Iterative, Connection-Oriented Servers (TCP).
11. Concurrent, Connection-Oriented Servers (TCP).
12. Singly-Threaded, Concurrent Servers (TCP).
13. Multiprotocol Servers (TCP, UDP).
14. Multiservice Servers (TCP, UDP).
15. Uniform, Efficient Management of Server Concurrency.
16. Concurrency in Clients.
17. Tunneling at the Transport and Application Levels.
18. Application Level Gateways.
19. External Data Representation (XDR).
20. Remote Procedure Call Concept (RPC).
21. Disturbed Program Generation (Rpcgen Concept).
22. Distributed Program Generation (Rpcgen Example).
23. Network File System Concepts (NFS).
24. Network File System Protocol (NFS, Mount).
25. A TELNET Client (Program Structure).
26. A TELNET Client (Implementation Details).
27. Porting Servers From UNIX to Windows.
28. Deadlock and Starvation in Client-Server Systems.
Appendix 1. Functions and Library Routines Used With Sockets.
Appendix 2. Manipulation of Windows Socket Descriptors.