Fundamentos de TCP/IP: Control de Flujo, Modelo Cliente-Servidor y QoS

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 6,42 KB

Control de Flujo y Fiabilidad en la Transmisión de Datos

Para garantizar una comunicación fiable y eficiente en las redes de computadoras, se emplean diversos mecanismos de control de flujo y errores. A continuación, se describen dos enfoques fundamentales: el protocolo PAR y la técnica de ventana deslizante.

Protocolo PAR (Positive Acknowledgment with Retransmission)

Este protocolo, también conocido como Stop-and-Wait ARQ, se basa en un principio simple: se inicializa un temporizador y se espera una confirmación (ACK) antes de enviar un nuevo paquete. Si no se recibe dicha confirmación antes de que el temporizador expire, el origen asume que el paquete se ha perdido y lo retransmite. La principal desventaja del uso de PAR es su uso ineficiente del ancho de banda, ya que se debe esperar la confirmación para cada paquete enviado y solo se puede tener un paquete en tránsito a la vez.

Ventana Deslizante

La técnica de ventana deslizante permite un uso mucho más eficiente del ancho de banda al permitir que múltiples paquetes estén en tránsito simultáneamente. Sus características clave son:

  • Tamaño de la ventana: Determina la cantidad de datos (medida en bytes o segmentos) que se pueden transmitir antes de necesitar una confirmación del destino. A mayor tamaño de ventana, mayor cantidad de datos se pueden enviar sin esperar.
  • Acuses de recibo (ACK): El protocolo TCP utiliza acuses de recibo de expectativa, lo que significa que el número de confirmación se refiere al siguiente octeto que el receptor espera recibir.
  • Naturaleza "deslizante": El término se refiere a que el tamaño de la ventana se negocia y ajusta de forma dinámica durante la sesión TCP, adaptándose a las condiciones de la red.

El uso de ventanas es un mecanismo de control de flujo. Si el origen no recibe un acuse de recibo por los datos enviados, asume que los octetos deben retransmitirse y, a menudo, reduce la velocidad de transmisión (es decir, el tamaño de la ventana) para evitar la congestión.

Adicionalmente, TCP proporciona secuenciamiento de segmentos. Cada datagrama se numera antes de su transmisión. En el host de destino, TCP reensambla los segmentos en el orden correcto para formar el mensaje completo. Si falta algún número de secuencia en la serie, ese segmento específico se solicita y se vuelve a transmitir.

El Modelo Cliente-Servidor

La arquitectura cliente-servidor es el pilar de la mayoría de las aplicaciones de red modernas. Se basa en la cooperación de un grupo de procesos distribuidos.

Conceptos Básicos

  • Servidores: Son procesos que proveen servicios y gestionan recursos. Generalmente son pasivos, esperando solicitudes de los clientes. Ejemplos típicos incluyen servidores web (HTTP), de correo electrónico (SMTP/IMAP) o de archivos (FTP).
  • Clientes: Son procesos que requieren servicios para lograr sus objetivos. Son activos, ya que inician la comunicación efectuando requerimientos al servidor y esperando una respuesta.
  • Tanto clientes como servidores son considerados procesos de usuario.

Distribución de Procesos y Procesadores

En esta arquitectura, los procesos se distribuyen en diferentes máquinas (procesadores). Una configuración de red puede incluir:

  • Un único servidor y múltiples clientes.
  • Múltiples servidores y múltiples clientes.
  • Máquinas que actúan como cliente y servidor simultáneamente (arquitecturas híbridas o peer-to-peer).

La Transacción Cliente-Servidor

La operación fundamental en este modelo es la transacción, que sigue una secuencia de pasos bien definida:

  1. El cliente necesita un servicio y envía un mensaje de solicitud al servidor.
  2. El servidor recibe la solicitud, la interpreta y manipula sus recursos de la forma apropiada.
  3. El servidor envía de vuelta un mensaje de respuesta, que puede contener el resultado solicitado o un código de error.
  4. El cliente recibe y procesa la respuesta.

Este protocolo de solicitud-respuesta es simple y eficiente. La propia respuesta del servidor sirve implícitamente como una confirmación (ACK) de que la solicitud fue recibida.

Sockets: La Interfaz de Comunicación

Un socket es un punto final de comunicación, una conexión virtual que permite que dos procesos se comuniquen a través de una red. Son la base para la programación de red en el modelo cliente-servidor.

  • Proporcionan una transmisión bidireccional (full-duplex).
  • Pueden ser creados de forma dinámica por las aplicaciones.
  • La interfaz de sockets fue desarrollada originalmente en la Universidad de Berkeley a principios de los años 80.
  • Hoy en día, los sockets son la herramienta de comunicación más utilizada en aplicaciones de Internet, siendo fundamentales para el funcionamiento de la suite de protocolos TCP/IP.

Para la comunicación básica, se utilizan rutinas como send(destino, mensaje) y receive(origen, mensaje), aunque existen muchas variaciones posibles.

Calidad de Servicio (QoS) en Redes

El secreto para lograr una experiencia de aplicación de alta calidad de extremo a extremo es garantizar la Calidad de Servicio (QoS) necesaria. Esto implica administrar activamente parámetros clave de la red, como la pérdida de paquetes, el retardo (latencia) y la variación del retardo (jitter).

Asegurar la QoS requiere un conjunto de técnicas para gestionar la utilización de los recursos de la red de manera inteligente y priorizada.

Clasificación del Tráfico

Idealmente, se asignaría una prioridad exacta para cada tipo de comunicación. Sin embargo, en la práctica, esto no es factible. Por lo tanto, un enfoque común es clasificar las aplicaciones en categorías según sus requisitos específicos de calidad de servicio. Por ejemplo, el tráfico de voz sobre IP (VoIP) es muy sensible al retardo, mientras que la transferencia de archivos es más sensible a la pérdida de paquetes pero tolera mayores retardos.

Entradas relacionadas: