Learn

ネットワーク

ネットワークの階層モデルとは何か

通信を物理、ネットワーク、トランスポート、アプリケーションなどの層で理解し、IP・DNS・HTTP/HTTPSを学ぶ前提を整理します。

インターネット通信は、1つの仕組みだけで動いているわけではありません。

Webサイトを見るとき、あなたの端末では、Wi-Fiや有線LANで通信を運ぶ処理、を使って宛先へ届ける処理、TCPやUDPで通信の届け方を管理する処理、HTTPやDNSによってアプリケーション同士がやり取りする処理などが組み合わさっています。

これらをすべて同じレベルで理解しようとすると、ネットワーク通信の全体像が分かりにくくなります。

そこで重要になるのが、通信を階層に分けて考える視点です。

ネットワークの階層モデルとは、通信の仕組みを役割ごとに分けて整理する考え方です。 それぞれの層が別の役割を担当していると考えることで、複雑な通信を理解しやすくなります。

この記事では、インターネット通信を理解するときによく使われる TCP/IPモデル を中心に、ネットワークの階層構造を見ていきます。

TCP/IPモデルの4つの層

TCP/IPモデルでは、通信を大きく次の4つの層で考えます。

TCP/IPモデルの層主な役割代表的な要素
ネットワークインターフェース層物理的な通信や、同じネットワーク内での通信を扱うEthernet(有線LAN)、Wi-Fi、光ファイバー
インターネット層IPアドレスを使って宛先へ届けるIP
トランスポート層データの届け方を管理するTCP、UDP
アプリケーション層アプリケーション同士の通信ルールを決めるHTTP、HTTPS、DNS

この4つの層で見ると、ネットワーク通信の役割を整理しやすくなります。

重要なのは、すべてを細かく暗記することではありません。 まずは、それぞれの層が担当している役割の違いを理解することです。

なお、この記事ではTCP/IPモデルの全体像を理解することを目的としています。 IPアドレス、ルーティング、TCP、UDP、HTTP、HTTPS、DNSなどの詳しい仕組みは、それぞれ別の記事で扱います。

ここでは、それぞれの技術を細かく説明するのではなく、「TCP/IPモデルのどの層に関係するのか」「通信全体の中でどのような役割を持つのか」を整理していきます。

なぜ階層で考えるのか

階層で考える理由は、通信の役割を切り分けて理解するためです。

たとえば、Webサイトにアクセスできない場合でも、原因は1つとは限りません。

Wi-Fiや有線LANの接続に問題があるかもしれません。 IPアドレスを使った通信先への到達に問題があるかもしれません。 TCPの接続がうまく成立していないかもしれません。 DNSでドメイン名をIPアドレスに変換できていないかもしれません。 HTTPの応答としてエラーが返っているだけかもしれません。

同じ「通信できない」という状態でも、問題が起きている層は異なります。

TCP/IPモデルを使うと、通信の問題を次のように分けて考えられます。

見る場所考える問題
ネットワークインターフェース層そもそも物理的・無線的に通信できているか
インターネット層IPアドレスを使って宛先へ到達できているか
トランスポート層TCPやUDPで通信が成立しているか
アプリケーション層HTTPやDNSなど、アプリ側の処理が正しく動いているか

このように、階層で考えることで、ネットワークの仕組みを部分ごとに整理できます。

ネットワークインターフェース層

TCP/IPモデルの一番下にあるのが、ネットワークインターフェース層です。

この層は、実際に通信を運ぶための部分です。 有線LAN、Wi-Fi、光ファイバー、モバイル通信などが関係します。

通信データは、何もない空間をそのまま移動しているわけではありません。 実際には、電気信号、電波、光信号などとして運ばれます。

たとえば、有線LANではケーブルを使って通信します。 Wi-Fiでは電波を使って通信します。 光ファイバーを使った通信では、光信号が使われます。

この層の役割は、HTTPの内容やDNSの問い合わせ内容を理解することではありません。 まず、信号を実際に運べる状態にすることが役割です。

ネットワークインターフェース層が機能していなければ、その上のIP通信、TCP通信、HTTP通信も成立しません。

なお、資料によっては、この層を「ネットワークアクセス層」や「リンク層」と呼ぶ場合もあります。 名前に違いはありますが、ここでは「実際に通信を運ぶための層」と理解しておけば問題ありません。

インターネット層

ネットワークインターフェース層によって信号を運べるようになっても、それだけではインターネット上の目的地へは届きません。

