タイトルおよびコピーライト情報
 
まえがき
本書の対象読者
追加および変更された機能
本書の構成
関連資料
本書で使用する表記法
 
1    ネットワーク・プログラミング環境の概要
1.1    データ・リンク・インタフェース
1.2    ソケット・フレームワークおよび STREAMS フレームワーク
1.3    X/Open トランスポート・インタフェース
1.4    eSNMP
1.5    RSVP アプリケーション・プログラミング・インタフェース
1.6    ソケットと STREAMS の間のやりとり
1.7    統合
 
2    データ・リンク・プロバイダ・インタフェース
2.1    通信モード
2.2    サービスの種類
2.2.1    ローカル管理サービス
2.2.2    コネクション・モード・サービス
2.2.3    コネクションレス・モード・サービス
2.2.4    肯定応答コネクションレス・モード・データ転送
2.3    DLPI アドレッシング
2.4    DLPI プリミティブ
2.5    利用できる PPA の識別
 
3    X/Open トランスポート・インタフェース
3.1    XTI の概要
3.2    XTI の機能
3.2.1    サービス・モードと実行モード
3.2.1.1    コネクション指向型サービスおよびコネクションレス型サービス
3.2.1.2    非同期実行および同期実行
3.2.2    XTI ライブラリ,TLI ライブラリ,およびヘッダ・ファイル
3.2.2.1    XTI および TLI ヘッダ・ファイル
3.2.2.2    XTI ライブラリ・コール
3.2.3    イベントおよび状態
3.2.3.1    XTI イベント
3.2.3.2    XTI の状態
3.2.4    XTI イベントのトラッキング
3.2.4.1    発信イベント
3.2.4.2    着信イベント
3.2.5    XTI 関数,イベント,および状態のマップ
3.2.6    複数のプロセスおよび終端の同期
3.3    XTI の使用
3.3.1    関数の呼び出し順序のガイドライン
3.3.2    トランスポート・プロバイダによる状態の管理
3.3.3    コネクション指向型アプリケーションの作成
3.3.3.1    終端の初期化
3.3.3.2    XTI のオプションの使用
3.3.3.3    接続の確立
3.3.3.4    データの転送
3.3.3.5    接続の解放
3.3.3.6    終端の初期化解除
3.3.4    コネクションレス型アプリケーションの作成
3.3.4.1    終端の初期化
3.3.4.2    データの転送
3.3.4.3    終端の初期化解除
3.4    フェーズに依存しない関数
3.5    XTI へのポート
3.5.1    プロトコル独立およびポータビリティ
3.5.2    XTI と TLI の互換性
3.5.3    ソケット・アプリケーションから XTI 使用アプリケーションへの書き換え
3.6    XPG3,XNS4.0,XNS5.0 の相違点
3.6.1    XPG3 と XNS4.0 の主な相違点
3.6.2    XNS4.0 と XNS5.0 の主な相違点
3.6.3    ソース・コードの移行
3.6.3.1    アプリケーションの古いバイナリ・ファイルを使用する場合
3.6.3.2    ソースを変更しないで再コンパイルする場合
3.6.3.3    XNS4.0 に準拠させる場合
3.6.3.4    XNS5.0 に準拠させる場合
3.6.4    バイナリの互換性
3.6.5    パッケージ
3.6.6    相互運用性
3.6.7    XTI のオプションの使用
3.6.7.1    XNS4.0 および XNS5.0 の XTI のオプションの使用
3.6.7.2    XPG3 でのプロトコル・オプションの折衝
3.7    XTI エラー
3.8    XTI トランスポート・プロバイダの構成
 
