Intercambio de señales de tres vías en capa de transporte


TCP es un protocolo orientado a conexión. TCP requiere que se establezca una conexión antes de que
comience la transferencia de datos. Para que se establezca o inicialice una conexión, los dos hosts deben
sincronizar sus Números de secuencia iniciales (ISN: Initial Sequence Numbers). La sincronización se lleva
a cabo a través de un intercambio de segmentos que establecen la conexión al transportar un bit de control
denominado SYN (para la sincronización), y los ISN. Los segmentos que transportan el bit SYN también se
denominan “SYN”. Esta solución requiere un mecanismo adecuado para elegir un número de secuencia
inicial y un proceso levemente complicado para intercambiar los ISN.

La sincronización requiere que ambos lados envíen su propio número de secuencia inicial y que reciban una
confirmación del intercambio en un acuse de recibo (ACK) de la otra parte. Cada una de las partes también
debe recibir el INS de la otra parte y enviar un ACK de confirmación. La secuencia es la siguiente:

1. El origen (A) inicializa una conexión mandando un paquete de SYN hacia el host destino (B) indicando su INS = X:

A—>B SYN, seq de A = X

2. B recibe el paquete, graba que el seq de A = X, responde con un ACK de X + 1, e indica que su INS= Y. El ACK de X + 1 significa que el host B recibió todos los octetos incluyendo X y ahora espera X + 1 siguiente:
B—>A ACK, seq e A = X, SYN seq de B = Y, ACK = X + 1

3. A recibe el paquete de B, y sabe que el seq de B = Y, y responde con un ACK de Y + 1, el cual termina el proceso de conexión:
A—>B ACK, seq de B = Y, ACK = Y + 1

Este intercambio se denomina intercambio de señales de tres vías.

El intercambio de señales de tres vías es necesario dado que los números de secuencia no están conectados a ningún reloj global de la red y los protocolos TCP pueden tener distintos mecanismos para elegir el ISN. El receptor del primer SYN no tiene forma de saber si el segmento es un antiguo segmento demorado, a menos que recuerde el último número de secuencia utilizado en la conexión. No siempre es posible recordar ese número. Por lo tanto, debe solicitar al emisor que verifique este SYN.

Uso de ventanas

Los paquetes de datos se deben enviar al receptor en el mismo orden en los que se transmitieron para lograr una transferencia de datos confiable, orientada a conexión. Los protocolos fallan si algún paquete se pierde, se daña, se duplica o se recibe en un orden distinto. Una solución sencilla es que el receptor acuse recibo de cada paquete antes de que se envíe el siguiente paquete.

Si el emisor debe esperar recibir un acuse de recibo luego de enviar cada paquete, el rendimiento es lento. Por lo tanto, la mayoría de los protocolos confiables, orientados a conexión, permiten que haya más de un
paquete pendiente en la red a la vez. Como se dispone de tiempo después de que el emisor termina de transmitir el paquete de datos y antes de que el emisor termina de procesar cualquier acuse de recibo, este
rango se utiliza para transmitir más datos. El número de paquetes de datos que se permite que un emisor tenga pendientes sin haber recibido un acuse de recibo se denomina “ventana”.

TCP usa acuses de recibo expectante. Por “acuses de recibo expectante” se entiende que el número de acuse de recibo se refiere al siguiente paquete esperado. Por “uso de ventanas” se entiende que el tamaño de la ventana se negocia de forma dinámica durante la sesión TCP. El uso de ventanas es un mecanismo de control de flujo. El uso de ventanas requiere que el dispositivo origen reciba un acuse de recibo desde el destino después de transmitir una cantidad determinada de datos. El proceso del TCP receptor indica una
“ventana” para el TCP emisor. Esta ventana especifica la cantidad de paquetes, comenzando por el número de acuse de recibo, que el proceso TCP receptor actualmente está preparado para recibir.

Con una ventana de tamaño 3, el origen puede enviar 3 bytes al destino. El origen debe esperar entonces por un acuse de recibo (ACK). Si el destino recibe los 3 bytes, le manda un ACK al origen, el cual ahora ya puede enviar otros 3 bytes. Si el destino NO recibe los tres bytes, por que los buffers tienen un sobreflujo, entonces no manda un ACK. El origen al no recibir el ACK, sabe que tiene que retransmitir los mismos tres bytes que ya había enviado, y la razón de transmisión se decrementa.

Como se muestra en la Figura, el emisor envía tres paquetes antes de recibir un ACK (acuse de recibo). Si el receptor puede manejar un tamaño de ventana de sólo dos paquetes, la ventana descarta el paquete tres, especifica tres como el siguiente paquete y especifica un nuevo tamaño de ventana de dos. El emisor envía los dos siguientes paquetes, pero continúa especificando un tamaño de ventana de tres. Esto significa que el emisor continúa esperando recibir un acuse de recibo de tres paquetes de parte del receptor. El receptor responde solicitando el paquete cinco y especifica nuevamente un tamaño de ventana de dos.

Acuse de recibo

La entrega confiable garantiza que una corriente de datos enviada desde un dispositivo sea entregada a través de un enlace de datos a otro dispositivo sin que se dupliquen o pierdan los datos. El acuse de recibo
positivo con retransmisión es una técnica que garantiza la entrega confiable de los datos. El acuse de recibo
positivo requiere que el receptor se comunique con el origen, enviando un mensaje de acuse de recibo una vez que recibe los datos. El emisor mantiene un registro de cada paquete de datos (segmento TCP) que
envía y del que espera recibir un acuse de recibo. El emisor también inicia un temporizador cada vez que envía un segmento y retransmite el segmento si el temporizador expira antes de que llegue el acuse de recibo.

