本記事は、以下の書籍を元に OSI 参照モデルのレイヤ5 セッション層について説明します。
最もおすすめの書籍
有名な書籍
前者2つよりも難易度が高め
OSI 参照モデルやその他のレイヤの解説については以下の記事をご確認ください。
- 【入門】OSI 参照モデル、TCP/IP とは
- 【OSI 参照モデル レイヤ1 物理層】イーサネットとは
- 【OSI 参照モデル レイヤ2 データリンク層】イーサネットとは
- 【OSI 参照モデル レイヤ3 ネットワーク層】IP とは
- 【OSI 参照モデル レイヤ4 トランスポート層】TCP/UDP とは
- 【OSI 参照モデル レイヤ5 セッション層】SSL/TLS とは ←イマココ
- 【OSI 参照モデル レイヤ6 プレゼンテーション層】MIME とは
- 【OSI 参照モデル レイヤ7 アプリケーション層】
セッション層とは
セッション層とは、セッション(通信の開始から終了までに行う、複数の通信を1つにまとめたもの)を管理する層です。
セッションの具体例を挙げると以下のとおりです。
例 | セッション開始 | セッション中 | セッション終了 | 同一性 |
---|---|---|---|---|
マイページ | ログイン | マイページの閲覧 | ログアウト | 同じセッション ID を持つクライアントは同じユーザーと見なす(毎回ログインしなくてよい) |
暗号化通信 | 共通鍵交換後 | 暗号化通信 | 共通鍵の有効期限 | 同じ TLS セッション(同じ共通鍵を持つ)クライアントは同じユーザーと見なす(毎回共通鍵を交換しなくてよい) |
セッション層と TCP/IP との対応
「OSI 参照モデルのセッション層」に対応する「TCP/IP の層」は存在しません [1]。
The application layer of the Internet suite essentially combines the functions of the top two layers -- Presentation and Application -- of the OSI reference model.
[1] https://datatracker.ietf.org/doc/html/rfc1122
セッション機能は、「TCP/IP のトランスポート層 or アプリケーション層のプロトコル」もしくは「アプリケーション自体の機能」で実装されています。
セッション機能を実装する TCP/IP のプロトコルの一例として、SSL/TLS プロトコルがありますが、これは以下の層にまたがっています。
モデル | SSL/TLS プロトコルの対応する層 | 層を跨ぐ処理 |
---|---|---|
OSI 参照モデル | トランスポート層とセッション層の間 [2] | TLS コネクション TLS セッション |
TCP/IP | アプリケーション層とトランスポート層の間 [3] | TLS Handshake Protocol TLS Record Protocol [3] |
[2] https://ja.wikipedia.org/wiki/Transport_Layer_Security
At the lowest level, layered on top of some reliable transport protocol (e.g., TCP [TCP]), is the TLS Record Protocol.
[3] https://datatracker.ietf.org/doc/html/rfc5246
(中略)
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.
SSL/TLS プロトコルとは
SSL(Secure Sockets Layer)/TLS(Transport Layer Security) プロトコルとは、主にアプリケーション層のプロトコルを暗号化するために使用するプロトコルです。
なお、TLS は SSL の新しいバージョンのことです(TLS 1.0 は SSL 3.1 のことです。)
SSL/TLS とアプリケーション層のプロトコルの組み合わせ
SSLと組み合わせたプロトコル | ポート番号 | 元のプロトコル | ポート番号 |
---|---|---|---|
HTTPS | 443 | HTTP | 80 |
SMTPS | 465 | SMTP | 25 |
LDAPS | 636 | LDAP | 389 |
FTPS (data) | 989 | FTP (data) | 20 |
FTPS (control) | 990 | FTP (control) | 21 |
IMAPS | 993 | IMAP | 143 |
POP3S | 995 | POP3 | 110 |
SSL/TLS ハンドシェイク
SSL/TLS ハンドシェイクは、アプリケーション層のプロトコルが暗号化通信を開始するために、SSL/TLS コネクションを確立することです。
なお、SSL/TLS ハンドシェイクは、3way ハンドシェイクの(TCP コネクションが確立した)後に実施します。
クライアント | サーバ | 備考 | |
---|---|---|---|
← | HelloRequest | ClientHello を要求 | |
ClientHello | → | 以下を送信 ・TLSのバージョン ・乱数 ・セッションID ・暗号方式 ・ハッシュアルゴリズムのリスト(cipher_suites) ・圧縮方法 | |
← | ServerHello | Client Hello から利用する cipher_suites 等を選ぶ | |
← | ServerCertificate | サーバーの公開鍵と証明書 | |
← | ServerKeyExchange | 鍵交換プロトコルに依存 anonymous Diffie-Hellman であれば、gx mod p (サーバーの秘密鍵で暗号した共通値)を送信 | |
← | CertificateRequest | ClientCertificate を要求 | |
← | ServerHelloDone | サーバ側からのメッセージ送信が終わった事を示す | |
ClientCertificate | → | クライアントの公開鍵と証明書 | |
ClientKeyExchange | → | 鍵交換プロトコルに依存 anonymous Diffie-Hellman であれば、gy mod p(クライアントの秘密鍵で暗号した共通値)を送信 | |
CertificateVerify | → | クライアントが署名能力を持っていることを証明するために、全メッセージに対し、共有されたmaster secret で署名 | |
ChangeCipherSpec | → | 暗号通信に移行 | |
Finished | → | 暗号文 | |
← | ChangeCipherSpec | 暗号通信に移行 | |
← | Finished | 暗号文 | |
アプリケーション層のデータ通信 | ⇔ | アプリケーション層のデータ通信 | 暗号文 |
https://qiita.com/n-i-e/items/41673fd16d7bd1189a29
TLS 証明書、公開鍵、秘密鍵の詳細については、以下の記事をご覧ください。
TLS セッションとは
SSL/TLS におけるセッションとは、複数の SSL/TLS コネクションを1つに束ねたものです。
SSL/TLS セッションが確立されている限り、別の SSL/TLS コネクションで共通鍵を使い回すことができます。

上記のように1つの TLS セッションでは、複数(1つ以上)の TLS コネクションが存在します。
同じ TLS セッションであれば、別の TLS コネクションであっても、前回の共通鍵を使い回すことが可能です。
HTTP セッションとは
HTTP プロトコル自体にセッション機能は実装されていません。
HTTP におけるセッションとは、アプリケーション側でセッション ID を管理することでクライアントの状態(ログイン済みや買い物かごの情報など)を覚えておくことです。
HTTP を用いたアプリケーションでは、一般的にセッション ID として cookie を利用することでセッションを管理します。
セッション管理の詳細については、以下の記事をご覧ください。

その他のレイヤについて
OSI 参照モデルの5層目のセッション層に関する説明は以上となります。
他のレイヤについては以下をご覧ください。
- 【入門】OSI 参照モデル、TCP/IP とは
- 【OSI 参照モデル レイヤ1 物理層】イーサネットとは
- 【OSI 参照モデル レイヤ2 データリンク層】イーサネットとは
- 【OSI 参照モデル レイヤ3 ネットワーク層】IP とは
- 【OSI 参照モデル レイヤ4 トランスポート層】TCP/UDP とは
- 【OSI 参照モデル レイヤ5 セッション層】SSL/TLS とは ←イマココ
- 【OSI 参照モデル レイヤ6 プレゼンテーション層】MIME とは
- 【OSI 参照モデル レイヤ7 アプリケーション層】
参考資料・おすすめの書籍
最もおすすめの書籍
有名な書籍
前者2つよりも難易度が高め