Você está na página 1de 7

Capítulo 6

Modelo OSI / Arquitetura TCP-IP


1. Arquitetura de redes

O objetivo da arquitetura de redes é estruturar a rede como um conjunto de camadas hierárquicas.


Cada camada utiliza as funções e serviços oferecidos pelas camadas inferiores e se comunica com a
camada remota correspondente. As regras que governam a conversação de cada camada são
denominadas protocolos. Os limites entre as camadas são denominados interfaces.
Essas arquiteturas de redes são formadas por um conjunto de camadas, interfaces e protocolos.
Cada camada oferece um conjunto de serviços à camada superior, usando funções realizadas na própria
camada e serviços disponíveis nas camadas inferiores.
Um protocolo da camada N é um conjunto de regras e formatos (semântica e sintaxe), ele permite
que informações da camada N sejam trocadas entre as entidades daquela camada localizadas em sistemas
distintos. Neste capítulo, iremos estudar duas arquiteturas: o modelo OSI e a arquitetura TCP-IP.

2. Comunicação por pilhas de protocolos

Na área das comunicações, um protocolo é um conjunto de regras ou convenções que governam a


operação e o intercâmbio de informações entre dois sistemas computadorizados. Tanto o modelo OSI como
o TCP/IP funcionam através de pilhas de protocolos, formando assim diversas camadas, uma utilizando os
serviços da camada inferior, possuindo as seguintes vantagens:

Sistema estruturado;
Facilidade de entendimento e visualização;
Permite a interconexão entre sistemas de diferentes fabricantes, desde que o padrão de cada
camada seja aberto.

Devido a essas vantagens, os sistemas surgiram estruturados em camadas, e cada camada foi criada
com os seguintes objetivos:

Uma camada deve ser criada sempre que uma nova forma de abstração é necessária;
Cada camada deve executar uma tarefa bem definida;
A tarefa de cada camada deve procurar se adaptar a protocolos já existentes;
Os limites entre as camadas devem ser escolhidos de modo a minimizar o fluxo de informação
entre elas.

Para tornar mais claro o conceito de independência entre camadas, pode-se imaginar a seguinte
situação hipotética: um filósofo na Alemanha querendo se comunicar com outro filósofo na França. Para
tradução das mensagens, cada um deles contrata um tradutor, que tem a função de converter as
mensagens para uma linguagem padrão (inglês, por exemplo). Por sua vez, para enviar as palavras entre
os dois países, cada tradutor contrata um mensageiro, que tem a função de entregar cada palavra da
mensagem ao outro lado. Os mensageiros devem estabelecer um padrão para a comunicação, que pode
ser telefone, carta, telegrama ou qualquer outro existente. A comunicação descrita acima pode ser dividida
em três camadas distintas:

Camada 3: criação das mensagens (assunto a filosofar);


Camada 2: tradução das mensagens (inglês);
Camada 1: comunicação entre mensageiros (telefone).

Esse exemplo tem a finalidade de esclarecer alguns pontos importantes da utilização de pilhas de
protocolos. Cada camada é independente entre si, e não deve se preocupar com a função das outras
camadas, mas sim utilizar os serviços oferecidos pela camada inferior e oferecer seus serviços à camada
superior. Assim, ao filósofo não interessa o padrão de linguagem utilizado pela camada 2 (que poderia ser
português ou japonês sem prejuízo para a comunicação correta), e aos tradutores não interessa a forma
pela qual os mensageiros vão fazer a comunicação (que poderia ser qualquer outra forma, como telegrama
ou rádio).
Tanto o modelo OSI como a arquitetura TCP/IP são estruturados em pilhas de protocolos. Alguns
padrões de protocolos existentes atualmente foram criados pela ISO, como, por exemplo, o TP4 na camada
de transporte e o X.400 (correio eletrônico) na camada de aplicação. Entretanto, alguns protocolos
existentes foram criados antes do modelo OSI, não sendo definidos pela ISO, mas possuindo tarefas que se
encaixam em certos níveis do modelo, como, por exemplo, a família de protocolos TCP/IP. Além disso,
outros padrões surgem à medida que as redes vão se modificando, encaixando-se em determinadas
camadas do modelo.
Dessa forma, existem diversos padrões que, de uma forma ou de outra, são utilizados atualmente
no mercado, criando uma grande confusão para comunicação entre máquinas heterogêneas. Cada
fabricante vê-se forçado a possuir interfaces para diversos protocolos, visando disponibilizar seu
equipamento para qualquer rede existente no mercado.

