Conceitos, Arquiteturas e Protocolos Ligação Inter-redes Conceitos, Arquiteturas e Protocolos
Introdução Cada tecnologia é projetada para satisfazer um conjunto específico de restrições LANs são projetadas para fornecer comunicação de alta velocidade através de curtas distancias WANs são projetadas para fornecer comunicação através se áreas geograficamente distantes Não há uma tecnologia que seja melhor para todas as necessidades Solução: Tecnologia de ligação inter-redes
Serviço Universal Sistema telefônico Redes de Computadores Comunicação entre quaisquer dois telefones Serviço universal Redes de Computadores Comunicação entre quaisquer dois computadores Interconexão de diferentes tecnologias Incompatibilidades (elétrica, formato de quadro, endereçamento, etc)
Ligação Inter-Redes Esquema que fornece comunicação universal entre redes heterogênias Solução baseada em hardware e software Hardware interconectando redes físicas Software em cada computador Redes interconectadas Inter-rede, internet.
Roteador Componente de hardware usado para interconectar redes heterogêneas (tecnologia diferente) Interface física com múltiplas redes Encaminha pacotes entre redes Ajusta pacote de acordo com especificações de cada tecnologia
Arquitetura Inter-Redes Interconexão de redes através de roteadores Um roteador pode ter mais de duas interfaces
Roteadores em uma Organização Um roteador Pode comprometer confiabilidade e desempenho Ponto central por onde passa todo a comunicação Múltiplos roteadores Melhora confiabilidade
Rede Virtual Ilusão de um único sistema integrado de comunicação ao qual muitos computadores são acoplados, ou seja, a ilusão de uma rede única próximo Construída sob software fornecendo Serviço universal Endereçamento universal Detalhes da rede física escondidos de usuários e aplicações.
Protocolos para Inter-redes Suite TCP-IP (Transmission Control Protocol / Internet Protocol) Suite de protocolos mais utilizado em ligações inter-redes Protocolos proposto para ligação inter-redes Definição da arquitetura inter-redes Definição de internet Possibilitou a ligação mundial de computadores em rede (Internet) Vendedores e plataformas independentes Outros suites: IPX, AppleTalk, Vines
Modelo de Camadas TCP-IP Modelo OSI: Não inclui ligação inter-redes
Modelo de Camadas TCP-IP
Host Host (host computer) Computar conectado a uma inter-redes e que executa aplicativos Computador de qualquer tamannho e capacidade O TCP-IP permite comunicação direta entre pares de hosts Hosts e roteadores possuem TCP-IP Hosts não encaminham pacotes Roteadores não necessitam dos níveis 4 e 5
Endereço IP Classes de Endereços Endereçamento IP Endereço IP Classes de Endereços
Introdução Rede Virtual Endereço de hardware (físico) Formato de endereço padrão Endereço de hardware (físico) Formato diferente por tecnologia Formato do endereço deve ser independente do endereço físico Software de Protocolo Endereçamento uniforme em uma inter-rede Endereço abstrato único por host Usuários e aplicativos usam endereços abstratos
Endereço Uniforme Origem Roteador Colocar endereço de destino no pacote Roteador Interpretar endereço de destino Encaminha pacotes
Suite de Protocolos TCP-IP Endereçamento especificado pelo IP Endereço IP Número de 32 bits Única por host de uma internet Usado para comunicação entre hosts Endereço hierárquico Roteamento eficiente Composto por prefixo(Identifica rede) e sufixo (identifica host de uma rede)
Endereço IP Número de rede mais número de host Número de rede Cada rede de uma inter-rede TCP-IP tem número de rede único Distribuição coordenada globalmente Número de host Único dentre de uma rede (número de rede) Pode ser reutilizado em redes diferentes Distribuição gerenciada localmente Endereço IP de uma host Combinação do número de rede mais número de host (combinação deve ser única)
Classes de Endereços IP Endereço IP: 32 bits Divisão de bits entre rede e host (prefixo e sufixo) Rede maior que host Muitas redes, poucos hosts por rede Host maior que rede Poucas redes, muitos hosts por rede Classes de endereços Esquema de endereço que combina redes grandes e pequenas 3 classes primárias (A,B,C) 2 classes especiais (D,E) Uma classe é identificada pelos primeiros quatro bits do endereço
Classes de Endereços IP
Classes de Endereços IP Identificaçao da classe de um endereço Bits iniciais do endereço
Classes de Endereços IP Notação decimal pontilhada Notação mais conveniente para usuários Conversão da notação de 32 bits em quatro números decimais de 8 bits, separados por pontos
Classes de Endereços IP Notação decimal pontilhada Determinação da classe
Classes de Endereços IP Divisão do espaço de endereçamento Necessidade de utilização otimizada
Endereços Especiais Endereço de Rede Broadcast direcionado Referencia uma rede Valor: Bits do host com zero (128.211.0.0) Broadcast direcionado Referencia todos os hosts de uma rede Valor: Bits do host com um decimal(128.211.1.1) Broadcast limitado Referencia todos os hosts da rede local Valor: Bits de rede e host com um binario (255.255.255.255)
Endereços Especiais Endereço desse computador Referencia um host Valor: Bits de rede e host com zero (0.0.0.0) Loopback Endereço para teste de aplicativos de rede Não coloca dados no enlace Nenhum pacote deixa o host Em uma transmissão, ao chegar no nível 3, retorna para o nível 4, não sendo repassado para o nível 2 O endereço de loopback nunca aparece em um pacote que viaja através da rede Valor: Classe A 127 (127.0.0.1)
Endereços Especiais
Roteadores e TCP-IP O endereço IP é atribuído a interface de rede, não a um computador Um roteador tem endereço IP Um roteador tem múltiplas interfaces de rede Um roteador tem múltiplos endereços IPs
Roteadores e TCP-IP
Resolução de Endereços Tabelas Computação Protocolo ARP
Introdução Um protocolo usa endereço virtual (endereço do protocolo) para entrega de pacotes Uma rede usa endereço de hardware para entrega de pacotes O endereço de protocolo precisa ser traduzido no endereço de hardware Resolução de endereços Protocolo ARP
Resolução de Endereços Aplicações usam endereços de protocolos Rede virtual Esconde detalhes de hardware Tradução ocorre no nível 2 (Network Interface) Acima do nível 2 tem-se endereço IP O nível 2 traduz o endereço IP em endereço de hardware O nível 1 utiliza endereço de hardware
Resolução de Endereços A resolução acontece dentro de uma rede Uma rede só resolve endereços de componentes da mesma rede
Resolução de Endereços O host A resolve o endereço de B quando A envia uma mensagem para B O host A não resolve o endereço de F Uma mensagem de A para F passa pelos roteadores R1 e R2 O host A resolve o endereço de R1
Técnicas de Resolução Pesquisa em tabela Computação de forma fechada Amarrações de endereços armazenadas em tabelas Computação de forma fechada Endereço de hardware computado a partir do endereço de protocolo usando operações aritméticas e lógicas Troca de mensagens (ARP) Os computadores trocam mensagens através da rede para resolver um endereço
Pesquisa em Tabela Lista de endereços IPs e endereços de hardware Baseado no endereço IP, se extrai o endereço de hardware
Pesquisa em Tabela Limitação Busca sequencial Técnica hash
Computação Fechada Endereços de interfaces configuráveis Administrado escolhe endereço de hardware Administrador escolhe endereço IP Resolução de endereço por computação Define-se função que mapeia um endereço IP em um endereço de hardware Não exige que valores sejam armazenados Exemplo Endereço_de_hardware = endereço_Ip & 0xff
Troca de Mensagens Endereço de hardware obtido por troca de mensagens entre computadores Duas implementações Baseada em Servidor Computador envia mensagem para servidor que resolve endereço Opção centralizada Custo e administração de servidores Distribuída Computador destino resolve endereço Sem administração de servidor
ARP – Address Resolution Protocol Protocolo do suite TCP-IP Resolução de endereços por troca de mensagens, de forma distribuída Funcionalidade Parte 1: Request Origem envia mensagem solicitando endereço de hardware Parte 2: Response Destino responde enviando endereço de hardware
ARP - Request Mensagem colocada em frame ethernet Campo tipo de quadro (Ethernet = 806) Campo endereço de destino preenchido com o endereço de broadcast Endereço IP do destino incluído na área de dados
ARP - Request Todos os computadores examinam o request O computador que possui IP igual ao que foi solicitado envia mensagem response Coloca seu endereço de hardware na resposta Preenche campo endereço de destino com o endereço físico do computador que enviou a mensagem de request O computador que enviou o request recebe então o endereço de hardware desejado
ARP - Ilustração
ARP - Exemplo
ARP – Formato da Mensagem Endereço IP e endereço de hardware possuem tamanhos diferentes Ethernet 6 octetos IP 4 octetos Formato único para request e response
ARP – Formato da Mensagem
Enviando mensagem ARP Remetente constrói a mensagem ARP A mensagem ARP é encapsulada em um frame (Ethernet)
Endereços ARP Armazenados Resolução ARP para cada pacote a ser transmitido Duas mensagens a mais na rede (overhead) Solução: Armazenar respostas Tabela em memória Administração de forma eficiente (cache) Antes de solicitar resolução, consulta tabela Se existe amarração, utiliza dados da memória Se não existe amarração, encaminha request
Mensagem ARP que Chega Request Response Se o receptor é o endereço de destino então prepare mensagem response Envie reponse para remetente Atualize cache Response Envie mensagem pendente (
ARP – Modelo de Camadas ARP : Nível 2 - Network Interface
Formato de uma pacote IP Roteamento Datagrama IP Formato de uma pacote IP Roteamento
Introdução Ligação inter-redes Suíte TCP-IP Serviço de comunicação ponto a ponto Suíte TCP-IP Serviço sem conexão Serviço com conexão Serviço de comunicação do protocolo IP Formato do pacote IP Datagrama IP
Serviço sem Conexão Comutação de pacotes Transmissão de pacotes individuais e independentes Cada pacote contém informações que identificam o destino pretendido Transmissão de pacotes na inter-rede Roteador encaminha pacotes Rede Virtual Serviço universal Endereçamento universal Pacote universal
Serviço sem Conexão Cabeçalho Dados Formato de pacote Formato padrão para todas as tecnologias de rede Pacote universal (Datagrama IP) Formato uniforme e independente de tecnologia Cabeçalho Dados Encapsulamento Um pacote é encapsulado em um frame de uma dada tecnologia Frame é transmitido na rede física
Suite PCP-IP Camada de transporte (Suite TCP-IP) Serviço sem conexão (UDP) Serviço com conexão (TCP)
Datagrama IP Um pacote da dados IP é chamado datagrama Formato geral Cabeçalho (20 octetos) Dados (1 a 216 octetos =65536 bits (64 Kbits)) Tamanho variável O tamanho é determinado pelo aplicativo que envia dados Endereços do cabeçalho Datagrama (Endereço IP) Frame (Endereço de Hardware)
Datagrama - Encaminhamento O cabeçalho contém informações para roteamento Endereço de origem Endereço de destino Identificador O roteador examina o cabeçalho do datagrama e encaminha pacote para destino Tabela de rotas
Tabela de Rotas Contém informações para roteamento Destino é uma rede Tabela de endereços contendo as colunas Rede destino Mascara de sub-rede Próximo hop (computador- router) Manutenção de tabela Inicialização Atualização (mudanças na rede) Rota default Reduz tamanho da tabela de rotas Entrada na tabela que será utiliza por redes de destino que não estão listadas explicitamente na tabela de rotas
Tabela de Rotas OBS: O número de entrada na tabela é proporcional ao numero de redes da inter-rede
Colunas da Tabela de Rotas Rede destino Prefixo de rede da rede destino Mascara de endereço (sub-rede) Quantidade de bits de rede de destino que correspondem ao prefixo de rede Próximo hop (computador- router) Endereço IP (se próximo hop é um roteador) Interface da rede (entrega direta)
Tabela de Rotas
Encaminhamento Linha na tabela de rotas a ser utilizada Aplica-se a máscara sobre o endereço de destino e compara-se o resultado com o endereço de rede da tabela if ((Mask[i] & D) == Dest[i]) forward to NextHop[i] Exemplo: 128.1.15.56 128.1.15.56 and 255.0.0.0 = 128.0.0.0 (<> 30.0.0.0) 128.1.15.56 and 255.0.0.0 = 128.0.0.0 (<> 40.0.0.0) 128.1.15.56 and 255.255.0.0 = 128.1.0.0 (=128.1.0.0)
Endereço de Destino Versus Próximo Hop O endereço de destino de um datagrama IP sempre se refere ao destino final e não muda durante o encaminhamento O roteador identifica o endereço do próximo hop e encaminha o datagrama Camada 2 (Network Interface) tem-se dois parâmetros Datagrama IP com endereço de destino Endereço do próximo Hop Endereço do próximo hop Nunca aparece no datagrama IP
Endereço de Destino Versus Próximo Hop Todas as rotas são definidas baseadas no endereço do datagrama IP (endereço de destino) O software IP usa ARP para definir endereço físico
Entrega de Melhor Esforço Protocolo IP Formato do datagrama Serviço de melhor esforço Serviço de melhor esforço não não garante transmissão confiável Duplicação de datagrama Atraso de datagrama Perda de datagrama Adulteração de dados Camadas mais altas tratam erros (nível de transporte)
Datagrama IP
Roteadores e TCP-IP VERS Versão do IP (currently 4) H. LEN Comprimento do cabeçalho TOTAL LENGTH Total de octetos do datagrama TTL (time to live) Decrementado em cada roteador Discartado quando chega a 0 (ttl=0) TYPE Tipo do protocolo (TCP, UDP) H.CHECKSUM Checksum do cabeçalho SOURCE IP ADDRESS Endereço de origem DEST IP ADDRESS Endereço de destino IDENT, FLAGS, FRAGMENT OFFSET Fragmentação
Encapsulamento Fragmentação Remontagem Encapsulamento IP Encapsulamento Fragmentação Remontagem
Introdução Camada Internet Camada Network Interface Constrói datagrama IP Determina próximo hop Repassa datagrama para o nível Network Interface Camada Network Interface Resolve endereço de hardware Prepara datagrama para transmissão Frame não entende IP Solução : Encapsulamento do datagrama em um frame
Encapsulamento Ato de inserir um datagrama em um quadro de rede para que ele possa ser transportado O datagrama é transportado na parte de dados do quadro de rede O encapsulamento do datagrama IP acontece no nível 2 (Network Interface) O endereço de destino do quadro é o endereço do próximo hop Frame possui campo tipo de quadro
Encapsulamento
Encapsulamento na Inter-rede Cada roteador do caminho Desfaz encapsulamento retirando datagrama do frame Processa o datagrama (identifica próximo hop) Encapsula datagrama em um frame O endereço IP de destino é o mesmo desde a origem até o destino, porém o endereço físico muda a cada no roteador Um datagrama pode ser encapsulado em diferentes formatos de frame a cada hop O datagrama não muda nunca
MTU – Maximum Transmission Unit Cada tecnologia defini o tamanho máximo de uma frame Ethernet 1500 bits Toke Ring 4096 bits Datagrama IP 216 MTU – Tamanho máximo do frame de uma rede Qualquer datagrama encapsulado em um frame deve ser menor que a MTU da rede O datagrama é particionado para transmissão
MTU – Maximum Transmission Unit Inter-rede Redes heterogêneas – frames e MTU diferentes Fragmentação Divisão de um datagrama em pedaços pequenos chamandos fragmentos A divisão é feita baseada na MTU da rede O roteador detecta que o datagrama é maior que a MTU da rede e realiza a fragmemtação
Fragmentação - Detalhes Cada fragmento é um datagrama independente Possui cabeçalho Bit do cabeçalho indica se datagrama é fragmento Outros campos ajudam a reconstruir o datagrama original Campo Offset : Localização do fragmento no frame
Fragmentação
Remontagem Reconstrução de um datagrama original a partir de seus fragmentos Não acontece remontagem nos roteadores A remontagem acontece no computador destino final Reduz processamento nos roteadores Permite mudança da de rota Fragmentos de mesmo datagrama possuem mesmo valor no campo Identification
Remontagem Perdas de fragmentos Um datagrama só é remontado quando chegam todos os seus fragmentos Se faltar um fragmento, todo o datagrama é eliminado e se pede re-transmissão Tudo ou nada Remetente não sabe da fragmentação Não existe garantia que um datagrama retransmitido seja fragmentado da mesma maneira que o original
Fragmentando um segmento O esquema de fragmentação foi cuidadosamente projetado para possibilitar que um fragmento seja fragmentado ainda mais sem necessidade de remontagem hierárquica O IP não destingue entre fragmento originais e sub-fragmentos Offset (Distância da posição inicial)
Protocolo ICMP Mensagens de Erros Ferramentas baseadas no ICMP
Introdução O IP define serviço de melhor esforço Sem confiabilidade Descarte de pacotes O IP não ignora completamente os erros Técnicas de detecção de erros Protocolo para relatar erros ICMP
Detecção de Erros Camada Internet – Nível 3 Técnicas Procedimento Checksum sobre header Expiração de TTL Roteamento impossível (rede de destino sem rota) Resolução de endereço impossível Procedimento A camada Internet descarta datagrama com problema
ICMP – Internet Control Message Protocol Define mensagens de erros Relato de Erros Alguns erros são informados aos remetentes Um roteador envia mensagens para a origem Uma mensagem de erro contém informações relativas ao erro ocorrido Mensagens de erros são encapsuladas em datagramas IP O IP usa o ICMP para enviar mensagens de erros O ICMP usa o IP para transportar suas mensagens
Mensagens ICMP Replay responde a um request Mensagens de erros Source Quench (capacidade do buffer) Time Exceed (TTL) Destination Unreachable (rede incontáctável) Redirect (mudança de rota) Parameter Problem (parametro incorreto) Mensagens informativas Echo request/replay Replay responde a um request Address mask request/replay
Encapsulamento Mensagens ICMP são criadas em resposta a um erro de datagrama Endereço de destino é a origem do datagrama Mensagens ICMP não são construídas para erros de datagrama que possuem mensagem ICMP
ICMP e Ping Ping Verifica se destino pode ser alcançado Implementado sobre mensagens ICMP echo request e echo replay A origem envia uma mensagem echo request Se mensagem alcança destino é gerada uma resposta (echo replay) Se resposta não chega, origem deduz que destino não pode ser alcançado
ICMP e Traceroute Traceroute Lista roteadores entre uma origem e um destino especificado Implementado sobre mensagem ICMP Time Exceeded Origem envia mensagem com ttl=1 O primeiro roteador decrementa ttl e envia para origem time exceeded Origem envia mensagem ttl=2 Segundo roteador decrementa ttl e envia para origem time exceeded
ICMP - MTU Para evitar fragmentação é necessário identificar MTU mínima em um caminho Origem envia datagrama IP sem autorização para fragmentação (don't fragment flag) Roteador que não possa encaminha mensagem envia para origem mensagem ICMP fragmentation required Origem envia datagram IP de menor tamanho
Protocolo UDP Protocolo TCP Técnicas para Obter Confiabilidade Camada de Transporte Protocolo UDP Protocolo TCP Técnicas para Obter Confiabilidade
Introdução O IP define serviço de melhor esforço Sem confiabilidade Descarte de pacotes Transmissão confiável é importante para as aplicações Camada de Transporte Transmissão confiável UDP – Serviço de datagrama TCP – Entrega confiável
Suite TCP-IP
UDP – User Datagram Protocol Entrega de datagramas entre aplicações Melhor esforço Checksum Porta Abstração que os protocolos de transporte do TCP-IP utilizam para distinguir vários destinos de um mesmo host Número inteiros Um aplicativo especifica uma porta do protocolo
UDP – User Datagram Protocol Transmissão de dados UDP Endereço de destino Número da porta do destino Número da porta do remetente Portas de origem e destino podem ser diferentes
Datagrama UDP
Seleção do Número da Porta Um servidor abre uma porta e espera mensagens Um cliente envia mensagem para porta aberta pelo servidor Os servidores trabalham em portas conhecidas
Números de Portas Conhecidos
TCP - Transmission Control Protocol Protocolo de transporte Fornece serviço confiável utilizando datagrama IP Características Orientado a conexão Comunicação ponto a ponto Comunicação full-duplex Confiabilidade completa Interface de stream Partida de conexão confiável (3 estados) Desligamento de conexão confiável
TCP – Datagrama IP O TCP usa IP para entrega de pacotes As extremidades trabalham sobre portas O IP trata o TCP como qualquer outro dado, sem interpretar o conteúdo de mensagem Um roteador encaminha pacotes baseado no cabeçalho do IP O TCP de destino interpreta a mensagem TCP original
TCP – Datagrama IP
TCP – Entrega Confiável O TCP usa técnicas para fornecer entrega confiável Problemas Perda de pacotes Duplicação de pacotes Atrasos de pacotes Corrupção de dados Controle de fluxo Congestionamento
TCP – Entrega Confiável Número de sequência As aplicações entregam dados ao TCP na forma de stream O TCP quebra dados em fragmentos O TCP enumera fragmentos O TCP encapsula fragmentos em datagramas IP O stream original é recomposto no destino
TCP – Entrega Confiável Reconhecimento positivo (com retransmissão) Destino envia mensagem ACK para origem indicando entrega de dados com sucesso O emissor marca o instante de uma transmissão e se o reconhecimento não chegar até um tempo específica é feita uma retransmissão, com novo controle de tempo
TCP – Entrega Confiável Retransmissão adaptativa Timeout longo Retransmissões com atraso Timeout curto Retransmissões desnecessárias O timeout de retransmissão deve ser diferente para cada transmissão e deve ser configurado dinamicamente LAN (Timeout curto) WAN (Timeout longo)
Timeout Adaptativo
TCP – Entrega Confiável Janela deslizante (controle de fluxo) Origem e destino acordam o tamanho de uma janela de transmissão A origem transmite dados sem receber reconhecimento até que estejam pendentes reconhecimento da quantidade da dados especificada pelo tamanho da janela
Janela Deslizante
TCP – Entrega Confiável Controle de Congestionamento O TCP analisa a perda de pacotes como um medida de congestionamento e responde reduzindo a taxa em que se transmite dados (desacelera rapidamente)
Estabelecimento de Conexões Estabelecimento ou encerramento de conexões confiáveis Troca de três mensagens Acordo segura apesar das perdas de pacotes Estabelecimento de uma conexão SYN + ACK + ACK Encerramento de uma conexão FIN + ACK + ACK
Estabelecimento de Conexões
Header TCP