Funcionamiento y Capas del Protocolo TCP/IP: Una Exploración Detallada

Funcionamiento y Capas del Protocolo TCP/IP

Internet funciona sobre TCP/IP, el Protocolo de Control de Transmisión / Protocolo de Internet.

TCP/IP fue diseñado por la DARPA (Agencia de Defensa de Proyectos de Investigación Avanzada) en los años 70, con el objetivo de permitir que distintos computadores se comunicasen libremente sin importar su ubicación. La mayor parte del trabajo inicial se realizó en computadores que funcionaban bajo el sistema operativo UNIX, lo que contribuyó a la popularidad del TCP/IP cuando los vendedores lo distribuyeron junto a los equipos.

TCP/IP es realmente una familia de protocolos, cada uno de los cuales desempeña un papel particular para permitir a los computadores hablar el mismo lenguaje. TCP/IP puede correr en una amplia variedad de equipos.

A pesar de que el protocolo TCP/IP es más antiguo que el modelo de referencia OSI, se puede establecer una relación entre ellos, como se muestra en la figura.

Imagen

TCP/IP se divide generalmente en 4 capas:

  • Aplicación: define las aplicaciones de red, tales como transferencia de archivos, correo electrónico, visualización de páginas web, etc.
  • Transporte: define cómo se intercambian los mensajes entre los equipos.
  • Internet: define cómo se propagan los mensajes desde su origen hasta su destino en las redes.
  • Interfaz de red: define la interacción con las tecnologías de red (Ethernet la más común).


La Capa de Aplicación

Contiene los protocolos de alto nivel. Entre los más antiguos están:

  • TELNET: protocolo de terminal virtual, que permite que un usuario ingrese a una máquina distante (por ejemplo, un supercomputador) y trabaje en ella, manipulando los archivos de su cuenta, ejecutando programas, etc.
  • FTP: protocolo de transferencia de archivos, que ofrece un mecanismo para copiar archivos de una máquina a otra en forma eficiente y confiable.
  • SMTP: protocolo de correo electrónico.

Con los años, se añadieron otros protocolos, tales como:

  • DNS: servicio de nombres de dominio, para relacionar los nombres de los nodos (URL) con sus direcciones en la red (número IP).
  • NNTP: protocolo para transferir artículos en los grupos de debate (news).
  • HTTP: protocolo para visualizar páginas web.

La Capa de Transporte

Puede aceptar mensajes de gran longitud provenientes de la Capa de Aplicación, y dividirlos en unidades de menor tamaño (paquetes) antes de pasarlos a la capa inferior, de manera de poder compartir la red entre muchos enlaces simultáneos. Además, se asegura de que los mensajes sean entregados sin errores, en la secuencia correcta, sin pérdidas ni duplicaciones, y es la encargada de detener momentáneamente al equipo transmisor si el equipo receptor no tiene memoria libre suficiente para aceptar más información.

Los dos protocolos más usados en la capa de transporte son TCP y UDP:

  • TCP es el acrónimo de Transport Control Protocol (Protocolo de Control de Transporte). TCP se considera como un protocolo fiable, ya que efectúa las comprobaciones necesarias con el receptor para asegurar que el paquete ha sido recibido.
  • UDP es el acrónimo de User Datagram Protocol (Protocolo de Datagrama de Usuario), que se utiliza en lugar de TCP para mensajes menos críticos. UDP no es fiable, porque no confirma la entrega del paquete.

Debe tenerse presente que sólo se puede utilizar 1 protocolo de transporte para enviar un mensaje. El protocolo de transporte usado depende de la aplicación. Los diseñadores de software de red usan UDP cuando pueden, ya que genera menos sobrecarga en el tráfico que TCP, el cual se esfuerza mucho más para asegurar la entrega, enviando muchos más paquetes que UDP para administrar la comunicación.

TCP se utiliza en la transferencia de archivos (protocolo FTP), visualización de páginas web (protocolo HTTP) y otros procesos similares, ya que en estos casos no se deben ignorar paquetes defectuosos, la pérdida de algunos de ellos, o errores en la secuencia.

UDP se utiliza (por ejemplo) en la transmisión de audio y video en vivo (streaming), ya que si se pierden o dañan paquetes, no tiene sentido solicitar su retransmisión (porque el momento adecuado para reproducirlos ya pasó) y el daño producido a la información es generalmente tolerable.

TCP se clasifica como un «protocolo orientado a la conexión», ya que requiere el establecimiento de una conexión virtual entre las máquinas antes de iniciar la transferencia de información. El proceso de conexión TCP se denomina «saludo de tres vías» pues requiere 3 pasos, los cuales se muestran en el ejemplo de la figura, en el que un PC se conecta a un servidor de páginas web.

  1. El PC envía el número de secuencia del segmento TCP, que se utiliza para ensamblar los paquetes en la secuencia correcta en el extremo receptor, y el bit de SYN que indica que desea iniciar una conexión.
  2. El servidor responde aceptando la conexión y enviando sus datos.
  3. El PC responde aceptando la conexión.
  4. En el protocolo UDP no existen estos pasos previos.

