Modelos de trabajo en red
U
-Tad
CENTRO UNIVERSITARIO
DE TECNOLOGÍA
Y ARTE DIGITAL
Resumen Introducción a las redes.
Modelo cliente - servidor
Cliente y servidor son procesos. El cliente hace uso del servicio que ofrece el proceso
servidor.
Ejemplo:
Servidor - demonio http (Apache 2) Cliente
- navegador web
Modelo peer to peer (de igual a igual)
cualquier host puede actuar como cliente o
como servidor
Ejemplo: Bittorrent
Arquitectura de capas OSI y modelo TCP/IP
Conceptos básicos
- Protocolo - es un sistema de reglas que permiten que dos o más hosts se
comuniquen entre sí para transmitir información
- Modelo de servicios:
Cada protocolo pertenece a una capa
Cada capa da servicio a la capa superior y recibe el servicio que le ha dado la capa inferior
- Protocol stack
Cuando se ven juntos todos los protocolos de las diferentes capas se llama pila de
protocolos
- PDU - Protocol Data Unit
Los paquetes que manejan cada capa se llaman PDUs (protocol data units)
- Encapsulamiento de PDUs
Cada nivel encapsula el PDU que recibe de la capa superior en un paquete. Durante el
encapsulamiento, cada capa construye un PDU añadiendo una cabecera que contiene
información de control del PDU de la capa superior.
Arquitectura de capas en el modelo TCP/IP o modelo de Internet
Capa de aplicación
Servicio - aplicación que provee un servicio a los clientes (usuarios)
PDU - Mensajes
Protocolos
HTTP - servicio: publicación de páginas web (TCP 80)
HTTPS - servicio: publicación de páginas web de forma segura (TCP 443)
FTP - servicio: transferencia de ficheros (TCP 21)
Telnet - servicio: acceso remoto (TCP 23)
SSH - servicio: acceso remoto seguro (TCP 22)
DNS - servicio: resolución de nombres de Internet (FQDN o Fully Qualified Domain
Names) (UDP 53)
DHCP. Servicio que asigna direcciones IP dinámicas (UDP 67)
Ejemplos de aplicación (ver práctica 1 parte 1)
- Servidores dependientes - dependen del súper demonio de red: inetd
- Servidores independientes o stand alone: no dependen de otro servidor que los
arranque o los pare, se gestionan de forma independiente
- Servidor web (Apache)
- Servidor FTP
- Servidor SSH
Ejemplo de aplicación - Servicio DNS (ver práctica 1 parte 2)
- Servicio - resolución de nombres FQDN a su dirección IP
- Demonio DNS (named o BIND9)
- Utiliza UDP y el puerto 53
- Es además una estructura jerárquica de dominios
- Zonas y archivo de zona
- Registros de recursos
Tipos de Registros de Recursos (RR, Resource Records)
- SOA (Start of Authority):
- Define el inicio de la autoridad para una zona DNS.
- Contiene información como el nombre del servidor primario, el correo del
administrador y los parámetros de sincronización de zona.
- NS (Name Server):
- Especifica los servidores de nombres responsables de una zona.
- Proporciona referencias a otros servidores DNS que pueden responder
consultas para el dominio.
- A (Address):
- Asocia un nombre de dominio con una dirección IPv4.
- CNAME (Canonical Name):
Es un alias que apunta a otro nombre de dominio (el dominio canónico).
- MX (Mail Exchange):
- Define los servidores responsables de gestionar el correo electrónico para un
dominio.
- Incluye una prioridad para manejar varios servidores.
- Proceso de petición de resolución por parte del cliente antes del acceso a un sitio
web, por ejemplo.
Proceso de Resolución DNS
- Consulta Inicial:
El cliente realiza una consulta al servidor DNS configurado, solicitando la
resolución de un FQDN.
- Resolución Autoritativa:
- Un servidor autoritativo responde directamente con datos de una zona
para la cual tiene autoridad.
- Ejemplo: Si el servidor DNS tiene el archivo de zona para
"example.com", puede responder autoritativamente sobre registros como
www.example.com.
- Resolución No Autoritativa:
- Ocurre cuando un servidor DNS consulta a otros servidores para obtener
una respuesta.
- Los datos proporcionados se obtienen de su caché o de forwarders y no
de su propia zona.
- Permitir allow recursion en el DNS para que clientes que no son de mi misma red me
puedan consultar y el servidor DNS pueda transferir esa petición a los forwarders. Se
restringe por motivos de seguridad
Allow Recursion y Forwarders
- Allow Recursion:
- Permitir la recursion en un servidor DNS habilita que este pueda resolver
consultas de dominios fuera de sus zonas autoritativas, enviándolas a
forwarders o realizando consultas iterativas.
- Seguridad y Restricciones:
- La recursion suele deshabilitarse para clientes externos por motivos de
seguridad, previniendo ataques como DNS Amplification.
- Puede configurarse para permitir solo ciertos rangos de IP o redes de
confianza.
- Forwarders:
- Los forwarders son servidores DNS a los que un servidor recursivo
delega consultas externas, reduciendo la carga y mejorando la eficiencia.
Ejemplo de aplicación - Servicio DHCP (ver práctica de clase)
- Servicio - Asigna automáticamente una dirección IP dinámica.
- Proporciona otros parámetros de configuración, como:
· Máscara de subred: para identificar el tamaño de la red.
· Puerta de enlace predeterminada (gateway): dirección del enrutador para
salir a otras redes.
· DNS (Domain Name System): dirección del servidor para resolver nombres
de dominio.
- Utiliza protocolo UDP, y los puertos 67 en el servidor y 68 en el cliente
- El proceso de asignación de direcciones IP mediante DHCP sigue un modelo de cuatro
pasos, conocido como DORA:
- Discover
(Descubrimiento):
El cliente (dispositivo que se conecta) envía un mensaje broadcast a toda la red
para buscar un servidor DHCP. Este mensaje dice: "¿Hay algún servidor
DHCP disponible?".
- Offer
(Oferta):
Los servidores DHCP que respondan ofrecen una dirección IP al cliente, junto
con otros parámetros (máscara de subred, gateway, DNS, etc.).
- Request
(Solicitud):
El cliente selecciona una de las ofertas y envía un mensaje al servidor indicando
que acepta esa configuración.
- Acknowledge
(Confirmación):
El servidor confirma la asignación de la dirección IP al cliente y guarda un
registro de esa asignación en su base de datos.
Capa de transporte
Servicio: transporta mensajes de la capa de aplicación entre diferentes hosts
Protocolos: TCP y UDP
PDU- Los paquetes de la capa de transporte se llaman segmentos
Leer lecturas Protocolos, puerto y escaneo en la sección de preparación del examen
Protocolo TCP (Transport Control Protocol)
- Características: Protocolo orientado a la conexión y confiable.
Las conexiones TCP se componen de tres etapas:
- Establecimiento de conexión (3-way handshake) - SYN / SYN+ACK / ACK
- Transferencia de datos
- Fin de la conexión (4-way handshake) - FIN / ACK / FIN / ACK (Puede ser
en tres pasos: FIN / ACK + FIN / ACK )
Durante el establecimiento de la conexión, se configuran algunos parámetros tales como
el número de secuencia con el fin de asegurar la entrega ordenada de los datos.
Control de comunicaciones en TCP
En el protocolo TCP (Transmission Control Protocol), los números de secuencia y ACK
(Acknowledgment) son fundamentales para garantizar la entrega confiable y ordenada de
los datos. Vamos a explicarlos en detalle:
- Número de Secuencia (Sequence Number) El número de secuencia es un campo
en el encabezado TCP que identifica el orden de los datos enviados. Se utiliza para:
- Rastrear los datos transmitidos: Permite que el receptor sepa qué parte del flujo
de datos ha llegado y qué parte falta.
- Garantizar la entrega en orden: TCP divide los datos en segmentos, cada uno
con su propio número de secuencia. Si los segmentos llegan fuera de orden, el
receptor puede reordenarlos utilizando los números de secuencia.
- Características del Número de Secuencia
- Es un número de 32 bits que representa el primer byte de datos en el
segmento actual.
- Inicialmente, se elige un valor aleatorio como ISN (Initial Sequence
Number) durante el establecimiento de la conexión (el famoso three-
way handshake).
- A medida que se envían datos, el número de secuencia aumenta de
acuerdo con el tamaño de los datos enviados (en bytes).
- Número de Acknowledgment (ACK) El número de ACK es otro campo
en el encabezado TCP que el receptor utiliza para confirmar la recepción de
los datos. Es el siguiente número de secuencia que el receptor espera recibir.
- Características del Número de ACK
- También es un número de 32 bits.
- Indica al emisor que todos los datos hasta el número de secuencia
anterior han sido recibidos correctamente.
- Funciona como una confirmación para el remitente, permitiendo que
este continúe enviando más datos.
Relación entre el Número de Secuencia y el ACK
En el flujo de datos TCP, los números de secuencia y ACK funcionan juntos para asegurar
la comunicación confiable:
- Envío de datos:
- El remitente incluye un número de secuencia en el encabezado TCP para
identificar el segmento de datos.
- Por ejemplo, si se envían 100 bytes de datos y el número de secuencia es
1000, el segmento contiene los datos de los bytes 1000 a 1099.
- Confirmación de recepción (ACK):
- El receptor envía un paquete de confirmación con un número de ACK
igual al siguiente byte esperado.
- En el ejemplo anterior, si el receptor recibió todos los bytes hasta 1099,
el número de ACK será 1100.
- Retransmisión en caso de pérdida:
- Si el emisor no recibe una confirmación dentro de un tiempo especificado
(timeout), retransmite los datos.
Ejemplo Práctico de Secuencia y ACK
- Inicio de la conexión (Three-Way Handshake):
- Cliente envía SYN con un número de secuencia inicial (por ejemplo, 1000).
- Servidor responde con SYN-ACK, estableciendo su propio número de
secuencia (por ejemplo, 5000) y confirmando con ACK = 1001 (el cliente
envió el SYN de un byte).
- Cliente responde con un ACK = 5001, confirmando la secuencia del servidor.
- Transferencia de datos:
- Cliente envía 1000 bytes con número de secuencia 1001.
- Servidor responde con ACK = 2001, indicando que ha recibido los primeros
1000 bytes.
- Cierre de la conexión:
- Se intercambian segmentos FIN y ACK para cerrar la conexión de forma
ordenada.
- Checksum
- Es un valor que se usa para verificar la veracidad de los datos