はじめに
コンピュータネットワークの基盤を支える重要な概念の1つにOSI参照モデルがあります。
このモデルは、通信プロトコルを7つの階層に分け、各階層が特定の役割を担っています。
今回はその中から、セッション層に着目していきます。
セッション層とは?
セッション層は、通信する二つのアプリケーション間でセッションの確立、管理、終了を行う役割を担っています。
つまり通信の始まりから終わりまでの一連のやり取りという事で、主な機能は以下のものなどがあります。
セッションの確立
通信を始める前に通信相手とセッションを確立します。
これにより、通信の準備が整ったことを確認し、セッションが確立されると通信を行うためのリソースが割り当てられ、互いの状態を同期させます。
データ交換の同期
データ通信中にエラーが発生した場合、データが途中で失われることがあります。
セッション層は、データの途中のやり取りを「チェックポイント」で同期させることで、エラーが発生しても再開が可能な状態を維持します。
セッションの管理
セッション層は、セッションの開始から終了までの全体的な管理を行います。
例えば、セッションの途中で一時的に通信を中断し、後で再開することも可能です。
また、セッションが不要になった場合は、適切に終了させることも担当します。
セキュリティの提供
セッション確立時に相手を認証する機能も備わっています。
これにより、正しい通信相手であることを確認し、不正なアクセスを防ぎます。
また通信中のデータが盗聴されない様にするための暗号化もこの層で行われることがあります。
これらの機能
セッション層の具体例
セッション層の具体例について以下に紹介します。
動画ストリーミングサービス
動画ストリーミングサービスを利用する際、ユーザーとサーバー間でセッションが確立されます。
このセッションにより、動画データの送受信が円滑に行われます。
途中で通信が途切れた場合でも、再生位置を記憶しているため、再接続後に途中から再生を続けることができます。
オンラインゲーム
オンラインゲームでも、プレイヤーとゲームサーバー間でセッションの確立が行われています。
ゲームの進行状況やプレイヤーデータが正確に同期されることで、プレイヤーは一貫したゲーム体験をすることができます。
ゲーム中に一時的に接続が切れた場合でも、再接続後にゲームを再開できるのがセッション層のおかげです。
ビデオ会議
ビデオ会議システムでは、参加者同士のセッションが確立されます。
このセッションにより、映像と音声データがリアルタイムで送受信できます。
また、会議の途中で参加者が入退出する際にも、セッション層が適切に管理を行っているので、スムーズな会議進行ができるのです。
セッション層と他の層の関係
セッション層はトランスポート層とプレゼンテーション層の間に位置します。
それぞれの層との関係は以下のようです。
トランスポート層との関係
トランスポート層はデータの信頼性やエラー訂正を担当しますが、セッション層はこれに加えて通信の論理的な管理を行います。
例えばトランスポート層がデータの正確な送受信を保証し、セッション層がデータのやり取りの流れを管理します。
プレゼンテーション層との関係
プレゼンテーション層は、データの形式や表現を担当します。
セッション層が通信の流れを管理することで、データのエンコードやデコード、暗号化などを効率的に行うことができます。
これにより、データが正しい形式でやり取りされ、セキュリティが保たれます。
セッション層のプロトコル
セッション層にはいくつかのプロトコルが存在するので、代表的なものをいくつか紹介します。
1.SMB(Server Message Block)
SMBは、ファイル共有やプリンタ共有を行うためのプロトコルで、ネットワーク上でのリソースアクセスを管理します。
2.NetBIOS(Network Basic Input/Output System)
NetBIOSは、ネットワーク上のコンピュータ間で通信を行うためのAPIで、セッション層の機能を提供します。
これにより、アプリケーション間でのデータ効果がスムーズに行われます。
3.RPC(Remote Procedure Call)
RPCは、リモートで他のコンピュータ上のプロシージャを実行するためのプロトコルです。
セッション層の機能を利用して、通信の確立や管理を行い、リモートプロシージャの実行をサポートします。
まとめ
セッション層は、通信する二つのアプリケーション間のセッションを確立、管理、終了する役割を担っており、この層も他の層と同様重要な層となっています。
以上、セッション層のお話でした。
セッション層の上には、プレゼンテーション層があります。
プレゼンテーション層について詳しく知りたい方はこちら。