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.
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.
Bibliography.
Index.