3. Comunicação entre camadas pares

Na arquitetura de camadas, cada camada além de se comunicar com suas camadas adjacentes,
também se comunica com suas camadas pares de outro computador. Para isso, cada camada acrescenta
suas próprias informações de controle à mensagem que está sendo transmitida. A informação é
acrescentada na forma de cabeçalhos que são introduzidos pelo transmissor e removidos pelo receptor,
depois que a informação for utilizada.
Quando um programa em um computador necessita enviar uma mensagem a um programa em
outro computador, ela é entregue à camada superior que acrescenta seu cabeçalho passando-a à camada
seguinte, e assim sucessivamente, até a camada inferior (física), que transmite a mensagem pelo meio até
o receptor. A camada inferior do receptor lê as informações enviadas a ela, contidas no cabeçalho, e
entrega seu conteúdo à camada seguinte, e assim sucessivamente, até que a mensagem seja recebida
pelo programa receptor. A esse conjunto de dados mais o cabeçalho chamamos genericamente de
PACOTE, que constitui a unidade básica de transmissão de dados na rede. Em função da camada de
origem, o pacote recebe um nome específico, vejamos o caso do modelo OSI:

Aplicação Mensagem
Apresentação Pacote
Sessão Pacote
Transporte Segmento
Rede Datagrama
Enlace Quadro
Física Bit

Tabela 1 – Nome das unidades de dados de cada camada.

É importante saber que o conceito de cabeçalho e dados é relativo. Ele depende da perspectiva da
camada analisando a unidade de informação. Por exemplo, para a camada 3, uma unidade de informação
consiste de um cabeçalho de camada 3 e os dados que o seguem. Entretanto, os dados da camada 3
podem potencialmente conter cabeçalhos das camadas 4, 5, 6 e 7. Além disso, o cabeçalho de camada 3 é
simplesmente um dado para a camada 2. Esse conceito fica melhor ilustrado através da figura representada
abaixo.

Figura 1 - Ilustração da comunicação no modelo OSI.


Finalmente, não são todas as camadas que precisam de cabeçalhos anexados. Algumas camadas
simplesmente realizam uma transformação no dado atual que elas recebem, para então torná-lo legível para
as suas camadas adjacentes.

4. O Modelo OSI

Para facilitar o processo de padronização e obter interconectividade entre máquinas de diferentes


fabricantes, a Organização Internacional de Padronização (ISO - International Standards Organization)
aprovou, no início dos anos 80, um modelo de referência para permitir a comunicação entre máquinas
heterogêneas, denominado OSI (Open Systems Interconnection). Esse modelo serve de base para qualquer
tipo de rede, seja de curta, média ou longa distância.
O modelo de referência OSI é o modelo fundamental para comunicações em rede. Embora existam
outros modelos, a maior parte dos atuais fabricantes de rede relaciona seus produtos ao modelo de
referência OSI, especialmente quando deseja instruir os usuários no uso dos produtos. Eles o consideram a
melhor ferramenta disponível para ensinar às pessoas a enviar e receber dados através de uma rede.
O modelo de referência OSI permite que você visualize as funções de rede que acontecem em cada
camada. Sobretudo, o modelo de referência OSI é uma estrutura que você pode usar para entender como
as informações trafegam através de uma rede.
No modelo de referência OSI, existem 7 camadas numeradas e cada uma ilustra uma função
particular da rede. Essa separação das funções da rede é chamada divisão em camadas.
Na verdade o modelo OSI é usado somente para fins didáticos, pois ele divide o funcionamento das
redes em várias partes para facilitar o entendimento de quem ainda está apreendendo o funcionamento das
redes. A idéia é diminuir a complexidade facilitando o aprendizado.
As sete camadas do modelo de referência OSI são:

Figura 2 – As 7 camadas do modelo OSI.

A figura 3 mostra as sete camadas (níveis) do modelo OSI, que serão analisadas a seguir, iniciando
pela camada mais próxima ao meio físico e terminando na camada mais próxima do usuário. Pode-se ver
através da figura que cada camada possui um ou mais protocolos que realizam as funções específicas
daquela camada, e esses protocolos são compatíveis entre as máquinas que estão se comunicando
(sistema A e sistema B).
Figura 3 – Comunicação entre dois sistemas através do modelo OSI.

