n protocolo simple, sin conexión, descrito en la RFC 768. Cuenta con la
ventaja de proveer la entrega de datos sin utilizar muchos recursos. Las
porciones de comunicación en UDP se llaman datagramas. Este protocolo de la
capa de Transporte envía estos datagramas como "mejor intento".
Entre las aplicaciones que utilizan UDP se incluyen:
sistema de nombres de dominios (DNS),
streaming de vídeo, y
Voz sobre IP (VoIP).
Protocolo de control de transmisión (TCP)
TCP es un protocolo orientado a la conexión, descrito en la RFC 793.
TCP incurre en el uso adicional de recursos para agregar funciones. Las
funciones adicionales especificadas por TCP están en el mismo orden de
entrega, son de entrega confiable y de control de flujo. Cada segmento
de TCP posee 20 bytes de carga en el encabezado, que encapsulan los
datos de la capa de Aplicación, mientras que cada segmento UDP sólo
posee 8 bytes de carga.
exploradores Web,
e-mail, y
transferencia de archivos
4.1.5 Direccionamiento del puerto
Identificación de las conversaciones
Los servicios basados en TCP y UDP mantienen un seguimiento de las
varias aplicaciones que se comunican. Para diferenciar los segmentos y
datagramas para cada aplicación, tanto TCP como UDP cuentan con
campos de
encabezado que pueden identificar de manera exclusiva estas
aplicaciones. Estos identificadores únicos son los
números de los puertos.
En el encabezado de cada segmento o datagrama hay un puerto de origen
y destino. El número de puerto de origen es el número para esta
comunicación asociado con la aplicación que origina la comunicación en el
host local. El número de puerto de destino es el número para esta
comunicación asociado con la aplicación de destino en el host remoto.
Los números de puerto se asignan de varias maneras, en función de si el
mensaje es una solicitud o una respuesta. Mientras que los procesos en el
servidor poseen números de puertos estáticos asignados a ellos, los
clientes eligen un número de puerto de forma dinámica para cada
conversación.
Cuando una aplicación de cliente envía una solicitud a una aplicación
de servidor, el puerto de destino contenido en el encabezado es el
número de puerto que se asigna al daemon de servicio que se ejecuta
en el host remoto. El software del cliente debe conocer el número de
puerto asociado con el proceso del servidor en el host remoto. Este
número de puerto de destino se puede configurar, ya sea de forma
predeterminada o manual.
Por ejemplo, cuando una aplicación de explorador Web realiza una
solicitud a un servidor Web, el explorador utiliza TCP y el número de
puerto 80 a menos que se especifique otro valor. Esto sucede porque
el puerto TCP 80 es el puerto predeterminado asignado a aplicaciones
de servidores Web. Muchas aplicaciones comunes tienen asignados
puertos predeterminados.
La Autoridad de números asignados de Internet (IANA) asigna números de puerto. IANA es un
organismo de estándares responsable de la asignación de varias normas de direccionamiento.
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.
Netstat indica el protocolo en uso, la dirección y el número de puerto locales, la dirección y el
número de puerto ajenos y el estado de la conexión.
Las conexiones TCP no descritas pueden representar una importante amenaza a la
seguridad. Esto se debe a que pueden indicar que algo o alguien está conectado al host local.
Además, las conexiones TCP innecesarias pueden consumir recursos valiosos del sistema y
por lo tanto disminuir el rendimiento del host. Netstat debe utilizarse para determinar las
conexiones abiertas de un host cuando el rendimiento parece estar comprometido.
Existen muchas opciones útiles para el comando netstat.
4.1.6 Segmentación y reensamblaje: Divide y vencerás
Algunas aplicaciones transmiten grandes cantidades de datos; en
algunos casos, varios gigabytes. Resultaría poco práctico enviar todos
estos datos en una sola gran sección. No puede transmitirse ningún
otro tráfico de red mientras se envían estos datos. Una gran sección
de datos puede tardar minutos y hasta horas en enviarse. Además, si
hubiera algún error, el archivo de datos completo se perdería o
tendría que ser reenviado. Los dispositivos de red no cuentan con
buffers de memoria lo suficientemente grandes como para almacenar
esa cantidad de datos durante la transmisión o recepción. El límite
varía en función de la tecnología de la red y del medio físico específico
que se utiliza.
Dividir los datos de aplicación en secciones garantiza que los datos
se transmitan dentro de los límites del
medio y que los datos de distintas aplicaciones puedan ser
multiplexados en el medio.
TCP y UDP gestionan la segmentación de forma distinta.
Con TCP, cada encabezado de segmento contiene un número de secuencia. Este
número de secuencia permite que las funciones de la capa de Transporte del host de
destino reensamblen los segmentos en el mismo orden en el que fueron transmitidos.
Esto asegura que la aplicación de destino cuente con los datos en la forma exacta en la
que se enviaron.
A pesar de que los servicios que utilizan UDP también rastrean las conversaciones
entre aplicaciones, no tienen en cuenta el orden en el que se transmitió la
información ni el mantenimiento de la conexión. No existe número de secuencia en el
encabezado UDP. UDP es un diseño simple y genera menos carga que TCP, lo que
produce una transferencia de datos más rápida.
4.2 Protocolo TCP: Comunicación con confiabilidad
4.2.1 TCP: Como generar conversaciones confiables
La diferencia clave entre TCP y UDP es la confiabilidad
La confiabilidad de la comunicación TCP se lleva a cabo utilizando
sesiones orientadas a la conexión. Antes de que un host que
utiliza TCP envíe datos a otro host, la capa de Transporte inicia un
proceso para crear una conexión con el destino. Esta conexión
permite el rastreo de una sesión o stream de comunicación entre
los hosts. Este proceso asegura que cada host tenga
conocimiento de la comunicación y se prepare. Una conversación
TCP completa requiere el establecimiento de una sesión entre los
hosts en ambas direcciones.
Luego de establecida la sesión, el destino envía acuses de recibo al
origen por los segmentos que recibe. Estos acuses de recibo
forman la base de la confiabilidad dentro de la sesión TCP.
Cuando el origen recibe un acuse de recibo, reconoce que los
datos se han entregado con éxito y puede dejar de rastrearlos. Si
el origen no recibe el acuse de recibo dentro de un tiempo
predeterminado, retransmite esos datos al destino.
También existen cargas adicionales en los hosts individuales,
generadas por la necesidad de mantener un seguimiento de los
segmentos que esperan acuse de recibo y por el proceso de
retransmisión.
Esta confiabilidad se logra contando con campos en el segmento
TCP, cada uno con una función específica, como se muestra en la
figura.
4.2.2 Procesos del servidor TCP
Cada proceso de aplicación que se ejecuta en el servidor es
configurado por el administrador del sistema para utilizar un
número de puerto, de forma predeterminada o manual. 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. 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 8.080). Cuando una aplicación de servidor activa se
asigna a un puerto específico, este puerto se considera "abierto"
para el servidor. Esto significa que la capa de Transporte acepta
y procesa segmentos direccionados 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 simultáneos abiertos en un
servidor, uno para cada aplicación de servidor activa. Es común
que un servidor provea más de un servicio, como un servidor
Web y un servidor FTP, al mismo tiempo.
La figura muestra la asignación típica de puertos de origen y destino en
operaciones de cliente o servidor TCP.
4.2.3 Establecimiento y finalización de la
conexión TCP
Cuando dos hosts se comunican utilizando TCP, se establece una
conexión antes de que puedan intercambiarse los datos. Luego de que se
completa la comunicación, se cierran las sesiones y la conexión finaliza.
Los mecanismos de conexión y de sesión habilitan la función de
confiabilidad de TCP. El host rastrea cada segmento de datos dentro de
una sesión e intercambia información sobre los datos recibidos porcada
host a través de la información del encabezado TCP.
Cada conexión representa dos streams de comunicación de una vía o
sesiones. Para establecer la conexión los hosts realizan un intercambio de
señales de tres vías. Los bits de control en el encabezado TCP indican el
progreso y estado de la conexión.
. Enlace de tres vías:
Establece que el dispositivo de destino esté presente en la red.
Verifica que el dispositivo de destino tenga un servicio activo y esté
aceptando las peticiones en el número de puerto de destino que el cliente
que lo inicia intente usar para la sesión.
Informa al dispositivo de destino que el cliente de origen intenta
establecer una sesión de comunicación en ese número de puerto.
?
?
Los tres pasos para el establecimiento de una conexión TCP son:
?
1. El cliente que inicia la conexión envía un segmento que contiene un
valor de secuencia inicial, que actúa como solicitud para el servidor para
comenzar una sesión de comunicación.
2. El servidor responde con un segmento que contiene un valor de
reconocimiento igual al valor de secuencia recibido más 1, además de su
propio valor de secuencia de sincronización. El valor es uno mayor que el
número de secuencia porque el ACK es siempre el próximo Byte u Octeto
esperado. Este valor de reconocimiento permite al cliente unir la
respuesta al segmento original que fue enviado al servidor.
3. El cliente que inicia la conexión responde con un valor de
reconocimiento igual al valor de secuencia que recibió más uno. Esto
completa el proceso de establecimiento de la conexión.
?
?
?
?
?
?
Para entender el proceso de enlace de tres vías, es importante observar los
distintos valores que intercambian los dos hosts. Dentro del encabezado del
segmento TCP, existen seis campos de 1 bit que contienen información de
control utilizada para gestionar los procesos de TCP. Estos campos son los
siguientes:
URG: Urgente campo de señalizador significativo,
ACK: Campo significativo de acuse de recibo,
PSH: Función de empuje,
RST: Reconfiguración de la conexión,
SYN: Sincronizar números de secuencia,
FIN: No hay más datos desde el emisor.
A estos campos se los denomina señaladores porque el valor de uno de
estos campos es sólo de 1 bit, entonces tiene sólo dos valores: 1 ó 0. Si el
valor del bit se establece en 1, indica la información de control que contiene
el segmento.
Si se utiliza un proceso de cuatro pasos, los señalizadores se
intercambian para finalizar la conexión TCP.
ESTA PRESENTACIÓN CONTIENE MAS DIAPOSITIVAS DISPONIBLES EN LA VERSIÓN DE DESCARGA
Página anterior | Volver al principio del trabajo | Página siguiente |