Protocolos Básicos e de Aplicações Introdução ao protocolo TCP/IP Prof. Kleber Rezende
Agenda Conceitos Básicos Camada Física Endereçamento IP ClassFull Protocolo ARP Protocolo IP Roteamento IP ClassFull
Interligação em Redes Acomoda distintas tecnologias básicas e hardware. Proporciona forma de interconectar redes heterogêneas. Esconde detalhes de hardware. Computadores se comunicam independentemente de suas conexões físicas.
Interligação em Rede TCP/IP Sistema aberto (RFC's podem ser obtidas via Internet). Denominado oficialmente Pilha de Protocolos TCP/IP. Pode ser usado em redes locais e/ou remotas.
Protocolos TCP/IP Fornecem regras para a comunicação. Define formato da mensagem Descrevem o que um computador faz quando recebe uma mensagem. Especificam como um computador trata um erro. É independente de hardware Os protocolos estão para a comunicação assim como os algoritmos estão para a computação.
Vantagens do uso de Protocolos Programadores não precisam aprender ou lembrar-se de todos os detalhes de hardware. Programas não ficam restritos a uma arquitetura específica. Podem promover comunicação direta entre um par de máquinas arbitrário.
Tipos de Serviços TCP/IP Serviço de entrega de pacotes sem conexão Promove o roteamento de pequenas mensagens de uma máquina para outra. Não há garantia de entrega nem de que os pacotes sejam entregues na mesma ordem em que foram transmitidos. É extremamente eficiente: Mapeamento direto em hardware Serviço de transporte de streams confiáveis Trata de problemas de perda ou falhas de comutação ao longo do caminho percorrido por um pacote. Em nível mais baixo as mensagens são divididas em pequenos pacotes.
Serviços de Aplicativos mais comuns na Internet Correio Eletrônico - Serviço sem conexão Transferência de Arquivos - Serviço orientado à conexão Login Remoto - Serviço orientado à conexão
Diferenças entre o TCP/IP e outras tecnologias de rede Independência de tecnologia de redes Interconexão Universal Confirmações fim-a-fim Padrões de protocolos de aplicativos
Camada de Enlace de Dados Tipos básicos de Redes de Comunicação: Comutação de Circuitos (Redes baseadas em conexões) Exemplo: Sistema Telefônico Vantagem: Capacidade fixa do circuito (64 Kbps) Desvantagem: Custo fixo (alto) independente do tráfego Comutação de Pacotes (Redes sem conexão) Uso: Redes de Computadores Vantagem: Realiza várias comunicações simultâneas Desvantagem: Capacidade de comunicação descresce mediante aumento da carga
Endereçamento de Rede Todos os computadores de uma rede recebe um único endereço inteiro. Os pacotes possuem um campo de endereço de destino, que aparece na mesma posição em todos os pacotes.
A tecnologia Ethernet Criada pela Xerox em 1970 e padronizada pelo IEEE (Institute for Eletrical and Eletronic Engineers) sob o número 802.3 Usa cabos coaxiais grosso, fino (Terminadores) e par-trançado (HUB's)
Transceptor: Dispositivo de hardware usado para fazer a conexão entre um computador e um cabo coaxial Ethernet.
Ethernet de Cabo Coaxial Grosso
Ethernet de Cabo Coaxial Fino
Característica de uma Rede Ethernet É uma tecnologia de barramento de difusão com método de entrega sem garantia e controle de acesso distribuído. Barramento = todas as estações compartilham o mesmo canal Difusão = todos os tranceptores recebem cada uma das transmissões Entrega sem garantia = o hardware não fornece qualquer informação sobre a entrega do pacote (Best Effort) Controle de acesso distribuído = não possui nenhuma autoridade central para permitir o acesso.
Esquema de acesso CSMA/CD (Carrier Sense Multiple Access with Collision Detect)
Endereços Físicos Ethernet Possuem 48 bits Cada computador conectado a uma Ethernet recebe um número único. Endereços Ethernet pertencem aos dispositivos de hardware (endereços de hardware ou endereço físico) Trocar uma interface hardware de um computador irá alterar o seu endereço físico Podem ser unicast, broadcast ou unicast.
O Formato do Quadro Ethernet Preâmbulo: Usado para fins de sincronização. Tamanho do Campo de Dados: Especifica o número de octetos no campo de dados de usuário. CRC: Usado para fins de detecção de erro.
Aumentando o comprimento da Ethernet Repetidores: É um dispositivo de hardware que transmite um sinal elétrico de um cabo a outro. Pontes: É um computador com duas ou mais interfaces Ethernet; "Aprende" dinamicamente quais computadores fazem de parte de cada um dos segmentos.
Redes FDDI Fiber Distributed Data Interconnect Opera em pequenas áreas geográficas e possui maior largura de banda que a Ethernet. Usa feixes de luz para transportar as informações. Fibra ótica é imune a interferência eletromagnética. É uma rede Token Ring. É auto-reparável, pois o hardware contorna uma falha automaticamente.
Redes FDDI
Redes ATM Asynchronous Transfer Mode Rede de alta velocidade, orientada à conexão. Opera tanto em pequenas quanto em grandes áreas geo-gráficas. É formada por um ou mais comutadores de alta velocida-de que são conectados aos computadores hosts e a outros comutadores. Utilizas fibras óticas para fazer as interconexões (inclusi-ve entre o host e o comutador) que chegam a 622 Mbps. Utilizam quadros de tamanho fixo (células)
Interligação em Redes Diferença entre interconexão em nível de aplicativos e interconexão em nível de rede. Propriedades: 1. Usuários ou programas aplicativos não devem ter conhecimento dos detalhes das interconexões de hardware; 2. Não é necessário conhecer a topologia; 3. Deve ser capaz de enviar dados através de redes intermediárias; 4. Todas as máquinas devem compartilhar um conjunto universal de identificadores.
Arquitetura de Interligação em Redes 1. Duas redes só podem ser conectadas por um computador que esteja ligado as duas. 2. Este computador deve cooperar com a comunicação entre duas máquinas. 3. Os computadores que interligam duas redes e cooperam na comunicação são chamados de gateways ou roteadores.
Interconexão através de roteadores IP Roteadores necessitam saber sobre a topolo-gia da interligação em redes, além das redes às quais estão conectados.
Interconexão através de roteadores IP Roteadores são computadores de pequeno porte. Geralmente têm pouco ou nenhum espaço de armazenamento em disco e pouca memória principal. Roteadores usam redes de destino e não hosts de destino.
A visão do usuário O usuário deve ver a interligação em redes como uma rede única; Além de roteadores que conecam redes físicas, o software é necessário em cada host para que os aplicativos usem a interligação como uma rede única. No caso de mudança da rede física, somente o software de interligação em redes deverá ser alterado.
A visão do usuário O TCP/IP trata todas as redes do mesmo modo, seja uma Ethernet ou a ANSNET.
Perguntas Qual a forma do endereço numa inter-ligação em redes? Como este endereço se relaciona com os endereços físicos? O que acontece quando algum pacote chega muito rápido a um roteador? Como os roteadores aprendem as rotas?
Endereços de Interligação em Redes Identificadores Universais: Para tornar universal um sistema de comunicação deve-se aplicar um método de identificação dos hosts que seja aceito globalmente. Hosts são classificados por: Nome: o que o objeto é. Endereço: onde o objeto está. Rota: como chegar até ele.
Endereçamento IP Número inteiro de 32 bits Projetado cuidadosamente para tornar o roteamento eficiente Hosts de uma mesma rede compartilham o mesmo prefixo de endereço. Cada endereço é o par (netid, hostid)
Classes de Endereços
Endereçamento IP Endereço não identifica um host, mas sim uma conexão de rede. Ex.: Host Multi-homed possui dois ou mais endereços. Um endereço onde o hostid igual a zero identifica uma rede. Um endereço onde o hostid consista somente de bits 1 é reservado para broadcasting. (Difusão direcionada) Um endereço de Difusão Limitada consiste de 32 bits 1. É usada quando um host necessita obter o seu endereço.
Endereçamento IP Um endereço com o netid igual a zero é interpretado como esta rede, ou seja, a rede onde o pacote chegou. Usado quando um host deseja se comunicar, mas não sabe o endereço da rede. Se um host se move de uma rede para a outra, seu endereço deve ser mudado. Hosts multi-homed podem não ser acessados, mesmo possuindo uma conexão física entre ele e os demais.
Endereçamento IP Notação Ponto Decimal: Cada octeto é escrito como um número decimal. Exemplo: 10000000 00001010 00000010 00011110 é representado por 128.10.2.30
Endereçamento IP Endereço de Loopback (127.0.0.0): usado para comunicação na máquina local.
Resumindo
Exemplo
Exemplo
Mapeamento de Endereços Internet para Endereços Físicos Duas máquinas de uma determinada rede física podem comunicar-se apenas se souberem o endereço físico uma da outra. Objetivo: Permitir que programas de alto nível trabalhem somente com endereços de interligação em redes. Como possibilitar isso?
Mapeamento Direto Exemplo: Rede pronet token ring Usa números inteiros pequenos para endereços físicos (até 256). Permite que o usuário escolha um endereço de hardware para uma máquina. Solução de Mapeamento: Escolhe-se endereços físicos que sejam parte dos endereços IP. Exemplo: Endereço físico = 3 Endereço IP = 192.5.48.3
Mapeamento Dinâmico Exemplo: Rede Ethernet Problemas: Cada interface recebe um endereço físico quando é fabricada. Assim, o endereço físico da máquina muda quando trocamos a interface. Endereço Ethernet tem 48 bits, enquanto o endereço IP tem, apenas, 32 bits. Soluções: Tabela de mapeamento. Protocolo de Resolução de Endereços.
Address Resolution Protocol Também como ARP. conhecido Fornece um mecanismo razoavelmen-te eficiente e fácil de manter.
Cache de Conversão Paradoxo: A pergunta para B, por difusão, como posso alcançar você? Entretanto, a difusão é muito cara, porque cada máquina da rede deve processar cada pacote de difusão. Assim, computadores que usam ARP mantém um cache com mapeamento entre endereços físicos e endereços IP.
Cache de Conversão Algoritmo: 1. Sempre que um computador recebe uma resposta ARP, ele guarda em seu cache o mapeamento recebido. 2. Quando ele transmite um pacote, primeiro ele procura em seu cache uma vinculação de endereços. Caso não encontre envia uma solicitação ARP. A prática mostra que, mesmo um cache pequeno é bastante eficiente, já que a comunicação implica na transferência de mais de um pacote.
Aprimoramentos ARP 1. Se A usar ARP para se comunicar com B, é bem provável que B também tenha que se comunicar com A num futuro próximo. B armazena o mapeamento em seu cache e, depois envia a resposta ARP para A 2. Como A difunde sua solicitação inicial, todas a máquinas da rede recebem o pacote. Todas máquinas podem fazer um mapeamento em seus caches do endereços físicos e IP de A. 3. Quando um computador tem sua interface substituída seu endereço físico muda. Esta máquina deve notificar as demais que seu endereço mudou, usando ARP.
Implementação ARP Algoritmo de Envio: 1. Dado um endereço IP, o software consulta seu cache para verificar se o mapeamento existe 2. Se existir 2.1. O software retira o endereço físico 2.2. Coloca os dados num quadro contendo aquele endereço 2.3. Envia o quadro Senão 2.4. Transmite uma mensagem de difusão ARP 2.5. Espera uma resposta
Implementação ARP Detalhes a serem cuidados: 1. Numa solicitação ARP a máquina de destino pode estar desativada ou muito ocupada. 2. Numa rede Ethernet o pacote pode se perder. 3. Uma máquina A pode ter uma associação para máquina B, mas o hardware de B é substituído.
Implementação ARP Algoritmo de Recebimento: 1. Quando um pacote ARP chega, o software retira o par de endereços (IP e físico) do transmissor. 2. Se existir uma entrada (IP) em seu cache local 2.1. Atualiza aquela entrada recarregando o endereço físico. 3. Processa o restante do pacote. 4. Se o receptor tiver o mesmo endereço IP de destino 4.1. Monta uma resposta, adicionando seu endereço físico 4.2. Envia, diretamente, ao solicitador Senão 4.3. Ignora o pacote
Encapsulamento ARP Transmissor designa um valor especial (0806 16 ) para o campo de tipo (no cabeçalho do quadro) para identificar uma mensagem ARP.
Formato do ARP Valores do Campo Operação: ARP - Solicitação (1); Resposta (2) RARP - Solicitação (3); Resposta (4)
Protocolo IP - Introdução Internet Protocol Protocolo que define um mecanismo de transmissão sem conexão, best-effort e não confiável. Sem conexão: Cada pacote é independente dos outros. Best-Effort: O software faz uma séria tentativa de entregar o pacote. Não confiável: A entrega não é garantida.
Protocolo IP - Características Define a unidade básica de transferência de dados através da interligação em redes TCP/IP. Especifica o formato exato de todos os dados. Desempenha função de roteamento. Define regras de: Como os hosts e roteadores devem processar os pacotes Como e quando as mensagens de erro devem ser geradas Em que condições os pacotes devem ser descartados
Protocolo IP - Formato Formato Geral Formato Detalhado
Protocolo IP - Formato VERS: Contém a versão do protocolo. Usado para assegurar que o formato do datagrama é o mesmo esperado. Versão atual é a quatro. HLEN: Comprimento do cabeçalho medido em palavras de 32 bits. Cabeçalho típico possui 20 octetos, logo HLEN = 5. TOTAL LENGTH: Comprimento total do datagrama. Tamanho máximo do datagrama é 2 16 = 65535 octetos. TIME TO LIVE (TTL): Especifica quanto tempo o datagrama pode permanecer no sistema de interligação em redes. PROTOCOL: Especifica qual protocolo de alto nível foi utilizado para utilizado para criar a mensagem que está sendo transportada na área de dados do datagrama. HEADER CHECKSUM: Assegura integridade dos valores do cabeçalho. Reduz o tempo de processamento gastos pelos roteadores.
Protocolo IP - Formato Service Type: Especifica como o datagrama deve ser tratado. É dividido em cinco subcampos. Precedence: Permite que os transmissores indiquem a importância de cada datagrama. Varia de zero (precedência normal) até sete (controle de rede) Exemplo: Controle de congestionamento. Bit D: Solicita um atraso (delay) baixo. Bit T: Solicita uma vazão (throughput) alta. Bit R: Solicita uma confiabilidade (reliable) alta.
Encapsulamento de Datagramas Que tamanho um datagrama deve ter? A princípio qualquer um, já que são tratados por software e não por hardware. Para tornar o transporte eficiente, é necessário que cada datagrama viaje dentro de um quadro físico distinto. Problema: Cada rede física tem o seu próprio tamanho de quadro. Os datagramas são encapsulados em quadro físico da rede e são tratados como uma mensagem qualquer a ser enviada de uma máquina a outra.
Fragmentação Motivação MTU (maximum transfer unit): Limite superior fixo no total de dados que podem ser transferidos em quadro físico: Exemplo: Ethernet tem MTU = 1500 octetos; FDDI tem MTU = 4470 octetos Soluções possíveis para o problema do tamanho do datagrama: Limitar os datagramas para encaixar na menor MTU possível -> Ineficaz quando os datagramas trafegarem em redes com MTU maior. Permitir datagramas maiores que a MTU mínima -> Datagrama nem sempre irá se encaixar num quadro único da rede.
Fragmentação - Definição Solução usada pelo IP: Não fixar o tamanho do datagrama. Determina-se um tamanho inicial e divide os datagramas extensos em frações menores quando estes atravessam uma rede com MTU pequena. Este processo é conhecido como fragmentação.
Fragmentação - Exemplo Cada fragmento tem o mesmo formato que o datagrama original. Cada fragmento duplica a maior parte do cabeçalho do datagrama original (exceto pelos campos FLAGS que indica que ele é um fragmento; e TOTAL LENGTH).
Remontagem dos Fragmentos O datagrama deve ser remontado após passar em uma rede ou os fragmentos devem ser transportados até o destino final para ser remontados lá? O TCP/IP leva os fragmentos até o destino final. Vantagens: Cada fragmento pode ser roteado de forma independente Não exige que roteadores intermediários armazenem ou remontem fragmentos Desvantagens: Redes físicas com MTU grandes que se encontrem após o ponto de fragmentação só transportarão pequenos fragmentos. Se um fragmento qualquer for perdido, o datagrama não poderá ser remontado.
Controle de Fragmentação Os campos IDENTIFICATION, FLAGS e FRAGMENT OFFSET controlam a fragmentação e remontagem de datagramas. IDENTIFICATION: Contém um número inteiro que identifica o datagrama. Todos os fragmentos de um datagrama recebem o mesmo o número de identificação. FRAGMENT OFFSET: Especifica o deslocamento, no datagrama original, dos dados que estão sendo transportados no fragmento, medido em unidades de oito octetos, iniciando em zero. FLAGS: 1º não usado. 2º bit especifica se o datagrama pode ser fragmentado. 3º bit especifica se o fragmento é intermediário ou final.
Opções IP São incluídas, principalmente, para testes e depuração de erros na rede. Todas opções possuem campos de código, comprimento e ponteiro. O campo código é subdividido como mostrado a seguir: O campo copy é usado durante a fragmentação. Copy = 1 => opção deve ser copiada para todos os fragmentos. Copy = 0 => opção só deve ser copiada para um fragmento
Opção de Armazenamento de Rota Permite que a origem crie uma lista vazia de endereços IP e faz com que o endereço de IP de cada roteador que processe o datagrama seja acrescentado à lista. Length: Especifica o comprimento total da opção Pointer: Especifica o deslocamento dentro da opção do próximo slot disponível. Campo Copy tem valor 0
Opção de Rota da Origem Oferece uma maneira do transmissor impor um caminho pelo qual o datagrama deve passar. Campo Copy tem valor 1
Roteamento de Datagramas IP Roteamento refere-se ao processo de selecionar um caminho pelo qual são enviados pacotes. Roteador se refere a um computador que executa tal seleção. Qualquer computador com diversas conexões de rede pode atuar como roteador, entretanto hosts não devem atuar como roteadores. Figura 8.1. Host deve tomar decisões de roteamento, mesmo estando ligado a uma única rede.
Formas de Encaminhamento Direto: É a transmissão de um datagrama, através de uma única rede para outra máquina. Indireto: Ocorre quando o destino não se encontra na mesma rede que a origem. O transmissor passa o datagrama a um roteador para que esta faça a entrega. Como saber se o destinatário encontra-se ou não na mesma rede?
Roteamento Orientado por Tabela O algoritmo de roteamento IP normal usa uma tabela de roteamento em cada máquina que armazena informações sobre possíveis destinos e como acessá-las. Que informações devem ser mantidas nestas tabelas? Resposta: Apenas das redes que podem ser alcançadas por aquela máquina.
Roteamento do Próximo Passo Tipicamente, uma tabela de roteamento contém pares (N, R), onde N é o endereço IP da rede de destino e R é o endereço IP do próximo roteador ao longo do caminho até a rede N. O roteador não conhece o caminho completo até o destino. Cada entrada na tabela aponta para um roteador que pode ser acesso através de uma única rede. (encaminhamento direto)
Exemplo