OSI参照モデル:7つの階層を解説
OSI参照モデルは、ネットワーク通信を物理的なケーブル(第1層)からアプリケーション(第7層)までの7つの階層に分けたものです。各層の役割は1つで、直上と直下の層とだけやり取りします。このモデルは学習とトラブルシューティングのための道具であり、実際のインターネットは、より単純な4階層のTCP/IPモデルで動いています。
7つの階層
送信側では、データが上の層から下の層へ順に渡され、各層が自分のヘッダーを付加します。これをカプセル化と呼びます。受信側では、逆の順序でヘッダーを取り除きます。各層でのデータの単位をPDU(プロトコルデータユニット)と呼びます。
| 層 | 名称 | PDU | プロトコルの例 | 代表的な機器 |
|---|---|---|---|---|
| 7 | アプリケーション層 | データ | HTTP, DNS, SMTP, SSH | プロキシ、アプリケーションファイアウォール |
| 6 | プレゼンテーション層 | データ | TLS(一部)、文字コード、MIME | - |
| 5 | セッション層 | データ | RPC, NetBIOSセッション, TLS(一部) | - |
| 4 | トランスポート層 | セグメント(TCP)またはデータグラム(UDP) | TCP, UDP | ファイアウォール、ロードバランサー |
| 3 | ネットワーク層 | パケット | IP, ICMP, OSPF | ルーター、レイヤー3スイッチ |
| 2 | データリンク層 | フレーム | Ethernet, Wi-Fi (802.11), ARP | スイッチ、アクセスポイント |
| 1 | 物理層 | ビット | Ethernetケーブル、光ファイバー、無線 | ケーブル、ハブ、リピーター |
OSIとTCP/IPの比較
TCP/IPモデルは4階層で、プロトコルが実際に作られた方法に沿っています。対応関係はおおよそ次のとおりです。
| TCP/IPの層 | 対応するOSIの層 |
|---|---|
| アプリケーション層 | 7, 6, 5 |
| トランスポート層 | 4 |
| インターネット層 | 3 |
| リンク層(ネットワークアクセス層) | 2, 1 |
教科書によっては、リンク層をデータリンク層と物理層に分けて、TCP/IPを5階層で示すこともあります。現場では今でも「レイヤー2スイッチ」「レイヤー7ファイアウォール」のようにOSIの番号で呼ぶため、両方を知っておくと便利です。
Webサイトを開くときに起こること
ブラウザーにhttps://example.comと入力した場合を考えてみましょう。
- 第7層:ブラウザーはアドレスが必要なので、example.comのDNSクエリを送信します。その後、HTTPリクエストを送ります。
- 第6/5層:TLSハンドシェイクで暗号鍵をネゴシエーションし、サーバー証明書を検証します。
- 第4層:TCPが3ウェイハンドシェイク(SYN、SYN-ACK、ACK)でポート443への接続を確立し、データをセグメントに分割します。
- 第3層:IPがパケットに送信元と宛先のアドレスを入れ、ルーターがホップごとに転送します。
- 第2層:各リンクで、パケットはMACアドレスを持つフレームに入れられます。IPv4ネットワークでは、ARPが次のホップのMACアドレスを調べます。
- 第1層:フレームは電気信号、光パルス、または電波に変換されます。
サーバー側では、同じ手順が第1層から第7層へと逆順に実行されます。
各ツールはどの層を調べるのか
ネットワークのチェックは、ある層までが正常に動作していることを証明するものです。次の表は、当サイトの各ツールがどこに位置するかを示します。
| ツール | 層 | 確認できること |
|---|---|---|
| Ping | 3 (ICMP) | ホストにIPレベルで到達できるか、往復にかかる時間 |
| Traceroute | 3 | 経路上のルーターと、遅延やロスが始まる場所 |
| ポートチェッカー | 4 (TCP) | 指定したポートへのTCP接続を開けるか |
| SSLチェッカー | 6/5(第4層の上) | TLSハンドシェイクが動作し、証明書が有効か |
| HTTPヘッダー | 7 | Webサーバーが応答するか、返すステータスとヘッダー |
| DNSチェッカー | 7 | ネームサーバーが期待どおりのレコードを返すか |
注意が必要な点が3つあります。
- TLSは1つの層にきれいに収まりません。OSIモデルでは第6層(暗号化とプレゼンテーション)に置かれることが多く、第5層(セッション)とされることもあります。TCP/IPモデルでは、TCPの上で動作するアプリケーション層の一部にすぎません。トラブルシューティングでは、TLSがTCPの後、HTTPの前に動作することを知っていれば十分です。
- 正常に動いているホストでもPingは失敗することがあります。多くのファイアウォールがICMPエコー要求を破棄するため、Pingの失敗が必ずしもホストのダウンを意味するわけではありません。ポートも合わせて確認してください。また、TracerouteはIPパケットのTTLフィールドとICMP time-exceeded応答を利用しており、応答しないルーターは出力の中で空白として表示されます。
- DNSは第7層で動作します。他のあらゆる通信の前に必要になりますが、層としてはアプリケーション層です。通常はUDPポート53を使い、大きな応答やゾーン転送にはTCPポート53を使います。
下位層から順に調べるトラブルシューティング
確実な方法は、第1層から始めて上へ進むことです。各ステップで、原因の候補を一群まとめて除外できます。
- 第1層:ケーブルは接続されていますか。Wi-Fiはオンですか。リンクランプは点灯していますか。
- 第2層:機器はスイッチまたはアクセスポイントとリンクしていますか。VLANは正しいですか。MACアドレスの重複や、Wi-Fiパスワードの間違いがないか確認します。
- 第3層:機器は有効なIPアドレス、マスク、ゲートウェイを持っていますか。ゲートウェイにPingを送れますか。次に
192.0.2.1のような外部のアドレスにはどうですか。経路の途中で失敗する場合はTracerouteを使います。アドレス設定でよくある間違いについては、IPアドレスとはとサブネットの記事をご覧ください。 - 第4層:ポートは開いていて、ファイアウォールに遮断されていませんか。主要なポート番号を参照してください。
- 第5〜6層:TLSハンドシェイクは成功しますか。証明書の期限切れ、名前の不一致、非対応のプロトコルバージョンがないか確認します。
- 第7層:名前は解決できていますか。アプリケーションは正しい応答を返していますか。
実際には、上位層から調べる方法や、中間でいったん切り分ける方法もあります。ポートチェックが成功すれば第1層から第4層は問題ないので、アプリケーションに集中できます。