本書では,X/Openトランスポート・インタフェース (XTI) 呼び出し,STREAMS I/O 呼び出し,および Berkeley Software Distribution (BSD) ソケット呼び出しを使用するプログラムの作成方法について説明します。 XTI とソケットに関しては,概念およびプログラミングについて記述します。 また,トランスポート層インタフェース (TLI) から XTI,およびソケットから XTI へのアプリケーションのポート方法についても説明します。 STREAMS に関しては,Tru64 UNIX のインプリメンテーションと,AT&T System V Release 4 のインプリメンーションとの相違点について説明します。 また,eSNMP (Extensible System Network Management Protocol) アプリケーション・プログラミング・インタフェース,RSVP (Resource ReSerVation Protocol) アプリケーション・プログラミング・インタフェースおよび AF_INET6 ソケットについても説明します。
本書は次のことを目標としています。
ネットワーク用に Tru64 UNIX で提供されているプログラミング・サポートを理解する。
コネクション指向型サービス,またはコネクションレス型サービスのいずれかを使用して,XTI アプリケーションを作成する。
STREAMS の Tru64 UNIX でのインプリメンテーションを理解する。
ソケット・アプリケーションを作成する。
TLI と XTI 間,およびソケットと XTI 間の相違点を理解する。
eSNMP アプリケーションを作成する。
本書は,UNIX を使用してプログラミング経験のあるプログラマを対象としています。 対象読者は次のことに習熟していることが前提となっています。
C 言語
UNIX オペレーティング・システムのプログラミング・インタフェース
開放型システム間相互接続 (OSI) の 7 層モデルを含む,基本的なネットワークの概念
ネットワーク・アプリケーションの作成に必要な労力
『ネットワーク・プログラミング・ガイド』の今回の改訂では,次の変更が行われました。
第 4 章が改訂されました。 この章には,AF_INET6 ソケットをサポートするようにアプリケーションを変更する場合に,プログラマがソース・ファイルを走査して編集できるようにする新しいツールについての情報が追加されました。 この章には,IPv6 raw ソケットと,そのソケット上で受信した情報にアクセスする方法について説明している新しい項も追加されました。
第 1 章 | XTI,STREAMS,ソケット,およびネットワーク・アプリケーションに必要なプログラミング・タスクの概要について説明します。 |
第 2 章 | データ・リンク・プロバイダ・インタフェース (DLPI) のサブセットをインプリメントする
dlb
擬似ドライバについて説明します。 |
第 3 章 | XTI に関連する基本的な概念,コネクション指向型アプリケーションおよびコネクションレス型アプリケーションの作成方法,TLI に関する互換性の問題,および XTI へのアプリケーションのポート方法について説明します。 XTI のエラーについても,この章で説明します。 |
第 4 章 | ソケット・インタフェースに関連する概念,およびソケット・アプリケーションの作成方法について説明します。 |
第 5 章 | STREAMS の Tru64 UNIX でのインプリメンテーションについて説明します。 |
第 6 章 | 拡張 SNMP アプリケーション・プログラミング・インタフェースについて説明します。 |
第 7 章 | Resource ReSerVation Protocol アプリケーション・プログラミング・インタフェースについて説明します。 |
第 8 章 | ifnet
STREAMS モジュールと
dlb
STREAMS 擬似ドライバ通信ブリッジについて説明します。 |
付録 A | STREAMS モジュールの例です。 |
付録 B | ソケットおよび XTI のプログラムの例です。 |
付録 C | AF_INET および AF_INET6 ソケットのプログラムの例です。 |
付録 D | 伝送制御プロトコル (TCP) 固有のプログラミング情報について説明します。 |
付録 E | トークン・リング・ドライバの開発に関連する情報について説明します。 |
付録 F | データ・リンク・インタフェース (DLI) についての説明とプログラムの例です。 |
用語集 | ネットワーク機能に関する用語集です。 |
Tru64 UNIX でのプログラミングについての一般的な情報は,『プログラミング・ガイド』を参照してください。
ネットワーキングのAPI についての詳細は,次のマニュアルを参照してください。
『UNIX Network Programming, Networking APIs: Sockets and XTI』(ISBN 0-13-490012-X) W. Richard Stevens:Prentice-Hall
XTI についての詳細は,次のマニュアルを参照してください。
『X/Open Portability Guide Volume 7: Networking Services』(XPG3) (ISBN 0-13-685892-9)
『Application Environment Specification (AES) Operating System Programming Interfaces Volume』 (ISBN 0-13-043522-8)
このマニュアルは Prentice-Hall から出版されており,必須の XTI 呼び出しがすべて記載されています。
『X/Open CAE Specification: Networking Services (XNS), Issue 5』(XNS5.0) (ISBN 1-85912-165-9)
STREAMS I/O フレームワークについての詳細は,次のマニュアルを参照してください。
『Programmer's Guide: STREAMS』 Englewood Cliffs:Prentice-Hall, Inc., 1990.
このマニュアルでは,STREAMS を使用するアプリケーション,モジュール,およびデバイス・ドライバの作成方法について説明しています。
『AT&T System V Release 4 Programmer's Reference Manual』 Englewood Cliffs:Prentice-Hall, Inc., 1989.
このマニュアルには,STREAMS 用のプログラミング・インタフェースを含む,すべてのプログラミング・インタフェースについてのリファレンス・ページが記載されています。
『AT&T System V Release 4 System Administrator's Reference Manual』 Englewood Cliffs:Prentice-Hall, Inc., 1989.
このマニュアルには,STREAMS
ioctl
コマンドについてのリファレンス・ページが記載されています。
『Transport Provider Interface (TPI) Specification』UNIX International
ソケット・インタフェースについての詳細は,次の書籍を参照してください。
『Internetworking with TCP/IP: Principles, Protocols, and Architecture』 Englewood Cliffs:Prentice-Hall, Inc., 1988 (Douglas Comer著)
本書には,ソケット・インタフェースについて説明している章があります。
『X/Open CAE Specification: Networking Services, Issue 5』(XNS5.0) (ISBN 1-85912-165-9)
『Protocol Independent Interfaces P1003.1g Draft 6.6』IEEE ドラフト,1997
『Design and Implementation of the 4.3BSD UNIX Operating System』 Reading:Addison-Wesley Publishing Company, 1989 (Leffler,McKusick,Karels,Quarterman著)
本書には,ソケットの目的と使用方法についての記述があります。
ネットワーキング・インタフェースの管理についての詳細は,『システム管理ガイド』および『ネットワーク管理ガイド:接続編』を参照してください。
本書で使用する表記法
本書では次の表記法を使用しています。
%
$
パーセント記号は,C シェルのシステム・プロンプトを表します。ドル記号は, Bourne シェル,Korn シェル,および POSIX シェルの場合の システム・プロンプトを表します。
#
番号記号は root としてログインした場合のシステム・プロンプトを表します。
%
cat
対話式の例における太字(ボールド体)は,ユーザが入力する文字を示します。
イタリック体 (斜体) は,変数値,プレースホルダ,および関数の引数名を示します。
構文定義では,大カッコはオプションの項目を示し,中カッコは必須項目を示します。 大カッコまたは中カッコの中の項目を縦線で区切っている場合は, そこに併記されている項目の中から1つの項目を選択することを示します。
colored
text
構文定義では,リテラル要素(コマンド名など文字通り入力する要素)は緑色で表示され,変数値,数式/論理式記号,関数の引数名は赤色で表示されます。 構文説明以外の場所では,色付きのテキストは使用しません。
構文定義では,水平の反復記号は,前の項目を1回以上繰り返して使用できることを示します。
cat
(1)リファレンス・ページの参照には,該当するセクション番号をカッコ内に示します。
たとえば,
cat
(1)cat
コマンドについての情報が,
リファレンス・ページのセクション1に記載されていることを示します。
四角で囲まれたキー名はユーザがそのキーを押すことを示します。
この記号は,スラッシュの前に指定されているキーを押しながら, スラッシュの後のキーまたはマウス・ボタンを押すことを示します。 例中では,このようなキーの組み合わせは, 四角あるいは大カッコで囲まれて示されます(たとえば,[Ctrl/C] )。