[技術講座(ネットワーク技術―1)] (2003/02/23作成)
これまではノード間の通信技術についてまとめてきましたが、今回は各ノードにおける情報通信を主体とするネットワーク技術についてまとめることにします。
情報ネットワークは、図1に示すように具体的には3つの形をとっています。利用者に最も近いのが情報通信ネットワークで、利用者はこれによって情報のやりとりをしているように見えます。しかし、実際にはこの情報を送受信(伝送交換)する伝送ネットワークがあり、さらに、通信インフラ(通信基盤)とも言うべき通信回線ネットワークがあります。これらは実際には、後述するネットワークの階層化構造を意味しています。

図1 ネットワークの考え方
情報通信ネットワークと利用者とのインタフェースには、パソコンやワークステーション、サーバなどがあります。これらを総称すると「ノード機器」という言葉になります。ノードとは利用者に近い端の意味で、「端末」という場合もあります。
これらのノード機器からの情報を伝送交換するために、通信制御装置や交換機などのネットワークがあります。現在ではこれらをそれぞれコントローラとかスイッチなどといっています。また、モデムやルータなどもこの類です。
通信回線ネットワークには図2に示すようにLANやWANなどがあります。LANは企業やオフィスなどのような一つの地域や建物の中の通信回線(通信ケーブル)のネットワークです。一般に、より対線によるEthernetがよく使われていて、10Base-Tとか100Base-Tなどといいます。

図2 LANとWAN
WANは広域ネットワークと訳され、電話交換網やデジタル交換網などのように、通信業者(キャリア)が提供するネットワークのことを指します。さらに、インターネットサービスなどのように、基本的な通信回線ネットワークの上で提供されるより機能のあるネットワークも含みます。
なお、昨今では、LANをこれらの通信回線ネットワークを介してLAN間接続した「広域をわたる」企業ネットワークをWANということもありますが、これはWANを広義にとらえた考え方です。こうした階層化構造という考え方は、ネットワーク全体を見るときに最も必要なことです。
情報ネットワーク技術はどのようなものであれ、次の3つに分類できます。
理論技術・・・・・・研究者を中心にして研究作成される理論
実装技術・・・・・・開発者を中心として使用される製品開発のための技術
インテグレーション技術・・・・・・利用者を中心として製品を利用・運用するための技術
図3に示すようにこの3つは互いに相関していて、しかも技術のライフサイクルとして循環します。つまり、研究発明された理論技術を実装技術により製品化し、その製品をインテグレーションするという流れがまずあります。次にこのインテグレーションの状況を見て、さらに理論技術が創造されることになります。また、インテグレーション状況を見て、さらに機能や使い勝手をよくするための実装技術が考案されることになります。一方では、理論技術がある時代には実装不可能であったものが、実装技術の創造により可能になることもあります。

図3 情報ネットワーク技術の特性と循環
(1)理論技術
理論技術には様々な技術の基礎となる要素理論、標準化団体で標準化された技術標準/規格、そして、標準化はされていないが新たに創造された新技術があります。
(a) 要素理論
要素技術は他のすべての技術の基礎となるものです。例えば、暗号化などに幅広く用いられるモジュラ演算と呼ばれるものがあります。これは、わり算を行った余りを使用する処理で、例えば、今日を土曜日とすると14日後も土曜日となります。14を7で割った余りが0となるからです(土曜日+0日=土曜日)。このモジュラ演算自体では何の役にも立ちませんが、コンピュータネットワークの多くの部分で使用されていて、重要な役割を担っています。
(b) 技術標準/規格
図4に技術標準/規格の分類を示します。標準や規格などは、一般的にプロトコルとかインタフェースなどと呼ばれているもので、実際の製品を作る際に準拠することになる技術です。なお、標準化とは組織や団体、あるいは国など広い集合体で一つの技術を標準として規定することです。

図4 技術標準/規格の分類
例えば、インターネットの標準はTCP/IP標準です。これはIETF(Internet Engineering Task Force)でRFCとして規定されています。RFCはインターネットで通信を行う際に必要な技術をRFCという文書でまとめたもので、標準化過程の段階に応じて、標準や提案済み標準、ドラフト標準などがあります。個々の、例えばWWWならばHTTP、メールならSMTPなどというプロトコルについて、複数のRFCで規定しています。
この類には、ISOの国際標準やITUの国際勧告、JISの規格などがありますが、呼び方はそれぞれの標準化団体の呼び方によります。また、仕様などと呼ぶこともあります。
(c) 新技術/動向
最新の技術を巡って各社が新しい技術の開発に必死で取り組んでいます。そのため、標準化された技術ではなく、独自に開発・製品化した技術を世に発表し、その後でその新技術を標準化組織に提案するという手法をとることが多くなっています。
したがって、新技術開発の動向に注意を払わないと、新製品開発競争に遅れをとってしまいます。日本が100Base-Tに遅れたのは印象的な例です。米国Chipcom社(現在は3com社に買収)が100Base-Tのプロトタイプを開発し、ANSI委員会に提案したときに、日本のメーカ関係者は眉唾物だなどと言っていたのです。そのため、実際に製品化・標準化されたときには、だいぶ遅れをとってしまいました。
最近では、ADSL技術も同じような状態となっています。米国では、1998年から1999年にかけて本格的に開始されましたが、日本では、ISDNとの干渉の問題などがあったにせよ、政策的におよび腰の通信業者や国の姿勢から、本格的に開始されたのは2001年からです。その間に、韓国では国の方針により大々的に開始し、日本に先んじる「ブロードバンド大国」となってしまいました。
(2)実装技術
標準化された技術を製品化する際には、実装技術が必要となります。その際に必要な技術は、プラットフォーム(製品開発する基盤)であるOSや言語の使用技術、開発およびプログラミングする技法、そして、対象とするインフラやアプリケーションの技術があります。
(a) OS/言語
最近、一般的なOSはUNIXやWindowsなどです。従って、これらをベースに開発を進めます。また、CやC++、あるいはVC++(Windows)などの言語に関する技術を持っていなければなりません。もちろんその経験も長いものが望まれます。
(b) 開発/プログラミング技法
開発の際には、ネットワークに関する開発およびプログラミング技法を問われます。ネットワークのプログラミング技法には、最も主要なソケットを初めとして、RPC(Remote Procedure Call:リモート関数呼び出し)などのプロセス間通信(IPC:Inter-Process Communication)に精通し、さらに、マルチプロセス処理やマルチスレッド処理もプログラムできなければなりません。
例えば、サーバ処理ではマルチプロセス(UNIX)、またはマルチスレッド(Windows)で複数のクライアントからの要求に対応します。そして、処理の手法としては図5に示すように、1つのクライアントからの要求を受け付けたら、すぐに別のクライアントからの要求を待ち受けるプロセスまたはスレッドを起動しておく手法をとります。

図5 サーバのマルチ処理
一方、ソケット・プログラミングでは図6に示すようにソケットの作成から始まり、ソケットにIPアドレスやポート番号による識別子を付け、サーバでは接続の受付準備に入ります。クライアントの接続要求の送信と、それに対するサーバの接続要求受付によって送受信が可能になります。

図6 ソケットによるデータ送受信の手順
RPCはその名の通り、別システム内の関数を呼び出して使用するものです。つまり、関数の形でサービス要求を相手システムに行って、その応答(サービス提供)を関数からの戻りで得ることができます
このほか、通信というものはディスクのI/Oなどと違い、より低速な回線を使います。そのため、効果的なプログラミングを行わなければなりません。例えば、受信するデータはすべてビットまたはバイト単位ですから、値としてみれば2通り(ビットの場合)または256通り(バイト)の組み合わせがあります。バイトとした場合の処理では、いちいちその値が1であったならば1の処理、2であったならば2の処理・・・などと行っていたのでは効率的ではありません。この場合には、図7のような処理で効率的に行います。

図7 効率的なバイト処理の例
(c) インフラ/AP
対象となるネットワークやアプリケーションも重要です。つまり、使用するインフラやアプリケーションとのインタフェースを考慮しなければなりません。例えば、LANのミドル・ソフトを開発する場合、IEEE802.3を使用し、サービス提供先のアプリケーションへの共通API(Application Programming Interface)を提供する必要があります。
(3)インテグレーション技術
ネットワークシステムをインテグレーション(統合構築)する技術には、ネットワークの運用管理・構築などを行う技術、インターネットなどからの情報を取得する技法、そして法制度に関する技術資格があります。
(a) 運用/管理
ネットワークを構築および運用するには、その設計から構築、そして運用・管理する技術が必要になります。ネットワークシステムは、分析、設計、開発、構築、運用、管理、評価と進化し、また、分析して新しいネットワークへアップグレードするというライフサイクルを持っています。そのため、運用管理にとどまることのない技術が必要です。なお、ハードウェアやソフトウェアなど、インテグレーションに使用するものに対する利用経験も当然必須となります。
(b) サービス情報
現在、インターネットを含めてネットワーク情報は洪水のように溢れかえっています。しかし、その中から必要な情報をタイムリーに的確に得るためには、それなりの対処が必要です。例えば、セキュリティ情報やセキュリティツールを得るためには、CERT(Computer Emergency Response Team)やCOASTライブラリなどの最新情報を見ている必要があります。日本ではJPCERT(日本コンピュータ緊急対応センター)やIPA(情報処理振興事業協会)セキュリティセンターなどの情報が重要です。
(c) 資格/法制度
日本の通信ネットワークには、電気通信事業法という法律を主とする法制度が適用されます。従って、これらの法制度について知識がなければ、ネットワークのインテグレーションは不可能です。また、通信ネットワークに従事する技術者は、法的な担保資格としての通信技術者資格を持たなければいけないことになっています。
現在の情報ネットワーク技術の歴史は概要としては表1のようになります。モールスの電信とベルの電話が最初の基点です。電信は一見一時代過去のものに見えますが、実は情報処理の様々なベースになっています。電信の「トン・ツー」の「接続と切断」の考え方は、デジタル信号のONN/OFFそのものですし、アラン・チューリングが先駆けた暗号化やクロード・シャノンの符号化(ビットによる文字表現などの)ベースとなっています。電話は周知のように現代電気通信技術そのものです。最近のADSL技術はまさにこの最先端技術となっています。
表1 情報ネットワークの歴史(主なもの)
| 電気通信 (Telecommunication) |
1837年 | 電信(モールス、Samuel F.B. Morse) |
| 1876年 | 電話(ベル、Alexander Graham Bell) | |
| 1960年 | レーザー | |
| 1963年 | 通信衛星(米国) | |
| 1975年 | 商用パケット交換サービス(X.25)開始(TELENET/TYMNET) | |
| 1996年 | ADSL(Asymmetric Digital Subscriber Line) | |
| 情報処理 (Information Processing) |
1830年 | 計算機理論(チャールズ・バベージ) |
| 1936年 | 仮想計算機(アラン・チューリング) | |
| 1942年 | 世界初のコンピュータABC(ENIAC-1946年との特許裁判結果) | |
| 1948年 | 符号化理論(クロード・シャノン) | |
| 1964年 | IBM360(汎用機)−集中型処理 | |
| 1965年 | PDP-8(ミニコン) | |
| 1969年 | UNIX(on PDP-7)−分散型処理 AT&Tベル研究所開発 UNIX−Uniplexed Information and Computing System (System-V/BSD版) |
|
| 1981年 | IBM-PC | |
| 1991年 | Linux(リーナス・トーバルズ) | |
| 1995年 | Windows95 | |
| 情報通信 | 1940年 | テレタイプによるデータ通信 |
| 1958年 | SAGE(Semi Automatic Ground Environment−防空システム) | |
| 1962年 | パケット交換技術発明(ポール・バラン) | |
| 1964年 | SABRE(Semi Automatic Business Research Environment −アメリカン航空) |
|
| 1973年 | Ethernet(ボブ・メカトフ) | |
| インターネット | 1969年 | ARPANET(インターネットの前身) |
| 1974年 | TCP/IP(インターネットのプロトコル)発表(ビントン・サーフ) | |
| 1975年 | TCP/IP→UNIXへ提供開始 | |
| 1990年 | 商用インターネット(PSInet)開始 |
情報処理技術つまりコンピュータの歴史では、バベージの計算機理論をベースにABCで最初のコンピュータ化に成功し、ENIACで現代型コンピュータを生み出しました。この分野で現代に通じる画期的な発明がUNIXです。UNIXは同じ時期に構築されたインターネットと歩みをともにすることで、現在の隆盛を築き上げました。
このUNIXは、1969年にAT&Tベル研究所で開発された後、開発のメンバーであったケン・トンプソンがカリフォルニア大学バークレイ校に招かれ、そこで発展させたBSD(Berkeley Software Distribution)版UNIXがTCP/IPを導入するに及んで、インターネット標準OSとしての地位を築いたのでした。
電気通信と情報処理との交わりの最初が、テレタイプによるコンピュータのデータ送信です。これが「データ・コミュニケーション」です。データ・コミュニェーションは、時代の流れとともにその通信形態がポイント・ツー・ポイントから網(Net)目状になり、「ネットワーク」へと変身を遂げました。
図8にデータ・コミュニケーション技術とネットワーク技術の概要を示します。汎用コンピュータに起源を発したデータ・コミュニケーション技術は、電気通信のネットワークをベースにしています。このデータ・コミュニケーション技術が、UNIXやWindowsなどをネットワークに取り込み、全体としてネットワークを構成するようになっています。

