OSI参照モデルの第5層(セッション層)とは?役割と身近な例

OSI参照モデルの第5層(セッション層)のアイキャッチ画像

OSI参照モデルの第5層(セッション層)は、通信する相手との「会話(セッション)」を始めて、続けて、終わらせるための層です。名前は聞いたことがあっても、「具体的に何をしているの?」がいちばんわかりにくい層かもしれません。

この記事では、セッション層の役割を標準の文書にそって説明し、Webサイトのログイン状態の維持など、身近なしくみとの関係、TCP/IPモデルでの扱い、よくあるトラブルと確かめ方を解説します。

OSI参照モデルの第5層セッション層を強調した7層図と、その役割・身近な例
目次

セッション層とは?役割をひとことで

セッションの流れ。開始、データのやりとり、区切り(同期点)、終了の4段階を示した図

OSI参照モデルを定めたITU-T X.200(ISO/IEC 7498-1と同じ内容)では、セッション層の目的を「協力しあう相手どうしが、会話を組み立てて同期させ、データのやりとりを管理するための手段を提供すること」としています。そのために、セッションの接続を作り、順序だったデータのやりとりを支え、接続をきちんと終わらせるサービスを提供します。

X.200が挙げているセッション層のサービスには、次のようなものがあります。

サービス(X.200)やさしく言うと
セッション接続の確立・解放会話を始める・きちんと終わらせる
通常データ・優先データの転送ふつうのデータと、急ぎのデータを送る
トークン管理「いまはどちらが話す番か」を管理する(片方ずつ話す半二重のときなど)
セッション接続の同期区切り(同期点)を決めておき、問題が起きたら決めておいた状態まで戻してやり直す
例外の報告問題が起きたことを知らせる

たとえば大きなデータを送っている途中で通信が切れたとき、同期点があれば「最後に確認できた区切りから再開する」ことができます。電話にたとえると、「もしもし」で会話を始め、話す順番をゆずりあい、話が途切れたら「どこまで話したっけ」と確かめて続きから話し、「それでは」で終わる、という会話の進め方を受け持つのがセッション層です。

TCP/IPモデルではどこにあたる?

RFC 1122が定めるTCP/IPの4つの層(リンク・インターネット・トランスポート・アプリケーション)には、独立したセッション層はありません。そのため、OSIのセッション層の役割は、一般にTCP/IPのアプリケーション層の中で扱われると説明されます。実際には、アプリやプロトコルがそれぞれ必要な形で「会話の管理」を受け持っています。

なお、第4層のTCPにも「接続(コネクション)」がありますが、TCPの接続はデータを確実に運ぶための通り道です。セッション層の「セッション」は、その上で行われる会話をどう組み立てるかという、もう一段上の考え方です。

セッション層に近い、身近なしくみ

ここで紹介するのは、OSIのセッション層のプロトコルそのものではなく、TCP/IPの世界で「会話を始める・続ける・終わらせる」という役割に近いしくみです。身近な例で考えると、セッション層の役割がイメージしやすくなります。

1. Webサイトの「ログインしたまま」の状態(Cookieとセッション)

ログインするとサーバーがセッションIDなどをCookieで渡し、ブラウザが毎回送り返してログイン状態を保つ流れ図

Webのやりとりに使うHTTPは、1回ごとのリクエストと応答が基本で、それだけでは「さっきログインした人」を覚えていません。そこで使われるのがCookieです。RFC 6265は、Cookieのしくみを「状態をほとんど持たないHTTPの上で、状態を持つセッションを作るためのもの」と説明しています。

  1. ログインに成功すると、サーバーがセッションを表す番号(セッションIDなど)をCookieとしてブラウザに渡す(Set-Cookie)
  2. ブラウザは、そのサイトにアクセスするたびにCookieを送り返す(Cookie)
  3. サーバーはCookieを見て「ログイン中のあの人だ」とわかる
  4. ログアウトしたり、決められた時間がすぎたりすると、セッションが終わる

「会話を始めて(ログイン)、続けて(ログイン状態の維持)、終わらせる(ログアウト・時間切れ)」という流れは、まさにセッション層の考え方に近いものです。

2. TLSのセッション再開

