Introdução9.1
Hoje você vai ver como a Internet identifica redes e hosts, como o IP carrega pacotes entre essas redes e por que sub-redes são indispensáveis para organizar endereços na prática.
Na aula anterior, a camada de rede apareceu como a camada que decide caminhos entre redes. Agora vamos aproximar essa ideia do protocolo mais importante dessa camada. O foco deixa de ser apenas “como escolher uma rota” e passa a ser “como o pacote IP é formado, como o endereço IP é interpretado e como uma rede grande é dividida em partes menores”.
O IP oferece uma forma lógica de endereçar hosts e redes. O IPv4 usa endereços de 32 bits e depende fortemente de prefixos, máscaras e sub-redes. O IPv6 amplia o espaço de endereços para 128 bits e simplifica partes do cabeçalho, mas mantém a ideia de encaminhar pacotes entre redes.
Esta aula usa como base principal o Tanenbaum, seção 5.6, especialmente 5.6.1 a 5.6.3, e o Forouzan, capítulo 19, com apoio pontual do capítulo 22 para entrega e encaminhamento.
O problema que o IP resolve9.2
Imagine um computador dentro de uma LAN Ethernet. Ele tem um endereço MAC e consegue enviar quadros para outros dispositivos no mesmo enlace local. Isso é suficiente enquanto todos estão no mesmo domínio de enlace. Mas a Internet não é uma única Ethernet gigante.
Na prática, a comunicação precisa atravessar várias redes diferentes. Um pacote pode sair de uma rede Wi-Fi, passar por uma Ethernet, atravessar enlaces de operadora e chegar a outra rede completamente diferente. Cada uma dessas redes pode ter tecnologia de enlace própria.
Se o endereço MAC identifica uma interface no enlace local, por que ele não basta para entregar dados pela Internet inteira?
O problema é que o MAC não descreve uma posição lógica dentro de uma rede de redes. Ele serve para entrega local no enlace atual. Para sair de uma rede e chegar a outra, precisamos de um endereço que possa ser interpretado por roteadores em escala maior. Esse é o papel do endereço IP.
Em termos simples, o IP faz três coisas importantes.
- Define o formato do pacote da camada de rede.
- Define endereços lógicos para origem e destino.
- Permite que roteadores encaminhem pacotes de uma rede para outra.
Seu notebook quer acessar um servidor fora da sua casa.
- Dentro da sua LAN, ele envia um quadro Ethernet para o roteador doméstico.
- Esse quadro usa endereços MAC para atravessar o enlace local.
- Dentro do quadro existe um pacote IP com o endereço IP do servidor como destino.
- O roteador remove o quadro local, observa o pacote IP e encaminha o pacote para a próxima rede.
O MAC ajudou no primeiro salto. O IP é o que permite continuar a viagem entre redes.
Não pense no endereço IP como “o MAC da Internet”. O endereço MAC identifica uma interface no enlace local. O endereço IP identifica logicamente uma interface em uma rede IP e permite que roteadores tomem decisões entre redes.
O IPv4 como protocolo de datagramas9.3
O Tanenbaum inicia o estudo da camada de rede da Internet pelo formato do datagrama IPv4. Esse nome é importante. No IPv4, cada pacote é tratado como um datagrama, isto é, uma unidade independente que carrega as informações necessárias para ser encaminhada.
O IPv4 é um protocolo sem conexão e de melhor esforço. Isso significa que ele não estabelece uma conexão antes de enviar os pacotes e também não promete entrega confiável por si só.
O que significa melhor esforço9.3.1
Melhor esforço não significa descuido. Significa que a rede tenta entregar o pacote, mas não garante que ele chegará, nem garante ordem, nem garante ausência de duplicação.
Se a confiabilidade for necessária, outro protocolo acima do IP, como o TCP, deve cuidar disso.
Se o IP não garante entrega confiável, por que ele se tornou a base da Internet?
Porque essa simplicidade torna a rede mais flexível. Os roteadores podem encaminhar pacotes rapidamente sem manter estado de conexão para cada comunicação. A confiabilidade, quando necessária, pode ser tratada nas pontas.
Essa separação é uma das ideias mais importantes da arquitetura da Internet. A rede faz encaminhamento simples. As pontas podem adicionar controle, retransmissão e ordenação quando a aplicação precisar.
O cabeçalho IPv49.3.2
Um datagrama IPv4 possui cabeçalho e dados. O cabeçalho mínimo tem 20 bytes, mas pode ser maior se houver opções.
Os campos mais importantes para esta aula são estes.
| Campo | Ideia principal |
|---|---|
| Versão | Indica que o pacote usa IPv4 |
| IHL | Indica o tamanho do cabeçalho |
| Comprimento total | Indica o tamanho do datagrama completo |
| Identificação, flags e deslocamento | Ajudam na fragmentação |
| TTL | Limita quantos saltos o pacote pode atravessar |
| Protocolo | Indica o protocolo transportado, como TCP ou UDP |
| Checksum do cabeçalho | Detecta erros no cabeçalho IPv4 |
| Endereço de origem | Endereço IPv4 de quem enviou |
| Endereço de destino | Endereço IPv4 de quem deve receber |
Por que o TTL existe9.3.3
O campo TTL, ou Time To Live, evita que pacotes circulem indefinidamente. Apesar do nome sugerir tempo, na prática ele é usado como contador de saltos. Cada roteador decrementa esse valor. Quando ele chega a zero, o pacote é descartado.
Um pacote que sai com TTL igual a 4 pode ser lido assim.
| Etapa | Valor do TTL |
|---|---|
| Origem | 4 |
| Depois de $R_1$ | 3 |
| Depois de $R_2$ | 2 |
| Depois de $R_3$ | 1 |
| Depois de $R_4$ | 0 |
Ao chegar a zero, o pacote não deve continuar circulando. Isso protege a rede contra loops de roteamento.
O comando traceroute aproveita justamente esse comportamento do TTL para descobrir os roteadores intermediários até um destino.
Endereços IPv4 como 32 bits9.4
Um endereço IPv4 tem 32 bits. Para facilitar a leitura humana, esses 32 bits são escritos como quatro números decimais separados por pontos. Cada número representa 8 bits, ou seja, um octeto.
Por exemplo, o endereço abaixo é uma forma decimal pontuada.
192.168.1.34
Em binário, ele corresponde a quatro octetos.
$$ 192.168.1.34 = 11000000.10101000.00000001.00100010 $$
Se o endereço IPv4 tem 32 bits, como um roteador sabe qual parte identifica a rede e qual parte identifica o host?
Essa é a pergunta central do endereçamento IPv4. Um endereço IP sozinho não basta para separar rede e host. É preciso saber o prefixo ou a máscara.
Prefixo e máscara9.5
O prefixo indica quantos bits à esquerda identificam a rede. A forma mais comum hoje é a notação com barra.
192.168.1.34/24
Esse /24 significa que os 24 primeiros bits identificam a rede. Os 8 bits restantes identificam o host dentro dessa rede.
$$ \underbrace{192.168.1}_{24\ bits\ de\ rede}.\underbrace{34}_{8\ bits\ de\ host} $$
Em forma de máscara decimal pontuada, /24 equivale a:
255.255.255.0
Como ler uma máscara9.5.1
Uma máscara é um padrão de 32 bits no qual os bits 1 indicam a parte de rede e os bits 0 indicam a parte de host.
Para /24, temos:
$$ 11111111.11111111.11111111.00000000 $$
Em decimal:
$$ 255.255.255.0 $$
Considere o endereço:
192.168.1.34/24
Como o prefixo é /24, a rede é formada pelos 24 primeiros bits.
Rede: 192.168.1.0/24
Host: 34
O endereço 192.168.1.34 é um host dentro da rede 192.168.1.0/24.
Não conclua que “a rede são sempre os três primeiros números”. Isso só é verdade para prefixos como /24. A separação real depende da máscara ou do prefixo.
Endereçamento com classes e por que ele ficou insuficiente9.6
Historicamente, o IPv4 usou endereçamento com classes. Os endereços eram divididos em classes A, B, C, D e E. Para redes comuns, as classes mais importantes eram A, B e C.
| Classe | Prefixo padrão | Uso conceitual |
|---|---|---|
| A | /8 |
Poucas redes muito grandes |
| B | /16 |
Redes médias |
| C | /24 |
Muitas redes pequenas |
Esse modelo parecia simples, mas gerava desperdício. Uma organização que precisava de alguns milhares de endereços não cabia em uma classe C, mas receber uma classe B poderia entregar endereços demais.
O problema não era apenas técnico. Como o espaço IPv4 tem tamanho limitado, desperdício de blocos significava acelerar o esgotamento de endereços.
CIDR e endereçamento sem classes9.7
Para resolver esse desperdício, a Internet passou a usar CIDR, sigla de Classless Inter-Domain Routing. A ideia é abandonar os tamanhos fixos das classes e permitir prefixos mais flexíveis, como /20, /21, /27 ou /30.
No CIDR, o bloco é descrito pelo endereço inicial e pelo comprimento do prefixo.
192.168.10.0/24
10.40.0.0/20
172.16.8.0/21
O Tanenbaum destaca que o CIDR permite alocar blocos mais ajustados às necessidades reais e também permite agregação de rotas.
CIDR não é apenas uma forma mais bonita de escrever endereços. Ele muda a lógica de alocação e roteamento ao permitir blocos com tamanhos variados.
Sub-redes como divisão interna de uma rede9.8
Agora chegamos ao ponto que costuma causar mais dificuldade. Uma organização pode receber um bloco de endereços e ainda assim precisar dividi-lo internamente.
Imagine uma empresa com um bloco único.
192.168.10.0/24
Se todos os dispositivos ficassem em uma única rede, o gerenciamento seria simples, mas pouco organizado. A empresa talvez tenha setores, laboratórios, servidores e redes de visitantes. Faz sentido separar esses grupos em sub-redes.
Se uma organização recebe um bloco único, por que ela não deveria colocar todos os hosts na mesma rede?
Porque redes muito grandes aumentam broadcast, dificultam administração, reduzem isolamento e tornam políticas de segurança mais difíceis. Sub-redes criam divisões lógicas menores dentro de um bloco maior.
A ideia matemática da sub-rede9.8.1
Quando criamos sub-redes, pegamos alguns bits que antes pertenciam à parte de host e passamos a usá-los como parte do prefixo de sub-rede.
Em uma rede /24, existem 8 bits de host.
$$ 32 - 24 = 8 $$
Se transformarmos essa rede em quatro sub-redes, precisamos de 2 bits para identificar as sub-redes.
$$ 2^2 = 4 $$
O novo prefixo passa a ser:
$$ /24 + 2 = /26 $$
Cada sub-rede /26 tem 6 bits para hosts.
$$ 32 - 26 = 6 $$
Logo, cada sub-rede tem:
$$ 2^6 = 64\ endereços $$
Em IPv4 tradicional, dois endereços costumam ser reservados dentro de cada sub-rede, o endereço da própria rede e o endereço de broadcast. Assim, sobram 62 endereços utilizáveis para hosts.
$$ 64 - 2 = 62 $$
Divida a rede abaixo em 4 sub-redes de mesmo tamanho.
192.168.10.0/24
Como queremos 4 sub-redes, precisamos de 2 bits.
$$ 2^2 = 4 $$
O prefixo novo será /26.
Cada bloco terá 64 endereços. As sub-redes ficam assim.
| Sub-rede | Intervalo de endereços | Broadcast |
|---|---|---|
192.168.10.0/26 |
192.168.10.0 a 192.168.10.63 |
192.168.10.63 |
192.168.10.64/26 |
192.168.10.64 a 192.168.10.127 |
192.168.10.127 |
192.168.10.128/26 |
192.168.10.128 a 192.168.10.191 |
192.168.10.191 |
192.168.10.192/26 |
192.168.10.192 a 192.168.10.255 |
192.168.10.255 |
Os hosts utilizáveis ficam entre o endereço da rede e o broadcast de cada sub-rede.
Agora observe um host dentro desse novo particionamento.
192.168.10.77/26
Qual é a sub-rede dele?
Com /26, o tamanho do bloco no último octeto é 64. Os blocos começam em:
0, 64, 128, 192
O número 77 cai no intervalo de 64 a 127. Portanto:
Sub-rede: 192.168.10.64/26
Broadcast: 192.168.10.127
Hosts utilizáveis: 192.168.10.65 a 192.168.10.126
Esse exemplo mostra que descobrir a sub-rede é descobrir em qual bloco o endereço cai.
Máscaras comuns em sub-redes9.8.2
Esta tabela ajuda a fazer contas rápidas em redes IPv4 dentro de um /24.
| Prefixo | Máscara | Tamanho do bloco | Hosts utilizáveis por sub-rede |
|---|---|---|---|
/25 |
255.255.255.128 |
128 | 126 |
/26 |
255.255.255.192 |
64 | 62 |
/27 |
255.255.255.224 |
32 | 30 |
/28 |
255.255.255.240 |
16 | 14 |
/29 |
255.255.255.248 |
8 | 6 |
/30 |
255.255.255.252 |
4 | 2 |
A máscara maior não significa rede maior. Um prefixo maior usa mais bits para a rede e deixa menos bits para hosts. Por isso, /28 cria blocos menores do que /24.
Hierarquia de endereços9.9
O Forouzan explica a divisão em sub-redes como uma hierarquia. Sem sub-redes, há dois níveis principais.
- Prefixo de rede.
- Identificador de host.
Com sub-redes, passamos a ter três níveis.
- Prefixo da rede da organização.
- Prefixo da sub-rede.
- Identificador do host.
Essa hierarquia é o que permite ao mundo externo enxergar a organização como um bloco agregado, enquanto a organização distribui internamente esse bloco em redes menores.
Encaminhamento e correspondência pelo prefixo mais longo9.10
Na aula anterior, você viu a diferença entre roteamento e encaminhamento. Agora podemos conectar essa ideia ao endereçamento.
Quando um roteador recebe um pacote, ele olha o endereço IP de destino e consulta sua tabela de roteamento. Cada entrada da tabela descreve um prefixo e uma saída.
O roteador deve escolher a entrada mais específica que combina com o destino. Essa regra é conhecida como correspondência pelo prefixo mais longo.
Se duas rotas combinam com o mesmo destino, por que escolher a rota com prefixo mais longo?
Porque o prefixo mais longo é mais específico. Ele descreve um bloco menor e, portanto, normalmente representa uma informação mais precisa sobre onde aquele destino está.
Um roteador possui as entradas abaixo.
| Prefixo | Saída |
|---|---|
10.0.0.0/8 |
interface A |
10.20.0.0/16 |
interface B |
10.20.30.0/24 |
interface C |
Chega um pacote para:
10.20.30.45
Esse destino combina com as três entradas. A melhor escolha é 10.20.30.0/24, porque /24 é o prefixo mais longo e mais específico. O pacote sai pela interface C.
NAT como resposta parcial ao esgotamento IPv49.11
O espaço IPv4 tem cerca de $2^{32}$ endereços. Isso parecia enorme no início da Internet, mas se tornou pequeno diante do crescimento de hosts, celulares, servidores, redes domésticas e dispositivos conectados.
Uma das soluções práticas para prolongar a vida do IPv4 foi o NAT, ou Network Address Translation.
Com NAT, uma rede privada usa endereços internos que não são roteáveis globalmente. O roteador NAT troca os endereços privados por um endereço público ao enviar pacotes para a Internet.
Faixas privadas comuns em IPv4 incluem:
| Bloco privado | Uso típico |
|---|---|
10.0.0.0/8 |
Redes privadas grandes |
172.16.0.0/12 |
Redes privadas intermediárias |
192.168.0.0/16 |
Redes domésticas e pequenas redes |
Dentro de casa, seu computador pode ter o endereço:
192.168.1.34
Esse endereço não é usado diretamente na Internet global. Quando você acessa um site, o roteador doméstico substitui o endereço de origem privado pelo endereço público recebido do provedor. Quando a resposta volta, o roteador usa sua tabela de tradução para entregar a resposta ao host interno correto.
NAT ajuda a economizar endereços IPv4, mas não é a mesma coisa que sub-rede. Sub-rede organiza um bloco em redes menores. NAT traduz endereços entre uma rede privada e o exterior.
IPv6 e a mudança de escala9.12
O IPv6 surgiu como resposta de longo prazo ao esgotamento do IPv4. A diferença mais visível é o tamanho do endereço.
| Versão | Tamanho do endereço | Forma comum de escrita |
|---|---|---|
| IPv4 | 32 bits | decimal pontuada |
| IPv6 | 128 bits | hexadecimal com dois-pontos |
Um endereço IPv6 é escrito em grupos hexadecimais separados por dois-pontos.
2001:0db8:0000:0000:0000:ff00:0042:8329
Ele pode ser abreviado removendo zeros à esquerda e comprimindo uma sequência de grupos zero.
2001:db8::ff00:42:8329
O cabeçalho IPv69.12.1
O IPv6 também altera o cabeçalho. O cabeçalho principal tem tamanho fixo de 40 bytes e foi projetado para ser processado de forma mais simples pelos roteadores. Alguns campos do IPv4 foram removidos ou movidos para cabeçalhos de extensão.
Comparando com IPv4, alguns pontos merecem atenção.
| Aspecto | IPv4 | IPv6 |
|---|---|---|
| Tamanho do endereço | 32 bits | 128 bits |
| Checksum no cabeçalho | Existe | Removido do cabeçalho base |
| Fragmentação por roteadores | Pode ocorrer | Não ocorre no roteador, apenas na origem |
| Opções | Dentro do cabeçalho variável | Cabeçalhos de extensão |
| Broadcast | Existe | Substituído por outros mecanismos, como multicast |
Considere estes dois endereços.
192.168.1.10
2001:db8:acad:1::10
O primeiro é IPv4 e tem 32 bits. O segundo é IPv6 e tem 128 bits. A diferença não é apenas estética. O IPv6 oferece um espaço de endereçamento muito maior, o que reduz a dependência de soluções como NAT para economizar endereços.
Um endereço IPv6 pode ter uma parte de rede e uma parte de interface. Em muitas redes, é comum ver prefixos como:
2001:db8:acad:1::/64
Isso significa que os 64 primeiros bits identificam o prefixo da rede. Os 64 bits restantes identificam a interface dentro daquela rede.
Mesmo que os números pareçam maiores, a ideia de prefixo continua sendo fundamental.
Transição entre IPv4 e IPv69.13
O IPv6 não substituiu o IPv4 de uma vez. A Internet é grande demais para uma troca instantânea. Por isso, a transição usa estratégias graduais.
As três ideias mais importantes são estas.
| Estratégia | Ideia |
|---|---|
| Pilha dupla | O host suporta IPv4 e IPv6 ao mesmo tempo |
| Tunelamento | Um pacote IPv6 atravessa uma região IPv4 encapsulado |
| Tradução | Cabeçalhos ou endereços são traduzidos entre versões |
A coexistência entre IPv4 e IPv6 é uma realidade prática. Você pode encontrar máquinas, provedores e serviços usando as duas versões simultaneamente.
Fechando a ideia9.14
O IP é a peça que torna possível interligar redes diferentes em uma Internet. O IPv4 organiza essa entrega com datagramas, endereços de 32 bits, prefixos, máscaras e sub-redes. Sub-redes tornam a administração viável ao dividir blocos em partes menores. O IPv6 amplia o espaço de endereços e reorganiza o cabeçalho, mas preserva a ideia central de encaminhar pacotes entre redes por meio de endereços lógicos.
Para entender redes IP, você precisa ler um endereço junto com seu prefixo. Sem a máscara, um IPv4 é só um número. Com a máscara, ele revela rede, sub-rede, intervalo de hosts e a forma como os roteadores podem encaminhar pacotes.
Questões9.15
1. Explique por que o endereço MAC não é suficiente para a comunicação entre redes diferentes.
2. O que significa dizer que o IPv4 é um protocolo sem conexão e de melhor esforço?
3. Cite três campos importantes do cabeçalho IPv4 e explique a função de cada um.
4. Para que serve o campo TTL no IPv4?
5. Converta a ideia abaixo para uma frase explicativa: 192.168.1.34/24.
6. Qual é a diferença entre endereço IP, prefixo e máscara?
7. Por que o endereçamento com classes se tornou insuficiente?
8. O que o CIDR acrescentou ao endereçamento IPv4?
9. Explique, com suas palavras, o que é uma sub-rede.
10. Divida a rede 192.168.20.0/24 em 4 sub-redes de mesmo tamanho. Informe o prefixo novo e os endereços das sub-redes.
11. Um host possui o endereço 192.168.20.130/26. Qual é a sub-rede dele e qual é o broadcast dessa sub-rede?
12. Explique por que /28 representa blocos menores do que /24.
13. O que significa correspondência pelo prefixo mais longo em uma tabela de roteamento?
14. Um roteador tem as rotas 172.16.0.0/12, 172.16.40.0/24 e 0.0.0.0/0. Para qual prefixo ele deve encaminhar um pacote destinado a 172.16.40.55?
15. Diferencie sub-rede e NAT.
16. Cite duas diferenças importantes entre IPv4 e IPv6.
17. O que é pilha dupla na transição de IPv4 para IPv6?
18. Marque V ou F.
- ( ) O endereço IPv4 tem 32 bits.
- ( ) A máscara
/24sempre deixa 24 bits para hosts. - ( ) O prefixo mais longo é escolhido porque é mais específico.
- ( ) O IPv6 tem endereços menores que o IPv4, mas cabeçalho maior.
- ( ) NAT e sub-rede são exatamente o mesmo mecanismo.
1. Porque o MAC resolve a entrega local no enlace atual. Para atravessar redes diferentes, é necessário um endereço lógico que os roteadores consigam interpretar em escala de rede.
2. Significa que o IPv4 não estabelece uma conexão antes do envio e não garante, sozinho, entrega, ordem ou confiabilidade. Ele tenta encaminhar os datagramas da melhor forma possível.
3. Exemplos possíveis: TTL limita a quantidade de saltos; protocolo indica o conteúdo transportado, como TCP ou UDP; endereço de destino indica para onde o pacote deve ir; checksum verifica erros no cabeçalho.
4. Serve para impedir que pacotes circulem indefinidamente. Cada roteador decrementa o TTL e descarta o pacote quando o valor chega a zero.
5. É o endereço IPv4 192.168.1.34 dentro de uma rede cujo prefixo tem 24 bits, normalmente a rede 192.168.1.0/24.
6. O endereço IP identifica logicamente uma interface. O prefixo indica quantos bits pertencem à rede. A máscara é a forma binária ou decimal que separa bits de rede e bits de host.
7. Porque as classes tinham tamanhos fixos e frequentemente desperdiçavam endereços, acelerando o esgotamento do IPv4.
8. O CIDR permitiu prefixos flexíveis, sem depender dos tamanhos fixos das classes, além de facilitar alocação mais ajustada e agregação de rotas.
9. É uma divisão lógica menor criada dentro de um bloco de endereços maior, usando um prefixo mais específico.
10. Para 4 sub-redes, usamos 2 bits adicionais. O prefixo novo é /26. As sub-redes são 192.168.20.0/26, 192.168.20.64/26, 192.168.20.128/26 e 192.168.20.192/26.
11. Com /26, os blocos têm tamanho 64. O endereço 130 cai no intervalo 128 a 191. A sub-rede é 192.168.20.128/26 e o broadcast é 192.168.20.191.
12. Porque /28 usa mais bits para identificar a rede e deixa menos bits para hosts. Por isso, cada bloco tem menos endereços.
13. Significa escolher, entre todas as rotas que combinam com o destino, aquela com o maior comprimento de prefixo.
14. Deve usar 172.16.40.0/24, porque é a rota mais específica entre as que combinam com o destino.
15. Sub-rede divide um bloco de endereços em redes menores. NAT traduz endereços, normalmente entre uma rede privada e a Internet pública.
16. IPv4 usa endereços de 32 bits e IPv6 usa 128 bits. IPv6 remove o checksum do cabeçalho base e usa cabeçalhos de extensão para funcionalidades opcionais.
17. É a estratégia em que um host ou roteador executa IPv4 e IPv6 ao mesmo tempo durante o período de transição.
18.
- ( V ) O endereço IPv4 tem 32 bits.
- ( F ) A máscara
/24sempre deixa 24 bits para hosts. - ( V ) O prefixo mais longo é escolhido porque é mais específico.
- ( F ) O IPv6 tem endereços menores que o IPv4, mas cabeçalho maior.
- ( F ) NAT e sub-rede são exatamente o mesmo mecanismo.
Próximos passos9.16
Na próxima aula, o passo natural é conectar endereçamento IP com os protocolos auxiliares que fazem a rede funcionar no cotidiano.
Você verá como ARP, ICMP e DHCP ajudam hosts e roteadores a descobrir vizinhos, diagnosticar problemas e obter configuração de rede automaticamente.