前回は、なぜネットワークを学ぶのかを話しました。
今回は、ネットワークを理解するための2つの地図、OSI参照モデルの7層とTCP/IPモデルを詳しく見ていきます。
友達に手紙を送るところを想像しましょう。手紙を書いて封筒に入れ、宛先を書いてポストに投函します。そのあと、郵便局で仕分けされ、配達されます。
ネットワークでも、データは同じようにいくつもの段階を経て届きます。
この過程を一貫した標準的な方法で説明するための取り決めや枠組みが、ネットワークモデルです。
モデルがあると、異なるメーカーのコンピューターや機器が互いに問題なく通信できます。代表的なのが、OSI参照モデルとTCP/IPモデルです。
OSI参照モデルの7層 - ネットワーク通信の教科書 🔗
OSI参照モデルは、国際標準化機構(ISO)が1984年に発表したネットワーク通信の標準モデルです。
通信の過程を7つの独立した層に分けます。各層は1つ下の層のサービスを使い、1つ上の層にサービスを提供します。階ごとに仕事が決まった7階建ての建物のようなものです。
OSIの7層は次のとおりです。
- 第7層はアプリケーション層(Application Layer)
- 第6層はプレゼンテーション層(Presentation Layer)
- 第5層はセッション層(Session Layer)
- 第4層はトランスポート層(Transport Layer)
- 第3層はネットワーク層(Network Layer)
- 第2層はデータリンク層(Data Link Layer)
- 第1層は物理層(Physical Layer)
覚えるときは、英語の頭文字を使った「All People Seem To Need Data Processing(誰もがデータ処理を必要としているようだ)」や、韓国語で層の名前の頭文字を並べた「아파서 티내다 피났다」のような語呂合わせがあります。
第7層 - アプリケーション層(Application Layer) 🔗
役割
ブラウザ、メール、ファイル転送など、実際に使うプログラムとの窓口です。ユーザーがネットワーク上で作業するとき、最初に関わる層です。
例
Webサイトを見るHTTP、メールを送るSMTP、ファイルを送受信するFTPなどが動作します。
データの単位
メッセージ(Message)またはデータ(Data)
第6層 - プレゼンテーション層(Presentation Layer) 🔗
役割
アプリケーション層から受け取ったデータを、異なるコンピューターでも理解できる共通形式に
変換
します。ASCIIやUTF-8などの文字エンコード、暗号化、圧縮を行います。
例
安全にデータを送るための暗号化(SSL/TLS)や、画像(JPEG、GIF)や動画(MPEG)を特定の形式に変換する処理に相当します。
データの単位
メッセージ(Message)またはデータ(Data)
第5層 - セッション層(Session Layer) 🔗
役割
コンピューター間の*対話(セッション)*を開始、維持、終了します。例えば、ログイン後に接続を保ち、作業が済んだらログアウトで接続を閉じる流れを管理します。また、転送途中で障害が起きたとき、どこから再開するかを示す同期点を設定する場合があります。
例
オンラインゲーム中にサーバーとの接続を保つ、ビデオ会議中に接続が切れないように管理するなどです。
データの単位
メッセージ(Message)またはデータ(Data)
第4層 - トランスポート層(Transport Layer) 🔗
役割
データを
安全かつ正確に届ける
ため、適切な大きさに分けます(セグメント化)。エラーに応じた再送(誤り制御)や、受信側に合う送信量の調整(フロー制御)も行います。
例
信頼性を確保するTCPと、素早く送るUDPが動きます。ファイルを欠落なくダウンロードできるのは、TCPのおかげです。
データの単位
セグメント(Segment、TCPの場合)、データグラム(Datagram、UDPの場合)
第3層 - ネットワーク層(Network Layer) 🔗
役割
複数のネットワークを経由して目的地に届くよう、
経路を探します
(ルーティング)。コンピューターを識別する論理アドレスとして、IPアドレスを使います。
例
インターネットで遠くのサーバーと通信するとき、ルーターがこの層で動き、データの経路を選びます。
データの単位
パケット(Packet)
第2層 - データリンク層(Data Link Layer) 🔗
役割
同じネットワークで直接つながる機器同士がデータをやり取りできるようにします。物理層で起こり得る誤りを検出して訂正し、始まりと終わりがわかるようフレームにまとめます。物理アドレスとしてMACアドレスを使います。
例
ネットワークインターフェースカードやスイッチなどが主にこの層で動きます。
データの単位
フレーム(Frame)
第1層 - 物理層(Physical Layer) 🔗
役割
実際にデータを送受信するための物理的な接続を担当します。ケーブル、伝送速度、電圧などの電気的・機械的な条件を定めます。簡単に言えば、0と1のビットを信号にし、ケーブルで高速に伝える役割です。
例
LANケーブル(Ethernetケーブル)、光ファイバー、ハブ、リピーターなどがこの層に属します。
データの単位
ビット(Bit)
TCP/IPモデル - インターネットの実際の標準 🔗
OSI参照モデルは通信を理解するのに役立つ理論モデルですが、複雑であり、実際のネットワークですべての層が明確に区分されているとは限りません。
インターネットでは、OSIより層の少ない
TCP/IPモデル
が標準として使われます。TCP/IPは米国国防総省(DoD)が開発し、OSIより先に使われました。実際のインターネットのプロトコルをもとにしているため、実用的です。
通常、OSIの7層と対応づけて、TCP/IPを次の4層で説明します。資料によっては5層に分けます。
- 第4層はアプリケーション層(Application Layer)。OSIの第5〜7層に相当。
- 第3層はトランスポート層(Transport Layer)。OSIの第4層に相当。
- 第2層はインターネット層(Internet Layer)。OSIの第3層に相当。
- 第1層はネットワークアクセス層(Network Access/Interface Layer、またはLink Layer)。OSIの第1〜2層に相当。
TCP/IPの各層は、対応するOSIの層と似た役割を持ちます。
第4層 - アプリケーション層(Application Layer)
OSIのアプリケーション、プレゼンテーション、セッションの機能を合わせたものです。ユーザーと直接やり取りし、HTTP、FTP、SMTP、DNSなどのデータ交換サービスを提供します。
第3層 - トランスポート層(Transport Layer)
OSIのトランスポート層とほぼ同じで、エンドツーエンドのデータ転送を担います。TCPとUDPが動作し、分割、誤り制御、フロー制御などの機能をプロトコルに応じて提供します。
第2層 - インターネット層(Internet Layer)
OSIのネットワーク層に相当し、IPアドレスの指定とルーティングによって、パケットを目的地に届けます。主なプロトコルはIP(Internet Protocol)です。
第1層 - ネットワークアクセス層(Network Access/Interface Layer)
OSIの物理層とデータリンク層に相当します。ケーブルやネットワークカードなどのハードウェアでデータを物理的に伝え、同じネットワークにある機器間でフレームを転送します。EthernetやWi-Fiなどがこの層の技術です。
「TCP/IPが実際の標準なら、なぜOSIを学ぶのか」と疑問に思うかもしれません。
OSIは通信全体を詳しく体系的に説明するため、基本原理の理解と障害の診断に役立ちます。
TCP/IPは、実際に使っているインターネットがどう動くかを直接示す実用的なモデルです。
ネットワークの開発者やエンジニアは、両方を理解すると、複雑な環境を分析し、問題を解決しやすくなります。
実際の通信に当てはめる - Webサイトへのアクセス 🔗
ブラウザのアドレス欄に www.google.com と入力してEnterを押すと、何が起こるでしょうか。OSI参照モデルやTCP/IPモデルに当てはめてみましょう。
アプリケーション層(第7層)
www.google.com を入力すると、ブラウザはHTTPでGoogleのサーバーにページを要求するデータを作ります。DNSで www.google.com のIPアドレスを先に調べる場合もあります。
プレゼンテーション層(第6層)
ページの要求を共通の形式に変換し、HTTPSの場合などは必要に応じて暗号化します。
セッション層(第5層)
ブラウザとGoogleのサーバーの間の通信セッションを設定し、管理します。
トランスポート層(第4層)
TCPを使ってHTTPの要求をセグメントに分けます。各セグメントに、シーケンス番号やポート番号(通常HTTPは80、HTTPSは443)を含むTCPヘッダーを付けます。
ネットワーク層(第3層)
送信元(自分のコンピューター)と宛先(Googleのサーバー)のIPアドレスを含むヘッダーを付け、IPパケットを作ります。ルーターはIPアドレスを見て送信先を決めます。
データリンク層(第2層)
IPパケットにフレームヘッダーとトレーラーを付けます。家庭用ルーターなど、次の機器のMACアドレスが含まれます。
物理層(第1層)
フレームを表す0と1を信号に変え、ケーブルや電波を通じて送信します。
Googleのサーバーに届くと、逆の順序で処理します(非カプセル化)。
物理層からアプリケーション層へデータを渡しながら各層のヘッダーを取り除き、最終的にWebサーバーのアプリケーションがページデータを返します。
今回は、ネットワーク通信の基本となるOSI参照モデルと、実際のインターネットで使うTCP/IPモデルを学びました。
OSIはネットワークの機能を7つの論理層に分ける理論モデルで、動作の理解と問題解決に役立ちます。
TCP/IPは実際のインターネットに合うよう4層(または5層)で表され、インターネット通信の中核を担うプロトコル群をまとめています。
両方を学び、各層の役割と連携を理解することは、開発者がネットワークの問題を解決し、よりよいプログラムを作る土台になります。
次回は、ネットワーク上のコンピューターを特定するIPアドレスとサブネットマスクを詳しく学びます。