How is ICMP unique? I tried to find out whether it is being used in a TCP packet or a UDP packet when running ping, but I kept reading that it's a "unique" protocol and couldn't find a definite answer for this.
Ele não está sendo usado em um datagrama TCP ou UDP.
Em vez disso, olhe assim:
IP é um envelope. Transmissões acontecem quando alguém me entrega um papel e me diz onde tem que ir. Coloco o papel em um envelope, escrevo o destino e coloco no correio. Receber é o contrário. Um envelope chega no post-in, eu tiro do envelope e entrego para a próxima pessoa.
Note que eu não me importo como a parte postal funciona. Poderia haver um cara de uniforme postal. Pode ser um driver dedicado. Alguém poderia pegar os envelopes e amarrá-los aos pidgeons. Tudo o que me importa é colocar papel dentro e fora dos envelopes.
Esses documentos vêm em vários formatos.
- Um deles é apenas um papel comum com texto. (UDP).
- Um deles é um tipo de papel com números de rastreamento (pense: em referência à sua solicitação, aqui está a parte 2 de .... etc etc) (TCP)
- Um deles não é uma letra com texto, mas com mensagens de status (ICMP)
Cada papel tem uma pequena marcação no canto. Essas marcações são diferentes para todos os três tipos (provavelmente é sua única)
Se for um UDP marcado (17 ou 0x11), o papel será colocado assim:
Seamarcaçãonocantotiverosinal/valordeTCP(0x06),entãoseiqueopapelserácolocadoassim:
Se eu tiver um datagrama ICMP (0x01), sei que o layout será um pouco diferente.
Mas, em todos os casos, posso verificar um local específico (o mesmo lugar em todos os pedaços de papel) e ler um valor. Com base nisso eu sei como o layout do resto do papel.
Todos esses valores são exclusivo por layout de papel