【OSI 参照モデル L5 セッション層】SSL/TLS のレイヤーは何層

OSI 参照モデルTCP/IP モデルTCP/IP プロトコル実装
アプリケーション層アプリケーション層HTTP, DNS, DHCP,
SSH, MIME, TLS
アプリケーション
プログラム
プレゼンテーション層
セッション層
トランスポート層トランスポート層TCP, UDPOS
ネットワーク層インターネット層IP, ICMP, ARP, IPSec
物理層
OSI 参照モデルTCP/IP モデルは完全に 1:1 ではない。ARPデータリンク層ネットワーク層の間 (詳しくはここ)。
セッション層セッション層とは、セッション (通信の開始から終了までの一連の通信) を管理する層です。

セッション層の機能のみを実現する TCP/IP プロトコルはありません

TCP/IP モデルでは、アプリケーション層の各プロトコルごとにセッションを実装します。
(例:HTTP プロトコルでは、Cookie でセッション ID を管理)

SSL/TLS プロトコルは何層か?

SSL/TLS は次の階層に該当します。(セッション層に近い何か)

At the lowest level, layered on top of some reliable transport protocol (e.g., TCP [TCP]), is the TLS Record Protocol.
(中略)
the TLS Handshake Protocol, allows the server and client to authenticate each other and to negotiate an encryption algorithm and cryptographic keys before the application protocol transmits or receives its first byte of data.

https://datatracker.ietf.org/doc/html/rfc5246

現在の主流は TCP/IP モデルであり、無理やり OSI 参照モデルに当てはめなくてもいいです。

それでも、セッション層に該当するプロトコルがどうしても気になるあなたへ

OSI プロトコルであれば、「ISO/IEC 8327 プロトコル」等がセッション層に相当します。

なお、現在の主流は TCP/IP プロトコルであり、OSI プロトコルは滅びました。忘れましょう。

スポンサーリンク

HTTP プロトコルによるセッション

アプリケーション層によるセッションの実装例として、HTTP プロトコルを取り上げます。

HTTP プロトコルでは、セッション ID を利用してセッションを実現します。

以降では、セッション ID が [ある時] と [ない時] の違いを見て、セッションの実現を確認します。

セッション ID がない時

HTTP プロトコルは、前の情報を覚えていません。

そのため、ログインしたことも覚えてません。

このままでは、セッション (通信開始のログインから終了ログアウトまで) が実現できません。

セッション ID がある時

セッション ID を利用することで、ログインに成功しているユーザーかどうかを見分けることができます。

セッション ID は Cookie でやりとり
クライアント側はブラウザに Cookie としてセッション ID を保存。サーバー側はデータベースなどにセッション ID を保存

セッション ID で、セッション (通信開始のログインから終了ログアウトまで) を管理できます。

curl でセッション ID を管理

セッション ID は Cookie として保存するので、オプション -c (保存) と -b (送信) を使います。

curl -XPOST example.com/login -d "user=hoge&pass=tech" -c sessionid.txt
curl example.com/mypage -b sessionid.txt
スポンサーリンク

関連記事

OSI 参照モデルの L5/セッション層に関する説明は以上となります。

OSI 参照モデルTCP/IP モデルTCP/IP プロトコル実装
アプリケーション層アプリケーション層HTTP, DNS, DHCP,
SSH, MIME, TLS
アプリケーション
プログラム
プレゼンテーション層
セッション層
トランスポート層トランスポート層TCP, UDPOS
ネットワーク層インターネット層IP, ICMP, ARP, IPSec
物理層
OSI 参照モデルTCP/IP モデルは完全に 1:1 ではない。ARPデータリンク層ネットワーク層の間 (詳しくはここ)。