CAPA DE TRANSPORTE
Introducción
Este trabajo se desenvolverá en el desarrollo de las capas de transporte y sus
distintas facetas, Las aplicaciones como clientes de correo electrónico,
exploradores web y clientes de mensajería instantánea permiten a la gente
utilizar las computadoras y las redes para enviar mensajes y encontrar
información. Los datos de cada una de estas aplicaciones se empaqueta, se
transporta y se entrega al dominio del servidor adecuado o a la aplicación en
el dispositivo de destino. Los procesos descritos en la capa de Transporte del
modelo OSI aceptan los datos de la capa de Aplicación y los preparan para
el direccionamiento en la capa de red. La capa de Transporte es responsable
de la transferencia de extremo a extremo general de los datos de aplicación.
CAPA DE TRANSPORTE
Transporte de Datos
Función de la capa de transporte.
La capa de transporte es responsable de establecer una sesión de
comunicación temporal entre dos aplicaciones y de transmitir datos entre
ellas. Una aplicación genera datos que se envían desde una aplicación en un
host de origen a una aplicación en un host de destino. Este es,
independientemente del tipo de host destino, el tipo de medios a través de
los cuales deben viajar los datos, la ruta seguida por los datos, la congestión
en un enlace o el tamaño de la red. Como se muestra en la ilustración, la
capa de transporte es el enlace entre la capa de aplicación y las capas
inferiores que son responsables de la transmisión a través de la red.
La capa de transporte no tiene conocimiento del tipo de host de destino, el
tipo de medio por el que deben viajar los datos, la ruta tomada por los datos,
la congestión en un enlace o el tamaño de la red.
La capa de transporte incluye dos protocolos:
Protocolo de Control de Transmisión (TCP)
Protocolo de Datagramas de Usuario (UDP)
Protocolo de Control de Transmisión (TCP)
IP solo se refiere a la estructura, direccionamiento y enrutamiento de
paquetes, desde el remitente original hasta el destino final. IP no es
responsable de garantizar la entrega o determinar si es necesario establecer
CAPA DE TRANSPORTE
una conexión entre el remitente y el receptor. El TCP se considera un
protocolo de la capa de transporte confiable y completo, que garantiza que
todos los datos lleguen al destino. TCP incluye campos que garantizan la
entrega de los datos de la aplicación. Estos campos requieren un
procesamiento adicional por parte de los hosts de envío y recepción.
La función del protocolo de transporte TCP es similar al envío de paquetes
de los que se hace un rastreo de origen a destino. Si se divide un pedido de
envío en varios paquetes, un cliente puede verificar en línea para ver el
orden de la entrega. TCP proporciona confiabilidad y control de flujo
mediante estas operaciones básicas:
• Enumerar y rastrear segmentos de datos transmitidos a un host
específico desde una aplicación específica
• Confirmar datos recibidos
• Retransmitir cualquier información no reconocida después de un
cierto período de tiempo
• Secuenciar datos que pueden llegar en un orden incorrecto
• Enviar datos a una velocidad eficiente que sea aceptable por el
receptor
Para mantener el estado de una conversación y realizar un seguimiento de la
información, TCP debe establecer primero una conexión entre el remitente y
el receptor. Es por eso que TCP se conoce como un protocolo orientado a la
conexión.
CAPA DE TRANSPORTE
Protocolo de Datagramas de Usuario (UDP)
UDP es un protocolo de capa de transporte más simple que TCP. No
proporciona confiabilidad y control de flujo, lo que significa que requiere
menos campos de encabezado. Debido a que los procesos UDP remitente y
receptor no tienen que administrar la confiabilidad y el control de flujo, esto
significa que los datagramas UDP se pueden procesar más rápido que los
segmentos TCP. El UDP proporciona las funciones básicas para entregar
segmentos de datos entre las aplicaciones adecuadas, con muy poca
sobrecarga y revisión de datos.
UDP es un protocolo sin conexión. Debido a que UDP no proporciona
fiabilidad ni control de flujo, no requiere una conexión establecida. Debido a
que UDP no realiza un seguimiento de la información enviada o recibida
entre el cliente y el servidor, UDP también se conoce como protocolo sin
estado. UDP también se conoce como un protocolo de entrega de mejor
esfuerzo porque no hay reconocimiento de que los datos se reciben en el
destino. Con UDP, no existen procesos de capa de transporte que informen
al emisor si la entrega se realizó correctamente.
UDP es como colocar una carta regular, no registrada, en el correo. El
emisor de la carta no conoce la disponibilidad del receptor para recibir la
carta. Además, la oficina de correos tampoco es responsable de hacer un
rastreo de la carta ni de informar al emisor si esta no llega a destino.
CAPA DE TRANSPORTE
Descripción General de TCP
Características de TCP
Para comprender las diferencias entre TCP y UDP, es importante
comprender cómo cada protocolo implementa funciones de confiabilidad
específicas y cómo cada protocolo rastrea las conversaciones. Además de
admitir las funciones básicas de segmentación y reensamblado de datos,
TCP también proporciona los siguientes servicios:
• Establece una sesión - TCP es un protocolo orientado a la conexión
que negocia y establece una conexión permanente (o sesión) entre
los dispositivos de origen y destino antes de reenviar cualquier
tráfico. Mediante el establecimiento de sesión, los dispositivos
negocian la cantidad de tráfico que se puede reenviar en un
momento determinado, y los datos que se comunican entre ambos se
pueden administrar detenidamente.
• Garantiza una entrega confiable - por muchas razones, es posible
que un segmento se corrompa o se pierda por completo, ya que se
transmite a través de la red. TCP asegura que cada segmento que
envía la fuente llega al destino.
• Proporciona entrega en el mismo pedido - Debido a que las redes
pueden proporcionar múltiples rutas que pueden tener diferentes
velocidades de transmisión, los datos pueden llegar en el orden
incorrecto. Al numerar y secuenciar los segmentos, TCP garantiza
que los segmentos se vuelvan a ensamblar en el orden correcto.
CAPA DE TRANSPORTE
• Admite control de flujo - los hosts de red tienen recursos limitados
(es decir, memoria y potencia de procesamiento). Cuando TCP
advierte que estos recursos están sobrecargados, puede solicitar que
la aplicación emisora reduzca la velocidad del flujo de datos. Esto lo
lleva a un cabo TCP, que regula la cantidad de datos que transmite el
origen. El control de flujo puede evitar la necesidad de retransmitir
los datos cuando los recursos del host receptor se ven desbordados.
Encabezado TCP
TCP es un protocolo con estado, lo que significa que realiza un seguimiento
del estado de la sesión de comunicación. Para hacer un seguimiento del
estado de una sesión, TCP registra qué información se envió y qué
información se reconoció. La sesión con estado comienza con el
establecimiento de la sesión y termina con la finalización de la sesión. Un
segmento TCP agrega 20 bytes (es decir, 160 bits) de sobrecarga al
encapsular los datos de la capa de aplicación. La figura muestra los campos
en un encabezado TCP.
Campos de Encabezado TCP
CAPA DE TRANSPORTE
Aplicaciones que utilizan TCP
TCP es un buen ejemplo de cómo las diferentes capas del conjunto de
protocolos TCP / IP tienen roles específicos. TCP maneja todas las tareas
asociadas con la división del flujo de datos en segmentos, proporcionando
confiabilidad, controlando el flujo de datos y reordenando segmentos. TCP
libera la aplicación de tener que administrar estas tareas. Las aplicaciones,
como las que se muestran en la figura, simplemente puede enviar el flujo de
datos a la capa de transporte y utilizar los servicios de TCP.
CAPA DE TRANSPORTE
Descripción General de UDP
Características de UDP
Este tema abarcará UDP, lo que hace y cuándo es una buena idea usarlo en
lugar de TCP. UDP es un protocolo de transporte del mejor esfuerzo. UDP
es un protocolo de transporte liviano que ofrece la misma segmentación y
rearmado de datos que TCP, pero sin la confiabilidad y el control del flujo
de TCP. UDP es un protocolo tan simple que, por lo general, se lo describe
en términos de lo que no hace en comparación con TCP.
Las características UDP incluyen lo siguiente:
• Los datos se reconstruyen en el orden en que se recibieron.
• Los segmentos perdidos no se vuelven a enviar.
• No hay establecimiento de sesión.
• El envío no está informado sobre la disponibilidad de recursos.
Encabezado UDP
UDP es un protocolo sin estado, lo que significa que ni el cliente ni el
servidor rastrean el estado de la sesión de comunicación. Si se requiere
confiabilidad al utilizar UDP como protocolo de transporte, a esta la debe
administrar la aplicación. Uno de los requisitos más importantes para
transmitir video en vivo y voz a través de la red es que los datos fluyan
rápidamente. Las aplicaciones de video y de voz en vivo pueden tolerar
CAPA DE TRANSPORTE
cierta pérdida de datos con un efecto mínimo o imperceptible, y se adaptan
perfectamente a UDP.
Los bloques de comunicación en UDP se denominan datagramas o
segmentos. Estos datagramas se envían como el mejor esfuerzo por el
protocolo de la capa de transporte. El encabezado UDP es mucho más
simple que el encabezado TCP porque solo tiene cuatro campos y requiere 8
bytes (es decir, 64 bits). La figura muestra los campos en un encabezado
TCP.
Campos de Encabezado UDP
Aplicaciones que utilizan UDP
Aunque DNS y SNMP utilizan UDP de manera predeterminada, ambos
también pueden utilizar TCP. DNS utilizará TCP si la solicitud de DNS o la
respuesta de DNS son más de 512 bytes, como cuando una respuesta de
DNS incluye muchas resoluciones de nombre. Del mismo modo, en algunas
situaciones, el administrador de redes puede querer configurar SNMP para
utilizar TCP. Existen tres tipos de aplicaciones que son las más adecuadas
para UDP:
• Aplicaciones de video y multimedia en vivo: - estas aplicaciones
pueden tolerar cierta pérdida de datos, pero requieren poco o ningún
CAPA DE TRANSPORTE
retraso. Los ejemplos incluyen VoIP y la transmisión de video en
vivo.
• Solicitudes simples de solicitud y respuesta: - aplicaciones con
transacciones simples en las que un host envía una solicitud y puede
o no recibir una respuesta. Los ejemplos incluyen DNS y DHCP.
• Aplicaciones que manejan la confiabilidad por sí mismas: -
comunicaciones unidireccionales donde el control de flujo, la
detección de errores, los reconocimientos y la recuperación de
errores no son necesarios o la aplicación puede manejarlos. Los
ejemplos incluyen SNMP y TFTP.
Números de Puerto
Comunicaciones Múltiples Separadas
Los protocolos de capa de transporte TCP y UDP utilizan números de puerto
para administrar múltiples conversaciones simultáneas. Como se muestra en
la figura, los campos de encabezado TCP y UDP identifican un número de
CAPA DE TRANSPORTE
puerto de aplicación de origen y destino. El número de puerto de origen está
asociado con la aplicación de origen en el host local, mientras que el número
de puerto de destino está asociado con la aplicación de destino en el host
remoto.
Por ejemplo, supongamos que un host está iniciando una solicitud de página
web desde un servidor web. Cuando el host inicia la solicitud de página
web, el host genera dinámicamente el número de puerto de origen para
identificar de forma exclusiva la conversación. Cada solicitud generada por
un host utilizará un número de puerto de origen creado dinámicamente
diferente. Este proceso permite establecer varias conversaciones
simultáneamente. En la solicitud, el número de puerto de destino es lo que
identifica el tipo de servicio que se solicita del servidor web de destino. Por
ejemplo, cuando un cliente especifica el puerto 80 en el puerto de destino, el
servidor que recibe el mensaje sabe que se solicitan servicios web. Un
servidor puede ofrecer más de un servicio simultáneamente, como servicios
web en el puerto 80, mientras que ofrece el establecimiento de conexión de
Protocolo de transferencia de archivos (FTP) en el puerto 21.
Pares de Sockets
Los puertos de origen y de destino se colocan dentro del segmento. Los
segmentos se encapsulan dentro de un paquete IP. El paquete IP contiene la
dirección IP de origen y de destino. Se conoce como socket a la
combinación de la dirección IP de origen y el número de puerto de origen, o
de la dirección IP de destino y el número de puerto de destino.
En el ejemplo, la solicitud FTP generada por el PC incluye las direcciones
MAC de Capa 2 y las direcciones IP de Capa 3. La solicitud también
identifica el puerto de origen 1305 (es decir, generado dinámicamente por el
host) y el puerto de destino, identificando los servicios FTP en el puerto 21.
El host también ha solicitado una página web del servidor utilizando las
mismas direcciones de Capa 2 y Capa 3. Sin embargo, está utilizando el
número de puerto de origen 1099 (es decir, generado dinámicamente por el
host) y el puerto de destino que identifica el servicio web en el puerto 80.
CAPA DE TRANSPORTE
El socket se utiliza para identificar el servidor y el servicio que solicita el
cliente. Un socket de cliente puede ser parecido a esto, donde 1099
representa el número de puerto de origen: 192.168.1.5:1099 El socket en un
servidor web puede ser 192.168.1.7:80 . Juntos, estos dos sockets se
combinan para formar un par de zócalos: 192.168.1.5:1099, 192.168.1.7:80
Los sockets permiten que los diversos procesos que se ejecutan en un cliente
se distingan entre sí. También permiten la diferenciación de diferentes
conexiones a un proceso de servidor. El número de puerto de origen actúa
como dirección de retorno para la aplicación que realiza la solicitud. La capa
de transporte hace un seguimiento de este puerto y de la aplicación que
generó la solicitud de manera que cuando se devuelva una respuesta, esta se
envíe a la aplicación correcta.
Grupos de números de puerto
La Autoridad de Números Asignados de Internet (IANA) es la organización
de estándares responsable de asignar varios estándares de direccionamiento,
incluidos los números de puerto de 16 bits. Los 16 bits utilizados para
identificar los números de puerto de origen y destino proporcionan un rango
de puertos entre 0 y 65535.
CAPA DE TRANSPORTE
El comando netstat
Las conexiones TCP no descritas pueden representar una importante
amenaza a la seguridad. Pueden indicar que algo o alguien está conectado al
host local. A veces es necesario conocer las conexiones TCP activas que
están abiertas y en ejecución en el host de red. Netstat es una utilidad de red
importante que puede usarse para verificar esas conexiones. Como se
muestra a continuación, ingrese el comando netstat Como se muestra a
continuación, ingrese el comando para enumerar los protocolos en uso, la
dirección local y los números de puerto, la dirección extranjera y los
números de puerto y el estado de la conexión. De manera predeterminada, el
netstat comando intentará resolver las direcciones IP para nombres de
dominio y números de puerto para aplicaciones conocidas. La -n opción se
puede usar para mostrar las direcciones IP y los números de puerto en su
forma numérica.
CAPA DE TRANSPORTE
Proceso de Comunicación TCP
Procesos del servidor TCP.
Cada proceso de aplicación que se ejecuta en el servidor está configurado
para utilizar un número de puerto, ya sea predeterminado o de forma
manual, por el administrador del sistema. Un servidor individual no puede
tener dos servicios asignados al mismo número de puerto dentro de los
mismos servicios de la capa de transporte.
Por ejemplo, un host que ejecuta una aplicación de servidor web y una de
transferencia de archivos no puede configurar ambas para utilizar el mismo
puerto (por ejemplo, el puerto TCP 80). Una aplicación de servidor activa
asignada a un puerto específico se considera abierta, lo que significa que la
capa de transporte acepta y procesa los segmentos dirigidos a ese puerto.
Toda solicitud entrante de un cliente direccionada al socket correcto es
aceptada y los datos se envían a la aplicación del servidor. Pueden existir
varios puertos abiertos simultáneamente en un servidor, uno para cada
aplicación de servidor activa.
CAPA DE TRANSPORTE
CAPA DE TRANSPORTE
CAPA DE TRANSPORTE
Establecimiento de Conexiones TCP
En algunas culturas, cuando dos personas se conocen, generalmente se
saludan dándose la mano. Ambas partes entienden el acto de estrechar la
mano como una señal de saludo amistoso. Las conexiones en la red son
similares. En las conexiones TCP, el cliente host establece la conexión con
el servidor mediante el proceso de enlace de tres vías.
Una conexión TCP se establece en tres pasos:
Paso 1: el cliente de origen solicita una sesión de comunicación de cliente a
servidor con el servidor.
Paso 2: el servidor reconoce la sesión de comunicación de cliente a servidor
y solicita una sesión de comunicación de servidor a cliente.
Paso 3: el cliente de origen reconoce la sesión de comunicación de servidor
a cliente.
CAPA DE TRANSPORTE
Confiabilidad y Control de Flujo
Fiabilidad de TCP: Entrega Garantizada y Ordenada
La razón por la que TCP es el mejor protocolo para algunas aplicaciones es
porque, a diferencia de UDP, reenvía paquetes descartados y paquetes
numerados para indicar su orden correcto antes de la entrega. TCP también
puede ayudar a mantener el flujo de paquetes para que los dispositivos no se
sobrecarguen. En este tema se tratan detalladamente estas características de
TCP. Puede haber momentos en que los segmentos TCP no llegan a su
CAPA DE TRANSPORTE
destino. Otras veces, los segmentos TCP podrían llegar fuera de servicio.
Para que el receptor comprenda el mensaje original, los datos en estos
segmentos se vuelven a ensamblar en el orden original. Para lograr esto, se
asignan números de secuencia en el encabezado de cada paquete. El número
de secuencia representa el primer byte de datos del segmento TCP.
Durante la configuración de la sesión, se establece un número de secuencia
inicial (ISN). Este ISN representa el valor inicial de los bytes que se
transmiten a la aplicación receptora. A medida que se transmiten los datos
durante la sesión, el número de secuencia se incrementa según el número de
bytes que se han transmitido. Este seguimiento de bytes de datos permite
identificar y reconocer cada segmento de manera exclusiva. A partir de esto,
se pueden identificar segmentos perdidos. El ISN no comienza en uno, pero
es efectivamente un número aleatorio. Esto permite evitar ciertos tipos de
ataques maliciosos. Para mayor simplicidad, usaremos un ISN de 1 para los
ejemplos de este capítulo.
Fiabilidad de TCP: Pérdida y Retransmisión de Datos
No importa cuán bien diseñada esté una red, ocasionalmente se produce la
pérdida de datos. TCP proporciona métodos para administrar la pérdida de
segmentos. Entre estos está un mecanismo para retransmitir segmentos para
los datos sin reconocimiento. El número de secuencia (SEQ) y el número de
acuse de recibo (ACK) se utilizan juntos para confirmar la recepción de los
bytes de datos contenidos en los segmentos transmitidos. El número SEQ
CAPA DE TRANSPORTE
identifica el primer byte de datos en el segmento que se transmite. TCP
utiliza el número de ACK reenviado al origen para indicar el próximo byte
que el receptor espera recibir. Esto se llama acuse de recibo de expectativa.
Antes de mejoras posteriores, TCP solo podía reconocer el siguiente byte
esperado. Por ejemplo, en la figura, utilizando números de segmento para
simplificar, el host A envía los segmentos del 1 al 10 al host B. Si llegan
todos los segmentos excepto los segmentos 3 y 4, el host B respondería con
acuse de recibo especificando que el siguiente segmento esperado es el
segmento 3. El host A no tiene idea de si algún otro segmento llegó o no.
Por lo tanto, el host A reenviaría los segmentos 3 a 10. Si todos los
segmentos de reenvío llegan correctamente, los segmentos 5 a 10 serían
duplicados.
Esto puede provocar retrasos, congestión e ineficiencias.
Los sistemas operativos actualmente suelen emplear una característica TCP
opcional llamada reconocimiento selectivo (SACK), negociada durante el
protocolo de enlace de tres vías. Si ambos hosts admiten SACK, el receptor
puede reconocer explícitamente qué segmentos (bytes) se recibieron,
incluidos los segmentos discontinuos. Por lo tanto, el host emisor solo
necesitaría retransmitir los datos faltantes. Por ejemplo, en la siguiente
figura, utilizando de nuevo números de segmento para simplificar, el host A
envía los segmentos 1 a 10 al host B. Si llegan todos los segmentos excepto
los segmentos 3 y 4, el host B puede reconocer que ha recibido los
segmentos 1 y 2 (ACK 3) y reconocer selectivamente los segmentos 5 a 10
(SACK 5-10). El host A solo necesitaría reenviar los segmentos 3 y 4.
CAPA DE TRANSPORTE
Control de Flujo de TCP: Tamaño de la Ventana y Reconocimientos
TCP también proporciona mecanismos para el control de flujo. El control de
flujo es la cantidad de datos que el destino puede recibir y procesar de
manera confiable. El control de flujo permite mantener la confiabilidad de la
transmisión de TCP mediante el ajuste de la velocidad del flujo de datos
entre el origen y el destino para una sesión dada. Para lograr esto, el
encabezado TCP incluye un campo de 16 bits llamado “tamaño de la
ventana”.
Ejemplo de tamaño de ventana de TCP
CAPA DE TRANSPORTE
Comunicación UDP
Comparación de baja sobrecarga y confiabilidad de UDP
Como se explicó anteriormente, UDP es perfecto para comunicaciones que
necesitan ser rápidas, como VoIP. Este tema explica en detalle por qué UDP
es perfecto para algunos tipos de transmisiones. Como se muestra en la
figura, UDP no establece una conexión. UDP suministra transporte de datos
con baja sobrecarga debido a que posee un encabezado de datagrama
pequeño sin tráfico de administración de red.
CAPA DE TRANSPORTE
Reensamblaje de datagramas de UDP
Tal como los segmentos con TCP, cuando se envían datagramas UDP a un
destino, a menudo toman diferentes rutas y llegan en el orden equivocado.
UDP no realiza un seguimiento de los números de secuencia de la manera en
que lo hace TCP. UDP no tiene forma de reordenar datagramas en el orden
en que se transmiten, como se muestra en la ilustración. Por lo tanto, UDP
simplemente reensambla los datos en el orden en que se recibieron y los
envía a la aplicación. Si la secuencia de datos es importante para la
aplicación, esta debe identificar la secuencia adecuada y determinar cómo se
deben procesar los datos.
UDP: sin conexión y poco confiable
Procesos y solicitudes del servidor UDP
Al igual que las aplicaciones basadas en TCP, a las aplicaciones de servidor
basadas en UDP se les asignan números de puerto conocidos o registrados,
como se muestra en la figura. Cuando estas aplicaciones o estos procesos se
ejecutan en un servidor, aceptan los datos que coinciden con el número de
puerto asignado. Cuando UDP recibe un datagrama destinado a uno de esos
puertos, envía los datos de aplicación a la aplicación adecuada en base a su
número de puerto.
CAPA DE TRANSPORTE
Servidor UDP a la escucha de solicitudes
Conclusión
En este trabajo se desarrollaron las cada capa de transporte de red, la capa
de transporte es responsable de establecer una sesión de comunicación
temporal entre dos aplicaciones y de transmitir datos entre ellas. Una
aplicación genera datos que se envían desde una aplicación en un host de
origen a una aplicación en un host de destino. UDP es un protocolo de capa
de transporte más simple que TCP. No proporciona confiabilidad y control
de flujo, lo que significa que requiere menos campos de encabezado.