OSI基本参照モデル について学び直してみた

# はじめに

この記事では、通信システムを理解するための基本的なフレームワークであるOSI基本参照モデルについて詳しく解説します。

## OSI基本参照モデルの詳細な解説

OSI基本参照モデルは、通信システムの機能を分割し、それぞれを明確に定義したものです。このモデルは、国際標準化機構（ISO）によって開発され、ネットワーク通信のプロトコル設計やトラブルシューティングに広く活用されています。それぞれの層は特定の役割を果たし、全体として一貫した通信を可能にします。

## ７層のプロトコル

| 層 | 名称 | 概要・役割 |
| --- | --- | --- |
| ７層 | アプリケーション層 | 個々のアプリケーション |
| ６層 | プレゼンテーション層 | データの表現形式 |
| ５層 | セッション層 | 通信手段 |
| ４層 | トランスポート層 | ２点間の通信制御 |
| ３層 | ネットワーク層 | 経路制御 |
| ２層 | データリンク層 | 隣接機器との通信 |
| １層 | 物理層 | 隣接機器との接続手段 |

## 第1層：物理層

物理層は、隣接機器との接続手段を提供します。

この層では、ハードウェアの接続が行われ、電気信号の変換やビットの送受信が行われます。これにより、データは物理的な形で正確に送受信されることが保証されます。

例えば、LANケーブルや電波、光信号を使用して、隣接機器にビット信号を到達させる具体的な方法を定義しています。

## 第2層：データリンク層

データリンク層は、隣接機器との通信を担当します。

この層では、フレームの作成と認識、エラーチェックと修復などが行われます。これにより、データの転送が確実かつ効率的に行われます。

データを届けたい隣接機器に対して、文字などのデータを送信する方法について定義しています。

イーサネットやWi-Fiなどの技術や、ブリッジやスイッチなどのデバイスによってもサポートされています。これらにより、ネットワークの効率と信頼性が向上します。

L2スイッチ（いわゆるHUB）は、データリンク層で動いているため、MACアドレスを使用して通信する機器を特定します。これにより、データが適切な宛先に確実に到達するように制御されています。

## 第3層：ネットワーク層

ネットワーク層は、データパケットの経路制御を担当します。

この層の主な機能は、ルーティングと転送、そしてネットワーク間の接続の管理です。ルーティングは、データパケットが送信元から目的地まで最適な経路を通るようにするプロセスです。

一般的に、TCP/IPのIP層はOSI基本参照モデルのネットワーク層に該当します。このネットワーク層は、データパケットの経路制御を行い、送信元から目的地までの最適なルートを決定する重要な役割を果たします。その過程で、ARP（アドレス解決プロトコル）を使用してIPアドレスからMACアドレスに変換し、正確な宛先を特定します。

L3スイッチ（いわゆるルータ）を使用して、異なるネットワーク間の接続を可能にしています。ルータは、複数のネットワークを接続し、データパケットが最適な経路を通るようにルーティング情報を管理します。これにより、異なるネットワークセグメント間でのデータ通信がスムーズに行われます。

## 第4層：トランスポート層

トランスポート層は、２点間の通信制御を担当します。

この層では、データの分割と再組み立て、エラーチェック、そしてデータフローの制御などが行われます。これにより、データの安全性と信頼性が確保されます。

トランスポート層で一般的に使用されるプロトコルには、TCP（Transmission Control Protocol）とUDP（User Datagram Protocol）があります。TCPは信頼性が高く、データの送信が確実に行われるように設計されています。例えば、HTMLやメールのようなアプリケーションでは、データの正確性が重要であり、間違いが発生した場合には正しいデータを再送する仕組みが必要です。TCPはこの要件を満たすために使用されます。

一方、UDPは速度を優先するプロトコルであり、多少のエラーが許容されます。動画や音声データのストリーミングなど、リアルタイム性が求められるアプリケーションでは、多少のデータ損失が問題とならないため、UDPが適しています。UDPは、データの再送信を行わないため、遅延が少なく、高速な通信が可能です。

Webに特定した部分ですが、L4ロードバランサは IPアドレスと ポート番号による制御を実施しています。AWSのNLB（Network Load Balancer）はL4ロードバランサに分類されます。

Webに特化した話ですが、L4ロードバランサはIPアドレスとポート番号によってトラフィックを制御しています。例えば、AWSのNLB（Network Load Balancer）はL4ロードバランサに分類されます。L4ロードバランサは、トランスポート層で動作し、特定のIPアドレスとポート番号に基づいてトラフィックを分散させるため、高速かつ効率的なトラフィック管理が可能です。これにより、サーバーの負荷を均等に配分し、全体のパフォーマンスを向上させることができます。また、L4ロードバランサは、TCPやUDPなどのプロトコルをサポートし、幅広いアプリケーションに対応しています。特に、大規模なWebサービスやリアルタイムアプリケーションでその効果が顕著に現れます。

## 第5層：セッション層

セッション層は、通信手段を提供する役割を果たします。

この層の主な機能としては、データの送受信や通信セッションの開始と終了の管理が含まれます。さらに、セッション層は通信の信頼性を確保するためのエラー検出や回復機能も提供します。また、データの順序を維持するためのシーケンス制御や、通信路の確立と維持、そして解放の手続きを管理する役割も担っています。

## 第6層：プレゼンテーション層

プレゼンテーション層は、データの表現形式を管理する重要な役割を果たします。

この層では、データ変換の各種プロセスが実行されます。具体的には、暗号化によるデータ保護や、効率的なデータ転送のための圧縮などが含まれます。

この層では、データ変換の各種プロセスが実行されます。具体的には、効率的なデータ転送のための圧縮などが含まれます。また、データのフォーマット変換や、文字コードの変換などもこの層で行われます。

## 第7層：アプリケーション層

アプリケーション層は、ユーザーが日々利用する個々のアプリケーションとネットワークとの接続を担当しています。

この層はその名の通り、メール、ウェブブラウジング、ファイル転送などのアプリケーションを直接管理し、それらがネットワークリソースを効果的に利用できるようにする役割を果たします。この層が正常に機能することで、日常生活やビジネス活動がスムーズに進行し、情報の共有やコミュニケーションが可能になります。

Webに特化した話ですが、L7ロードバランサはURL/URIやHTTPヘッダ・Cookieによってトラフィックを制御します。AWSのALB（Application Load Balancer）はL7ロードバランサに分類されます。

# まとめ

OSI基本参照モデルは、通信システムの理解と設計において基本的な考え方です。TCP/IPやUDP/IPは、このOSI基本参照モデルのネットワーク層からトランスポート層に対して具体的な方法を定義しています。

セッション層からアプリケーション層に対しては、HTTPやSMTPといったプロトコルでアプリケーションを成立させています。

これらの理解は、ネットワークの問題の特定と解決に役立ちます。ネットワークが複雑な問題に直面した際、OSI基本参照モデルを参照することで、問題の箇所を特定することが容易になります。

このモデルを理解することで、ネットワークの問題解決やプロトコルの設計がより効率的に行えるようになります。普段インターネットを使用するうえで、このあたりを意識することは少ないと思いますが、ネットワークの問題が発生したときに意識できると原因究明に役立つと思います。