You are on page 1of 11

Modelo OSI para Arquitetura de Redes Abertas

Esta aula virtual tem por objetivo a apresentação do modelo de referência OSI (Open System
Interconnection) desenvolvido pela ISO (International Standards Organization). Um modelo de
arquitetura de redes abertas que se tornou uma referência mundial.


Introdução

O Modelo de Referência OSI, ou RM-OSI, é baseado em uma proposta desenvolvida pela ISO como um
primeiro passo na direção de uma padronização internacional dos protocolos usados na interconexão de
sistemas abertos. Entendem-se como sistemas, todo conjunto de hardware e software que interagem em
uma aplicação e aberto / apto a se conectar com outros sistemas. O desafio para o modelo proposto era
criar um conjunto de padrões que pudessem convergir e interconectar de forma transparente hardware e
software em diferentes sistemas abertos.

O RM-OSI fornece um esqueleto, uma referência, para definição de padrões para essa interconexão de
sistemas abertos. Uma referência não é uma arquitetura de rede, uma implementação, isto por não
especificar os serviços e protocolos que devem ser implementados em cada camada, mas sim, por dizer
apenas o que cada camada deve fazer, quais suas funções, através do conceito de camadas
sobrepostas, onde cada camada executa um conjunto bem definido de funções.


Conceito de camadas

Na figura 1 são mostradas questões que envolvem o movimento de objetos físicos, como no tráfego em
estradas, ou no caso, de dados eletrônicos. Nos referimos a esse deslocamento de objetos, físico ou
lógico, como fluxo. Existem muitas camadas que ajudam a descrever os detalhes do processo de fluxo.
Outros exemplos de sistemas com fluxo são o sistema público de abastecimento de água, o sistema
rodoviário, o sistema postal e o sistema telefônico.


Figura 1: Fluxo de Dados

Examinemos outro esquema, chamado Comparando Redes e ilustrado na figura 2.


Figura 2: Fluxo de Dados em Redes

• Que rede está sendo examinada?
• O que está em fluxo?
• Quais são as diferentes formas do objeto em fluxo?
• Quais são as regras do fluxo? Onde acontece o fluxo?

As redes listadas nesse esquema fornecem mais analogias para ajudar a entender redes de
comunicação.

Outro exemplo de como pode se usar o conceito de camadas para analisar um tema cotidiano, é
examinar a conversação humana. Quando você tem uma idéia e deseja comunicá-la a outra pessoa, a
primeira coisa a fazer é escolher a forma de expressar essa idéia. Em seguida, você decide como
comunicá-la de forma apropriada e, por fim, você de fato expõe sua idéia.

Imaginemos um jovem sentado na cabeceira de uma mesa de jantar muito comprida. Na outra
cabeceira, a uma distância razoável, está a avó do jovem. O jovem fala português. Sua avó prefere falar
espanhol. A mesa foi posta para uma maravilhosa refeição preparada pela avó. Subitamente, o jovem
grita: "Ei, você! Passe o arroz!" e, estendendo o braço por cima da mesa, agarra a travessa. Em muitas
culturas, essa ação é considerada muito rude. Mas, o que o jovem deveria ter feito para comunicar seus
desejos de maneira aceitável?

Para encontrarmos a resposta a essa pergunta, analisemos o processo de comunicação usando
camadas. Primeiro, temos a idéia: o jovem quer arroz. Depois, temos a representação da idéia:
português falado (em vez de espanhol). Em seguida, o método de expressão/transporte da idéia: "Ei,
você". Finalmente, o meio: gritar (som) e agarrar (ação física) a travessa de arroz.

A partir desse grupo de quatro camadas, podemos ver que três delas impedem que o jovem comunique
sua idéia de maneira apropriada/aceitável. A primeira camada (a idéia) é aceitável. A segunda camada
(representação), usar o português falado em vez do espanhol, e a terceira camada (transporte), uma
exigência feita aos gritos em vez de um pedido polido, definitivamente não seguem o protocolo social
aceitável. A quarta camada (meio), gritar e agarrar a travessa em lugar de educadamente solicitar auxílio
à outra pessoa sentada por perto, é um comportamento inaceitável em quase todas as situações sociais.

Analisando essa interação em termos de camadas, podemos entender com mais clareza alguns dos
problemas de comunicação entre seres humanos e entre computadores, e descobrir como resolvê-los.

Podemos concluir que os objetivos de padronização para uma arquitetura em camadas, são:

