next up previous contents
Next: ネットワークアドレス Up: ネットワークプログラムを書く Previous: ネットワークプログラムを書く

プログラミングに必要な概念

ネットワーク上のホストの間の通信はネットワーク上を行き来するメッセー ジによって行ないます。ソフトウエアの上からいうとプロセス間通信のところ で見てきたソケットによって通信をおこなう事になります。ですが実際にどの ような仕組みでデータのやり取りがなされるか知っておくことは重要です。

ネットワークの構造を理解するためのモデルにOSIの7階層モデルがあります。 このモデルでは次のような階層でネットワークをとらえます。

        7)アプリケーション層

        6)プレゼンテーション層

        5)セッション層

        4)トランスポート層

        3)ネットワーク層

        2)リンク層

        1)物理層

下から順に見ていきましょう。物理層はネットワークを構成する物質その物で す。Ethern etの場合はケーブルですしFDDIの場合は光ファイバーです。トラ ンシーバやコンセントレータといわれる装置などもこのレベルの存在です。物 理層を流れる信号の取り決めはリンク層で行います。例えばデータをEthernet ケーブルに送り込む手順やエラーの検出の方法を定めますが、まだデータを送 る枠組みだけです。ネットワーク層になるとアドレスの概念が生じます。アド レスにしたがってメッセージがルーティングされます。最も適切な道筋を通れ るように手配することをルーティングといいます。インターネットではIPアド レスを用いてルーティングされます。このプロトコルをインターネットプロト コル(IP)と呼びます。この段階では単にアドレス付きのデータが次々に送られ るだけです。トランスポート層に入ってはじめて計算機と計算機の関係が確立 します。トランスポートとはルーティングによって計算機同士の経路を決定し ます。インターネットではトランスミッションコントロールプロトコル(TCP) によってこれを行います。経路は決定されましたがまだ通信を開始したわけで はありません。一まとまりの通話はセッション層によって確立します。例えば telnetでログインしてからログアウトするまでの間セッションが確保されます。 セッションは接続を表わします。メッセージの枠組みまでは理解していますが、 個別のデータが何を意味しているかは知りません。telnetで送られている文字 が漢字であるのかローマ字であるのかと言ったことをみるのはプレゼンテーショ ン層です。メッセージのフォーマットをそれぞれの計算機が正しく理解できる ようにする部分です。アプリケーション層は文字どおりユーザのアプリケーショ ンとしてそれより下の層を利用するプログラムに該当します。実際には5-7層 は厳密に敷居を入れるのは難しく、一つのアプリケーションプログラムがこれ らの層をカバーしている場合が多いようです。

プログラミングの見地からすると、意識しなければならないのはトランスポー ト層から上です。TCPでは経路を確立してメッセージが順番に正しく送られる ことを確認しながら通信を行いますが、とくにその必要もない場合インターネッ トではハンドシェークを省略した簡易型転送も用意されています。ユーザデー タグラムプトロコル(UDP)と呼ばれています。こちらではメッセージが途中で 消えてしまったり、後から送ったメッセージが先についてしまったりもします。 アプリケーションによって使い分けることになります。

ユーザから見てネットワークはいくつもの計算機の集まりです。各々の計算 機は何らかのネットワークサービスを提供しています。telnetができることや ftpができることなどです。それらのサービスはTCP/IPの上に提供されていて、 ポートによって識別されます。すべてのサービスはTCPもしくはUDPによる接続 によって提供されるわけですが、そのポート番号で区別されるわけです。例え ばtelnetはTCPを用いてポート番号23を接続点として提供されます。この番号 の対応は/etc/servicesに記述されています。ユーザが自分のアプリケーショ ンを開発する場合ここにない番号のものを使うことになります。



next up previous contents
Next: ネットワークアドレス Up: ネットワークプログラムを書く Previous: ネットワークプログラムを書く



Kinya Hibino
Sun Jan 14 21:36:40 JST 1996