Formato del encabezado TCP: Puerta de origen: que utiliza emisor

Imagen

Puerta destino: la puerta de aplicación que utiliza el equipo receptor. Reservado: bits reservados para uso futuro.

Número de secuencia

Los paquetes pueden llegar en un orden incorrecto, no llegar del todo, o llegar alterados. Para poder corregir estos problemas, el protocolo TCP numera los paquetes antes de enviarlos, de manera que sea posible volver a unirlos en el orden adecuado. Esto permite también solicitar el reenvío de los paquetes que no hayan llegado o que contengan errores, sin que sea necesario volver a enviar el mensaje completo.

Número de reconocimiento: contiene el número de secuencia del siguiente paquete TCP que se espera, reconociendo de esta forma implícitamente la recepción del mensaje anterior.

HLEN: longitud de la cabecera o encabezado (header length); indica al receptor la longitud de la cabecera para que el programa sepa dónde empieza el campo datos.

Bits de código: contiene bits SYN (de sincronización) para iniciar una conexión o bits FIN (Finalizar) para terminar una conexión.

Ventana: un computador puede enviar información demasiado rápido a un receptor, hasta llegar a un punto en que éste no pueda procesarla. En este campo se introduce un valor que indica la cantidad de información que el receptor está preparado para procesar. Si el valor llega a cero el emisor debe detenerse. A medida que la información es procesada, este valor aumenta, indicando disponibilidad para continuar recibiendo datos.


Formato del encabezado UDP

Imagen

Además de los números de puerta, los segmentos UDP sólo incluyen el tamaño del paquete y un campo de comprobación, que se utiliza para verificar la integridad de los datos. Si los datos llegan alterados al receptor, no solicita retransmisión.

La Capa de Red

Se encarga de encaminar los paquetes desde su origen a su destino, no se preocupa de los errores o de la pérdida de paquetes. A esta capa le corresponde traducir nombres de dominio a números IP, y buscar rutas a través de la red hasta el computador de destino. Las rutas pueden basarse en tablas estáticas o encaminarse dinámicamente en forma diferente para cada paquete. Otra tarea del nivel de red es evitar la congestión por exceso de paquetes en alguna rama de la subred. En Internet, define la estructura de dirección y ruta para conectar la máquina.

En la capa de red del protocolo TCP/IP se utiliza generalmente el Protocolo Internet, o IP. Existen 2 versiones en uso: la versión 4 (la más común, usada en Internet) y la versión 6 (en redes privadas o en forma experimental).

El datagrama es la unidad básica de datos en la capa de red del TCP/IP.

Imagen

Los datagramas IP son de longitud variable (decenas a miles de bytes).

Los campos del datagrama IP son:

  • VER: la versión de IP que utiliza la estación que originó el mensaje. La actual es 4. Este campo permite la coexistencia de diferentes versiones en una misma red.
  • HLEN: acrónimo de Header Length; este campo indica al receptor la longitud de la cabecera, con el fin de que la CPU sepa dónde empieza el campo datos.
  • Tipo de servicio: un código que indica al enrutador (router) cómo se debe manejar el paquete en términos de nivel de servicio (fiabilidad, precedencia, retraso, etc.).
  • Longitud: número total de bytes en el paquete.
  • ID: etiquetas y desplazamiento de las etiquetas. Estos campos indican cómo ensamblar un datagrama fragmentado.
  • TTL: acrónimo de Time To Live (tiempo de vida), un número que se decrementa cada vez que un paquete pasa por un nodo. Cuando el contador llega a cero, el paquete se desecha. El campo TTL evita que los paquetes perdidos deambulen eternamente por las redes.
  • Protocolo: el protocolo de transporte (TCP, UDP, etc.) que se debe utilizar para manejar el paquete.
  • Cabecera de comprobación: se utiliza para asegurar la integridad del mensaje.
  • Dirección IP de origen: dirección de 32 bits que originó el mensaje.
  • Dirección IP de destino: dirección de 32 bits del equipo al que se envía el mensaje.
  • Opciones IP: se utiliza para comprobar la red y para otros fines especiales.
  • Aislamiento: contiene bits de relleno para que la CPU pueda encontrar la primera posición del campo de datos.
  • Datos: la información efectiva que se está enviando.


Puerta: las puertas (o puertos) del protocolo TCP/IP proporcionan un mecanismo para distinguir entre las distintas transferencias que un mismo computador puede estar realizando simultáneamente. El protocolo TCP/IP admite algo más de 65.000 puertas diferentes.

Imagen

El programa del cliente utiliza números de puerta aleatorios, pero el servidor debe tener asignado un número estándar para que pueda ser contactado por el cliente. (Por ejemplo, en el caso del protocolo FTP el número de puerta oficial es el 21).

Un ejemplo, correspondiente a la descarga simultánea de 2 páginas web. El servidor de páginas web responde por medio de la puerta 80.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.