• Decompõe as comunicações de rede em partes menores e mais simples;
• Padroniza os componentes de rede, permitindo o desenvolvimento e o suporte por parte de
vários fabricantes;
• Possibilita a comunicação entre tipos diferentes de hardware e de software de rede;
• Evita que as modificações em uma camada afetem as outras, possibilitando maior rapidez no
seu desenvolvimento;
• Decompõe as comunicações de rede em partes menores, facilitando sua aprendizagem e
compreensão.


Princípios básicos

O RM-OSI é multinivelado em camadas, e baseia-se no princípio de usuário e prestador de serviços,
sendo que cada camada é prestadora de serviços para a camada imediatamente superior e é usuária
dos serviços das camadas imediatamente inferior. Essa regra não vale para as camadas mais altas e
mais baixas do modelo. A camada mais alta presta serviços aos processos de aplicação do usuário final,
enquanto a camada mais baixa não é usuária de nenhuma camada, uma vez que está conectada
diretamente ao meio físico de transmissão.

Podemos concluir então que: “O objetivo de cada camada é fornecer serviços para a camada
imediatamente superior e esconder da camada superior os detalhes da implementação destes serviços”.

No RM-OSI, as camadas são abstraídas, ou seja, elas “pensam” que se comunicam com a mesma
camada do outro computador, mas a camada se comunica apenas com as camadas adjacentes. Este
processo é chamado de comunicação virtual.


Terminologia adotada no RM-OSI

Para entendermos como acontece o relacionamento entre as camadas, temos que conhecer algumas
terminologias básicas:

• Arquitetura: conjunto de objetos, relações e limitações.
Para o OSI teríamos as camadas, os protocolos, os níveis de camadas, os serviços, etc.
• Protocolos: conjunto de regras e convenções que governam a maneira como as duas entidades
devem se comunicar para a troca de dados.
Uma definição técnica de um protocolo de comunicações de dados é: um conjunto de regras, ou
um acordo, que determina o formato e a transmissão de dados. A camada n em um computador
se comunica com a camada n em outro computador. As regras e convenções usadas nessa
comunicação são conhecidas coletivamente como o protocolo da camada n.
Quando se está dirigindo, outros carros sinalizam (ou deveriam sinalizar) para virar à esquerda
ou à direita. Sem isso, haveria uma grande confusão nas ruas. Ao pilotarem um avião, os pilotos
obedecem a regras muito específicas de comunicação com outros aviões e com o controle de
tráfego aéreo. Quando se atende ao telefone, diz-se "Alô", e a pessoa que ligou responde,
dizendo "Alô. Aqui fala ..." e assim por diante.
• Entidades: elementos ativos das camadas, responsável pela execução de um conjunto de
funções de uma dada camada.
Uma entidade pode ser uma entidade de software (processo) ou hardware (uma placa de rede).
Entidades de mesmo nível de camada, em sistemas abertos diferentes, são entidades pares ou
parceiras. Entidades de níveis diferentes de camadas, mas no mesmo sistema aberto, são ditas
entidades adjacentes.
Um nível pode ser visto individualmente como um nível (N), tendo um nível superior (N+1) e um
inferior (N-1). O nível N recebe serviços (é consumidor) do nível (N-1) e fornece serviços ao nível
(N+1).
• Serviços: representa um conjunto de funções oferecidas a um usuário por um fornecedor.
Cada camada é fornecedora de serviços para uma camada inferior e consumidora de serviços
da camada superior. O serviço fornecido de uma camada à outra é especificado pelo conjunto de
primitivas de serviço trocadas entre elas.

São quatro, as primitivas de serviço, a saber:

• Request : requisição - uma entidade quer que outra entidade faça alguma coisa;
• Indication: indicação - uma entidade deve ser informada sobre algum evento;
• Response: resposta - uma entidade quer responder a um evento;
• Confirmation: confirmação - a resposta de uma solicitação é indicada.

Os serviços, de acordo com as primitivas utilizadas podem ser:

• Confirmado: envolve um acordo entre o usuário que solicita o serviço (solicitante) e o outro
usuário que é informado que o serviço foi solicitado e aceita. Os serviços confirmados consistem
na troca de quatro primitivas: request, indication, response e confirmation.
• Não confirmado: não existe um estabelecimento de conexão prévio. Apenas duas primitivas
são trocadas: request e indication.


Figura 3: Serviço Confirmado

Uma analogia com o sistema telefônico pode ser uma grande utilidade para que se entenda a utilização
destas primitivas.

