Entendendo os protocolos de comunicação da Internet
De um modo geral, um protocolo de comunicação é um sistema de regras que permite que duas ou mais entidades de um sistema de comunicações transmitam informações. A Internet tem um grande conjunto de protocolos para cobrir muitas situações. Na criação de aplicativos baseados na web e interfaces de programação, os desenvolvedores de software geralmente usam três desses protocolos de comunicação para descrever o estado da rede e as maneiras pelas quais os pacotes de dados são movidos pela rede:
- ICMP, Internet Control Message Protocol, parte do conjunto de protocolo da Internet definida na RFC 792.
- TCP, Protocolo de Controle de Transmissões
- UDP, Protocolo UDP
Os protocolos que são usados para uma implementação específica de, digamos, uma chamada API, podem influenciar o comportamento geral de sua rede. Portanto, vale a pena entender as diferenças básicas entre elas. Se você precisar de mais informações, muitos bons artigos estão disponíveis na Internet com descrições detalhadas dos protocolos.
ICMP
ICMP é um protocolo de controle, o que significa que ele é projetado para transportar informações sobre o status da própria rede. Ele é essencialmente um protocolo de relatório de erro e de controle de erro da camada de rede (camada OSI 3) para a rede. Os exemplos mais conhecidos do ICMP na prática são os utilitários ping
e traceroute
. O utilitário ping
usa o ICMP para análise de hosts remotos quanto à responsividade e o
tempo de roundtrip geral das mensagens de análise. O utilitário traceroute
usa o ICMP para descobrir e rastrear rotas de rede que os pacotes ICMP levam quando eles viajam para seu destino
O que os desenvolvedores precisam saber é que os pacotes ICMP não possuem números de porta TCP ou UDP associados a eles porque os números de porta são uma construção de camada 4 (camada de transporte).
TCP e UDP
O Protocolo de Controle de Transmissão (TCP) e o Protocolo de Datagrama do Usuário (UDP) são protocolos de transporte OSI da camada 4. Esses protocolos são usados para passar os dados reais. A principal diferença entre TCP e UDP, da perspectiva de um desenvolvedor, é como eles manipulam a ordem do pacote.
O TCP é um protocolo orientado a conexão, ele garante que todos os pacotes enviados cheguem ao destino na ordem correta.
Como alternativa, UDP é um protocolo sem conexão. A comunicação é orientada por datagrama. Portanto, a integridade é garantida somente no datagrama único. Os datagramas atingem um destino e podem chegar fora de ordem ou, possivelmente, eles não chegam de modo algum.
Geralmente o UDP é usado para comunicação em tempo real, em que é preferível uma pequena porcentagem da taxa de perda de pacotes à sobrecarga de uma conexão TCP.