Redes de Computadores DCC/UFJ Capítulo 4 Camada de Rede Material fortemente baseado nos slides do livro: Computer Networking: A Top-Down Approach Featuring the Internet. Os slides foram disponibilizados pelos autores James F. Kurose e Keith W. Ross All material copyright 1996-2009 J.F Kurose and K.W. Ross, All Rights Reserved Network Layer 4-1
Capítulo 4: Camada de Rede 4. 1 Introdução 4.2 Circuito virtual e datagrama 4.3 Roteadores 4.4 IP: Protocolo Internet Formato do Datagrama Endereçamento IPv4 ICMP IPv6 4.5 Algoritmos de Roteamento Estado de Enlace (Link state) Vetor de Distâncias (Distance Vector) Roteamento hierárquico 4.6 Roteamento na Internet RIP OSPF BGP 4.7 Roteamento Broadcast and multicast Network Layer 4-2
Camada de Rede - Internet Host, roteador: funções da camada de rede Transport layer: TCP, UDP Camada de Rede Routing protocols path selection RIP, OSPF, BGP forwarding table IP protocol addressing conventions datagram format packet handling conventions ICMP protocol error reporting router signaling Link layer physical layer Network Layer 4-3
Formato do Datagrama IP IP protocol version number header length (bytes) type of data max number remaining hops (decremented at each router) upper layer protocol to deliver payload to how much overhead with TCP? 20 bytes of TCP 20 bytes of IP = 40 bytes + app layer overhead ver head. len 16-bit identifier time to live type of service upper layer 32 bits flgs length fragment offset header checksum 32 bit source IP address 32 bit destination IP address Options (if any) data (variable length, typically a TCP or UDP segment) total datagram length (bytes) for fragmentation/ reassembly E.g. timestamp, record route taken, specify list of routers to visit. Network Layer 4-4
IP: Fragmentação e Reconstrução enlaces na rede possuem MTU diferentes (max.transfer size) tamanho máximo para o quadro na camada de enlace diferentes tipos de enlaces, diferentes MTUs Datagrama IP é divido ( fragmentado ) um datagrama é quebrado em diversos datagramas e é reconstruído somente no destino Bits do cabeçalho são usados para identificar e ordenar os fragmentos relacionados reassembly fragmentation: in: one large datagram out: 3 smaller datagrams Network Layer 4-5
IP: Fragmentação e Reconstrução Example 4000 byte datagram MTU = 1500 bytes length =4000 ID =x fragflag =0 offset =0 One large datagram becomes several smaller datagrams 1480 bytes in data field offset = 1480/8 length =1500 length =1500 length =1040 ID =x ID =x ID =x fragflag =1 fragflag =1 fragflag =0 offset =0 offset =185 offset =370 Network Layer 4-6
Capítulo 4: Camada de Rede 4. 1 Introdução 4.2 Circuito virtual e datagrama 4.3 Roteadores 4.4 IP: Protocolo Internet Formato do Datagrama Endereçamento IPv4 ICMP IPv6 4.5 Algoritmos de Roteamento Estado de Enlace (Link state) Vetor de Distâncias (Distance Vector) Roteamento hierárquico 4.6 Roteamento na Internet RIP OSPF BGP 4.7 Roteamento Broadcast and multicast Network Layer 4-7
Endereçamento IP: introdução endereço IP: identificador de 32- bits para cada host, interface do roteador interface: conexão entre host/roteador e enlace físico tipicamente os roteadores possuem diversas interfaces tipicamente um host typically tem uma interface endereço IP associado com cada uma das interfaces 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.2 223.1.3.2 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 Network Layer 4-8
Subredes endereço IP: identificador da subrede (high order bits) identificador do host (low order bits) O que é uma subrede? interfaces com o mesmo identificador da subrede (endereço IP) interfaces são alcançáveis sem a utilização de um roteador 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.27 subnet 223.1.3.1 223.1.3.2 network consisting of 3 subnets Network Layer 4-9
Subredes 223.1.1.0/24 223.1.2.0/24 Receita Para determinar as subredes, separe cada interface do seu roteador, criando ilhas de redes isoladas. Cada rede isolada é chamada de subrede. 223.1.3.0/24 Subnet mask: /24 Network Layer 4-10
Subredes 223.1.1.2 Quantas? 223.1.1.1 223.1.1.4 223.1.1.3 223.1.9.2 223.1.7.0 223.1.9.1 223.1.8.1 223.1.8.0 223.1.7.1 223.1.2.6 223.1.3.27 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2 Network Layer 4-11
Endereçamento IP: CIDR CIDR: Classless InterDomain Routing Roteamento Interdominio sem Classes parte do endereço reservado a identificar a subrede pode ter tamanho variável Formato do endereço: a.b.c.d/x, onde x é ó número de bits alocados para identificar a subrede subnet part 11001000 00010111 00010000 00000000 200.23.16.0/23 host part Network Layer 4-12
Endereçamento IP: CIDR Subredes podem ter endereços diferentes das classes A,B,C Classe A (/8) 254 hosts Classe B (/16) 65.534 hosts Classe C (/24) 1 6 777 214 hosts Dois endereços são reservados (por exemplo classe C): XXX.XXX.XXX.0 XXX.XXX.XXX.255 direcionado rede broadcast Network Layer 4-13
Como descobrir se dois hosts estão na mesma subrede? Operação de AND é feita entre o IP origem e a máscara de rede e entre o IP destino e a máscara de rede Resultados iguais Resultados diferentes mesma subrede subredes diferentes Network Layer 4-14
Endereço IP: como obter um? Q: Como uma rede adquire um conjunto de endereços para uma subrede? A: ISP aloca um conjunto de endereços do seu espaço de endereços ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23....... Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23 Network Layer 4-15
Endereçamento IP Q: Como um ISP adquire um conjunto de endereços? A: ICANN: Internet Corporation for Assigned Names and Numbers aloca os endereços gerencia DNS atribui nomes de domínios, e resolve conflitos Network Layer 4-16
Endereço IP: como configurar? Q: Como um host adquire um endereço IP? Definido pelo administrador do systema e um arquivo de configuração Windows: control-panel->network->configuration- >tcp/ip->properties UNIX: /etc/rc.config DHCP: Dynamic Host Configuration Protocol: adquire dinamicamente um endereço a partir de um servidor plug-and-play Network Layer 4-17
DHCP: Dynamic Host Configuration Protocol Objetivo: permite um host obter, dinamicamente, um endereço IP a partir de um servidor quando entra na rede Permite o reuso dos endereços Suporta usuários móveis DHCP: host envia, em broadcast, uma msg DHCP discover servidor DHCP responde com a msg DHCP offer host requisita um endereço IP: msg DHCP request servidor DHCP envia o endereço: msg DHCP ack Network Layer 4-18
DHCP: cliente-servidor A 223.1.1.1 DHCP server 223.1.2.1 B 223.1.1.2 223.1.1.4 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.27 223.1.3.1 223.1.3.2 E arriving DHCP client needs address in this network Network Layer 4-19
DHCP :cliente-servidor DHCP server: 223.1.2.5 DHCP discover src : 0.0.0.0, 68 dest.: 255.255.255.255,67 yiaddr: 0.0.0.0 transaction ID: 654 arriving client time DHCP request DHCP offer src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 654 Lifetime: 3600 secs DHCP ACK src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs Network Layer 4-20
NAT: Network Address Translation rest of Internet 138.76.29.7 10.0.0.4 local network (e.g., home network) 10.0.0/24 10.0.0.1 10.0.0.2 10.0.0.3 Todos datagramas que deixam uma rede local possuem mesmo endereço NAT fonte: 138.76.29.7, número de portas de origem diferentes Datagramas de origem/destino nesta rede possuem o endereço 10.0.0/24 Network Layer 4-21
NAT: Network Address Translation Motivação: rede local utiliza somente um endereço IP real: ISP não precisa atribuir um conjunto de endereços reais: somente um endereço IP para todos os dispositivos endereços locais podem ser mudados sem notificação ISP pode ser mudado sem a mudança dos endereços dos dispositivos da rede maior segurança: endereços locais NÃO são conhecidos pelo mundo exterior Network Layer 4-22
NAT: Network Address Translation Implementação: roteador NAT deve: Datagramas de saída: substituir (endereçco IP origem, # porta) de todos os datagramas pelo endereço (endereço IP NAT, novo# de porta)... Clientes/servidores remotos irão responder usando (endereço IP NAT, novo# de porta) como endereço destino. traduzir (tabela NAT) todo (endereço IP origem,,# porta) para (endereço IP NAT, novo # porta) Datagramas de entrada : substituir (endereço IP NAT, novo # porta) nos campos de destino de todos os datagramas que entram na rede com o endereço correspondente (endereço IP de origem, # porta) armazenado na tabela NAT Network Layer 4-23
NAT: Network Address Translation 2: NAT router changes datagram source addr from 10.0.0.1, 3345 to 138.76.29.7, 5001, updates table 2 NAT translation table WAN side addr LAN side addr 138.76.29.7, 5001 10.0.0.1, 3345 S: 138.76.29.7, 5001 D: 128.119.40.186, 80 10.0.0.4 S: 10.0.0.1, 3345 D: 128.119.40.186, 80 1 1: host 10.0.0.1 sends datagram to 128.119.40.186, 80 10.0.0.1 10.0.0.2 138.76.29.7 S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3 3: Reply arrives dest. address: 138.76.29.7, 5001 S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4 10.0.0.3 4: NAT router changes datagram dest addr from 138.76.29.7, 5001 to 10.0.0.1, 3345 Network Layer 4-24
NAT: Network Address Translation Campo para número de porta com 16 bits: 60,000 conexões simultâneas com um único endereço IP real! NAT (contraditório!): roteadores devem processar pacotes somente até a camada 3 viola o argumento fim-a-fim NAT deve ser levado em consideração pelas aplicações p2p (problema com o endereçamento de servidores) problema da escassez de endereços deve ser resolvido com a utilização do IPv6 Network Layer 4-25
NAT Cliente deseja se conectar com o servidor com o endereço 10.0.0.1 endereço do servidor é local da LAN (cliente NÃO pode usar este endereço como destino) Client? 10.0.0.1 Somente um endereço é visivel externamente - endereço NAT: 138.76.29.7 solução 1: configurar o NAT para repassar a requisição para uma dada porta do servidor 138.76.29.7 NAT router 10.0.0.4 e.x., (123.76.29.7, port 2500) sempre repassar para o endereço 10.0.0.1 porta 25000 Network Layer 4-26
NAT relaying (usado no Skype) cliente atrás do NAT estabelece uma conexão com o relay cliente externo conecta com o relay relay repassa pacotes entre conexões Client 2. connection to relay initiated by client 3. relaying established 1. connection to relay initiated by NATted host 138.76.29.7 NAT router 10.0.0.1 Network Layer 4-27
Capítulo 4: Camada de Rede 4. 1 Introdução 4.2 Circuito virtual e datagrama 4.3 Roteadores 4.4 IP: Protocolo Internet Formato do Datagrama Endereçamento IPv4 ICMP IPv6 4.5 Algoritmos de Roteamento Estado de Enlace (Link state) Vetor de Distâncias (Distance Vector) Roteamento hierárquico 4.6 Roteamento na Internet RIP OSPF BGP 4.7 Roteamento Broadcast and multicast Network Layer 4-28
ICMP: Internet Control Message Protocol usado pelos hosts e roteadores para comunicação na camada de rede notificação de erros: host não alcançável, rede, porta, protocolo requisição/resposta (usado pelo ping) camada de rede sobre IP: msgs ICMP carregadas em IPs datagramas mensagem ICMP: tipo, código mais 8 primeiros bytes do datagrama IP Type Code description 0 0 echo reply (ping) 3 0 dest. network unreachable 3 1 dest host unreachable 3 2 dest protocol unreachable 3 3 dest port unreachable 3 6 dest network unknown 3 7 dest host unknown 4 0 source quench (congestion control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header Network Layer 4-29
Traceroute e ICMP Origem manda um conjunto de segmentos UDPs para o destino Primeiro TTL =1 Segundo TTL=2, etc. Unlikely port number Quando o n-esimo datagrama chega no n- esimo roteador: roteador descarta o datagrama e envia para a origem uma mensagem ICMP (tipo 11, código 0) mensagem inclui nome do roteador e o endereço IP quando uma mensagem ICMP recebe, origem calcula o RTT mecanismo é repetido 3 vezes Critério de parada segmento UDP eventualmente chega no host destino destino retorna mensagem ICMP host unreachable (tipo 3, código 3) quando origem recebe esta msg ICMP, pára Network Layer 4-30
Capítulo 4: Camada de Rede 4. 1 Introdução 4.2 Circuito virtual e datagrama 4.3 Roteadores 4.4 IP: Protocolo Internet Formato do Datagrama Endereçamento IPv4 ICMP IPv6 4.5 Algoritmos de Roteamento Estado de Enlace (Link state) Vetor de Distâncias (Distance Vector) Roteamento hierárquico 4.6 Roteamento na Internet RIP OSPF BGP 4.7 Roteamento Broadcast and multicast Network Layer 4-31
IPv6 Motivação inicial: espaço de endereçamento de 32 bits brevemente estará completamente alocado. Motivação adicional: formato do cabeçalho ajuda a aumentar a velocidade do processamento/repasse mudanças do cabeçalho facilitam QoS Formato do datagrama IPv6: cabeçalho com tamanho fixo de 40 bytes fragmentação não é permitida Network Layer 4-32
IPv6: Cabeçalho Prioridade: especifica prioridades entre os datagrams de um Fluxo Identificação do fluxo: identifica datagramas de um mesmo fluxo Próximo cabeçalho: identifica o protocolo da camada superior Network Layer 4-33
Outras mudanças Checksum: removido completamente para reduzir o tempo de processamento em cada salto Opções: permitido, mas for a do cabeçalho, indicadas pelo campo Next Header ICMPv6: nova versão do ICMP tipos adicionais de mensagens, ex, Packet Too Big funções de gerenciamento de grupos multicast Network Layer 4-34
Transição do IPv4 para IPv6 Roteadores não podem ser mudados simultanemante Como a rede irá operar com roteadores IPv4 e IPv6? Tunneling: IPv6 é transportado como porção de dados de um datagrama IPv4, entre os roteadores IPv4 Network Layer 4-35
Tunneling Logical view: A B E F tunnel IPv6 IPv6 IPv6 IPv6 Physical view: A B E F IPv6 IPv6 IPv6 IPv6 IPv4 IPv4 Network Layer 4-36
Tunneling Logical view: A B E F tunnel IPv6 IPv6 IPv6 IPv6 Physical view: A B C D E F IPv6 IPv6 IPv4 IPv4 IPv6 IPv6 Flow: X Src: A Dest: F data Src:B Dest: E Flow: X Src: A Dest: F Src:B Dest: E Flow: X Src: A Dest: F Flow: X Src: A Dest: F data data data A-to-B: IPv6 B-to-C: IPv6 inside IPv4 B-to-C: IPv6 inside IPv4 E-to-F: IPv6 Network Layer 4-37