Webアプリ開発事始 第2回

TCP/IPネットワークとWebアプリケーションの基礎(2)
~クライアント・サーバー方式とTCP/IPプロトコル
長谷川裕行
有限会社 手國堂

TCP/IPプロトコルの基本

ネットワークでコンピュータ同士が情報を交換するには、そのための共通手順が必要になります。それがプロトコルです。TCP/IPネットワークでは、言うまでもなくTCP/IPプロトコルが用いられます。


- 主なプロトコル -

ネットワークでは、TCP/IP以外にも様々なプロトコルが用いられます。主なプロトコルを、簡単に紹介しておきましょう。

TCP/IP
“Transmission Control Protocol/Internet Protocol”の略で、インターネットの標準プロトコルとなっています。
多数の機器を広範囲に接続することが可能で、その実力はインターネットが実証しています。詳細は後述します。
NetBEUI
“NetBIOS Extended User Interface”の略です。IBM社の提唱するNetBIOSという規約を拡張したもので、マイクロソフト社のLAN Managerを経てWindowsの標準プロトコルとなっています。
構造が単純なため処理速度は速いのですが、大規模なネットワークでは利用できません。
IPX/SPX
“Internetwork Packet Exchange/Sequenced Packet Exchange”の略です。
ノベル社のネットワークOS・NetWareで用いられているプロトコルで、複数のネットワークを結んだ広範囲な接続が可能です。
AppleTalk
アップル社のMacOSで利用されているプロトコルです。Macintosh同士を接続するためのハードウェアとソフトウェアを含む、ネットワーク・システムの総称としても使われます。


- 複数のプロトコルを使える -

プロトコルはコンピュータ同士の通信規約であり、そのためのソフトウェアさえあれば異なる機種やOSでも互いに通信できます。そのためのソフトウェアとは、要するにドライバです。

例えばWindowsでは、標準のプロトコルはNetBEUIですが、コントロールパネルの「ネットワーク」アプレットでTCP/IPを追加すればTCP/IPが利用できるようになってインターネットへの接続が可能となり、IPX/SPXを追加すればNetWareのクライアントとして機能するようになります。

Windows 2000 ProfessionalにはAppleTalkも標準で含まれているため、インストールすればAppleTalkのクライアントになれます。Windows 2000 ServerはAppleTalkのサーバーになることも可能で、WindowsとMacOSの混在環境で威力を発揮します。

このように、1つのOS上で複数のプロトコルをインストールして使い分けることが可能なので、1台のコンピュータを様々なネットワークに参加させることもできます。事実、基本ネットワークはNetBEUIで稼働させ、MacintoshとはAppleTalkで通信、さらにインターネットを利用するときはTCP/IP…と、プロトコルを複数使っている組織は多数存在します。


コンピュータ用語の「通信」と日常語の「通信」

コンピュータの世界でいう“通信”とは“機器同士が情報をやり取りすること”を指します。protocolの原義は“外交辞令、国家間の協定”です。

簡単に説明するために、プロトコルはコンピュータ同士の通信規約だと書きましたが、実際にはコンピュータとモデム、モデム同士にもプロトコルは存在しますし、ネットワークでファイルをやり取りする際の規約もプロトコルです。つまりプロトコルとは、“種類の違う機器またはソフトウェア同士が情報交換するための規約”です。

コンピュータやネットワークの世界では、よく「通信」という言葉が使われます。これは、英語の“communication”(コミュニケーション)の技術訳です。一般には、コミュニケーションは「意志疎通」などと受け取られますが、技術の世界では「機器同士の情報交換」を意味します。「情報伝達」ではなく「交換」まで含んだニュアンスと言うことに注意してください。

一方、communicationを訳した「通信」には、通常の感覚だと「情報伝送」のニュアンスしか含まれません。技術者は、この「通信」という言葉を「信号の行き来によって実現される情報交換」の意味で用いていることにも、注意しておくべきでしょう。

一般に「通信」というと、電話や無線機などで信号をやり取りするイメージはあっても、それを受け取って処理する仕組みにまで考えは及びません。技術用語で「通信が確立する」とは、双方が同じ手順で信号をやり取りできる状態となることを意味しています。日本の日常語としての「コミュニケーションが成立する」――一方がもう一方の、またはお互いがお互いの意志を理解し合う――というニュアンスではありません。単に「言葉が通じて互いにやり取りが可能となる」状態を指しています。


- 2つのプロトコル~TCPとIP -