図8 通信ネットワーク技術の概観
また、ネットワークの歴史をその形態の変化で見ると、図9のようになります。最初は点としてのコンピュータ(0次元)が線(1次元)となり、ネットワーク化して面(2次元)となり、通信衛星などにより立体化(3次元)してきました。このため、以前の平面的な有線のみの通信形態から現在のような無線を含む通信形態になってきたのは必然的な流れともいえます。

図9 情報ネットワークの物理的形態変化の歴史
このようにネットワーク化は、ネットワーク形状の物理的な変化だけではなく、図10のように送受信データの処理形式の質的な変化を生み出しました。つまり、初期のポイント・ツー・ポイント通信処理ではただ単に送受信する(垂れ流し)方式でも良かったのですが、複数地点を結ぶようになったポイント・ツー・マルチポイント通信での集中型処理(複数箇所の作業を1箇所で行う処理方式)では、マスター・スレーブ処理という方式が出てきました。

図10 データ処理の物理的形態と処理形態の進化
これは、中心にあるシステム(汎用機)がすべての端末のアクセスを制御するものでした。その後、これらのポイント・ツー・ポイント通信、あるいはポイント・ツー・マルチポイント通信が統合されてネットワークとなりました。そこで、その効率的な処理を行うために分散処理方式が生まれました。この分散処理ネットワークの中核が、ネットワーク上でデータを細切れにし、それぞれにラベル(宛先など)を付加して送受信(交換)するパケット交換方式で、
ポール・バランによって発明されました。
パケット交換はLAN型通信ではインターネットに、そして広域の交換網としてはパケット交換サービスに導入されました。また、パケット交換の考え方は、フレームリレーやセルリレーに引き継がれています。
情報ネットワークの技術を語るときには、常に「階層化構造」をベースに話がなされます。この「階層化構造」はISO/OSI参照モデルというものです。OSI参照モデルは、図11に示すようにネットワークにおけるデータの送受信処理を、自システムと相手システムとを中継システム(ゲートウェイ)で接続する物理的な環境のもとで、ユーザから発せられたデータがどのように相手ユーザに届くかを説明するためのモデル構造です。このOSI7階層の構造は、他のすべてのネットワーク・プロトコルを説明する際のフレームや尺度として使用されています。

図11 ISO/OSI参照モデル
この階層を上(つまり、ユーザ側)から見ていくと、まずアプリケーション層があります。ここでは、電子メールやファイル転送、WWW、ネットワーク管理などのように、ネットワーク上でのアプリケーションの機能をモデル化しています。つまり、ネットワーク・アプリケーションのモデルを規定しています。この層の技術には上記のネットワーク・アプリケーションのプロトコルがあります。TCP/IPでは、FTPやSMTP/POP3、HTTPなどが代表的なものです。
プレゼンテーション層では、アプリケーション層のプロトコルが使用するデータの符号化やフォーマット、構造に関する技術の機能を規定しています。これらを厳密には「構文(シンタックス)」と呼んでいます。代表的なものにASCII、EBCDIC、JISなどの符号化方式や、ANS.1(抽象構文表記法-1)などの表現形式があります。
セッション層では、通信相手とのデータの同期やデータの送信方法(相互通信や並行通信など)の機能を規定しています。代表例は、TCP/IPのポート(アプリケーション番号)です。
トランスポート層は、送受信システムのプロセス間の送受信制御や通信を行うもので、代表的なものがTCPやUDPということになります。
ネットワーク層はネットワーク上でのデータのルーティングを行うためのもので、その固有な要素としてネットワークアドレスがあります。代表的なものがIPやパケット交換網のX.25(レイヤ3)です。なお、トランスポート層以上の4階層は情報処理的要素が強いのに比べて、このネットワーク層以下の3階層は電気通信的色彩が強いものになります。また、この階層以下だけを含むものが、中継システム(つまりゲートウェイ)です。
データリンク層は、物理的に隣り合う(つまり電気信号のやりとりを直接行う)システムの間での論理信号(デジタル信号)手順やフォーマットの機能を規定しています。この代表的なものに、PPPやフレームリレー、EthernetのLLC(論理リンク制御)やMAC(メディアアクセス制御)などがあります。
最後の物理層は、電気信号や物理形態などの機能を規定するところで、ATMやADSL、そしてEthernetの物理/電気規格などが代表的なものです。
自システムのユーザからでたデータは、アプリケーション層から順に物理層に降りてきます。このとき各階層では、自分の階層でのヘッダ情報(識別子やデータ長などの階層独自の情報)を付加したデータを下の階層に渡します。この各階層のデータをPDU(プロトコル・データ・ユニット)といいます。
そして、物理層からでた電気信号が中継システムに送られていき、中継システムで一旦ネットワーク層まであがり、相手方ネットワークに入り、また物理層まで降りてきて、電気信号で相手方システムの物理層に入ります。そして、最終的に相手方システムのアプリケーション層を経て相手ユーザに届くことになります。
階層化の中で重要なものとして「コネクション」という用語があります。コネクションは、1つに階層が上位の層に対して相手方との間の接続サービスを提供する仮想的な資源(通信路やその接続自体)を指します。これをVC(仮想コネクション)などということもあります。
ただし、相手との間のデータ送受信時に接続を行わないコネクションレス型、あるいはデータグラム型という方式もあります。この方式による代表的なアプリケーションがネットワーク管理やDNS(ゾーン情報の伝送を除く)などです。なお、データグラム型はDoS攻撃を受けやすい性質を持っています。
[出典]
(1) 笠野英松:ネットワーク技術,技術評論社(2002-5)
以上、情報ネットワークの概要についてまとめました。次回は情報ネットワーク技術の構成および個別技術の概要についてまとめる予定です。
今回は情報ネットワーク技術の構成および個別技術の概要についてまとめました。
図12にネットワーク技術の分類を示します。ネットワーク技術は、利用するプラットフォーム、利用するアプリケーションでの代表的なマルチメディアとセキュリティ、現在のネットワークで代表的なインターネット(TCP/IPプロトコルとそのアプリケーション)、その実装で重要なネットワーク・プログラミング、これらのベースとなるネットワーク・インフラで構成されます。

図12 情報ネットワーク技術の全体像
UNIXやWindowsなどのプラットフォームOSは、情報ネットワークの末端ノードといえます。そして、ネットワーク全体ではマルチメディア・ネットワークが注目を浴びています。また、ネットワークのセキュリティは、昨今の電子商取引(EC)で重要な分野です。
さらに、TCP/IPプロトコルはインターネットの技術群(スイート)で、他の分類にもかなり重複する技術です。そして、このTCP/IPプロトコルのAPI(Application Programming Interface)を利用したネットワーク・プログラミングも、ネットワーク標準を実装するために重要な技術です。
最後に、ネットワークのインフラ技術として、ネットワーク理論やデータ通信理論、電気通信技術があります。また、ネットワークの法制度やサービスなどのネットワーク環境は技術ではありませんが、これらの利用技術は利用上のインフラとなっています。
なお、これらは皆個々に重複することがあります。それは、これらの分類が重複あるいは接している部分でのことです。
UNIXのネットワーク技術は、もちろんインターネットのTCP/IPプロトコルと非常に密接な関係を持っています。しかし、それがすべてではありません。UNIXネットワークの重要な基本は図13のようなもので、プロセスやファイルシステム、デーモン、そして分散型ウィンドウ(Xウィンドウ)などの技術です。また、シリアル処理にも特徴があります。

図13 UNIXシステムの特徴
プロセスはユーザモードあるいは(そして)カーネルモードで動作しますが、カーネルのシステムはカーネルモードで動きます。一方、ユーザプロセスは、システムコールなどのシステム処理を除いてユーザモードで動きます。
プロセスはアプリケーションやプログラムなどのメモリ上での状態、つまり、実行状態のことです。こうしたプロセスがお互いに通信することをプロセス間通信(IPC:Inter Process Communication)といい、ローカルシステム内のプロセス間であっても、別のシステムのプロセス間であっても同じように通信できます。なお、IPCには、TCP/IPで代表的なソケット通信の他にも、プロセスが互いに同じメモリ領域を共有する共有メモリや、関数呼び出しで行うリモート・プロシージャ・コール(RPC)などがあります。
ファイルシステムは、ルートディレクトリをトップにしたツリー構造です。このUNIXファイルシステムの特徴は、図14のように通常のファイル・システム・ツリーに別のシステムのファイル・システム・ツリーを連結するマウント機能(リモートマウント機能)です。これはNFS(ネットワークファイルシステム)などのRPCにより実現されています。

