38
Fundamentos de Redes de Computadores Arquitetura TCP/IP Prof. Ricardo J. Pinheiro

Redes de Computadores parte 9 - Arquitetura TCP/IP

Embed Size (px)

DESCRIPTION

Esta é a nona de um conjunto de apresentações que fiz para a disciplina de Redes de Computadores, que lecionei na faculdade e na escola. Aqui temos uma boa passada pela arquitetura TCP/IP, seus protocolos, endereçamento, etc. Espero que seja útil.

Citation preview

Page 1: Redes de Computadores parte 9 - Arquitetura TCP/IP

Fundamentos de Redes de Computadores

Arquitetura TCP/IP

Prof. Ricardo J. Pinheiro

Page 2: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 2

Resumo

Histórico

Objetivos

Camadas

Física

Intra-rede

Inter-rede

Transporte

Aplicação

Page 3: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 3

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.

Page 4: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 4

Histórico

Necessidades dessa rede:

Interligar redes heterogêneas.

Abstração do hardware empregado.

Capacidade de roteamento.

Rede distribuída – sem nó central.

(blahblahblah)

Page 5: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 5

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.

Page 6: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 6

Comparação entre os modelos

Page 7: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 7

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.

Page 8: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 8

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)

Page 9: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 9

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.

Page 10: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 10

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.

Page 11: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 11

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.

Page 12: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 12

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).

Page 13: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 13

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).

Page 14: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 14

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)

Page 15: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 15

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.

Page 16: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 16

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).

Page 17: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 17

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.

Page 18: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 18

Classes de endereços IP

Objetivo: facilitar o roteamento de pacotes.

Octeto Classe Tipo Bits

De Para Rede Máquina

0 126 A Redes grandes

Até 8 Até 24

128 191 B Redes médias

Até 16

Até 16

192 223 C Redes pequenas

Até 24

Até 8

224 239 D Multicast -X- -X-

240 247 E Reservado -X- -X-

Page 19: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 19

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

Page 20: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 20

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.

Page 21: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 21

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.

Page 22: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 22

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.

Page 23: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 23

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).

Page 24: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 24

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).

Page 25: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 25

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.

Page 26: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 26

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.

Page 27: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 27

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 só.

Page 28: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 28

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

Page 29: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 29

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.

Page 30: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 30

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.

Page 31: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 31

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.

Page 32: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 32

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.

Page 33: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 33

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).

Page 34: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 34

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.

Page 35: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 35

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.

Page 36: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 36

URL

Universal Resource Locator

Maneira simples e eficiente de apontar onde está um arquivo (rede ou disco local).

Exemplo:

ftp://fab:[email protected]/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.

Page 37: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 37

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.

Page 38: Redes de Computadores parte 9 - Arquitetura TCP/IP

Ricardo Pinheiro 38

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.