O ICMP é um protocolo de controle, o que significa que ele foi projetado para não transportar dados de aplicativos, mas sim informações sobre o status da própria rede. O exemplo mais conhecido de ICMP na prática é o utilitário ping, que usa o ICMP para investigar os hosts remotos quanto à capacidade de resposta e ao tempo global de ida e volta das mensagens do probe.
Tanto o Protocolo de Controle de Transmissão (TCP) quanto o Protocolo de Datagrama de Usuário (UDP) são protocolos de transporte, eles são usados para transmitir os dados reais. A principal diferença entre TCP e UDP é que o TCP é um protocolo orientado a conexão, garante que todos os pacotes enviados cheguem ao destino na ordem correta.
O UDP, por outro lado, é um protocolo sem conexão. A comunicação é orientada por datagrama, portanto, a integridade é garantida apenas no único datagrama. Os datagramas chegam ao destino e podem chegar fora de ordem ou não chegarem a todos. É geralmente usado para comunicação em tempo real, onde uma pequena porcentagem da taxa de perda de pacotes é preferível à sobrecarga de uma conexão TCP.