4    ソケット
4.1    ソケット・フレームワークの概要
4.1.1    ソケットの通信プロパティ
4.1.1.1    ソケット抽象表現
4.1.1.2    通信ドメイン
4.1.1.3    ソケット・タイプ
4.1.1.4    ソケット名
4.2    アプリケーションとソケットとのインタフェース
4.2.1    通信モード
4.2.1.1    コネクション指向型通信
4.2.1.2    コネクションレス型通信
4.2.2    クライアント/サーバ・モデル
4.2.3    システム・コール,ライブラリ・コール,ヘッダ・ファイル,およびデータ構造体
4.2.3.1    ソケット・システム・コール
4.2.3.2    ソケット・ライブラリ・コール
4.2.3.3    ヘッダ・ファイル
4.2.3.4    ソケットに関連するデータ構造体
4.3    ソケットの使用方法
4.3.1    ソケットの作成
4.3.1.1    実行モードの設定
4.3.2    名前とアドレスのバインド
4.3.3    接続の確立
4.3.4    接続の受け入れ
4.3.5    ソケット・オプションの設定と取得
4.3.6    データの転送
4.3.6.1    read システム・コールの使用
4.3.6.2    write システム・コールの使用
4.3.6.3    send, sendto, recv および recvfrom システム・コールの使用
4.3.6.4    sendmsg および recvmsg システム・コールの使用
4.3.7    ソケットのシャットダウン
4.3.8    ソケットのクローズ
4.4    インターネット・アプリケーションの作成
4.4.1    IPv4 アプリケーションの作成
4.4.2    IPv6 アプリケーションの作成
4.4.3    アドレス・テスト・マクロ
4.5    BSD ソケット・インタフェース
4.5.1    可変長ネットワーク・アドレス
4.5.2    プロトコル・データとユーザ・データの受信
4.6    一般的なソケット・エラー
4.7    高度なソケット・プログラミング情報
4.7.1    AF_INET6 ソケットを使用するための,アプリケーションの移植
4.7.1.1    名前の変更
4.7.1.2    構造体の変更
4.7.1.3    関数呼び出しの変更
4.7.1.4    アプリケーションの他の変更
4.7.1.5    ipv6_sniff ユーティリティの使用
4.7.2    IPv6 raw ソケットの使用
4.7.2.1    ICMPv6 メッセージへのアクセス
4.7.2.2    IPv6 ヘッダへのアクセス
4.7.2.3    IPv6 ルーティング・ヘッダへのアクセス
4.7.2.4    IPv6 オプション・ヘッダへのアクセス
4.7.3    特定のプロトコルの選択
4.7.4    名前とアドレスのバインド
4.7.4.1    ワイルドカード・アドレスへのバインド
4.7.4.2    UNIX ドメインにおけるバインド
4.7.5    帯域外データ
4.7.6    インターネット・プロトコル・マルチキャスト
4.7.6.1    IPv4 マルチキャスト・データグラムの送信
4.7.6.2    IPv4 マルチキャスト・データグラムの受信
4.7.6.3    IPv6 マルチキャスト・データグラムの送信
4.7.6.4    IPv6 マルチキャスト・データグラムの受信
4.7.7    ブロードキャストとネットワーク構成の調査
4.7.8    inetd デーモン
4.7.9    入出力の多重化
4.7.10    割り込み駆動のソケット I/O
4.7.11    シグナルおよびプロセス・グループ
4.7.12    擬似端末
 
5    Tru64 UNIX STREAMS
5.1    STREAMS フレームワークの概要
5.1.1    STREAMS の構成要素の概説
5.1.2    ioctl プロセス
5.2    STREAMS に対するアプリケーション・インタフェース
5.2.1    ヘッダ・ファイルおよびデータ型
5.2.2    STREAMS 関数
5.2.2.1    open 関数
5.2.2.2    close 関数
5.2.2.3    read 関数
5.2.2.4    write 関数
5.2.2.5    ioctl 関数
5.2.2.6    mkfifo 関数
5.2.2.7    pipe 関数
5.2.2.8    putmsg および putpmsg 関数
5.2.2.9    getmsg および getpmsg 関数
5.2.2.10    poll 関数
5.2.2.11    isastream 関数
5.2.2.12    fattach 関数
5.2.2.13    fdetach 関数
5.3    カーネル・レベル関数
5.3.1    モジュール・データ構造体
5.3.2    メッセージ・データ構造体
5.3.3    ドライバおよびモジュールの STREAMS 処理ルーチン
5.3.3.1    オープンおよびクローズの処理
5.3.3.2    構成処理
5.3.3.3    読み取り側プットおよび書き込み側プットの処理
5.3.3.4    読み取り側サービスおよび書き込み側サービスの処理
5.3.4    Tru64 UNIX STREAMS の概念
5.3.4.1    同期
5.3.4.2    タイムアウト
5.4    Tru64 UNIX カーネル内へのユーザ作成の STREAMS ベースのモジュールまたはドライバの組み込み
5.5    デバイス特殊ファイル
5.6    エラーとイベントのロギング
 
