Buscar

01 - Introdução à Redes - Arquitetura de Protocolos

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Arquitetura de Protocolos
Aula 1
Prof. Mario Marques
*
O que é um protocolo?
Um protocolo é um acordo entre parceiros que define a forma como a comunicação será realizada. Por exemplo : quando uma mulher é apresentada a um homem, ela pode decidir se irá beijá-lo ou apenas apertar a sua mão, e o homem também deve decidir o procedimento que irá adotar. Caso haja algum problema na hora de estabelecer o processo de apresentação, o protocolo poderá ser quebrado e atrapalhar ou impossibilitar a comunicação.
*
Tradução entre línguas diferentes.
Figura retirada do livro Computer Networks de Andrew Tanenbaum.
*
Hierarquia de protocolos
As redes de computadores são organizadas como uma pilha de camadas, em que cada camada é construída sobre uma camada inferior.
O número de camadas, o nome de cada camada, o conteúdo e suas funções diferem entre as diferentes arquiteturas de rede.
A finalidade de cada camada é oferecer serviços para as camadas superiores, escondendo delas os detalhes de como os serviços oferecidos são implementados.
Em resumo, cada camada é um tipo de máquina virtual, que oferece serviços para a camada acima.
*
Camadas e interfaces
Figura retirada do livro Computer Networks de Andrew Tanenbaum.
*
Camadas e interfaces
Dados não são transferidos diretamente de uma camada para outra em máquinas diferentes.
Na verdade existe uma comunicação virtual entre as camadas, indicada pelas linhas pontilhadas.
Entre cada par de camadas adjacentes existe uma interface, que define as primitivas e os serviços que a camada inferior disponibiliza para a camada superior.
Um conjunto de camadas, interfaces e protocolos recebe o nome de arquitetura de rede.
*
Camadas e interfaces
A especificação de uma arquitetura deve conter informação suficiente para permitir que um fabricante ou usuário escreva um programa ou construa um hardware que obedeça as especificações das camadas.
Os detalhes de implementação das interfaces não devem fazer parte da arquitetura.
Não é necessário que as interfaces em todas as máquinas em uma rede sejam iguais, desde que todas sejam compatíveis com os protocolos utilizados.
A lista de protocolos utilizados por um certo sistema, com apenas um protocolo por camada, recebe o nome de pilha de protocolos.
*
Fluxo de informações
Figura retirada do livro Computer Networks de Andrew Tanenbaum.
*
Fluxo de informações
Uma mensagem M é produzida por uma aplicação na camada 5 e passada para a camada 4 para transmissão.
A camada 4 coloca um header(cabeçalho) na frente da mensagem para identificação e passa para a camada 3. O header inclui informação de controle (sequence number), para permitir entrega da mensagem na ordem certa.
A camada 3 quebra as mensagens em unidades menores, chamadas de pacotes, e inclui um header. A camada 3 decide qual caminho o pacote tomará e passa para a camada 2.
A camada 2 adiciona um header e um trailer e passa para a camada 1 para transmissão física do frame.
*
Características de modelagem
Endereçamento – cada camada necessita de um mecanismo de identificação dos encaminhadores e destinatários de mensagens.
Controle de erros – necessário devido à possibilidade de ocorrência de problemas físicos durante a transmissão da mensagem.
Controle de fluxo – evitar que um destinatário lento seja inundado com muitas mensagens de um transmissor veloz.
Multiplexação e demultiplexação – uso da mesma conexão para múltiplas e não relacionadas conversações.
Roteamento – uso de múltiplos caminhos entre a origem e o destino.
*
Serviço orientado à conexão e não orientado à conexão
O serviço orientado à conexão foi modelado baseado no sistema telefônico. Para falar você pega o telefone, digita o número, fala e desliga. Isto é, para usar uma rede orientada à conexão o usuário do serviço estabelece uma conexão, usa a conexão e libera a conexão.
O serviço não orientado à conexão é baseado no sistema postal. Cada mensagem carrega o endereço completo e é roteada pelo sistema independentemente das outras mensagens. Normalmente, quando duas mensagens são enviadas para o mesmo destino a primeira chega primeiro. 
*
Primitivas de serviço
Um serviço é especificado por meio de um conjunto de primitivas (operações) disponíveis para um processo de usuário para acessar um serviço. Estas primitivas dizem ao serviço para executar ações ou relatar uma ação tomada por entidade parceira.
O conjunto de primitivas disponíveis depende do serviço que está sendo provido. Dessa forma, as primitivas de serviços orientados à conexão são diferentes das de serviços não orientados à conexão.
*
Primitivas de serviço orientados à conexão
Figura retirada do livro Computer Networks de Andrew Tanenbaum.
*
Exemplo de estabelecimento de serviço orientado à conexão
Figura retirada do livro Computer Networks de Andrew Tanenbaum.
*
Diferença entre serviço e protocolo
Um serviço é um conjunto de primitivas (operações) que uma camada fornece para a camada acima.
Um protocolo é um conjunto de regras que governam o formato e o significado dos pacotes ou mensagens que são trocadas pelos parceiros da comunicação dentro de uma camada.
*
Relacionamento entre serviço e protocolo
Figura retirada do livro Computer Networks de Andrew Tanenbaum.
*
O modelo de referência OSI
O modelo OSI é baseado na proposta desenvolvida pela International Standards Organization (ISO) como um primeiro passo em direção a padronização de protocolos usados nas várias camadas(Day and Zimmermann, 1983).
Ele foi revisado em 1995 (Day, 1995). 
O modelo é chamado modelo de referência ISO OSI (Open Systems Interconnection), porque ele trata da conexão entre sistemas abertos.
*
O modelo de referência OSI
Figura retirada do livro Computer Networks de Andrew Tanenbaum.
*
Princípios do modelo OSI
Uma camada deve ser criada toda vez que uma abstração diferente seja necessária.
Cada camada deve executar uma função bem definida.
A função de cada camada deve ser escolhida com um olho em direção a definição de protocolos padronizados internacionalmente.
Os limites de cada camada devem ser escolhidos de forma a minimizar o fluxo de informações entre as interfaces.
O número de camadas deve ser grande o bastante para que funções distintas não precisem estar na mesma camada e pequena o bastante para que a arquitetura não se torne improdutiva.
*
A camada física
A camada física é responsável por transmitir bits em estado bruto em um canal de comunicação.
Definir quantos volts serão usados para representar um bit 1 e bit 0.
Quantos nanosegundos um bit demora para ser transmitido.
Se a transmissão pode ocorrer nos dois sentidos.
Quantos pinos o conector de rede deve ter.
Qual é a função de cada pino.
Como a conexão inicial é estabelecida.
Como a conexão é finalizada.
*
A camada de enlace
A principal tarefa da camada de enlace é garantir que o meio de transmissão esteja livre de transmissões de erros não detectados para a camada de rede.
Utiliza o conceito de frames.
Encaminha os frames seqüencialmente.
Se o serviço é confiável, o recebedor confirma a correta recepção de cada frame por meio do envio de uma frame de acknowledgement.
Possui mecanismos de regulagem de tráfego para evitar sobrecarga do receptor.
Controle de acesso ao meio compartilhado em redes broadcast.
*
A camada de rede
Controla a operação da sub-rede.
Determina como os pacotes são roteados da origem até o destino.
Controla o congestionamento na rede.
Viabiliza a conexão de redes heterogêneas (endereçamento diferente, protocolos diferentes, tamanho de pacotes diferentes).
Em redes broadcast o problema de roteamento é geralmente simples, dessa forma a camada de rede é bem simplificada nessas redes.
*
A camada de transporte
Deve aceitar dados da camada acima, dividi-los em pequenas unidades se necessário, passar os dados para a camada de rede e
garantir que os pedaços cheguem corretamente do outro lado.
Determina o tipo de serviço que será fornecido para a camada de sessão.
É considerada uma camada que permite a comunicação real fim-a-fim entre o computador de origem e o de destino.
Nas camadas de 1 a 3 a comunicação acontece apenas entre as máquinas vizinhas.
*
A camada de sessão
Permite a usuários em diferentes máquinas estabelecerem sessões entre eles. 
As sessões oferecem vários serviços, incluindo:
controle de diálogos;
gerenciamento de sessão (previne dois parceiros de tentar a mesma operação crítica ao mesmo tempo);
sincronização (acompanha transmissões longas para permitir o reinício do ponto onde parou, caso ocorra queda da sessão). 
*
A camada de apresentação
Diferentemente das camadas inferiores, as quais se ocupam em mover bits, a camada de apresentação é responsável com a sintaxe e a semântica da informação transmitida.
Viabiliza a comunicação entre computadores com representação de dados diferentes, por meio da troca de informações das estruturas de dados de cada computador.
Utiliza o conceito de estruturas de dados abstratas para tratar os dados em um alto nível de abstração.
*
A camada de aplicação
A camada de aplicação contem uma variedade de protocolos que são comumente utilizados pelos usuários.
Um exemplo amplamente conhecido é o HTTP (HyperText Transfer Protocol), que é a base da World Wide Web. Quando um browser solicita uma página, ele envia o nome da página para o servidor utilizando HTTP. O servidor envia a página solicitada para o cliente utilizando HTTP.
Outros exemplos incluem file transfer, electronic mail.
*
O modelo de referência TCP/IP
Iniciou-se com a ARPANET, que depois foi substituída pela Internet.
A ARPANET era uma rede de pesquisa financiada pelo DoD (U.S. Department of Defense). 
O modelo de referência TCP/IP foi definido por Cerf and Kahn em 1974. Uma perspectiva posterior foi dada por Leiner et al., em 1985. A filosofia de design por trás do modelo é discutida por Clark em 1988.
O objetivo principal do projeto ARPANET era que a rede deveria ser capaz de sobreviver a perda de hardwares de sub-redes, evitando a quebra de conversação entre os computadores principais.
Uma arquitetura flexível foi idealizada para permitir a comunicação entre aplicações com diferentes formatos.
*
O modelo de referência TCP/IP
Figura retirada do livro Computer Networks de Andrew Tanenbaum.
*
A camada de aplicação
No topo da camada de transporte está a camada de aplicação.
Ela contem protocolos de alto nível, tais como : virtual terminal (TELNET), file transfer (FTP), and electronic mail (SMTP).
O Telnet permite a um usuário acesso a uma máquina remota e executar comandos nela.
O protocolo de transferência de arquivos permite a troca de dados eficientemente entre computadores.
Correio electrônico permite a troca de mensagens e utiliza o protocolo (SMTP)
Outros protocolos são o Domain Name System (DNS) para mapeamento da relação entre nome e endereço IP e HTTP para acesso a páginas Web.
*
A camada de transporte
Permite a entidades parceiras manter comunicação entre a origem e o destino.
Tem dois protocolos de transporte fim-a-fim, que são o TCP (Transmission Control Protocol) e o UDP (User Datagram Protocol).
O TCP é um protocolo orientado a conexão que permite que um seqüência de bytes seja encaminhada de uma máquina a outra e sem erros.
Efetua segmentação da seqüência de bytes em mensagens e passa para a camada internet.
No destino, o processo TCP remonta as mensagens recebidas novamente na seqüência de bytes original.
TCP também trata do controle de fluxo para evitar que um destinatário lento não seja inundado por um originador de mensagens muito veloz.
*
A camada de transporte 
O UDP (User Datagram Protocol) é um protocolo sem conexão, não confiável para aplicações que farão o controle de fluxo e seqüenciamento de mensagens dentro da própria aplicação.
É amplamente utilizado para aplicações cliente-servidor em que são realizadas solicitações e respostas únicas e que a entrega rápida da informação é mais importante do que a sua exatidão, tais como vídeo ou voz.
*
A camada internet
A principal tarefa é permitir aos computadores injetar pacotes dentro de qualquer rede e permitir o encaminhamento independente do destino, isto é, para qualquer rede.
Os pacotes podem chegar em ordem diferente do envio, e portanto a camada Internet deve colocá-los em ordem novamente.
A camada tem um formato oficial de pacote e um protocolo chamado de IP (Internet Protocol). 
Rotear pacotes é a atividade principal.
*
A camada host-to-network 
Abaixo da camada internet existe um grande vazio.
O modelo de referência TCP/IP não define o que deve ser utilizado aqui, exceto pelo fato que o host tem que se conectar à rede usando algum protocolo para ele poder enviar e receber pacotes IP.
O protocolo a ser utilizado não é definido e varia de host para host e de rede para rede.
Livros e artigos sobre TCP/IP raramente discutem este assunto.
*
Protocolos e redes iniciais do modelo de referência TCP/IP
Figura retirada do livro Computer Networks de Andrew Tanenbaum.
*
Referências
TANENBAUM, Andrew S.. Redes de computadores. Rio de Janeiro: Elsevier, 2011.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais