Tem como principais funcionalidades o encaminhamento de pacotes, endereçamento, interconexões de redes, tratamento de erros, fragmentações de pacotes, controle de congestionamento e sequenciamento de pacotes.
O endereçamento de pacotes é a conversão de endereços lógicos em endereços físicos, além de determinar a rota que os pacotes seguirão para atingir o destino, com base me fatores como condições de tráfego da rede e prioridades.
Essa camada é usada quando a comunicação entre dois equipamentos ocorre em mais de um segmento da rede, quando houver mais de um caminho pelo qual o pacote pode trafegar.
O protocolo IP é responsável pela comunicação entre os computadores pertencentes a rede TCP/IP lógicas diferentes, ele provê um serviço sem conexão e não confiável entre equipamento em uma estrutura de rede.
São as camadas de aplicação e transporte que determinam a arquitetura de conexão que será usada. A camada de rede usa o protocolo IP para atribuir um esquema de endereçamento e a capacidade de rotear e tomar decisões sobre o caminho que os pacotes devem percorrer.

Versão (4 bits): identifica a versão usada.
Comprimento do Cabeçalho (4 bits): especifica o tamanho do cabeçalho IP.
Tipo de serviço (8 bits): campo com o objetivo de tratar os pacotes e fornecer informações para prover funcionalidades de QoS. Essa função não é comumente usada, sendo substituída pelo DS (Differentiated Services).
Comprimento total (16 bits): especifica o tamanho total do pacote IP. O tamanho não ultrapassa os 65,535 bytes (16 bits).
Identificação (16 bits): possui um valor comum a todos os fragmentos de uma mensagem em particular. Para os pacotes enviados originalmente sem fragmentação, caso tenham que ser fragmentados até o destino, possuirão o mesmo valor de identificação para que sejam remontados no destino.
Flags (3 bits): marcações feitas para tratar fragmentação, atribuídos da seguinte forma:
Primeiro bit: não usado.
Segundo bit: Don’t Fragment - quando ele possuir o valor 1, nunca deverá ser fragmentado. Muito usado para testar o MTU (Maximum Transmission Unit) de uma rede.
Terceiro bit: More Fragments - quando possui o valor 0, ele é o último fragmento da mensagem, quando possui valor 1, significa que mais fragmentos ainda estão por vir.
Tempo de vida (8 bits): indica o tempo máximo que o pacote pode trafegar na rede. O tempo é medido em saltos, que correspondem aos roteadores que o pacote passou. Cada salto decrementa um TTL (Time To Live) e quando chega em 0, o pacote é descartado, pois provavelmente ocorreu algum loop no processo.
Deslocamento do fragmento (13 bits): indica a posição do fragmento em relação a toda mensagem. O primeiro fragmento terá valor 0, o segundo terá o tamanho do primeiro (em bytes) mais 1, e assim por diante.
Protocolo (8 bits): identifica o protocolo da camada de transporte ou encapsulamento da camada de rede, como o TCP ou UDP.
Checksun do cabeçalho (16 bits): checa o cabeçalho IP para certificar que não houve erros na transmissão.