Um tcpdump de uma sessão de ping mostra as duas linhas a seguir:
IP gateway.comp.com > somehost.comp.com: ICMP redirect 10.8.0.10 to host othergateway.comp.com, length 68
IP gateway.comp.com > somehost.comp.com: ICMP 10.8.0.10 protocol 1 port 21475 unreachable, length 68
Eu entendo a primeira mensagem. Ele apenas diz somehost
para não incomodar o principal gateway
com pacotes para 10.8.0.10, mas sim encaminhá-los diretamente othergateway
.
Mas o que significa a segunda mensagem. Chega 17ms depois e parece estar relacionado. O que está protocol 1 port XXX
neste contexto. O que exatamente é inacessível? ICMP (= protocolo 1) não tem portas, afaik, então o que isso significa?
Responder1
Isto é provavelmenteMensagem de controle ICMP Tipo 3 (destino inacessível) Código 3 (porta inacessível)
Isso significa que não há nenhum processo de servidor associado a essa porta TCP ou UDP no destino.
"Uma regra do UDP é que se ele receber um datagrama UDP e a porta de destino não corresponder a uma porta que algum processo esteja em uso, o UDP responderá com uma porta ICMP inacessível."- deTCP/IP ilustrado, Stevens.
Por que UDP? O ping
comando é tradicionalmente implementado usando solicitações de eco ICMP, mas em algumas plataformas, algumas ferramentas podem usar outros protocolos. Um exemplo serianmap -sU
Responder2
O que está
protocol 1 port XXX
neste contexto.
O protocolo número 1 é ICMP. O ICMP não usa portas, mas usa um identificador de 16 bits que é mencionado port
aqui para simplificar. (Talvez o programador não se incomodasse em fazer a distinção ou os usuários ficariam mais confusos com um identifier
rótulo.)
O campo identificador também é usado pelos roteadores NAT para mapear respostas para a sessão NAT original e, claro, pela própria pilha IP local para rotear uma resposta de eco de volta ao processo que originou a solicitação - muito parecido com um número de porta da camada de transporte .