オルタナティブ・ブログ > IT雑貨屋、日々のつづり >

IT業界につとめる「雑貨屋(なんでも屋)」が、業界の事、情報セキュリティの事、趣味や日々雑感を綴っていきます。お暇な方はおつきあい下さい。

【NET技術.001】TCP/IPプロトコル

»

 佐藤@IT雑貨屋です。

 私がネットワークを最初に触れたのは、確か20代後半で今から30年近く前の事だと記憶しています。当時は「Netware」が全盛期の時代で、それを採用してC/S型のシステム開発に多少携わりました。またほぼ同時期に、某大学の学内教育関連のシステム開発ではMS-Windows/NTのシステムで、ネットワークはTCP/IPで構築し、その上でアプリケーションの開発を行いました。

 当時はイーサネットボードをPCに実装し、ディップスイッチでIPアドレス等を設定していた時代です。

 このTCP/IPですが、当時、知人のSEでAT&Tで仕事をしている人がいて、その人から多少教えられはしましたが、正直、内容はチンプンカンプンでした。

◆ネットワークとは
 まず「ネットワーク」について、もともとの意味は「網、網状」というネットという単語に、「仕事(Work)」という言葉がついて、Networkになったと言います。ここで言うネットワークとは、個々のコンピューターを通信回線で接続し、そこでデータのやり取りが出来る仕組みの事を言います。

 このネットワークがPC上で急速に普及したのは、やはりWindows95がリリースされてからではないでしょうか。Plug & Playという機能で、PCのイーサネットボードをソフトウェア上から設定して、簡易に利用できる機能をWindows95では提供していました。

 当初は社内のPCを、ネットワークで接続して個々が持っているデータを共有できる様なものが主流でした。これをプライベートネットワークと呼んでいました。このプライベートネットワークですが、HUB(中継機器)を介して拡大し、そこに外部からのインターネット回線(当初はISDNやADSLでしたが)がつながり、インターネットが急速に普及していきました。

 この辺りについては、皆さんも良くご存知の事だと思います。

◆プロトコル
 プロトコルとは、コンピュータ同士を接続する際、ネットワークを利用して通信するための手順を言います。このプロトコルを決めておく事により、メーカやCPUが異なり、OSが異なっていたとして、コンピューター同士は通信を行う事が出来ます。
 プライベートネットワークが主流であった頃には、このプロトコルは個々のもので十分利用する事が出来ましたが、先に紹介した様に、インターネット回線が普及しはじめた頃から、このプロトコルの標準化が求められるようになっていったのです。

◆プロトコルの標準化
 このプロトコルの標準化には、国際標準化機構のISO(International Organization for Standardization)は国際標準としてOSI(Open Systems Interconnection:開放型システム間相互接続)と呼ばれる通信体系を策定しました。
 また大学などの研究機関やIT業界が中心となって推進してきた団体であるIETF(Internet Engineering Task Force)では、インターネットの標準であるTCP/IP(Transmission Control Protocol/Internet Protocol)の提案や標準化作業を行っています。
 現在ではTCP/IPがインターネットのデファクトスタンダードであり、世界で広く使われている通信プロトコルとなっています。

