Curso de Pós-Graduação “Lato

Transcrição

Curso de Pós-Graduação “Lato
Curso de Pós-Graduação “Lato-Sensu”
em Redes de Computadores
Arquitetura TCP/IP
Hermes Senger
DC/UFSCar – 2012
Pós-Graduação “Lato-Sensu” em Redes de Computadores
Nota:
Notas de aula do prof. Hélio Crestana Guardia.
Pós-Graduação “Lato-Sensu” em Redes de Computadores
2
ICMP: Internet Control Message
Protocol

ftp://ftp.rfc-editor.org/in-notes/rfc792.txt
 Considerado parte da camada IP
 Deve estar presente em toda implementação

ICMP, uses the basic support of IP as if it were a higher level protocol, however, ICMP is actually an
integral part of IP, and must be implemented by every IP module. ...The purpose of these control messages
is to provide feedback about problems in the communication environment, not to make IP reliable.
 Utilizado para o envio de mensagens de erro e outras
condições que requerem atenção
 Mensagens recebidas são tratadas pela camada IP ou pela
camada superior (TCP ou UDP)
 Mensagens são transmitidas dentro de datagramas IP
Cabeçalho IP
Mensagem ICMP
Datagrama IP
Pós-Graduação “Lato-Sensu” em Redes de Computadores
3
Tipos de Mensagens ICMP
 Mensagens ICMP: consultas ou tratamentos de erro
 Mensagens de erro sempre contêm o cabeçalho do IP
causador do erro e os 8 primeiros bytes da mensagem dentro
dele (cabeçalho UDP/TCP), para permitir à origem identificar
o processo (porta) associado à comunicação
 Para prevenir explosões de mensagens ICMP (broadcast
storms), mensagens ICMP NÃO são geradas em resposta a:





outras mensagens de erro ICMP
datagrama IP destinado a endereço de broadcast
datagrama enviado dentro de quadro de broadcast
fragmentos que não o inicial de um pacote
datagrama cujo endereço de origem não identifica um host único
(0, loopback, broadcast ou multicast)
Pós-Graduação “Lato-Sensu” em Redes de Computadores
4
Pacote ICMP

ICMP messages are sent using the basic IP header. The first octet of the data
portion of the datagram is a ICMP type field; the value of this field determines
the format of the remaining data.
0
8
Tipo (8 bits)
16
Código (8 bits)
31
Checksum da msg (16 bits)
Conteúdo (dependente do tipo e código)
Mensagem ICMP
Pós-Graduação “Lato-Sensu” em Redes de Computadores
5
Tipos ICMP
type code
3
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Descrição
Query Error
destination unreachable:
network unreachable
host unreachable
protocol unreachable
port unreachable
fragmentation needed but don't-fragment bit set
source route failed
destination network unknown
destination host unknown
source host isolated (obsolete)
destination network administratively prohibited
destination host administratively prohibited
network unreachable for TOS
host unreachable for TOS
communication administratively prohibited by filtering
host precedence violation
precedence cutoff in effect
Pós-Graduação “Lato-Sensu” em Redes de Computadores
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6
Tipos ICMP
type code
4
Descrição
Query Error
0
source quench (elementary flow control)
*
0
1
2
3
redirect:
redirect for network
redirect for host
redirect for type-of-service and network
redirect for type-of-service and host
*
*
*
*
0
0
echo reply (Ping reply)
*
8
0
echo request (Ping request)
*
9
10
0
0
router advertisement
router solicitation
*
*
5
Pós-Graduação “Lato-Sensu” em Redes de Computadores
7
Tipos ICMP
type code
Descrição
Query Error
0
1
time exceeded:
time-to-live equals 0 during transit (Traceroute)
time-to-live equals 0 during reassembly
*
*
12
0
1
parameter problem:
IP header bad (catchall error)
required option missing
*
*
13
14
0
0
timestamp request
timestamp reply
*
*
15
16
0
0
information request (obsolete)
information reply (obsolete)
*
*
17
18
0
0
address mask request
address mask reply
*
*
11
Pós-Graduação “Lato-Sensu” em Redes de Computadores
8
ICMP Echo Request e Echo Reply
 Utilizado para testar se uma estação é atingível e está ativa
 Transportado dentro de pacotes IP, permite verificar se a rede e
o sistema de roteamentos estão funcionando, incluindo
tabelas de rota e roteadores
 Tipos: 8 (Echo Request); 0 (Echo Reply)
 Número de seqüência associa pedido e resposta
 Receptor deve retornar echo reply com o mesmo número de
seqüência e os mesmos dados recebidos na parte opcional.
 Função implementada em muitos sistemas pelo comando PING
Tipo (8 ou 0) Código (0)
Checksum da msg
identificador
Número de seqüência
Dados (opcionais)
ICMP Echo request e reply
Pós-Graduação “Lato-Sensu” em Redes de Computadores
9
PING
 Envia ICMP Echo request para um host e espera Echo reply
 Maioria das implementações TCP/IP provê um servidor PING
dentro do próprio sistema operacional
 Servidor deve retornar os campos identificador e número de
