Você está na página 1de 38

Fundamentos de Redes

de Computadores
Arquitetura TCP/IP

Prof. Ricardo J. Pinheiro


Resumo
Histórico
Objetivos
Camadas
Física
Intra-rede
Inter-rede
Transporte
Aplicação

Ricardo Pinheiro 2
Histórico
Anos 1960
Auge da “Guerra Fria”, entre EUA e URSS.
DARPA – Agência de Pesquisa Avançada
em Defesa (EUA).
Primeiras redes de computadores
Universidades.
Bases militares.
Centros e institutos de pesquisa.
Necessidade de interligá-las.

Ricardo Pinheiro 3
Histórico
Necessidades dessa rede:
Interligar redes heterogêneas.
Abstração do hardware empregado.
Capacidade de roteamento.
Rede distribuída – sem nó central.
(blahblahblah)

Ricardo Pinheiro 4
Objetivo da arquitetura TCP/IP:
Interligar redes distintas de uma maneira:
Padronizada.
Simples.
Modular.
Nenhuma rede atende todas as
necessidades de todos os usuários.
Logo, cada um usa a sua estrutura física
que for melhor, e a arquitetura TCP/IP
"por cima".
Camada física – semelhante às camadas
física e de enlace do modelo OSI.
Não é definida pela arquitetura.

Ricardo Pinheiro 5
Comparação entre os modelos

Ricardo Pinheiro 6
Arquitetura TCP/IP – Intra-redes
Também conhecida como
sub-redes.
Interconexão com os
níveis físico e de enlace.
Ligação entre redes.
Mapeamento dos
endereços MAC em
endereços de rede e
vice-versa.
Verificação de estado.
Serviços de interconexão.
Protocolos: ICMP e ARP.
Ricardo Pinheiro 7
Arquitetura TCP/IP - inter-redes
Roteamento entre redes,
baseado em endereços e
não em hosts.
Endereços únicos
designados por uma
autoridade central
IANA - Internet Assigned
Numbers Board
Interconexão e roteamento
através de gateways.
Protocolos: IP (v. 4 e v. 6)

Ricardo Pinheiro 8
Arquitetura TCP/IP - transporte
Serviço confiável
orientado à conexão
(Circuito Virtual)
Seqüenciação
Detecção e correção de
erros fim-a-fim
Porta, ou estação, ou
ponto terminal.
Conexão identificada
por um par de pontos
terminais
Protocolos: TCP e UDP.

Ricardo Pinheiro 9
Arquitetura TCP/IP - aplicação
Protocolos que usam as
camadas inferiores para
oferecer serviços.
Exemplos:
Usam TCP: FTP, HTTP,
NTTP, SSH, Telnet,
SMTP, POP, IMAP,
etc.
Usam UDP: DNS, NFS,
SMNP, NTP, TFTP,
etc.

Ricardo Pinheiro 10
Camada de inter-rede
2 máquinas só se "falam" se ambas
souberem os respectivos endereços
físicos.
Endereço físico, ou endereço MAC:
implementado na subcamada MAC da
camada de enlace, e define um endereço
único para cada dispositivo de rede:
Ex: 00:0B:6C:4F:57:22
São 6 bytes: 3 bytes definem o fabricante, e
3 bytes definem o dispositivo.
Total de 2^48 possibilidades: 2^24
fabricantes, cada um com 2^24
dispositivos.

Ricardo Pinheiro 11
Protocolo ARP
Protocolo de resolução de endereços.
Traduz endereço de rede em endereço físico.
Como funciona:
A precisa enviar dados para B, mas só tem o
endereço de rede de B, ou seja, IB. É preciso
pegar o endereço físico de B (FB), e mapeá-lo
em IB.
A manda um mensagem em broadcast (todos os
membros da rede recebem), pedindo que
aquela máquina que tiver IB, que retorne seu
endereço físico. B retorna, e A adiciona na sua
tabela ARP uma nova entrada.
* A implementação do comando ARP muda de
acordo com o protocolo de acesso ao meio
(Ethernet, Token Ring, FDDI, etc).
Ricardo Pinheiro 12
Protocolo ARP (e RARP)
O RARP (ARP Reverso) mapeia um
endereço físico num endereço de rede,
que pode ser usado em estações
diskless (sem disco) e que inicializam
pela rede.
Comando: arp e rarp (Windows e Linux).