Considere o Sistema Aberto A como sendo Maria e o Sistema Aberto B como sendo J oão:

1. Maria (request) – disca o número telefônico de J oão;
2. J oão (indication) – o telefone de J oão toca;
3. J oão (response) – tira o fone do gancho;
4. Maria (confirmation) – ouve alô de J oão;
5. Maria (request) – convida-o para um chá;
6. J oão (indication) – ele ouve o convite;
7. J oão (request) – diz que será um prazer;
8. Maria (indication) – ouve a aceitação;
9. Maria (request) – coloca o fone no gancho;
10. J oão (indication) – ouve o som de ocupado;
11. J oão (response) – coloca o fone no gancho
12. Maria e J oão (disconnect) – desconexão.

A analogia mostra essa seqüência de procedimentos como uma série de primitivas de serviço, inclusive
a confirmação final de encerramento de conexão. Cada procedimento envolve a interação entre duas
camadas de um dos computadores. Cada solicitação ou resposta provoca logo em seguida uma
indicação ou confirmação do outro lado. Nesse exemplo, os usuários de serviço (J oão e Maria) estão na
camada (N+1) e o provedor de serviços (sistema telefônico) na camada (N).

Vale aqui fazermos um adendo, diferenciando protocolo de serviços, uma vez que eles são confundidos
com freqüência. Um serviço é um conjunto de primitivas (operações) que uma camada oferece para a
camada superior. O serviço define as operações para a camada que está preparada para executar e
satisfazer a seus usuários, mas ele nada tem a ver com o modo como essas operações são
implementadas. Um serviço diz respeito à interface existente entre duas camadas, que, por sua vez, tem
como provedor a camada inferior a como usuária a camada superior.

Por outro lado, o protocolo é um conjunto de regras que controla o formato e o significado dos quadros,
pacotes ou mensagens trocadas pelas entidades pares contidas em uma camada. As entidades utilizam
protocolos com a finalidade de implementar suas definições de serviço. Elas têm a liberdade de trocar
seus protocolos, desde que não alterem os serviços visíveis para os seus usuários.

Dos serviços, temos a constituição de pontos de acesso a estes serviços, ou seja:

• SAP (Service Access Point): A comunicação entre as entidades de camadas adjacentes de um
mesmo sistema aberto ocorre através de pontos de acesso de serviço, os SAP. Diz-se então que
os serviços de camada (N), ou simplesmente serviços (N), são oferecidos às entidades (N+1)
através dos SAP da camada (N), ou SAP(N).

Na figura 4 é ilustrada a terminologia utilizada para um melhor entendimento da arquitetura OSI.



Figura 4: Terminologias do Modelo OSI


As Camadas do Modelo OSI

O Modelo OSI é organizado em sete camadas, que são: Física, Enlace, Rede, Transporte, Sessão,
Apresentação e Aplicação.

Estas camadas são ilustradas na figura 5, onde também se vê o fluxo de dados através dessas
camadas.


Figura 5: Camadas do Modelo OSI e o Fluxo de Dados

A troca dos dados acontece em uma vertical, através dos relacionamentos entre as camadas. Esta troca
de dados, sob o ponto de vista do encapsulamento, é ilustrada a seguir, na figura 6.



Figura 6: Troca de Dados com Encapsulamento

Descrevemos a seguir, as principais funções de cada uma das camadas do Modelo OSI.

Camada Física

Esta camada é responsável pela transmissão de bits através do canal de comunicação (meio físico) pela
rede, sem se preocupar com o significado ou como a forma como esses bits são agrupados e nem com
taxa de erros. Faz essa transmissão através da manipulação das características mecânicas, elétricas,
funcionais e procedimentais (cabos, pinagens, níveis de tensão, sinais elétricos, pulsos de luz e sentido
do fluxo de dados) para ativar, manter e desativar conexões entre duas partes. A figura 7 ilustra essa
transmissão de bits.

Nesta camada, a transmissão é tratada como simplex, half ou full-duplex, e pode ser executada de forma
síncrona ou assíncrona.



Figura 7: Transmissão de bits e sinais

Os meios físicos de transmissão diferem entre si com relação a vários fatores: banda de transmissão,
distribuição ponto-a-ponto ou multiponto, limitação geográfica, imunidade a ruídos, custo, disponibilidade
de componentes e confiabilidade.

