IPv4

IPv4 es la versión 4 del Protocolo de Internet (IP o Inernet
Protocol) y constituye la primera versión de IP que es implementada de forma
extensiva. IPv4 es el principal protocolo utilizado en el Nivel de Red del
Modelo TCP/IP para Internet. Fue descrito inicial mente en el RFC 791 elaborado
por la Fuerza de Trabajo en Ingeniería de Internet (IETF o Internet Engineering
Task Force) en Septiembre de 1981, documento que dejó obsoleto al RFC 760 de
Enero de 1980.

IPv4 es un protocolo orientado hacia datos que se utiliza
para comunicación entre redes a través de interrupciones (switches) de paquetes
(por ejemplo a través de Ethernet). Tiene las siguientes características:

Es un protocolo de un servicio de datagramas no fiable
(también referido como de mejor esfuerzo).

No proporciona garantía en la entrega de datos.

No proporciona ni garantías sobre la corrección de los
datos.

Puede resultar en paquetes duplicado o en desorden.

Todos los problemas mencionados se resuelven en el nivel
superior en el modelo TCP/IP, por ejemplo, a través de TCP o UDP.

El propósito principal de IP es proveer una dirección única
a cada sistema para asegurar que una computadora en Internet pueda identificar
a otra.

Direcciones.

IPv4 utiliza direcciones de 32 bits (4 bytes) que limita el
número de direcciones posibles a utilizar a 4,294,967,295 direcciones únicas.
Sin embargo, muchas de estas están reservadas para propósitos especiales como
redes privadas, Multidifusión (Multicast), etc. Debido a esto se reduce el
número de direcciones IP que realmente se pueden utilizar, es esto mismo lo que
ha impulsado la creación de IPv6 (actualmente en desarrollo) como reemplazo
eventual dentro de algunos años para IPv4.

IPv4 es la versión 4 del protocolo IP (Internet Protocol). Es el estándar actual de Internet para identificar dispositivos conectados a esta red.

Es uno de los protocolos más importantes para el funcionamiento de internet y fue implementado en ARPANET en 1983.

Es el protocolo que más enruta datos en internet en la actualidad, a pesar de que ya se ha lanzado hace unos años (2006) su sucesor, la versión IPv6. Ambos conviven en internet.

==

Estructura típica de la dirección IPv4 ==
La estructura y funcionamiento de IPv4 está descrito en la publicación RFC 791 (septiembre de 1981) de la IETF, en reemplazo de la definición anterior (RFC 760 de enero 1980).

IPv4 utiliza direcciones IP de 32 bits (4 bytes), lo cual limita la cantidad de direcciones a 4.294.967.296 (2 elevado a 32). Esto crea un evidente problema, la escasez de direcciones. Cada dispositivo que se conecta a internet debe tener una dirección IP para ser identificado y 4 mil direcciones IP diferentes no son suficientes. Por lo que se lanzó la versión 6 (IPv6) que permite muchísimas más direcciones, comenzando su despliegue en 2006.

La cantidad de direcciones IPv4 se terminaron el 3 de febrero de 2011, luego de haber sido esto retrasado empleando varios métodos como Classful network, CIDR y NAT.

IPv4 reserva bloques de direcciones especiales para redes privadas (aproximadamente 18 millones de direcciones) y direcciones de multidifusión (aproximadamente 270 millones de direcciones).

*Estructura típica de una dirección IP versión 4 en decimales y en binario*

Existen otras formas de representar la dirección IPv4 como en sistema hexadecimal separada por puntos, o directamente el número hexadecimal, decimal, octal, etc.

==

Funcionamiento básico de IPv4 ==
IPv4 es un protocolo para ser usado en las redes de conmutación de paquetes. Funciona empleando un modelo de entrega de mejor esfuerzo, ya que no garantiza la entrega, ni garantiza la secuenciación ni evita entrega por duplicado. Estos aspectos, incluyendo la integridad de datos, son abordados por un protocolo de transporte en la capa superior, tales como el Protocolo de Control de Transmisión(TCP).

==

Direcciones IPv4 especiales y reservadas ==
La IETF y la IANA han restringido del uso general varias direcciones IP para propósitos especiales. Algunas son usadas para el mantenimiento de las tablas enrutamiento, para el tráfico de multidifusión (multicast), la operación bajo modos de fallo, o para proporcionar espacio de direccionamiento para usos públicos, usos sin restricciones en las redes privadas.

==