Ricardo Pinheiro 13
Protocolo ICMP
Protocolo de Controle de Mensagens entre
Redes - permite que nós informem erros
ou forneçam informações sobre o estado
da rede.
Achar que nunca vamos ter problemas
numa rede é utópico: Falhas acontecem.
Uma mensagem ICMP é tratada na
camada de rede (IP).
Comandos: ping e traceroute (Windows e
Linux)

Ricardo Pinheiro 14
Protocolo ICMP
Algumas das possíveis mensagens são:
Rede fora de alcance;
Nó fora de alcance;
Porta fora de alcance;
Nó desconhecido;
Rede destino desconhecida;
Tempo de vida do pacote excedido;
Pedido de eco (ping);
Resposta de eco (pong);
etc.
O protocolo ICMP não detecta erros, leva a
informação apenas ao seu destino, não
aos nós intermediários.
Ricardo Pinheiro 15
Camada de rede
Um protocolo apenas, o IP (protocolo inter-
redes), atualmente na versão 4 (IPv4).
Roteia pacotes de um nó para o outro, na
mesma rede ou em redes distintas.
Usa comutação por pacotes com datagrama
não-confiável. Ou seja, não garante a entrega
dos pacotes e é não-orientado à conexão.
Define também o endereçamento dos nós, o
endereço IP.
IPv4 - 4 bytes (octetos)
IPv6 (em fase de adoção) - 8 bytes (octetos).

Ricardo Pinheiro 16
Endereço IP (IPv4)
Número binário de 32 bits
Dividido em 4 octetos de 8 bits cada.
Forma do endereço: x.y.z.w.
Cada octeto está entre 0 e 255.
2^32 endereços possíveis.
Exemplo:
Representação decimal: 128.10.2.30.
Representação binária:
10000000.00001010.00000010.00011110.
Apesar do endereçamento ser eficiente,
números são melhor entendidos por
computadores, e nomes são melhor
entendidos por pessoas.
Ricardo Pinheiro 17
Classes de endereços IP
Objetivo: facilitar o roteamento de pacotes.

Octeto Classe Tipo Bits

De Para Rede Máquina

0 126 A Redes Até 8 Até 24


grandes
128 191 B Redes Até Até 16
médias 16
192 223 C Redes Até Até 8
pequenas 24
224 239 D Multicast -X- -X-

240 247 E Reservado -X- -X-

Ricardo Pinheiro 18
Endereços IP privados
127.x.y.z – loopback - aponta para a
própria máquina.
Toda máquina com TCP/IP tem essa
interface, e é usada para testes internos.
O endereço mais usado é o 127.0.0.1.
Endereços reservados em cada classe
Não podem ser usados em máquinas
diretamente conectadas à Internet, mas
através de um gateway.
Classe Rede Máscara
A 10.x.y.z 255.0.0.0
B 172.16.x.y 255.255.0.0
C 192.168.1.x 255.255.255.0
Ricardo Pinheiro 19
Endereços IP privados (reservados)
É importante usar endereços privados em
redes privadas para evitar confusões no
roteador, como rotear pacotes que
deveriam ir para a rede interna, mas para
a rede externa.
Logo, o papel de um roteador é fazer a
comunicação entre duas redes, fazendo
a tradução dos endereços (NAT) entre a
rede privada e a Internet.

Ricardo Pinheiro 20
Sub-rede
Mesmo em redes pequenas (classe C),
podemos ter desperdício de endereços:
Exemplo: Rede 208.67.45.0 - 253 máquinas
possíveis:
208.67.45.0 - definição da rede.
208.67.45.1 a 208.67.45.254 - endereços
possíveis da rede.
208.67.45.255 - broadcast.
Temos 254 endereços possíveis. Se usarmos 10,
teremos desperdício de 243 endereços.
Sub-rede - usar mais bits do endereço para
identificar a rede. Acima, poderíamos definir
uma sub-rede onde o desperdício será menor.
Usamos para isso a máscara de sub-rede.
Ricardo Pinheiro 21
Máscara de sub-rede
A máscara de sub-rede aponta quais bits são da
rede, e quais são das máquinas.
Exemplo: Máscara: 255.255.255.0
3 octetos para rede (255.255.255) e 1 octeto para
máquinas (0) = 256 possibilidades.
No caso de 10 máquinas, uma sub-rede ideal
seria 208.67.45.0, com máscara
255.255.255.240 (binário:
11111111.11111111.11111111.11110000)
Se a máscara for 255.255.255.0, teremos em
binário 11111111 11111111 11111111
00000000, um número binário de 32 bits.

