OSI モデルは、一群のプロトコルによる理想的なネットワーク通信を定義します。TCP/IP は、このモデルに直接対応するわけではありません。TCP/IP では、複数の OSI 層が 1 つに合併されたり、まったく使用されない層があったりします。次の表は、Oracle Solaris 実装の TCP/IP の層を示しています。最上位層 (アプリケーション) から最下位層 (物理ネットワーク) まで並べてあります。
表 1–2 TCP/IP プロトコルスタック
OSI 参照の層番号 |
対応する OSI 層 |
TCP/IP 層 |
TCP/IP プロトコルの例 |
---|---|---|---|
5、6、7 |
アプリケーション、セッション、プレゼンテーション |
NFS、NIS、DNS、LDAP、telnet、ftp、rlogin、rsh、rcp、 RIP、RDISC、SNMP、その他 |
|
4 |
トランスポート |
TCP、UDP、SCTP |
|
3 |
ネットワーク |
IPv4、IPv6、ARP、ICMP |
|
2 |
データリンク |
PPP、IEEE 802.2 |
|
1 |
物理 |
Ethernet (IEEE 802.3) トークンリング、RS-232、FDDI、その他 |
TCP/IP プロトコル層と相当する OSI モデルを表に示します。また、TCP/IP プロトコルスタックの各レベルで使用可能なプロトコルの例も示します。通信トランザクションに関与する各システムは、それぞれ固有の実装によるプロトコルスタックを実行します。
「物理ネットワーク層」は、ネットワークで使用されるハードウェアの特性を規定します。たとえば、通信メディアの物理特性を規定します。TCP/IP の物理層はハードウェア規格を意味しています。たとえば、Ethernet ネットワークメディアの仕様である IEEE 802.3 や、標準ピンコネクタの仕様である RS-232 などです。
「データリンク層」は、パケットのネットワークプロトコルの種類 (この例ではTCP/IP) を識別します。データリンク層は、エラー制御と「フレーミング」も行います。データリンク層プロトコルの例としては、Ethernet IEEE 802.2 フレーミングおよびポイントツーポイントプロトコル (PPP) フレーミングがあります。
「ネットワーク層」または「IP 層」とも呼ばれるインターネット層は、ネットワークのためにパケットを送受信します。この層には、強力なインターネットプロトコル (IP)、アドレス解決プロトコル (ARP)、インターネット制御メッセージプロトコル (ICMP) が組み込まれています。
IP プロトコルとその関連する経路制御プロトコルは、TCP/IP 群全体でもっとも重要であると言えるかもしれません。IP は次の機能を受け持ちます。
IP アドレス指定 – IP アドレス指定規約は、IP プロトコルの一部です。「IPv4 アドレス指定スキーマの設計」 は IPv4 アドレス指定を紹介し、「IPv6 アドレス指定の概要」 は IPv6 アドレス指定を紹介します。
パケットの形式設定 – IP は、パケットを「データグラム」と呼ばれる単位にまとめます。データグラム については、「インターネット層: パケットの送信準備」に詳しい説明があります。
断片化 – ネットワークメディアで転送するにはパケットが大きすぎる場合、送信側システムの IP は、パケットを小さなフラグメントに分割します。受信側システム の IP は、これらのフラグメントを組み立てて元のパケットに戻します。
Oracle Solaris は、IPv4 アドレス指定形式と IPv6 アドレス指定の両方をサポートしています。これらの形式については、このマニュアルで説明します。インターネットプロトコルについて言及するときに混乱を避けるため、次の規則を適用します。
「IP」という用語を使用している場合、その説明は IPv4 と IPv6 の両方に適用されます。
「IPv4」という用語を使用している場合、その説明は IPv4 のみに適用されます。
「IPv6」という用語を使用している場合、その説明は IPv6 のみに適用されます。
アドレス解決プロトコル (ARP) は、概念上、データリンク層とインターネット層の間に存在します。ARP は、Ethernet アドレス (48 ビット長) を既知の IP アドレス (32 ビット長) にマッピングし、IP はこの情報に基づいてデータグラムを正しい受信側システムに向けることができます。
インターネット制御メッセージプロトコル (ICMP) は、ネットワークのエラー状況を検出し、レポートします。ICMP は次の事項について報告します。
第 8 章TCP/IP ネットワークの管理 (手順)には、ICMP をエラー検出に使用する Oracle Solaris コマンドに関するより詳しい情報が含まれています。
TCP/IP の「トランスポート層」は、データ受信の肯定応答を交換し、消失したパケットを再送することによって、パケットが順番にかつエラーなしで到着することを保証します。このような通信は、「エンドツーエンド」と呼ばれます。このレベルのトランスポート層プロトコルには、伝送制御プロトコル (TCP)、ユーザーデータグラムプロトコル (UDP)、およびストリームコントロール伝送プロトコル (SCTP) があります。TCP と SCTP は、信頼性の高いエンドツーエンドサービスを提供します。UDP は、信頼性の低いデータグラムサービスを提供します。
TCP を使用すると、アプリケーションは物理回路で接続されているかのように、互いに通信できます。TCP は、独立したパケットの形ではなく、文字単位で転送されているような形でデータを送信します。この転送は、次の点で構成されます。
接続を開始する開始点
バイト順の転送全体
接続を終了する終了点
TCP は、転送するデータにヘッダーを添付します。このヘッダーには、送信側システム上のプロセスが受信側システム上の対等プロセスに接続できるようにするための、多数のパラメータが含まれています。
TCP は、送信側ホストと受信側ホストとの間に終端間接続を確立することにより、パケットが宛先に到達したことを確認します。したがって、TCP は、「信頼性の高い接続指向型」プロトコルとみなすことができます。
SCTP は、TCP から使用可能なアプリケーションに同じサービスを提供する、信頼性の高い接続指向のトランスポート層プロトコルです。さらに、SCTP は、複数のアドレスを持つ、つまり「マルチホーム」のシステム間の接続をサポートできます。送信側システムと受信側システム間の SCTP 接続は、「アソシエーション」と呼ばれます。アソシエーションのデータは、グループ別に整理されます。SCTP はマルチホームをサポートしているため、一部のアプリケーション、特に電気通信業界で使用されるアプリケーションは、TCP ではなく SCTP で実行する必要があります。
UDP は、データグラム送信サービスを提供します。UDP は、受信側ホストと送信側ホストとの間の接続の検査は行いません。UDP は接続の確立と検査を省略するので、少量のデータを送信するアプリケーションは、UDP を使用します。
「アプリケーション層」は、だれでも使用できる標準インターネットサービスとネットワークアプリケーションを定義します。これらのサービスとトランスポート層の両方の働きにより、データの送受信が行われます。アプリケーション層のプロトコルは多数存在します。次に、アプリケーション層プロトコルの例を示します。
標準 TCP/IP サービス。たとえば、ftp、tftp、telnet コマンドなど
UNIX の “r” (リモート) コマンド。たとえば、 rlogin や rsh など
ネームサービス。たとえば、NIS やドメインネームシステム (DNS) など
ディレクトリサービス (LDAP)
ファイルサービス。たとえば NFS サービスなど
SNMP (ネットワーク管理用プロトコルの一種。Simple Network Mamagement Protocol の略)
FTP と匿名 FTP – ファイル転送プロトコル (FTP) は、リモートネットワークとの間でファイルを送受信します。このプロトコルには、ftp コマンドと in.ftpd デーモンが含まれます。ユーザーは、リモートホストの名前とファイル転送コマンドのオプションを、ローカルホストのコマンド行に指定します。リモートホスト上の in.ftpd デーモンがそのあとローカルホストからの要求を処理します。 rcp とは違って、ftp は、リモートコンピュータのオペレーティングシステムが UNIX ベースでない場合でも動作します。リモートシステムが匿名 FTP を認めるように構成されている場合を除いて、ftp 接続を行うときにユーザーはリモートシステムにログインする必要があります。
インターネットに接続されている「匿名 FTP サーバー」からは、莫大な量の資料を入手できます。大学その他の研究機関がこれらのサーバーを設定して、ソフトウェア、研究報告、その他の情報をパブリックドメインに公開しています。このようなサーバーにログインするときは、anonymous というログイン名を使用するため、「匿名 (anonymous) FTP サーバー」と呼ばれます。
匿名 FTP の使用法と匿名 FTP サーバーの設定については、このマニュアルでは説明しません。しかし、たとえば『The Whole Internet User's Guide & Catalog』など、匿名 FTP について詳しく説明している多数の書籍が市販されています。FTP の使用手順については、『Solaris のシステム管理 (ネットワークサービス)』に記載されています。ftp(1) のマニュアルページには、コマンドインタプリタによって呼び出されるすべての ftp コマンドオプションについての説明があります。ftpd(1M) のマニュアルページには、in.ftpd デーモンが提供するサービスについての説明があります。
Telnet – Telnet プロトコルを使用すると、TCP/IP を実行しているネットワーク上で端末および端末指向のプロセスが通信できます。このプロトコルは、ローカルシステムでは telnet プログラムとして、リモートマシンでは in.telnetd デーモンとして実装されます。Telnet は、2 つのホストが文字単位または行単位で通信できるようなユーザーインタフェースを提供します。Telnet にはコマンドのセットが含まれていますが、これについては、telnet(1) のマニュアルページに詳しい説明があります。
TFTP – 簡易ファイル転送プロトコル (tftp) は、ftp と同じような機能を提供しますが、ftp のような相互接続は確立しません。したがって、ユーザーは、ディレクトリの内容を表示したり、ディレクトリを変更したりすることはできません。ユーザーは、コピーするファイルのフルネームを知っている必要があります。tftp のコマンドセットについては、tftp(1) のマニュアルページに説明があります。
UNIX の “r” コマンドを使用すると、ユーザーは自分のローカルマシンからコマンドを発行して、そのコマンドをリモートホストで実行できます。この種のコマンドには次のものがあります。
rcp
rlogin
rsh
これらのコマンドの使用方法は、rcp(1)、rlogin(1)、および rsh(1) のマニュアルページに記載があります。
Oracle Solaris は、次のネームサービスを提供します。
DNS – ドメインネームシステム (DNS) は、インターネットが TCP/IP ネットワーク用に提供するネームサービスです。DNS は、ホスト名から IP アドレスに変換するサービスを提供します。また、メール管理用のデータベースとしての働きもします。このサービスの詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。resolver(3RESOLV) のマニュアルページも参照してください。
/etc ファイル - ホストベースの UNIX ネームシステムは、最初はスタンドアロンの UNIX マシン用に開発されたあと、ネットワークで使用されるように改良されました。UNIX オペレーティングシステムの旧バージョンの多くや UNIX マシンでは、現在でもこのシステムが使用されていますが、大規模で複雑なネットワークにはあまり適切ではありません。
NIS – ネットワーク情報サービス (NIS) は DNS とは独立して開発され、目的はやや異なっています。DNS は数値 IP アドレスの代わりにマシン名を使うことによって、通信を簡略化することに焦点を当てているのに対して、NIS の場合は、多様なネットワーク情報を集中管理することによりネットワーク管理機能を高めることに焦点を絞っています。NIS には、マシンの名前とアドレス、ユーザー、ネットワークそのもの、ネットワークサービスについての情報も格納されます。NIS 名前空間情報は NIS マップに格納されています。NIS アーキテクチャーと NIS 管理の詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。
Oracle Solaris は、Sun ONE (Sun Open Net Environment) およびほかの LDAP Directory Server を使用する場合、LDAP (Lightweight Directory Access Protocol) をサポートします。ネームサービスとディレクトリサービスの違いは、拡張機能の差です。ディレクトリサービスはネームサービスと同じ機能のほかに、追加機能を提供します。『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。
NFS アプリケーション層プロトコルは、Oracle Solaris 用にファイルサービスを提供します。NFS サービスに関する詳しい情報は、『Solaris のシステム管理 (ネットワークサービス)』に記載されています。
シンプルネットワーク管理プロトコル (SNMP) を使用すると、ネットワークのレイアウトおよび主要マシンの状態を参照できます。また、グラフィカルユーザーインタフェース (GUI) ベースのソフトウェアで複雑なネットワーク統計情報を参照できます。多くの企業が、SNMP を実装するネットワーク管理パッケージを提供しています。
経路制御情報プロトコル (RIP) およびルーター発見サーバープロトコル (RDISC) は、2 つとも、TCP/IP ネットワーク用の経路制御プロトコルです。Oracle Solaris 10 で使用できる経路制御プロトコルの一覧については、表 5–1 および表 5–2 を参照してください。