次に必要になるのが、「どこへ届けるのか」を判断する仕組みです。 この役割を持つのが、インターネット層です。

インターネット層の中心になるのがIPです。

IPは、IPアドレスを使って通信の送信元や宛先を扱います。 あなたの端末がWebサイトにアクセスするとき、通信は相手のIPアドレスへ向かって送られます。

インターネット上には、多くのルーターやネットワーク機器があります。 通信データは、それらを経由しながら目的の宛先へ届けられます。

この層では、「どの相手へ届けるのか」が重要になります。

ここで重要なのは、IPが通信内容そのものを理解しているわけではないという点です。 IPは、HTTPの内容やWebページの中身を判断するのではなく、宛先へ届けるための情報を扱います。

つまり、インターネット層は「通信をどこへ向かわせるか」を担当する層です。

トランスポート層

インターネット層によって宛先へ届ける仕組みがあっても、データをどのように届けるかは別の問題です。

この役割を持つのが、トランスポート層です。

トランスポート層では、TCPやUDPが使われます。

TCPは、通信相手との接続を管理しながらデータを送受信する仕組みです。 データが順番どおりに届くことや、途中で失われたデータをどう扱うかなどに関係します。

UDPは、TCPよりもシンプルな通信方式です。 TCPほど厳密な接続管理や到達確認を行わないため、リアルタイム性が重要な通信で使われることがあります。

この層では、「どのようにデータを届けるのか」「接続を管理するのか」「どのアプリケーションに渡すのか」といった点が関係します。

たとえば、同じ端末の中でも、ブラウザ、チャットアプリ、ゲーム、メールソフトなど、複数のアプリが同時に通信していることがあります。 トランスポート層では、ポート番号などを使って、どの通信をどのアプリケーションに渡すかを扱います。

つまり、トランスポート層は「宛先に向かう通信を、どのような方式で届けるか」を担当する層です。

アプリケーション層

TCP/IPモデルの一番上にあるのが、アプリケーション層です。

この層では、アプリケーション同士がどのようなルールで情報をやり取りするかを扱います。

Webサイトを見るときには、HTTPやHTTPSが使われます。 HTTPは、ブラウザとWebサーバーが情報をやり取りするためのルールです。

たとえば、ブラウザがWebサーバーに対して「このページを取得したい」と要求し、サーバーがHTML、画像、CSS、JavaScriptなどを返します。

また、DNSもアプリケーション層に関係します。 DNSは、ドメイン名をIPアドレスに変換するための仕組みです。

あなたがブラウザにドメイン名を入力したとき、端末はその名前に対応するIPアドレスを調べます。 その結果を使って、実際の通信先へ接続します。

この層では、アプリケーションが理解できる形式で情報をやり取りします。 HTTPであれば、リクエストやレスポンスという形で通信します。 DNSであれば、ドメイン名に対応するIPアドレスを問い合わせます。

つまり、アプリケーション層は「アプリ同士がどのような意味を持つ情報をやり取りするか」を担当する層です。

WebアクセスをTCP/IPモデルで見る

Webサイトへアクセスするときも、TCP/IPモデルの各層が連携しています。

ただし、実際の通信は「下の層から順番に始まる」わけではありません。 あなたがWebサイトへアクセスするとき、処理はまずブラウザなどのアプリケーションから始まります。

送信側では、通信は上の層から下の層へ渡されていきます。

まず、アプリケーション層では、ブラウザがHTTPやHTTPSのリクエストを作ります。 必要に応じて、DNSによってドメイン名に対応するIPアドレスも調べます。

次に、トランスポート層では、TCPやUDPによってデータの届け方が管理されます。 多くのWeb通信ではTCPが使われますが、HTTP/3のようにUDPを使う通信もあります。

次に、インターネット層では、IPアドレスを使って通信先へ向かうための情報が扱われます。 ここで、通信データは宛先のIPアドレスへ向かって送られます。

最後に、ネットワークインターフェース層では、Wi-Fi、有線LAN、光ファイバー、モバイル通信などを通じて、実際の信号として通信が運ばれます。

このように、送信側では上の層で作られたデータが、下の層へ渡されながら通信に必要な情報を付け加えられていきます。 この処理は、カプセル化と呼ばれます。

サーバー側に届いた通信は、今度は下の層から上の層へ渡されます。

ネットワークインターフェース層で信号を受け取り、インターネット層で宛先の情報を扱い、トランスポート層で通信の届け方を処理し、最終的にWebサーバーのアプリケーションへ渡されます。

