You are previewing UNIX® System V Network Programming.
O'Reilly logo
UNIX® System V Network Programming

Book Description

Finally, with UNIX® System V Network Programming, an authoritative reference is available for programmers and system architects interested in building networked and distributed applications for UNIX System V. Even if you currently use a different version of the UNIX system, such as the latest release of 4.3BSD or SunOS, this book is valuable to you because it is centered around UNIX System V Release 4, the version of the UNIX system that unified many of the divergent UNIX implementations.

For those professionals new to networking and UNIX system programming, two introductory chapters are provided. The author then presents the programming interfaces most important to building communication software in System V, including STREAMS, the Transport Layer Interface library, Sockets, and Remote Procedure Calls. So that your designs are not limited to user-level, the author also explains how to write kernel-level communication software, including STREAMS drivers, modules, and multiplexors.

Many examples are provided, including an Ethernet driver and a transport-level multiplexing driver. In the final chapter, the author brings the material from previous chapters together, presenting the design of a SLIP communication package.

Table of Contents

  1. Cover Page
  2. About This eBook
  3. Title Page
  4. Copyright Page
  5. Dedication
  6. Contents
  7. Preface
  8. Part 1: Background Material
    1. 1. Introduction to Networks
      1. 1.1. Background
      2. 1.2. Network Characteristics
      3. 1.3. Networking Models
      4. Summary
      5. Bibliographic Notes
    2. 2. UNIX Programming
      1. 2.1. Overview
      2. 2.2. Concepts
      3. 2.3. Conventions
      4. 2.4. Writing Programs
      5. Summary
      6. Exercises
      7. Bibliographic Notes
  9. Part 2: User-level Network Programming
    1. 3. STREAMS
      1. 3.1. STREAMS Background
      2. 3.2. STREAMS Architecture
      3. 3.3. System Calls
      4. 3.4. Nonblocking I/O and Polling
      5. 3.5. Service Interfaces
      6. 3.6. IPC with STREAMS Pipes
      7. 3.7. Advanced Topics
      8. Summary
      9. Exercises
      10. Bibliographic Notes
    2. 4. The Transport Layer Interface
      1. 4.1. Introduction
      2. 4.2. Transport Endpoint Management
      3. 4.3. Connectionless Service
      4. 4.4. Connection-oriented Service
      5. 4.5. TLI and Read/Write
      6. Summary
      7. Exercises
      8. Bibliographic Notes
    3. 5. Selecting Networks and Addresses
      1. 5.1. Introduction
      2. 5.2. Network Selection
      3. 5.3. Name-to-Address Translation
      4. 5.4. Name-to-Address Library Design
      5. Summary
      6. Exercises
      7. Bibliographic Notes
    4. 6. The Network Listener Facility
      1. 6.1. The Service Access Facility
      2. 6.2. Port Monitors
      3. 6.3. The Listener Process
      4. 6.4. One-shot Servers
      5. 6.5. Standing Servers
      6. 6.6. The NLPS Server
      7. Summary
      8. Exercises
      9. Bibliographic Notes
    5. 7. Sockets
      1. 7.1. Introduction
      2. 7.2. Socket Management
      3. 7.3. Connection Establishment
      4. 7.4. Data Transfer
      5. 7.5. UNIX Domain Sockets
      6. 7.6. Advanced Topics
      7. 7.7. Comparison with the TLI
      8. 7.8. Name-to-Address Translation
      9. Summary
      10. Exercises
      11. Bibliographic Notes
    6. 8. Remote Procedure Calls
      1. 8.1. Introduction
      2. 8.2. XDR
      3. 8.3. High-level RPC Programming
      4. 8.4. Low-level RPC Programming
      5. 8.5. Rpcgen
      6. 8.6. Advanced RPC Features
      7. Summary
      8. Exercises
      9. Bibliographic Notes
  10. Part 3: Kernel-level Network Programming
    1. 9. The STREAMS Subsystem
      1. 9.1. The Kernel Environment
      2. 9.2. The STREAMS Environment
      3. 9.3. STREAMS Messages
      4. 9.4. STREAMS Queues
      5. 9.5. Communicating with Messages
      6. 9.6. Message Types
      7. Summary
      8. Exercises
      9. Bibliographic Notes
    2. 10. STREAMS Drivers
      1. 10.1. Introduction
      2. 10.2. Driver Entry Points
      3. 10.3. The Data Link Provider Interface
      4. 10.4. Ethernet Driver Example
      5. Summary
      6. Exercises
      7. Bibliographic Notes
    3. 11. STREAMS Modules
      1. 11.1. Introduction
      2. 11.2. Module Entry Points
      3. 11.3. The Terminal Interface
      4. 11.4. Network TTY Emulator Example
      5. Summary
      6. Exercises
      7. Bibliographic Notes
    4. 12. STREAMS Multiplexors
      1. 12.1. Introduction
      2. 12.2. How Multiplexors Work
      3. 12.3. The Transport Provider Interface
      4. 12.4. Transport Provider Example
      5. Summary
      6. Exercises
      7. Bibliographic Notes
  11. Part 4: Design Project
    1. 13. Design Project: Implementing SLIP
      1. 13.1. Introduction to SLIP
      2. 13.2. Software Architecture
      3. 13.3. User-level Components
      4. 13.4. Kernel-level Components
      5. Summary
      6. Exercises
      7. Bibliographic Notes
  12. Bibliography
  13. Index