Session layer mengijinkan para
pengguna untuk menetapkan session dengan pengguna lainnya. Sebuah session
selain memungkinkan transport data
biasa, seperti yang dilakukan oleh transport layer, juga menyediakan layanan
yang istimewa untuk aplikasi-aplikasi tertentu. Sebuah session digunakan untuk
memungkinkan seseorang pengguna log ke remote timesharing system atau untuk memindahkan file dari satu mesin
kemesin lainnya.
Sebuah layanan session layer
adalah untuk melaksanakan pengendalian dialog. Session dapat memungkinkan lalu
lintas bergerak dalam bentuk dua arah
pada suatu saat, atau hanya satu arah saja. Jika pada satu saat lalu lintas
hanya satu arah saja (analog dengan rel kereta api tunggal), session layer
membantu untuk menentukan giliran yang berhak menggunakan saluran pada suatu
saat.
Layanan session di atas disebut
manajemen token. Untuk sebagian protokol, adalah penting untuk memastikan bahwa
kedua pihak yang bersangkutan tidak melakukan operasi pada saat yang sama.
Untuk mengatur aktivitas ini, session
layer menyediakan token-token yang dapat digilirkan. Hanya pihak yang memegang
token yang diijinkan melakukan operasi kritis.
Layanan session lainnya adalah
sinkronisasi. Ambil contoh yang dapat terjadi ketika mencoba transfer file yang
berdurasi 2 jam dari mesin yang satu ke mesin lainnya dengan kemungkinan mempunyai
selang waktu 1 jam antara dua crash yang dapat terjadi. Setelah masing-masing transfer dibatalkan, seluruh
transfer mungkin perlu diulangi lagi dari awal, dan mungkin saja mengalami
kegagalan lain. Untuk mengurangi kemungkinan terjadinya masalah ini, session
layer dapat menyisipkan tanda tertentu ke aliran data. Karena itu bila terjadi
crash, hanya data yang berada sesudah tanda tersebut yang akan ditransfer
ulang.