seqüência recebidos na mensagem, bem como quaisquer
dados enviados no campo de dados
 Campo identificador normalmente é preenchido pelo S.O. com o
identificador do processo (PID) que gerou o pedido
 Número de seqüência é iniciado em 0 e incrementado a cada
nova mensagem enviada
Pós-Graduação “Lato-Sensu” em Redes de Computadores
10
Uso das Mensagens ICMP: PING
Uso: ping [-t] [-a] [-n num] [-l tamanho] [-f] [-i TTL] [-v TOS] [-r num] [-s num]
[[-j lista_hosts] | [-k lista_hosts]] [-w tempo_limite] lista_destino
Opções (MS NT) - ajustes são realizados através dos campos do cabeçalho IP:
-t
Dispara contra o host especificado até ser interrompido.
-a
Resolve endereços para nomes de host.
-n num
Número de requisições de eco a enviar. O valor padrão é 4.
-l tam
Envia o tamanho do buffer.
-f
Ativa o sinalizador de não fragmentação no pacote IP
-i TTL
Define o tempo de vida usado no pacote IP
-v TOS
Define o tipo de serviço no pacote IP
-r num
Registra rota dos pacotes para <num> saltos usando o campo RR do IP
-s num
Registra a data e hora para o número de saltos definidos em <num>
-j lista_hosts
Roteia pacotes utilizando rota de origens definida em <lista_hosts>
-k lista_hosts
Roteia pacotes usando rota restrita de origens definida <lista_hosts>
-w t_limite
Tempo limite (ms) a aguardar para cada resposta
Pós-Graduação “Lato-Sensu” em Redes de Computadores
11
Uso das Mensagens ICMP: PING
Uso: ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline]
[-p pattern] [-s packetsize] [-t ttl] [-I interface or address]
[-M mtu discovery hint] [-S sndbuf]
[ -T timestamp option ] [ -Q tos ] [hop1 ...] destination
Pós-Graduação “Lato-Sensu” em Redes de Computadores
12
ICMP Unreachable error
 Enviado quando um roteador não consegue entregar
um datagrama IP
 Campo de código fornece mais detalhes sobre o
problema, que nem sempre pode ser identificado pelo
roteador (host pode estar desligado, e.g.)
Tipo (3)
Código (0-12)
Checksum da msg
Não utilizado (deve ser 0)
Cabeçalho IP + primeiros 8 bytes dos dados do datagrama
ICMP unreachable message
Pós-Graduação “Lato-Sensu” em Redes de Computadores
13
Códigos ICMP Unreachable

Códigos e significados das mensagens de problema de alcance:













0 : Network unreachable – Rede inatingível
1 : Host unreachable – Máquina inatingível
2 : Protocol unreachable – Protocolo inatingível
3 : Port unreachable – Porta inatingível (não registrada)
4 : Fragmentation needed and DF set – Necessário fragmentar
5 : Source route failed – Falha no roteamento pela origem
6 : Destination Network unknown – Rede destino desconhecida
7 : Destination Host unknown – Máquina destino desconhecida
8 : Source host isolated
9 : Communication with dest. Net administratevely prohibited
10: Com. with dest. Host adm. prohib
11: Network unreachable for TOS
12: Host unreachable for TOS
Pós-Graduação “Lato-Sensu” em Redes de Computadores
14
ICMP Source Quench




Enviado quando um pacote é descartado em um roteador, por
problemas de falta de capacidade para tratamento ou de espaço
para armazenamento temporário
Endereço de origem do pacote indica o roteador congestionado
Não é preciso enviar uma mensagem para cada pacote descartado
Host de destino também pode enviar Source Quench quando pacotes
estão chegando muito rapidamente para serem armazenados em
buffers
Tipo (4)
Código (0)
Checksum da msg
Não utilizado (deve ser 0)
Cabeçalho IP + primeiros 8 bytes dos dados do datagrama
ICMP Source Quench message
Pós-Graduação “Lato-Sensu” em Redes de Computadores
15
ICMP Source Quench
 RFC 792 não determina quando roteador ou host destino devem
enviar ICMP Source Quench
 Roteador pode enviar ao perceber escassez de recursos
 RFC 1812 (Requirements for IP Version 4 Routers) indica que
roteadores não deveriam enviar ICMP SQ, pois isso pode gerar
mais tráfego em um canal já congestionado
 Embora ICMP SQ seja uma notificação da camada de rede
(Internet), IP não possui mecanismo para controle de fluxo
 UDP também não tem mecanismo para controle de fluxo
 TCP possui mecanismo de controle de fluxo
 TCP é notificado da chegada de ICMP SQ
 Tratamento equivale à perda de um segmento, que precisa ser
retransmitido
 Taxa de transmissão é ajustada de acordo com o mecanismo
slow start / fast recovery
Pós-Graduação “Lato-Sensu” em Redes de Computadores
16
ICMP Redirect