◆OSI基本参照モデル
 一つのプロトコルに様々な役割を詰め込むと、処理がとても複雑になってしまう事から、このプロトコルを機能別に別けて階層化する事が提唱されました。そしてネットワーク通信に必要なプロトコルを7つの階層にわけてまとめたモデルがOSIにより考案されました。これがOSI基本参照モデルです。

 <ユーザー・アプリケーションなど>
 [ アプリケーション層]7層
 [プレゼンテーション層]6層
 [  セッション層  ]5層
 [ トランスポート層 ]4層
 [ ネットワーク層  ]3層
 [ データリンク層  ]2層
 [   物理層    ]1層
 <通信回線・ケーブル等>

 各層の役割について以下に説明します。

 ・アプリケーション層
  通信に使うアプリケーションです。WEBページを表示したり、メール送受信する等の
  実際の通信サービスで漁する機能を提供します。
 ・プレゼンテーション層
  データお表現方法を通信に適した形式にします。例えば画像ファイルをテキスト形式
  にしたり、データを圧縮するなどを行います。
 ・セッション層
  通信するプログラム間での会話(Session)を取り持ちます。データの流通する経路
  やコネクションの開始、終了を管理、同期をとったりします。
 ・トランスポート層
  コンピュータ内のどのアプリケーションと通信するか管理します。また品質を補完
  したり、通信の信頼性を確保します。
 ・ネットワーク層
  ネットワーク上でデータの開始と終了まで届くように管理します。ルータなどで
  ネットワーク間を結び、ルーティングを行うなど、データの中継を行います。
 ・データリンク層
  ネットワーク上でデータが直接接続された通信機器まで配送される様に管理します。
  通信機器側で信号の受け渡しを行います。データリンク層で作成されるパケットを
  フレームと呼びますが、このフレームが実際に通信路を流れるデータとなります。
 ・物理層
  物理的な接続を管理します。デジタルデータを電気信号に変換したり、光に変換
  したりします。

◆TCP/IPプロトコル群
 OSI基本参照モデルに準拠したモデルで、現在、一番普及しているのがICP/IPプロトコル群です。これはインターネット上で主に使用しているTCPとIPを中心に、実際のアプリケーションに実装する事を考えて作られたものです。
 以下にTCP/IPプロトコル群とOSI基本参照モデルの対比図を示します。

 <ユーザー・アプリケーションなど>
    TCP/IPプロトコル群       OSI基本参照モデル
[アプリケーション層      ]→[ アプリケーション層]7層
                  [プレゼンテーション層]6層
                  [  セッション層  ]5層
[トランスポート層       ]→[ トランスポート層 ]4層
[インターネット層       ]→[ ネットワーク層  ]3層
[ネットワークインターフェース層]→[ データリンク層  ]2層
                  [   物理層    ]1層
 <通信回線・ケーブル等>

 ・アプリケーション層
  OSI基本参照モデルのセッション層以上が相当します。アプリケーションプログラム
  の中で、それぞれのサービスを実行させる役割です。例えばWebページを閲覧する
  時には、クライアントはブラウザ、サーバにはWebサーバソフトが必要です。
  この時、クライアントとサーバの間でやり取りする際に用いられるプロトコルが
  HTTP(Hyper Text Transfer Protocol)です。
 ・トランスポート層
  OSI基本参照モデルのトランスポート層に該当します。代表的なプロトコルに、
  TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)の
  二つがあります。
 ・インターネット層
  OSI基本参照モデルのネットワーク層に該当します。代表的なプロトコルにIP
  (Internet Protocol)があります。
 ・ネットワークインターフェース層
  OSI基本参照モデルの物理層とデータリンク層に該当します。厳密には、物理層に
  岐東するものをハードウェアと捉えるので、ソフトウェアが実現する部分はこの
  ネットワークインターフェース層となります。TCP/IPプロトコル群では、例えば
  LANカードを挿入した場合、利用するためのドライバとなるソフトウェアなどが
  ネットワークインターフェース層に該当します。

 このTCP/IPプロトコル群は誰でも参加する事ができるIETF(Internet Engineering Task Force)という団体で決められています。ここではオープンな事が重要視されているので、プロトコルは全て公開されています。具体的なプロトコルの議論は誰もが参加できるメーリングリストを通じて行われます。そして仕様はRFC(Request For Comments)と呼ばれるドキュメントにまとめられ、インターネット上に公開されています。TCPについてはRFC793やRFC3168、HTTPについてはRFC2616となっています。

◆TCP/IPプロトコル群のパケット通信
 TCP/IPプロトコル群では、各階層で送信されるデータにヘッダと呼ばれる情報が付加されます。例えばアプリケーション層で作成されたデータをトランスポート層のTCPに送ると、TCPヘッダが付加されます。さらに、そのデータがインターネット層のIPに送ると、IPヘッダが付加されていきます。この様に上位層のデータをまとめてヘッダを付ける事をカプセル化と呼んでいます。

Comment(0)