Direcciones IPv4 reservadas para redes privadas ==
De las aproximadamente 4 mil millones de direcciones IP permitidas en IPv4, tres rangos de direcciones están reservadas para ser usadas en redes privadas. Estos rangos no son enrutables fuera de las redes privadas y las máquinas privadas no pueden comunicarse directamente con redes públicas. Estas puede, de todas maneras, hacer esto a través de traducción de direcciones de red (NAT).

Estos son los tres rangos de redes privadas reservadas (RFC 1918):

• Bloque de 24 bits, rango: 10.0.0.0–10.255.255.255, 16777216 direcciones posibles, bloque CIDR más grande: 10.0.0.0/8

• Bloque de 20 bits, rango: 172.16.0.0–172.31.255.255, 1048576 direcciones posibles, bloque CIDR más grande: 172.16.0.0/12

• Bloque de 16 bits, rango: 192.168.0.0–192.168.255.255, 65536 direcciones posibles, bloque CIDR más grande: 192.168.0.0/16

==

Redes privadas virtuales ==
Paquetes de datos con una dirección de destino privada son ignorados por todos los routers públicos. Dos redes privadas no pueden comunicarse a través del internet público, a menos que usen IP Túnel o una red privada virtual (VPN). Cuando una red privada quiere enviar un paquete a otra red privada, la primera red privada encapsula el paquete de datos en una capa protocolo para que el paquete pueda viajar a través de la red pública. Luego el paquete viaja a través de la red pública. Cuando el paquete llega a la otra red privada, la capa de protocolo es eliminada y el paquete se envía donde corresponde.Opcionalmente, los paquetes encapsulados pueden ser cifrados para asegurar los datos mientras se envían por la red pública.

Ver: Red privada virtual.

==

Direcciones de enlace-local o Link-local ==
Una dirección de enlace-local es una dirección IP creada únicamente para comunicaciones dentro de una subred local. Los routers no enrutan paquetes con direcciones de enlace local.

En IPv4, las direcciones de enlace local pueden usarse cuando no hay disponible un mecanismo externo de configuración de direcciones, tal como DHCP, u otro mecanismo principal de configuración ha fallado.

Las direcciones de enlace local para IPv4 están definidas en el bloque 169.254.0.0/16, como se detalló más arriba.

==

Resolución de direcciones ==
Los hosts en internet usualmente son conocidos por sus nombres, por ejemplo: www.alegsa.com.ar, y no por su dirección IP, la cual es usada para enrutamiento de identificación en la red.

El uso de nombres de dominio requiere traducir ese nombre a una dirección IP y viceversa. Esto sería como buscar un número telefónico en la guía telefónica usando el nombre de quien queremos llamar.

Esta traducción entre direcciones IP y nombres de dominio es realizada por el Domain Name System (DNS).

Para más información leer el artículo: DNS.

==

**¿Por qué se terminaron las direcciones IP versión 4?** ==
Cuando se creó en la década de 1980 la versión 4 de las direcciones IP, no se pensaba que se terminarían en menos de 30 años. Cuando en en la década de 1990 se anticipó que se terminarían rápidamente, se creó la versión 6 llamada IPv6.

Motivos que aceleraron el agotamiento de las direcciones IPv4:

- Gran crecimiento del número de usuarios de internet.

- Dispositivos que están siempre conectados a internet: módems ADSL, cablemódems.

- La increíble adopción mundial de los dispositivos móviles: teléfonos inteligentes, computadoras portátiles, PDAs.

Algunas tecnologías permitieron mitigar en algo el agotamiento de estas direcciones:

- NAT: tecnología que permite a una red privada usar una única dirección IP pública. Permite direcciones privadas dentro de la red privada. La emplean algunos proveedores de internet pequeños por lo general, donde muchos usuarios comparten una única dirección IP.

- Uso de redes privadas.

- Dynamic Host Configuration Protocol (DHCP)

- Hosting virtual basado en el nombre del sitio web.

- Un control más estricto para el Registro Regional de Internet o Regional Internet Registry (RIR).

- Renumeración de red para recuperar grandes bloques de espacio de direcciones asignado en los primeros días de Internet.

El grupo de direcciones primarias de internet, mantenidos por la IANA, se terminó el 3 de febrero de 2011, cuando los últimos 5 bloques fueron asignados a los 5 RIRs existentes.

APNIC fue el primer RIR en terminar con su grupo de direcciones regionales el 15 de abril de 2011, excepto por un pequeño número de direcciones reservadas para la transición al IPv6, la cual tiene políticas más estrictas para asignar direcciones.

Los servidores que son sólo IPv4 no pueden comunicarse directamente con los servidores que son sólo IPv6, por lo que IPv6 no ofrece una solución directa e inmediata al problema del agotamiento de direcciones IPv4.

Se espera que la migración completa a IPv6 tome un gran tiempo.

==

**Estructura del paquete de datos IPv4** ==
Un paquete de datos IP consiste de una sección cabecera o encabezado (header) y una sección de datos (data).

Un paquete IP no tiene ninguna suma de comprobación ni cualquier otro pie final después de la sección de datos. Usualmente la capa de enlace encapsula los paquetes de IP en frames con un pie CRC (CRC footer) que detecta la mayoría de los errores y generalmente la suma de comprobación de la capa TCP end-to-end termina de detectar el resto de errores.

La cabecera consiste de 13 registros obligatorios y uno opcional, básicamente son: versión, Internet Header Length (IHL), Differentiated Services Code Point (DSCP), Explicit Congestion Notification (ECN), longitud total, identificación, banderas, desplazamiento del fragmento (Fragment Offset), protocolo, comprobación del encabezado (Header Checksum), dirección IP de origen, dirección IP de destino y el campo opcional Opciones, que no suele emplearse a menudo.

En tanto la porción de datos del paquete no es incluido en la suma de comprobación del paquete. Su contenido es interpretado basado en el valor del campo Protocolo de la cabecera.

Algunos de los protocolos típicos para la porción de datos son:

Número de protocolo - Nombre (Abreviatura)

1 - Internet Control Message Protocol (ICMP)
2 - Internet Group Management Protocol (IGMP)
6 - Transmission Control Protocol (TCP)
17 - User Datagram Protocol (UDP)
41 - encapsulación IPv6 (ENCAP)
89 - Open Shortest Path First (OSPF)
132 - Stream Control Transmission Protocol (SCTP)

==

F**ragmentación y reensamblado de paquetes** ==
El protocolo IP permite a las redes comunicarse entre sí. El diseño permite redes de diversa naturaleza física: es independiente de la tecnología de transmisión física empleada en la capa de enlace. Las redes con diferentes hardware usualmente varían en la velocidad de transmisión y en el tamaño MTU (unidad máxima de transmisión).

Cuando una red quiere transmitir datagramas hacia una red con un MTU menor, esta fragmentará sus datagramas. En IPv4, esta función se lleva a cabo en la capa de Internet y es realizada en los routers IPv4, por esto sólo requiere que esta capa sea la más alta en ser implementada en su diseño.

Por otro lado, en las IPv6, no se les permite a los routers realizar fragmentación. Los hosts deben determinar el camino MTU antes del envío de datagramas.

Fragmentación

Cuando un router recibe un paquete, este examina la dirección de destino y determina la interfaz de salida a usar y la interfaz del MTU. Si el tamaño del paquete es mayor que el MTU y el bit Do not Fragment (DF o No fragmentar) en la cabecera del paquete está en 0, entonces el router puede fragmentar el paquete.

El router divide el paquete en fragmentos. El máximo tamaño de cada paquete es MTU menos el tamaño de cabecera IP (20 bytes mínimo; 60 bytes máximo).

Reensamblado

Un receptor sabe que un paquete es un fragmento si se cumple al menos de una de estas condiciones:

- La bandera "más fragmentos" está activada (esto es verdadero para todos los fragmentos con excepción del último).

- El campo "fragment offset" (desplazamiento de fragmento) es distinto de cero (esto es verdadero para todos los fragmentos excepto el primero).

El receptor identifica los fragmentos que se emparejan usando dirección de internet local y foránea, y el campo de identificación. El receptor reensamblará los datos desde fragmentos con el mismo ID usando el desplazamiento de fragmento y las banderas de más fragmentos. Cuando el receptor recibe el último fragmento (que tiene la bandera "más fragmentos" en cero), puede calcular la longitud de los datos originales, multiplicando el último desplazamiento de fragmento por 8 y agregando el tamaño de datos del último fragmento.

Cuando el receptor tiene todos los fragmentos, podrá ubicarlos en el orden correcto empleando sus offsets (desplazamientos). Podrá pasar los datos a la pila que luego para futuro procesamiento.

## Referencias

http://www.alcancelibre.org/staticpages/index.php/introduccion-ipv4

http://www.alegsa.com.ar/Dic/ipv4.php