El Protocolo de Internet ( IP ) es el protocolo de comunicaciones de capa de red del conjunto de protocolos de Internet para transmitir datagramas a través de los límites de la red. Su función de enrutamiento permite la conexión en red y esencialmente establece Internet .
IP tiene la tarea de entregar paquetes desde el host de origen al host de destino basándose únicamente en las direcciones IP en los encabezados de los paquetes . Para ello, IP define estructuras de paquetes que encapsulan los datos a entregar. También define métodos de direccionamiento que se utilizan para etiquetar el datagrama con información de origen y destino.
IP era el servicio de datagramas sin conexión en el Programa de Control de Transmisión original introducido por Vint Cerf y Bob Kahn en 1974, que se complementó con un servicio orientado a la conexión que se convirtió en la base del Protocolo de Control de Transmisión (TCP). Por lo tanto, el conjunto de protocolos de Internet suele denominarse TCP/IP .
La primera versión importante de IP, el Protocolo de Internet versión 4 (IPv4), es el protocolo dominante de Internet. Su sucesor es el Protocolo de Internet versión 6 (IPv6), que se ha ido implementando cada vez más en la Internet pública desde aproximadamente 2006. [1]
El Protocolo de Internet es responsable de abordar las interfaces del host , encapsular datos en datagramas (incluida la fragmentación y el reensamblaje ) y enrutar datagramas desde una interfaz del host de origen a una interfaz del host de destino a través de una o más redes IP. [2] Para estos fines, el Protocolo de Internet define el formato de los paquetes y proporciona un sistema de direccionamiento.
Cada datagrama tiene dos componentes: un encabezado y una carga útil . El encabezado IP incluye una dirección IP de origen, una dirección IP de destino y otros metadatos necesarios para enrutar y entregar el datagrama. La carga útil son los datos que se transportan. Este método de anidar la carga útil de datos en un paquete con un encabezado se llama encapsulación.
El direccionamiento IP implica la asignación de direcciones IP y parámetros asociados a las interfaces del host. El espacio de direcciones se divide en subredes , lo que implica la designación de prefijos de red. El enrutamiento IP lo realizan todos los hosts, así como los enrutadores , cuya función principal es transportar paquetes a través de los límites de la red. Los enrutadores se comunican entre sí a través de protocolos de enrutamiento especialmente diseñados , ya sean protocolos de puerta de enlace interior o protocolos de puerta de enlace exterior , según sea necesario para la topología de la red. [3]
En mayo de 1974, el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) publicó un artículo titulado "Un protocolo para la intercomunicación de redes de paquetes". [4] Los autores del artículo, Vint Cerf y Bob Kahn , describieron un protocolo de interconexión para compartir recursos mediante conmutación de paquetes entre nodos de red . Un componente de control central de este modelo fue el "Programa de control de transmisión" que incorporaba enlaces orientados a la conexión y servicios de datagramas entre hosts. El programa de control de transmisión monolítico se dividió posteriormente en una arquitectura modular que constaba del protocolo de control de transmisión y el protocolo de datagramas de usuario en la capa de transporte y el protocolo de Internet en la capa de Internet . El modelo pasó a ser conocido como conjunto de protocolos de Internet y modelo de Internet del Departamento de Defensa (DoD) , e informalmente como TCP/IP .
Los siguientes documentos de Internet Experiment Note (IEN) describen la evolución del Protocolo de Internet hacia la versión moderna de IPv4: [5]
Las versiones 1 a 3 de IP eran versiones experimentales, diseñadas entre 1973 y 1978. [6] Las versiones 2 y 3 admitían direcciones de longitud variable que oscilaban entre 1 y 16 octetos (entre 8 y 128 bits). [7] Un primer borrador de la versión 4 admitía direcciones de longitud variable de hasta 256 octetos (hasta 2048 bits) [8] pero esto se abandonó posteriormente en favor de una dirección de tamaño fijo de 32 bits en la versión final de IPv4. . Este sigue siendo el protocolo de interconexión de redes dominante en uso en la capa de Internet ; el número 4 identifica la versión del protocolo, contenida en cada datagrama IP. IPv4 se define en RFC 791 (1981).
La versión número 5 fue utilizada por Internet Stream Protocol , un protocolo de transmisión experimental que no fue adoptado. [6]
El sucesor de IPv4 es IPv6 . IPv6 fue el resultado de varios años de experimentación y diálogo durante los cuales se propusieron varios modelos de protocolo, como TP/IX ( RFC 1475), PIP ( RFC 1621) y TUBA (TCP y UDP con direcciones más grandes, RFC 1347). Su diferencia más destacada con respecto a la versión 4 es el tamaño de las direcciones. Mientras que IPv4 utiliza 32 bits para el direccionamiento, lo que produce c. 4,3 mil millones (4,3 × 10 9 ) direcciones, IPv6 utiliza direcciones de 128 bits que proporcionan c.3,4 × 10 38 direcciones. Aunque la adopción de IPv6 ha sido lenta, en enero de 2023 [update], la mayoría de los países del mundo muestran una adopción significativa de IPv6, [9] con más del 41% del tráfico de Google transportado a través de conexiones IPv6. [10]
La asignación del nuevo protocolo como IPv6 era incierta hasta que la diligencia debida aseguró que IPv6 no se había utilizado anteriormente. [11] A otros protocolos de la capa de Internet se les han asignado números de versión, [12] como 7 ( IP/TX ), 8 y 9 ( histórico ). En particular, el 1 de abril de 1994, el IETF publicó un chiste del Día de los Inocentes sobre IPv9. [13] IPv9 también se utilizó en una propuesta alternativa de expansión del espacio de direcciones llamada TUBA. [14] Una propuesta china de 2004 para un protocolo "IPv9" parece no tener relación con todos estos y no está respaldada por el IETF.
El diseño de la suite de protocolos de Internet se adhiere al principio de extremo a extremo , un concepto adaptado del proyecto CYCLADES . Según el principio de extremo a extremo, la infraestructura de la red se considera inherentemente poco confiable en cualquier elemento de red o medio de transmisión y es dinámica en términos de disponibilidad de enlaces y nodos. No existe ninguna instalación central de monitoreo o medición del desempeño que rastree o mantenga el estado de la red. Para reducir la complejidad de la red , la inteligencia de la red se ubica en los nodos finales .
Como consecuencia de este diseño, el Protocolo de Internet solo proporciona la mejor entrega y su servicio se caracteriza por ser poco confiable . En el lenguaje de arquitectura de red, es un protocolo sin conexión , a diferencia de la comunicación orientada a conexión . Pueden ocurrir varias condiciones de falla, como corrupción de datos , pérdida de paquetes y duplicación. Debido a que el enrutamiento es dinámico, lo que significa que cada paquete se trata de forma independiente, y debido a que la red no mantiene ningún estado basado en la ruta de los paquetes anteriores, se pueden enrutar diferentes paquetes al mismo destino a través de diferentes rutas, lo que resulta en una entrega desordenada al receptor.
Todas las condiciones de falla en la red deben ser detectadas y compensadas por los nodos finales participantes. Los protocolos de capa superior del conjunto de protocolos de Internet son responsables de resolver los problemas de confiabilidad. Por ejemplo, un host puede almacenar en un buffer los datos de la red para garantizar el orden correcto antes de que los datos se entreguen a una aplicación.
IPv4 proporciona medidas de seguridad para garantizar que el encabezado de un paquete IP esté libre de errores. Un nodo de enrutamiento descarta los paquetes que no pasan la prueba de suma de verificación del encabezado . Aunque el Protocolo de mensajes de control de Internet (ICMP) proporciona notificación de errores, no es necesario que un nodo de enrutamiento notifique los errores a ninguno de los nodos finales. IPv6, por el contrario, funciona sin sumas de verificación de encabezado, ya que se supone que la tecnología actual de capa de enlace proporciona suficiente detección de errores. [15] [16]
La naturaleza dinámica de Internet y la diversidad de sus componentes no ofrecen garantía de que una ruta en particular sea realmente capaz o adecuada para realizar la transmisión de datos solicitada. Una de las limitaciones técnicas es el tamaño de los paquetes de datos posibles en un enlace determinado. Existen instalaciones para examinar el tamaño máximo de la unidad de transmisión (MTU) del enlace local y Path MTU Discovery se puede utilizar para toda la ruta prevista hasta el destino. [17]
La capa de interconexión de redes IPv4 fragmenta automáticamente un datagrama en unidades más pequeñas para su transmisión cuando se excede la MTU del enlace. IP proporciona reordenamiento de fragmentos recibidos fuera de orden. [18] Una red IPv6 no realiza fragmentación en los elementos de la red, pero requiere hosts finales y protocolos de capa superior para evitar exceder la ruta MTU. [19]
El Protocolo de control de transmisión (TCP) es un ejemplo de un protocolo que ajusta el tamaño de su segmento para que sea más pequeño que la MTU. El Protocolo de datagramas de usuario (UDP) y el ICMP no tienen en cuenta el tamaño de la MTU, lo que obliga a IP a fragmentar datagramas de gran tamaño. [20]
Durante la fase de diseño de ARPANET y de los inicios de Internet, no se podían anticipar adecuadamente los aspectos y necesidades de seguridad de una red pública internacional. En consecuencia, muchos protocolos de Internet exhibieron vulnerabilidades destacadas por ataques a la red y evaluaciones de seguridad posteriores. En 2008, se publicó una evaluación de seguridad exhaustiva y una propuesta de mitigación de problemas. [21] El IETF ha estado realizando más estudios. [22]
Los autores desean agradecer a varios colegas por sus útiles comentarios durante las primeras discusiones sobre protocolos de redes internacionales, especialmente a R. Metcalfe, R. Scantlebury, D. Walden y H. Zimmerman; D. Davies y L. Pouzin, quienes comentaron constructivamente las cuestiones de fragmentación y contabilidad; y S. Crocker quien comentó sobre la creación y destrucción de asociaciones.