Camada de Sessão: Gerenciando a Comunicação em Rede

Classificado em Computação

Escrito em em português com um tamanho de 106,33 KB.

Visão Geral da Camada de Sessão

Problemas de Comunicação

Durante uma conversa em rede, dois problemas principais podem surgir: a colisão de mensagens enviadas simultaneamente, causando interrupções, e a necessidade de pausar para salvar, revisar conversas anteriores ou ressincronizar após uma interrupção.

Soluções

Para evitar colisões de mensagens, utilizam-se protocolos de comunicação. Comunicação alternada de mão dupla, com revezamento no envio, ou comunicação simultânea de mão dupla, com envio independente e contínuo, são duas possíveis abordagens.

Para o segundo problema, o envio de pontos de verificação, ou seja, salvar a conversa e verificar o relógio, garante a sincronização. O início ordenado e o término da conversa, como uma despedida em chats, também são importantes.

Imagen

Analogias da Camada de Sessão

  • A camada de sessão estabelece, gerencia e encerra sessões entre aplicativos, incluindo iniciar, encerrar e ressincronizar a comunicação. Em redes comutadas por pacotes, diferentemente das redes comutadas por circuitos, a comunicação eficiente exige que cada host atue como cliente e servidor, função determinada pelo controle de diálogo.

Controle de Diálogos

O controle de diálogo define o tipo de comunicação: simultânea ou alternada. Na simultânea, a camada de sessão tem menor atuação no gerenciamento. Colisões podem ocorrer, causando confusão entre os hosts.

Na comunicação alternada, um token controla o revezamento, semelhante ao funcionamento de uma token ring.

Separação de Diálogos

A separação de diálogo garante o início, término e gerenciamento ordenados da comunicação. A sincronização secundária envolve o envio de uma mensagem de sincronização, onde ambos os hosts salvam arquivos, configurações de rede e relógio, além de registrar o nó de extremidade. Uma sincronização principal é mais complexa.

Os pontos de verificação se assemelham ao salvamento automático em processadores de texto, separando os diálogos dentro de uma sessão.

Imagen

Network File System (NFS)

O NFS (Network File System) permite acesso transparente a discos remotos, centralizando o gerenciamento. Compartilha uma única cópia de diretórios, evitando duplicações, e permite acesso a arquivos sem login em cada sistema.

Baseado no protocolo RPC, o NFS estabelece uma relação cliente/servidor. O servidor disponibiliza sistemas de arquivos, e o cliente os monta. Clientes diskless se beneficiam, embora sua integração em rede apresente desafios.

Características do NFS

  • Stateless: Mantém o estado do ambiente mesmo com interrupções no sistema.
  • Caching: Armazena dados localmente para evitar requisições RPC frequentes.
  • File Locking: Garante acesso exclusivo a arquivos, bloqueando outros processos.

VFS (Virtual File System) e Protocolo NFS

O NFS oferece dois níveis de transparência: sistema de arquivos remoto aparenta ser local e oculta as diferenças na estrutura de sistemas de arquivos.

Transparência do NFS

Virtual Nodes (vnodes), semelhantes aos inodes do UNIX, abstraem a estrutura física do sistema de arquivos. A interface vnode define as operações. Operações no sistema de arquivos são VFS, enquanto operações em arquivos/diretórios são vnode.

Protocolo NFS

Baseado em RPC, o NFS estabelece relação cliente/servidor. O daemon nfsd no servidor aceita chamadas RPC. O rpc.mountd lida com montagens e traduções de caminhos. No cliente, o biod otimiza o desempenho.

O VFS adapta as chamadas de sistema para lidar com sistemas de arquivos não locais.

Procedimentos RPC do NFS

Os 16 procedimentos do protocolo RPC NFS operam com arquivos ou sistemas de arquivos, incluindo:

  • Operações de diretórios: mkdir, rmdir, readdir, rename, remove, create, lookup.
  • Operações de arquivos: read, write, getattr, setattr.
  • Operações de link: link, symlink, readlink.
  • Operações de sistemas de arquivos: statfs.

Operações de montagem/desmontagem são tratadas pelo rpc.mountd.

RPC NFS X Interface vnode

A interface vnode define serviços para acesso a sistemas de arquivos. Vnodes generalizam a interface para objetos de arquivo. A interface inclui rotinas correspondentes a procedimentos NFS e implementações de serviços do sistema operacional.

Stateless

O protocolo NFS é stateless, sem necessidade de manter informações no servidor. O cliente gerencia as informações para requisições. Isso minimiza a sobrecarga na recuperação.

Requisições RPC NFS descrevem completamente as operações. Muitas são indepotentes, podendo ser repetidas sem efeitos nocivos. O NFS usa UDP, protocolo não confiável, para transporte.

Retransmissão de Requisições

Clientes definem timeout para resposta do servidor. Sem resposta, a requisição é retransmitida. Requisições indepotentes evitam problemas com duplicação.

Remote Procedure Call (RPC)

Desenvolvido pela Sun Microsystems, o RPC simplifica o desenvolvimento de aplicações cliente/servidor, abstraindo a comunicação e ocultando o código de rede em stubs.

No paradigma cliente-servidor, o RPC permite chamadas remotas a procedimentos, aumentando a segurança e transparência.

Objetivo do RPC

Facilitar a implementação de aplicações distribuídas, ocultando detalhes de comunicação e convertendo dados para um formato padrão (XDR).

Processamento no Adaptador Cliente

  • Pedido: Constrói mensagem, envia ao servidor e bloqueia até a resposta.
  • Resposta: Recebe resposta, extrai resultados e retorna ao cliente.

Chamadas Remotas de Procedimentos (RPC)

Estende o conceito de chamada de procedimento para ambientes distribuídos, simplificando a programação.

RPC - Implementação

Utiliza stubs para ocultar o código de rede e gerenciar a passagem de parâmetros.

Transparência: Heterogeneidade do Hardware

Lida com diferentes formatos de representação de dados e estruturas complexas, convertendo entre formatos ou usando uma representação comum (XDR).

Imagen

onversação se inicia e como termina. Isso é conhecido como início ordenado e término da conversação. Por exemplo, quando você usa o Instant Mail ou o Internet Relay Chat, geralmente se despede da outra pessoa antes de terminar a sessão. A outra pessoa percebe então que você está terminando a sessão.

Imagen

Entradas relacionadas: