El nivel de transporte o capa de transporte es el cuarto nivel del modelo OSI encargado de la transferencia libre de errores de los datos entre el emisor y el receptor, aunque no estén directamente conectados, así como de mantener el flujo de la red. Es la base de toda la jerarquía de protocolo. La tarea de esta capa es proporcionar un transporte de datos confiable y económico de la máquina de origen a la máquina destino, independientemente de las de redes físicas en uno. Sin la capa transporte, el concepto total de los protocolos en capas tendría poco sentido.
ADMINISTRACIÓN DE DATOS
Al instalar el sistema operativo, facilita el nombre de host y la dirección IP del servidor, los clientes o el sistema independiente como parte del procedimiento. El programa de instalación de Oracle Solaris incluye esta información en hosts y, en el caso de Solaris 10 11/06 y versiones anteriores de Solaris 10, la base de datos de red ipnodes. Esta base de datos forma parte de un conjunto de bases de datos de red que contienen la información necesaria para el funcionamiento de TCP/IP en la red. El servicio de nombres que seleccione para la red leerá estas bases de datos.
La configuración de las bases de datos de red es imprescindible. Debe decidir qué servicio de nombres utilizará como parte del proceso de planificación de la red. Asimismo, la decisión de utilizar servicios de nombres también determina si organizará la red en un dominio administrativo. Bases de datos de red y el archivo nsswitch.conf incluye información detallada sobre el conjunto de bases de datos de red.
PROTOCOLOS TCP Y UDP
El servicio de transporte se implementa mediante un protocolo de transporte entre dos entidades de transporte. En ciertos aspectos, los protocolos de transporte se parecen a los protocolos de red. Ambos se encargan del control de errores, la secuenciación y el control del flujo.
Pero también existen diferencias importantes entre ambas, como los entornos en que operan, la capa transporte necesita el direccionamiento explícito de los destinos, mientras que la capa de red no, otra diferencia es la cantidad de datos, mucho mayor en la capa de transporte.
TCP:
Su propósito es que las aplicaciones pueden comunicarse en forma segura (gracias al sistema de acuse de recibo del protocolo TCP) independientemente de las capas inferiores. Esto significa que los routers (que funcionan en la capa de Internet) sólo tienen que enviar los datos en forma de datagramas, sin preocuparse con el monitoreo de datos porque esta función la cumple la capa de transporte (o más específicamente el protocolo TCP).
Durante una comunicación usando el protocolo TCP, las dos máquinas deben establecer una conexión. La máquina emisora (la que solicita la conexión) se llama cliente, y la máquina receptora se llama servidor. Por eso es que decimos que estamos en un entorno Cliente-Servidor.
Las máquinas de dicho entorno se comunican en modo en línea, es decir, que la comunicación se realiza en ambas direcciones.
Las máquinas de dicho entorno se comunican en modo en línea, es decir, que la comunicación se realiza en ambas direcciones.
Las principales características del protocolo TCP son las siguientes:
- TCP permite colocar los datagramas nuevamente en orden cuando vienen del protocolo IP.
- TCP permite que el monitoreo del flujo de los datos y así evita la saturación de la red.
- TCP permite que los datos se formen en segmentos de longitud variada para "entregarlos" al protocolo IP.
- TCP permite multiplexar los datos, es decir, que la información que viene de diferentes fuentes (por ejemplo, aplicaciones) en la misma línea pueda circular simultáneamente.
- Por último, TCP permite comenzar y finalizar la comunicación amablemente.
Posibilita la realización de una tarea importante: multiplexar/demultiplexar; es decir transmitir datos desde diversas aplicaciones en la misma línea o, en otras palabras, ordenar la información que llega en paralelo.
Estas operaciones se realizan empleando el concepto de puertos (o conexiones), es decir, un número vinculado a un tipo de aplicación que, cuando se combina con una dirección de IP, permite determinar en forma exclusiva una aplicación que se ejecuta en una máquina determinada.
UDP:
Protocolo de datagrama de usuari es un protocolo no orientado a conexión de la capa de transporte del modelo TCP/IP. Este protocolo es muy simple ya que no proporciona detección de errores (no es un protocolo orientado a conexión).
Por lo tanto, el encabezado del segmento UDP es muy simple:
(16 bits); | (16 bits); |
(16 bits); | (16 bits); |
(longitud variable). |
Significado de los diferentes campos
- Puerto de origen: es el número de puerto relacionado con
- la aplicación del remitente del segmento UDP. Este campo representa una dirección de respuesta para el destinatario. Por lo tanto, este campo es opcional. Esto significa que si el puerto de origen no está especificado, los 16 bits de este campo se pondrán en cero. En este caso, el destinatario no podrá responder (lo cual no es estrictamente necesario, en particular para mensajes unidireccionales).
- Puerto de destino: este campo contiene el puerto correspondiente a la aplicación del equipo receptor al que se envía.
- Longitud: este campo especifica la longitud total del segmento, con el encabezado incluido. Sin embargo, el encabezado tiene una longitud de 4 x 16 bits (que es 8 x 8 bits), por lo tanto la longitud del campo es necesariamente superior o igual a 8 bytes.
- Suma de comprobación: es una suma de comprobación realizada de manera tal que permita controlar la integridad del segmento.
PROCESO DE ESTABLECIMIENTO Y FINALIZACIÓN
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 sesión habilitan la función de confiabilidad de TCP. Vea en la figura los pasos para establecer y terminar una conexión del TCP.
Los hosts hacen un seguimiento de cada segmento de datos dentro de una sesión e intercambian información sobre qué datos se reciben mediante la información del encabezado TCP. TCP es un protocolo full-duplex, en el que cada conexión representa dos streams de comunicación unidireccionales, o sesiones. Para establecer la conexión los hosts realizan un protocolo de enlace 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 se presente en la red
- Verifica que el dispositivo de destino tenga un servicio activo y que acepte solicitudes en el número de puerto de destino que el cliente de origen intenta utilizar para la sesión
- Informa al dispositivo de destino que el cliente de origen intenta establecer una sesión de comunicación en dicho número de puerto.
En las conexiones TCP, el cliente del host establece la conexión con el servidor. Los tres pasos en el establecimiento de una conexión TCP son:
Paso 1. El cliente de origen solicita una sesión de comunicación de cliente a servidor con el servidor.
Paso 2. El servidor acusa recibo de 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 acusa recibo de la sesión de comunicación de servidor a cliente.
En la ilustración, haga clic en los botones 1 a 3 para ver el establecimiento de la conexión TCP.
Para comprender el proceso de enlace de tres vías, observe los diversos valores que intercambian ambos hosts. Dentro del encabezado del segmento TCP, existen seis campos de 1 bit que contienen información de control utilizada para gestionar los proceso de TCP. Estos campos son los siguientes:
- URG: campo indicador urgente importante
- ACK: campo de acuse de recibo importante
- PSH: función de empuje
- RST: restablecer la conexión
- SYN: sincronizar números de secuencia
- FIN: no hay más datos del emisor
Los campos ACK y SYN son importantes para el análisis del protocolo de enlace de tres vías.
PROCESOS DE CLIENTE
El cliente es el proceso que permite al usuario formular los requerimientos y pasarlos al
servidor, se le conoce con el término front-end [15].
El Cliente normalmente maneja todas las funciones relacionadas con la
manipulación y despliegue de datos, por lo que están desarrollados sobre plataformas que
permiten construir interfaces gráficas de usuario (GUI), además de acceder a los servicios
distribuidos en cualquier parte de una red.
Las funciones que lleva a cabo el proceso cliente se resumen en los siguientes
puntos:
•Administrar la interfaz de usuario.
.
• Interactuar con el usuario.
• Procesar la lógica de la aplicación y hacer validaciones locales
.
• Generar requerimientos de bases de datos.
• Recibir resultados del servidor.
• Formatear resultados.
APLICACIÓN DE LOS PROTOCOLOS TCP
TCP:
Todos los protocolos de alto nivel tienen algunas características en común:
Pueden ser aplicaciones escritas por el usuario o aplicaciones estandarizadas y distribuidas con un producto TCP/IP. De hecho, la pila TCP/IP incluye protocolos de aplicación tales como:
- TELNET para el acceso interactivo de una terminal a un host remoto.
- FTP ("File Transfer Protocol") para transferencias de alta velocidad de un disco a otro.
- SMTP ("simple mail transfer protocol") como sistema de correo de Internet.
Estas son las aplicaciones implementadas más ampliamente, pero existen muchas otras. Cada implementación TCP/IP particular incluye un conjunto más o menos restringido de protocolos de aplicación.
Usan UDP o TCP como mecanismo de transporte. Recordar que UDP no es fiable ni ofrece control de flujo, por lo que en este caso la aplicación ha de proporcionar sus propia rutinas de recuperación de errores y de control de flujo. Suele ser más fácil desarrollar aplicaciones sobre TCP, un protocolo fiable, orientado a conexión. La mayoría de los protocolos de aplicación utilizan TCP, pero algunas aplicaciones se construyen sobre UDP para proporcionar un mejor rendimiento reduciendo la carga del sistema que genera el protocolo.
La mayoría de ellas usa el modelo de interacción cliente/servidor.
La mayoría de ellas usa el modelo de interacción cliente/servidor.
APLICACIÓN DE LOS PROTOCOLOS UDP
UDP:
El grupo de protocolos de Internet también maneja un protocolo de transporte sin conexiones, el UDP (User Data Protocol, protocolo de datos de usuario). El UDP ofrece a las aplicaciones un mecanismo para enviar datagramas IP en bruto encapsulados sin tener que establecer una conexión.
Muchas aplicaciones cliente-servidor que tienen una solicitud y una respuesta usan el UDP en lugar de tomarse la molestia de establecer y luego liberar una conexión. El UDP se describe en el RFC 768. Un segmento UDP consiste en una cabecera de 8 bytes seguida de los datos. La cabecera se muestra a continuación. Los dos puertos sirven para lo mismo que en el TCP: para identificar los puntos terminales de las máquinas origen y destino. El campo de longitud UDP incluye la cabecera de 8 bytes y los datos. La suma de comprobación UDP incluye la misma pseudocabecera de formato, la cabecera UDP, y los datos, rellenados con una cantidad par de bytes de ser necesario.
Esta suma es opcional, y se almacena como 0 si no se calcula. Inutilizarla seria absurdo, a menos que la cantidad de los datos no importe, por ejemplo, voz digitalizada.
UDP no admite numeración de los datagramas, factor que, sumado a que tampoco utiliza señales de confirmación de entrega, hace que la garantía de que un paquete llegue a su destino sea mucho menor que si se usa TCP.
Esto también origina que los datagramas pueden llegar duplicados y/o desordenados a su destino. Por estos motivos el control de envío de datagramas, si existe, debe ser implementado por las aplicaciones que usan UDP como medio de transporte de datos, al igual que el reeensamble de los mensajes entrantes.
Es por ello un protocolo del tipo best-effort (máximo esfuerzo), porque hace lo que puede para transmitir los datagramas hacia la aplicación, pero no puede garantizar que la aplicación los reciba.
Tampoco utiliza mecanismos de detección de errores. Cuando se detecta un error en un datagrama, en lugar de entregarlo a la aplicación destino, se descarta.
Cuando una aplicación envía datos a través de UDP, éstos llegan al otro extremo como una unidad. Por ejemplo, si una aplicación escribe 5 veces en el puerto UDP, la aplicación al otro extremo hará 5 lecturas del puerto UDP. Además, el tamaño de cada escritura será igual que el tamaño de las lecturas.
USO DE WIRESHARK
- Wireshark es una herramieta multiplataforma de análisis de red, producto de la evolución de Ethereal. Funciona al igual que lo puede hacer cualquier otro sniffer tal como Windump, TCPDump ó dsniff. Pero, al contrario de estos, lo hace mostrando los datos a través de un entorno gráfico y de forma más amigable y entendible. Este artículo es fruto de varios correos que me han llegado sobre como interpretar los datos mostrados en una captura.
- Si bien, el uso de Wireshark esta suficientemente documentado en la red, vamos a repasar muy superficialmente su uso para centrarnos después en como interpretar esos los capturados.
No hay comentarios.:
Publicar un comentario