Entre cada camada existe uma interface. Essa interface permite que duas camadas quaisquer
troquem informações. A interface também define quais primitivas, operações e serviços a camada inferior
oferece à imediatamente superior.
Cada camada é independente entre si e executa somente suas funções, sem se preocupar com as
funções das outras camadas. Assim, por exemplo, a camada 2 preocupa-se em fazer uma transmissão livre
de erros, não importando se a camada física esteja utilizando par trançado, cabo coaxial ou fibra ótica.

5. Arquitetura TCP/IP

No início dos anos 60, uma associação entre o DARPA (Defense Advanced Research Projects
Agency), um grupo de universidades e algumas instituições, criaram o "ARPANET Network Working
Group". Em 1969, a rede ARPANET entrou em operação, consistindo inicialmente de quatro nós e
utilizando comutação de pacotes para efetuar a comunicação.
Em 1974, um estudo feito por Vinton Cert e Robert Kahn, propôs um grupo de protocolos centrais
para satisfazer as seguintes necessidades:
Permitir o roteamento entre redes diferentes (chamadas subnets ou sub-redes);
Independência da tecnologia de redes utilizada para poder conectar as sub-redes;
Independência do hardware;
Possibilidade de recobrar-se de falhas.

Originalmente, esses protocolos foram chamados de NCP (Network Control Program), mas, em
1978, passaram a ser chamados de TCP/IP.
Em 1980, o DARPA começou a implementar o TCP/IP na ARPANET, dando origem à Internet. Em
1983, o DARPA finalizou a conversão de todos seus computadores e exigiu a implementação do TCP/IP em
todos os computadores que quisessem se conectar à ARPANET.
Além disso, o DARPA também financiou a implementação do TCP/IP como parte integral do sistema
operacional Unix, exigindo que este fosse distribuído de forma gratuita. Dessa forma o Unix e,
conseqüentemente, o TCP/IP, se difundiram, cobrindo múltiplas plataformas.
Assim, o TCP/IP ficou sendo utilizado como o padrão de fato para interconectar sistemas de
diferentes fabricantes, não apenas na Internet, mas em diversos ramos de negócios que requerem tal forma
de comunicação.
Figura 4 - Comparação entre os modelos OSI e TCP/IP

Considerando seu uso consolidado na Internet, vamos analisar as camadas da arquitetura TCP/IP,
bem como suas funções e exemplos referentes aos protocolos existentes para cada uma delas.

5.1. Camada 1: Camada Física

A camada física tem a função de transmitir uma seqüência de bits através de um canal de
comunicação. As funções típicas dos protocolos desta camada são para fazer com que um bit “1”
transmitido por uma estação seja entendido pelo receptor como bit “1” e não como bit “0”. Assim, esta
camada trabalha basicamente com as características mecânicas e elétricas do meio físico, como por
exemplo:

Número de volts que devem representar os níveis lógicos “1” e “0”;


Velocidade máxima da transmissão;
Transmissão simplex, half-duplex ou full-duplex;
Número de pinos do conector e utilidade de cada um;
Diâmetro dos condutores.

A camada física especifica a maneira com que os 0s e 1s dos quadros serão enviados para a rede
(ou recebidos da rede, no caso da recepção de dados). Ela não sabe o significado dos 0s e 1s que está
recebendo ou transmitindo. Por exemplo, no caso da recepção de um quadro, a camada física converte os
sinais do cabo em 0s e 1s e envia essas informações para a camada de enlace, que montará o quadro e
verificará se ele foi recebido corretamente. Como você pode facilmente perceber, o papel dessa camada é
efetuado pela placa de rede dos dispositivos conectados em rede. Note que a camada física não inclui o
meio onde os dados circulam, isto é, o cabo da rede. O máximo com que essa camada se preocupa é com
o tipo de conector e o tipo de cabo usado para a transmissão e recepção dos dados, de forma que os 0s e
1s sejam convertidos corretamente no tipo de sinal requerido pelo cabo, mas o cabo em si não é
responsabilidade dessa camada.

5.2. Camada 2: Camada de Enlace

O principal objetivo da camada de enlace é receber/transmitir uma seqüência de bits do/para a