図14 UNIXファイル・システム
デーモンとはメモリに常駐のプロセスのことです。UNIXのネットワーク・サーバ・サービスにはデーモンとして、単独で常駐しているものと別のデーモンから起動されるものとがあります。単独で動作する代表的なものが、メールサーバやネームサーバです。一方、スーパー・サーバ・サービスと呼ばれるデーモンプロセスから起動されるサーバサービスには、telnetd(telnetサーバ・デーモン)やftpd(ftpサーバデーモン)、pop3d(pop3サーバデーモン)などがあります。これらは一つのアクセスに対する処理が終わると、そのプロセスが終了します。
分散型ウィンドウシステムの代表例であるXウィンドウは、通信による処理を行います。このXサーバとクライアント間の通信がXプロトコルで、このバージョン11がX11です。
シリアル処理は非同期通信ポートのttyを経由した通信で、一般的には、gettyというプログラムを介してログイン処理を行ったり、モデムなどの通信機器により発信処理を行います。そのため、様々な制御情報によりttyポートの属性を定義します。
Windowsのネットワークは図15のような構造を持っています。中核となるWindowsトランスポート・プロトコル(OSIの第2層の上半分から第4層まで)としては、Windowsシステム間の通信プロトコルであるNetBEUIやインターネットのTCP/IP、そしてノベルのNetWare用IPX/SPX、さらにIBMメインフレームにアクセスするためのDLCがサポートされます。
| WINS | Windows Internet Name Service(Windowsインターネット・ネーム・サービス) |
| SMB | Server Message Block protocol(サーバ資源にアクセスするメッセージ仕様) |
| SMTP | Simple Mail Transfer Protocol(メール配送プロトコル) |
| X.400 | ITU-T X.400シリーズ勧告(電子メール) |
| X.500 | ITU-T X.500シリーズ勧告(ディレクトリ) |
| DNS | Domain Name System(ドメイン名とIPアドレスとの設定) |
| DHCP | Dynamic Host Configuration Protocol(動的ホスト・アドレス設定プロトコル) |
| SNMP | Simple Network Management Protocol(簡易ネットワーク管理プロトコル) |
| NFS | Network File System(SUNのネットワーク・ファイル・システム) |
| FTP | File Transfer Protocol(ファイル転送プロトコル) |
| RPC | Remote Procedure Call(リモート手続き呼び出し) |
| NetBIOS | Network Basic Input/Output System(ネットワーク基本入出力システム) |
| NetBEUI | NetBIOS Extended User Interface(NetBIOS拡張ユーザ・インタフェース) |
| IPX | Internetwork Packet eXchange(NetWareのネットワーク層プロトコル) |
| SPX | Sequenced Packet eXchange(NetWareのトランスポート層プロトコル) |
| DLC | Data Link Control(データリンク制御―IBM汎用機へのアクセスプロトコル) |
| NDIS | Network Driver Interface Specification(ネットワーク・ドライバ・インタフェース仕様 |
| TDI | Transport Driver Interface(トランスポート層と上位層とのインタフェース) |
図15 Windowsのネットワーク構造
また、アプリケーションとの間のAPIには、WindowsアプリケーションのためののNetBIOS(NetBEUIやTCP/IP上で動作する)や、TCP/IPおよびNetWare用のWinSock(Windows Socket)、RPCがあります。
なお、Windowsシステムのトランスポート通信プロトコルは、ネットワークのカード(NIC:Network Interface Card)やドライバとの間にNDISが定められていて、これを介して共通のインタフェースをとることができます。また、アプリケーションやAPIとの間にはトランスポート・ドライバとのインタフェースであるTDIがあります。
アプリケーションとしてはTCP/IPアプリケーションの他に、サーバ資源にアクセスするためのプロトコルとしてSMBがサポートされています。SMBは具体的にはファイル共有サービスやプリンタ共有サービスなどに使用されます。また、DHCPの動的なIPアドレス割り振りを静的なDNSに反映するための動的管理機能であるWINSもサポートされています。
Windowsネットワークには図16に示すように、ドメイン形式のものとワークグループ形式のものがあります。ドメイン形式のものは、Windows
NTやWindows 2000などのサーバをネットワークの中心に置き、そのドメイン(ネットワーク)のユーザ管理(ネットワーク資源へのアクセス制御)を行わせるようにするものです。ドメイン形式のものは、クライアント・サーバ型通信とピア・ツー・ピア型通信をサポートします。

図16 Windowsの2つのネットワーク形態
一方、すべてのWindowsで可能なワークグループ形式のものは、ピア・ツー・ピア型通信だけをサポートします。クライアント・サーバ型通信が固定的にその役割(サーバやクライアント)を決めているのに対し、ピア・ツー・ピア型通信では動的に(必要に応じて)その役割を変えます。つまり、システムの資源にアクセスする方がクライアントで、資源へのアクセス・サービスを提供する方がサーバとなります。
マルチメディアとは複数のメディアが混合したものです。図17に示すように個別メディアとしては、表現対象のメディアや伝達手段としてのメディア、表示手段としてのメディア、さらに知覚手段としてのメディアなどがあります。さらに、複数の表現メディアを同一の伝達メディア上で送受信するメディア融合も、マルチメディア・ネットワークによって生み出されたものです。

図17 マルチメディア・ネットワークへの進化
一方、マルチメディア・ネットワークは、情報処理や電気通信、放送、映画などのネットワークが歴史的に進化し、統合されてできたものです。そして、これらの分野のネットワークの要素であったメディアが混合されてマルチメディアになったといえます。図17は、各ネットワークの統合過程をマルチメディア・ネットワークへの進化として示しています。
情報処理(コンピュータ)のデータ要素と電気通信の通信要素とからポイント・ツー・ポイントのデータ通信となり、さらにマルチポイント化すると同時に、残りの情報処理とデジタル通信部分が一緒になってネットワークとなりました。さらに、ネットワークが相互接続してインターネットワーキングへと進み、情報のマルチメディア化と伝達手段のマルチメディア化や、放送・映画などの表現手段のマルチメディア化を統合する形でマルチメディア・ネットワークができあがりました。
マルチメディア・ネットワークは、統合された情報処理と電気通信、放送、映画などの特徴を持っています。図18に示すように、情報処理の機能である情報の入出力(処理)機能、電気通信の機能である送受信機能、放送の機能である広範囲への1方向送信(配信)機能、映画の機能である映像の提供機能などです。これらを併せ持つものがマルチメディア・ネットワークということになります。

図18 マルチメディア・ネットワークの特徴
具体的には、特に画像や映像を双方向に、かつリアルタイムに送受信するストリーミングを高速に処理するものなどがあります。MPEG4やRTSPなどと呼ばれている技術がこの代表的なものです。また、WWWもマルチメディア・ネットワークでの代表的なアプリケーションです。
ネットワークのセキュリティは、図19に示すところで発生します。つまり、ネットワーク相互の接点(インタフェース)がセキュリティの原点です。一般的には、インターネット接続、つまり、IP接続している外部と内部ネットワークのゲートウェイ部分が、最初のセキュリティ対策の入り口です。

図19 ネットワーク接点のセキュリティ
ここでは、セキュリティの防護壁であるファイアウォールが門番となって、不正アクセスや不正侵入を排除します。メールやWWWのデータはここを通過して、当該サーバ(メールサーバやWWWサーバ)へ接続してきます。そこでこれらのサーバは、適正な資格のアクセスかどうかチェックしなければなりません。
広域の公衆交換網とLAN内のシステムとの接点でもセキュリティが必要になります。UNIXシステムのシリアル・インタフェースは、企業ネットワークのセキュリティ上の盲点になりやすくなっています。つまり、外部からの着信がくると即座にウェルカム・メッセージとログイン・プロンプトを返信します。セキュリティ対策の観点からは、このメッセージを表示しないようにしなければなりません。また、コールバック・モデルや発信者番号識別によってすぐに接続するのではなく、一定の処理によって相手を識別してから接続させるなどの対応も必須です。
表2はインターネットのIP接続時のセキュリティ対策を説明しています。セキュリティは「点」と「線」で対応することができます。「点」とはパケットを受け付ける個々の場所で、具体的にはゲートウェイやサーバなどになります。また、「線」とはシステム間やゲートウェイ間、あるいはゲートウェイとシステム間のデータです。いずれも階層別に対応することになります。
表2 インターネットにおけるセキュリティ対策
対策1 |
対策2 |
対策3 |
|
| 場 所 | ポイント | エンド−エンド(データ) | 総合=ファイアウォール製品 |
| 方 法 | アクセス制御 | 認証と暗号化 |
階層 |
ポイントと具体策 |
||
| ルータ |
サーバ |
||
| 利用者インタフェース | コマンド | ユーザ名/パスワードによる識別 IPアドレス/ドメイン名/ホスト名/ユーザ名/コマンドの組み合わせによる識別 |
|
| アプリケーション | メール(メールアドレス/IPアドレス/ドメイン名/ホスト名による識別) WEB(IPアドレス/ドメイン名/ホスト名による識別、証明書、メンバ制) 禁止ユーザ名/ホスト名の指定、パスフレーズ識別など |
||
| TCP/UDP | ポート番号/方向 | ポート番号/IPアドレス/ドメイン名/ホスト名/サービス時間/サービス数によるアクセス制御 | |
| IP | IPアドレス/方向 | ポート番号/IPアドレス/ドメイン名/ホスト名/方向/インタフェースによる制御 | |
| 階 層 |
対 策 |
| アプリケーション | 暗号化トンネル、暗号鍵/ドメイン名によるアクセス認証、データ/メッセージ暗号化、データ/メッセージ認証 |
| API | 汎用セキュリティ・インタフェース |
| ソケット | 鍵配送、暗号化、メッセージ認証、署名検証 |
| IP | ヘッダ認証/データ認証・暗号化 |
| データリンク | レイヤ2トンネル |
| 認証 | データや送受信者などが本物かどうかの識別 |
| パケットフィルタリング | IPアドレスやポート番号、方向によるパケットのフィルタリング/アクセス制御 |
| ファイアウォール | パケットフィルタリング、転送禁止、経路制御などの通信制御機能 |
「点」での対応は、そのパケットのアクセスを許可するかどうかのアクセス制御となります。その際の判断要素は各階層の「識別子」です。つまり、IP層ではIPアドレスと方向、TCP/UDPではポート番号と方向、アプリケーションやコマンドでは名前やパスワードなどが識別子となります。さらに、サーバ(システム)名やドメイン名、各ユーザ名などと下位層のIPアドレスなどを組み合わせて使用します。
「線」であるデータのセキュリティ対策は、データの暗号化とデータや発信者名などの認証が主になります。「暗号化」は、データの送信時に平文の送信データを暗号文にする処理で、受信側ではその暗号文をもとの平文データに戻す「復号」と呼ばれる処理が必要になります。
「認証」は、送信されてきたデータや送信者などが正しい真のものかどうか確認する処理です。認証処理では、認証データ(送信者が送る署名データ)を使用して本物かどうか調べますが、このデータは一方向ハッシュ関数と呼ばれる関数によって生成されます。一方向ハッシュ関数は、計算結果から元のデータに戻すことが計算量から見て実現不可能であるが、関数計算自体は簡単であるという特徴があります。認証対象には、送信されてきたデータ自体、暗号化の鍵、送信されてきたデータの発信者の3つがあります。
| システム コール |
機能 | 主な入力 | 出力 | 実行主 |
| socket | ソケット作成 | ネットワークタイプ、プロトコル | ソケット識別子 | クライアント、サーバ |
| bind | ソケット名前付け | ソケット識別子、名前 | 処理結果ステータス | クライアント、サーバ |
| listen | 接続要求待ち | 接続可能数 | 処理結果ステータス | サーバ |
| connect | 接続要求 | サーバア・ドレス | 処理結果ステータス | クライアント |
| accept | 接続受入れ | クライアント・アドレス | 通信ソケット識別子 | サーバ |
| read/write | データ送受信 | 通信ソケット識別子、 データ | 処理データ長 | クライアント、サーバ |
| close | ソケット通信終了 | ソケット識別子 | 処理結果ステータス | クライアント、サーバ |
| sendto/recvfrom | データ送受信 | ソケット識別子、データ、相手アドレス | 処理データ長 | クライアント、サーバ |
まず最初にソケットの作成を行います。このとき必要な情報として、システム内だけかネットワーク全体か、どのようなプロトコル(TCP/IPなど)を使用するか、等があります。ソケットの作成にはsocketシステムコールが使用されます。
次にこのソケットをIPアドレスとアプリケーションが使用するポート番号とに関連づけます。ポート番号は一般的に、クライアントでは自動的に空き番号を、サーバでは既定の番号を設定します。この関連づけにはbindシステム・コールが使用されます。
サーバ側でのこの後の処理では、使用するプロトコルがコネクション型(TCP/IP)かコネクションレス型(データグラム型、UDP)かで異なります。コネクション型の場合には、接続に使用するこのソケットをTCP/IPインフラに通知して(listenシステムコール)、接続要求待ち(acceptシステムコール)となります。一方、データグラム型ではこの接続ソケットの通知や接続要求待ちがありません。
コネクション型の場合にはサーバ側が以上の状態になると、クライアントから接続要求を送信する(connectシステムコール)ことができます。接続が受け付けられるとデータの送受信が可能になります。(send/recvまたはread/writeシステムコール)。
データグラム型の場合には、bindシステムコールの後、すぐにデータの送受信が可能です(sendto/recvfromシステムコール)。
ソケット通信の終了はcloseシステムコールで行います。このほか一般の入出力と同じような処理(例えば、プログラムのメイン処理とデータの送受信処理を並行に行う非同期処理など)が可能です。なお、ここで述べたシステムコールはUNIXシステムのもので、Windows(WinSock)では多少異なります。
WinSockの場合には、システムコールという呼び名ではなく関数といっていますが、ソケットに関する関数はUNIXソケットに比べて遙かに数多くの関数があります。WinSock特有の関数はWSAという文字列が関数名の先頭についています。
RPCは図21に示すように、一般の関数呼び出しをネットワークのリモートシステム内にまで広げたものです。RPCではクライアントとサーバ間の情報の受け渡しは、関数の引数という形で行うことになります。

図21 リモート・プロシージャ・コール
また、プログラマは、サーバに用意されたライブラリに格納されている関数の名前と引数について知っているだけでよいので、かなり簡単なプログラミングが可能です。関数の呼び出しには、サーバに登録してあるプログラム番号やバージョン番号、プロシージャ番号が使用されます。なお、RPCはNFS等のネットワークファイルシステムでも利用されています。
TCP/IPプロトコルは、図22に示すように5階層の構造を持っていますが、実質的に物理層を除く4階層の技術です。物理層には、一般の通信回線や通信サービスを使用します。代表的なものが同期/非同期のインタフェースやATM、フレームリレー、Ethernetなどです。

図22 TCP/IPプロトコル構造
ネットワーク・インタフェース層(第2層)で、代表的なプロトコルはPPPやARPです。PPP(Point to Point Protocol)はおそらく、インターネットで最もよく使われているプロトコルでしょう。ネットワークとネットワークの間をゲートウェイ(一般的にはIPルータ)を介して、データを送受信させるためのインフラです。ダイヤルアップ回線によるインターネット接続ではPPPが使用されていますが、最近のADSLでもEthernetインタフェース経由で末端システムまでのTCP/IPを届けるようにPPPを使用しています(これをPPPoEという)。
ARP(Address Resolution Protocol)は、IPアドレスをMAC(Ethernet)アドレスに変換するための仕組みで、IPデータをLAN上に送出する場合に、EthernetモジュールがIPアドレスに対応するMACアドレスを宛先にします。このARPの逆の仕組みがRARPです。RARP(Reverse Address Resolution Protocol)は、ディスクレス・システムなどで使用されます。
つまり、IPアドレスはユーザ(ネットワーク管理者)が設定しますが、その設定値を格納する場所がないディスクレスのシステムが、IPアドレスを管理しているサーバに対して、自分のMACアドレスを送って、逆に自分のIPアドレスを回答してもらう時などに使用します。
ARPには、ATMネットワークやフレームリレー・ネットワーク、マルチLAN、公衆網接続など様々なところで使用される多数のARPがあります。
インターネット層の代表的なプロトコルはもちろんIPですが、IPには現在のバージョンであるIPv4とすでに使用され始めている次のバージョンであるIPv6があります。IPv6は現在、不足し始めているIPアドレスを現在の32ビット値から128ビット値に拡張したプロトコルです。
インターネット層にはさらに、ping(相手システムへの到達を調べるコマンド)やルータからの制御情報通知などを可能にするICMP(Internet Control Message Protocol)、マルチキャスト通信の制御を管理するためのIGMP(Internet Group Management Protocol)、ルータ間の情報交換のためのルーティング・プロトコルやゲートウェイ・プロトコルなどがあります。グローバルIPアドレスとローカルIPアドレスを相互変換するNAT(Network Address Translator)もインターネット層のプロトコルです。
トランスポート層のプロトコル(ホスト間プロトコルとも言う)には代表的なTCPとUDPの他にも、大量データ伝送のためのNETBLT(NETwork Block Transfer)や、信頼性のあるデータ送信のためにRDP(Reliable Data Protocol)、トランザクション通信のためのVMTP(Versatile Message Transaction Protocol)、リアルタイム伝送に必要なりソース予約を行うRSVP(Resource Reservation Protocol)等があります。しかし、最も広く使われているのはやはり、TCPとUDPです。
アプリケーション層のプロトコルには、メールやWWWからネーム・サーバ、ネットワーク管理、マルチメディアなど、様々なものがあります。
(1)ネットワーク理論
ネットワーク技術のインフラとしては、ネットワーク理論、データ通信理論、電気通信技術基礎、ネットワーク環境があります。
ネットワークの理論には表4に示すように、ネットワーキング技法、ネットワーク処理、基礎理論など、手法や方式あるいは機能に関するものがあります。
表4 ネットワークの手法や方式、機能などに関する理論
| ネットワーク技法 | ネットワーク・アーキテクチャ |
| ネットワーク技法:ネットワーク構築、運用/運転、管理、評価、信頼性 | |
| ネットワーク処理機能 | 利用者支援機能 |
| ネットワーク・アプリケーション | |
| ネットワーク・ベース | |
| ネットワーク管理 | |
| DC/ネットワーク計測機器、シミュレーション装置 | |
| ネットワーク形態:処理形態、システム形態 | |
| ネットワーク理論 | ネットワーク全体理論 |
| ネットワーク部分理論 |
ネットワーキングの技法は、階層化構造、つまりネットワーク・アーキテクチャやネットワークの設計から運用、評価までの技法に関するものです。ネットワーク・アーキテクチャは、元々汎用機の初期において個々のシステムが連携していなかったものが、その発達期に個々のシステム間がネットワークを組むようになって、必要に迫られて考案された体系です。各社独自に体系化されていたものが次第に統合されて、結局、ISO/OSI参照モデルになりました。
ネットワークは、初期構築時の要求分析・計画、設計・開発に始まり、稼働中の運用・管理、一定時期後の機能および性能の評価、信頼性の分析を経て、ネットワークのアップグレードへと進む、というライフサイクルを持っています。従って、ネットワークの技法はこれらに関する技術となります。
ネットワーク処理は、ネットワークの処理に関する機能や形態など、ユーザに深く関係する技術理論です。最もユーザに近いものは、ユーザのプログラム・インタフェースとユーザの業務を支援するユーザ・インタフェースからなる利用者支援機能です。また、ネットワーク・アプリケーションの基本的な処理も機能技術に入ります。仮想端末や分散トランザクション処理、ファイル転送、ジョブ転送などです。これらのベースとなっているものがネットワーク管理であり、計測機器の技術と言うことになります。また、ネットワークの処理形態や物理的なシステム形態などもあります。
ネットワークの基礎理論には、ネットワーク全体に関する理論とネットワークの局所部分に関する理論とがあります。ネットワーク全体の理論としては、ネットワークの評価の理論であるグラフ理論や伝送路設定に関するルーティング法、ネットワークのデータ送信量を制御する輻輳制御理論、暗号化の理論などがあります。
ネットワークの局所的な理論としては、データの到着およびその処理に関するトラフィック理論、システムの状態遷移を見るための確立過程論、データの到着からその処理までの間の待ちに関する待ち合わせ理論、待ちを少なくするための最適化理論などがあります。
(2)データ通信理論
データ通信理論は表5に示すように、通信システムという体系全体の機能を区分化することで分類できます。つまり、データの処理系に関する理論、データの伝送系に関する理論、データの通信系に関する理論、そしてデータの交換系に関する理論です。また、これらの理論を組み合わせた技術が階層化プロトコルになります。
表5 データ通信技術
| データ処理系 | 通信ソフトウェア、通信制御ソフトウェア |
| 通信制御装置 | |
| データ伝送系 | 伝送モード |
| 伝送形式 | |
| 同期方式 | |
| 波形伝送 | |
| 誤り制御方式 | |
| 誤り検出・訂正符号化方式 | |
| 伝送制御手順 | |
| 伝送速度 | |
| 2線式デジタル加入者線伝送方式 | |
| 無線・衛星伝送 | |
| データ通信系 | 通信回線構成 |
| 多重化方式 | |
| 通信/接続形態 | |
| データ交換系 | 信号方式 |
| 交換方式 | |
| 回線(物理的・電気的) インタフェース |
|
| 階層化プロトコル (レイヤ1〜6) |
ITU-T |
データ処理系では、主にコンピュータ処理の機能である通信制御や回線の接続制御などが中心になります。これらは通信ソフトウェアあるいは通信制御装置や通信ドライバー(通信機能を制御するソフトウェア・モジュール)によって提供される技術です。
データ伝送系には、伝送の方向性に関する伝送モード、ビット伝送の形式、送受信するデータやネットワークの同期方式、波形の伝送方式、伝送上の誤り制御や誤り検出あるいは誤り訂正などの方式、伝送の制御手順、加入者線の伝送技術、無線や衛星伝送方式など最も多くの技術があります。
波形伝送はデジタル(ビット)信号の伝送を帯域で送るか直流で送るか、という電気信号へのマッピング処理方式です。一方、同期方式はビット信号や電気信号を送受信両側でタイミング合わせをする際に、送受信間のクロック合わせを行うためのデータのサンプリング用クロック周波数の同期と、データフォーマット識別のための同期とがあります。基本的に、この2つが最も低レベルのネットワーク・インフラ技術となります。また、昨今では無線通信技術の重要性も非常に高くなっています。
データ通信系では、通信回線の基本的な方式が主になります。物理的な複線化や論理的な多重化を含む様々な多重化や通信・接続の形態があります。
データ交換系では、交換機(現在ではスイッチと呼ぶ場合が多い)の交換方式や交換機間の信号伝達方式などがあります。回線インタフェースでの規格も重要です。これらにはITU(International Telecommunication Union)規格やEIA(Electronic Industries Association)規格があります。
(3) 電気通信技術とネットワーク環境
(a) 電気通信技術
電気通信技術には様々なものがありますが、ネットワーク技術者が理解しているべき最も基礎的なものは、表6に示すようなものです。回路技術、電話通信技術、配線系や回路終端装置技術などがあります。回路技術には、電流の電気回路と論理演算の回路とがあります。
表6 基礎的な電気通信技術
| 回路技術 | 電気回路、論理演算回路 |
| 電気通信技術 | 線路、伝送利得/損失 |
| 配線網 | 信号・電圧レベル |
| 信号技術 | |
| PBX | |
| 回線終端装置 | モデル/DSU/TA |
| その他 |
電話通信技術で重要なものは線路技術と呼ばれているもので、伝送上の利得や損失、回路網の損失、配線上の信号・電圧レベルなどがあります。また、電話の信号技術なども含まれます。
回線(あるいはネットワーク)の終端装置としては、モデムが代表的ですがTAなどもあります。これらの終端装置の規格や接続制御などの手順が技術的な要素となります。
(b) ネットワーク環境(法制度、サービス)
表7に示すものがネットワーク環境、つまりインテグレーションに密接に関係する情報です。法制度や標準化組織/機関、ネットワークや通信のサービスなどです。また、ネットワークOSや分散OSはネットワークの処理製品(システム)として存在しています。
表7 ネットワーク環境
| ネットワーク環境 | 法制度 |
| 標準化組織・機関 | |
| 網/通信回線/通信サービス/WAN/VAN | |
| ネットワークOS/分散OS | |
| その他 |
法制度は、日本では電気通信事業法をトップに、政令や省令で定められた技術基準や規則があります。これらは主に、電気通信事業者のネットワークや設備などの運用管理、これらに接続する利用者の設備の技術基準などに関するものです。また、法制度を円滑に運行するために、ネットワーク側と端末側に法的な担保資格としての技術者資格が規定されています。
標準化や組織・機関としては様々なものがありますが、総務省や経済産業省および、それぞれの下部機関である電信電話技術委員会(TTC)や日本工業標準調査会(JISC)があり、ITU(電気通信・放送分野)やISO(情報処理分野)などの国際標準化委員会、世界的に権威を持つ米国のANSI、さらには、インターネットの標準化を行っているIETFをはじめとするフォーラムとかコンソーシアムなどと呼ばれる標準化団体もあります。これらの標準化機関や組織から発行される技術資料は、情報ネットワークに重要な情報です。
[出典]
(1) 笠野英松:ネットワーク技術,技術評論社(2002-5)
以上、情報ネットワーク技術の構成および個別技術の概要についてまとめました。次回はUNIX、Windows、およびマルチメディアのネットワーク技術についてまとめる予定です。
今回はUNIX、Windows、およびマルチメディアのネットワーク技術についてまとめました。
UNIXネットワーク機能は、図23に示す3つの形態で提供されます。一つはTCP/IP
LANのネットワーク機能で、単独のデーモン・サービスとして稼働する形態、2つ目はTCP/IP
LANのネットワーク機能で、スーパ・サーバ・サービス・デーモンから呼び出されて実行される形態、3つ目はシリアル・ネットワークとしてttyポートを通して実行される形態です。

図23 UNIXネットワーク機能の提供形態
UNIXのネットワーク構造は、TCP/IPのネットワーク構造とほぼ同じですが、表8に示すように一部異なる部分があります。ネットワーク階層化構造やR-コマンド系(rloginを除く)やシリアル・ネットワーク系です。
表8 UNIXネットワークの特徴
| ネットワーク構造 |
アプリケーション層=プロセスとソケット層 トランスポート層=プロトコル層 インターネット層=プロトコル層 |
| r-コマンド | rsh、rexec、rcpなど |
| シリアル・ネットワーク | tip/cu、rmail、uucpなど |
システムの起動は図24のように行われます。システムは最初にブート・プログラムが稼働して、カーネルを呼び出します。カーネルはシステム・リソースなどの初期化を行った後、最初のプロセスであるinitプログラムを開始させます。initプロセスは最初のプロセスであると同時に、これ以降起動されるすべてのプロセスの親プロセスとしてメモリに常駐します。

図24 UNIXシステムの起動
initプロセスは(実際には/etc/rcというシェル・スクリプトを実行して)、ファイルシステムのチェックやマウントを行った後に、ネットワークの設定を行い、様々なデーモン・プロセスを起動します。デーモンプロセスとして、ネットワークのサーバ・サービスやスーパー・サービスがあります。
さらに、initプロセスはデーモン起動後、各ttyポートに対して(正確には、着信待ちを行う設定になっているttyポートに対して)gettyという着信待ちプロセスを起動します。そして、起動しているプロセスの監視状態に入ります。
なお、上記のようにinitが/etc/rcによって起動を開始するのは、BSD系のUNIXの動作であり、System-V系(Linuxを含む)では、inittabというファイルに記述されているプロセス(プログラム)を実行します。そのプロセスとして、/etc/rcやgettyがあります。
スーパー・サーバ・サービスは、デーモン・プロセスとして常駐してTCPおよびUDPのアプリケーション・ポートを監視しており、ポートに着信があった場合にそのプロセスを起動します。シリアルttyポート経由のものは、getty経由での着信とttyモジュールによる発信を行います。
NIC経由でのいわゆるLAN型接続のネットワーク・サービスの内、単独の個別サービスとして起動させるネットワーク・サービスには、ネーム・サーバやメール・サーバ、WWWサーバなどがあります。一方、スーパー・サーバ・サービス経由のものとしては、telnetやftpサーバ、pop3サーバなどがあります。
スーパー・サーバ・サービスとして有名なものは、インターネット・サービス・デーモンinetdと拡張インターネット・サービス・デーモンxinetdとがあります。いずれもサーバにサービスを行うもので「スーパー・サーバ」と呼ばれることもあります。
inetdとxinetd違いを表9に示します。基本的に違うことは、セキュリティ機能がinetdにはなく、xinetdにはあることです。そのため、inetdはセキュリティ・ラッパと呼ばれるソフトウェアとともに用いなければセキュリティ上実用になりません。xinetdは最近特に有用になってきたもので、多くのUNIXプラットフォームの最新のバージョンではデフォルト設定になっています。
表9 スーパー・サーバinetdとxinetdの機能の違い
| 機能 | xinetd | inetd | |
| 設定ファイル | /etc/xinetd.conf | /etc/inetd.conf | |
| サービス形態 | スーパー・サーバ | スーパー・サーバ | |
| サービス項目 | /etc/services記述以外のサービスも可能 | /etc/services記述内のサービスに限定 | |
| セキュリティ機能 | xinetd.confおよびincludeディレクトリ内のファイルに記述 | tcpd(tcp_wrappers)による | |
| 設定 | 全体、サービス毎 | サービスとアドレスなどの組み合わせ | |
項目 |
許可、禁止、アドレス条件、対象サービス、 同時動作数制限、停止サービス設定、 同一ソケットアドレス使用可能、 各種フラグ、ログ条件/項目設定、 インタフェース設定、ユーザ/グループ設定 RPC/非RPC設定など |
許可、禁止、アドレス条件、対象サービス | |
inetdとxinetdはいずれもシステムの起動時に呼び出され、メモリに常駐してシステムの着信ポートを監視します。監視するポートについては、inetdが/etc/servicesに記述されたアプリケーション・サービスのポートについてのみ対象となるのに対して、xinetdでは/etc/services以外のサービスについても対象とできます。
inetdとxinetdは設定ファイルに記述設定されたサービスを、起動時に読み込んで監視を行います。そのため、設定ファイルを変更したらinetd/xinetdの再起動が必要になります。設定ファイルはinetdの場合には/etc/inetd.confで、xinetdの場合には/etc/xinetd.conf(および、そこでincludeしたディレクトリ内のファイル)です。
この設定ファイルの例を図25に示します。/etc/inetd.confでは1行のエントリが1つのアプリケーション・サーバに対応しますが、/etc/xinetd.confでは複数行のエントリ段落が1つのアプリケーション・サーバに対応します。また、/etc/inetd.confのサーバのエントリ行がコメント(先頭に#)行でない限り、そのアプリケーション・ポート番号に着信のあったサービスがinetdから呼び出されます。一方、xinetdの場合には、disable=yes行があるサービスやdisabledで指定されたサービス以外について呼び出しが行われます。

図25 スーパー・サーバ設定ファイルの例
なお、inetd/xinetdの設定ファイル内のサーバのサービス名称は、/etc/servicesファイルにあるエントリの名称です。例えば、telnetサーバはtelnetです。
(1)DNS
DNS(Domain Name System)は、TCP/IPネットワークでの名前解決サービスを提供するサーバ・アプリケーションです。名前解決とは、ホスト名やドメイン名からIPアドレスへ変換する、あるいはその逆に、IPアドレスからホスト名やドメイン名に変換することです。TCP/IPネットワークでは、インターネット層のモジュールであるIPモジュールは、IPアドレスでしかホストを識別できません。
そこで、例えば、ネットワークのアプリケーションがhost1.hogehoge.co.jpというコンピュータにアクセスしようとした場合、host1.hogehoge.co.jpがどのようなIPアドレスであるかを決定して、IPモジュールがそのIPアドレスにアクセス・データを送信することになります。
DNSは図26のようなコンポーネントから構成されます。名前解決サービスを提供するDNSサーバには、サーバのデーモン・プロセスとして動作するネーム・サーバと、ネームサーバが参照するDNSゾーンファイルがあります。一方、名前解決を依頼するDNSクライアントには、問い合わせを行うレゾルバがあります(DNSサーバが稼働しているシステムのアプリケーションも名前解決が必要なDNSクライアントであるため、そのシステムもレゾルバを持ちます)。

図26 DNSのコンポーネント構成
こうした名前解決を行うネーム・サーバは、ドメインに必ず最低一つあります。以下にこうしたネーム・サーバの代表例であるBINDを使用した名前解決の具体的な手順を説明します。
通信を行おうとするアプリケーション(DNSクライアント)は、通信相手の名前解決のために図27のようにDNSへの問い合わせを行います。ここでは例として通信相手を「host1.hogehoge.co.jp」とします。

図27 DNSクライアントの名前解決の問い合わせ
最初に、/etc/host.confを見ます。このファイルは名前解決変換機能の検索順序を指定したもので、図のように「host、bind」の順になっていれば、最初にhostsファイル(/etc/hosts、「ホスト・データベース・ファイル」という)を見に行きます。このhostsファイルには既知のホストの、ホスト名とIPアドレスがペアになったエントリを記述しておきます。この中に通信相手ホストの「host1.hogehoge.co.jp」という名前があればそのIPアドレスを得て、名前解決したことになります。
しかし、もしなければ、ネーム・サーバによる解決を行わなければなりません。そして、/etc/resolve.confというネーム・サーバ(のIPアドレス)の検索順序を指定したファイルを見に行きます。そしてそこに指定されたネーム・サーバのIPアドレスに対して、DNSの名前解決要求を送信します。図には描かれていませんが、問い合わせ先のネーム・サーバに「host1.hogehoge.co.jp」というドメインを管理しているネーム・サーバ(のIPアドレス)を教えてもらい、再度その「hogehoge.co.jp」ドメインのネーム・サーバに「host1.hogehoge.co.jp」のIPアドレス解決を依頼することになります。
従って、よく通信を行う相手については、hostsファイルにホスト名とIPアドレスを登録しておくと通信がスムーズになります。しかし、その反面、IPアドレスがよく変わるホストであると、hostsファイルの変更を頻繁に行わなければならないので面倒になります。なお、/etc/host.confと/etc/resolv.confの2つのファイルをレゾルバ構成ファイルといいます。
また、Windowsシステムの場合には、hostsファイルはシステム・ドライブの\windows\hosts(拡張子なし、Windows98/Me系の場合)で、/etc/resolv.confに対応するものは、TCP/IPネットワークのDNS設定です。そして、名前解決の検索順序は、必ずhosts、DNSの順です。
DNSクライアントからの名前解決要求をうけたDNSサーバは、図28のようにその応答を返します。hogehoge.co.jpドメインのネーム・サーバは、host1.
hogehoge.co.jpという名前のホストのIPアドレスを得るために、最初に、/etc/named.confというnamedブートファイルを見ます。このブートファイルには、そのゾーン(ドメイン、ここではhogehoge.co.jp)のゾーン情報を格納したゾーン・ファイルの格納ディレクトリやファイル名などの情報が記述されています。

図28 DNSサーバの名前解決への応答
ここではhost1のIPアドレスを調べるために、名前からIPアドレスへの変換情報があるゾーン・ファイル(これを「正引きゾーンファイル」という)を見に行きます。正引きゾーンファイルには、hostsファイルとよく似たエントリがありますが、DNSプロトコルに規定されている形式で記述されています。
図29は正引きゾーン・ファイルの例です。ゾーンファイルの先頭付近にある「SOA」レコード(DNSの各情報エントリ行)には、サーバ名や管理者のアドレス、そしてセカンダリ・ネーム・サーバへの情報であるリフレッシュ(更新)間隔や送信再試行回数、有効時間などを指定します。また、NSレコード(IN
NS行、INはInternet)は、そのドメイン(ここではhogehoge.co.jp)のネーム・サーバの名前を一つ以上指定します。

図29 正引きゾーン・ファイルの例
これ以降のAレコードは名前に対するIPアドレスを、MXレコードはそのドメインのメール・サーバの名前を、そして、CNAMEレコードは、名前がその行の右側の名前の別名であることを示しています。ここでは、host1のIPアドレスが「256.257.258.259」ということなので、このネーム・サーバはこの値を、問い合わせ元のDNSクライアントに回答することになります。
逆にIPアドレスからホスト名への変換の場合には、逆引きゾーン・ファイルが使用されます。図30にその例を示します。SOAレコードやNSレコードは正引きゾーン・ファイルと同じですが、PTRレコードが異なります。PTRレコードはIPアドレスからホスト名を導き出すものです。

図30 逆引きゾーン・ファイルの例
なお、ホスト名をFQDN(Fully Qualified Domain Name、完全修飾ドメイン名)で記述するという場合には、ホスト名をドメイン名とともに用いて、「host1.hogehoge.co.jp」というように記述しなければなりません。
(2)メール
図31にメール・サーバの仕組みを示します。メール・サーバには4つの基本的な機能があります。メール・クライアントからメール・メッセージの送信を受け付ける機能、該当するドメインのメール・サーバへ送信する機能、逆に外部ドメインのメール・サーバからのメール・メッセージの受信を受け付ける機能、そして、自ドメインのユーザ(メール・ボックス)が自分宛のメール・メッセージをダウンロード(受信)できるようにする機能です。

図31 メール・サーバの仕組み
この4つの機能の内、最後の機能を除く機能は、SMTP(Simple Mail Transfer protocol)というプロトコルで行われます。一方、最後の機能のダウンロード機能はPOP3(Post Office Protocol Version3)というプロトコルで行われます。ここでは、SMTPメーラ(メール配送プログラム、メール・メッセージの送受信およびメール・ボックスへの配信などを行うプログラム)として広く使用されているsendmailでの手順とPOP3の設定などを説明します。なお、メールの受信にはIMAP4が用いられる場合もあります。
ユーザが電子メール(e-mail)を送る場合、図32に示すようにまずメール・コマンドによってユーザ・インタフェース・プログラム(例えばBSDではMail、SYSTEM-Vではmailx)にメッセージを作成させます。作成されたメッセージはsendmailへ送られます。sendmailはsendmail.cfといメール処理用の情報ファイルを見ながら、メッセージの解析、経路の選択、およびメーラの選定を行います。

図32 メール送受信の仕組み
シリアル回線上で同様な働きをするものはuucpです。また、同一システム内ではローカルメーラ(procmail等)がメールの配達(宛先者のメールボックスへの)を行います。
なお、以上はローカルUNIXシステム上のユーザの例ですが、多くの場合、ネットワーク上のメールクライアント(特に、Windowsのメール・クライアント・ソフト)との間で、メール・メッセージの送受信処理を行うことになります。その場合、メール・メッセージの作成はメール・クライアアント・ソフトのメッセージ編集機能で行い、メール・サーバへの送信にはSMTP機能で行います。一方、メール・メッセージの受信には、メール・クライアント・ソフトのPOP3機能で行うことになります。
これを整理すると次のようになります。
@メールコマンドによって、ユーザインタフェースがメール・メッセージを作成する。あるいは、ネットワーク上のメール・クライアント・ソフトで作成したメール・メッセージを、そのソフトのSMTP機能でメール・サーバへ送信する。
Asendmailがメールメッセージを受け取り、メッセージ処理を行いメーラを選定する。
Bメーラ(TCP/IP:SMTP、シリアル回線:uucp、同一システム内:ローカルメーラ)がメール・メッセージを配送する。そしてDへ。
C他ドメインの場合、メール・メッセージは他ドメインへ送られてそのドメインで(uucp経由での場合はrmailを介して)Aへ。
Dメールボックスへ配信されたメール・メッセージを、ユーザ・インタフェース(ローカルUNIXシステム上のユーザの場合)、あるいはメール・クライアアント・ソフト(ネットワーク上のメールクライアントの場合)によりメールを受信する。
メール・サーバが相手メール・サーバへメール・メッセージを送信する時には、最初に、宛先ドメイン名を見てそのドメインのDNSサーバに対して、相手ドメインのメール・サーバがどれか問い合わせを行います。このとき使用されるのが、正引きゾーン・ファイル内のMXレコードです。MXの右辺にある名前がメール・サーバの名前となります。そして、このメール・サーバに対してSMTP通信を開始します。
(3)WWWとプロクシー
プロクシー・サーバはインターネット上の同じWWWサーバの同じページのダウンロードが続けて発生した場合に、再度インターネットからページを取ってくるのではなく、このプロクシー・サーバが最初のダウンロード時にそのページを保存しておき、2度目以降のダウンロード要求にプロクシー・サーバが応答する仕組みです。図33にこの仕組みを示します。なお、WWWのプロクシー・サーバはWWWキャッシュなどと呼ばれることもあります。

図33 WWWサーバとプロクシー・サーバ
ここでは具体的な動作の例として、WWWサーバの代表例であるApacheと、プロクシー・サーバの代表例であるSquidを取り上げて説明します。なお、いずれも独立のデーモン・プロセスとして起動されます。
Apacheでは現在、設定ファイルがhttpd.confというファイル一つに集約されています。httpd.confは大きなファイルです。WWWブラウザからのアクセスを可能にするための設定自体は難しくありませんが、最近多くのハッキング行為がWWWサーバを対象とされていることを考えれば、セキュリティの設定も厳密に行わなければなりません。
その他、httpd.confの設定には、仮想ホスト設定(別ドメインのWWWサーバとしての機能設定)やSSI/CGI(Server Side Include/Common Gateway Interface)機能の設定、アクセス制御の設定など、様々な機能設定が可能です。
プロクシー・サーバのSquidの設定はsquid.confで行います。基本的な設定はWWWキャッシュ用のhttpポート(一般的には8080等を使用)、および様々なデータの格納の設定です。これらには、キャッシュ・ディレクトリのサイズや、アクセスのログ/キャッシュのログ/格納のログなどがあります。
こうしたログについては注意が必要です。というのは、このプロクシーのクライアントが多ければ多いほどログの大きさも非常に大きくなります。さらに、real-audioなどのようなマルチメディア・データのダウンロードは数秒に一度の割合でデータが行き交います。いずれにせよ、ログのローテーション(特に圧縮しての保存)は必須になります。
Squid.cofではこのほかに、プロクシー間の通信やアクセス制御の設定などを行うことができます。
(4)その他
telnetサーバやftpサーバは、UNIXシステムであれば必須のサービスです。これらは、スーパー・サーバのxinetd等から呼び出されるデーモン・プロセスとして稼働します。また、UNIXファイル・システムの共有を行うNFSやAppleTalkによるマッキントッシュPCとの間でファイル共有を行うnetatalk、Windowsとの間でファイル共有を行うsambaなどのファイル・サービスもあります。さらに、データベース・サーバやニュース・サーバ、DHCPサーバなどのサーバ・サービスも適宜用いられます。
UNIXの基本的なコマンドtelnetは、telnetサーバのtelnetd(telnetデーモン)に接続してログインし、リモート・システムから通常の端末処理を行う仮想端末機能です。また、同じような仮想端末処理機能を提供するものにrloginがあります。rloginは、あるシステム上のユーザがリモート・システムの同じユーザ名のアカウントにアクセスする場合に、ログイン処理(ログインとパスワード入力)を省略可能にさせる機能です。
この場合、リモート・システムの/etc/hosts.equivファイルにそのrloginを許可するホスト名が記述されていなければなりません。telnetは平文でユーザ認証(ログインやパスワード)を行うという問題点を持っています。また、ユーザ認証がないというrloginも問題です。
最近ではこうしたrloginはもちろんtelnetについても危険性が大きいので、その機能は停止させる傾向にあります。具体的な代替としてsshなどが利用され始めています。
ftpはファイル転送の代表的なものですが、ユーザとしては、そのサーバにアカウントを持つ一般ユーザ(リアル・ユーザ)、ファイルのダウンロードだけしかできない匿名ユーザ(anonymousユーザ)、逆にアップロード専用のユーザ(ゲスト・ユーザ)の3種類があります。
ftpの設定ファイルには、アクセス制御設定、禁止ユーザ設定、禁止ホスト設定、圧縮転送の設定などがあります。特に、外部からのアクセスやrootなどの特殊ユーザのアクセスについては慎重な設定が必要です。
NFS(Network File System)は、SUN社の代表的なネットワーク上のファイル共有システムです。/etc/exportsファイルにNFSで利用可能なファイル・システムおよび利用可能なシステム名(と許可属性。r-読み、w-書き)を記述しておくことで、許可されたリモート・クライアント上で許可されたファイルシステムを自システムのディレクトリ・ツリーにマウントすれば、許可された属性で利用できます。
netatalkでは5つの設定ファイルによって、ネットワークや共有するディレクトリ、ファイルの名前やアクセス属性、プリンタの属性、ファイル拡張子によるアプリケーションへの対応付け等を設定して、マッキントッシュ(netatalkクライアント)機からのアクセスを可能にします。
sambaは、WindowsのNetBEUIネットワーク機器をUNIXで実現するものです。sambaには2つのデーモン・プロセスがあります。一つはSMB(smbd:sambaサーバ・デーモン)で、もう一つがNMB(nmbd:NetBIOSネーム・デーモン)です。
SMBは、ファイルやプリンタの共有サービスをWindowsクライアントに提供します。また、NMBはNetBIOSの名前検索・参照サービスを提供します。SMBのための設定ファイルsmb.confではワークグループ名やホスト、ユーザのアクセス制御設定、プリンタの設定などを行います。
一方、NMBのための設定は、lmhostsファイルで行います。lmhostsはWindowsのlmhostsファイルと同じで、IPアドレスとNetBIOS名がペアになったリストです。
さらに、Windowsのパスワードは暗号化して送られてくるので、そのための暗号化パスワードファイルsmbpasswdを作成する必要があります。なお、UNIX側からWindowsにアクセスするためのsmbclientというプログラムもあります。
データベース・サーバとして代表的なものはPostgreSQLですが、設定はpg_hba.confファイルでアクセス制御設定を行うことと、データベースの初期化やユーザ登録を行うことです。
ニュースサーバの代表例はINN(InterNetNews)です。設定は多少大変です。サ−バ/ドメイン/組織の名称設定、ニュース・サーバのIPアドレス設定、アクセス・ユーザ/ホスト/属性の制御設定、ニュースの配送・中継設定、ニュースの有効期間設定などの基本的な設定の他にも、activeファイル(ニュース・グループ最新情報)やhistoryファイル(ニュース記録)の設定、一般ニュースグループの作成などを行う必要があります。特に外部ニュース・サーバとの連携を行う場合には、詳細かつ正確な設定が必要になります。
DHCPサーバ(dhcpd)は、ネットワーク上のシステムに対してIPアドレスを動的に割り当てるサービスです。dhcpdの設定はdhcpd.confで行います。設定項目は、DHCPサーバのホスト名やドメイン名、ネーム・サーバのIPアドレス、サブネット・マスク、リース期間(有効期間)、IPアドレスの割り当て範囲などです。なお、特定のEthernetアドレス(MACアドレス)に特定のIPアドレスを固定的に割り当てることも可能です。
インターネットの初期はシリアル通信のuucpの利用が盛んでしたが、インターネットの発達とともに、uucp接続は少なくなり、シリアル通信はもっぱら外部からの公衆回線経由でのtelnet接続が主になりました。特に研究所や開発部のシステムにモデムなどの通信機器を接続して、週末などに自宅からアクセスするようなことも一部では行われています。
UNIXのttyポートは非同期(あるいはRS232Cと呼ばれる)通信のためのハードウェア・インタフェースで、ttysとかttylabなどというファイルでそのポートの属性を定義します。実際に使用される論理デバイスは/dev/tty??(??はポート番号など)というもので、これに対してI/Oが行われます。
ttyポートでのI/Oで重要なことは、ttyポートからの入力時にCR(Returnキー)を押すまで入力データが読み込まれないcookedモード、1文字を入力した時点にすぐ読みとり、割り込みなどの処理も行うcbreakモード、1文字を入力した時点にすぐ読みとるが割り込みなどの特別な処理を行わないrawモードの3種類があることです。こうした端末モードによって、様々なアプリケーションに対応できるようになっています。
また、端末のI/OにはブロッキングI/Oと非ブロッキングI/Oとがあります。これは、端末の入力処理時には、入力命令がデータ入力の割り込み信号発生まで待つ(ブロッキング)か待たない(非ブロッキング)かという違いで、出力処理時には、実際のデータ出力を出力バッファが満杯になるまで待つ(ブロッキング)か待たずにすぐ行う(非ブロッキング)かの違いです。
端末の属性の設定には他にもRS232C信号やエコー・バック、スタート/ストップ・ビット、パリティおよびデータ(のビット)幅、復帰・改行文字の取り扱い、フロー制御(データ送受信のタイミング合わせ)、通信速度など数多くの設定があります。
ログイン着信を受け付けるttyポートにはgettyプログラムを前もって動作させておくことが必要です。リモートからの公衆回線経由の接続を受け付けるttyポートでは、回線が切断された場合そのログイン・セッションを終了させる必要があります。さもないと次に接続してきたユーザがそのセッションを継続してしまいます。回線のCD(キャリア検出)信号を監視し、CD信号が落ちたらセッションをクローズさせる設定にしておく必要があります。
uucpはUnix to Unix Copyの略で、非同期シリアル回線上でのUNIXシステム間のファイル転送を行うためのプログラム(プロトコル)です。リモートでのコマンド実行もサポートするバッチ型通信となります。
UUCPのソフトウェアは、実際のファイル転送を行うuucicoとその上で実行されるアプリケーション群(バッチ型ファイル転送uucp、リモート・システム上でのコマンド型のバッチ型実行uux、連結しているuucpシステム・ネットワークでのファイルを転送uusend、uucpで利用するスプールファイルのクリアuuclean、uucpシステム名の表示uuname、ログ出力uulopg、uucpステータス表示uusnap、uucpキューの表示uuq、テキスト・バイナリ変換uuencode/uudecodeなど)からできています。図34にuucpのソフトウェア構成を示します。

図34 UUCPのソフトウェア構成
また、シリアル・ネットワーク上でのメールの送受信のためにもuucpが使われています。uucpは転送の際、uucpシステムファイルに格納してあるシステム名やログイン・接続手順、ファイルアクセス情報などを使用すると同時に、転送ファイルの一時格納ファイル、ログ・作業用ファイル、ステータス、UUCP実行中のロック(ttyポートや相手システムへの重複アクセス防止)用ファイルなどをスプールディレクトリに確保します。
ローカル側のマスターuucicoは相手システムにログインし、ログインシェル(ログイン時に自動的に起動するプログラム)であるリモート(スレーブ)uucicoと通信しながらデータ転送をします。
現在のWindowsには、Windows 95/98/Meのようなパーソナルユース用のOSとWindows NT/2000のようなビジネスユース用のOSがあります。パーソナルユースのOSはもっぱらクライアント用に使用されますが、Windows NT/2000にはサーバ用とクライアント用(Windows NTワークステーションとWindows 2000プロフェッショナル)とがあります。Windows XPはWindows 2000プロフェッショナルの後継の位置づけですが、パワーユーザ向けのWindows XPホームエディションもあります。
Windowsのネットワーク形態としては、図35に示すようにクライアント・サーバ型のドメインとピア・ツー・ピア型のワークグループの2つがありますが、Windowsドメインではその中心にWindowsNT/2000サーバが位置しています。

図35 ドメインとワークグループ
一方、Windows 95/98/MeやWindows NTワークステーション/Windows 2000プロフェッショナルなどはドメインのクライアントとして動作すると同時に、ファイル共有などによるピア・ツー・ピアの通信を行います。共有ファイルを提供する側がサーバでそこのアクセスする側がクライアントとなるような、「その時々の」クライアント・サーバ型でもあります。
ドメインにはそのドメインのアカウント情報を持つプライマリのドメイン・コントローラ(PDC)が1台と、バックアップ用のドメイン・コントローラ(BDC)が複数台あります。また、複数のドメイン間には、一つのドメインのアカウント情報が別のドメインでも通用する「信頼関係」を設定することが可能です。
信頼関係とは、信頼される側のドメインのアカウント情報が信頼するドメイン内で通用する、という方向性を持つ関係と言うことができます。これらのPDC、BDCという二重化されたサーバの制御と信頼関係による階層化によって、Windowsドメインのネットワークの信頼関係が保たれています。
この信頼関係によって、Windowsドメイン・ネットワークは図36に示すように4つのドメイン・モデルに分類されます。1つのドメインから構成されるシングル・ドメイン、複数リソースのドメイン個々の管理者を除くネットワーク全体のアカウント情報を、1つのドメイン(マスタ・ドメイン)で集中的に管理し、各リソース・ドメインはそのドメインを信頼するマスタ・ドメイン・モデル、複数のマスタ・ドメインで管理されるマルチマスタ・ドメイン・モデル、および個々のドメインがそれぞれ双方向に信頼関係を持つ完全信頼モデルです。

図36 ドメイン・モデル
アカウント情報はユーザ情報で、ユーザのアカウントとユーザ・グループのアカウントがあります。また、この2つそれぞれについてローカルとグローバルの種別があります。ローカル・アカウントは登録されているドメイン内でしか通用しませんが、グローバル・アカウントは登録ドメインが信頼されているドメイン内でも使用可能です。
Windows NT(以降NT)/2000のネットワークは図37のような構造を持っています。トランスポートおよびネットワークのプロトコルとしては、インターネットのTCP/IPとWindowsのNetBEUIが中心です。この階層構造を下から見ていくと、OEM(Original
Equipment Manufacturer)ベンダが提供するNIC(Network
Interface Card)およびネットワーク・ドライバはNDIS(Network
Driver Interface Specification)やTCP/IP、NetWare、DLC(Data
Link Control)などのネットワーク・プロトコルをサポートします。

図37 Windows NTのネットワーク構造
なお、NDISは、異なるネットワーク・ドライバに対して上位のプロトコル/モジュールが共通のインタフェースでアクセスできるようにするための、標準のインタフェース仕様です。
アプリケーションは、ネットワーク・プロトコルをNetBIOSやWinSock(Windows Socket)などのAPIによって利用することになりますが、APIとネットワーク・プロトコルのインタフェースはTDI(Transport Driver Interface)と呼ばれる共通インタフェースです。WinSockはTCP/IPネットワーク上のアプリケーション間で通信を行うためのソケットAPIで、IPアドレスとポート番号の組で処理します。
NetBEUI/NetBIOSは、IBMが1984年に発表したパソコンLANのためのネットワークプロトコルで、Windowsネットワークの最も重要な基盤プロトコルとして利用されてきました。セション層APIがNetBIOSとなり、その下のネットワーク部分までがNetBEUIになります。従って、TCP/IP上でNetBIOSインタフェースをとることができます。ただし、NetBEUIはルーティングが不可能なプロトコルであるため、LANのセグメント内でしか使用できません。
NetWareはノベル社のネットワークOSで、IPXはTCP/IPのIPに、SPXはTCPに、それぞれ相当するプロトコルです。また、DLC(Data Link Control)はIBM汎用機にアクセスするためのプロトコルです。
NTのネットワークプロトコルは、下はNDISでNIC/ネットワークドライバとインタフェースし、上はTDIでAPIやアプリケーションとインタフェースしています。いずれもNTとOEM製品やISV(Independent Software Provider)ソフトウェアとの間のインタフェースをそれぞれ共通化するためのものです。
NTのアプリケーションプロトコルとしては、TCP/IP上のプロトコル(SMTP/DNS/DHCPなど)の他にも、DHCPおよびDNSと連携してコンピュータ名とIPアドレスとを動的に管理するWINSや、サーバ資源にメッセージ形式でアクセスするSMBなどのプロトコルが利用されます。
また、APIとしてはWinSockの他にも、モデム機器の制御を行えるTAPI(Telephony API)やデータ暗号化のためのCAPI(Cryptography API)、ビデオ/サウンド制御のためのマルチメディアAPI、ネットワーク上の分散コンポーネントのためのDCOM(Distributed Component Object Model)、Windowsのメール操作のためのWMS(Windows Messaging Subsystem)などもあります。
(1)インターネット
表10にNTサーバのインターネット機能を示します。TCP/IPの基本プロトコルであるIP、TCP、UDPを中核として、ダイアルアップ・アクセス用のPPP、DHCP、DNS、Windows独自のWINS、マイクロソフトのPPTP等がサポートされます。
表10 NTサーバのインターネット関係機能一覧
| PPP | リモートアクセス用ポイントーポイントプロトコル |
| SLIP | 非同期シリアル接続用 |
| WINS | Windowsホスト名とIPアドレスとの動的対応 |
| MPR | マルチプロトコル・ルータ |
| マルチリンクPPP | 複数回線の統合 |
| PPTP | 広域ネットワーク経由のトンネル接続用 |
| DHCP | 動的アドレス割り当て |
| DNS | ネームサーバ |
| 基本TCP/IP | TCP、UDP、IP、ICMP |
TCP/IPプロトコルでリモート・アクセスするために、データリンク層プロトコルであるPPPが提供されています。ダイアルアップ・アクセス時、PPPで認証が行われた後にTCP/IPが動作します。なお、非同期シリアル接続のためのSLIP(Serial Line IP)もサポートされます。
WINSは、Windowsネットワーク上のホスト名とIPアドレスの結び付けを行うものですが、DHCPはWINSに対して、DHCPが行ったアドレスの変更情報を通知します。そのため、WINS内のホスト名とIPアドレスのペア情報は常に最新となります。
DNSは通常、ホスト名とIPアドレスを静的に管理しますが、WINSと統合することで動的な管理が可能になります。つまり図38に示すように、DHCPでの動的なIPアドレスの割り振りと連携した、ホスト名とIPアドレスの動的なマッピングを提供するWINSが、DNSデータベースの動的な管理を行うのです。

図38 DNS/WINSの統合
MPR(Multi Protocol Router)はIP、IPX、AppleTalkのLAN間接続ルータとして機能するものです。RASサーバ経由でのRASクライアントからLANへのアクセスや、RIP(Routing Information Protocol)によるLAN間ルーティングなどが可能になります。
マルチリンクPPP機能は、NTサーバがRASに対してマルチリンクPPPで複数回線を集めて同時通信させることによって、合計した帯域幅(伝送速度)の通信を得ることができます。例えば、ISDNのBチャネル(64kbps)を2つ使って128kbpsとしたり、モデム(56kbps)2台(電話回線2つ)で112kbpsとしたりすることが可能です。
PPTP(Point-to-Point Tunneling Protocol)は、PPPパケットをカプセル化して送るプロトコルで、インターネットなどの広域ネットワークを経由して間接的にエンド・ツー・エンドでPPPによる通信を行います。NTサーバでは、これをRASを使ったダイアルアップ・クライアントとサーバ間のインターネット経由の転送ネットワークとして使用します。
PPTPによって、スタンドアローンPCなどのダイアルアップPCは、マルチプロトコル(TCP/IP、IPX、NetBEUI)のPPP送信が可能です。そしてクライアントは、インターネットなどを仮想の自社網(VPN)として活用できることになります。
考えられる形態としては以下のようなものがあります。
@スタンドアローンのダイアルアップRASクライアントからPPP接続し、インターネット上でPPTPを経由してLAN(IP/IPX)上のRASサーバにアクセスする。
ALAN(IP/IPX)上のダイアルアップRASクライアントからインターネットを経由して、PPTPでリモートLAN(IP/IPX)上のRASサーバにアクセスする。
(2)インターネット関連アプリケーション・サーバ他
インターネット関連アプリケーション・サーバとしては、IIS(Internet Information Server)やExchangeサーバがあります。また、NTサーバ上の一般アプリケーションサーバとしてはSQL(Structured Query Language)サーバ、SMS(System Management Server)、SNA(System Network Architecture)サーバがあります。さらに、分散環境ネットワークなどの機能として、RASやNDS、DCOM等があります。
IISはNTサーバ対応のWWWサーバです。WWW/FTP/Gopher等のためのInternet Information Serverサービスと、サービス管理のためのInternet Service Managerから構成されています。
機能的には、WEBの設定・管理やUNIXからの移植の簡易化、NTセットアップへの統合、UNIX標準のCGIやIIS標準のISAPI(Internet Service API)というWWWサーバ外部プログラム・インタフェース、データベース・サーバとの連係機能IDC(Internet Database Connector)等が提供されています。
マーチャント・サーバは電子商取引(EC)のためのサービス・サーバです。インデックス・サーバはIISの索引/検索インフラとして、IISと連動してHTMLファイルやワード、エクセルなどの文書中の指定語句による検索を行うことができます。
フロント・ページは、WWWサーバのHTML文書の作成/管理を簡単にするものです。インターネット・プロクシー・サーバは、インターネットとイントラネットの間のゲートウェイや各クライアントからの代理サーバとして、アプリケーション・レベルで対応します。
Windows 95/98/Meはピア・ツー・ピアの通信を提供する1つのネットワークOSであると同時に、Windows NTやNovellのNetWare、IBM汎用機など(サーバ)のクライアントになります。
図39にネットワーク構造を示します。ネットワークプロトコルとして、マイクロソフト社から提供される標準のもの(NetBEUI、TCP/IP、IPX/SPX互換プロトコル、DLC)の他に、その他のベンダから提供される以下のプロトコル(クライアント)も含まれます。
・(Banyan) VINES Ethernet/Token Ring
・(DEC) PATHWORKS Ethernet/Token Ring
・(Novell) IPX ODI
・(SunSoft) PC-NFS
また、クライアントとして広域のネットワークに接するための、以下のシリアル通信プロトコルも実装されています。
・PPP/PPTP、SLIP、非同期NetBEUI
PPPとSLIPはインターネット接続のために使われ、非同期NetBEUIはNTや2000のRAS(Remote Access Service:リモートからのダイアルアップアクセスに対する接続サービス)接続のために使われます。なお、PPTPはRAS経由でVPNにPPP接続するために使用されます。

図39 Windows 95/98/Meのネットワーク構造
@ピアリソース共有サービス
Windows同士のピア・ツー・ピア通信は、ファイルとプリンタの共有サービスで行います。この共有サービスはSMB(Server Message Block:サーバの資源にアクセスするためのメッセージ形式)を使用します。SMBはWindows
NTやWindows 2000等にも含まれているので、これらのサーバに対してもWindows95/98/Meは、そのクライアントとして共有サービスを使用することができます。
共有サービスを設定できるものにはプリンタ、ドライブ、ディレクトリ、ファイル、フォルダなどがあります。また、プリンタの1つとしてファクシミリ(FAXモデム)も共有可能です。
A共有サービスの設定
共有サービスを利用するためには、共有させる側と共有する側で以下のような設定を行わなければなりません。
・共有サービスの利用者:「Microsoftネットワーククライアント」を使用する
・共有サービスの提供者:「Microsoftネットワーク共有サービス」を提供する、「ファイルを共有できるようにする」、「プリンタを共有できるようにする」、対象リソースを「共有する」
Bアクセス・セキュリティ
Windows NT/2000ドメインに接続したWindowsクライアントでは、Windows NT/2000ドメインコントローラ上でユーザレベルのセキュリティ管理が行われますが、Windowsのピア・ツー・ピアネットワークでは、ピア・ツー・ピアの共有を行う共有ディレクトリや共有プリンタに関連づけられます(そのシステム内で管理される)。
Cその他
いくつかのプロトコルが付随的に使用されます。TCP/IPでは、DNS、DHCPおよびWINSが利用可能です。Outlook/Outlook Expressでは、POP3およびSMTPによるメール・メッセージ送受信を行いますが、SSL(Secure
Sockets Layer)による暗号化送受信やSASL(Simple Authentication and Security Layer)によるユーザ認証を使用することもできます。
また、SLIPではCSLIP(Compressed SLIP:ヘッダを圧縮して通信する圧縮SLIP)も利用可能です。さらに、PPPのLCP(Link
Control Protocol)での認証では、PAP、SPAP等がサポートされています。
・PAP(Password Authentification Protocol):リンク確立時に文字形式の双方向認証を行う。
・SPAP(Shiva Password Authentification Protocol):ShivaRover社のNetWare用の認証。
現在のマルチメディア・ネットワークは、動画像およびストリーミングを中心に動いています。ストリーミングの基本的な技術に画像の符号化と送受信技術があります。リアルタイム性を重視したリアルタイム・ストリーミング技術は、送受信側で同期を取りながらリアルタイムに動画像伝送を行うものです。
これらの技術の内、画像の符号化の最新基本技術がMPEG-4です。一方、動画像のリアルタイム送受信の最新技術がRTP/RTSP(Real Time Protocol/Real Time Streaming Protocol)です。
(1)符号化技術の3要素
画像のデジタル符号化技術は、「変換」技術、「圧縮」技術、「量子化」技術の3要素技術から構成されています。情報のやりとりを行う送受信手順では、一般に符号化と逆符号化(復号)とがペアとなります。情報を符号化して送信し、相手方で情報を解釈するために逆変換します。
「変換」には「逆変換」、「圧縮」には「解凍」や「展開」(あるいは「伸張」)、「量子化」には「逆量子化」が対応します。例外として、データや相手などの認証や送受信のエラー検出などでは、「一方通行関数(同じ手順の処理)」によって、「逆」処理ではなく「同」処理が行われます。
例えば、クライアントから入力された平文のパスワードを暗号化し、その暗号文とサーバのパスワードファイル内に蓄積されている暗号化されたパスワードを比較・認証する場合の暗号化認証処理です。暗号文から平文へ逆変換することが至難であり、かつ平文と暗号文とが1対1対応する関数が使用されます。
変換技術は、異なる2つの符号世界の橋渡しのために、コミュニケーション相手(他のネッットワークやシステムなど)やインタフェースの相手(同じシステム内の隣り合ったモジュールや装置など)などの別の相手に対して情報提供する場合に使用されます。代表的な具体例は、内部文字コード変換や日本語コード変換などです。
圧縮技術は、連続した同じ情報値や出現頻度の高い情報値など、情報全体に占める割合が高い情報値に着目して、その情報値の格納幅を縮めた表現幅を持つ代替値(およびその制限値)で置き換えする技術です。ディスク領域節約のためのファイルの圧縮や、帯域の狭い(低速度の)伝送回線に大きな情報を送るための情報圧縮がその代表例です。
量子化技術は、従来の電気通信分野ではサンプリングと呼ばれる情報の標本化(抜き取り)処理で使われています。代表的なものが音声帯域信号をデジタル化するために使用されるパルス符号変調PCM方式です。PCMでは、アナログの連続した数値をデジタルの断続的な数値で近似させて、アナログ信号をデジタル信号で表現します。つまり、量子化技術とはアナログ数値情報をデジタル数値情報で近似させる処理技術です。
画像処理の分野では特にQuantization(量子化)といい、一定領域の画像情報をある特定の値(量子化幅とか量子化ステップといい、文字Qで表す)で割って近似して表現します。
(2)3次元要素(平面、空間、時間)
マルチメディア画像の圧縮符号化は、画像量子化の技術をさらに「平面的」あるいは「空間的、階層的」な観点から処理していきます。つまり、デジタル情報符号化を平面図形と空間図形の圧縮としてとらえるわけです。これが静止画圧縮符号化の基礎ですが、動画像圧縮符号化では、さらに「時間的な」とらえ方を追加することになります。
画像符号化では、一定領域(「画素ブロック」という。8×8画素ブロックや16×16画素ブロックが使用される)の輝度(明るさ)と2つの色差(色。赤と青)という合計3つの信号値を量子化した数値を使用します。これが平面的な処理です。
また、静止画像の処理には、画面内の色合いを元にいくつかの画面イメージの組み合わせに分解したとき、画素(画面内の画面情報構成の基本単位)間の相関関係による圧縮符号化技術、および符号の出現頻度(確率)の偏りによる圧縮符号化技術が使用されています。
つまり、一つの領域の画像は色合いの異なるいくつかの画面イメージに分解した画像の重ね合わせ情報で表現可能となります。これが、一つの画面をいくつかの画面イメージに階層化する考え方で、DCT(Discrete Cosine Transform:離散コサイン変換)と呼ばれる手法です。
これらの画面イメージ情報を一定の値で量子化(除算で余りを捨てる近似計算)すること、そして符号の出現頻度の大きいもの順に情報の占有幅の狭い代替符号(より短いコード)で代替する(「ハフマン符号化」という)ことによって、情報(量の)圧縮が図られます。
この代替後の符号は可変長となるため、こうした方式を可変長符号化VLC(Variable
Length Coding)といいます。この方式の概念を図40に示します。静止画像圧縮符号化の標準であるJPEG(Joint
Photographic Coding Experts Group)では、これらの技術がベースになっています。

図40 可変長符号化(ハフマン符号化)の概念
動画像処理では、さらに時間的な処理が加えられます。図41に示すように、ある画面(フレーム)と次の時点の画面とは似通っており、画面間の相関関係によって、理論的には前画面情報と次の画面との差分(動き)のみ情報を送れば復元可能になります。さらに図42に示すように、フレーム間の予測を前方向、後ろ方向、双方向に行えば精度が上がります。これがフレーム間の動き予測と動き補償機能です。

図41 フレーム間の動きによる差分情報

図42 フレーム間の予測
MPEGを初めとする動画像圧