Fundamento Redes
Fundamento Redes
Redes
LibreIM
Doble Grado de Informática y Matemáticas
Universidad de Granada
libreim.github.io/apuntesDGIIM
Este libro se distribuye bajo una licencia CC
BY-NC-SA 4.0.
Eres libre de distribuir y adaptar el material siempre que
reconozcas a los autores originales del documento, no lo
utilices para fines comerciales y lo distribuyas bajo la
misma licencia.
creativecommons.org/licenses/by-nc-sa/4.0/
Fundamentos de
Redes
LibreIM
Doble Grado de Informática y Matemáticas
Universidad de Granada
libreim.github.io/apuntesDGIIM
Índice
I. Teoría 6
1. Introducción 6
1.1. Sistemas de comunicación y redes . . . . . . . . . . . . . . . . . . . . 6
1.1.1. Estructura y elementos de una red . . . . . . . . . . . . . . . 7
1.2. Diseño y estandarización de redes . . . . . . . . . . . . . . . . . . . . 7
1.2.1. Modelo OSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2. Modelo de referencia TCP/IP . . . . . . . . . . . . . . . . . 8
1.3. Terminología, conceptos y servicios . . . . . . . . . . . . . . . . . . . 9
1.4. Internet: topología y direccionamiento . . . . . . . . . . . . . . . . . 10
4
Índice
4. Práctica 1 26
4.1. Información . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.1. Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.2. FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.3. Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5
Parte I.
Teoría
1. Introducción
• Por escala:
6
1. Introducción
7
1. Introducción
Grupo 1 de capas:
Grupo 2:
Grupo 3:
Grupo 1:
• Red subyacente.
Grupo 2:
• Capa de Red.
Grupo 3:
• Capa de Transporte.
• Capa de aplicación.
8
1. Introducción
L(bi ts)
Tt r ansmision (s) =
Vt (bps)
El tiempo de propagación es el tiempo que el primer bit tarda hasta llegar
a su destino. La velocidad de propagación depende del medio físico del enla-
ce y se mide en metros por segundo. (Distancia a recorrer entre velocidad de
propagación
9
1. Introducción
D(m)
Tpr opa g acion (s) = − > Vpr opagacion (m/s)
Vp (m/s)
La fibra óptica aumenta el ancho de banda para poder transmitir más bits a la
vez, y por tanto aumenta la velocidad de las transmisiones.
Además de estos tiempos, cuando un nodo recibe un paquete y lo procesa para
reenviarlo se producen retardos de procesamiento, cuando el nodo recibe dicho
paquete y procesa su información, y retardos de cola, cuando el mensaje espera
en una cola a que todos los mensajes que llegaron antes que él sean enviados.
Servicios:
10
1. Introducción
Para conocer cómo se dirigen las conexiones y cómo se identifican los destina-
tarios se usan diversos elementos. La dirección IP, en la capa de red, identifica a
los hosts. Para los humanos es más sencillo usar los nombres de dominio, los cua-
les traducen las direcciones del lenguaje humano a su correspondiente dirección
IP.
Niveles de direccionamiento: hay uno por cada capa.
11
2. Tema 2. Servicios y Protocolos de Aplicación en
Internet
Todas las aplicaciones finales que usamos se basan en otros protocolos. Los pro-
tocolos que use la aplicación estarán basados en otros de transporte como UDP y
TCP y estos a su vez en protocolos de internet como IP, que son los que finalmente
tienen acceso a la red.
Hay un modelo de referencia y una pila de protocolos. A cada capa (Internet,
transporte y aplicación) se le asocia protocolos:
12
2. Tema 2. Servicios y Protocolos de Aplicación en Internet
Para estimar los retardos (tiempos) en cola se usa teoría de colas: el uso de un
servidor se modela con un sistema M/M/1
El retardo en cola es:
λ(Ts )2
R=
1 − λTs
Donde Ts (distribución exponencial) es el tiempo de servicio y λ (Poisson) es
la ratio de llegada de solicitudes.
Esta expresión se puede usar para calcular el retardo en cola en un router.
13
2. Tema 2. Servicios y Protocolos de Aplicación en Internet
para enviar datos como control, usa el mismo socket para ambos. Out-of-
band indica que la señalización de control va por un lado y la del dato por
otro.
• Protocolos state-full vs stateless: cuando la aplicación guarda informa-
ción sobre todo lo que ocurrió desde el inicio de la misma frente a cuando
no la guarda. Por ejemplo, cuando descargamos páginas web con HTTP es
stateless porque no se fija en mi historial.
• Protocolos persistentes vs no-persistentes (sobre servicios SOC – Servi-
cios Orientados a conexión): cuando el protocolo hace uso de conexiones
persistentes frente a cuando no (hace una para cada objeto).
• Servicio TCP: está orientado a conexión (establecer una conexión entre los
dos involucrados previo al envío), este transporte es fiable ante pérdidas
(control de errores), con control de flujo y de congestión.
• Servicio UDP: no está orientado a conexión, es decir, no se comprueba
que ambos estén preparados para realizar la comunicación. El transporte
no es fiable, no tiene control de flujo ni de congestión.
14
2. Tema 2. Servicios y Protocolos de Aplicación en Internet
El ordenador original no resuelve todo el nombre del dominio. Este conecta con
un servidor que será el encargado de conectar iterativamente con el resto de
servidores.
De esta manera nos conectaríamos con los servidores “.”, los de dominio (Top-
Level Domain, TDL), servidores Locales y servidores Autorizados y Zona.
Un host solicitaría la dirección de una URL (www.una.direccion.com) a su
servidor local. Este envía la petición a un servidor raíz, el cual toma el sufijo
(.com) y le responde al DNS local una lista de direcciones responsables de dicho
dominio (los responsables del sufijo .com). Estos responsables son servidores
TLD (top level domain) y a continuación se les envía una petición a estos. El
servidor TLD examina el sufijo (direccion.com) y responde con la dirección del
servidor DNS autorizado que puede dar la dirección del URL inicial. Después el
servidor local consulta a dicho servidor DNS autorizado y este le responde con
la dirección IP de la URL inicial (www.una.direccion.com).
Gestión de la base de datos DNS:
Como hemos comprobado la base de datos está distribuida. Esto implica que
cada zona debe tener al menos un servidor de autoridad, y en cada zona habrá
servidores primarios y secundarios, que bien tendrán la copia master de la base
de datos o bien la obtendrán a partir de los primarios. Existen sólo 13 servidores
raíz. Existe un servicio de caché que permite agilizar las consultas.
Los servidores pueden dar una respuesta con autoridad, si tiene autoridad
15
2. Tema 2. Servicios y Protocolos de Aplicación en Internet
TCP al puerto 80: Inicio de conexión TCP, envío HTTP, cierre de conexión TCP.
HTTP es “stateless” → Cookies: El servidor no mantiene la información sobre
las peticiones de los clientes. Esto puede implicar, por ejemplo, que cuando recibe
dos peticiones idénticas del mismo cliente devuelve el objeto solicitado en lugar
de devolver ningún tipo de error o mensaje informativo. Para identificar a los
usuarios y su actividad se utilizan cookies, archivos que se almacenan en el
sistema terminal del usuario y son gestionados por su navegador.
La conexión puede ser persistente o no persistente. En el primer caso se pueden
enviar múltiples objetos sobre una única conexión TCP entre cliente y servidor,
mientras que la no persistente crea nueva conexión para cada objeto a enviar.
El persistente tiene un tiempo de transmisión total menor que el no persistente.
Pero el no persistente permite gestionar mejor los recursos del servidor, pues no
tiene que mantener el socket abierto durante toda la conexión, a cambio, al tener
que establecer una conexión por objeto reduce su velocidad.
Hay dos tipos de mensajes HTTP: request y reponse. La petición de un elemento
y su concesión. Cada uno de ellos tiene un formato específico, donde se indica la
información concreta que se desea solicitar, o, en caso de ser desarrolladores de
la página, mensajes de gestión. (GET,POST,HEAD,PUT,DELETE) Las respuestas se
asemejan a las peticiones en cuanto a la indicación de un estado y cabecera, pero
adicionalmente poseen el cuerpo de la entidad, donde se encuentra el objeto
solicitado. La línea de estado indica un código de respuesta (200 OK, 301 moved
permanently, 400 bad request, 505 HTTP version not supported).
16
2. Tema 2. Servicios y Protocolos de Aplicación en Internet
2.6. MIME
MIME (Multipurpose Internet Email Extension) es un estándar de intercambio
a través de Internet de todo tipo de archivos. Fue diseñado para e-mails pero
17
2. Tema 2. Servicios y Protocolos de Aplicación en Internet
18
2. Tema 2. Servicios y Protocolos de Aplicación en Internet
• Firewall: Sistema que limita los accesos a los elementos de nuestro or-
denador. También UTMs se están implementando últimamente, son una
extensión de firewalls.
• Sistemas de detección de intrusiones IDS. En red NIDS, en host HIDS.
Analizan el tráfico y detectan posibles ataques y anomalías.
• Antivirus, evaluación de vulnerabilidades, seguridad en Aplicaciones,
filtrado web/anti-spam.
• Advanced Thread Detection: Listas donde se comparte información de
seguridad. Así se permite enterarse cuanto antes de problemas de seguri-
dad.
• SEMs, SIEMs: Realiza el conjunto de las funcionalidades anteriores.
19
3. Tema 3. Capa de Transporte en Internet
Como sabemos un protocolo de la capa de transporte proporciona una abstracción
de la comunicación de manera que podemos operar con dos hosts distantes como
si estuvieran conectados directamente.
Estos protocolos están implementados en los hosts terminales, pero no en los
routers de la red. La capa de transporte transforma el mensaje en paquetes
de capa de transporte conocidos como segmentos. Esto por lo general se hace
dividiendo el mensaje original en fragmentos más pequeños y añadiendo una
cabecera a cada uno de ellos. Tras esto la capa de transporte pasa a la capa de
red, que gestiona con paquetes de capa de red el envío (en un datagrama).
En internet hay dos protocolos que ofrecen distintos tipos de servicios para la
capa de transporte, TCP y UDP.
Multiplexación y demultiplexación:
Un concepto importante para entender estos protocolos es saber cómo se co-
munican las aplicaciones, los procesos, con la capa de transporte, pues estos no
se comunican directamente, sino que hacen uso de sockets intermediarios. A la
hora de enviar un mensaje un proceso pasa a los sockets la información, la capa
de transporte coge la información de estos sockets para crear los segmentos y
pasarlos a la capa de red. Esta es la multiplexación. El procedimiento de recep-
ción, donde la capa de transporte del receptor obtiene la información de la capa
de red y la entrega a los sockets correspondientes es la demultiplexación.
Cada uno de estos protocolos usa distintos tipos de sockets, con distinto fun-
cionamiento. A continuación se explicarán estos protocolos.
20
3. Tema 3. Capa de Transporte en Internet
21
3. Tema 3. Capa de Transporte en Internet
22
3. Tema 3. Capa de Transporte en Internet
anterior más el número de bytes de carga útil. Los flags SYN y FIN incrementan
en 1 el número de secuencia.
Ejercicio: Se desea transferir con protocolo TCP un archivo de L bytes usando
un MSS(Maximum Segment Size) de 536.
A.
a) Un segmento tiene 232 valores distintos, pero luego tiene dos bits del SYN
y del FIN. En total el valor máximo de L para que no desborde es 232 − 2.
b) Dados los bytes de las cabeceras buscamos obtener el total y luego dividi-
mos por la velocidad de transmisión.
Dividimos L entre el tamaño del segmento para saber cuántos segmentos te-
32
nemos. Cogemos el entero inmediatamente superior de 2536−2 para calcular el
número de segmentos. Luego calculamos el número de bytes así: N_segmentos *
66 + L
Conocidos el número de bytes a transmitir simplemente tenemos que dividir
(N os ·66+L)·8
por la velocidad segment
155·106 bps
23
3. Tema 3. Capa de Transporte en Internet
reenvía el paquete. Si se envían dos paquetes y se recibe el ACK del último que
se envió entonces queda confirmada la correcta entrega del paquete anterior.
Existen una serie de reglas de generación del ACK para cuando ocurren deter-
minados eventos para evitar cualquier tipo de error:
24
3. Tema 3. Capa de Transporte en Internet
tiene que esperar a recibir un nuevo paquete con el mismo ack pero con un valor
de window mayor que cero.
Control de congestión:
Actuando de manera parecida al control de flujo da respuesta a los problemas
que pueda causar la congestión de la red IP. La finalidad de este es evitar que el
emisor llegue a saturar la red. (Tanto el ancho de banda de las líneas como los
buffers en los dispositivos de interconexión).
La principal solución que se propone es limitar el tráfico generado. Y esto se
puede estudiar de distintas maneras:
25
un MSS. Generalmente cuando llega un paquete de reconocimiento. Este
crecimiento lineal debe detenerse igualmente para evitar la congestión,
comportándose igual que cuando se produce un timeout. Si en lugar de un
timeout se produce una pérdida de paquete detectada por el recibimiento
de tres ACK duplicados el comportamiento es menos drástico, por tanto
reduce el tamaño de la ventana a la mitad y, si está implementado entra
en recuperación rápida. TCP Tahoe no tiene recuperación rápida. Tras una
pérdida limita a 1 MSS la ventana de congestión y entra en estado de
arranque lento.
3. Recuperación rápida: Sólo implementada en TCP Reno, la ventana se
incrementa en 1 MSS por cada ACK duplicado recibido correspondiente al
segmento que falta y que ha causado la pérdida que le hizo entrar en este
estado. Si llega un ACK para el segmento que falta, se entra de nuevo en
el estado de prevención de la congestión. Si en este modo se produce otra
pérdida se vuelve al estado de arranque lento.
4. Práctica 1
aReiniciar
˛ el servicio correspondiente tras los cambios en sus archivos de confi-
guración!
4.1. Información
4.1.1. Telnet
26
4. Práctica 1
4.1.2. FTP
Para que ftp no funcione en standalone sino que utilice el servidio xinetd, hay
que editar en /etc/vsftpd.conf y cambiar listen = no. Para impedir el acce-
so anónimo anonymous_enable = no. Para permitir acceder a cuentas locales
descomentamos local_enable = yes.
Para crear una lista de usuarios que se puedan conectar añadimos al fichero /etc/
vsftpd.conf, userlist_enable=YES userlist_file=/etc/vsftpd.user_list
userlist_deny=NO Esto último significa que la lista no es para denegar acce-
so. Los usuarios en cuestión deben estar escritos en el fichero /etc/vsftpd.
user_list.
Para aceptar la subida de ficheros descomentamos en el archivo /etc/vsftpd.
conf la línea write_enable = YES.
4.1.3. Apache
27