TCP/IP は、いくつかの OSI 層を合併して 1 つの層にしていたり、またまったく使用しない層があったりするため、このモデルに直接対応しているとは言えません。表 4-2 は、Solaris 実装の TCP/IP の層を示しています。最上位の層 (アプリケーション) から最下位の層 (物理ネットワーク) まで並べてあります。
表 4-2 TCP/IP プロトコルスタック
OSI 参照の層番号 |
対応する OSI 層 |
TCP/IP 層 |
TCP/IP プロトコルの例 |
---|---|---|---|
5,6,7 |
アプリケーション、セッション、プレゼンテーション |
NFS、NIS+、DNS、telnet、ftp、rlogin、rsh、rcp、RIP、RDISC、SNMP、その他 |
|
4 |
トランスポート |
TCP, UDP |
|
3 |
ネットワーク |
IP, ARP, ICMP |
|
2 |
データリンク |
PPP, IEEE 802.2 |
|
1 |
物理 |
Ethernet (IEEE 802.3) トークンリング、RS-232、その他 |
この表は、TCP/IP プロトコルの層、対応する OSI モデルの層、および TCP/IP プロトコルスタックの各レベルで使用できるプロトコルの例を示しています。通信トランザクションに関与する各ホストは、それぞれ独自の実装によるプロトコルスタックを実行します。
物理ネットワーク層は、ネットワークに使用するハードウェアの特性を規定します。たとえば、通信メディアの物理特性を規定します。TCP/IP の物理層はハードウェア規格を意味しています。たとえば、Ethernet ネットワークメディアの仕様である IEEE 802.3 や、標準ピンコネクタの仕様である RS-232 などです。
データリンク層は、パケットのネットワークプロトコルの種類を識別します。この場合は TCP/IP です。また、この層には、エラー制御と「フレーミング」の働きもあります。データリンク層の例としては、Ethernet IEEE 802.2 フレーミングと、ポイントツーポイントプロトコル (PPP) フレーミングがあります。
この層はネットワーク層とも呼ばれるもので、ネットワークに対してパケットを受け入れたり、配送したりします。この層には、強力なインターネットプロトコル (IP)、アドレス解決プロトコル (ARP)、インターネットコントロールメッセージプロトコル (ICMP) が組み込まれています。
IP プロトコルとそれに関連したルーティングプロトコルは、TCP/IP 群全体の中でたいへん重要なものです。IP は次の機能を受け持ちます。
IP アドレス指定 - IP アドレス指定の規則は IP プロトコルの一部です (IPv4 アドレス指定については、第 5 章「TCP/IP ネットワークの計画」で詳しく説明します。IPv6 アドレス指定については、第 14 章「IPv6 の概要」で詳しく説明します)。
パケット形式設定 - IP は、パケットを IP データグラムと呼ばれる単位に組み立てます。データグラムについては、「インターネット層」で詳しく説明します。
フラグメント化 - パケットが大きすぎてネットワークメディアを介して転送できないときは、送信側ホストの IP は、パケットを小さいフラグメントに分割します。受信側ホストの IP は、これらのフラグメントを組み立てて元のパケットに戻します。
前のリリースの Solaris オペレーティング環境では、インターネットプロトコルバージョン 4 (IPv4 と記述される) が実装されていました。しかし、インターネットの急速な成長によって、アドレス空間の拡張など、機能強化された新しいインターネットプロトコルを開発する必要が生じました。バージョン 6 として知られるこの新バージョンは IPv6 と記述されます。Solaris オペレーティング環境では、両方のバージョンを使用することができます。インターネットプロトコルについて言及するときに混乱を避けるため、以下の規則を適用します。
用語 IP を使用している説明は、IPv4 と IPv6 の両方に適用されます。
用語 IPv4 を使用している説明は、IPv4 のみに適用されます。
用語 IPv6 を使用している説明は、IPv6 のみに適用されます。
アドレス解決プロトコル (ARP) は、データリンク層とインターネット層の間に概念的に存在するものです。ARP は、Ethernet アドレス (48 ビット長) を既知の IP アドレス (32 ビット長) にマッピングし、IP はこの情報に基づいてデータグラムを正しい受信側ホストに向けることができます。
インターネット制御メッセージプロトコル (ICMP) は、ネットワークエラー条件の検出とその報告を担当するプロトコルです。ICMP は以下の事項について報告します。
「ping コマンド」の節には、エラー検出に ICMP を使用するオペレーティングシステムコマンドについての詳細な説明があります。
TCP/IP トランスポート層プロトコルは、パケットが正しい順序でエラーなしに到着するようにするために、データ受領の肯定応答を交換し、失われたパケットがあれば転送し直します。この種類の通信を「終端間」通信と呼びます。このレベルのトランスポート層プロトコルは、トランスミッションコントロールプロトコル (TCP) とユーザーデータグラムプロトコル (UDP) です。
TCP は、物理的な回線で接続されているのと同じようにしてアプリケーション相互間の通信ができるようにします。TCP は、独立したパケットの形ではなく、文字単位で転送されているような形でデータを送信します。この転送では、まず開始ポイントで接続がオープンされ、次にバイト順序ですべてのデータが転送され、終了ポイントで接続がクローズされます。
TCP は、転送するデータにヘッダーを添付します。このヘッダーには、送信側マシン上のプロセスが受信側マシン上の対等プロセスに接続できるようにするための、多数のパラメータが含まれています。
TCP は、送信側ホストと受信側ホストとの間に終端間接続を確立することにより、パケットが宛先に到達したことを確認します。したがって、TCP は、「信頼性の高い接続指向型」プロトコルとみなすことができます。
もう 1 つのトランスポート層プロトコルである UDP は、データグラム配送サービスを提供します。受信側ホストと送信側ホストとの間で接続が達成されているかどうかを検査する手段は提供しません。UDP は接続の確立と検査を省略するので、少量のデータを送信するアプリケーションにとっては、TCP よりも効率的です。
アプリケーション層は、誰でも使用できる標準的なインターネットサービスとネットワークアプリケーションを定義します。これらのサービスとトランスポート層の両方の働きにより、データの送受信が行われます。アプリケーション層のプロトコルにはさまざまのものがあり、そのうちのいくつかは、すでに使用しているでしょう。以下に、この種のプロトコルの例をいくつか挙げます。
標準 TCP/IP サービス。たとえば、ftp、tftp、telnet コマンドなど
UNIX の "r" (リモート) コマンド。たとえば、 rlogin や rsh など
ネームサービス。たとえば、NIS+ やドメインネームシステム (DNS) など
ファイルサービス。たとえば 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 のシステム管理 (第 1 巻)』に説明があります。ftp(1) のマニュアルページには、コマンドインタプリタによって呼び出されるものも含むすべての ftp コマンド・オプションについての説明があります。 ftpd(1M) のマニュアルページには、in.ftpd デーモンが提供するサービスに関する説明があります。
Telnet - Telnet プロトコルは、端末と端末指向プロセスが、TCP/IP を実行するネットワーク上で通信できるようにします。このプロトコルは、telnet プログラム (ローカルマシン上の) と in.telnet デーモン (リモートマシン上の) として実装されます。Telnet は、2 つのホストが文字単位または行単位で通信できるようなユーザーインタフェースを提供します。アプリケーションにはコマンドのセットが含まれていますが、これについては、telnet(1) のマニュアルページに詳しい説明があります。
TFTP - 簡易ファイル転送プロトコル (tftp) は ftp に似た機能を備えていますが、ftp の対話型接続を確立する機能はありません。したがって、ユーザーは、ディレクトリの内容を表示したり、ディレクトリを変更したりすることはできません。これは、ユーザーが、コピーしたいファイルのフルネームを知っていなければならないことを意味します。tftp のコマンドセットについては、tftp(1) のマニュアルページに説明があります。
UNIX の "r" (リモート) コマンドを使用すると、ユーザーは、指定したリモートホストで実行したいコマンドを、各自のローカルマシンで発行することができます。この種のコマンドには次のものがあります。
rcp
rlogin
rsh
これらのコマンドの使い方については、rcp(1)、rlogin(1)、rsh(1) の各マニュアルページに説明されています。
Solaris 実装の TCP/IP では、NIS+ と DNS の 2 つのネームサービスが使用できます。
NIS+ - NIS+ は、ホスト名から IP アドレスとEthernet アドレスへのマッピング、パスワードの検査など、ネットワーク管理サービスに対する集中制御の機能を提供します。詳細は、 『Solaris ネーミングの管理』を参照してください。
ドメインネームシステム - ドメインネームシステム (DNS) は、ホスト名から IP アドレスへのサービスを提供します。また、メール管理用のデータベースとしての働きもします。このサービスの詳細は、『Solaris ネーミングの管理』を参照してください。in.named(1M) のマニュアルページも参照してください。
NFS アプリケーション層プロトコルは、Solaris オペレーティングシステム用のファイルサービスを提供します。NFS サービスについての詳細は、第 29 章「Solaris NFS の環境」で説明しています。
SNMP (ネットワーク管理用プロトコルの一種。Simple Network Management Protocol) を使用すると、ネットワークのレイアウトを表示し、主要マシンの状態を表示し、さらに、その他の複雑な統計情報をグラフィカルユーザーインタフェースを持つソフトウェアから得ることができます。多くの企業が、SNMP を実装するネットワーク管理パッケージを提供しています。SunNet ManagerTM はその一例です。
TCP/IP ネットワーク用の 2 つのルーティングプロトコルとして、RIP (Routing Information Protocol) と RDISC (Router Discovery Protocol) があります。これらのプロトコルについては、「ルーティングプロトコル」で説明します。