TCPとIPの間には“/”記号が入っています。つまりTCP/IPは、TCPとIPという2つのプロトコルから成っているプロトコルなのです。

IPプロトコルは、ネットワーク上の特定の機器にデータを送達する仕組みを規定し、TCPプロトコルは、受け取ったデータが送信された時と同じ形となるための仕組みを提供します。

TCP/IPでは、大量のデータをパケット(packet:小荷物)と呼ばれる細切れの信号として送り出します。データの宛先は、IPアドレスと呼ばれる数値で指定されます。

個々のパケットは「データ全体の一部」です。そのため送出されるパケットには、宛先であるIPアドレスの他に「データ全体のどの部分であるか」を示す番号などの情報が“TCPヘッダ”として付け足されます。受信側の機器は、受け取ったパケットのTCPヘッダを元に、元のデータを復元します。

既に様々な書籍で紹介されているように、インターネットの原型となったARPAネットは、核攻撃でケーブルの一部が断線しても、その他の使用可能なケーブルを使ってデータをやり取りできることでした。

細切れのパケットとなっていることと、インターネットがクモの巣状のネットワークを使っていることは、この「ケーブルの断線に備えて、異なる経路を使用できる」という仕組みと関連しています。


- パケットの送出と復元 -

上述のような処理のために、複数の経路からそのとき利用可能な経路を選択する装置がルータ(router)です。

常に1つの経路だけを使っていると、特定の経路だけが混雑するなどの不均衡が生じ、データの送受信に支障を来します。そこで、データをパケットとして小分けし、とにかく空いている経路を使って次々に送り出します。こうすることによって無駄な混雑を避け、ネットワーク全体を効率的に使用できます。

インターネットでは、このようにして1つのデータが様々な経路を通って相手に届くことがあるため、受信側ではパケットの到着順がバラバラになる可能性もあります。

これを、送信側と同じ順序にして元の形に復元するのがTCPの機能であり、バラバラの経路を使っても1つの宛先に確実にパケットが届くよう、宛先に指定するのがIPアドレスの役目です。

これは、パソコンのパーツを小分けにして宅配便や小包で送る場合と似ています。10個に分けたら、箱には「1/10」「2/10」などと通し番号が打たれます。届け先にはバラバラに届くこともありますが、すべて届いた時点では子を並べ替え、組み立てれば元のパソコンが出来上がる――といった感じです。
図4:空いている経路を使って細切れのパケットを送出する

図5:バラバラのパケットを受信側で復元する



一極集中管理のクライアント・サーバー方式

クライアント・サーバー方式はホスト方式による集中管理の欠点をカバーする方策として生まれましたが、逆にホスト方式の利点である安全性を犠牲にした部分があります。

サーバーが多数存在し、ネットワークを自在に拡張できるため、ユーザーの管理がおろそかになると不正侵入の隙が生じます。拡張性ゆえにインターネットにまで発展した訳ですが、そのことによって不正侵入の間口も世界に開かれました。

そこで、厳然たるネットワーク管理によって安全性を高めた、新しいクライアント・サーバー方式のネットワークシステムが模索され始めました。その一例は、サン・マイクロシステムズ社の“San Ray”です(http://www.sun.co.jp/sunray/)。

セキュリティを重視してユーザーや機器の管理を1台のコンピュータに集約させるというスタイルなのですが、これは概念としてかつてのホスト方式に近いものであり、ネットワークの先祖返りとも見なせます。

以前、このシステムをテレビのニュース番組で「最新式のネットワーク・システム」として紹介していたのですが、それを観た年輩の技術者は「なつかしー」と呟いたそうです。


あとがき

今回は、TCP/IPプロトコルとWebサービスについてもっと深い部分まで取り上げたかったのですが、どうも最近はネットワークが身近になりすぎて、基本がよく理解されないまま高度な話に移行している感が否めないため、敢えて「基本の“きほん”」とも思えるネットワークの形態について説明しました。

IPアドレスとその管理の仕組み、Webサービスの基礎知識などについては、次回以降紹介していきますので、ご了承ください。


- 目次 -
ネットワークの原点
クライアント・サーバー方式のネットワーク
ネットワークと資源の共有
TCP/IPプロトコルの基本
主なプロトコル
複数のプロトコルを使える
コンピュータ用語の「通信」と日常語の「通信」(コラム)
2つのプロトコル~TCPとIP
パケットの送出と復元
一極集中管理のクライアント・サーバー方式(コラム)
あとがき

Copyright © MESCIUS inc. All rights reserved.