Estructura Datagrama
Los paquetes en la capa de red se denominan Datagramas.

- Número de versión: 4 bits que especifican la versión del protocolo IP.
- Longitud de la cabecera: Puede tener un número variable de opciones en la cabecera del datagrama. Estos 4 bits indican donde comienza el segmento de la capa de transporte encapsulado.
- La mayoría no tiene opciones, por lo que suelen tener un header de 20 bytes.
- Tipo de servicio: Diferencian el tipo de datagrama IP.
- Longitud del datagrama: Header + datos en bytes.
- Tiene 16 bits, el tamaño máximo teórico del datagrama IP es de 65.635 bytes. Rara vez tienen más de 1500 bytes (entrando en el campo de carga útil de una trama Ethernet de tamaño máximo)
- Identificador, indicadores, desplazamiento de fragmentación: Estos tres campos tienen que ver con la fragmentación IP.
- Tiempo de vida: TTL (Time to live) indican el tiempo de vida que tienen los datagramas para que no circulen infinitamente por la red. Se decrementa en una unidad cada vez que un router procesa un datagrama. Si llega a 0 se descarta.
- Protocolo: Se usa solo cuando el datagrama alcanza su destino final. Indica el protocolo específico de la capa de transporte al que se pasarán los datos del datagrama IP.
- El 6 indica TCP.
- El 17 indica UDP.
- Suma de comprobación de cabecera.
- Direcciones IP de origen y de destino.
- Cuando un Origen crea un datagrama, inserta su dirección IP en el campo de dirección IP de origen e inserta la dirección del destino final en el campo de dirección IP destino.
- Opciones: Permite ampliar una cabecera IP. (en IPv6 se sacaron)
- Datos (carga útil): Contiene el segmento de la capa de transporte.
Si el datagrama IP tiene 20 bytes de header y el segmento TCP tiene 20 bytes de header, entonces cada datagrama IP (no fragmentado) tiene un total de 40 bytes de header más el mensaje de la capa de aplicación.