6    拡張 SNMP アプリケーション・プログラミング・インタフェース
6.1    eSNMP の概要
6.1.1    eSNMP の構成要素
6.1.2    アーキテクチャ
6.1.3    SNMP バージョン
6.1.4    AgentX
6.2    拡張 SNMP アプリケーション・プログラミング・インタフェースの概要
6.2.1    MIB サブツリー
6.2.2    オブジェクト・テーブル
6.2.2.1    subtree_tbl.h ファイル
6.2.2.2    subtree_tbl.c ファイル
6.2.3    サブエージェントの実現
6.2.4    サブエージェント・プロトコルの操作
6.2.4.1    操作の順序
6.2.4.2    関数の戻り値
6.3    拡張 SNMP アプリケーション・プログラミング・インタフェース
6.3.1    呼び出しインタフェース
6.3.1.1    esnmp_init ルーチン
6.3.1.2    esnmp_allocate ルーチン
6.3.1.3    esnmp_deallocate ルーチン
6.3.1.4    esnmp_register ルーチン
6.3.1.5    esnmp_unregister ルーチン
6.3.1.6    esnmp_register2 ルーチン
6.3.1.7    esnmp_unregister2 ルーチン
6.3.1.8    esnmp_capabilities ルーチン
6.3.1.9    esnmp_uncapabilities ルーチン
6.3.1.10    esnmp_poll ルーチン
6.3.1.11    esnmp_are_you_there ルーチン
6.3.1.12    esnmp_trap ルーチン
6.3.1.13    esnmp_term ルーチン
6.3.1.14    esnmp_sysuptime ルーチン
6.3.2    メソッド・ルーチン呼び出しインタフェース
6.3.2.1    *_get ルーチン
6.3.2.2    *_set メソッド・ルーチン
6.3.2.3    メソッド・ルーチンのアプリケーションでのプログラミング
6.3.3    libsnmp サポート・ルーチン
6.3.3.1    o_integer ルーチン
6.3.3.2    o_octet ルーチン
6.3.3.3    o_oid ルーチン
6.3.3.4    o_string ルーチン
6.3.3.5    str2oid ルーチン
6.3.3.6    sprintoid ルーチン
6.3.3.7    instance2oid ルーチン
6.3.3.8    oid2instance ルーチン
6.3.3.9    inst2ip ルーチン
6.3.3.10    cmp_oid ルーチン
6.3.3.11    cmp_oid_prefix ルーチン
6.3.3.12    clone_oid ルーチン
6.3.3.13    free_oid ルーチン
6.3.3.14    clone_buf ルーチン
6.3.3.15    mem2oct ルーチン
6.3.3.16    cmp_oct ルーチン
6.3.3.17    clone_oct ルーチン
6.3.3.18    free_oct ルーチン
6.3.3.19    free_varbind_data ルーチン
6.3.3.20    set_debug_level ルーチン
6.3.3.21    is_debug_level ルーチン
6.3.3.22    ESNMP_LOG ルーチン
 
7    RSVP アプリケーション・プログラミング・インタフェース
7.1    ネットワークのサービス品質
7.2    ネットワークのサービス品質の構成要素
7.2.1    Traffic Control
7.2.2    RSVP
7.2.3    RAPI
7.2.4    構成要素の相互運用
7.3    Traffic Control
7.4    RSVP
7.4.1    RSVP の構成要素
7.4.2    rsvpd デーモン
7.5    RSVP アプリケーション・プログラミング・インタフェース
7.5.1    サポートされているルーチン
7.5.2    RAPI 対応アプリケーションの作成
7.5.2.1    アプリケーションのリンク
7.5.3    RAPI アプリケーションのデバッグ
 
8    Tru64 UNIX における STREAMS とソケットの共存
8.1    STREAMS ドライバからソケット・プロトコル・スタックへのブリッジ
8.1.1    STREAMS ドライバ
8.1.1.1    ifnet STREAMS モジュールの使用
8.1.1.2    データ・リンク・プロバイダ・インタフェース・プリミティブ
8.2    BSD ドライバから STREAMS プロトコル・スタックへのブリッジ
8.2.1    サポートする DLPI プリミティブおよびメディア・タイプ
8.2.2    STREAMS 擬似ドライバの使用
 
A    STREAMS モジュール例
 
