TCP/IP, no es un protocolo, sino un conjunto de ellos.
El protocolo IP identifica a cada ordenador que se encuentre conectado a la red mediante su correspondiente dirección. Esta dirección es un número de 32 bit que debe ser único para cada host, y normalmente suele representarse como cuatro cifras de 8 bit separadas por puntos.
La dirección de Internet (IP Address) se utiliza para identificar tanto al ordenador en concreto como la red a la que pertenece, de manera que sea posible distinguir a los ordenadores que se encuentran conectados a una misma red. Con este propósito, y teniendo en cuenta que en Internet se encuentran conectadas redes de tamaños muy diversos, se establecieron tres clases diferentes de direcciones, las cuales se representan mediante tres rangos de valores:
IP es un protocolo simple, y fácilmente implementable. Su misión consiste en dividir la información que se transmite a través Internet, en pequeños paquetes, compuestos por dos partes: cabecera y datos. Dentro de la cabecera, entre otros campos, se encuentran la dirección IP del equipo origen y la del destino, el tamaño, y un número de orden del paquete.
IP fija las normas para que los paquetes alcancen su destino, pero lo que no garantiza es cuando van a hacerlo, cuantos lo harán y en qué orden.
Cada uno de estos paquetes es completamente independiente de los otros, y es llevado al ordenador destino por separado e incluso por caminos diferentes. Las longitudes de estos paquetes también son variables, pudiendo almacenar hasta un máximo de 65 KB de datos.
| Cabecera IP(20 byte) | Cabecera TCP(20 byte) | Datos |
|
Protocolo Internet (IP) Características |
|
Algunos servicios como el correo electrónico o la transferencia de ficheros, necesitan que los caracteres que se van tecleando en un extremo de la conexión lleguen al destino en el mismo orden en el que se van introduciendo, o que el fichero enviado llegue sin que se haya perdido o duplicado ningún dato. De esto se encarga el TCP (Transmisión Control Protocol).
TCP ofrece un servicio de transporte fiable que garantiza la integridad de los datos entre dos procesos o aplicaciones de máquinas remotas. Es un protocolo orientado a la conexión, es decir, trabaja más o menos como una llamada de teléfono. El equipo local solicita el establecimiento de un canal de comunicación al equipo remoto, y hasta que este no ha sido creado no comienza la transferencia real de datos.
Cuando necesitamos transmitir voz o vídeo, es más importante transmitir con velocidad que garantizar el hecho de que lleguen absolutamente todos los bytes o que no haya ninguno duplicado. Para este tipo de datos, se utiliza el protocolo UDP (User Datagram Protocol).
UDP ofrece servicios similares a los de TCP, aunque no está orientado a la conexión y no ofrece una transmisión de datos tan fiable como la de TCP. Si un proceso utiliza UDP, ha de implementar sus propias rutinas de sincronización y verificación de envío, ya que entre los paquetes enviados con este protocolo algunos pueden llegar desordenados, duplicados o puede que no lleguen.
EL protocolo UDP es especialmente util en redes que ya son lo suficientemente fiables por si mismas, o aquellos servicios que ya disponen de sus propios procedimientos de corrección de error o para servicios de transmisión de voz o vídeo donde la velocidad es más importante que la fiabilidad.
Tanto TDC como UDP transmiten y reciben paquetes de datos, compuestos por cabecera y área de datos. Dentro de la cabecera, los campos más importantes son los puertos de origen y destino, que identifican a qué tipo de protocolo de aplicación van destinados los datos (21 al FTP, 80 al http, etc) Si estos identificadores no existieran, no podríamos tener más que una aplicación en cada ordenador.
El protocolo IP no sabe nada respecto a estos números de puerto, de la misma manera que TCP y UDP no saben nada de las direcciones IP. En resumen, IP pone en contacto las máquinas, mientras que TCP y UDP establecen un canal de comunicación entre determinados procesos que se ejecutan en estas máquinas.
La nueva versión del protocolo IP recibe el nombre de IPv6, aunque es también conocido comúnmente como IPng (Internet Protocol Next Generation). El número de versión de este protocolo es el 6 frente a la versión 4 utilizada hasta entonces, puesto que la versión 5 no pasó de la fase experimental. Los cambios que se introducen en esta nueva versión son muchos y de gran importancia, aunque la transición desde la versión 4 no debería ser problemática gracias a las características de compatibilidad que se han incluido en el protocolo. IPng se ha diseñado para solucionar todos los problemas que surgen con la versión anterior, y además ofrecer soporte a las nuevas redes de alto rendimiento (como ATM, Gigabit Ethernet, etc.)
Una de las características más llamativas es el nuevo sistema de direcciones, en el cual se pasa de los 32 a los 128 bit, eliminando todas las restricciones del sistema actual. Otro de los aspectos mejorados es la seguridad, que en la versión anterior constituía uno de los mayores problemas. Además, el nuevo formato de la cabecera se ha organizado de una manera más efectiva, permitiendo que las opciones se sitúen en extensiones separadas de la cabecera principal.
El tamaño de la cabecera que el protocolo IPv6 añade a los datos es de 320 bit, el doble que en la versión 4. Sin embargo, esta nueva cabecera se ha simplificado con respecto a la anterior. Algunos campos se han retirado de la misma, mientras que otros se han convertido en opcionales por medio de las extensiones. De esta manera los routers no tienen que procesar parte de la información de la cabecera, lo que permite aumentar de rendimiento en la transmisión. El formato completo de la cabecera sin las extensiones es el siguiente:
| Organización de la cabecera IPv6. | ||||
| Versión | Prioridad | Etiqueta de flujo | ||
| Longitud | Siguiente cabecera | Límite de existencia | ||
| Dirección de origen | ||||
| Dirección de destino | ||||
Las extensiones que permite añadir esta versión del protocolo se sitúan inmediatamente después de la cabecera normal, y antes de la cabecera que incluye el protocolo de nivel de transporte. Los datos situados en cabeceras opcionales se procesan sólo cuando el mensaje llega a su destino final, lo que supone una mejora en el rendimiento. Otra ventaja adicional es que el tamaño de la cabecera no está limitado a un valor fijo de bytes como ocurría en la versión 4.
Por razones de eficiencia, las extensiones de la cabecera siempre tienen un tamaño múltiplo de 8 bytes. Actualmente se encuentran definidas extensiones para routing extendido, fragmentación y ensamblaje, seguridad, confidencialidad de datos, etc.
El sistema de direcciones es uno de los cambios más importantes que afectan a la versión 6 del protocolo IP, donde se han pasado de los 32 a los 128 bit (cuatro veces mayor). Estas nuevas direcciones identifican a un interfaz o conjunto de interfaces y no a un nodo, aunque como cada interfaz pertenece a un nodo, es posible referirse a éstos a través de su interfaz.
El número de direcciones diferentes que pueden utilizarse con 128 bits es enorme. Teóricamente serían 2128 direcciones posibles, siempre que no apliquemos algún formato u organización a estas direcciones. Este número es extremadamente alto, pudiendo llegar a soportar más de 665.000 trillones de direcciones distintas por cada metro cuadrado de la superficie del planeta Tierra. Según diversas fuentes consultadas, estos números una vez organizados de forma práctica y jerárquica quedarían reducidos en el peor de los casos a 1.564 direcciones por cada metro cuadrado, y siendo optimistas se podrían alcanzar entre los tres y cuatro trillones.
Existen tres tipos básicos de direcciones IPng según se utilicen para identificar a un interfaz en concreto o a un grupo de interfaces. Los bits de mayor peso de los que componen la dirección IPng son los que permiten distinguir el tipo de dirección, empleándose un número variable de bits para cada caso. Estos tres tipos de direcciones son:
Las direcciones de broadcast no están implementadas en esta versión del protocolo, debido a que esta misma función puede realizarse ahora mediante el uso de las direcciones multicast.