Como exemplos de meios físicos de transmissão, temos: par trançado, cabo coaxial ou fibra ótica, como
meios de redes cabeadas; e para redes wireless, temos: radiodifusão, infravermelho, enlace de rádio em
microondas e enlace de satélite.

Camada de Enlace

A Camada de Enlace providencia maneiras funcionais e procedimentais para o estabelecimento,
manutenção e liberação de enlaces de dados entre as entidades da rede.

Transforma os bits não estruturados recebidos da camada física em quadros (delineamento de quadros),
ou seja, identifica o início e o fim do quadro. O nível de enlace vai assim converter um canal de
transmissão não confiável em um canal de transmissão confiável para o uso do nível de rede.

Os objetivos desta camada são providenciar:

• mapeamento e transmissão de unidades de dados para a camada de rede, dentro das unidades
do protocolo de enlace para transmissão;
• conexão dos enlaces (ativação, manutenção e desativação), sendo que estas funções incluem o
uso de facilidades multiponto físico para suportar diversas conexões entre funções da camada
de rede;
• multiplexação de um enlace de comunicação para várias conexões físicas;
• delimitação de unidades de transmissão (quadros) para protocolos de comunicação;
• controle de fluxo, para identificação e troca de parâmetros entre duas partes do enlace;
• detecção, controle e, possivelmente, recuperação de erros que possam ocorrer no meio físico;
• tratamento do endereço físico (MAC Address – Medium Access Control ou Controle de Acesso
ao Meio Físico de Transmissão), uma função importante e muitas vezes esquecida.

Camada de Rede

Neste nível é feito todo controle do tráfego dentro da rede, bem como o roteamento dos dados entre os nós da
rede até atingir o endereço final, com endereçamento lógico.

A função básica desta camada é providenciar a transferência transparente de todos os dados
submetidos pelo nível de transporte. A estrutura e conteúdo detalhados dos dados submetidos serão
determinados exclusivamente pelas camadas acima da camada de rede. O propósito é permitir que as
camadas mais altas tenham independência para rotear e comutar considerações associadas com o
estabelecimento e operação de uma conexão. O estabelecimento, manutenção e terminação de
conexões das entidades comunicando-se são inclusos nos serviços executados por esta camada.

As funções e serviços desta camada são:

• roteamento, com o transporte de pacotes, desde a origem até o destino, passando por todo o
caminho, que pode conter vários nós e sub-redes intermediárias;
• endereçamento da rede e identificação do ponto final, através de um endereçamento lógico;
• multiplexação da rede de conexões acima das conexões da camada de enlace providenciadas
pela próxima camada mais alta;
• segmentação e/ou blocagem para facilitar a transferência de dados;
• serviços de seleção, quando diferentes serviços estão disponíveis;
• seleção da qualidade de serviços, baseada em parâmetros como: erros residuais,
disponibilidade, confiabilidade, fluxo de tráfego, tempo gasto no estabelecimento da conexão e
no trânsito;
• detecção e “recuperação” de erros para atingir a qualidade de serviços desejada;
• notificação de erros para as camadas acima, quando a qualidade dos serviços não pode ser
mantida;
• entrega sequenciada de dados, se disponível, para uma implementação em particular;
• controle de fluxo, isto é, suporte de indicadores de controle do fluxo providenciados pela camada
de transporte;
• transferência de dados como um serviço opcional;
• rearranjo de conexão quando ocorre perda de rota de retorno de dados e notificação para o
usuário;
• serviços de terminação, quando solicitados por parte do usuário.

Controle de Congestionamento x Controle de Fluxo

Quando temos pacotes em excesso em uma rede ou sub-rede, o desempenho da rede se degrada e
dizemos que temos, então, um congestionamento.

Os congestionamentos podem ser causados por vários fatores: se os nós da rede são lentos, se o
tráfego de entrada exceder a capacidade das linhas de saída, se houver algum dispositivo da rede com
falha mecânica, etc. Uma rede congestionada pode chegar a condição de impasse (deadlock).

Imagine dois nós de rede A e B. O nó A de uma rede tem todo o seu armazenamento preenchido com
pacotes a serem transmitidos para B, que tem o seu armazenamento preenchido com pacotes para A.

Para que isso não aconteça são utilizados algoritmos de controle de congestionamento, implantados nos
dispositivos. Este controle de congestionamento é realizado de forma a garantir que a rede seja capaz
de transportar o tráfego oferecido. É um controle global envolvendo todos os recursos da rede.

Por outro lado, o controle de fluxo se relaciona com o tráfego entre um transmissor e um receptor. Sua
função é garantir que o transmissor não transmita mais que o receptor possa receber.