Ricardo Pinheiro 22
Máscara de sub-rede - exemplo
Temos um endereço classe C, como
200.146.69.x. Quantas sub-redes com
esse endereços são possíveis?
Uma rede - Essa rede é a sub-rede, e
teremos: 11111111 11111111 11111111
00000000 (255.255.255.0).
Os endereços válidos são
200.146.69.0 a 200.146.69.255.
200.146.69.0 – definição da rede.
200.146.69.255 - broadcast.
Faixa de endereços válidos está entre
200.146.69.1 a 200.146.69.254 (254
endereços válidos).

Ricardo Pinheiro 23
Máscara de sub-rede - exemplo
Duas redes - Teremos: 11111111
11111111 11111111 10000000
(255.255.255.128).
Os 3 primeiros octetos não mudam.
No 4o octeto, colocamos um bit ligado, e
assim criamos 2 sub-redes:
1a sub-rede: 200.146.69.0
Broadcast: 200.146.69.127
Endereços válidos: 200.146.69.1 a
200.146.69.126 (126 IPs válidos).
2a sub-rede: 200.146.69.128
Broadcast: 200.146.69.255
Endereços válidos: 200.146.69.129 a
200.146.69.254 (126 IPs válidos).

Ricardo Pinheiro 24
Máscara de rede - exemplo
4 sub-redes - No último octeto teremos
11000000, que é 2⁷+2⁶=128+64=192. A
máscara será 255.255.255.192. As sub-
redes serão:
200.146.69.0
200.146.69.64
200.146.69.128
200.146.69.192
Todas elas terão 62 IPs válidos.
64 sub-redes - No último octeto seria:
11111100=2⁷+2⁶+2⁵+2⁴+2³+2²=128+64+
32+16+8+4=252. A máscara será
255.255.255.252. Teremos 64 sub-redes,
cada uma apenas 2 IPs válidos.
Ricardo Pinheiro 25
Formato do datagrama IP
2 partes:
cabeçalho: temos toda a informação
necessária à identificação do datagrama,
como:
Versão do protocolo IP.
Tamanho do datagrama.
Fragmentação.
Tempo de vida do pacote.
Protocolo usado (TCP ou UDP).
Endereços de origem e de destino.
Entre outros.
* Área de dados: Temos o pacote gerado
pela camada superior, a camada de
transporte.

Ricardo Pinheiro 26
Camada de transporte
Transfere de maneira confiável (ou não) dados
entre duas máquinas.
2 protocolos definidos:
TCP - Protocolo de controle de transmissão -
confiável.
UDP - Protocolo de datagrama do usuário - não-
confiável.
Aplicações cliente-servidor
Softwares.
Servidores, ou serviços - Provêm serviços para a
rede. No Unix, são os daemons.
Clientes - Fazem uso de serviços dados pelos
servidores.
* Podem haver vários servidores numa máquina
Ricardo Pinheiro 27
só.
Porta de comunicação
Aplicação que quer se comunicar com o servidor
precisa passar endereço de rede (IP) e
também a porta de conexão (no).
Cada serviço (servidor) roda numa porta, e
vários tem portas padrão já definidas pela
especificação do protocolo da camada de
sessão.
São 16 bits (65536 portas) para cada um dos 2
protocolos de transporte:
HTTP - tcp/80 MSN - tcp/1863 IRC - udp/6667
FTP – tcp/20 e 21 NTP - udp/123 SNMP - udp/161

SSH - tcp/22 DNS - udp/53 HTTPS - tcp/443


SMTP - tcp/25 POP - tcp/110 Torrent – tcp/6881 a 6889

Ricardo Pinheiro 28
Portas de comunicação
A porta de destino é definida a priori, mas
pode-se ter outros servidores rodando
em portas diferentes. O cliente é que
deve saber disso.
A porta de origem é usada pelo cliente,
assim diferentes instâncias podem estar
conectados a um mesmo servidor, a
partir de um mesmo cliente.
As portas de origem usadas são ao acaso,
acima de 1024.
Existem programas que buscam
informações sobre nós, com base nas
portas abertas encontradas. Ex.: nmap.