camada física e transformá-los em uma linha que esteja livre de erros de transmissão, a fim de que essa
informação seja utilizada pela camada de rede.
Os serviços prestados pela camada de enlace dependem do protocolo específico empregado no
enlace. Alguns protocolos provêem entrega garantida entre enlaces, isto é, desde o nó transmissor,
passando por um único enlace, até o nó receptor. Exemplos de protocolos de camadas de enlace são
Ethernet e PPP (point-to-point protocol – protocolo ponto-a-ponto). Como datagramas normalmente
precisam transitar por diversos enlaces para irem da origem ao destino, serão manuseados por diferentes
protocolos de camada de enlace em diferentes enlaces ao longo de sua rota, podendo ser manuseados por
Ethernet em um enlace e por PPP no seguinte. A camada de rede receberá um serviço diferente de cada
um dos variados protocolos de camada de enlace. Pacotes de camada de enlace são denominados
quadros.
Um protocolo de camada de enlace é encarregado de movimentar datagramas de camada de rede
nó a nó por um único enlace no caminho. Uma característica importante da camada de enlace é que um
datagrama pode ser manipulado por diferentes protocolos de enlace nos diferentes enlaces no caminho. Por
exemplo, um datagrama pode ser manipulado pelo protocolo Ethernet no primeiro enlace, pelo PPP no
último enlace e por um protocolo WAN de camada de enlace nos enlaces intermediários. É importante notar
que os serviços fornecidos pelos protocolos de camada de enlace podem ser diferentes. Por exemplo, um
protocolo de camada de enlace pode prover ou não entrega confiável. Assim, a camada de rede deve ser
capaz de realizar sua tarefa fim-a-fim em face de um conjunto heterogêneo de serviços individuais de
camada de enlace.

5.3. Camada 3: Camada de Rede

A camada de rede tem dois componentes principais. Um deles é um protocolo que define os
campos do datagrama, bem como o modo como os sistemas finais e os roteadores agem nesses campos.
Este é o famoso protocolo IP. Existe somente um único protocolo IP, e todos os componentes da Internet
que têm uma camada de rede devem executar esse protocolo. O outro componente importante é o
protocolo de roteamento que determina as rotas que os datagramas seguem entre origens e destinos. A
Internet tem muitos protocolos de roteamento. A Internet é uma rede de redes e, dentro de uma delas, o
administrador pode executar qualquer protocolo de roteamento que queira. Embora a camada de rede
contenha o protocolo IP e também numerosos protocolos de roteamento, ela quase sempre é denominada
simplesmente camada IP, refletindo o fato de que ela é o elemento fundamental que mantém a integridade
da Internet.
Executar o roteamento dos pacotes entre fonte e destino consiste em verificar a melhor rota quando
existem caminhos diferentes para conectar entre si dois nós da rede. Em redes de longa distância é comum
que a mensagem chegue do nó fonte ao nó destino passando por diversos nós intermediários no meio do
caminho, e é tarefa da camada de rede escolher o melhor caminho para essa mensagem.
A escolha da melhor rota pode ser baseada em tabelas estáticas, que são configuradas na criação
da rede e são raramente modificadas, pode também ser determinada no início de cada conversação, ou ser
altamente dinâmica, sendo determinada a cada novo pacote, a fim de refletir exatamente a carga da rede
naquele instante. Na prática, os roteadores atualizam suas tabelas de roteamento de tempos em tempos.
Se muitos pacotes estão sendo transmitidos através dos mesmos caminhos, eles vão diminuir o
desempenho global da rede, formando gargalos. O controle de tais congestionamentos é tarefa da camada
de rede.
Resumindo, as principais funções da camada de rede são as seguintes:

Roteamento dos pacotes entre fonte e destino, mesmo que tenha que passar por diversos nós
intermediários durante o percurso;
Controle de congestionamento;

5.4. Camada 4: Camada de Transporte

A camada de transporte da Internet transporta mensagens da camada de aplicação entre os lados


