ネットワークインタフェース

第 1 章 ネットワークインタフェースとは

このマニュアルは、SunOS 5.8 オペレーティングシステムのネットワークサービスを使用するためのプログラマ用インタフェースについて説明しています。

SunOS 5.8 は System V の Release 4 (SVR4) と完全な互換性があり、System V Interface Description (SVID) の第 3 版に準拠しています。SunOS 5.8 は、System V のすべてのネットワークサービスをサポートします。

SunOS 5.8 におけるネットワーキング

SunOS 5.8 ネットワーキングのテーマは、トランスポートの独立性です。ネットワーク化されたアプリケーションは、特定のトランスポートプロトコル用にカスタマイズしなくても実行できます。

このシステムの以前のバージョンにも、ソケット、Transport Layer Interface (TLI)、および名前をアドレスに変換する機能が付いています。SunOS 5.8 では、これらの機能が強化され、新しいネットワーク選択機能と連携して動作します。そのため、ユーザーアプリケーションで特定のプロトコルやアドレス書式の詳細を指定する必要がありません。

トランスポートに依存しない RPC (遠隔手続き呼び出し) は、 アプリケーションを配下のトランスポートから解放するインタフェースや、トランスポートとの結合を強化するインタフェースを提供します。もっとも適したレベルの選択はプログラマに任されます。

オプションを調整したり特定のアドレスを使用しなければならないアプリケーションについては、従来と同様です。ただし現在は、プロトコルスタックが異なっても移植を簡単に行えるようにアプリケーションを作成できます。

SunOS 5.8 のもう 1 つの重要な機能は、トランスポートレベルとリンクレベルにおける標準化された内部カーネルネットワークインタフェースです。トランスポートレベルでは、AT&T Transport Provider Interface (TPI) が必要です。リンクレベルでは、UNIX International Data Link Provider Interface (DLPI) が必要です。

これらのインタフェースの標準化により、トランスポートレベルとリンクレベルの STREAMS ドライバを、それらと通信するモジュールまたはドライバを変更することなく交換できます。特に、TLI とソケットは TPI をサポートする任意のトランスポートプロバイダとインタフェースをとることができ、DLPI をサポートするデバイスドライバはすべてインターネットプロトコル (IP) 下でリンクできます。

OSI (開放型システム間相互接続) 参照モデル

OSI (Open Systems Interconnect) 参照モデルは、商用ネットワークサービスアーキテクチャの基本です。単独に開発されたほかのネットワークプロトコルは、このモデルにおおよそ準拠しています。例として、TCP/IP インターネットプロトコル群が挙げられます。

OSI 参照モデルは、ネットワーキングの概念に便利なフレームワークです。基本的に、データは送信側によってネットワークに投入されます。データは通信接続を介して伝送され、受信側に配信されます。このためには、多様なネットワークハードウェアとネットワークソフトウェアが連携して動作しなければなりません。

OSI 参照モデルでは、図 1-1 に示すようにネットワーキング機能を 7 つの層に分割します。

図 1-1 OSI 参照モデル

Graphic

各プロトコル層は、その層の上位の層に対してサービスを行います。プロトコル層の ISO 定義は、設計者に実装における多少の自由を許します。たとえば、アプリケーションの中には、プレゼンテーション層とセッション層をスキップしてトランスポート層と直接インタフェースをとるものがあります。

OSI 層の定義

第 1 層: 物理層

モデルのハードウェア層。SPARCTM システムでは、この層はネットワーク伝送媒体へのコネクタ、マルチプレクサ、およびケーブルから構成されます。

第 2 層: データリンク層

送受信を行います。送信側では、Ethernet [Ethernet は Xerox 社の商標です。] (または類似) ソフトウェアが適切なサイズのパケットとしてデータをまとめ、それらをパッケージ化します。このパッケージ化には、意図する受信側の物理アドレスも含まれます。この層は、メッセージパケットの伝送も行い、必要に応じて再伝送します。

受信側では、Ethernet ハードウェアがアドレスによってパケットを認識して受信します。Ethernet ソフトウェアが、伝送パッケージをストライプ化し、データを再アセンブルします。Ethernet ソフトウェアは、伝送エラーを検出できます。

第 3 層: ネットワーク層

論理アドレスから物理アドレスへの変換など、メッセージルーティングを行います。SPARC システムで一般に使用されるネットワーク層は、インターネットプロトコル (IP) です。

第 4 層: トランスポート層

ネットワーク上のデータフローを制御します。SunOS 5.8 では、トランスポート層インタフェース (Transport Layer Interface、TLI)、伝送制御プロトコル (Transmission Control Protocol、TCP)、またはユーザーデータグラムプロトコル (User Datagram Protocol、UDP) のどれでも使用できます。SPARC システムでは、コネクションモードサービスは一般に TCP を介して提供され、コネクションレスサービスは一般に UDP を介して提供されます。

第 5 層: セッション層

プロセス間の高信頼セッションを管理します。遠隔手続き呼び出し (Remote Procedure Call、RPC) はこの層に属します。この層のインタフェースは、関数呼び出しの意味論を使用する遠隔通信を許可します。

第 6 層: プレゼンテーション層

コンピュータ独自のデータ表現と、ネットワークを介して送信されるプロセッサに依存しない形式間の変換を行います。SunOS 5.8 環境では、プロセッサに依存しないデータ形式は XDR です。

第 7 層: アプリケーション層

この最上位の層には、ユーザーレベルのプログラムとサービスが存在します。ユーザーレベルのプログラムには、telnetrloginftpyppasswd などがあります。ユーザーレベルのサービスには、NFSTM、NISTM、DNS などがあります。

参照モデルの各層は、業界標準がすでに定義されているか、あるいは現在その準備が進められています。各層には、その層が提供するサービスに対するインタフェースを指定する標準と、その層内のサービスが監視するプロトコルを指定する標準が定義されています。サービスインタフェース標準のユーザーは、プロトコル、およびその層のその他の実装詳細の影響は受けません。

トランスポート層

トランスポート層はアプリケーションと上位の層の間でエンドツーエンドのサービスを提供するモデルの最下位の層です。この層は、配下のネットワークのトポロジと特性をユーザーには見えないようにします。トランスポート層はまた、同時に存在する多くのプロトコル群 (ISO プロトコル、TCP および TCP/IP インターネットプロトコル群、Xerox Network Systems (XNS)、システムネットワークアーキテクチャ (System Network Architecture、SNA) など) に共通の一連のサービスを定義します。

RPC プログラミングでは、「ネットワーク」という用語はしばしばトランスポートまたはトランスポートタイプの類義語として使用されます。

トランスポート層インタフェース (TLI)

トランスポート層インタフェース (Transport Layer Interface、TLI) は、業界標準の Transport Service Definition (ISO 8072) でモデル化されています。TLI は、TCP と UDP の両方にアクセスするために使用できます。TLI は、STREAMS I/O メカニズムを使用するユーザーライブラリとして実装されます。