Arquitetura e Protocolos de Redes de Computadores Prof. Rafael Paoliello Guimarães, PhD [email protected] Nossa Agenda • Arquitetura de redes locais e de longa distância – Modelo OSI – Modelo TCP/IP • Conceitos sobre as camadas física e de enlace – Cabos e Modulações – Ethernet • TCP/IP – Como utilizar para interligação de redes heterogêneas – Os componentes da arquitetura TCP/IP (IP, ARP, RARP, ICMP, TCP e UDP) – As ferramentas TCP/IP As redes de computadores • Classificação – – – – LAN (Local Area Network) MAN (Metropolitan Area Network) WAN (Wide Area Network) PAN (Personal Area Network) TCP/IP TCP/IP LAN TCP/IP TCP/IP TCP/IP WAN TCP/IP LAN LAN TCP/IP TCP/IP TCP/IP LAN Redes de computadores • Estruturação do projeto de uma rede em camadas hierárquicas – Modelo OSI (Open Systems Interconnection) Aplicações que utilizam a rede OSI Aplicação Transformação nos dados: criptografia, compressão, etc Apresentação Controle das sessões de comunicação Sessão Isola camadas superiores da parte de transmissão. Controles de comunicação fim-a-fim Transporte Cuida basicamente de endereçamento das estações e roteamento dos dados Rede Enlace Transforma canal não-confiável em confiável. Detecção/Correção de erros, controle de fluxo, etc Física Resolver problemas de representação de 0 e 1. Adaptação software-hardware Redes de computadores • Estruturação do projeto de uma rede em camadas hierárquicas – Modelo OSI (Open Cabeçalho Systems Interconnection) (Header) Usuário A Usuário B Aplicação Aplicação Apresentação Apresentação Sessão Sessão Transporte Transporte Rede Rede Enlace Enlace Física Física Modelo TCP/IP • Simplificação do modelo OSI – Camadas de sessão e apresentação desaparecem • Funcionalidades devem ser implementadas pelas aplicações Aplicação Aplicação – Apresentação Enlace e Físico se juntam na camada intra-rede Sessão Transporte Rede Transporte Inter-rede Interface de rede Enlace Intra-rede Física MODELO OSI MODELO TCP/IP A camada física • Técnicas de codificação do sinal – NRZ (Non-Return to Zero), Manchester • Multiplexação do sinal – – – – TDM (Time Division Multiplexing) FDM (Frequency Division Multiplexing) CDM (Code Division Multiplexing) SDM (Space Division Multiplexing) Camada Física • Cabos e conectores – – – – Par trançado Coaxial Fibra ótica (monomodo, multimodo) Meio aéreo (wireless) Camada de Enlace • Delimitação de Quadros – Camada de Enlace recebe seqüência de bits. Onde começa e onde termina cada quadro? • Controle de Erros – Bits transmitidos podem conter erros devido a interferência durante a transmissão. Como detectar e/ou corrigir esses erros? • Controle de Fluxo – Como garantir que o transmissor não enviará dados em uma velocidade maior do que o receptor é capaz de processá-los • Controle de Acesso – Se vários quiserem utilizar o meio, como ordenar a utilização? Delimitação de Quadros • Contagem de caracteres – Campo no cabeçalho informa número de caracteres no quadro • Caracteres delimitadores e transparência – Caracteres especiais indicam ínicio e fim do quadro – Se caracter especial fizer parte dos dados, se insere (stuff) um caracter especial antes dele • Seqüência de bits (flags) e transparência de bits – HDLC: 01111110 como delimitador – Encontra 5 bits 1 consecutivos nos dados, insere bit 0 • Violação de códigos do nível físico – Manchester: Sem transição poderia ser utilizado para delimitar quadros Controle de Erros • Reconhecimento positivo (ACK) e temporizador (timeout): Satisfatório • Transmissão -> Erro -> timeout -> Retransmissão -> ACK • Transmissão e retransmissão com mesmo número de seq • Introdução de FCS (Frame Sequence Check) ao final do quadro – Bit de paridade (controle fraco) – CRC (controle forte) • Cyclic Redundancy Check • Seqüência de bits visto como polinômio • 101001 -> x5 + x3 + 1 – Códigos de correção de erros (Hamming) CRC • Baseado na divisão de polinômios – Divisor deve ser conhecido por ambas as partes • CRC-16 = x16 + x15 + x2 + 1 • CRC-CCITT = x16 + x12 + x5 + 1 • CRC-32 = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 – Aritmética Módulo-2: soma é um XOR –T=M+R • T é a mensagem a ser transmitida (n+k bits) • M são os dados (k bits) • R é o CRC (n bits) – P é o divisor (n+1) bits Exemplo CRC • M = 1010001101 (10 bits) • P = 110101 (6 bits) 101000110100000 | 110101 110101 111011 O transmissor insere 5 bits 0 (tamanho do CRC) 110101 ao final da mensagem e divide pelo polinômio 111010 110101 O transmissor transmite a mensagem seguida do CRC 111110 110101 O receptor, divide tudo pelo polinômio e, se não 101100 houve erros, o resto deve ser zero 110101 110010 110101 01110 CRC Controle de erros • Técnicas de retransmissão – Bit alternado (stop and wait) • TX ACK TX ACK TX ACK … – Janela N com retransmissão integral (Go-back-N) • Um ACK a cada N quadros, confirma a recepção de todos os anteriores • Caso não receba um ACK do quadro i, retransmite tudo a partir de i – Janela N com retransmissão seletiva (Selective repeat) • Caso não receba um ACK do quadro i, retransmite somente i Controle de Fluxo • Bit alternado – Controla o fluxo automaticamente • Janela N técnica de janela deslizante – Janela de Transmissão: envia até T quadros sem ACK – Janela de Recepção: quando R quadros são recebidos e não foram processados pela camada de rede, se envia um receive-not-ready à origem, a transmissão é suspensa e retormada quando se envia receive-ready Tipos de serviço • Sem conexão e sem reconhecimento – Datagrama não-confiável – Redes onde a taxa de erro do nível físico é muito baixa • Sem conexão e com reconhecimento – ACK ou NACK • Orientado à conexão – Estabelece conexão – Dados – Fim da conexão Com ACK Controle de Acesso • Várias máquinas ligadas ao meio – Controle centralizado (polling) – Controle distribuído • Subdivisão adotada proposta pelo IEEE 802 – Adotada pela ISO CAMADA DE ENLACE LLC MAC Interface com a camada de Rede - controle de fluxo e de erros Controle de acesso ao meio CSMA/CD (Collision Detection) • Estação “ouve” meio antes de transmitir – Se meio estiver livre, transmite, senão espera período de tempo e tenta novamente – Se há colisão durante sua transmissão, aborta a transmissão • envia sinal Jam, 48 bits: garante que todos detectam colisão – Detectada colisão, estação espera um tempo para retransmissão • Espera aleatória exponencial truncada: tempo de espera entre 0 e um limite superior. Limite superior é dobrado a cada colisão sucessiva. – ETHERNET: Escolhe K entre 0 e 2j-1 na j-ésima colisão – ETHERNET: Espera o tempo de transmissão de K x 512 bits • Utilizado nas redes Ethernet Ethernet (IEEE 802.3) • Estrutura do quadro Preâmbulo Destino Origem T Dados FCS • Preâmbulo: 7 bytes 10101010, 1 byte 10101011 • Destino, Origem: endereços MAC (6 bytes cada), receptores checam endereço destino, se diferente, descartam quadro • T (Tipo): indica protocolo de rede usado (IP, IPX, Appletalk etc) • FCS: CRC do quadro Interconexão de LANs • Por que não só uma grande LAN? – Nós de uma LAN devem compartilhar largura de banda – Tamanho máximo do cabeamento – Domínio de colisão seria muito grande • Hubs HUB HUB HUB HUB – São repetidores – Não isolam tráfego (domínio de colisão é extendido) – Podem ser interconectados hierarquicamente – Todas LANs interconectadas devem implementar o mesmo protocolo Bridges • Trabalham na camada de enlace – Permitem a conexão de diferentes protocolos de enlace • Switches – Permitem o isolamento de tráfego – Aprende que nós estão conectados em cada porta e direcionam tráfego apenas para aquela porta – Caso não conheçam destino, enviam a todas as portas Camada de rede • Vamos focalizar nossa atenção ao protocolo IP – Mais difundido dentre os protocolos de rede • IP (Internet Protocol) – Chaveamento de pacotes c/ datagrama não-confiável • Não faz nenhum tipo de verificação de entrega dos pacotes • Não estabelece nenhum tipo de circuito/conexão – – – – Função básica: rotear pacotes baseado no end. IP Define o endereçamento universal da Internet Atualmente o IP se encontra na versão 6 Versão 4 ainda é a mais difundida, apesar do futuro apontar para a versão 6 Histórico • 1969 – DARPA (Defense Advanced Research Project Agency) cria um projeto de pesquisa para o desenvolvimento da rede de comutação de pacotes ARPANET • Robusta, confiável, independente de fornecedor • 1975 – ARPANET deixa de ser experimental e passa a ser operacional, família de protocolos TCP/IP começa a ser concebida • 1979 – Internet Control and Configuration Board define o projeto de um protocolo para interconexão de redes • 1980 – TCP/IP torna-se padrão na ARPANET Histórico • 1983 – TCP/IP adotado como padrão militar – Defense Communication Agency pede divisão entre ARPANET e MILNET (rede militar) • Internet = ARPANET + MILNET – TCP/IP é integrado ao BSD/Unix e amplamente disponibilizado • 1985 – NSF (National Science Foundation) promove expansão da Internet para comunidade acadêmica (NSFNET) • 1986-1992 – NSF abre acesso à Internet para comunidade científica fora do EUA Algumas características do TCP/IP • Órgão controlador central da Internet – NIC (Network Information Center): mantém e distribui informações sobre TCP/IP • Todos documentos Internet - TCP/IP – Organizados em RFC (Request for Comments) – Numeradas em ordem cronológica – Podem ser encontrados em: • http://www.ietf.org/rfc.html • http://www.rfc.net • Principais protocolos – IP (Internet Protocol) – TCP (Transfer Control Protocol) – UDP (User Datagram Protocol) A camada IP (rede) • O endereçamento feito por esta camada é universal (único para toda a rede) – A cada máquina se atribui um endereço de 32 bits – Endereço IP foi pensado de forma a tornar o roteamento mais eficiente – Formado por um prefixo que indica a rede e um sufixo que indica a máquina dentro de uma rede • Endereçamento hierárquico: como o telefone, DDD+número 32 bits (4 bytes) 00001010 10101010 01110001 00000111 10.170.113.7 Classes de endereço • Inicialmente 3 classes de endereço foram criadas: – Classe A: 0.0.0.0 a 127.255.255.255 0 Rede Máquina (Host) – Classe B: 128.0.0.0 a 191.255.255.255 10 Rede Máquina (Host) – Classe C: 192.0.0.0 a 223.255.255.255 110 Rede Máquina (Host) Classes de endereço • Duas outras classes foram criadas posteriormente – Classe D: 224.0.0.0 a 239.255.255.255 • Utilizada para Multicast 1110 – Classe E: 240.0.0.0 a 247.255.255.255 • Reservada para uso futuro 1110 Redes Endereços Classe A 126 16.777.214 Classe B 16.382 65.534 Classe C 2.097.150 254 Regras de endereçamento • Endereço IP contém informações sobre a rede e a máquina – Como fazer com máquinas que estejam conectadas a mais de uma rede? Roteadores, por exemplo… – Cada uma destas redes possui um “prefixo” diferente de endereço IP • Como o endereço codifica tanto a máquina quanto a rede, ele não especifica uma máquina e sim uma conexão a uma rede – Se uma máquina está conectada a duas redes, cada conexão receberá um endereço IP diferente Regras de endereçamento Rede A Rede B 222.10.13.1 217.12.15.7 Roteador • Endereços de rede – Assim como as interfaces de máquina, as redes também tem seus endereços IP • Endereços compostos pelo prefixo de rede, porém com a parte da máquina preenchida com zeros • Estes endereços não podem ser utilizados para máquinas • Exemplos: 120.0.0.0 (classe A), 150.10.0.0 (classe B), 215.123.12.0 (classe C) Regras de endereçamento • Endereços de broadcast – Ao enviar para este endereço, envia-se a todas as máquinas da rede • Endereços compostos pelo prefixo de rede, porém com a parte da máquina preenchida com uns • Estes endereços não podem ser utilizados para máquinas • Exemplos: 120.255.255.255 (classe A) 150.10.255.255 (classe B), 215.123.12.255 (classe C) • Sendo assim, o primeiro e o último endereço de cada rede nunca podem ser utilizados por máquinas Regras de endereçamento • Endereço de Loopback – Toda máquina rodando TCP/IP possui uma interface de loopback – Esta interface não conecta a máquina a rede alguma – Seu objetivo é permitir a comunicação entre processos de uma mesma máquina • Fluxo normal dos dados: Aplicação TCP/UDP IP Enlace Físico transmissão recepção Físico Enlace IP TCP/UDP Aplicação • Fluxo utilizando loopback: Aplicação TCP/UDP IP loopback IP TCP/UDP Aplicação – O endereço classe A 127.0.0.0 é reservado para loopback e não pode ser utilizado por nenhuma rede • Quase todas as implementações utilizam 127.0.0.1 como endereço de loopback Regras de endereçamento • Endereços IP reservados – Alguns outros endereços são reservados e não podem ser utilizados por nenhuma máquina conectada diretamente à Internet – São reservados para máquinas não conectadas à Internet ou conectadas através de um proxy – Os endereços reservados são especificados pela RFC1597 e são os seguintes Rede 10.0.0.0 Máscara 255.0.0.0 172.16.0.0 255.240.0.0 192.168.0.0 255.255.0.0 Falaremos sobre máscaras mais tarde Exemplo • Exemplo de endereçamento IP • Token Ring: 192.3.40.0 (classe C) • Ethernet: 146.134.0.0 (classe B) • Ethernet: 12.0.0.0 (classe A) Ethernet 146.134.0.0 146.134.223.1 192.3.40.7 146.134.10.7 146.134.15.3 192.3.40.37 Token Ring 192.3.40.0 192.3.40.2 12.130.0.2 192.3.40.6 12.130.0.3 192.3.40.98 146.134.223.2 12.3.20.21 Ethernet 12.0.0.0 Máscaras • Só a identificação da classe não é mais suficiente para indicar bits de rede e bits de máquina – Necessidade de outro mecanismo que indique isso: Máscaras! • A máscara de um endereço possui 32 bits e – seus bits são 1, se os bits correspondentes no endereço IP representam a rede – seus bits são 0, se representam a máquina Classe A 11111111 00000000 00000000 00000000 Classe B 11111111 11111111 00000000 00000000 Classe C 11111111 11111111 11111111 00000000 255.0.0.0 255.255.0.0 255.255.255.0 – Os bits de rede e máquina não precisam ser contíguos, porém isso gera endereços muito confusos (melhor evitar!) 11111111 00100100 00111000 00000000 (máscara válida) Sub-redes não utilizáveis • A especificação TCP/IP diz que a primeira e a última sub-redes não devem ser utilizadas • Exemplo: – Dividimos uma rede classe C (200.241.14.0) em 8 sub-redes, cada uma podendo conter até 32 endereços • 30, se desconsideramos o end. de rede e de broadcast de cada uma 200 241 14 11001000 11110001 00001110 00000000 11001000 11110001 00001110 00100000 11001000 11110001 00001110 01000000 11001000 11110001 00001110 01100000 6 sub-redes utilizáveis 11001000 11110001 00001110 10000000 11001000 11110001 00001110 10100000 11001000 11110001 00001110 11000000 11001000 11110001 00001110 11100000 • Máscara 11111111 11111111 11111111 11100000 (255.255.255.224) Máscaras • As máscaras também farão parte das tabelas de rotas • Algoritmo de roteamento com sub-redes – Verifique no datagrama IP o endereço IP do destino – Bate com alguma das suas interfaces? • Sim. Joga fora o cabeçalho IP e entrega o campo de dados aos protocolos de mais alto nível (transporte) • Não. Percorra a Tabela de Rotas – Faça um AND bit-a-bit do IP de destino com a máscara – Compare o resultado com a rede destino – Se for igual envia o pacote para o roteador indicado na tabela • Se não encontrou uma rota, envia mensagem de erro à origem ARP (Address Resolution Protocol) • Duas máquinas de uma mesma rede física só podem se comunicar se souberem o endereço MAC uma da outra • De alguma forma, se deve obter o endereço MAC de uma máquina a partir do endereço IP • ARP é utilizado – A envia um broadcast perguntando qual máquina possui o IPB – Todas máquinas recebem, mas só B responde com o seu endereço MACB – A armazena o par (IPB, MACB) e B armazena o par (IPA, MACA) obtido ao receber o broadcast. – Essa informação fica nos caches de A e B por um período apropriado (TTL, ou Time To Live) Exemplo ARP • 146.134.10.7 quer enviar dados a 146.134.15.3 – 146.134.10.7 envia um pacote de ARP Request – 146.134.15.3 envia um pacote de ARP Response – A partir daí, os pacotes IP podem ser encapsulados em quadro de enlace (Ethernet, no caso) Ethernet 146.134.0.0 146.134.223.1 192.3.40.7 146.134.10.7 146.134.15.3 192.3.40.37 Token Ring 192.3.40.0 192.3.40.2 12.130.0.2 192.3.40.6 12.130.0.3 192.3.40.98 146.134.223.2 12.3.20.21 Ethernet 12.0.0.0 Pacote ARP • Formato do pacote ARP Hardware Type HLEN PLEN Protocol Type Operation Sender HA (octetos 0-3) Sender HA (octetos 4-5) Sender IP (octetos 0-1) Sender IP (octetos 2-3) Target HA (octetos 0-1) Target HA (octetos 2-5) Target IP (octetos 0-3) – Hardware Type: especifica a interface de hardware pela qual o usuário espera uma resposta (1 se for Ethernet) – Protocol Type: tipo de endereço que o usuárioestá procurando (0800H se for IP) – HLEN e PLEN: Tamanho dos endereços MAC e de rede – Operation: 1 – ARP Request, 2 – ARP Response, 3 – RARP Request, 4 – RARP Response RARP (Reverse ARP) • ARP mapeia endereço IP em endereço MAC • RARP faz o serviço contrário, de posse do endereço MAC, obtém o endereço IP – Utilizado em máquinas sem disco que dão boot via rede e necessitam de um endereço IP ainda durante o boot – Ao iniciar, a máquina envia um broadcast perguntando qual o enderço IP correspondente ao seu endereço MAC – Um servidor RARP responde e a máquina pode falar com qualquer outra a partir de então O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL Type of Service Identification Time to Live (TTL) 19 16 24 31 Total Length Flags Protocol Fragment Offset Header Checksum Source IP Address Destination IP Address IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL 16 19 Type of Service Version (4 bits): Indica a Identification Flags versão do IP Time to Live (TTL) Protocol 24 31 Total Length Fragment Offset Header Checksum Source IP Address Destination IP Address IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL 16 19 Type of Service 24 31 Total Length Identification Flags IHL, IP Header Length (4 bits): Fragment Offset Indica o tamanho do datagrama IP (emProtocol palavras de 32 bits) Header Checksum Time to Live (TTL) Source IP Address Destination IP Address IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL 19 16 Type of Service Identification 24 31 Total Length Flags Fragment Offset Type of Service (8 bits): Especifica como o protocolo de mais alto nível Time to Live (TTL) que Protocol Header Checksum gostaria o datagrama fosse manuseado 0 1 2 3 4 5 6 7 Source IP Address Precedência D T R Precedência: Destination Importância do pacote IP Address D: Baixo Delay Alto throughput IP Options T: (if any) R: Alta confiabilidade Data Padding O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL 19 16 Type of Service Identification 24 31 Total Length Flags Fragment Offset Difícil ser garantido pela Internet, considerado uma dica e não uma Time to Live (TTL) Protocol Header Checksum demanda Redefinido em 1990 pela IETF para acomodar os Differentiated Services Source IP Address 0 1 2 3 4 Code Point 5 6 7 Destination IP Address IP Options (if any) Definições nas RFC2474, RFC3168 e RFC3260 Data Padding O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL 16 19 Type of Service 24 31 Total Length Flagstotal do Fragment Offset TotalIdentification Length (16 bits): Tamanho pacote IP, se pacote for fragmentado, indica tamanho do fragmento Time to Live (TTL) Protocol Header Checksum Source IP Address Destination IP Address IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL Type of Service Identification Time to Live (TTL) 19 16 24 31 Total Length Flags Protocol Identification (16 bits): Valor inteiro que identifica o datagrama. Auxilia na IP Address remontagem de pacotesSource fragmentados Fragment Offset Header Checksum Destination IP Address IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL Type of Service Identification Time to Live (TTL) 19 16 24 Total Length Flags Protocol 31 Fragment Offset Header Checksum Flags (3 bits): Os dois bits de mais baixa ordem controlam a fragmentação. Um bit especifica se um pacoteSource pode IP ouAddress não ser fragmentado. O segundo bit especifica se o Destination IP Address pacote é o último fragmento IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL Type of Service Identification Time to Live (TTL) 19 16 24 31 Total Length Flags Protocol Fragment Offset (13 bits): posição do fragmento no pacote original (em bytes) Fragment Offset Header Checksum Source IP Address Destination IP Address IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL Type of Service Identification Time to Live (TTL) 19 16 24 31 Total Length Flags Protocol Fragment Offset Header Checksum Source IPquanto Address Time-to-live (8 bits): Especifica tempo o pacote pode ficar na rede Destination IP Address IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL Type of Service Identification Time to Live (TTL) 19 16 24 31 Total Length Flags Protocol Fragment Offset Header Checksum Protocol (8 bits): Indica Source qual IP Address protocolo de transporte está sendo Destination IP Address transportado pelo pacote IP IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL Type of Service Identification Time to Live (TTL) 19 16 24 31 Total Length Flags Protocol Fragment Offset Header Checksum Source IP Address Header checksum (16 bits): Soma de complemento 1 de blocos de 16 bits Destination IP Address do cabeçalho IP IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL Type of Service Identification Time to Live (TTL) 19 16 24 31 Total Length Flags Protocol Fragment Offset Header Checksum Source IP Address Destination IP Address Source IP Address (32 bits): Endereço IP da origem IP Options (if any) Data Padding O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL Type of Service Identification Time to Live (TTL) 19 16 24 31 Total Length Flags Protocol Fragment Offset Header Checksum Source IP Address Destination IP Address IP Options (if any) Destination IP Address (32 bits): Endereço IP do destino Data Padding O pacote IP • Unidade básica de transferência 0 19 16 IP4 Options8 (tamanho variável): Um octeto do24código da opção31 seguido octeto com o tamanho Total da opção, IHL de um Type of Service Length seguido de Version um conjunto de octetos com os dados da opção 0 1 2 Copy Classe 3 4 5 6 7 Flags Número da opção Identification Time to Live (TTL) Protocol Fragment Offset Header Checksum Copy: Se for 1, opções são copiadas em todos fragmentos Classe: 0 – datagrama de controle, Source IP Address 2 – Debug, 1 ou 3 – Reservado para uso futuro Destination IP Address IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL Type of Service Identification Time to Live (TTL) 19 16 31 Total Length Flags Protocol 24 Fragment Offset Header Checksum Padding (tamanho variável): Faz Source IP Address com que o cabeçalho seja múltiplo de 32IP bits Destination Address IP Options (if any) Padding Data O pacote IP • Unidade básica de transferência 0 4 Version 8 IHL Type of Service Identification Time to Live (TTL) 19 16 31 Total Length Flags Protocol 24 Fragment Offset Header Checksum Data (tamanho variável): Dados a serem Source transmitidos pelo pacote IP. IP Address Máximo: Destination IP Address Cabeçalho + dados = 65.535 bytes IP Options (if any) Padding Data Algumas opções IP • Opções IP Option Number 1 2 3 7 8 9 11 12 4 18 Descrição No operation Security Loose Route Recorde Route Stream Identifier Strict Source Route MTU Probe MTU Reply Timestamp Traceroute Algumas opções IP • Record Route Option (Opção 7) – Cada roteador pelo qual o pacote passe acrescenta seu 0 8 16 24 endereço IP na lista CODE 31 LENGTH POINTER Primeiro Endereço IP Segundo Endereço IP • Source Route Option ... – Indica a rota a ser seguida pelo pacote IP • Strict (Opção 9): tem que seguir exatamente o caminho 0 8 16 24 definido CODE LENGTH POINTER • Loose (Opção 3): Endereço IP do primeiro hop tem que passar pelos Endereço IP do segundo hop roteadores indicados, ... mas podem haver mais roteadores intermediários 31 Algumas opções IP • Timestamp (Opção 4) – Similar ao Record Route, porém cada roteador coloca na lista, além do seu IP, o tempo em que o pacote chegou 0 8 CODE 16 24 31 LENGTH POINTER Endereço IP do primeiro hop Tempo de chegada ao primeiro hop Endereço IP do primeiro hop Tempo de chegada ao primeiro hop ... – OFLOW: número de roteadores que não puderam incluir informações na lista – FLAGS: controla formato da lista de endereços Fragmentação • Cada protocolo de enlace possui um tamanho máximo de quadro (MTU, Maximum Transfer Unit) – Ethernet: 1500 bytes – ATM: 53 bytes – FDDI: 4500 bytes etc • O pacote IP tem que caber dentro de um quadro de enlace – Se no enlace anterior o MTU era menor do que no enlace atual, o pacote IP pode não caber no novo quadro: deve ser fragmentado em pacotes menores Fragmentação • Cada fragmento recebe uma cópia do cabeçalho IP original e uma porção dos dados Cabeçalho IP Dados (1400 bytes + 20 bytes cabeçalho) Fragmentos MTU = 600 (FRAGMENTAÇÃO) Cabeçalho IP Dados 1 ID = xxxx DF = 0 MF =1 OFFSET = 0 Cabeçalho IP Dados 2 ID = xxxx DF = 0 MF = 1 OFFSET = 580 Cabeçalho IP Dados 3 ID = xxxx DF = 0 MF = 0 OFFSET = 1160 Original Fragmentação • Exemplo: MTU = 1500 bytes 1 Datagrama Origem 1500 bytes ID = 12345, DF = 0 MF = 0 Offset = 0, len = 1500 R1 MTU = 600 bytes 2 fragmentos de 600 bytes e 1 de 340 bytes R2 MTU = 1500 bytes 2 fragmentos de 600 bytes e 1 de 340 bytes ID = 12345, DF = 0 MF = 1 Offset = 0, len = 600 ID = 12345, DF = 0 MF = 1 Offset = 0, len = 600 ID = 12345, DF = 0 MF = 1 Offset = 580, len = 600 ID = 12345, DF = 0 MF = 1 Offset = 580, len = 600 ID = 12345, DF = 0 MF = 0 Offset = 1160, len = 340 ID = 12345, DF = 0 MF = 0 Offset = 1160, len = 340 Fragmentação • Exemplo (caso em que DF=1): MTU = 1500 bytes 1 Datagrama Origem 1500 bytes ID = 12345, DF = 1 MF = 0 Offset = 0, len = 1500 ICMP – Destination Unreachable Fragmentation Needed and DF = 1 R1 MTU = 600 bytes 0 fragmentos Mensagem ICMP Datagrama descartado ICMP – Destination Unreachable Fragmentation Needed and DF = 1 Mensagem de erro gerada e recebida pela origem do datagrama Fragmentação • Os fragmentos são remontados só no destino – Remontagem em roteadores intermediários causa gasto de memória e de processamento • No processo de remontagem, se o tempo de espera por fragmentos se esgota – Fragmentos são descartados – Envia mensagem de erro (ICMP Time Exceeded) à origem • Fragmentos diferentes podem ir por rotas diferentes Roteamento de datagramas IP • Roteamento: processo de escolha de um caminho através do qual serão enviados pacotes • Roteador: máquina que realiza essas decisões • Dois tipos de roteamento – Direto: duas máquinas que participam de uma conversação IP estão na mesma rede física Comunicação entre A e B ARP Request (IPB) IPR1 IPR2 MACR1 MACR2 IPA IPB IPC IPD MACA MACB MACC MACD Roteamento de datagramas IP • Roteamento: processo de escolha de um caminho através do qual serão enviados pacotes • Roteador: máquina que realiza essas decisões • Dois tipos de roteamento – Direto: duas máquinas que participam de uma conversação IP estão na mesma rede física Comunicação entre A e B ARP Response (MACB) IPR1 IPR2 MACR1 MACR2 IPA IPB IPC IPD MACA MACB MACC MACD Roteamento de datagramas IP • Roteamento: processo de escolha de um caminho através do qual serão enviados pacotes • Roteador: máquina que realiza essas decisões • Dois tipos de roteamento – Direto: duas máquinas que participam de uma conversação IP estão na mesma rede física Comunicação entre A e B Pacotes IP IPR1 IPR2 MACR1 MACR2 IPA IPB IPC IPD MACA MACB MACC MACD Roteamento de datagramas IP – Indireto: duas máquinas que participam de uma conversação IP estão em redes físicas distintas. Roteadores terão que manusear esse pacote até que ele chegue ao destino • A máquina deve identificar qual roteador servirá de intermediário da comunicação • O roteador deverá estar necessariamente na mesma rede física da máquina Comunicação entre A e C ARP Request (IPR1) IPR1 IPR2 MACR1 MACR2 IPA IPB IPC IPD MACA MACB MACC MACD Roteamento de datagramas IP – Indireto: duas máquinas que participam de uma conversação IP estão em redes físicas distintas. Roteadores terão que manusear esse pacote até que ele chegue ao destino • A máquina deve identificar qual roteador servirá de intermediário da comunicação • O roteador deverá estar necessariamente na mesma rede física da máquina Comunicação entre A e C ARP Response (MACR1) IPR1 IPR2 MACR1 MACR2 IPA IPB IPC IPD MACA MACB MACC MACD Roteamento de datagramas IP – Indireto: duas máquinas que participam de uma conversação IP estão em redes físicas distintas. Roteadores terão que manusear esse pacote até que ele chegue ao destino • A máquina deve identificar qual roteador servirá de intermediário da comunicação • O roteador deverá estar necessariamente na mesma rede física da máquina Comunicação entre A e C Pacotes IP para IPC IPR1 IPR2 MACR1 MACR2 IPA IPB IPC IPD MACA MACB MACC MACD Roteamento de datagramas IP – Indireto: duas máquinas que participam de uma conversação IP estão em redes físicas distintas. Roteadores terão que manusear esse pacote até que ele chegue ao destino • A máquina deve identificar qual roteador servirá de intermediário da comunicação • O roteador deverá estar necessariamente na mesma rede física da máquina Comunicação entre A e C IPR1 IPR2 ARP Request (IPC) MACR1 MACR2 IPA IPB IPC IPD MACA MACB MACC MACD Roteamento de datagramas IP – Indireto: duas máquinas que participam de uma conversação IP estão em redes físicas distintas. Roteadores terão que manusear esse pacote até que ele chegue ao destino • A máquina deve identificar qual roteador servirá de intermediário da comunicação • O roteador deverá estar necessariamente na mesma rede física da máquina Comunicação entre A e C IPR1 IPR2 MACR1 MACR2 ARP Response (MACC) IPA IPB IPC IPD MACA MACB MACC MACD Roteamento de datagramas IP – Indireto: duas máquinas que participam de uma conversação IP estão em redes físicas distintas. Roteadores terão que manusear esse pacote até que ele chegue ao destino • A máquina deve identificar qual roteador servirá de intermediário da comunicação • O roteador deverá estar necessariamente na mesma rede física da máquina Comunicação entre A e C Pacotes IP para IPC IPR1 IPR2 MACR1 MACR2 Pacotes IP para IPC IPA IPB IPC IPD MACA MACB MACC MACD Tabelas de rotas • Algumas perguntas – Como a máquina sabe se o roteamento será direto ou indireto? – Caso seja direto, como sabe a qual roteador enviar a informação? – Como o roteador sabe qual é a porta de saída dos pacotes? • Resposta – Cada máquina/roteador mantém uma tabela com as rotas através da qual se toma todas as decisões – Cada rota é composta de um par (N,G), onde N é o endereço IP da rede destino e G é o endereço do próximo roteador no caminho da rede N. Tabelas de rotas • Exemplo: 20.0.0.5 30.0.0.6 F Rede 10.0.0.0 G Rede 20.0.0.0 10.0.0.5 20.0.0.6 40.0.0.7 H Rede 30.0.0.0 Rede 40.0.0.0 30.0.0.7 – A tabela do roteador G é: Rede Destino 10.0.0.0 20.0.0.0 30.0.0.0 40.0.0.0 Mandar Para 20.0.0.5 Direto Direto 30.0.0.7 Tabelas de rotas 20.0.0.5 30.0.0.6 F Rede 10.0.0.0 G Rede 20.0.0.0 10.0.0.5 40.0.0.7 H Rede 30.0.0.0 20.0.0.6 Rede 40.0.0.0 30.0.0.7 40.0.0.8 50.0.0.8 70.0.0.5 60.0.0.6 F Rede 80.0.0.0 G Rede 70.0.0.0 80.0.0.5 70.0.0.6 50.0.0.7 H Rede 60.0.0.0 Rede 50.0.0.0 60.0.0.7 Tabelas de rotas – Tabela do roteador G Rede Mandar Destino Para 10.0.0.0 20.0.0.5 20.0.0.0 Direto 30.0.0.0 Direto 40.0.0.0 30.0.0.7 50.0.0.0 30.0.0.7 60.0.0.0 30.0.0.7 70.0.0.0 30.0.0.7 80.0.0.0 30.0.0.7 SIMPLIFICAÇÃO Rede Destino 10.0.0.0 20.0.0.0 Mandar Para 20.0.0.5 Direto 30.0.0.0 Default Direto 30.0.0.7 Usada sempre que nenhuma outra regra for encontrada na tabela Sub-redes • Divisão dos endereços IP tem por objetivo simplificar o roteamento – Pela classe, se pode saber quantos bits representam a rede e quantos representam a máquina (o roteamento é feito pela rede!) • Um endereço classe C é normalmente utilizado em redes pequenas – Uso de um classe C implica na alocação de 254 endereços, mesmo que nem todos sejam utilizados – Imagine um classe A! • Crescimento da Internet escassez de endereços IP – Solução: dividir uma classe de endereço IP em duas ou mais redes menores (sub-redes) Sub-redes • No exemplo abaixo dividiu-se um classe B – 3º octeto representa a sub-divisão em redes internas – Para a Internet, 128.10.0.0 é uma rede só Rede 128.10.1.0 Internet 128.10.1.1 128.10.1.2 Rede 128.10.2.0 Todo o tráfego para 128.10.0.0 128.10.2.1 128.10.2.2 Tabelas de rotas Ethernet 146.134.20.0 H1 146.134.20.8 G3 H2 192.3.40.22 146.134.20.2 146.134.20.7 192.3.40.21 Token Ring 192.3.40.0 192.3.40.1 192.3.40.2 192.3.40.20 G1 146.134.21.2 200.241.155.10 200.241.155.9 Ligação ponto-a-ponto Internet 146.134.20.1 G4 G2 146.134.21.1 Ethernet 146.134.21.0 146.134.21.12 Tabelas de rotas Rede Destino Máscara Próximo Hop 146.134.21.0 255.255.255.0 192.3.40.20 Ethernet 146.134.20.0 146.134.20.0 255.255.255.0 192.3.40.22 H1 146.134.20.8 G3 H2 192.3.40.0 255.255.255.0 --192.3.40.22255.255.255.252 200.241.155.8 146.134.20.2 146.134.20.7 Default --- --- 192.3.40.2 192.3.40.20 G1 146.134.21.2 200.241.155.10 200.241.155.9 Ligação ponto-a-ponto Internet TR TR TR PaP 200.241.155.9 146.134.20.1 PaP 192.3.40.21 Token Ring 192.3.40.0 192.3.40.1 Interface G4 146.134.21.12 G2 146.134.21.1 Ethernet 146.134.21.0 200.241.255. 000010 00 000010 01 000010 10 000010 11 Rede Hosts Broadcast Tabelas de rotas Rede Destino Máscara Próximo Hop 146.134.21.0 255.255.255.0 146.134.20.0H1 255.255.255.0 146.134.20.8 192.3.40.0 255.255.255.0 Default --- 192.3.40.22 Interface --- Ethernet 146.134.20.0 ETH 146.134.21.12 ETH G3 H2 --TR 192.3.40.2 146.134.20.2 146.134.20.7 TR 192.3.40.21 Token Ring 192.3.40.0 192.3.40.1 192.3.40.2 192.3.40.20 G1 146.134.21.2 200.241.155.10 200.241.155.9 Ligação ponto-a-ponto Internet 146.134.20.1 G4 G2 146.134.21.1 Ethernet 146.134.21.0 146.134.21.12 Tabelas de rotas Ethernet 146.134.20.0 H1 146.134.20.8 G3 H2 192.3.40.22 146.134.20.2 146.134.20.7 192.3.40.21 Token Ring 192.3.40.0 192.3.40.1 192.3.40.20 146.134.20.1 G4 146.134.21.12 G2 192.3.40.2 Rede G1 Destino Máscara 146.134.21.1 Próximo Hop 146.134.21.2 146.134.21.0 255.255.255.0 146.134.20.1 200.241.155.10 Ethernet 146.134.21.0 ponto-a-ponto 200.241.155.9 Ligação146.134.20.0 Interface ETH 255.255.255.0 --- ETH 192.3.40.0 255.255.255.0 --- TR DefaultInternet --- 192.3.40.2 TR Tabelas de rotas Ethernet 146.134.20.0 H1 G3 146.134.20.8 H2 192.3.40.22 146.134.20.2 146.134.20.7 192.3.40.21 Token Ring 192.3.40.0 192.3.40.1 192.3.40.2 192.3.40.20 G1 ETH2 146.134.20.1 146.134.21.2 200.241.155.10 G4 146.134.21.12 ETH1 G2 146.134.21.1 MáscaraEthernet 146.134.21.0 Próximo Hop Interface 255.255.255.0 --- ETH1 146.134.20.0 Internet 255.255.255.0 --- ETH2 Default --- 146.134.20.8 ETH2 Rede Destino 200.241.155.9 Ligação ponto-a-ponto 146.134.21.0 Tabelas de rotas Ethernet 146.134.20.0 H1 G3 146.134.20.8 H2 192.3.40.22 146.134.20.2 146.134.20.7 192.3.40.21 Token Ring 192.3.40.0 192.3.40.1 192.3.40.2 192.3.40.20 G1 146.134.21.2 200.241.155.10 Rede Destino 200.241.155.9 Ligação ponto-a-ponto 146.134.20.0 DefaultInternet 146.134.20.1 G4 146.134.21.12 G2 146.134.21.1 MáscaraEthernet 146.134.21.0 Próximo Hop Interface 255.255.255.0 --- ETH --- 146.134.20.8 ETH Tabelas de rotas Ethernet 146.134.20.0 H1 G3 146.134.20.8 H2 192.3.40.22 146.134.20.2 146.134.20.7 192.3.40.21 Token Ring 192.3.40.0 192.3.40.1 192.3.40.2 192.3.40.20 G1 146.134.21.2 200.241.155.10 Rede Destino 200.241.155.9 Ligação ponto-a-ponto 192.3.40.0 DefaultInternet 146.134.20.1 G4 146.134.21.12 G2 146.134.21.1 MáscaraEthernet 146.134.21.0 Próximo Hop Interface 255.255.255.0 --- TR --- 192.3.40.2 TR Exercício 1 • Suponha que você disponha de apenas 1 endereço classe C (200.241.12.0) e que cada uma das 3 redes abaixo possua 20 máquinas no máximo. Crie as subredes com as respectivas máscaras, indique possíveis endereços para as interfaces de G1, G2, G3 e para H1, H2 e H3. Construa também as tabelas de rotas de todos. Backbone G1 G2 G3 Rede 1 Rede 2 Rede 3 H1 H2 H3 Exercício 2 • Escolha livremente os endereços IPs das redes a seguir dentre os endereços reservados, indicando os endereços de cada máquina / roteador representado e suas respectivas tabelas de roteamento. Rede 4 H3 G3 Rede 3 H2 G2 Rede 2 G1 Rede 5 ponto a ponto Rede 1 H1 Exercício 3 • Suponha que você disponha de apenas 1 endereço classe C (197.12.1.0) e que cada uma das 2 redes abaixo possua 40 máquinas no máximo. Crie as subredes com as respectivas máscaras, indique possíveis endereços para os hosts e os roteadores. Construa também as tabelas de rotas de todos os indicados. 200.251.155.129 Internet 200.251.155.133 G1 H2 G2 H1 IPv6 • Esgotamento dos endereços IPv4 Blocos de /8 IPv6 • Endereço IPv6 = 128 bits – Espaço de endereçamento de 340.282.366.920.938.463.463.374.607.431.768.211.456 – Cerca de 79 trilhões de trilhões de vezes o espaço disponível no IPv4 – Equivale a cerca de 5,6 x 1028 endereços IP por ser humano – Aproximadamente 66.557.079.334.886.694.389 de endereços por cm2 na superfície da Terra. IPv6 • Os Registros Locais, hoje, recebem alocações /12 • Um AS (Sistema Autônomo) recebe um /32. • Usuários finais recebem alocações que variam entre /48 e /56, conforme o tamanho de suas redes ou necessidade – /48 equivale a 1.208.925.819.614.629.174.706.176 endereços – /56 equivale a 4.722.366.482.869.645.213.696 endereços • Em um espaço de endereçamento de 128 bits, é possível atribuir 281.474.976.710.656 blocos /48 diferentes – 40 mil vezes mais do que a população atual do planeta IPv6 IPv6 IPv6 IPv6 IPv6 IPv6 IPv6 IPv6 IPv6 IPv6 • Zeros contínuos podem ser substituídos por :: • Pode-se omitir os zeros à esquerda – Exemplo: • 2001:0db8:0000:130F:0000:0000:087C:140b • É igual a • 2001:db8:0:130F::87C:140b IPv6 • Endereços especiais: – FE80::/64 – Link local • Válidos apenas no mesmo enlace – FC00::/7 – Unique local • Válidos apenas em um local limitado • Um enlace ou conjunto de enlaces – ::FFFF:wxyz – IPv4 mapeado em IPv6 • wxyz é o endereço IPv4 convertido em hexadecimal – ::1 – Loopback – ::0 – Não especificado • Indica a ausência de endereços – FF00::/8 – Multicast • Agora é obrigatório, todos os nós devem suportar • FF02::1 é o multicast chamado all node on link, equivale ao broadcast do IPv4 IPv6 • Transição de IPv4 para IPv6 • 3 alternativas – Pilha dupla • Suporte a ambos protocolos no mesmo dispositivo – Tunelamento • Permite tráfego de IPv6 sobre IPv4 e vice-versa – Tradução • Permite comunicação entre nós que suportem apenas IPv6 com nós que suportem apenas IPv4