O estabelecimento de sessão é feito através de um pedido de conexão à camada de transporte, e envolve a negociação entre usuários no que tange aos diversos parâmetros da conexão. Alguns destes parâmetros são pertinentes à conexão de transporte e são simplesmente passados para esta conexão sem qualquer modificação.
A liberação pode ser feita de duas formas na camada de sessão: de forma abrupta ou disciplinada. A primeira é análoga a disconexão na camada de transporte e uma vez emitida, a conexão não recebe mais nenhum dado. Ela é utilizada para abortar conexões. A liberação disciplinada, por sua vez, utiliza um handshake completo: pedido, indicação, resposta e confirmação. Com isso, esta forma de liberação pode aceitar mensagens até que uma confirmação seja enviada.
A camada de sessão pode transmitir quatro tipos diferentes de dados, a saber: regulares e expedidos (análogos aos tipos da camada de transporte), tipificados e dados de capacidade.
O gerenciamento de diálogos foi implementado através do uso de tokens de dados. Ao se estabelecer uma sessão, pode ser utilizado um parâmetro que indique o modo (half-duplex) e um outro parâmetro que diga qual dos lados recebe inicialmente o token. Somente o usuário que está com o token pode transmitir, enviando o token para o outro usuário assim que encerrar sua transmissão.
O texto na camada de sessão pode ser dividido em páginas. Estas páginas podem ser separadas por pontos de sincronização. Se ocorrer algum problema é possível reiniciar a partir de um ponto de sincronização anterior (ressincronização). Quando essa ressincronização ocorre, o salvamento de mensagens e a retransmissão subseqüente ocorre acima da camada de sessão.
Existem dois tipos de pontos de sincronização, a saber: principal e secundário. O ponto de sincronização principal delimita partes logicamente significativas de trabalho, chamadas unidades de diálogo. Estas unidades podem conter vários pontos de sincronização secundários. Quando ocorre a resincronização retorna-se até o ponto de sincronização principal mais recente, ou a um ponto de sincronização secundário desde que este não tenha sido precedido de um ponto principal.
Para a fixação de pontos de sincronização são utilizados tokens. Existem dois tokens independentes, para o ponto principal e o secundário. Estes tokens são distintos entre si e diferentes também dos utilizados para controle de dados na comunicação half-duplex.
O usuário determina o que deve constituir cada atividade (e não a camada de sessão). Tudo o que a camada de sessão faz é transmitir para o receptor as indicações de inicio, finalização, retomada, imterrompimento ou descarte de uma atividade. Porém a camada de sessão não sabe quando as solicitações de atividades são feitas e como são as reações do receptor.
O gerenciamento de atividades é a forma principal de se estruturar uma sessão. Para que não ocorram pedidos simultâneos de inicio de atividades, todo gerenciamento é controlado por um token (o mesma token utilizado para pontos de sincronização principal). Esse token pode ser passado e solicitado de maneira independente de dados e de tokens de sincronização secundários.
A ISO concluiu que se um usuário iniciar uma atividade enquanto o outro estiver fazendo uma sincronização secundária, podem ocorrer problemas. Para solucionar isso, antes que uma atividade ou operação de sincronização seja iniciada o usuário deve reter os tokens de atividade, sincronização secundária e dados.
Outra questão importante é a relação entre as atividades e os pontos de sincronização. Cada vez que é iniciada uma nova atividade os números de séries dos pontos de sincronização são reinicializados e é criado um ponto de sincronização principal. Podem ser criados pontos de sincronizações adicionais, secundários ou não, dentro de atividades. Uma vez que uma atividade é iniciada, se ocorrer uma ressincronização não é possível retornar para uma atividade anterior.
O relatório de exceções não se aplica apenas a erros detectados pelo usuário, mas também para problemas internos na camada de sessão ou problemas relatados pelas camadas inferiores. Porém a decisão da ação que deve ser tomada é sempre feita pelo usuário.