O protocolo Internet ou simplesmente IP - Internet Protocol - foi definido na RFC 791 (Request for Comments) - Basicamente um conjunto de padrões utilizados na implementação de uma camada de rede para comunicação entre computadores através da troca de pacotes.
A unidade básica do protocolo IP é chamada datagrama ou pacote. Um datagrama é formado por um cabeçalho de identificação e um corpo com dados que representam a carga útil do datagrama. O tamanho de um datagrama IP varia, principalmente, em função da carga útil que ele transporta. O tamanho máximo do datagrama IP é de 65.536 bytes ou 64 KB, incluindo os dados do próprio cabeçalho.
O protocolo IP permite a interligação de redes com diferentes topologias. Tendo sido criado exatamente para superar essas diferenças e tornar as redes homogêneas quanto a troca de datagramas. Assim, na prática, o tamanho máximo do datagrama também é definido em função do hardware de rede que vai lidar com o pacote recebido.
Nem sempre é possível que duas redes utilizem o mesmo tamanho de pacote, sendo necessário dividir um pacote em vários pacotes menores e que possam ser transmitidos pela rede em questão. Deste modo, o IP aceita a fragmentação dos datagramas ajustando-os ao tamanho adequado ao hardware de rede que irá lidar com ele. Cabe ao próprio protocolo IP providenciar a remontagem do pacote no host de destino.
O IP não é um protocolo orientado à conexão. Isto significa que ele não fornece um serviço de confiabilidade, de controle de fluxo, de sequenciamento ou outros serviços normalmente encontrados nos protocolos ponto-a-ponto utilizados na comunicação entre computadores. De modo simplificado, podemos afirmar que a função do IP é apenas empurrar o pacote para o próximo roteador até que este pacote encontre o computador de destino. Quando necessário, funções de controle são implementadas no nível da camada de transporte por um protocolo orientado à conexão como o TCP - Transmission Control Protocol, por exemplo. Todo controle adicional não interfere diretamente no funcionamento do protocolo IP, uma vez que a transmissão dos dados é feita entre as camadas do modelo TCP/IP e cada uma cuida das suas próprias atribuições. Assim, o processo de transmissão de pacotes ocorre da camada mais alta (aplicação) para a camada mais baixa (física), no emissor, e faz o caminho inverso no receptor do seguinte modo:
A aplicação do usuário solicita à camada de transporte que "embrulhe" os dados a serem transmitidos em um pacote. Este é enviado para o IP "encapsular" (camada de rede) em um datagrama IP. Este datagrama é entregue para a camada de enlace de rede, que gera um quadro (frame) e "empurra" esse quadro pela rede física até o próximo roteador. Este pacote vai encaminhado de roteador a roteador até encontrar o host de destino.
No destino, o pacote faz o caminho inverso, indo da camada mais baixa (física) até a aplicação de usuário. Cada camada retira seu cabeçalho correspondente, faz as checagens necessárias, e passa a carga útil para o protocolo imediatamente superior. Repetindo esse processo até que os dados sejam entregues para a aplicação do usuário. A figura seguinte ilustra o processo de encaminhamento de um datagrama TCP/IP entre um host A (origem) e um host denominado B (destino).