Um protocolo é um método que possibilita a comunicação entre processos (eventualmente executados em diferentes máquinas), ou seja, um conjunto de regras e procedimentos a serem respeitados para emitir e receber dados numa rede. Existem vários deles, utilizados dependendo do que se espera da comunicação. Certos protocolos, por exemplo, são especializados na troca de arquivos (FTP), outros servem apenas para gerir o estado da transmissão e seus erros (ICMP).
Na Internet, os protocolos utilizados integra um conjunto de protocolos. Esta sequência de protocolos chama-se TCP/IP. Ela contém os seguintes protocolos: HTTP, FTP, ARP, ICMP, IP, TCP, UDP, SMTP, Telnet e NNTP.
Geralmente, os protocolos são classificados em duas categorias, dependendo do nível de controle dos dados que desejamos.
Os protocolos orientados para a conexão são protocolos que operam um controle de transmissão dos dados durante uma comunicação estabelecida entre duas máquinas. Em tal esquema, a máquina receptora envia avisos de recepção durante a comunicação. Assim, a máquina emissora é fiadora da validade dos dados que envia. Os dados são enviados na forma de fluxo. O TCP é um exemplo de protocolo orientado para a conexão.
Os protocolos não orientados para a conexão são um modo de comunicação no qual a máquina emissora envia dados sem prevenir a máquina receptora. Os dados são enviados na forma de blocos, chamados datagramas. O UDP é um exemplo de protocolo não orientado para conexão.
Um protocolo define apenas a maneira pela qual as máquinas devem se comunicar, ou seja, a forma e a sequência dos dados a serem trocados. No entanto, um protocolo não define a maneira de programar um software para que seja compatível com o protocolo. Chama-se, assim, de implementação a tradução de um protocolo em linguagem de programação.
As especificações dos protocolos nunca são exaustivas, assim é comum que as aplicações sejam objeto de uma certa interpretação das especificações, o que pode conduzir a especificidades de certas aplicações ou, pior ainda, a incompatibilidades ou falhas de segurança.