Algumas redes tentam evitar o congestionamento pelo controle de fluxo, embora seja impossível
controlar a quantidade total de tráfego na rede, usando regras de controle de fluxo fim-a-fim.

Esta camada tem muita importância e será estudada mais complexamente na Arquitetura TCP/IP, onde
encontraremos o protocolo IP (Internetworking Protocol), a atuar como protocolo de rede.

Camada de Transporte

Essa camada provê comunicação transparente e confiável entre pontos finais. É o primeiro nível fim-a-
fim do modelo OSI, uma vez que o nível de rede não garante necessariamente que um pacote chegue a
seu destino, e pacotes podem ser perdidos ou mesmo chegar fora da seqüência original de transmissão.

Para fornecer uma comunicação fim-a-fim verdadeiramente confiável é necessário outro nível de
protocolo, que é esse nível de transporte. Esse nível vai isolar dos níveis superiores a parte de
transmissão da rede. Fim-a-fim significará que esse tipo de nível ignora os hops e serviços
intermediários encontrados ao longo do caminho dos dados entre o transmissor e o receptor.

Por exemplo, vamos supor um protocolo de camada de transporte que faz uma verificação de checksum
para verificação de erros. Neste caso, o nível de transporte do transmissor é o responsável por
solucionar os problemas de controle de erro via checksum, ou seja, calcular o valor do checksum e
incluir na mensagem transmitida. Quando o receptor receber a mensagem completa, calcula o valor do
checksum, independente do checksum da mensagem. O processo equivalente na camada de transporte
do receptor verifica o checksum calculado e o compara ao checksum da mensagem transmitida.
Resumindo: as mensagens enviadas são checadas pela camada correspondente no extremo receptor da
mensagem, responsável por verificar o recebimento correto.

Duas funções importantes desse nível são a multiplexação (várias conexões de transporte partilhando a
mesma conexão de rede) e o splitting (uma conexão de transporte ligada a várias conexões de rede). O
splitting é utilizado para aumentar a vazão de uma conexão de transporte através do uso de várias
conexões de rede simultaneamente. J á a multiplexação é usada quando uma conexão de transporte não
gera tráfego suficiente para ocupar toda a capacidade da conexão de rede por ela utilizada.

Outra função importante do nível de transporte é o controle de fluxo, evitando que o transmissor envie
mensagens numa taxa maior que a capacidade de recebimento do receptor.

Também é responsável pelo controle de seqüência das mensagens.

Os protocolos de transporte tem sido empregados para estabelecimento, manutenção e liberação de
conexões de transporte que representam um caminho duplo para os dados entre dois endereços de
transporte. O modelo OSI define três fases de operação dentro da camada de transporte:
Estabelecimento, Transferência e Terminação.

- Fase de Estabelecimento

O objetivo desta fase é o estabelecimento de conexões entre funções de serviços das camadas mais
altas. A qualidade dos serviços de conexão pode ser negociada durante esta fase. Os serviços
providenciados incluem:

• seleção de serviços de rede, como funções de parâmetros, por exemplo: throughput, ajuste do
tempo de transmissão e características de erros;
• gerenciamento de conexões de transporte para conexões de camadas mais baixas;
• estabelecimento de tamanho apropriado para pacotes de dados;
• seleções de funções empregadas na transferência de dados;
• transporte de dados de camadas mais altas.

- Fase de Transferência

Esses serviços têm como objetivo a transferência de dados de acordo com a qualidade dos serviços
descritos na fase de estabelecimento. Os serviços providenciados incluem:

• blocagem;
• concatenação;
• segmentação;
• multiplexação de conexões providenciadas pelas camadas mais baixas;
• controle de fluxo em uma sessão orientada fim a fim;
• manutenção de uma unidade de dados retida da camada de sessão;
• manutenção de conexão entre duas funções de transporte atuando entre duas entidades em
conversação;
• detecção de erros para: perda, danos, duplicação, ou desordem nas unidades de dados;
• recuperação de erros de endereços detectados por esta camada ou assinalados pelas
camadas mais baixas;
• transporte de dados que empregam mecanismos normais de controle de fluxo.

- Fase de Terminação

Esses serviços permitem encerrar uma sessão terminando a conexão, sendo notificadas ambas as
partes. Esses serviços incluem:

• notificação da razão do encerramento;
• identificação da conexão terminada;
• informações adicionais como requerido.