Usada por roteador para pedir mudança de rota num host na
mesma rede
Envio ocorre quando host encaminha pacote usando rota não otimizada
Não serve para a propagação de rotas entre roteadores
Infos do cabeçalho IP permitem ao host identificar destino da rota
Códigos: 0 : Redireciona datagramas para uma rede (obsoleto)
1 : Redireciona datagramas para um Host
2 : Redireciona datagramas para o TOS e Rede
3 : Redireciona datagramas para o TOS e Host
Tipo (5)
Código (0-3)
Checksum da msg
Endereço IP do roteador
Cabeçalho IP + primeiros 8 bytes dos dados do datagrama
ICMP Redirect message
Pós-Graduação “Lato-Sensu” em Redes de Computadores
17
 Esquema de rede:
 Roteador default
 Roteador para outra rede local
Pós-Graduação “Lato-Sensu” em Redes de Computadores
18
ICMP Time Exceeded
 Usada para prevenir que pacotes circulem indefinidamente
 Ocorre quando:

 Campo TTL chega em 0
 Tempo de espera por fragmentos de um pacote é excedido
Códigos: 0 : TTL reduzido a 0
1 : Excedido tempo de espera por fragmentos
Tipo (11)
Código (0 ou 1)
Checksum da msg
Não usado (deve ser 0)
Cabeçalho IP + primeiros 8 bytes dos dados do datagrama
ICMP Time Exceeded message
Pós-Graduação “Lato-Sensu” em Redes de Computadores
19
ICMP Address Mask Request e Reply
 Permite a uma estação diskless obter sua máscara de
rede (da mesma forma como BOOTP obtém um IP)
 Tipos:
 17 – Address Mask Request
 18 – Address Mask Reply
Tipo (17/18)
Código (0)
Identificador
Checksum da msg
Número de seqüência
Máscara de rede
ICMP Address Mask Request e Reply
Pós-Graduação “Lato-Sensu” em Redes de Computadores
20
ICMP Parameter Problem
 Indica problemas com campos do cabeçalho IP que forçaram
o seu descarte
 Envio ocorre quando pacote IP é descartado e não há outro
ICMP mais específico para indicar o erro
 Códigos:
 0: ponteiro indica posição do campo defeituoso
 1: Opção obrigatória não especificada
 2: Problema no tamanho
Tipo (12)
Ponteiro
Código (0 ou 1)
Checksum da msg
Não usado (deve ser 0)
Cabeçalho IP + primeiros 8 bytes dos dados do datagrama
ICMP Parameter problem message
Pós-Graduação “Lato-Sensu” em Redes de Computadores
21
ICMP Timestamp Request and Reply
Permite obter a hora atual em host remoto (precisão de milisegundos)
Serve para sincronização de relógios e cálculo do tempo em trânsito
Outras formas de obter a data e a hora:
 telnet host daytime
(porta 13 TCP/UDP)
 Network Time Protocol (NTP): mecanismo de sincronização de relógios
 Unix timed: daemon para sincronização de relógios


Tipo (13 ou 14)
Código (0)
Checksum da msg
identificador
Número de seqüência
Timestamp da geração
Timestamp da recepção
Timestamp da transmissão
ICMP timestamp request e reply
Pós-Graduação “Lato-Sensu” em Redes de Computadores
22
ICMP Router Discovery





Permite a descoberta de um roteador na rede
Propagação normalmente ocorre usando o endereço multicast all-hosts (224.0.0.1) ou o
endereço broadcast da sub-rede
Roteadores propagam informações a cada 10 minutos
Informações normalmente têm validade de 30 minutos
Outras formas para descoberta de roteador: BOOTP e o DHCP
Tipo (9)
Código (0)
Checksum da msg
Núm endereços Tam endereço *
Tempo de vida **
Endereço Roteador 1
Número de preferência 1
Endereço Roteador 2
Número de preferência 2
…
ICMP Router Advertisement
(*) Tamanho em palavras de 32 bits: 1 para IPv4
Pós-Graduação “Lato-Sensu” em Redes de Computadores
23
ICMP Router Solicitation


Permite que cliente solicite que roteadores na rede propaguem suas
informações (Router Advertisement)
Propagação normalmente ocorre usando o endereço multicast allrouters (224.0.0.2) ou o endereço broadcast da sub-rede
Tipo (10)
Código (0)
Checksum da msg
Reservado
ICMP Router Solicitation
Pós-Graduação “Lato-Sensu” em Redes de Computadores
24
Uso das Mensagens ICMP
TRACEROUTE
 Permite examinar a rota seguida por um datagrama
IP de um host até outro
 Pode apresentar resultados diferentes, uma vez que
pacotes são roteados independentemente
 Usa mensagens ICMP e o campo TTL do pacote IP
Pós-Graduação “Lato-Sensu” em Redes de Computadores
25
Uso das Mensagens ICMP: TRACEROUTE
Uso: tracert [-d] [-h max_saltos] [-j lista_hosts] [-w tempo] destino
Opções (MS NT) - ajustes realizados através dos campos do cabeçalho IP:
-d
Não resolver endereços para nomes de host
-h max_saltos Número máximo de saltos para o destino
-j lista_hosts Rota ampliada de origens em lista_hosts
-w tempo Tempo de espera em milissegundos para cada resposta.
Pós-Graduação “Lato-Sensu” em Redes de Computadores
26

Documentos relacionados