Upload
tenentblueberry
View
3.093
Download
3
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
Fundamentos de Redes de Computadores
Arquitetura TCP/IP
Prof. Ricardo J. Pinheiro
Ricardo Pinheiro 2
Resumo
Histórico
Objetivos
Camadas
Física
Intra-rede
Inter-rede
Transporte
Aplicação
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.
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)
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.
Ricardo Pinheiro 6
Comparação entre os modelos
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.
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)
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.
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.
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.
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).
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).
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)
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.
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).
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.
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-
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
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.
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.
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.
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).
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).
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.
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.
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ó.
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
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.