コンピュータネットワークの基礎 ① ネットワークの基本とプロトコル体系
ネットワークとは、複数のデバイス(コンピュータ、スマートフォン、サーバー、プリンターなど)が相互に接続され、情報やリソースを共有できるようにしたシステムのことを指します。これらのデバイスは、有線(イーサネットケーブルなど)または無線(Wi-Fi、Bluetoothなど)で接続されます。ネットワークを構築する目的は多岐にわたりますが、主なものとしては以下の点が挙げられます。
- 情報共有: ファイルやデータなどを複数のユーザー間で共有できます。
- リソース共有: プリンターやスキャナーなどの周辺機器を複数のユーザーで共有できます。
- 通信: 電子メールやメッセージングアプリなどを通じて、遠隔地のユーザーとコミュニケーションできます。
- 集中管理: 複数のデバイスを一元的に管理し、セキュリティや設定の変更などを効率的に行えます。
ネットワークには、家庭内の小規模なネットワーク(LAN: Local Area Network)から、都市や国をまたぐ大規模なネットワーク(WAN: Wide Area Network)、そしてインターネットのような世界規模のネットワークまで、様々な規模と種類が存在します。
ネットワークは規模や用途に応じてさらに分類されます。
- PAN(Personal Area Network): 数メートル以内の範囲で構築される個人用ネットワーク。BluetoothやUSB接続が代表例です。
- CAN(Campus Area Network): 大学や企業のキャンパス内にまたがる中規模なネットワーク。
- MAN(Metropolitan Area Network): 都市レベルでのネットワーク接続を提供し、複数のLANを広域的に接続します。
ネットワークにおいて、デバイス間の円滑なコミュニケーションを可能にするのが「プロトコル」です。プロトコルとは、通信を行う上で必要となる取り決めや手順を定めた規約の集合体のことです。人間が異なる言語を話す人同士でコミュニケーションを取る際に共通の言語や翻訳が必要なように、デバイスも共通のルールに基づいて情報をやり取りする必要があります。
プロトコルは、具体的に以下の内容を定義します。
- データ形式: 送信するデータの形式や構造。
- 送受信の手順: データをいつ、どのように送るか、また受信したデータをどのように処理するか。
- エラー処理: データ送信中にエラーが発生した場合の対応方法。
- セキュリティ: データの暗号化や認証など、安全な通信を確保するための仕組み。
例えば、ウェブサイトを閲覧する際にはHTTP(Hypertext Transfer Protocol)というプロトコルが使用され、電子メールの送受信にはSMTP(Simple Mail Transfer Protocol)やPOP3(Post Office Protocol 3)、IMAP(Internet Message Access Protocol)などが使われます。これらのプロトコルが存在することで、異なるメーカーのデバイスや異なるオペレーティングシステムを使用しているデバイス間でも、問題なく通信を行うことができるのです。
プロトコルはその目的によっていくつかのカテゴリに分かれます。
- 通信制御プロトコル: TCPやUDPなど、データの伝送方式や制御を担当します。
- アドレッシングプロトコル: IP(Internet Protocol)はネットワーク上のデバイスに一意のアドレスを割り当て、ルーティングを可能にします。
- 名前解決プロトコル: DNS(Domain Name System)はドメイン名をIPアドレスに変換します。
- 暗号化・セキュリティ関連プロトコル: HTTPS(HTTP over SSL/TLS)、SSH、IPSecなどは、安全な通信を提供するためのプロトコルです。
1-3. OSI参照モデルとTCP/IPモデルの概要
OSI参照モデル (Open Systems Interconnection Reference Model)
OSI参照モデルは、国際標準化機構(ISO)によって策定された、ネットワーク通信の機能とプロトコルを7つの階層に分類した理論的なモデルです。各層は特定の機能に責任を持ち、上位層は下位層のサービスを利用し、下位層にサービスを提供します。
- 第7層:アプリケーション層 (Application Layer):ユーザーが直接操作するアプリケーションの機能を提供します。(例:HTTP, FTP, SMTP)
- 第6層:プレゼンテーション層 (Presentation Layer):データの表現形式を変換し、異なるシステム間でのデータ交換を可能にします。(例:データ暗号化、データ圧縮)
- 第5層:セッション層 (Session Layer):通信セッションの確立、維持、終了を管理します。(例:セッション管理、同期)
- 第4層:トランスポート層 (Transport Layer):エンドツーエンドのデータ転送の信頼性を確保します。(例:TCP, UDP)
- 第3層:ネットワーク層 (Network Layer):異なるネットワーク間でのデータルーティングを担当します。(例:IP)
- 第2層:データリンク層 (Data Link Layer):隣接するノード間のデータ転送を管理し、物理層のエラーを検出・修正します。(例:Ethernet, Wi-Fi)
- 第1層:物理層 (Physical Layer):物理的な媒体(ケーブル、電波など)を介したビットデータの送受信を扱います。(例:ケーブルの種類、コネクタの形状)
TCP/IPモデル (Transmission Control Protocol/Internet Protocol Model)
TCP/IPモデルは、インターネットの基盤となっているプロトコル群をまとめたモデルです。OSI参照モデルよりもシンプルで、実用性を重視した4つの階層で構成されています。
- アプリケーション層 (Application Layer):OSI参照モデルのアプリケーション層、プレゼンテーション層、セッション層の機能をまとめて含みます。(例:HTTP, FTP, SMTP, DNS)
- トランスポート層 (Transport Layer):OSI参照モデルのトランスポート層に相当し、アプリケーション間のデータ転送を管理します。(例:TCP, UDP)
- インターネット層 (Internet Layer):OSI参照モデルのネットワーク層に相当し、パケットのルーティングを担当します。(例:IP, ICMP, ARP)
- ネットワークインターフェース層 (Network Interface Layer):OSI参照モデルのデータリンク層と物理層をまとめて含みます。物理的なネットワークへの接続とデータ転送を扱います。(例:Ethernet, Wi-Fiドライバ)
TCP/IPモデルは、インターネットの成功を支える上で不可欠な存在であり、今日のほとんどのネットワーク通信はこのモデルに基づいて行われています。
1-4. OSIモデルとTCP/IPモデルの関係と比較
OSIモデルとTCP/IPモデルは似た階層構造を持っていますが、アプローチや目的に違いがあります。
TCP/IPモデルはOSIモデルの一部の層を統合した、より現実的な構成となっています。OSIモデルは教育や理論で広く用いられ、TCP/IPモデルは実装ベースでの標準となっています。
OSIモデル(第◯層) |
名称 |
対応するTCP/IP層 |
主なプロトコル |
機器例 |
データ単位(PDU) |
第7層 |
アプリケーション層 |
アプリケーション層 |
HTTP, FTP, SMTP, DNS |
Webサーバ、メールサーバ |
データ(Data) |
第6層 |
プレゼンテーション層 |
SSL/TLS, JPEG, MPEG |
暗号化ソフト |
第5層 |
セッション層 |
NetBIOS, RPC |
― |
第4層 |
トランスポート層 |
トランスポート層 |
TCP, UDP |
― |
セグメント(TCP) データグラム(UDP) |
第3層 |
ネットワーク層 |
インターネット層 |
IP, ICMP, ARP |
ルータ |
パケット(Packet) |
第2層 |
データリンク層 |
ネットワークインターフェース層 |
Ethernet, PPP |
スイッチ |
フレーム(Frame) |
第1層 |
物理層 |
IEEE 802.3, RS-232C |
ハブ、ケーブル |
ビット(Bit) |
ネットワークは、デバイス間の情報共有とコミュニケーションを可能にするシステムであり、プロトコルはその円滑な実現を可能にするためのルールや手順です。そして、OSI参照モデルとTCP/IPモデルは、複雑なネットワークプロトコルを階層的に理解するための重要なフレームワークとなります。これらの基本的な概念を理解することで、現代のデジタル社会を支えるネットワークの仕組みをより深く把握することができます。
OSI参照モデルは、ネットワーク通信の複雑なプロセスを理解しやすくするために、機能を7つの階層に分割した理論的なフレームワークです。
各層は特定の役割を担い、その役割に応じたプロトコルが動作します。ここでは、OSI参照モデルの各層と、そこで主に機能する代表的なプロトコルについて詳しく解説します。
2-1. 第7層:アプリケーション層 (Application Layer)
アプリケーション層は、ユーザーが直接利用するネットワークアプリケーションの機能を提供します。Webブラウジング、電子メール、ファイル転送など、私たちが日常的に行っている通信サービスの多くは、この層で動作するプロトコルによって実現されています。
主要プロトコル:
- HTTP (Hypertext Transfer Protocol): WebブラウザとWebサーバー間でHTML文書や画像などのWebコンテンツをやり取りするためのプロトコル。
- HTTPS (Hypertext Transfer Protocol Secure): HTTPにSSL/TLSによる暗号化機能を追加し、安全な通信を実現するプロトコル。オンラインバンキングやショッピングなどで広く利用されます。
- FTP (File Transfer Protocol): ネットワーク上でファイルを送受信するためのプロトコル。ファイルのアップロードやダウンロードに利用されます。
- SMTP (Simple Mail Transfer Protocol): 電子メールを送信するためのプロトコル。メールクライアントからメールサーバーへ、またはメールサーバー間でメールを転送します。
- POP3 (Post Office Protocol version 3): メールサーバーから電子メールを受信するためのプロトコル。通常、メールをサーバーからダウンロードし、サーバーからは削除します。
- IMAP (Internet Message Access Protocol): メールサーバー上のメールを直接操作・管理するためのプロトコル。複数のデバイスでメールを同期したり、サーバーにメールを残したまま閲覧したりするのに適しています。
- DNS (Domain Name System): ドメイン名(例: example.com)をIPアドレス(例: 192.0.2.1)に変換するためのプロトコル。インターネット上の住所録のような役割を果たします。
2-2. 第6層:プレゼンテーション層 (Presentation Layer)
プレゼンテーション層は、アプリケーション層が扱うデータの形式を変換し、異なるシステム間でのデータ交換を可能にする役割を担います。データの暗号化、圧縮、文字コードの変換などが行われます。
主要プロトコル:
- SSL/TLS (Secure Sockets Layer / Transport Layer Security): データ暗号化、認証、データ完全性保証を提供するプロトコル。主にHTTPと組み合わせてHTTPSとして利用されますが、他のアプリケーション層プロトコル(FTP, SMTPなど)でも利用されます。
- MIME (Multipurpose Internet Mail Extensions): 電子メールでテキスト以外のデータ(画像、音声、動画など)を添付するための形式を定義します。
- ASCII, JPEG, MPEGなど: これら自体はプロトコルではありませんが、データの表現形式や符号化方式を定義するものであり、この層の機能に関連が深いです。
2-3. 第5層:セッション層 (Session Layer)
セッション層は、アプリケーション間で「セッション」と呼ばれる通信経路の確立、維持、そして終了を管理します。データの同期や、途中で通信が途切れた際の復旧メカニズムを提供することもあります。
主要プロトコル:
- NetBIOS (Network Basic Input/Output System): 小規模ネットワークでコンピュータ名による通信を可能にするAPIおよびプロトコル。Windowsネットワークで利用されます。
- RPC (Remote Procedure Call): ネットワーク上の別のコンピュータで実行される手続き(関数)を呼び出すためのプロトコル。分散システムで利用されます。
- Sockets API: プロトコル自体ではありませんが、多くのアプリケーションがセッションを確立するために利用するプログラミングインターフェースであり、セッション層の機能と密接に関連します。
2-4. 第4層:トランスポート層 (Transport Layer)
トランスポート層は、アプリケーション間のエンドツーエンドのデータ転送の信頼性を確保する役割を担います。データの分割、再構成、フロー制御、エラー検出などがここで行われます。
主要プロトコル:
- TCP (Transmission Control Protocol): 信頼性の高いデータ転送を提供するプロトコル。データの順序保証、再送制御、フロー制御、輻輳制御などを行い、データが正確に相手に届くことを保証します。Webブラウジング、ファイル転送、電子メールなど、多くのアプリケーションで利用されます。
- UDP (User Datagram Protocol): コネクションレス型で、信頼性よりも速度を優先するプロトコル。データの到達保証や順序保証は行いませんが、オーバーヘッドが少ないため、リアルタイム性が求められる音声・ビデオ通話やオンラインゲームなどで利用されます。
2-5. 第3層:ネットワーク層 (Network Layer)
ネットワーク層は、異なるネットワーク間でのデータ転送(ルーティング)を担当します。IPアドレスを用いて、パケットが送信元から宛先まで複数のネットワークを越えて適切に転送されるように経路を決定します。
主要プロトコル:
- IP (Internet Protocol): インターネット通信の基盤となるプロトコル。データのパケット化、IPアドレスによるルーティングを行います。信頼性や到達保証は下位層や上位層に任されます。
- ICMP (Internet Control Message Protocol): IP通信におけるエラーメッセージや制御メッセージを送信するためのプロトコル。「ping」コマンドなどでネットワークの疎通確認に使われます。
- ARP (Address Resolution Protocol): IPアドレスから対応するMACアドレス(物理アドレス)を解決するためのプロトコル。同一ネットワーク内での通信に必要です。
- ルーティングプロトコル (RIP, OSPF, BGPなど): ルーター間で経路情報を交換し、最適なデータ転送経路を決定するためのプロトコル。
2-6. 第2層:データリンク層 (Data Link Layer)
データリンク層は、物理層を通じて接続された隣接するノード間でのデータ転送を管理します。物理アドレス(MACアドレス)を用いて、フレームの送受信、エラー検出、フロー制御などを行います。
主要プロトコル:
- Ethernet (イーサネット): 有線LANの標準的なプロトコル。フレームの形式、MACアドレス、CSMA/CDなどのアクセス制御方式を定義します。
- Wi-Fi (IEEE 802.11): 無線LANの標準的なプロトコル。無線信号によるデータ送受信や、SSID、認証、暗号化などの機能を含みます。
- PPP (Point-to-Point Protocol): 2点間の直接接続(ダイヤルアップ接続など)でデータリンクを確立・維持するためのプロトコル。
2-7. 第1層:物理層 (Physical Layer)
物理層は、ネットワークの最も下位の層であり、物理的な媒体(ケーブル、光ファイバー、電波など)を介したビットデータの電気的・物理的な送受信を扱います。電圧レベル、信号速度、ケーブルの種類、コネクタの形状などがこの層で定義されます。
主要要素:
- イーサネットケーブル (例: UTPケーブル、光ファイバーケーブル): 信号を伝送するための物理的な媒体。
- RJ-45コネクタ: イーサネットケーブルの接続端子。
- Wi-Fi電波: 無線LANで使用される電磁波。
- USB、RS-232C: デバイス間の物理的な接続や信号方式。
- 電圧レベル、信号変調方式: ビットデータを物理的な信号に変換する方法。
物理層には特定の「プロトコル」と呼べるものは少ないですが、上記のような物理的な特性や電気信号の規格がこれに相当します。
OSI層 |
主なプロトコル・技術 |
第7層 アプリケーション層 | HTTP, HTTPS, FTP, SMTP, POP3, IMAP, DNS |
第6層 プレゼンテーション層 | SSL/TLS, MIME, JPEG, MPEG |
第5層 セッション層 | NetBIOS, RPC, Sockets API |
第4層 トランスポート層 | TCP, UDP |
第3層 ネットワーク層 | IP, ICMP, ARP, OSPF, BGP |
第2層 データリンク層 | Ethernet, PPP, Wi-Fi (IEEE 802.11) |
第1層 物理層 | UTPケーブル, RJ-45, Wi-Fi電波, 光ファイバー |
多くのプロトコルは、国際的な標準化団体によって策定・管理されています。代表的な団体は次の通りです。
- ISO(International Organization for Standardization): OSI参照モデルの策定母体。
- IETF(Internet Engineering Task Force): TCP/IP関連プロトコルの標準化を行う団体。RFC文書としてプロトコル仕様を公開。
- IEEE(Institute of Electrical and Electronics Engineers): LAN、Wi-Fi(IEEE 802.11)などの物理・データリンク層技術を規定。
- W3C(World Wide Web Consortium): Web技術(HTML, CSS, HTTPなど)の標準化を担う団体。
OSI参照モデルは、ネットワーク通信の各段階を明確に分けることで、プロトコルの役割を理解しやすくする非常に有効なツールです。各層のプロトコルが連携し合うことで、複雑なネットワーク通信が実現されています。この階層的な理解は、ネットワークの設計、構築、そしてトラブルシューティングにおいて非常に重要となります。
なお、近年ではTLS 1.3 や Google による QUIC プロトコルなど、より高速かつ安全な通信方式の開発も進んでおり、ネットワークプロトコルは常に進化を続けています。
3.OSIモデルとTCP/IPモデルの必要性と背景
現代のネットワーク通信は、私たちの生活やビジネスにおいて不可欠なインフラとなっています。異なるメーカーの機器、異なるオペレーティングシステム、様々なアプリケーションがシームレスに連携し、世界中で情報がやり取りされるのは、OSI参照モデルとTCP/IPモデルという二つの概念モデルが存在し、その上でプロトコルが標準化されているおかげです。
ここでは、これらのモデルがなぜ必要とされたのか、そしてどのような背景で誕生したのかを解説します。
OSI参照モデルやTCP/IPモデルが誕生する以前は、コンピュータネットワークはメーカーごとに独自の通信方式を採用していました。例えば、A社のコンピュータとB社のコンピュータは、それぞれ異なるプロトコルやハードウェア設計に基づいていたため、直接通信することが非常に困難でした。これは、まるで異なる言語を話す人々が互いに意思疎通できないような状況です。
このような状況では、以下のような問題が発生していました。
- 相互運用性の欠如: 異なるシステム間でのデータ交換が不可能、または非常に複雑な変換作業が必要でした。
- 開発の非効率性: 新しいネットワーク機器やソフトウェアを開発する際、各メーカーの独自仕様に合わせた個別対応が必要で、開発コストが高く、時間がかかりました。
- ネットワークの限定性: 特定のメーカーの製品でしか構成できない「クローズドな」ネットワークになりがちで、規模の拡大や柔軟なシステムの構築が困難でした。
これらの問題を解決し、異なるベンダーの機器やソフトウェアが相互に接続し、円滑に通信できるような「共通のルール」が必要とされました。
このような背景から、国際標準化機構(ISO)は、1970年代後半から1980年代にかけて、ネットワーク通信の標準化を目指し、OSI(Open Systems Interconnection:開放型システム間相互接続)という概念を提唱しました。そして、その理論的な枠組みとしてOSI参照モデルが1984年に策定されました。
OSI参照モデルの主な必要性と目的は以下の通りです。
- 機能の階層化による複雑性の管理: ネットワーク通信は非常に多岐にわたる機能(物理的な接続、データの送受信、経路選択、アプリケーションとの連携など)を含んでいます。これらを一括で管理しようとすると複雑になりすぎるため、OSI参照モデルは機能を7つの明確な階層に分割しました。これにより、各層が特定の役割に専念し、独立して開発・改良できるようになります。
- 共通の議論の枠組みの提供: ネットワークの設計者、開発者、運用管理者、研究者が、特定のベンダーや技術に依存することなく、ネットワークの仕組みや問題を議論するための共通の言語と視点を提供します。例えば、「この問題は第3層(ネットワーク層)で起きている」といったように、問題の切り分けや原因特定が容易になります。
- 相互運用性の促進: 各層のインターフェースと役割が明確に定義されることで、異なるベンダーがそれぞれ特定の層に対応する製品やプロトコルを開発できるようになります。これにより、結果的に異なるシステム間での通信が可能になる基盤を提供します。
- 学習と教育の支援: ネットワークの基礎知識を体系的に学ぶ上で、OSI参照モデルは非常に優れた教育ツールです。複雑なネットワークの概念を段階的に理解するのに役立ちます。
OSI参照モデルは「理想的なモデル」として設計されたため、実際に実装されるプロトコル群がこの7階層に厳密に対応しているわけではありません。しかし、ネットワークの機能分担を理解するための共通の理解枠組みとしては非常に重要です。
OSI参照モデルが理論的なアプローチで標準化を進める一方で、実際にインターネットの基盤として発展していったのがTCP/IP(Transmission Control Protocol/Internet Protocol)モデルです。TCP/IPは、ARPANET(インターネットの前身)という実際のネットワーク環境で試行錯誤を繰り返しながら発展したため、OSI参照モデルのような理論的な厳密さよりも、実用性と柔軟性を重視して発展しました。
TCP/IPモデルの主な必要性と背景は以下の通りです。
- インターネットの基盤としての実用性: TCP/IPは、ARPANETという実際のネットワーク環境で試行錯誤を繰り返しながら発展しました。そのため、理論先行のOSI参照モデルとは異なり、すぐに使えることを重視して設計されました。この実用性が、インターネットが爆発的に普及する上で決定的な要因となりました。
- シンプルさと柔軟性: TCP/IPモデルはOSI参照モデルよりも少ない4つの階層で構成されており、よりシンプルです。これにより、実装が容易であり、技術の進化や新しいアプリケーションの登場にも柔軟に対応できました。特定の層の変更が他の層に与える影響が少なく、独立した開発や改良が可能です。
- オープンな標準: TCP/IPは、特定の企業が独占するのではなく、オープンな標準として開発・公開されました。誰でも自由に利用し、改良できる特性が、その後のインターネットの拡大とイノベーションを大きく後押ししました。
- エンドツーエンド原則: TCP/IPは「エンドツーエンド原則」という考え方を重視しています。これは、ネットワーク自体はシンプルに保ち、複雑な処理や信頼性の確保は通信を行う端末(エンドポイント)で行うという考え方です。これにより、ネットワークの拡張性が高まり、様々なアプリケーションが柔軟に構築できるようになりました。
OSI参照モデルとTCP/IPモデルは、それぞれ異なる背景と目的を持って発展してきました。OSI参照モデルはネットワーク通信の理論的な枠組みと共通言語を提供し、TCP/IPモデルはインターネットのデファクトスタンダードとして実用的な通信を実現しています。
両モデルは異なるアプローチを取りながらも、ネットワーク通信を階層的に捉えるという点で共通しており、現代のネットワーク技術を理解する上で不可欠な概念となっています。