OSI参照モデル
序章
[編集]OSI参照モデルの概要と重要性
[編集]OSI(Open Systems Interconnection)参照モデルは、ネットワーク通信の標準化と相互運用性を実現するために、国際標準化機構(ISO)によって策定された抽象的な概念モデルです。このモデルは、ネットワーク通信の複雑なプロセスを7つの階層に分割し、各階層の役割と責任を明確に定義しています。
OSI参照モデルの主な目的は以下の通りです。
- ネットワーク通信の標準化
- 各階層の機能を明確にすることで、異なるベンダーの製品間でも相互運用性を確保できます。
- モジュール化
- 通信機能を階層化することで、各階層を独立して設計、実装、テストできるようになります。
- ネットワーク設計の簡素化
- 通信プロセスを階層化することで、複雑なネットワークシステムの設計と実装が容易になります。
- ベンダー独立性
- OSI参照モデルに準拠したプロトコルを使用することで、特定のベンダーに依存しない柔軟なネットワークを構築できます。
- 相互運用性の確保
- 異なる環境やプラットフォームにおいても、OSI参照モデルに準拠したプロトコルを使用することで、ネットワーク機器や通信ソフトウェアの相互接続が可能になります。
OSI参照モデルは、ネットワーク通信の理解とトラブルシューティングを容易にするだけでなく、新しいプロトコルの設計や標準化にも役立っています。ネットワーク技術が進化し続ける中で、OSI参照モデルの概念は今なお重要な役割を果たしています。
ネットワーク通信の基本概念
[編集]ネットワーク通信とは、2つ以上のデバイス(コンピューター、スマートフォン、サーバーなど)がデータを送受信する行為を指します。ネットワーク通信には、いくつかの基本的な概念があります。
- クライアント・サーバーモデル
- クライアント・サーバーモデルは、ネットワーク通信の基本的な構造です。クライアントはサービスを要求し、サーバーがそのサービスを提供します。たとえば、Webブラウザ(クライアント)がWebサーバーから情報を取得するときにこのモデルが使われています。
- プロトコル
- プロトコルとは、通信の規則の集まりです。送信者と受信者の間でデータがスムーズに送受信できるよう、データの形式、タイミング、エラー処理などを規定しています。TCPやIPなどの通信プロトコルが広く使われています。
- アドレス指定
- ネットワークに接続されたデバイスは、それぞれ固有のアドレス(IPアドレスなど)を持っています。このアドレスを使って、データが発信元と宛先の間を行き来します。
- ポート
- ポートは、通信プロトコルが提供するアプリケーション間の論理的な通信経路です。同一のデバイス上で複数のアプリケーションが通信を行う際に、ポート番号によって通信を識別します。
- パケット
- データは、ネットワーク上を小さな塊(パケット)に分割されて転送されます。各パケットには、宛先アドレスや制御情報が含まれています。パケットは経路上の中継点を経由しながら最終的な宛先に届きます。
- 経路制御(ルーティング)
- ルーティングとは、送信元から宛先までのデータの経路を決定するプロセスです。ルーターなどのネットワーク機器が、最適な経路を選択してパケットを次の転送先に送ります。
これらの基本概念を理解することで、ネットワーク通信の仕組みを把握することができます。OSI参照モデルはこれらの概念を基礎として策定され、ネットワーク通信を階層化して標準化を行っています。
OSI参照モデルの7階層
[編集]OSI参照モデルの7つの階層を表にまとめました。
階層 | 名称 | 主な役割 |
---|---|---|
7 | アプリケーション層 | ネットワークサービスとアプリケーションとの間の通信を担当 |
6 | プレゼンテーション層 | データの表現形式、暗号化、圧縮などのデータ変換を行う |
5 | セッション層 | アプリケーション間の通信セッションの確立、維持、同期を管理 |
4 | トランスポート層 | エンドツーエンドの確実なデータ転送と、複数の論理データストリームの多重化を行う |
3 | ネットワーク層 | 論理アドレス指定とデータの経路選択(ルーティング)を行う |
2 | データリンク層 | 物理層上でデータ転送の信頼性を確保し、アクセス制御を行う |
1 | 物理層 | ビット列の電気的・機能的な伝送を担当 |
各層は下位層のサービスを利用しながら、自身の役割を果たします。例えば、アプリケーション層はネットワークサービスを提供しますが、その実現にはトランスポート層、ネットワーク層、データリンク層、物理層のサービスが必要になります。
このように階層化されているため、各層の機能を独立して設計・開発・テストすることができ、新しいプロトコルやサービスを柔軟に導入できるのがOSI参照モデルの利点です。
物理層
[編集]物理層の役割と機能
[編集]物理層は、OSI参照モデルの最下層に位置し、ネットワーク上でビット列の電気的・機能的な伝送を担当しています。つまり、物理層はデータを実際の物理媒体を通して送受信する役割を果たします。
物理層の主な機能は以下の通りです。
- 物理的な接続の確立と切断
- 物理層は、デバイス間の物理的な接続を確立し、通信セッションを開始および終了します。具体的には、ケーブルの接続、無線通信の確立、回線の切断などを行います。
- ビット列の送受信
- 物理層は、上位層からのデータ(ビット列)を受け取り、物理媒体上で送受信します。伝送方式(単方向か双方向か)、伝送レート、伝送距離なども物理層で定義されます。
- 電気的な特性の設定
- 物理層は、ビット列の電気信号レベル、インピーダンス特性、タイミング等の電気的な特性を定義します。送受信側で電気信号を正しく解釈できるよう規定されています。
- トポロジの設定
- 物理層では、ネットワークのトポロジ(物理的な接続形態)を決定します。代表的なトポロジとしてはバス型、スター型、リング型などがあります。
- 物理媒体の種類の決定
- 物理層は、ネットワークで使用する物理媒体の種類(銅線ケーブル、光ファイバケーブル、無線媒体など)を規定します。
物理層は、OSI参照モデルの最下層であり、上位層から見ると透過的なサービスを提供しています。つまり、上位層はデータのビット列を渡すだけで、物理層がそのビット列を物理媒体上で送受信することになります。物理層はネットワーク通信の基盤となる重要な役割を担っています。
伝送媒体の種類と特性
[編集]ネットワークにおいて、データは様々な伝送媒体を通して送受信されます。伝送媒体には有線と無線の2種類があり、それぞれ異なる特性を持っています。
有線伝送媒体
[編集]有線伝送媒体には、以下のようなものがあります。
- ツイストペアケーブル
- 一対の絶縁被覆線を撚り合わせた構造のケーブルです。低コストで配線が容易なため、LAN(構内網)で広く利用されています。伝送距離は短めですが、シールドツイストペアケーブル(STP)なら電磁ノイズに強くなります。
- 同軸ケーブル
- 中心の銅線を絶縁体と外側の導体で覆った同軸状のケーブルです。ツイストペアケーブルよりも高速・長距離伝送が可能で、ノイズにも強いため、従来はLAN、CATV等に使われていました。
- 光ファイバケーブル
- ガラス繊維やプラスチック繊維で光信号を伝送するケーブルです。電磁ノイズの影響を受けず、高速・長距離伝送が可能です。幹線網やバックボーンネットワークなどに広く利用されています。
無線伝送媒体
[編集]無線伝送は電波を媒体として利用します。有線媒体に比べ自由度が高い反面、電波の特性や電波法の規制などの制約があります。
- 電波(ラジオ波、マイクロ波、ミリ波など)
- 電波はさまざまな周波数帯域で利用されています。通信速度、伝送距離、コストなどのトレードオフがあります。Wi-Fi、携帯電話網、衛星通信などで利用されています。
- 赤外線
- 赤外線は比較的近距離での利用に限られますが、設備コストが安価で構築が簡単です。リモコンやIrDAなどでよく使われています。
- 可視光線
- LED光や白色光によるデータ通信で、ディスプレイやLEDランプなどを送信源として利用できます。近年、研究が活発化しています。
伝送媒体は、ネットワークの要件(コスト、速度、距離、環境条件など)に応じて適切に選択する必要があります。有線と無線を組み合わせるハイブリッド型のネットワークも多く見られます。
信号とエンコーディング方式
[編集]ネットワークにおけるデータ伝送では、デジタルデータをアナログ信号に変換する必要があります。この変換方法をエンコーディングと呼びます。エンコーディング方式には様々な種類があり、使用する伝送媒体や通信速度、伝送距離などに応じて適切な方式を選択する必要があります。
ベースバンド伝送とブロードバンド伝送
[編集]- ベースバンド伝送
- デジタルデータをそのまま伝送媒体上で送信する方式です。信号にはキャリア波を使用せず、低速から中速の伝送に適しています。イーサネットLANやIEEE1394(Firewire)などでベースバンド伝送が採用されています。
- ブロードバンド伝送
- デジタルデータを高周波のキャリア波に重畳して伝送する方式です。広帯域の周波数を利用できるため、高速な伝送が可能です。ADSL、CATV通信、携帯電話などでブロードバンド伝送が利用されています。
エンコーディング方式の種類
[編集]- ユニポーラエンコーディング
- 1ビットあたり1つの信号レベル(振幅)を割り当てる単純な方式です。長い連続する0や1を表現できないなどの欠点があります。
- ポーラエンコーディング
- 0と1にそれぞれ正と負の振幅値を割り当てる方式です。連続する0や1に対応できますが、直流成分が残るのが欠点です。
- バイポーラエンコーディング
- ポーラエンコーディングに代替信号を導入し、直流成分を除去した方式です。AMI(種々の代替マーク反転)、HDB3、CMIなどがあります。
- マンチェスターエンコーディング
- 1ビットを2つの信号要素に割り当て、0と1の判別性を上げた方式です。クロック同期回復が容易ですが帯域効率が低下します。
- MLT-3(準縦帯域消去)
- 0のレベルを中間値とし、1の前後で正負の変化を与えることで直流成分を抑制する方式です。FDDI(光ファイバ分散データ環路)で採用されています。
これらの他にも、4B/5B、8B/10B、スクランブル化など様々なエンコーディング方式があります。伝送速度、伝送距離、ノイズ耐性などを考慮して、最適な方式を選択する必要があります。
物理層のプロトコル
[編集]物理層のプロトコルは、ネットワーク上でビット列の電気的・機能的な伝送方法を規定しています。主要な物理層のプロトコルは以下のとおりです。
- EIA/TIA-232、EIA/TIA-422、EIA/TIA-423
- EIA/TIA(米国電気通信工業会)によって策定された伝送規格です。EIA-232は古くから使われているシリアル通信の規格で、距離は短いものの低コストが特徴です。EIA-422とEIA-423はEIA-232の長距離版で、最大距離はそれぞれ1200m、1000mです。これらの規格では、データ回線の配線方式や電気的な特性、信号レベル、コネクタ形状などが規定されています。
- V.24、V.35、X.21
- ITU-T(国際電気通信連合)により策定された回線交換型のシリアル通信規格です。V.24(EIA-232に準拠)はアナログ回線用の一般規格、V.35は専用線用の高速規格、X.21はデジタル回線用の規格です。物理層とデータリンク層の両方を規定しています。
- HSSI (High-Speed Serial Interface)
- シスコシステムズが開発した高速シリアルインターフェース規格で、最大52Mbpsの伝送速度に対応しています。ルータやフレームリレーなどのWAN機器で採用されています。物理層の他、フレーミングなどのデータリンク層の一部も規定しています。
- イーサネット
- イーサネットは最もポピュラーなLAN規格であり、物理層の仕様も規定されています。最新規格の10Gベースでは、ツイストペアケーブル、同軸ケーブル、光ファイバなど複数の物理媒体が選択可能です。オートネゴシエーション機能により、最適なモードを自動選択できます。
- SONET/SDH
- 光ファイバ伝送路の標準規格で、SONet(米国規格)とSDH(国際規格)があります。帯域の同期多重階層構造やフレーミング、スクランブル化などが規定されています。長距離伝送や高信頼性が特徴です。
- DSL (Digital Subscriber Line)
- 既存の電話線を利用して高速データ通信を実現するための規格群です。ADSL、VDSL、HDSLなどがあり、伝送速度や伝送距離、ダイナミックレシオなどを規定しています。
このように、物理層のプロトコルは用途やネットワーク環境に応じて使い分けられています。物理層以外の規定もある場合がありますが、最終的には物理層がビット列の伝送方式を決定付けます。
データリンク層
[編集]データリンク層の役割と機能
[編集]データリンク層は、OSI参照モデルの第2層に位置し、物理層が提供する伝送サービスを利用して、隣接したノード間で信頼できる데ータ転送を行うことを主な役割としています。
データリンク層の主な機能は以下の通りです。
- フレーミング
- データリンク層は、上位層から受け取ったデータ列を、先頭と終端を示す規定の規則(フレーミング)に従ってフレームに区切ります。フレームには、送信先アドレス、error検出用の冗長ビットなどが付加されます。
- アドレス指定
- 同一の物理リンク上に複数のノードが存在する場合、各ノードにはデータリンク層レベルの物理アドレス(MACアドレスなど)が割り当てられます。フレームのアドレスフィールドにこの物理アドレスを設定することで、通信の送信元と宛先を特定します。
- データリンクの確立・管理
- ノード間のデータリンクを確立・解放する制御も、データリンク層が担当します。リンク確立時にはパラメータのネゴシエーションを行います。
- 順序制御
- フレームが順序どおりに届くよう、フレーム番号をつけて送受信の順序を制御します。
- エラー制御
- フレームのエラー検出用の冗長ビット(パリティビットやチェックサムなど)を付加し、受信側でエラーを検出します。エラーが発生した場合は、再送を要求するなどの対処を行います。
- フロー制御
- 受信側のバッファ溢れを防ぐため、フレームの送信側がフロー制御を行い、受信側が処理できる速度に合わせます。
- アクセス制御
- 共有型の伝送路を複数のノードが利用する場合、公平にリンクを使えるようアクセス制御を行います。
このように、データリンク層はフレーミング、アドレス指定、リンク管理、エラー制御、フロー制御などの機能を担い、物理層の上で信頼性のあるデータ伝送を実現します。上位層に対してはエラーフリーのリンクを提供するのが主な役割です。
フレーミングと誤り制御
[編集]フレーミング
[編集]フレーミングとは、データリンク層が上位層からの生データをフレームという単位に区切る処理のことです。フレームには制御情報が付加され、フレーム単位で送受信されます。
フレームの一般的な構造は以下の通りです。
フレームの一般的な構造 先頭識別子 宛先アドレス 制御フィールド データ FCSなど フレーム終端
- 先頭識別子
- フレームの先頭を識別するためのパターン(フラグ)
- 宛先アドレス
- 受信側のデータリンク層アドレス
- 制御フィールド
- フレーム種別や順序制御情報など
- データ
- 上位層からのデータ
- FCS(Frame Check Sequence)
- 冗長ビットによるエラー検出コード
- フレーム終端
- フレームの終端を示すパターン(フラグ)
誤り制御
[編集]ビット誤りは伝送路の状態によって発生する可能性があり、データリンク層ではこの誤りを検出して対処する機能が重要です。代表的な誤り制御手段は以下の通りです。
- パリティービット
- シンプルな方式で、データ部のビットを所定の規則で加算し、奇数か偶数かをビットで表します。受信側で同様の計算をして、パリティが合わなければビット誤りと判断します。
- チェックサム
- データを規定のビット単位に分けて加算し、その結果を冗長ビットとしてフレームに付加します。受信側で同様の演算を行い、チェックサムが合致すればビット誤りがないと判断します。
- 巡回冗長検査(CRC)
- データに対して特定の生成多項式を用いた割り算を行い、剰余をフレームに付加したものがCRCです。受信側で同様の演算を行い、CRCが0でなければビット誤りがあると判断します。CRCは高い誤り検出能力があり、広く利用されています。
誤りが検出された場合、通常はフレームの再送要求などを行い、エラーフリーの通信を実現します。このように、データリンク層はフレーミングと誤り制御によって、物理層の上で信頼性の高いデータリンクサービスを提供しています。
フロー制御
[編集]フロー制御は、送信側と受信側の処理速度の違いによるデータ損失を防ぐためのメカニズムです。送信側が受信側の能力を超えたデータを送ってしまうと、受信側のバッファがオーバーフローし、データが失われてしまいます。このような事態を避けるために、データリンク層ではフロー制御が行われます。
フロー制御には、以下の2つの方式があります。
- ストップアンドウェイト
- 最も単純なフロー制御方式で、1フレームずつ送信し、確認応答(ACK)を受け取ってから次のフレームを送信します。確認応答が届かない場合は、一定時間経過後に再送を行います。
- スライディングウィンドウ
- ストップアンドウェイトでは効率が悪いため、複数のフレーム(ウィンドウサイズ分)を続けて送信できるようになっています。受信側は最後に正常に受信したフレーム番号(ACK番号)を通知し、送信側はそのACK番号までのフレームを送信済みと見なします。ウィンドウサイズが大きいほど効率は上がりますが、再送する必要があるフレーム数も増えます。
スライディングウィンドウには、以下のような種類があります。
- ストップアンドウェイト方式(ウィンドウサイズ=1)
- го方式(送信ウィンドウのみ)
- л方式(受信ウィンドウのみ)
- го-л方式(送受信の双方向ウィンドウ)
フロー制御は上記のような方法で行われますが、さらに以下のような手法が利用されることもあります。
- 発停止フロー制御
- 受信側から一時停止(STOP)を送ると、送信側は送信を止める
- レート制御
- 受信側のバッファ状況に応じて、送信側の送信レートを制御する
フロー制御が適切に行われれば、送信側と受信側の処理能力の違いによるデータ損失を防ぐことができ、信頼性の高い通信が実現できます。
アクセス制御方式
[編集]アクセス制御方式は、共有型の伝送路を複数のノードが利用する場合に、公平かつ効率的にリンクを利用できるようにするための方式です。ノード間で競合が発生しないよう制御を行う必要があります。主なアクセス制御方式は以下のとおりです。
多重アクセス制御 (Multiple Access Control)
[編集]- CSMA/CD (Carrier Sense Multiple Access with Collision Detection)
- イーサネットで採用されている方式です。ノードは送信前にキャリアを検出し、伝送路が空いていれば送信します。複数のノードから同時に送信された場合は衝突が発生するので、一定時間待ってランダムな時間後に再送信します。
- CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)
- IEEE 802.11の無線LANで採用されています。送信前に予約信号を送り、返信を受けると送信を開始します。送信中も定期的に予約信号を送り、衝突を回避します。
トークンパッシング
[編集]- トークンリング方式
- ノードをリング状につなぎ、トークン(特殊フレーム)を1つ周回させます。トークンを持ったノードのみが送信できます。IEEE 802.5 Token Ringなどで採用されています。
- トークンバス方式
- バストポロジの場合のトークン制御方式です。IEEE 802.4 Token Busなどで使われています。
制御ノード方式
[編集]- ポーリング方式
- 制御ノードから各ノードを順番に問い合わせ(ポーリング)、該当ノードのみが送信できるよう制御します。主に基地局制御の無線システムで採用されています。
- 予約方式
- ノードから制御ノードにスロット予約を行い、制御ノードから予約されたスロットのみを使えるよう指示します。DQDB (Distributed Queue Dual Bus) などで採用されています。
アクセス制御方式を適切に選択することで、ネットワークの効率やスループットの向上、公平性の確保などを実現できます。メディアの特性やネットワークの規模、トラフィックの性質などを考慮して、最適なアクセス制御方式を選ぶ必要があります。
データリンク層のプロトコル
[編集]データリンク層には、さまざまなプロトコルが存在します。代表的なデータリンク層プロトコルを以下に示します。
- PPP (Point-to-Point Protocol)
- PPPは、リンク層の標準プロトコルであり、主にダイアルアップ接続やDSLなどのポイントツーポイント回線で使用されています。フレーミング、エラー制御、リンク制御などの機能を持っています。PPPにはオプションとして認証や圧縮機能も備わっています。
- HDLC (High-level Data Link Control)
- HDLCは、ビット指向のデータリンクプロトコルです。フレーミング、フロー制御、エラー制御などの機能を提供します。HDLCの変種として、LAPBやPPPなどがあります。
- イーサネットプロトコル
- イーサネットは最もポピュラーなLAN規格であり、データリンク層のプロトコルが規定されています。フレーム形式、アドレス指定、CSMA/CDなどによるアクセス制御方式が定められています。
- ARP (Address Resolution Protocol)
- ARPは、IPアドレスからMACアドレスを解決するためのプロトコルです。IPデータグラムをデータリンク層フレームにカプセル化する際に使用されます。
- スパンニングツリープロトコル
- スパンニングツリープロトコルは、イーサネットネットワークにおいて、冗長経路による回線ループを防ぐためのプロトコルです。ブリッジやスイッチ間で動作し、論理的なツリー構造を構築します。
- PPPoE (Point-to-Point Protocol over Ethernet)
- PPPoEは、Ethernetフレーム内にPPPフレームをカプセル化する手順を規定したプロトコルです。主にインターネットサービスプロバイダによる常時接続サービスで利用されています。
- WLAN プロトコル
- IEEE 802.11規格で定められた無線LANプロトコルは、フレーム制御、アクセス制御、WEP/WPAなどの暗号化、QoSコントロールなどを規定しています。
データリンク層には他にもさまざまな規格やプロトコルが存在し、用途やネットワーク環境に応じて使い分けられています。これらのプロトコルにより、データリンク層は物理層の上で、信頼性とアクセス制御が行われた論理リンクを提供することができます。
ネットワーク層
[編集]ネットワーク層の役割と機能
[編集]ネットワーク層は、OSI参照モデルの第3層に位置し、異なるネットワーク間でのデータ転送を制御する重要な役割を担っています。ネットワーク層の主な機能は以下の通りです。
- 論理アドレス指定
- ネットワーク層では、各ノードに論理アドレス(IPアドレスなど)が割り当てられます。この論理アドレスを使って送信元と宛先を特定し、データグラムの転送を行います。論理アドレスは、ネットワークの論理構造を表すもので、物理的なアドレスとは独立しています。
- 経路選択(ルーティング)
- 送信元から宛先までのデータグラムの経路を決定するのがルーティングです。ルーターなどのネットワーク機器がルーティングテーブルに基づいて最適な経路を選び、データグラムを次の転送先に送ります。経路選択では、最短距離や利用可能帯域、コストなどを考慮します。
- 論理的なネットワーク構築
- IPアドレスやサブネットマスクを適切に設定することで、複数のネットワークを論理的にグループ化したり、ネットワークを階層化したりすることができます。これにより大規模ネットワークの構築が可能になります。
- データグラムの分割と再構築
- 上位層から受け取ったデータが大きすぎる場合、ネットワーク層でデータグラムに分割して送信します。受信側では分割されたデータグラムを再構築します。
- 最適な経路選択支援
- ネットワーク層のプロトコルには、ルーティングプロトコル(RIP、OSPFなど)があり、ルータ間でルーティング情報を交換することで、最適な経路選択を支援します。
- サービスの品質(QoS)制御
- DiffServやIntServなどの機構により、データ転送の信頼性や優先順位付けなどサービス品質を制御することができます。
このようにネットワーク層は、複数のネットワークを論理的に統合し、データグラムの転送経路の選択とグラムの分割・再構築を行うことで、エンドツーエンドのデータ転送を実現しています。ネットワーク層の役割は、大規模なネットワークを構築し、効率的に運用することにあります。
論理アドレス指定とルーティング
[編集]論理アドレス指定
[編集]ネットワーク層では、各ノードに論理アドレス(IPアドレスなど)が割り当てられます。この論理アドレスは、ネットワーク上の各ノードの論理的な位置を示すものです。
- IPアドレス
- IPアドレスはインターネット環境で広く使われています。IPv4アドレスは32ビットで表され、ネットワーク部とホスト部から構成されます。IPv6アドレスは128ビットで、より多くのアドレス空間を提供します。
- サブネットマスク
- IPアドレスとサブネットマスクを組み合わせることで、ネットワークをさらに小さなサブネットに分割できます。これにより、ネットワークの階層構造を作ることができ、アドレス指定の効率化やルーティングの最適化が可能になります。
- デフォルトゲートウェイ
- 別のネットワークに転送する際の出口となるデフォルトのゲートウェイ(ルータ)を指定します。目的のネットワークへの経路が特定できない場合に、このデフォルトゲートウェイにデータグラムを送信します。
ルーティング
[編集]ルーティングとは、送信元から宛先までのデータグラムの転送経路を決定するプロセスです。ルータなどのネットワーク機器が、経路選択の際にルーティングテーブルを参照します。
- ルーティングテーブル
- 送信先のネットワークアドレスと、そのネットワークへの最適な転送先(次のルータやゲートウェイ)が対応付けられた表です。
- ルーティングプロトコル
- ルータ間でルーティング情報を交換し、ルーティングテーブルを動的に構築・更新するためのプロトコルです。代表的なものにRIP、OSPFなどがあります。
- スタティックルーティング
- ルーティングテーブルを手動で設定するやり方です。小規模ネットワークでは適していますが、大規模・動的な環境では運用が難しくなります。
- ダイナミックルーティング
- ルーティングプロトコルを利用し、自動的にルーティングテーブルを構築・更新する方式です。ネットワークの変更に動的に追従できるメリットがあります。
ネットワーク層は、論理アドレス指定とルーティング機能により、ネットワーク全体を論理的に構築し、効率的なデータ転送を実現しています。ネットワークの規模が大きくなるほど、これらの機能が重要になります。
パケット交換方式
[編集]パケット交換方式は、データを小さな塊(パケット)に分割して転送する方式です。ネットワーク層は、この方式に基づいてデータの転送を行います。主なパケット交換方式には以下のものがあります。
- データグラム方式 (無接続型パケット交換方式)
- データグラムとは、ネットワーク層のパケット単位です。送信側は宛先と経路を指定して個々のデータグラムを送信し、受信側はそれらを組み立ててデータを復元します。代表的なプロトコルにIPがあります。
- メリット
- 経路設定が不要で柔軟性が高い
- デメリット
- 到着順序や到着自体が保証されない
- 仮想回線方式 (ネットワーク接続型パケット交換方式)
- あらかじめ送信元と宛先間の経路を確立した上で、データを送信します。通信セッション中は同じ経路を使うため順序が維持され、信頼性が高くなります。代表的なプロトコルにX.25やフレームリレーがあります。
- メリット
- 順序性と到達性が保証される
- デメリット
- 事前の接続確立が必要で柔軟性が低い
- ラベル付けパケット交換
- MPLS(Multi-Protocol Label Switching)など、パケットにラベルを付与して転送する新しい方式です。経路を事前に確保する必要はなく、ラベルスイッチングにより高速な転送が可能です。
- メリット
- 無接続型の柔軟性と接続型の転送効率を両立
これらの方式は用途に応じて使い分けられています。インターネットではデータグラム方式が主流ですが、基幹ネットワークではMPLSが広く利用されています。ネットワーク層は、これらのパケット交換方式によりエンドツーエンドのデータ転送を実現しています。
ネットワーク層のプロトコル
[編集]ネットワーク層には、様々なプロトコルが存在します。代表的なプロトコルは以下の通りです。
- IP (Internet Protocol)
- IPはインターネットの基本プロトコルであり、パケット交換ネットワークにおけるデータグラムの送受信を規定しています。IPv4とIPv6の2つのバージョンがあります。IPは無接続型で信頼性は低いものの、ネットワークの論理的な構築、ルーティング、フラグメンテーションなどの重要な機能を提供します。
- ICMP (Internet Control Message Protocol)
- ICMPはIP上で動作するプロトコルで、IPパケットの到達性や経路制御に関する制御メッセージを送受信します。代表的なメッセージとして、エコー要求/応答(Ping)やタイムエクシード、到達不能メッセージなどがあります。
- ARP (Address Resolution Protocol)
- ARPは、論理アドレス(IPアドレス)から物理アドレス(MACアドレス)を解決するためのプロトコルです。同一ネットワーク内でIPパケットをフレームにカプセル化する際に使用されます。
- ルーティングプロトコル
- ルーティングプロトコルは、ルータ同士でルーティング情報を交換し、ルーティングテーブルを構築・更新するためのプロトコルです。
- ディスタンス・ベクター型
- RIPなど
- リンクステート型
- OSPFなど
- パスベクター型
- BGPなど
- MPLS (Multi-Protocol Label Switching)
- MPLSはラベルスイッチングによるパケット転送を行うプロトコルです。経路を事前に確立する必要がなく、ハードウェアベースの高速転送が可能です。キャリアネットワークの基幹網で広く利用されています。
- IPsec (Internet Protocol Security)
- IPsecは、IPパケットの認証と暗号化を行うセキュリティプロトコルです。VPN構築の際によく使われます。
その他にも、モバイルIPなどのプロトコルが存在します。ネットワーク層のプロトコルは通信の基盤となり、様々なネットワークサービスの実現に貢献しています。プロトコルの選定は、ネットワークの構造、要件、規模などに応じて行われます。
トランスポート層
[編集]トランスポート層の役割と機能
[編集]トランスポート層は、OSI参照モデルの第4層に位置し、エンドツーエンドの確実なデータ転送とデータストリームの多重化を行う重要な役割を担っています。
トランスポート層の主な機能は以下の通りです。
- エンドツーエンドの通信の確立と解放
- トランスポート層は、送信側アプリケーションと受信側アプリケーション間の論理的な通信回線(セッション)を確立し、データ転送の開始と終了を制御します。
- データ伝送サービスの提供
- トランスポート層は、上位層(アプリケーション層)に対して、以下の2種類のデータ伝送サービスを提供します。
- 信頼性のない転送サービス(UDP)
- 到着順序や重複の有無を確認せず、データグラムを送信する。
- 信頼性のある転送サービス(TCP)
- 順序性、重複データの排除、到達確認など、信頼性の高い全二重の転送サービスを提供する。
- データ転送の信頼性の確保
- 信頼性のある転送サービスでは、データの損失、重複、順序入れ替えを防ぐために、順序番号の付与、確認応答、再送処理、フロー制御などの機能を備えています。
- データストリームの多重化
- 1つのホストで複数のアプリケーションが通信を行う際に、送信元アプリケーション番号(ポート番号)と宛先アプリケーション番号を使って、データストリームを識別・多重化します。
- セグメンテーションとリアセンブリ
- 大きなデータをネットワーク層でサポートされる最大転送単位(MTU)以下に分割(セグメンテーション)して送信し、受信側で再構築(リアセンブリ)します。
トランスポート層は、上位層のアプリケーション層に対して、信頼性の高いエンドツーエンドの論理データストリームを提供します。また、ネットワーク層に対しては、アプリケーションを識別するアドレス指定を行います。このように、トランスポート層はアプリケーションとネットワークをつなぐ重要な役割を果たします。
信頼性のある伝送
[編集]トランスポート層における信頼性のある伝送は、TCP(Transmission Control Protocol)によって実現されています。TCPは以下のような機能を備え、確実でエンドツーエンドの通信を実現しています。
- 順序番号の付与
- TCPセグメントには順序番号が付与され、受信側ではこの番号に基づいて正しい順序で組立てられます。順序が入れ替わったセグメントは破棄されます。
- 確認応答(ACK)とスライディングウィンドウ
- 受信側は正常に受信したセグメントの最後の順序番号をACK番号として送信側に通知します。送信側はACK番号までのセグメントが到達したと判断し、それ以降のデータを送信します。この仕組みにより、スライディングウィンドウと呼ばれる可変サイズの送受信窓口が実現されます。
- フロー制御
- 受信側はウィンドウサイズ(受信可能なデータ量)を通知し、送信側はそれを超えないよう調整します。これにより受信側のバッファオーバーフローを防ぎます。
- 再送処理
- 確認応答が一定時間来ない場合、送信側はタイムアウトを検知し、未到達のセグメントを再送信します。これにより、パケットロスに対処しています。
- 輻輳制御
- パケット損失が発生した場合、送信側はネットワークの輻輳が原因と判断し、送信ウィンドウサイズを縮小することで輻輳の解消を図ります。
このように、TCPでは信頼性を確保するための様々な仕組みが組み込まれています。一方、UDPはシンプルで高速な無信頼データグラム通信を実現するプロトコルで、ストリーミングメディアの転送などに利用されています。
TCPとUDPを使い分けることで、トランスポート層は上位層のアプリケーションの要求に合わせた伝送サービスを提供することができます。
フロー制御と輻輳制御
[編集]フロー制御
[編集]フロー制御は、受信側のバッファの容量を超えてデータが送られるのを防ぐ機能です。受信側が一時的に処理能力を落とした場合などに、送信側の送信レートを調整することで、データの損失を防ぎます。
TCPでは以下のようなフロー制御が行われています。
- 受信側は受信ウィンドウサイズ(rwnd)を送信側に通知する
- 送信側は、受信ウィンドウの空きサイズ以上のデータを送信しない
- 受信ウィンドウが一杯になると、受信側は送信側に0のウィンドウサイズを通知
- 送信側は受信ウィンドウが0の間は送信を止め、ウィンドウが開くのを待つ
このようにフロー制御により、受信側のバッファ容量を超える送信を抑制し、データの損失を防いでいます。
輻輳制御
[編集]一方、輻輳制御はネットワーク上の輻輳(渋滞)を緩和し、パケット損失を最小限に抑えるための機能です。TCPでは以下のような輻輳制御が行われています。
- 輻輳ウィンドウ(cwnd)の設定により、同時に送信できるデータ量を制限
- 3重複ACKや、タイムアウトが発生した場合は輻輳と判断し、cwndを半分に減らす
- 輻輳回避フェーズでは、cwndを徐々に増やしてゆっくりと送信量を戻す
- 遅延ACK、ナグル化などにより、不要な送信を抑制
このように、輻輳が発生した際にはデータの送信量を絞り、徐々に戻すことで輻輳の解消を図っています。
フロー制御と輻輳制御は、TCPの信頼性と高パフォーマンスを実現する上で非常に重要な機能です。これらの制御により、エンドツーエンド間での効率的で確実なデータ転送が可能になっています。
トランスポート層のプロトコル
[編集]トランスポート層では、主に以下の3つの主要プロトコルが使われています。
- TCP (Transmission Control Protocol)
- TCPは、信頼性のある全二重の通信を提供するプロトコルです。確認応答、順序制御、フロー制御、輻輳制御などの機能を備え、データの到達を保証します。
- セグメンテーション/リアセンブリ
- 順序制御とフロー制御 (シーケンス番号、ACK、ウィンドウサイズ)
- 再送処理 (タイムアウトと高速再送)
- 輻輳制御 (スロースタート、輻輳回避、高速回復)
- TCPは、ファイル転送、電子メール、リモートログインなど、データの完全性が重視されるアプリケーションで利用されています。
- UDP (User Datagram Protocol)
- UDPは、非接続型の簡易的なデータグラム通信を提供するプロトコルです。TCPほどの機能は備えていませんが、オーバーヘッドが小さく高速な転送が可能です。
- セグメンテーション (リアセンブリはなし)
- 疑似ヘッダによるチェックサム計算
- ポート番号によるアプリケーションの多重化
- UDPは、リアルタイム性が重視されるストリーミングメディアの配信や、DNSなどの軽量なデータ転送に適しています。
- QUIC
- QUICは、GoogleがUDPの上に実装した新しい汎用のトランスポート層プロトコルです。主な特徴は以下の通りです。
- UDP上で動作し、TCP同様の信頼性と順序制御、フロー制御、輻輳制御を備える
- ストリーム多重化によりTCPヘッドオブロードの削減が可能
- 0-RTT と 1-RTTの接続確立により高速接続が可能
- TLS 1.3によるセキュア通信が標準で行われる
- 接続移行により通信経路の変更時にコネクションを維持できる
- QUICはHTTPのようなウェブプロトコルに最適化されており、パケットロス時の高速な再送や、TCP起因の問題(ヘッドオブロード、ポート枯渇等)を回避できるメリットがあります。
- HTTP/3
- HTTP/2まではTCPが使用されていましたが、HTTP/3ではQUICが採用されました。QUICの特性を活かすことで、以下のようなHTTP/3の改善点が期待されています。
- 接続の確立が高速になり、レイテンシが低減
- ストリーム多重化により単一コネクションでのスループット向上
- ヘッドオブロードの影響を受けない
- TCPのパケットロスや輻輳制御アルゴリズムの問題を回避
- 0-RTTでの再接続が可能に
- QUICのセキュリティ強化とプライバシー保護
- モバイル環境でのパフォーマンス改善
その他のプロトコルとして、以下のようなものがあります。
- SCTP (Stream Control Transmission Protocol)
- TCP/UDPの両方の特徴を併せ持つ
- DCCP (Datagram Congestion Control Protocol)
- 信頼性はないがTCP同様の輻輳制御を行う
トランスポート層のプロトコルを適切に選択することで、アプリケーションの要求に合わせた通信サービスを提供できます。TCPとUDPはその代表的な選択肢といえるでしょう。
セッション層
[編集]セッション層の役割と機能
[編集]セッション層は、OSI参照モデルの第5層に位置し、アプリケーション間の通信の確立、維持、同期化を行う役割を担っています。
セッション層の主な機能は以下のとおりです。
- セッションの確立・維持・同期
- データの送受信を行うためには、まずアプリケーション間でセッション(通信回線)を確立する必要があります。セッション層はこのセッション確立を制御し、確立中のセッションを維持・管理します。また、通信エンティティ間の同期を取る役割も担っています。
- トークン管理
- 特定のリソースへのアクセスを制御するため、トークンを発行・管理します。セッション内で安全にトークンをやり取りできるよう、管理します。
- ノード間同期
- 通信ノード間で処理の同期を取ることで、データの分割や並列実行の効率を上げます。
- 再開機能
- 通信セッションが中断された場合、中断前の状態を保存し、再開時にその状態から再開できるようにします。この機能をチェックポインティングと呼びます。
- セッション停止・再開
- 一時的にセッションを停止したり、必要に応じて再開することができます。
- セッション終了処理
- 通信が終了した際に、セッション切断の手順を制御して通信リソースの解放を行います。
このように、セッション層はアプリケーション層とトランスポート層の間に位置し、アプリケーション間の通信制御を行うことで、効率的で信頼性の高い通信を実現します。ただしセッション層の機能を実装するプロトコルは限られており、多くの場合はアプリケーション層で代替されています。
セッション管理とチェックポインティング
[編集]セッション管理
[編集]セッション層は、アプリケーション層の通信セッションを管理する重要な役割を担っています。セッション管理には以下のような機能が含まれます。
- セッションの確立・解放
- アプリケーション間の論理的な通信回線(セッション)を確立し、通信が終了したら適切にセッションを解放します。
- セッションの多重化
- 1つのトランスポート接続上で、複数のセッションを多重化して同時に実行できるようにします。
- セッション名の割り当て
- 各セッションに固有の名前を付与し、セッション間の混同を防ぎます。
- 同期ポイントの設定
- 通信エンティティ間で、処理の同期をとる再同期ポイントを設定できます。
- モード設定
- セッション内での通信モード(半二重、全二重、単一方向など)を設定できます。
- トークン管理
- データアクセス権などのトークンを発行・管理し、適切にセッション内で渡します。
チェックポインティング
[編集]チェックポインティングとは、通信エラーやシステム障害が発生した際に、その時点のセッション状態を保存しておく機能です。障害が解決した後は、保存した状態から通信を再開できます。
- チェックポインティングは高可用性システムに重要な機能です
- セッションの状態(変数値、通信の進行状況など)をスナップショットとして保存
- チェックポイントの設定間隔は、システムの重要度に応じて変更可能
- 障害発生時にトランザクションをロールバックし、チェックポイントから再開
- チェックポイントを利用すれば、シームレスな復旧が可能に
このようにセッション層は、セッション管理とチェックポインティングにより、確実な通信の実現とシステムの可用性向上に貢献しています。ただし、セッション層を実装するプロトコルが限られているため、多くの場合アプリケーション層でこれらの機能が代用されています。
セッション層のプロトコル
[編集]セッション層を実装するプロトコルは非常に限られており、よく知られているものは以下の通りです。
- X.225 / ISO 8327
- OSI参照モデルに準拠したセッション層プロトコルです。セッションの確立、データ転送、同期、チェックポインティング、セッション解放などの機能を規定しています。しかし、実装が複雑でオーバーヘッドが大きいことから、あまり広く利用されていません。
- BSD Socket API
- BSD UNIXで開発されたソケットAPIは、セッション層の機能をAPIレベルで実装したものといえます。TCP/IPベースのクライアント・サーバーアプリケーションの開発に広く使われてきました。セッションの確立、切断、データ転送などの機能を提供しています。
- WinSOCK
- WinSock(Windows Sockets)は、Microsoft Windows プラットフォームでネットワーク通信を行うための API(Application Programming Interface)です。WinSockは、BSDソケット API を模倣していますが関数名やパラメータに互換性はなく、TCP/IP やその他のネットワークプロトコルを使用してデータ通信を行うための機能を提供します。
- サポートプロトコル: TCP、UDP、IP、ICMP、FTP、HTTP、SMTP などのネットワークプロトコルをサポートしています。
- ソケットの作成と管理: ソケットの作成、バインド、接続、送信、受信など、ソケットの管理に必要な機能を提供します。
- 非同期通信: 非同期ソケット操作をサポートし、マルチスレッドやイベント通知を使用してネットワーク通信を効率的に処理できます。
- エラーハンドリング: エラー処理機能を提供し、エラーが発生した場合に適切に対処できるようにします。
- TLS/SSL
- TLSおよびその前身であるSSLはセッション層と密接に関係しています。TLSハンドシェイクによってクライアントとサーバー間に安全なセッションを確立し、セッションIDによってセッションを管理・再開することができます。
- RPC (Remote Procedure Call)
- RPC技術では、リモートプロセス間のセッションを確立し、呼び出し側と受け側の同期を取ることが重要です。RPC実装ではセッション層に相当する仕組みが含まれていると考えられています。
- アプリケーション層におけるセッション管理
- 多くの現代のアプリケーション層プロトコル(HTTP、FTP、SMTPなど)では、セッション管理の機能をアプリケーション層に組み込んでいます。セッション層のプロトコルを別途実装するよりも効率的だからです。例えばHTTPではCookieを用いてステートフルな通信を実現しています。
このようにセッション層の機能を実装したプロトコル自体は非常に限られていますが、上位層のアプリケーション層プロトコルがこの機能を代替する形で発展してきました。セッション層の概念は引き続き重要ですが、個別のプロトコル層としての役割は小さくなっています。
プレゼンテーション層
[編集]プレゼンテーション層の役割と機能
[編集]プレゼンテーション層は、OSI参照モデルの第6層に位置し、アプリケーション層とセッション層の間に存在します。その主な役割は、異なるデータ表現形式やエンコーディング方式を使用するシステム間で、データの変換と解釈を行うことです。
プレゼンテーション層の主な機能は以下の通りです。
- データ変換
- 異なるデータ形式(文字コード、マルチメディアデータ形式など)を相互に変換します。例えば、ASCIIコードをUnicodeに変換したり、JPEGをGIFに変換したりすることができます。
- データ圧縮/伸張
- ネットワーク上の転送効率を上げるため、データを送信前に圧縮し、受信側で伸張します。画像やテキストデータの圧縮に有効です。
- データ暗号化/復号化
- 機密データの保護のため、送信前にデータを暗号化し、受信側で復号化する機能を提供します。SSLやPGPなどの暗号化規格に準拠します。
- データ記述
- データの構造と意味を記述する際の規則を定義します。ASN.1などの規約に基づきます。
- ファイル転送の取り決め
- 異なるオペレーティングシステム間でファイルを転送する際の取り決め(ファイル構造、ブロック構造など)を行います。
プレゼンテーション層は、異なるシステム環境間の相互運用性を確保し、アプリケーション層に対して適切な表現形式のデータを提供することを目的としています。アプリケーションはデータの構造や表現形式を意識せずに動作できます。ただし実際には、この層の機能をアプリケーション層で実装することが多くなっています。
データ変換とフォーマット
[編集]プレゼンテーション層の主要な機能の1つが、異なるデータ形式間での変換です。コンピュータシステム間で相互運用性を確保するためには、データ表現形式の違いを吸収する必要があります。
データ形式変換
[編集]- 文字コード変換
- ASCIIコード、Unicodeコードなどの変換
- クライアント/サーバの環境に合わせた変換
- マルチメディアデータ形式変換
- 画像形式(JPEG、GIF、PNG、BMPなど)の相互変換
- 音声/動画ファイル形式(WAV、MP3、AVI、MP4など)の変換
- 数値データ形式変換
- 整数/浮動小数点の精度、バイトオーダー(エンディアン)の変換
データフォーマット
[編集]データの構造記述や、転送フォーマットの取り決めも、プレゼンテーション層の役割です。
- ASN.1 (Abstract Syntax Notation One)
- データ構造の記述言語として国際標準化
- 複雑なデータ型の構造を簡潔に記述可能
- XDR (External Data Representation)
- システム間でデータを移送する標準的なフォーマット
- マシンの違いによるデータ表現のずれを吸収
- ファイル構造の取り決め
- ファイルの論理構造(レコード/ブロック構造)の規定
- オペレーティングシステム間の違いを吸収
システム環境の違いによるデータ形式の相違を吸収することで、アプリケーション層に適切な表現形式のデータを提供できるのがプレゼンテーション層の役割です。近年では、XMLやJSONなどの柔軟なデータ記述言語も重要な役割を果たしています。
プレゼンテーション層の機能はアプリケーション層に取り込まれる場合が多くなりましたが、システム間の相互運用性を実現する上で、この層の概念は重要です。
符号化と暗号化
[編集]プレゼンテーション層では、データの安全性と機密性を確保するために、符号化と暗号化の機能を提供しています。
符号化
[編集]符号化とは、データを所定の規則に従って別の形式に変換する処理です。代表的な符号化方式は以下の通りです。
- 文字符号化
- ASCIIコード、Unicodeなどの文字コードへの変換
- 漢字や特殊記号の変換にも対応
- マルチメディアデータ符号化
- 画像、音声、動画データを効率的に表現・圧縮するための符号化
- 代表的なものにJPEG、MP3、H.264などがある
符号化の目的は、データを効率的に表現したり転送したりすることです。プレゼンテーション層ではシステム環境に合った適切な符号化を行います。
暗号化
[編集]一方、暗号化は通信データの保護を目的とした処理です。プレゼンテーション層では以下のような暗号化機能を提供します。
- 共通鍵暗号方式
- 送信側と受信側で同じ鍵を共有する方式
- DES、AES、SEED、Blowfishなどがある
- 公開鍵暗号方式
- 公開鍵と秘密鍵のペアを使う方式
- RSA、ElGamalなどの暗号化アルゴリズムがある
- SSL/TLSにも公開鍵暗号が使われている
- ハッシュ関数
- データの完全性を確認するための一方向関数
- MD5、SHA-1、SHA-256などがある
暗号化によってデータの機密性と完全性が確保され、安全なデータ通信が実現できます。SSL/TLSではプレゼンテーション層相当の機能として暗号化が行われています。
このように、プレゼンテーション層は適切な符号化と暗号化の機能を提供することで、データの効率的な表現と安全性を両立させる重要な役割を担っています。
プレゼンテーション層のプロトコル
[編集]プレゼンテーション層を実装するプロトコルは非常に限られており、主なものは以下の通りです。
- ASN.1 (Abstract Syntax Notation One)
- ASN.1はデータ構造を記述するための規則を定義した国際標準の規約です。OSI参照モデル自体の定義にも使用されています。BER(Basic Encoding Rules)などのエンコーディング規則とともに、データ表現のためのフレームワークを提供します。X.500ディレクトリサービスなどで利用されています。
- NVT (Network Virtual Terminal)
- Telnetの文字変換規約として策定されたプロトコルです。ASCIIコード以外の文字コードの変換や、画面制御コードの変換を行います。リモートログインを目的としたシンプルなデータ変換プロトコルです。
- SSL/TLS
- SSL(Secure Socket Layer)およびその後継のTLSは、プレゼンテーション層に分類される機能を提供するプロトコルです。公開鍵暗号方式とセッション管理により、データの機密性と完全性を確保します。Webブラウザと多くのアプリケーションで利用されています。
- MIME (Multipurpose Internet Mail Extensions)
- 電子メールにおけるマルチメディアデータの表現方法を規定したプロトコルです。メール本文と添付ファイルの区別、エンコーディング形式の指定などを行います。SMTP、POP、IMAPなどのメールプロトコルと連携して機能します。
- GIF、JPEG、MPEG
画像や動画ファイルの圧縮フォーマットや符号化規則を定めたものです。マルチメディアデータの効率的な表現や転送に役立っています。
このように、プレゼンテーション層の機能を実装するプロトコルは数が限られていますが、上位層のアプリケーション層プロトコルがこの役割を兼ねるようになってきました。例えばHTTPでは、マルチパートやContent-Encodingヘッダなどでマルチメディアデータの扱いを規定しています。
プレゼンテーション層の概念自体は有用ですが、個別のプロトコル層としての役割は小さくなりつつあります。
アプリケーション層
[編集]アプリケーション層の役割と機能
[編集]アプリケーション層は、OSI参照モデルの最上位層であり、ユーザーやアプリケーションプログラムとネットワークサービスとのインターフェースを提供する重要な役割を担っています。
アプリケーション層の主な機能は以下の通りです。
- ネットワークサービスへのアクセス
- ユーザーやアプリケーションからの要求を、適切なネットワークサービスへと変換します。電子メール、ファイル転送、リモートログインなどのサービスを利用できます。
- サービス表現の提供
- 下位層からのデータを最終的な形式に変換し、アプリケーションに対して適切な表現形式のデータやサービスを提供します。
- サービス統合
- 様々な下位層のサービスを組み合わせ、上位層に対して単一のサービスとして提供します。
- セキュリティの提供
- 認証、アクセス制御、データ暗号化などのセキュリティサービスを提供します。SSL/TLSなどを利用します。
- サービス管理
- 各種ネットワークサービスの起動、設定、制御、監視などの管理機能を提供します。
- プライバシー保護
- ユーザープライバシーに関連するサービスを提供します。例えばWebブラウザのプライバシー保護機能などがこれにあたります。
アプリケーション層は、ユーザーやアプリケーションに対して透過的にネットワークサービスを提供する重要な役割を果たしています。また、下位層のプロトコルの機能を統合して利用可能な形で提示しています。
近年ではアプリケーション層が肥大化し、下位層の機能をある程度取り込む傾向にあります。しかし、OSI参照モデルの設計思想は、各層の役割分担や相互運用性を確保する上で重要な指針となっています。
ネットワークサービスの種類
[編集]アプリケーション層では、様々なネットワークサービスを提供しています。代表的なサービスは以下の通りです。
- 電子メール
- SMTPやIMAP、POP3などのプロトコルを利用したメール送受信サービス
- ファイル転送
- FTPやTFTPなどのプロトコルを用いたファイル転送サービス
- リモートログインサービス
- TELNETやSSHなどを利用したリモートホストへのログインサービス
- ウェブサービス
- HTTPプロトコルを利用した、Webサイトの閲覧やWebアプリケーションの実行
- ディレクトリサービス
- DNSやLDAPなどのネーミングおよびディレクトリサービス
- ストリーミングサービス
- RTPやRTSPを利用した音声/動画データのストリーミング
- ネットワーク管理
- SNMPなどを使ったネットワーク機器の管理サービス
- クラウドサービス
- Webベースのクラウドストレージ、SaaSアプリケーションなど
このように多種多様なネットワークサービスがアプリケーション層で提供されており、ユーザーの要求に応じて適切なサービスを利用できます。
アプリケーション層のプロトコル
[編集]アプリケーション層では、上記のネットワークサービスを実現するための多くのプロトコルが規定されています。主要なものは以下の通りです。
- HTTP(Hypertext Transfer Protocol)
- Webブラウジングやデータ取得を行うプロトコル
- FTP(File Transfer Protocol)
- ファイル転送のためのプロトコル
- SMTP(Simple Mail Transfer Protocol)
- 電子メール転送のためのプロトコル
- POP(Post Office Protocol)
- メールの受信を行うためのプロトコル
- IMAP(Internet Message Access Protocol)
- メール受信と操作を行うプロトコル
- DNS(Domain Name System)
- ドメイン名とIPアドレスの名前解決を行うシステム
- DHCP(Dynamic Host Configuration Protocol)
- IPアドレスやネットワーク設定を自動的に与えるプロトコル
- SNMP(Simple Network Management Protocol)
- ネットワーク機器の監視と管理を行うプロトコル
- SSH(Secure Shell)
- 安全なリモートログインやファイル転送を行うプロトコル
その他、NFSやTelnet、LDAP、SIPなど、様々なプロトコルがアプリケーション層に存在します。これらのプロトコルを適切に選択・利用することで、必要なネットワークサービスを実現できます。
OSI参照モデルの活用
[編集]OSI参照モデルは、コンピュータネットワークにおける通信の標準的な枠組みを定義しています。このモデルは、ネットワーク通信の複雑さを階層化し、各層の役割と責任を明確にすることで、異なるベンダーの製品間での相互運用性を確保することを目的としています。
OSI参照モデルの応用例
[編集]- ネットワークトラブルシューティング
- OSI参照モデルは、ネットワークの問題を特定の層に分離して解決することを容易にします。各層の機能を理解することで、問題の原因を効率的に特定し、適切な対処を行うことができます。
- 新しいネットワークプロトコルの設計
- 新しいネットワークプロトコルを設計する際、OSI参照モデルを利用することで、プロトコルの機能をどの層に実装するかを明確にすることができます。これにより、既存のプロトコルとの互換性を維持しながら、新機能を追加することが可能になります。
- ネットワーク製品の開発
- ネットワーク機器やソフトウェアの開発において、OSI参照モデルは各層の機能要件を明確にするため、開発プロセスを円滑に進めることができます。また、各層の規格に準拠することで、相互運用性の確保にも役立ちます。
- ネットワークセキュリティの強化
- OSI参照モデルを活用することで、ネットワークセキュリティ対策を層ごとに実装することができます。例えば、物理層ではケーブルの保護、データリンク層ではMACアドレスのフィルタリング、ネットワーク層ではIPアドレスのフィルタリングなどを行うことができます。
- ネットワーク教育とトレーニング
- OSI参照モデルは、ネットワーク技術の学習や教育において重要な役割を果たしています。各層の機能と責任を理解することで、ネットワークの全体像を把握し、効果的な知識の習得が可能になります。
OSI参照モデルは、ネットワークの設計、実装、運用、トラブルシューティングなど、様々な場面で活用されています。このモデルを活用することで、ネットワークの複雑さを管理し、相互運用性と拡張性を確保することができます。
ネットワーク設計とトラブルシューティング
[編集]OSI参照モデルは、ネットワークの設計とトラブルシューティングにおいて非常に重要な役割を果たします。
- ネットワーク設計
- OSI参照モデルに基づいてネットワークを設計することで、各層の機能と責任が明確になります。これにより、適切なプロトコルやサービスを各層に割り当てることができ、効率的でスケーラブルなネットワークを構築することができます。また、モデルに従うことで、将来的な拡張性と相互運用性も確保されます。
- トラブルシューティング
- ネットワークの問題が発生した場合、OSI参照モデルを利用することで、問題の原因を特定の層に絞り込むことができます。各層の機能を理解していれば、問題の症状からその原因を効率的に特定し、適切な対処を行うことができます。
OSI参照モデルは、ネットワークのトラブルシューティングにおいて、問題の分離と特定を容易にします。例えば、物理層の問題であれば、ケーブルや接続の確認を行えばよいでしょう。データリンク層の問題であれば、MACアドレスやフレーム形式の確認が必要になります。このようにして、段階的に問題を絞り込むことができます。
新しいプロトコルの開発
[編集]OSI参照モデルは、新しいネットワークプロトコルの設計と開発においても活用されます。
- プロトコルの層への割り当て
- 新しいプロトコルを設計する際、OSI参照モデルを使用することで、そのプロトコルの機能をどの層に実装するかを明確にすることができます。これにより、プロトコルの責任範囲が明確になり、重複した機能の実装を避けることができます。
- 相互運用性の確保
- OSI参照モデルに準拠したプロトコルを開発することで、既存のネットワークプロトコルとの相互運用性を確保することができます。各層の規格に従うことで、異なるベンダーの製品間でも通信が可能になります。
- 将来の拡張性
- OSI参照モデルに基づいて開発されたプロトコルは、将来的な拡張性が高くなります。新しい機能や改良が必要になった場合でも、その機能を適切な層に実装することで、他の層への影響を最小限に抑えることができます。
新しいネットワークプロトコルを開発する際、OSI参照モデルを活用することで、プロトコルの設計と実装を効率的に行うことができ、相互運用性と拡張性も確保されます。このモデルは、ネットワーク技術の発展に欠かせない重要な役割を果たしています。
おわりに
[編集]OSI参照モデルの意義と将来展望
[編集]OSI参照モデルは、コンピュータネットワークの設計と運用において、長年にわたり重要な役割を果たしてきました。このモデルが提供する標準的な枠組みは、ネットワーク技術の発展と相互運用性の確保に大きく貢献してきました。
OSI参照モデルの最大の意義は、ネットワーク通信の複雑さを階層化し、各層の役割と責任を明確にしたことにあります。これにより、ネットワークの設計、実装、トラブルシューティングが容易になり、異なるベンダーの製品間での相互運用性も確保されました。
また、OSI参照モデルは、新しいネットワークプロトコルの開発においても重要な指針となっています。プロトコルの機能を適切な層に割り当てることで、重複した機能の実装を避け、将来的な拡張性も確保することができます。
ネットワーク技術は日々進化を遂げており、IoTやクラウドコンピューティングなど、新しい概念や技術が次々と登場しています。このような状況下においても、OSI参照モデルは依然として重要な役割を果たし続けています。将来的には、新しい技術に対応するために、モデルそのものの改定や拡張が必要になる可能性もあります。
しかし、OSI参照モデルの基本的な考え方、つまり、ネットワーク通信を階層化し、各層の機能と責任を明確にするという原則は、今後も変わることはないでしょう。このモデルは、ネットワーク技術の発展を支え、相互運用性と拡張性を確保する上で、欠かすことのできない存在であり続けるはずです。