Frame


SUPER-UX Network Programmer's Guide

Contents


Proprietary Notice

Documentation Log

Introduction

Chapter 1 Introduction

1.1 ISO Reference Model
1.2 Network Protocols on SUPER-UX
1.2.1 Lower-Layer Protocols
1.2.2 Upper-Layer Protocols
1.3 Application Interfaces

Chapter 2 Socket Interface

2.1 Introductory Interprocess Communication Tutorial
2.1.1 Goals
2.1.2 Processes
2.1.3 Pipes
2.1.4 Socketpairs
2.1.5 Domains and Protocols
2.1.6 Datagrams in the UNIX Domain
2.1.7 Datagrams in the Internet Domain
2.1.8 Connections
2.1.9 Reads, Writes, and Recvs
2.1.10 Choices
2.1.11 What to Do Next
2.2 Advanced Interprocess Communication Tutorial
2.2.1 Introduction
2.2.2 Basics
2.2.2.1 Socket Types
2.2.2.2 Socket Creation
2.2.2.3 Binding Local Names
2.2.2.4 Connection Establishment
2.2.2.5 Data Transfer
2.2.2.6 Discarding Sockets
2.2.2.7 Connectionless Sockets
2.2.2.8 Input/Output Multiplexing
2.2.3 Network Library Routines
2.2.3.1 Host Names
2.2.3.2 Network Names
2.2.3.3 Protocol Names
2.2.3.4 Service Names
2.2.3.5 Miscellaneous
2.2.4 Client/Server Model
2.2.4.1 Servers
2.2.4.2 Clients
2.2.4.3 Connectionless Servers
2.2.5 Advanced Topics
2.2.5.1 Socket Options and ioctls
2.2.5.2 Out-of-Band Data
2.2.5.3 Nonblocking Sockets
2.2.5.4 Interrupt Driven Socket I/O
2.2.5.5 Pseudo Terminals
2.2.5.6 Selecting Specific Protocols
2.2.5.7 Address Binding
2.2.5.8 Broadcasting and Determining Network Configuration
2.2.5.9 Socket Options
2.2.5.10 Signal and Process
2.2.5.11 inetd

Chapter 3 Transport Interface (TLI)

3.1 Introduction
3.1.1 Service Modes
3.1.1.1 Connection-Mode Service
3.1.1.2 Connectionless-Mode Service
3.1.2 State Transitions
3.2 Connection-Mode Service
3.2.1 Local Management
3.2.1.1 The Client
3.2.1.2 The Server
3.2.2 Connection Establishment
3.2.2.1 The Client
3.2.2.2 Event Handling
3.2.2.3 The Server
3.2.3 Data Transfer
3.2.3.1 The Client
3.2.3.2 The Server
3.2.4 Connection Release
3.2.4.1 The Client
3.2.4.2 The Server
3.3 Connectionless-Mode Service
3.3.1 Local Management
3.3.2 Data Transfer
3.3.3 Datagram Errors
3.4 A Read/Write Interface
3.4.1 write
3.4.2 read
3.4.3 Close
3.5 Advanced Topics
3.5.1 Asynchronous Execution Mode
3.5.2 Advanced Programming Example
3.6 State Transitions
3.6.1 Transport Interface States
3.6.2 Outgoing Events
3.6.3 Incoming Events
3.6.4 Transport User Actions
3.6.5 State Tables
3.7 Guidelines for Protocol Independence
3.8 Examples
3.8.1 Connection-Mode Client
3.8.2 Connection-Mode Server
3.8.3 Connectionless-Mode Transaction Server
3.8.4 Read/Write Client
3.8.5 Event-Driven Server

Chapter 4 Remote Procedure Calls (RPC)

