arquitetura e protocolos de redes de computadores prof. rafael paoliello guimarães, phd...
TRANSCRIPT
Arquitetura e Protocolos de Arquitetura e Protocolos de Redes de ComputadoresRedes de Computadores
Prof. Rafael Paoliello Guimarães, [email protected]
Nossa AgendaNossa 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– Os roteadores IP
As redes de computadoresAs redes de computadores
• Classificação– LAN (Local Area Network)
– MAN (Metropolitan Area Network)
– WAN (Wide Area Network)
– PAN (Personal Area Network)
WAN
LAN
LANLAN
LAN
TCP/IP
TCP/IPTCP/IP
TCP/IPTCP/IP
TCP/IP
TCP/IPTCP/IP
TCP/IP
Redes de computadoresRedes de computadores
• Estruturação do projeto de uma rede em camadas hierárquicas– Modelo OSI (Open Systems Interconnection)
Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace
Física Resolver problemas de representação de 0 e 1. Adaptação software-hardware
Transforma canal não-confiável em confiável.Detecção/Correção de erros, controle de fluxo, etc
Cuida basicamente de endereçamento das estações e roteamento dos dados
Isola camadas superiores da parte de transmissão. Controles de comunicação fim-a-fim
Controle das sessões de comunicação
Transformação nos dados: criptografia, compressão, etc
Aplicações que utilizam a rede OSI
Redes de computadoresRedes de computadores
• Estruturação do projeto de uma rede em camadas hierárquicas– Modelo OSI (Open Systems Interconnection)
Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace
Física
Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace
Física
Usuário A Usuário BCabeçalho (Header)
Modelo TCP/IPModelo TCP/IP
• Simplificação do modelo OSI– Camadas de sessão e apresentação
desaparecem• Funcionalidades devem ser implementadas pelas
aplicações
– Enlace e Físico se juntam na camada intra-rede
Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace
Física
Aplicação
Transporte
Inter-rede
Intra-rede
Interface de rede
MODELOOSI
MODELOTCP/IP
A camada físicaA 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ísicaCamada Física
• Cabos e conectores– Par trançado
– Coaxial
– Fibra ótica (monomodo, multimodo)
– Meio aéreo (wireless)
Camada de EnlaceCamada 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 QuadrosDelimitaçã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 ErrosControle 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)
CRCCRC
• 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 CRCExemplo CRC• M = 1010001101 (10 bits)• P = 110101 (6 bits)101000110100000 | 110101110101 111011 110101 111010 110101 111110 110101 101100 110101 110010 110101 01110 CRC
O transmissor insere 5 bits 0 (tamanho do CRC)ao final da mensagem e divide pelo polinômio
O transmissor transmite a mensagem seguidado CRC
O receptor, divide tudo pelo polinômio e, se nãohouve erros, o resto deve ser zero
Controle de erros 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 FluxoControle 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çoTipos 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 AcessoControle 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
LLC
MAC Interface com a camada de Rede - controle de fluxo e de erros
Controle de acesso ao meio
CAMADA DE
ENLACE
CSMA/CD (Collision Detection)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)Ethernet (IEEE 802.3)
• Estrutura do quadro
• 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
Preâmbulo Destino Origem T FCSDados
Interconexão de LANsInterconexã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– 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
HUB
HUB HUB HUB
BridgesBridges• 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ãoconectados em cada portae direcionam tráfegoapenas para aquela porta
– Caso não conheçam destino, enviam a todas as portas
Camada de redeCamada 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óricoHistó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óricoHistó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/IPAlgumas 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)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
00001010 10101010 01110001 00000111
32 bits (4 bytes)
10.170.113.7
Classes de endereçoClasses de endereço• Inicialmente 3 classes de endereço foram criadas:
– Classe A: 0.0.0.0 a 127.255.255.255
– Classe B: 128.0.0.0 a 191.255.255.255
– Classe C: 192.0.0.0 a 223.255.255.255
0
10
110
Rede Máquina (Host)
Rede Máquina (Host)
Rede Máquina (Host)
Classes de endereçoClasses de endereço• Duas outras classes foram criadas posteriormente
– Classe D: 224.0.0.0 a 239.255.255.255• Utilizada para Multicast
– Classe E: 240.0.0.0 a 247.255.255.255• Reservada para uso futuro
1110
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çamentoRegras 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çamentoRegras de endereçamento
• 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)
Rede A Rede B
Roteador
222.10.13.1 217.12.15.7
Regras de endereçamentoRegras 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çamentoRegras 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çamentoRegras 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 Máscara
10.0.0.0 255.0.0.0
172.16.0.0 255.240.0.0
192.168.0.0 255.255.0.0
Falaremos sobremáscaras maistarde
ExemploExemplo• 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)
Token Ring192.3.40.0
Ethernet 146.134.0.0
Ethernet 12.0.0.0
146.134.10.7 146.134.15.3
146.134.223.1
146.134.223.2
192.3.40.2
192.3.40.98
192.3.40.37
192.3.40.7
192.3.40.6
12.130.0.3
12.130.0.2
12.3.20.21
MáscarasMá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
– Os bits de rede e máquina não precisam ser contíguos, porém isso gera endereços muito confusos (melhor evitar!)
Classe A 11111111 00000000 00000000 00000000 255.0.0.0Classe B 11111111 11111111 00000000 00000000 255.255.0.0Classe C 11111111 11111111 11111111 00000000 255.255.255.0
11111111 00100100 00111000 00000000 (máscara válida)
Sub-redes não utilizáveisSub-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 0000000011001000 11110001 00001110 0010000011001000 11110001 00001110 0100000011001000 11110001 00001110 0110000011001000 11110001 00001110 1000000011001000 11110001 00001110 1010000011001000 11110001 00001110 1100000011001000 11110001 00001110 11100000
• Máscara11111111 11111111 11111111 11100000 (255.255.255.224)
6 sub-redes utilizáveis
MáscarasMá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 (ARP (Address Resolution ProtocolAddress 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 ARPExemplo 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)
Token Ring192.3.40.0
Ethernet 146.134.0.0
Ethernet 12.0.0.0
146.134.10.7 146.134.15.3
146.134.223.1
146.134.223.2
192.3.40.2
192.3.40.98
192.3.40.37
192.3.40.7
192.3.40.6
12.130.0.3
12.130.0.2
12.3.20.21
Pacote ARPPacote ARP• Formato do pacote ARP
– 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
Hardware Type Protocol Type
OperationHLEN PLEN
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)
RARP (RARP (Reverse ARPReverse 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 IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Version (4 bits): Indica a versão do IP
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
IHL, IP Header Length (4 bits): Indica o tamanho do datagrama
IP (em palavras de 32 bits)
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Type of Service (8 bits): Especifica como o protocolo de mais alto nível gostaria que o datagrama fosse manuseado
D T RPrecedência
0 1 2 3 4 5 6 7
Precedência: Importância do pacoteD: Baixo DelayT: Alto throughputR: Alta confiabilidade
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Difícil ser garantido pela Internet, considerado uma dica e não uma demandaRedefinido em 1990 pela IETF para acomodar os Differentiated Services
Definições nas RFC2474, RFC3168 e RFC3260
Code Point
0 1 2 3 4 5 6 7
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Total Length (16 bits): Tamanho total do pacote IP, se pacote for fragmentado, indica tamanho do fragmento
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Identification (16 bits): Valor inteiro que identifica o datagrama. Auxilia na remontagem de pacotes fragmentados
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Flags (3 bits): Os dois bits de mais baixa ordem controlam a fragmentação. Um bit especifica se um pacote pode ou não ser fragmentado. O segundo bit especifica se o pacote é o último fragmento
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Fragment Offset (13 bits): posição do fragmento no pacote original (em bytes)
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Time-to-live (8 bits): Especifica quanto tempo o pacote pode ficar na rede
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Protocol (8 bits): Indica qual protocolo de transporte está sendo transportado pelo pacote IP
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Header checksum (16 bits): Soma de complemento 1 de blocos de 16 bits do cabeçalho IP
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Source IP Address (32 bits): Endereço IP da origem
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Destination IP Address (32 bits): Endereço IP do destino
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
IP Options (tamanho variável): Um octeto do código da opção seguido de um octeto com o tamanho da opção, seguido de um conjunto de octetos com os dados da opção
Copy: Se for 1, opções são copiadas em todos fragmentos
Classe: 0 – datagrama de controle, 2 – Debug,
1 ou 3 – Reservado para uso futuro
Classe
0 1 2 3 4 5 6 7
Copy Número da opção
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Padding (tamanho variável): Faz com que o cabeçalho seja múltiplo de 32 bits
O pacote IPO pacote IP
• Unidade básica de transferência
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live (TTL) Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options (if any) Padding
0 4 8 16 19 24 31
Data
Data (tamanho variável): Dados a serem transmitidos pelo pacote IP.
Máximo: Cabeçalho + dados = 65.535 bytes
Algumas opções IPAlgumas opções IP
• Opções IP
Option Number Descrição
1 No operation 2 Security 3 Loose Route 7 Recorde Route 8 Stream Identifier 9 Strict Source Route 11 MTU Probe 12 MTU Reply 4 Timestamp 18 Traceroute
Option Number Descrição
1 No operation 2 Security 3 Loose Route 7 Recorde Route 8 Stream Identifier 9 Strict Source Route 11 MTU Probe 12 MTU Reply 4 Timestamp 18 Traceroute
Algumas opções IPAlgumas opções IP• Record Route Option (Opção 7)
– Cada roteador pelo qual o pacote passe acrescenta seu endereço IP na lista
• Source Route Option– Indica a rota a ser seguida pelo pacote IP
• Strict (Opção 9): tem que seguir exatamente o caminho definido
• Loose (Opção 3): tem que passar pelos roteadores indicados, mas podem haver mais roteadores intermediários
CODE LENGTH POINTER Primeiro Endereço IP
Segundo Endereço IP ...
0 8 16 24 31
CODE LENGTH POINTER Endereço IP do primeiro hop
Endereço IP do segundo hop
...
0 8 16 24 31
Algumas opções IPAlgumas 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
– OFLOW: número de roteadores que não puderam incluir informações na lista
– FLAGS: controla formato da lista de endereços
CODE LENGTH POINTEREndereço IP do primeiro hop
Tempo de chegada ao primeiro hop
0 8 16 24 31
Endereço IP do primeiro hop
Tempo de chegada ao primeiro hop ...
OFL
OW
FLAG
S
FragmentaçãoFragmentaçã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çãoFragmentaçã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)
Cabeçalho IP Dados 1
Cabeçalho IP Dados 2
Original
Fra
gmen
tos
Cabeçalho IP Dados 3
ID = xxxx DF = 0 MF =1 OFFSET = 0
ID = xxxx DF = 0 MF = 1 OFFSET = 580
MTU = 600 (FRAGMENTAÇÃO)
ID = xxxx DF = 0 MF = 0 OFFSET = 1160
FragmentaçãoFragmentação
R1 R2MTU = 1500 bytes MTU = 600 bytes MTU = 1500 bytes
1 Datagrama Origem1500 bytes
2 fragmentos de 600 bytes e
1 de 340 bytes
2 fragmentos de 600 bytes e
1 de 340 bytes
ID = 12345, DF = 0 MF = 0Offset = 0, len = 1500
ID = 12345, DF = 0 MF = 1Offset = 0, len = 600
ID = 12345, DF = 0 MF = 1Offset = 580, len = 600
ID = 12345, DF = 0 MF = 0Offset = 1160, len = 340
ID = 12345, DF = 0 MF = 1Offset = 0, len = 600
ID = 12345, DF = 0 MF = 1Offset = 580, len = 600
ID = 12345, DF = 0 MF = 0Offset = 1160, len = 340
• Exemplo:
FragmentaçãoFragmentação
R1MTU = 1500 bytes MTU = 600 bytes
1 Datagrama Origem1500 bytes
0 fragmentosMensagem ICMP
ID = 12345, DF = 1 MF = 0Offset = 0, len = 1500
ICMP – Destination UnreachableFragmentation Needed and DF = 1
ICMP – Destination UnreachableFragmentation Needed and DF = 1
• Exemplo (caso em que DF=1):
Datagramadescartado
Mensagem de erro gerada e recebida pela origem do datagrama
FragmentaçãoFragmentaçã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 IPRoteamento 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
IPA
MACA
IPB
MACB
IPC
MACC
IPD
MACD
IPR1
MACR1
IPR2
MACR2
ARP Request (IPB)
Comunicação entre A e B
Roteamento de datagramas IPRoteamento 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
IPA
MACA
IPB
MACB
IPC
MACC
IPD
MACD
IPR1
MACR1
IPR2
MACR2
Comunicação entre A e B
ARP Response (MACB)
Roteamento de datagramas IPRoteamento 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
IPA
MACA
IPB
MACB
IPC
MACC
IPD
MACD
IPR1
MACR1
IPR2
MACR2
Comunicação entre A e B
Pacotes IP
Roteamento de datagramas IPRoteamento 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
IPA
MACA
IPB
MACB
IPC
MACC
IPD
MACD
IPR1
MACR1
IPR2
MACR2
Comunicação entre A e C
ARP Request (IPR1)
Roteamento de datagramas IPRoteamento 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
IPA
MACA
IPB
MACB
IPC
MACC
IPD
MACD
IPR1
MACR1
IPR2
MACR2
Comunicação entre A e CARP Response (MACR1)
Roteamento de datagramas IPRoteamento 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
IPA
MACA
IPB
MACB
IPC
MACC
IPD
MACD
IPR1
MACR1
IPR2
MACR2
Comunicação entre A e CPacotes IP para IPC
Roteamento de datagramas IPRoteamento 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
IPA
MACA
IPB
MACB
IPC
MACC
IPD
MACD
IPR1
MACR1
IPR2
MACR2
Comunicação entre A e C
ARP Request (IPC)
Roteamento de datagramas IPRoteamento 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
IPA
MACA
IPB
MACB
IPC
MACC
IPD
MACD
IPR1
MACR1
IPR2
MACR2
Comunicação entre A e C
ARP Response (MACC)
Roteamento de datagramas IPRoteamento 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
IPA
MACA
IPB
MACB
IPC
MACC
IPD
MACD
IPR1
MACR1
IPR2
MACR2
Comunicação entre A e CPacotes IP para IPC Pacotes IP para IPC
Tabelas de rotasTabelas 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 rotasTabelas de rotas
• Exemplo:
– A tabela do roteador G é:
Rede10.0.0.0
Rede20.0.0.0
Rede30.0.0.0
Rede40.0.0.0
10.0.0.5 20.0.0.6 30.0.0.7
20.0.0.5 30.0.0.6 40.0.0.7
F G H
Rede Destino Mandar 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
Tabelas de rotasTabelas de rotas
Rede10.0.0.0
Rede20.0.0.0
Rede30.0.0.0
Rede40.0.0.0
10.0.0.5 20.0.0.6 30.0.0.7
20.0.0.5 30.0.0.6 40.0.0.7
F G H
Rede80.0.0.0
Rede70.0.0.0
Rede60.0.0.0
Rede50.0.0.0
80.0.0.5 70.0.0.6 60.0.0.7
70.0.0.5 60.0.0.6 50.0.0.7
F G H
40.0.0.8
50.0.0.8
Tabelas de rotasTabelas de rotas– Tabela do roteador G
Rede Destino
Mandar 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
Rede Destino
Mandar Para
10.0.0.0 20.0.0.5
20.0.0.0 Direto
30.0.0.0 Direto
Default 30.0.0.7
SIMPLIFICAÇÃO
Usada sempre que nenhumaoutra regra for encontrada na tabela
Sub-redesSub-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-redesSub-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ó
Internet
Todo o tráfego para 128.10.0.0
128.10.1.1 128.10.1.2
128.10.2.1 128.10.2.2
Rede 128.10.2.0
Rede 128.10.1.0
Tabelas de rotasTabelas de rotas
Token Ring192.3.40.0
Ethernet 146.134.20.0
Ethernet 146.134.21.0
146.134.20.2 146.134.20.7
146.134.20.8
146.134.20.1
192.3.40.1
192.3.40.2
192.3.40.21
192.3.40.22
192.3.40.20
146.134.21.2
146.134.21.12
146.134.21.1
200.241.155.10
200.241.155.9
Internet
Ligação ponto-a-ponto
H1H2G3
G1G2
G4
Tabelas de rotasTabelas de rotas
Token Ring192.3.40.0
Ethernet 146.134.20.0
Ethernet 146.134.21.0
146.134.20.2 146.134.20.7
146.134.20.8
146.134.20.1
192.3.40.1
192.3.40.2
192.3.40.21
192.3.40.22
192.3.40.20
146.134.21.2
146.134.21.12
146.134.21.1
200.241.155.10
200.241.155.9
Internet
Ligação ponto-a-ponto
H1H2G3
G1G2
G4
Rede Destino Máscara Próximo Hop Interface
146.134.21.0 255.255.255.0 192.3.40.20 TR
146.134.20.0 255.255.255.0 192.3.40.22 TR
192.3.40.0 255.255.255.0 --- TR
200.241.155.8 255.255.255.252 --- PaP
Default --- 200.241.155.9 PaP
200.241.255. 000010 00000010 01000010 10000010 11
Rede
Hosts
Broadcast
Tabelas de rotasTabelas de rotas
Token Ring192.3.40.0
Ethernet 146.134.20.0
Ethernet 146.134.21.0
146.134.20.2 146.134.20.7
146.134.20.8
146.134.20.1
192.3.40.1
192.3.40.2
192.3.40.21
192.3.40.22
192.3.40.20
146.134.21.2
146.134.21.12
146.134.21.1
200.241.155.10
200.241.155.9
Internet
Ligação ponto-a-ponto
H1H2G3
G1G2
G4
Rede Destino Máscara Próximo Hop Interface
146.134.21.0 255.255.255.0 --- ETH
146.134.20.0 255.255.255.0 146.134.21.12 ETH
192.3.40.0 255.255.255.0 --- TR
Default --- 192.3.40.2 TR
Tabelas de rotasTabelas de rotas
Token Ring192.3.40.0
Ethernet 146.134.20.0
Ethernet 146.134.21.0
146.134.20.2 146.134.20.7
146.134.20.8
146.134.20.1
192.3.40.1
192.3.40.2
192.3.40.21
192.3.40.22
192.3.40.20
146.134.21.2
146.134.21.12
146.134.21.1
200.241.155.10
200.241.155.9
Internet
Ligação ponto-a-ponto
H1H2G3
G1G2
G4
Rede Destino Máscara Próximo Hop Interface
146.134.21.0 255.255.255.0 146.134.20.1 ETH
146.134.20.0 255.255.255.0 --- ETH
192.3.40.0 255.255.255.0 --- TR
Default --- 192.3.40.2 TR
Tabelas de rotasTabelas de rotas
Token Ring192.3.40.0
Ethernet 146.134.20.0
Ethernet 146.134.21.0
146.134.20.2 146.134.20.7
146.134.20.8
146.134.20.1
192.3.40.1
192.3.40.2
192.3.40.21
192.3.40.22
192.3.40.20
146.134.21.2
146.134.21.12
146.134.21.1
200.241.155.10
200.241.155.9
Internet
Ligação ponto-a-ponto
H1H2G3
G1G2
G4
Rede Destino Máscara Próximo Hop Interface
146.134.21.0 255.255.255.0 --- ETH1
146.134.20.0 255.255.255.0 --- ETH2
Default --- 146.134.20.8 ETH2
ETH1
ETH2
Tabelas de rotasTabelas de rotas
Token Ring192.3.40.0
Ethernet 146.134.20.0
Ethernet 146.134.21.0
146.134.20.2 146.134.20.7
146.134.20.8
146.134.20.1
192.3.40.1
192.3.40.2
192.3.40.21
192.3.40.22
192.3.40.20
146.134.21.2
146.134.21.12
146.134.21.1
200.241.155.10
200.241.155.9
Internet
Ligação ponto-a-ponto
H1H2G3
G1G2
G4
Rede Destino Máscara Próximo Hop Interface
146.134.20.0 255.255.255.0 --- ETH
Default --- 146.134.20.8 ETH
Tabelas de rotasTabelas de rotas
Token Ring192.3.40.0
Ethernet 146.134.20.0
Ethernet 146.134.21.0
146.134.20.2 146.134.20.7
146.134.20.8
146.134.20.1
192.3.40.1
192.3.40.2
192.3.40.21
192.3.40.22
192.3.40.20
146.134.21.2
146.134.21.12
146.134.21.1
200.241.155.10
200.241.155.9
Internet
Ligação ponto-a-ponto
H1H2G3
G1G2
G4
Rede Destino Máscara Próximo Hop Interface
192.3.40.0 255.255.255.0 --- TR
Default --- 192.3.40.2 TR
• 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 sub-redes 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
Rede 1
G2 G3G1
H2 H3H1
Rede 2 Rede 3
Exercício 1Exercício 1
Rede 1
G2
G1
H2
H1
Rede 2
G3H3
Rede 3
Rede 4
Rede 5ponto a ponto
Exercício 2Exercí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.
G2
G1
H2
H1200.251.155.129
200.251.155.133
Internet
Exercício 3Exercí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 sub-redes 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.
IPv6IPv6
• Esgotamento dos endereços IPv4
Blocos de /8
IPv6IPv6
• 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.
IPv6IPv6• 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
IPv6IPv6
IPv6IPv6
IPv6IPv6
IPv6IPv6
IPv6IPv6
IPv6IPv6
IPv6IPv6
IPv6IPv6
IPv6IPv6
IPv6IPv6
• 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
IPv6IPv6• 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
IPv6IPv6
• 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