do cliente e servidor de uma aplicação. Há dois protocolos de transporte na Internet: TCP e UDP, e qualquer
um deles pode levar mensagens de camada de aplicação. O TCP provê serviços orientados para conexão
para suas aplicações. Alguns desses serviços são a entrega garantida de mensagens da camada de
aplicação ao destino e controle de fluxo (isto é, contabilização das velocidades remetente/receptor). O TCP
também fragmenta mensagens longas em segmentos mais curtos e provê mecanismo de controle de
congestionamento, de modo que uma origem regula sua velocidade de transmissão quando a rede está
congestionada. O protocolo UDP provê serviço não orientado para conexão a suas aplicações. Um pacote
de camada de transporte é denominado segmento.
A camada de transporte inclui funções relacionadas com conexões entre a máquina fonte e máquina
destino, segmentando os dados em unidades de tamanho apropriado para utilização pela camada de rede.
Sob condições normais, a camada de transporte cria uma conexão distinta para cada conexão de
transporte requisitada pela camada superior. Se a conexão de transporte requisitada necessita uma alta
taxa de transmissão de dados, esta camada pode criar múltiplas conexões de rede, dividindo os dados
através da rede para aumentar a velocidade de transmissão. Por outro lado, se é caro manter uma conexão
de rede, a camada de transporte pode multiplexar várias conexões de transporte na mesma conexão de
rede, a fim de reduzir custos. Em ambos os casos, a camada de transporte deixa essa multiplexação
transparente à camada superior.
Existem várias classes de serviço que podem ser oferecidas à camada superior, e, em última
instância, aos usuários da rede. A mais popular é uma comunicação através de um canal ponto a ponto livre
de erros, que envia as mensagens seqüencialmente, na mesma ordem que elas foram recebidas. Existem
outras classes permitidas, como o envio de mensagens isoladas, sem garantia sobre a ordem da entrega,
ou enviar mensagens para múltiplos destinos (mensagens multicast). Atualmente, está se popularizando
uma classe de serviço que garante um atraso mínimo na transmissão e a variação máxima do atraso entre
pacotes, viabilizando assim aplicações de voz e vídeo através da rede.
A camada de transporte é a primeira que trabalha com conexões lógicas fim a fim, ou seja, um
programa na máquina fonte conversa com um programa similar na máquina destino, diferentemente dos
níveis anteriores, que conversavam somente com o nó vizinho. Vale ressaltar que a conexão criada pela
camada de transporte é uma conexão lógica, e os dados são transmitidos somente pelo meio físico, através
da camada 1 da arquitetura.
Assim, os dados devem descer camada a camada até atingir a camada 1, para então serem
transmitidos à máquina remota.
Resumindo, as principais funções da camada de transporte são as seguintes:

Criar conexões para cada requisição vinda da camada superior;


Multiplexar as várias requisições vindas da camada superior em uma única conexão de rede;
Dividir as mensagens em tamanhos menores, a fim de que possam ser tratadas pela camada
de rede;
Estabelecer e terminar conexões através da rede.

5.5. Camada 5: Camada de Aplicação

A camada de aplicação é onde residem aplicações de rede e seus protocolos. Ela inclui muitos
protocolos, tais como o protocolo HTTP (que provê requisição e transferência de documentos pela Web), o
SMTP (que provê transferência de mensagens de correio eletrônico) e o FTP (que provê a transferência de
arquivos entre dois sistemas finais). Certas funções de rede, como a tradução de nomes fáceis de entender
dados a sistemas finais da Internet para um endereço de rede de 32 bits, também são executados com a
ajuda de um protocolo de camada de aplicação, no caso, o sistema de nomes de domínio (domain name
system - DNS).
Esta camada é a que mais se aproxima do usuário. Ela fornece ao usuário uma interface que
permite acesso a diversos serviços de aplicação, convertendo as diferenças entre diferentes fabricantes
para um denominador comum.
Por exemplo, em uma transferência de arquivos entre máquinas de diferentes fabricantes, podem
haver convenções de nomes diferentes (DOS tem uma limitação de somente 8 caracteres para o nome de
arquivo, UNIX não), formas diferentes de representar as linhas, e assim por diante. Transferir um arquivo
entre os dois sistemas requer uma forma de trabalhar com essas incompatibilidades, e essa é a função da
camada de aplicação.
A camada de aplicação sem dúvida nenhuma é a camada que possui o maior número de protocolos
existentes, devido ao fato de estar mais perto do usuário, e os usuários possuírem necessidades diferentes.
Algumas aplicações desta camada são transferência de arquivos, correio eletrônico e terminais virtuais,
entre outras.