4.1 Remote Procedure Call Guide
4.1.1 Introductory Examples
4.1.1.1 Highest Layer
4.1.1.2 Intermediate Layer
4.1.1.3 Assigning Program Numbers
4.1.1.4 Passing Arbitrary Data Types
4.1.2 Lower Layers of RPC
4.1.2.1 More on the Server Side
4.1.2.2 Memory Allocation with XDR
4.1.2.3 The Calling Side
4.1.3 Other RPC Features
4.1.3.1 Select on the Server Side
4.1.3.2 Broadcast RPC
4.1.3.3 Batching
4.1.3.4 Authentication
4.1.3.5 Using inetd
4.1.4 More Examples
4.1.4.1 Versions
4.1.4.2 TCP
4.1.4.3 Callback Procedures
4.2 Remote Procedure Call Protocol Specification
4.2.1 Requirements
4.2.1.1 Remote Programs and Procedures
4.2.1.2 Authentication
4.2.1.3 Program Number Assignment
4.2.2 Other Uses and Abuses of the RPC Protocol
4.2.3 The RPC Message Protocol
4.3 Authentication Parameter Specification
4.3.1 Null Authentication
4.3.2 UNIX Authentication
4.4 Record Marking Standard
4.5 Port Mapper Program Protocol
4.5.1 The Port Mapper RPC Protocol

Chapter 5 eXternal Data Representation (XDR)

5.1 Introduction
5.2 Justification
5.3 XDR Library Primitives
5.3.1 Number Filters
5.3.2 Floating-Point Filters
5.3.3 Enumeration Filters
5.3.4 No Data
5.3.5 Constructed Data Type Filters
5.3.5.1 Strings
5.3.5.2 Byte Arrays
5.3.5.3 Arrays
5.3.5.4 Opaque Data
5.3.5.5 Fixed-Sized Arrays
5.3.5.6 Discriminated Unions
5.3.5.7 Pointers
5.3.6 Nonfilter Primitives
5.3.7 XDR Operation Directions
5.4 XDR Stream Access
5.4.1 Standard I/O Streams
5.4.2 Memory Streams
5.4.3 Record (TCP/IP) Streams
5.5 XDR Stream Implementation
5.5.1 The XDR Object
5.6 XDR Standard
5.6.1 Basic Block Size
5.6.2 Integer
5.6.3 Unsigned Integer
5.6.4 Enumerations
5.6.5 Booleans
5.6.6 Hyper Integer and Hyper Unsigned
5.6.7 Floating Point and Double Precision
5.6.8 Opaque Data
5.6.9 Counted Byte Strings
5.6.10 Fixed Arrays
5.6.11 Counted Arrays
5.6.12 Structures
5.6.13 Discriminated Unions
5.6.14 Missing Specifications
5.6.15 Library Primitive/XDR Standard Cross Reference
5.7 Advanced Topics
5.7.1 Linked Lists
5.8 The Record Marking Standard

Chapter 6 RPCGEN

6.1 The RPCGEN Protocol Complier
6.2 Converting Local Procedures into Remote Procedures
6.3 Generating XDR Routines
6.4 The C-Preprocessor
6.5 RPC Language
6.5.1 Definitions
6.5.2 Structures
6.5.3 Unions
6.5.4 Enumerations
6.5.5 Typedef
6.5.6 Constants
6.5.7 Programs
6.5.8 Declarations
6.5.9 Special Cases

Index

Figures

1-1 ISO Reference Model
1-2 SUPER-UX Network Protocols

2-1 Sharing a Pipe between Parent and Child
2-2 Sharing a Socketpair between Parent and Child
2-3 Establishing a Stream Connection

3-1 Transport Interface
3-2 Channel between User and Provider
3-3 Transport Connection
3-4 Listening and Responding Transport Endpoints

4-1 Network Communication with RPC

Tables

2-1 C Run-Time Routines
2-2 Socket Options
2-3 ioctl for Network Programs

3-1 Local Management Routines
3-2 Connection Establishment Routines
3-3 Connection-Mode Data Transfer Routines
3-4 Connection Release Routines
3-5 Connectionless-Mode Data Transfer Routines
3-6 Transport Interface State Transitions
3-7 Transport Interface Outgoing Events
3-8 Transport Interface Incoming Events
3-9 Common Local Management States
3-10 Connectionless-Mode States
3-11 Connection-Mode States

5-1 Library Primitives/XDR Standard Cross Reference

Home

Next Chapter