Ricardo Pinheiro 29
Protocolo TCP
Confiável e orientado à conexão.
Interface para a aplicação, tornando
transparente procedimentos como
retransmissão, correção de erros, etc.
Alguns dos serviços são:
Estabelecimento e liberação de conexões.
Transferência de dados.
Multiplexação e segmentação
Controles de erro e de fluxo.

Ricardo Pinheiro 30
Protocolo TCP - cabeçalho
O cabeçalho agrega informações como:
Endereços de origem e destino.
Número na sequência;
Códigos
Urgência no envio;
Ack – mensagem recebida;
Reset da conexão;
Etc.
Tamanho - pode chegar a até 192 bits.

Ricardo Pinheiro 31
Protocolo UDP
Não confiável e não orientado à conexão.
Não há garantias da entrega de dados,
sequenciação, controles, etc.
Mais leve, mais rápido e menos confiável.
Cabeçalho resume-se a:
Endereços de origem e destino;
Tamanho da mensagem;
Soma de checagem (que é opcional).
Tamanho - no máximo 64 bits.

Ricardo Pinheiro 32
Camada de aplicação
Aqui temos muitos protocolos que operam
usando os protocolos das camadas inferiores
(TCP, IP, etc) para prover serviços.
DNS – Sistema de Nomes de Domínio
IPs são uma maneira eficiente de endereçamento
para as redes, mas muito ruim para os usuários.
Serviço de DNS - associa um IP a um nome
simbólico.
O banco de dados de nomes é gerenciado por
uma organização em cada país - no Brasil, a
FAPESP (http://registro.br).

Ricardo Pinheiro 33
DNS – nomes hierárquicos
Analogia com o sistema postal:
Exemplo: lyric.labma.ufrj.br (lyrix incluído em
labma, que está incluído em ufrj, que está
incluído em br).
br - domínio por país.
ufrj e labma - sub-domínios.
lyric - máquina.
Estrutura hierárquica dos servidores DNS:
Máquina pede resolução de nome ao DNS.
Se sim, volta o IP.
Se não, o DNS pede ao próximo DNS.
Pode chegar num dos DNS-raiz da Internet.
Se sim, o endereço resolvido volta no sentido
contrário. Se não, o DNS propaga uma
mensagem de que o endereço não existe.
Ricardo Pinheiro 34
DNS
Comandos para investigar o DNS:
nslookup (Windows, Unix), dig, host (Unix).
Opera na porta 53, no protocolo UDP, e é
inseguro. Soluções para melhorar a
segurança, como:
DNSSEC - uso de autenticação e
criptografia.
DNS reverso - resolve IPs em nomes.
Ataques de envenenamento de cache – o
endereço está certo, mas aponta para
um IP malicioso.

Ricardo Pinheiro 35
URL
Universal Resource Locator
Maneira simples e eficiente de apontar onde
está um arquivo (rede ou disco local).
Exemplo:
ftp://fab:123@ftp.arq.com/pub/dados/beltrano.zip
1 2 3 4 5 6
1)Protocolo: http, ftp, wais, gopher, file, etc.
2)Separador.
3)Usuário e senha (quando necessário).
4)Nome de domínio
5)Caminho dentro do site
6)Nome do arquivo.
Ricardo Pinheiro 36
Outros serviços
HTTP - Protocolo de transferência de
hipertexto - base da Web, junto com a
linguagem HTML e os navegadores.
Porta TCP 80.
FTP - Protocolo de transferência de
arquivos - Porta TCP 20 e 21,
SSH - Terminal seguro - Porta TCP 22.
Outros protocolos:
telnet (TCP/23), whois (TCP/43), TFTP
(UDP/69), POP3 (TCP/110), NNTP
(TCP/119), IMAP (TCP/143), etc.
Todos operam numa arquitetura cliente-
servidor.
Ricardo Pinheiro 37
Questões de segurança
HTTPS, DNSSEC, SMTPS, POPS, IMAPS,
SSH - protocolos que usam cifragem
(criptografia) para aumentar a segurança
no diálogo cliente-servidor, desmotivando
ataques do tipo "homem no meio" (a
informação que vai do cliente para o
servidor é copiada por um intruso).
Uso de criptografia de chave assimétrica:
Chave pública fica no cliente, e é usada
para cifrar a mensagem.
Chave privada fica no servidor, e é usada
para descifrar a mensagem.

Ricardo Pinheiro 38

Você também pode gostar