B    ソケットおよび XTI プログラム例
B.1    コネクション指向型プログラム
B.1.1    ソケット・サーバ・プログラム
B.1.2    ソケット・クライアント・プログラム
B.1.3    XTI サーバ・プログラム
B.1.4    XTI クライアント・プログラム
B.2    コネクションレス型プログラム
B.2.1    ソケット・サーバ・プログラム
B.2.2    ソケット・クライアント・プログラム
B.2.3    XTI サーバ・プログラム
B.2.4    XTI クライアント・プログラム
B.3    共通コード
B.3.1    common.h ヘッダ・ファイル
B.3.2    server.h ヘッダ・ファイル
B.3.3    serverauth.c ファイル
B.3.4    serverdb.c ファイル
B.3.5    xtierror.c ファイル
B.3.6    client.h ヘッダ・ファイル
B.3.7    clientauth.c ファイル
B.3.8    clientdb.c ファイル
 
C    IPv4 および IPv6 のソケット・プログラムの例
C.1    AF_INET ソケットを使用するプログラム
C.1.1    AF_INET ソケットを使用するクライアント・プログラム
C.1.2    AF_INET ソケットを使用するサーバ・プログラム
C.2    AF_INET6 ソケットを使用するプログラム
C.2.1    AF_INET6 ソケットを使用するクライアント・プログラム
C.2.2    AF_INET6 ソケットを使用するサーバ・プログラム
C.3    プログラムの出力例
 
D    TCP 固有のプログラミング情報
D.1    TCP のスループットとウィンドウ・サイズ
D.1.1    TCP ソケット・バッファ・サイズのプログラミング
D.1.2    TCP ウィンドウ・スケール・オプション
D.1.2.1    システム・ソケット・バッファ・サイズ制限の増加
D.2    TCP の性能とエラー回復
D.3    TCP の性能と往復時間の計測
D.4    TCP の信頼性とシーケンス番号
 
E    トークン・リング・ドライバの開発に関連する情報
E.1    ソース・ルーティング
E.2    キャノニカル・アドレス
E.3    データの境界合わせ
E.4    ドライバの softc 構造体のフィールドの設定
 
F    データ・リンク・インタフェース
F.1    DLI プログラミングの前提条件
F.2    DLI 概略
F.2.1    DLI サービス
F.2.2    ハードウェア・サポート
F.2.3    DLI を使用してのローカル・エリア・ネットワークへのアクセス
F.2.4    高次レベル・サービスのインクルード
F.3    DLI ソケット・アドレスのデータ構造体
F.3.1    標準フレーム・フォーマット
F.3.2    sockaddr_dl 構造体の機能
F.3.3    イーサネット・サブ構造体
F.3.3.1    イーサネット・フレーム
F.3.3.2    イーサネット・サブ構造体の値の定義
F.3.4    802.2 サブ構造体
F.3.4.1    802 サブ構造体値の定義
F.4    DLI プログラムの作成
F.4.1    データ・リンク・サービスの提供
F.4.2    Tru64 UNIX システム・コール
F.4.3    ソケットの作成
F.4.4    ソケット・オプションの設定
F.4.5    ソケットのバインド
F.4.6    sockaddr_dl 構造体
F.4.6.1    アドレス・ファミリの指定
F.4.6.2    I/O デバイス ID の指定
F.4.6.3    サブ構造体タイプの指定
F.4.7    バッファ・サイズの計算
F.4.8    データ転送
F.4.9    ソケットの非アクティブ化
F.5    DLI プログラミング例
F.5.1    イーサネット・フォーマット・パケットを使用した DLI クライアント・プログラム例
F.5.2    イーサネット・フォーマット・パケットを使用した DLI サーバ・プログラム例
F.5.3    802.3 フォーマット・パケットを使用した DLI クライアント・プログラム例
F.5.4    802.3 フォーマット・パケットを使用した DLI サーバ・プログラム例
F.5.5    getsockopt および setsockopt を使用した DLI プログラム例
 
用語集
 