つまり、Webアクセスでは次のような流れになります。

場面通信の流れ主な内容
送信側アプリケーション層 → トランスポート層 → インターネット層 → ネットワークインターフェース層ブラウザの要求が、通信として送れる形に変換されていく
ネットワーク上各ネットワーク機器を経由して宛先へ向かうIPアドレスをもとに通信が運ばれる
受信側ネットワークインターフェース層 → インターネット層 → トランスポート層 → アプリケーション層届いた通信が、Webサーバーのアプリケーションまで渡される

このように見ると、TCP/IPモデルは単に「下から順番に通信する」という話ではありません。 送信側では上から下へ、受信側では下から上へと処理されることで、アプリケーション同士の通信が成立します。

Webサイトへのアクセスは、最終的にはブラウザとWebサーバーというアプリケーション同士のやり取りです。 そのやり取りを成立させるために、トランスポート層、インターネット層、ネットワークインターフェース層が下から支えています。

OSI参照モデルとの違い

ネットワークの階層モデルとしては、OSI参照モデルもよく使われます。

OSI参照モデルは通信を7つの層に分ける考え方です。 一方、TCP/IPモデルはインターネット通信を理解するために、より実用的に使われる4層のモデルです。

初心者の段階で、OSI参照モデルの7層を細かく暗記する必要はありません。 まずは、実際のインターネット通信に結びつきやすいTCP/IPモデルで理解する方が分かりやすいです。

OSI参照モデルも、ネットワークを理解するうえで重要な考え方です。 より詳しく学びたい方は、OSI参照モデルについても調べてみるとよいでしょう。

この記事では、実際のインターネット通信に結びつけやすいTCP/IPモデルを中心に、通信の基本構造を整理しています。

匿名性を考えるうえで大事な視点

TCP/IPモデルは、匿名性を考えるうえでも重要です。

なぜなら、通信では層ごとに見える情報が異なるからです。

たとえば、IPアドレスはインターネット層に関係します。 TCPやUDPのポート番号はトランスポート層に関係します。 DNS、HTTP、、User-Agentなどはアプリケーション層に関係します。

これらはすべて通信に関係する情報ですが、同じ層にあるわけではありません。

IPアドレスを隠しても、Cookieで同じ利用者だと判断される可能性があります。 HTTPSで通信内容が暗号化されていても、接続先に関する情報がすべて消えるわけではありません。 DNSの扱いが不適切であれば、どのドメインへアクセスしようとしたかが見える可能性もあります。

つまり、匿名性を考えるときは、「何を隠したいのか」と「どの層の情報が見えているのか」を分けて考える必要があります。

TCP/IPモデルを理解しておくと、IPアドレス、DNS、HTTPS、Cookie、User-Agentなどが、それぞれ通信のどの部分に関係しているのかを整理しやすくなります。

まとめ

ネットワークの階層モデルとは、通信を役割ごとに分けて理解するための考え方です。

この記事では、インターネット通信を理解しやすいTCP/IPモデルを中心に見てきました。

TCP/IPモデルでは、通信を次の4つの層で考えます。

役割
ネットワークインターフェース層有線LAN、Wi-Fi、光ファイバーなどで通信を運ぶ
インターネット層IPアドレスを使って宛先へ届ける
トランスポート層TCPやUDPでデータの届け方を管理する
アプリケーション層HTTPやDNSなどでアプリ同士の通信ルールを扱う

通信は、これらの層が連携することで成立しています。

ネットワークインターフェース層だけでは、宛先の判断はできません。 インターネット層だけでは、データの届け方までは管理できません。 トランスポート層だけでは、Webページの取得やDNSの名前解決までは扱えません。 アプリケーション層だけでは、物理的に通信を運ぶことはできません。

それぞれの層が別の役割を持つことで、インターネット通信は成立しています。

TCP/IPモデルを理解すると、ネットワーク通信の全体像を整理しやすくなります。 また、匿名性を考えるときにも、どの層の情報が見えているのか、何が隠れていて何が隠れていないのかを判断しやすくなります。

関連ツール

DNS Leak Test

DNSLeakTest

DNSLeakTestは、DNS問い合わせがどのDNSサーバーへ送られているかを確認できる検証サイトです。

紹介する理由: VPN使用中でもDNSだけが普段のISPや意図しないリゾルバへ出ていると、接続先ドメインの手がかりが残るためです。

URL : https://www.dnsleaktest.com/

外部サイトを開く

関連記事