La figura muestra un emisor que transmite los paquetes de datos 1, 2 y 3. El receptor acusa recibo de los
paquetes solicitando el paquete 4. El emisor, al recibir el acuse de recibo, envía los paquetes 4, 5 y 6. Si el
paquete 5 no llega a su destino el receptor acusa recibo con una petición para reenviar el paquete 5. El emisor vuelve a enviar el paquete 5 y luego recibe el acuse de recibo antes de transmitir el paquete 7.

TCP suministra secuenciamiento de segmentos con un acuse positivo de recibo de referencia de envío. Cada segmento se ennumera antes de la transmisión. En la estación receptora, TCP reensambla los segmentos hasta formar un mensaje completo. Si falta un número de secuencia en la serie, el segmento se vuelve a transmitir. Los segmentos para los cuales no se acusa recibo dentro de un período determinado de tiempo darán como resultado una retransmisión.

Protocolo para el Control de la Transmisión (TCP)

El Protocolo para el control de la transmisión (TCP) es un protocolo de Capa 4 orientado a conexión que
suministra una transmisión de datos full-duplex confiable. TCP forma parte de la pila del protocolo TCP/IP. En un entorno orientado a conexión, se establece una conexión entre ambos extremos antes de que se pueda iniciar la transferencia de información. TCP es responsable por la división de los mensajes en segmentos, reensamblándolos en la estación destino, reenviando cualquier mensaje que no se haya recibido y reensamblando mensajes a partir de los segmentos. TCP suministra un circuito virtual entre las aplicaciones del usuario final.

Los protocolos que usan TCP incluyen:

– FTP (Protocolo de transferencia de archivos)

– HTTP (Protocolo de transferencia de hipertexto)

– SMTP (Protocolo simple de transferencia de correo)

– Telnet

Las siguientes son las definiciones de los campos de un segmento TCP:

– Puerto origen: El número del puerto que realiza la llamada.

– Puerto destino: El número del puerto al que se realiza la llamada.

– Número de secuencia: El número que se usa para asegurar el secuenciamiento correcto de los datos entrantes.

– Número de acuse de recibo: Siguiente octeto TCP esperado.

– HLEN: La cantidad de palabras de 32 bits del encabezado.

– Reservado: Establecido en cero.

– Bits de código: Funciones de control, como configuración y terminación de una sesión.

– Ventana: La cantidad de octetos que el emisor está dispuesto a aceptar.

– Checksum (suma de comprobación): Suma de comprobación calculada a partir de los campos del encabezado y de los datos.

– Indicador de mensaje urgente: Indica el final de la transmisión de datos urgentes.

– Opción: Una opción definida actualmente, tamaño máximo del segmento TCP.

– Datos: Datos de protocolo de capa superior.

Protocolo de Datagrama de Usuario (UDP)

El Protocolo de datagrama de usuario (UDP: User Datagram Protocol) es el protocolo de transporte no orientado a conexión de la pila de protocolo TCP/IP. El UDP es un protocolo simple que intercambia datagramas sin acuse de recibo ni garantía de entrega. El procesamiento de errores y la retransmisión deben ser manejados por protocolos de capa superior.

El UDP no usa ventanas ni acuses de recibo de modo que la confiabilidad, de ser necesario, se suministra a
través de protocolos de la capa de aplicación. El UDP está diseñado para aplicaciones que no necesitan ensamblar secuencias de segmentos.

Los protocolos que usan UDP incluyen:

– TFTP (Protocolo trivial de transferencia de archivos)

– (SNMP) Protocolo simple de administración de red

– DHCP (Protocolo de configuración dinámica del host)

– DNS (Sistema de denominación de dominios)

Las siguientes son las definiciones de los campos de un segmento UDP:

– Puerto origen: Número del puerto que realiza la llamada

– Puerto destino: Número del puerto al que se realiza la llamada

– Longitud: Número de bytes que se incluyen en el encabezado y los datos

– Checksum (suma de comprobación): Suma de comprobación calculada a partir de los campos del encabezado y de los datos.

– Datos: Datos de protocolo de capa superior.

Números de puerto TCP y UDP

Tanto TCP como UDP utilizan números de puerto (socket) para enviar información a las capas superiores. Los números de puerto se utilizan para mantener un registro de las distintas conversaciones que atraviesan la red al mismo tiempo.

Los programadores del software de aplicación han aceptado usar los números de puerto conocidos que emite la Agencia de Asignación de Números de Internet (IANA: Internet Assigned Numbers Authority). Cualquier conversación dirigida a la aplicación FTP usa los números de puerto estándar 20 y 21. El puerto 20 se usa para la parte de datos y el puerto 21 se usa para control. A las conversaciones que no involucran ninguna aplicación que tenga un número de puerto bien conocido, se les asignan números de puerto que se seleccionan de forma aleatoria dentro de un rango específico por encima de 1023. Algunos puertos son
reservados, tanto en TCP como en UDP, aunque es posible que algunas aplicaciones no estén diseñadas para admitirlos. Los números de puerto tienen los siguientes rangos asignados:

– Los números inferiores a 1024 corresponden a números de puerto bien conocidos.

– Los números superiores a 1024 son números de puerto asignados de forma dinámica.

– Los números de puerto registrados son aquellos números que están registrados para aplicaciones
específicas de proveedores. La mayoría de estos números son superiores a 1024.

Los sistemas finales utilizan números de puerto para seleccionar la aplicación adecuada. El host origen asigna de forma dinámica los números del puerto de origen. Estos números son siempre superiores a 1023.

Califica este Artículo
5 / 5 (1 votos)

Categoría: Conectividad y Redes.




Deja un comentario