5-1    サンプル・モジュール
B-1    コネクション指向型ソケット・サーバ・プログラム
B-2    コネクション指向型ソケット・クライアント・プログラム
B-3    コネクション指向型 XTI サーバ・プログラム
B-4    コネクション指向型 XTI クライアント・プログラム
B-5    コネクションレス型ソケット・サーバ・プログラム
B-6    コネクションレス型ソケット・クライアント・プログラム
B-7    コネクションレス型 XTI サーバ・プログラム
B-8    コネクションレス型 XTI クライアント・プログラム
B-9    common.h ヘッダ・ファイル
B-10    server.h ヘッダ・ファイル
B-11    serverauth.c ファイル
B-12    serverdb.c ファイル
B-13    xtierror.c ファイル
B-14    client.h ファイル
B-15    clientauth.c ファイル
B-16    clientdb.c ファイル
C-1    クライアント・スタブ・ルーチン
C-2    サーバ・スタブ・ルーチン
C-3    クライアント・スタブ・ルーチン
C-4    サーバ・スタブ・ルーチン
F-1    イーサネット用 sockaddr_dl 構造体の代入
F-2    802.2 用 sockaddr_dl 構造体の代入
 
1-1    ソケット・フレームワークおよび STREAMS フレームワーク
1-2    XTI,STREAMS,およびソケット間のやりとり
1-3    STREAMS ドライバとソケット・プロトコル・スタックのブリッジ
1-4    BSD ドライバと STREAMS プロトコル・スタックのブリッジ
1-5    ネットワーク・プログラミング環境
2-1    DLPI インタフェース
2-2    DLPI サービス・インタフェース
2-3    DLPI アドレスの識別構成要素
3-1    X/Open トランスポート・インタフェース
3-2    トランスポート終端
3-3    コネクション指向型トランスポート・サービスの状態遷移
3-4    コネクションレス型トランスポート・サービスの状態遷移
4-1    ソケット・フレームワーク
4-2    IPv4 通信での AF_INET ソケットの使用
4-3    IPv6 通信での AF_INET6 ソケットの使用
4-4    IPv4 通信での AF_INET6 ソケットの使用 (送信)
4-5    IPv4 通信での AF_INET6 ソケットの使用 (受信)
4-6    4.3BSD と 4.4BSD の sockaddr 構造体
4-7    4.3BSD,4.4BSD,XNS4.0,および POSIX 1003.1g の msghdr 構造体
5-1    STREAMS フレームワーク
5-2    ストリームの例
8-1    ifnet STREAMS モジュール
8-2    DLPI STREAMS 擬似ドライバ
E-1    典型的なフレーム
F-1    DLI とネットワーク・プログラミング環境
F-2    イーサネット・フレーム・フォーマット
F-3    802.3 フレーム・フォーマット
F-4    FDDI フレーム・フォーマット
F-5    802.2 構造体
 
1-1    ネットワーク・プログラミング環境の構成要素
2-1    サポートされている DLPI プリミティブ
3-1    XTI および TLI のヘッダ・ファイル
3-2    XTI ライブラリ・コール
3-3    非同期 XTI イベント
3-4    非同期イベントおよび消費関数
3-5    TLOOK を返す XTI 関数
3-6    XTI の状態
3-7    発信 XTI イベント
3-8    着信 XTI イベント
3-9    コネクション指向型またはコネクションレス型トランスポート・サービスの初期化における状態遷移
3-10    コネクションレス型トランスポート・サービスにおける状態遷移
3-11    コネクション指向型トランスポート・サービスにおける状態遷移:パート 1
3-12    コネクション指向型トランスポート・サービスにおける状態遷移:パート 2
3-13    フェーズ独立関数
3-14    XTI 関数とソケット関数の比較
3-15    ソケットと XTI のメッセージの対応
4-1    UNIX 通信ドメインおよびインターネット通信ドメインの特性
4-2    ソケット・システム・コール
4-3    ソケット・ライブラリ・コール
4-4    ソケット・インタフェースのヘッダ・ファイル
4-5    アドレス・テスト・マクロの要約
4-6    一般的なエラーと診断
4-7    BSD ソケット API に対する IPv6 拡張の要約
4-8    名前の変更
4-9    IPv4 raw ソケットと IPv6 raw ソケットの相違点
4-10    ICMPv6 フィルタリング・マクロの要約
4-11    オプション情報とソケット・オプション
4-12    ルーティング・ヘッダ用のソケット呼び出し
4-13    オプション・ヘッダ用のソケット呼び出し
5-1    ioctl 処理のI_STR メソッドと透過メソッドの比較
5-2    STREAMS リファレンス・ページ
7-1    クライアントのライブラリ・サービス・ルーチン
7-2    RAPI フォーマッティング・ルーチン
F-1    DLI プログラムの呼び出し順序
F-2    DLI で使用されるデータ転送システム・コール
 
索引