Esta camada é de muita importância e será estudada mais complexamente na Arquitetura TCP/IP, onde
encontraremos dois protocolos diferentes para atuação como camada de transporte, o TCP (Transport
Control Protocol) que estabelece, mantém e encerra a conexão, e o UDP (User Datagram Protocol) que
não estabelece conexão.

Camada de Sessão

Estrutura a conexão de transporte, organizando a cadeia de octetos nela transmitida em unidades de
diálogos e atividades com sincronismo. Com a sincronização uma conexão é iniciada e terminada,
definindo uma troca de diálogo.

Assim, o objetivo desta camada é prover os mecanismos necessários para organizar e sincronizar o
diálogo e o gerenciamento da troca de dados entre entidades de apresentação. Para tal, a camada de
sessão entre duas entidades de apresentação é o suporte para ordenar a troca de dados. Como suporte
a esses objetivos, a camada de sessão providencia os seguintes serviços para a camada de
apresentação:

• estabelecimento e liberação de conexão de sessão;
• troca normal de dados;
• gerenciamento de interação;
• reporte de condições de exceção;
• mecanismos para sincronização de conexão de sessão.

Um exemplo: um servidor de correio eletrônico que tem a incumbência de transmitir várias mensagens
para seus respectivos destinatários. Pode associar a transferência de cada mensagem a uma unidade
de diálogo. Deste modo, o servidor de correio tem a certeza de que uma dada mensagem foi transferida
com sucesso antes de começar a transmissão da próxima.

Outro exemplo: saque eletrônico, enquanto uma transação de saque eletrônico não debita o dinheiro de
uma dada conta, essa conta não é liberada para nenhuma outra transação.

Outra função importante desta camada é o gerenciamento de tokens (blocos de informação com
permissão de passagem). O recurso de uma conexão de sessão que é dinamicamente atribuído a um
usuário em um dado instante de tempo, concedendo o direito exclusivo de executar determinados
serviços.

Camada de Apresentação

Esta camada é responsável pela representação da informação para entidades de aplicação,
comunicando-se em um determinado caminho, e preservando o sentido em determinado espaço de
tempo, resolvendo diferenças de sintaxe. Para esses objetivos, esta camada pode prover as seguintes
funções:

• transformação de dados;
• formatação de dados;
• sintaxe de seleção.

Assim, a camada de sessão provê independência para as aplicações em relação às diferentes formas de
representação dos dados. Para tanto, o nível de apresentação provê independência sintática com um
formato comum para a representação dos dados transferidos, liberando a entidade de aplicação de
origem de qualquer consideração sobre como representar as suas informações e que as entidades de
apresentação de destino saibam interpretá-las.

Funciona como um tradutor da rede e grosso modo, mascaram a sintaxe da informação. Por exemplo:
encriptação de dados, compressão de dados e codificação de dados.

Camada de Aplicação

A camada de aplicação dentro do processo de comunicação é representada pelo usuário final. Ou seja,
baseado em pedidos de um usuário da rede, esta camada seleciona serviços a serem fornecidos por
funções das camadas mais baixas. Em outras palavras, fornece serviços de acesso à rede aos usuários,
ou as aplicações dos usuários.

Numa visão do contexto OSI, esse nível oferece aos processos de aplicação os meios para que esses
processos utilizem o ambiente de comunicação das camadas. Nesse nível são definidas funções de
gerenciamento e mecanismos genéricos que servem de suporte à construção de aplicações distribuídas.
Por exemplo, em grande parte das aplicações, para que seja possível o intercâmbio de informações é
necessário estabelecer uma associação entre um ou mais usuários.

Esta camada deve, então, providenciar todos os serviços diretamente relacionados aos usuários. Alguns
destes serviços são:

• identificação da intenção das partes envolvidas na comunicação e sua disponibilidade e
autenticidade;
• estabelecimento de autoridade para comunicar-se;
• acordo sobre o mecanismo de privacidade;
• determinação da metodologia de alocação de custo;
• determinação de recursos adequados para prover uma qualidade de serviços aceitável;
• sincronização de cooperação para aplicações;
• seleção da disciplina de diálogo;
• responsabilidade da recuperação de erros de estabelecimento;
• acordo na validação de dados;
• transferência de informações.

No caso de uma arquitetura TCP/IP teríamos, por exemplo, transferência de arquivos, correio eletrônico,
acesso a web por browser, acesso remoto por telnet, diretórios distribuídos, gerência de rede, etc.