HTTPSで使われる暗号化のしくみTLSは、最初の接続で暗号のやりとりの準備(ハンドシェイク)をします。TLS 1.3(RFC 8446)には、以前の接続の情報を使って、次の接続を手早く始めるセッション再開(resumption)のしくみがあります。「前回の会話の続きとして、すばやく再開する」という点で、セッション層の役割に近いといえます。

TLSは「何層か」がよく話題になりますが、役割としては第5〜6層に近いと説明されることが多いものの、OSIに合わせて作られたプロトコルではないため、資料によって扱いが異なります。

3. ダウンロードの「続きから再開」

大きなファイルのダウンロードが途中で止まったとき、最初からではなく続きから再開できることがあります。HTTPでは、RFC 9110の範囲リクエスト(Range Requests)を使って、「ファイルのこの部分から先をください」と頼めます。区切りから再開する考え方は、X.200のセッション層の「同期」によく似ています。

よくあるトラブルと確かめ方

よくある症状と原因

  • すぐにログアウトされる:ブラウザがCookieを保存しない設定になっている、セッションの有効時間が短い、ブラウザを閉じると消える設定になっている
  • ログインしたのに、ページを移るとログインしていない扱いになる:Cookieが送られていない(ドメインやパスがちがう、ブラウザの拡張機能でブロックされている など)
  • 長い作業のあとで保存しようとするとエラーになる:セッションの時間切れ
  • ダウンロードが最初からやり直しになる:サーバーが範囲リクエストに対応していない

ブラウザで確かめる

多くのブラウザでは、開発者ツール(F12キーなど)の「アプリケーション」や「ストレージ」の画面で、そのサイトのCookieの名前・有効期限を確認できます。まずは、ブラウザの設定でCookieがブロックされていないかを見てみましょう。

コマンドで確かめる

次のコマンドは、Webページを1回取得して、サーバーから返ってきたヘッダーを表示するだけの確認用です。

curl -sI https://example.com/

返ってきたヘッダーの中に set-cookie: の行があれば、サーバーがCookieを渡そうとしていることがわかります。Expires や Max-Age を見ると、Cookieの有効期限の目安がわかります。

curl -sI https://example.com/ | grep -i accept-ranges

accept-ranges: bytes と表示されれば、そのファイルは範囲リクエスト(続きからのダウンロード)に対応している可能性が高いです。

よくある質問

セッション層のプロトコルは今は使われていないの?

OSIの考え方にもとづくセッション層のプロトコルはありましたが、いまのインターネットの中心はTCP/IPで、TCP/IPには独立したセッション層がありません。その役割は、Cookieを使ったセッション管理のように、アプリやプロトコルの中に組みこまれる形で受け継がれています。

「セッション」と「コネクション」はちがう?

言葉の使われ方は場面によって変わりますが、OSIの考え方では、コネクションは下の層の「つながり」、セッションはその上で行われる「会話のまとまり」と考えるとわかりやすいです。1つのWebのログインセッションの間に、TCPの接続が何回も作り直されることもあります。

セッションIDはなぜ大事に扱う必要があるの?

セッションIDは、サーバーが「ログイン中のあなた」を見分けるための合言葉のようなものです。他人に知られると、その人に「あなた」として振る舞われるおそれがあります。公共のパソコンで使ったあとはログアウトする、HTTPSのサイトだけでログインする、といった基本を守りましょう。

まとめ

  • セッション層は、通信する相手との会話(セッション)を始めて、続けて、終わらせる層
  • X.200では、接続の確立・解放、トークン管理、同期点によるやり直しなどがサービスとして挙げられている
  • TCP/IPには独立したセッション層がなく、役割は一般にアプリケーション層の中で扱われる
  • 身近な例は、Cookieによるログイン状態の維持、TLSのセッション再開、ダウンロードの続きからの再開
  • 確かめるときは、ブラウザのCookieの設定や curl -sI で set-cookie を見る

前の層は第4層(トランスポート層)、次の層は第6層(プレゼンテーション層)です。どちらもシリーズの記事で解説しています。

OSI参照モデル シリーズ記事

このシリーズでは、OSI参照モデルの全体像と、7つの層を1つずつ解説しています(各記事は順に公開予定です)。

参考資料

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

社内エンジニアとして、SREとセキュリティの仕事をしています。サーバーの構築や運用、クラウド環境の設計にも関わってきました。趣味はゲームと漫画・アニメ。

コメント

コメントする

目次