Doc. de redes - Ministerio de Hacienda y Administraciones Públicas

Anuncio
Redes
Grupo de Sistemas y Comunicaciones
[email protected]
Octubre 2004
1
Introducción a las
Redes de Ordenadores
c
2004
GSyC
Redes
2
Objetivos de las Redes de Ordenadores
Objetivos de las Redes de Ordenadores
Compartir recursos: Discos duros, impresoras, programas. . .
Compartir información: Acceso documentos remotos. . .
Mejorar la fiabilidad: Alternativas, replicación. . .
Incrementar el rendimiento: Máquinas trabajando juntas. . .
Servir de medio de comunicación de personas/comunidades
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
3
Estructura de las Redes
Estructura de las Redes
Diversas máquinas (hosts) se conectan a una subred de comunicaciones que permite el diálogo entre ellas.
Dos formas fundamentales de diseñar la subred de comunicaciones:
mediante canales punto-a-punto
mediante canales de radiado broadcast
Normalemente hay una mezcla de muchos canales de los dos tipos.
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
4
Topologı́as comunes en Redes
Topologı́as comunes en Redes
ESTRELLA
ANILLO
TOTALMENTE
CONECTADA
BUS
ARBOL
PARCIALMENTE
CONECTADA
SATELITE
ANILLO
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
5
Protocolo de Comunicaciones
Protocolo de Comunicaciones
“Conjunto de reglas (interfaces, algoritmos, formatos de mensajes
. . . ) que conocen las entidades que intercambian datos a través de
una red de comunicaciones.”
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
6
Jerarquı́as de Protocolos
Jerarquı́as de Protocolos
En la mayorı́a de las redes se utilizan varios protocolos con distintos
propósitos.
Todos esos protocolos se organizan normalmente en niveles o capas.
cada nivel ofrece servicios al nivel superior
cada nivel se apoya en los servicios ofrecidos por el nivel inferior
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
7
Jerarquı́as de Protocolos (cont.)
Principios Fundamentales
Cada nivel ofrece servicios al nivel superior, ocultándole la forma
en que realmente se implementan dichos servicios.
Cada nivel dentro de una máquina “conversa” con su gemelo en
otra. Las reglas que rigen esta “conversación” forman el protocolo
de dicho nivel.
No hay transferencia fı́sica de datos entre niveles gemelos. La
transferencia se hace en cada máquina entre niveles adyacentes,
a través de las interfaces entre niveles: llamadas a procedimientos/funciones.
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
8
Jerarquı́as de Protocolos (cont.)
Maquina A
Nivel 4
Maquina B
Protocolo del Nivel 4
Nivel 4
interfaz 3/4
Nivel 3
Protocolo del Nivel 3
Nivel 3
interfaz 2/3
Nivel 2
Protocolo del Nivel 2
Nivel 2
interfaz 1/2
Nivel 1
Protocolo del Nivel 1
Nivel 1
Medio de transmision
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
9
Jerarquı́as de Protocolos (cont.)
Máquina origen de una comunicación
El mecanismo básico en cada nivel es:
tomar las unidades de datos que le ofrece el nivel superior
procesarlos (agrupando, separando, . . . ) y formar sus propias
unidades de datos (añadiendo información de control en cabeceras)
pasar sus unidades de datos al nivel inferior, usando sus servicios
¿Es esto software o hardware?
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
10
Jerarquı́as de Protocolos (cont.)
Máquina destino de una comunicación
El mecanismo básico en cada nivel es:
tomar las unidades de datos que le ofrece el nivel inferior
identificar las cabeceras introducidas en el nivel gemelo para procesar los datos adecuadamente (agrupando, separando, . . . )
pasar los datos al nivel superior
¿Es esto software o hardware?
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
Jerarquı́as de Protocolos (cont.)
11
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
Jerarquı́as de Protocolos (cont.)
12
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
Jerarquı́as de Protocolos (cont.)
13
Protocolo Nivel N+1
Protocolo Nivel N
c
2004
GSyC
Protocolo Nivel N-1
Redes: Introducción a las Redes de Ordenadores
14
Jerarquı́as de Protocolos (cont.)
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
15
Jerarquı́as de Protocolos (cont.)
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
16
Jerarquı́as de Protocolos (cont.)
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
Jerarquı́as de Protocolos (cont.)
17
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
18
Jerarquı́as de Protocolos (cont.)
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
19
Arquitectura de Red
Arquitectura de Red
Conjunto de niveles y protocolos de una determinada red de ordenadores.
Las distintas arquitecturas de redes se diferencian en:
Número de niveles, y servicios de cada nivel
Protocolos de cada nivel
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
20
Arquitectura OSI
Arquitectura OSI
En 1983 ISO (Organización de Estándares Internacionales) propone
un modelo de referencia para arquitecturas de redes:
Modelo de Referencia para la Interconexión de Sistemas Abiertos
(ISO OSI Reference Model).
El Modelo OSI no es estrictamente una arquitectura, sino un marco
al que deben someterse protocolos concretos para establecer una
arquitectura “conforme a OSI”
OSI no define los servicios y protocolos exactos para cada nivel, sólo
aquello de lo que cada nivel debe ocuparse.
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
Arquitectura OSI (cont.)
21
La “torre” OSI
Maquina A
Aplicacion
Presentacion
Sesion
Transporte
Red
Enlace
Fisico
Maquina B
Protocolo de Aplicacion
Protocolo de Presentacion
Protocolo de Sesion
Protocolo de Transporte
Protocolo de Red
Protocolo de Enlace
Protocolo de nivel Fisico
Aplicacion
Presentacion
Sesion
Transporte
Red
Enlace
Fisico
Medio de transmision
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
22
Arquitectura OSI (cont.)
El Nivel Fı́sico
Se ocupa de enviar y recibir bits sobre un medio fı́sico de transmisión:
Debe asegurarse que la forma de transmitir un bit a 1 es reconocida en recepción como un bit a 1.
La transmisión puede ser eléctrica, óptica, . . .
Aborda los problemas eléctricos, electrónicos, de establecimiento
de conexiones fı́sicas, . . .
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
23
Arquitectura OSI (cont.)
El Nivel de Enlace
Transforma un sistema de transmisión crudo (lo que le ofrece el nivel
fı́sico) en una lı́nea libre de errores de transmisión (lo que ofrece para
el nivel de red) entre máquinas conectadas al mismo medio fı́sico.
Forma tramas.
Se encarga de detectar las tramas recibidas con errores de transmisión. Además, puede
• descartar las tramas con errores, y/o
• corregir los errores de las tramas con errores, y/o
• pedir la retransmisión de las tramas con errores
Se ocupa de resolver los problemas de acceso a un medio de
transmisión compartido.
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
24
Arquitectura OSI (cont.)
Nivel de Red
Se encarga de la interconexión de máquinas que no están conectadas al mismo medio de transmisión. Por ello su misión fundamental es el encaminamiento de paquetes desde la máquina origen a la
máquina de destino.
El encaminamiento puede ser estático o dinámico.
Gestiona las congestiones y cuellos de botella.
Puede incluir funciones de tarificación.
Puede proporcionar distintos tipos de servicio: Fiable, no fiable.
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
25
Arquitectura OSI (cont.)
Nivel de Transporte
Se encarga de gobernar el acceso múltiple a la red de los diversos procesos de la misma máquina que quieran usarla (gestiona
puertos en máquinas multiproceso).
Puede proporcionar distintos tipos de servicio: Fiable, no fiable.
Realiza comunicación extremo a extremo, no tiene en cuenta las
máquina intermedias.
Realiza control de flujo extremo a extremo (el receptor no es capaz de recibir a la velocidad a la que transmite el emisor).
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
26
Arquitectura OSI (cont.)
Nivel de Sesión
Permite a usuarios en distintas máquinas establecer sesiones entre
ellos:
Proporciona mecanismos para controlar el diálogo: Ej: Turno, gestión de tokens.
Gestiona la sincronización entre máquinas.
Ejemplo: pizarra compartida.
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
27
Arquitectura OSI (cont.)
Nivel de Presentación
Se ocupa de la sintaxis y semántica de la información transferida entre máquinas:
Orden de bytes de enteros (little endian/big endian).
Representación de caracteres alfabéticos.
Tamaño de los tipos de datos.
Tı́picamente traduce los datos a un formato normalizado que todas
las máquinas entienden.
También se suele ocupar de la compresión y cifrado de datos.
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
28
Arquitectura OSI (cont.)
Nivel de Aplicación
Contiene un conjunto de protocolos que son de utilidad directa para
aplicaciones que usan la red:
Para transmisión de ficheros
Para correo electrónico
Para control de trabajos remotos
...
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
29
Arquitectura OSI (cont.)
Crı́ticas al Modelo OSI
Surgió demasiado pronto.
Niveles de distinto “grosor”.
Modelo muy complejo.
Funcionalidades mal situadas: cifrado, . . .
Modelo dominado por una visión “telefónica” de las redes de datos
Hoy la arquitectura OSI ha caı́do en desuso, pero se utiliza su terminologı́a (fundamentalmente la denominación de los niveles)
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
30
Arquitectura TCP/IP
Arquitectura TCP/IP
Su desarrollo comenzó a finales de los 60, como proyecto financiado
por el Gobierno de los Estados Unidos.
Auténtico sistema abierto: Los protocolos y sus implementaciones
están disponibles públicamente.
Constituyen el armazón sobre el que se sitúa Internet.
No se ajusta exactamente al modelo de referencia OSI, surgio antes
y OSI no intentó incluirlo.
Su éxito (a partir del de Internet) ha hecho que sea la arquitectura
más importante y conocida actualmente.
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
31
Arquitectura TCP/IP (cont.)
La pila TCP/IP
Nivel de Aplicación
DNS, SMTP, HTTP. . .
Nivel de Transporte
TCP, UDP
Nivel de Red
IP, ICMP
Nivel de Enlace
c
2004
GSyC
Ethernet, PPP, ADSL
Redes: Introducción a las Redes de Ordenadores
32
Arquitectura TCP/IP (cont.)
ordenador A
ordenador B
Protocolo HTTP
Servidor HTTP
Cliente HTTP
Protocolo TCP
TCP
TCP
encaminador
IP
Driver + Tarjeta
Ethernet
Protocolo IP
Protocolo
Ethernet
Protocolo IP
IP
Driver + Tarjeta
Ethernet
Driver + Tarjeta
Ethernet
Protocolo
Ethernet
IP
Driver + Tarjeta
Ethernet
ETHERNET
ETHERNET
c
2004
GSyC
Redes: Introducción a las Redes de Ordenadores
Arquitectura TCP/IP (cont.)
33
Nivel Fı́sico
c
2004
GSyC
Redes: Nivel Fı́sico
34
Introducción
Introducción
El nivel fı́sico es el más bajo de toda la torre OSI.
Se ocupa de cómo se transmiten los datos a través de los medios
fı́sicos de transmisión.
Debe ocuparse de que las entidades directamente interconectadas
concuerden en la forma de usar el medio fı́sico, es decir, que un bit a
1 enviado no sea interpretado por el receptor como un bit a 0.
c
2004
GSyC
Redes: Nivel Fı́sico
35
Conceptos Generales
Conceptos Generales
Velocidad de Transmisión: Bits por segundo que se transmiten
(Unidades: Kbps, Mbps, Gbps). También se le llama, informalmente, “ancho de banda”)
Latencia o Retardo de propagación: Tiempo que tarda un bit desde que sale hasta que llega a su destino.
Transmisión Simplex: El canal de comunicaciones es de un solo
sentido.
Transmisión Semi-Duplex: Canal bidireccional, pero en el que no
puede transmitirse en ambos sentidos a la vez.
Transmisión Duplex: Canal bidireccional en el que puede transmitirse en ambos sentidos a la vez.
c
2004
GSyC
Redes: Nivel Fı́sico
36
Medios de Transmisión
Medios de Transmisión
Medios Magnéticos
Se almacenan datos en cintas magnéticas que se transportan en tren
o camión a su destino, donde se leen.
¡No es broma!
Se pueden alcanzar velocidades de transferencia media de varios
Gbps.
El problema es la latencia o retardo de propagación: lo que tarda en
llegar el primer bit a su destino.
Los bancos siguen utilizando estos métodos.
c
2004
GSyC
Redes: Nivel Fı́sico
37
Medios de Transmisión (cont.)
Cable de Pares
Cable de pares: Dos cables de cobre de 1 mm de espesor, trenzados
en hélice.
Pueden emplearse sin amplificación en varios kilómetros.
Utilizados tanto en telefonı́a como redes Ethernet.
Pueden alcanzarse cientos de Mbps de ancho de banda.
c
2004
GSyC
Redes: Nivel Fı́sico
38
Medios de Transmisión (cont.)
Cable Coaxial de Banda Base
Núcleo de cobre, aislante y malla conductora. 50 ohmios.
Mayor inmunidad al ruido que el cable de pares.
Con cables de 1 km se alcanzan 10 Mbps.
c
2004
GSyC
Redes: Nivel Fı́sico
39
Medios de Transmisión (cont.)
Cable Coaxial de Banda Ancha
Igual que el de Banda Base, pero de 75 ohmios.
Utilizado tradicionalmente para televisión.
Alcanza hasta 150 Mbps, pero necesita amplificadores intermedios
que convierten el canal en unidireccional.
c
2004
GSyC
Redes: Nivel Fı́sico
40
Medios de Transmisión (cont.)
Fibra Óptica
En vez de corriente eléctrica se transmite luz.
Para transmisión digital: La presencia de luz es un 1, la ausencia un
0.
Sistema de Transmisión:
Emisor: Diodo láser
Medio: Fibra óptica (silicio)
Receptor: Foto-diodo
Puede transmitirse hasta a 20 Gbps en varios km. Se han alcanzado
velocidades de 1 Tbps en laboratorio y el lı́mite teórico está por los
50 Tbps.
c
2004
GSyC
Redes: Nivel Fı́sico
41
Medios de Transmisión (cont.)
Transmisión por Aire
Se transmiten señales de radiofrecuencia por radiado (broadcast).
Tres escenarios en los que se utiliza:
Redes Inalámbricas (WiFi/802.11):
• Alcances en el entorno de los cientos de metros, con antenas direccionales especiales unos cuantos kilómetros.
• 11 Mbps - 54 Mbps
Redes por Satélite:
• Cuando no hay visón directa emisor–receptor: Satélites.
• Cada satélite tiene varios transpondedores (canales), ofreciendo cada uno cientos de Mbps para transmisión de datos.
• Principal problema: retardo, tı́picamente 300 ms extremo a extremo
para satélites geosincrónicos. Pero si no hay retransmisiones, puede
ser mejor que cables.
GSM/GPRS
c
2004
GSyC
Redes: Nivel Fı́sico
42
Transmisión Digital
Transmisión Digital
Para medios capaces de transportar una señal digital directamente.
Ventaja: Menor tasa de errores (puede recrearse la señal original
en puntos intermedios)
Se transmite una señal cuadrada, en la que los distintos niveles
de tensión indican la transmisión de ceros o unos.
Hay varias formas de codificar los 0 y 1: Código unipolar, NRZ,
Manchester, Manchester diferencial. . .
c
2004
GSyC
Redes: Nivel Fı́sico
43
Transmisión Digital (cont.)
Ejemplo: Código Manchester
V
0
0
1
0
0
1
1
1
0
1
t
Nota: No se puede transmitir una señal cuadrada perfecta (ancho
de banda infinito). Se transmite una suma de sinusoides que se le
parece:
c
2004
GSyC
Redes: Nivel Fı́sico
44
Transmisión Analógica
Transmisión Analógica
Para medios diseñados para transportar señales analógicas (ej:
lı́nea telefónica).
Se necesitan MOduladores–DEModuladores en los puntos de acceso al medio.
Los modems convierten una señal digital en su equivalente analógica (modulan) y viceversa (demodulan).
MODEM
MODEM
Transmision
´ Digital
Transmision
´
´ Analogica
c
2004
GSyC
Redes: Nivel Fı́sico
45
Transmisión Analógica (cont.)
Tipos de Modulación
0
Señal digital:
1
0
1
1
0
0
1
0
0
1
0
0
(a)
Modulación ASK:
(b)
Modulación FSK:
(c)
Modulación PSK:
(d)
Phase changes
Modulación QAM:
c
2004
GSyC
Combinación de ASK y PSK.
Redes: Nivel Fı́sico
46
Transmisión Analógica (cont.)
Nivel de Enlace
c
2004
GSyC
Redes: Nivel de Enlace
47
Introducción
Introducción
El Nivel de Enlace suele subdividirse en dos subniveles:
Nivel de Red
LLC (Subnivel de Control del Enlace Lógico)
MAC (Subnivel de Control de Acceso al Medio)
Nivel Fı́sico
MAC: gobierna el acceso a un medio de transmisión compartido por varias
máquinas
LLC: ofrece al nivel de red un servicio de transmisión de datos entre máquinas adyacentes, encargándose de:
composición/descomposición de tramas.
control de flujo (opcional).
gestión de los errores en la transmisión (opcional).
c
2004
GSyC
Redes: Nivel de Enlace
48
El problema del acceso al medio
El problema del acceso al medio
¿Cómo y cuando asignar el canal fı́sico a las distintas máquinas que
lo comparten y quieren acceder a él?
Soluciones:
Asignación estática: Se reparte el canal en el tiempo (TDM) o
en frecuencia (FDM). Bueno para tráficos pesados y constantes,
pero malo para ráfagas (lo habitual).
Asignación dinámica: No está prefijado el reparto. Trata de aprovechar mejor el canal en LAN’s.
• Acceso por contienda: Las máquinas compiten por usar el medio. Si coinciden dos o más a la vez: colisión
• Acceso por reserva: Las máquinas pueden hacer reservas para poder usar el canal en exclusiva durante un tiempo
c
2004
GSyC
Redes: Nivel de Enlace
49
Protocolo CSMA/CD
Protocolo CSMA/CD
CSMA/CD (Carrier Sense Multiple Access with Collision Detection):
Acceso múltiple con detección de portadora.
Funcionamiento:
Cuando una estación quiere transmitir escucha en el canal.
Si está ocupado, espera a que quede libre
Si está libre, transmite.
Mientras transmite, sigue escuchando para ver si alguien transmite a la vez, en cuyo caso aborta la transmisión
c
2004
GSyC
Redes: Nivel de Enlace
50
Protocolo CSMA/CD (cont.)
¿Cómo se pueden producir las colisiones?
Cuando dos estaciones deciden transmitir simultáneamente al
ver el canal libre.
Cuando el canal parece libre pero no lo está debido al retardo de
propagación de los paquetes por la red.
Caso patológico: Dos estaciones quieren transmitir y ven que el canal
está ocupado. Esperan a que quede libre, y cuando lo está ambas
transmiten a la vez, colisionando. Y ası́ indefinidamente.
Para evitarlo, en caso de colisión las estaciones esperan un tiempo
aleatorio antes de reintentar.
c
2004
GSyC
Redes: Nivel de Enlace
51
Protocolo CSMA/CD (cont.)
Tiempo que tarda en detectarse una colisión en el caso peor (tiempo
de reacción): Doble del retardo máximo de propagación (τ ):
Desde que A empieza a transmitir hasta que pasa τ , B puede
empezar a trasmitir también.
B se da cuenta de la colisión inmediatamente, pero hasta que no
pasa otro τ , A no se entera.
Ejemplo: Con cable coaxial de 1 km
τ = 5 µs
tiempo de reacción = 10 µs
c
2004
GSyC
Redes: Nivel de Enlace
52
Protocolos de Paso de Testigo
Protocolos de Paso de Testigo
Acceso al medio por reserva: Existe un testigo o token que circula por
la red. En todo momento, sólo el poseedor del testigo puede transmitir, por lo que desaparecen las colisiones.
Supone que las estaciones de la red se configuran como un anillo
fı́sico o lógico.
Mecanismo:
Cuando el canal está libre, por él circula el testigo.
Cuando una estación quiere transmitir:
• captura el testigo
• envı́a su trama
• devuelve el testigo al anillo.
c
2004
GSyC
Redes: Nivel de Enlace
Nivel de Enlace
53
Nivel de Enlace
Recuerda: 2 partes.
MAC: Control de acceso al medio (ya visto)
LLC: Control del enlace lógico:
• Gestión de tramas
• Control de flujo (opcional)
• Control de errores (opcional)
c
2004
GSyC
Redes: Nivel de Enlace
54
Gestión de tramas
Gestión de tramas
El nivel fı́sico maneja una “tira” de bits que recibe-del/pasa-al nivel de
enlace.
El nivel de enlace maneja unidades de datos denominadas tramas.
Debe encargarse de:
con los datos que recibe del nivel de red, formar tramas que pasa
al nivel fı́sico
de los bits que recibe del nivel fı́sico, reconocer tramas y extraer
los datos de ellas para pasárselos al nivel de red.
c
2004
GSyC
Redes: Nivel de Enlace
55
Gestión de tramas (cont.)
Separación de tramas
Cuando el nivel de enlace toma la tira de bits del nivel fı́sico debe ser
capaz de identificar tramas en ella.
El método más habitual es colocar patrones especiales de bits al principio y/o al final de cada trama. Por ejemplo: 01111110.
Problema: ¿Y si en medio bits de datos aparece justo ese patrón
especial?
Solución: Bits de relleno (bit stuffing) — Si vienen 5 unos seguidos,
el emisor añade un 0 de “relleno”. El receptor, cada vez que recibe 5
unos, descarta el 0 subsiguiente.
c
2004
GSyC
Redes: Nivel de Enlace
56
Control de Flujo
Control de Flujo
Problema: Emisor enviando más deprisa de lo que el receptor es capaz de recoger.
Solución: Los protocolos incluyen reglas que permiten al transmisor
saber de forma implı́cita o explı́cita si puede enviar otra trama al receptor.
Ejemplo: Al establecer la conexión, el receptor indica que se le pueden enviar hasta N tramas consecutivas, pero no más hasta que él lo
indique expresamente.
c
2004
GSyC
Redes: Nivel de Enlace
57
Gestión de errores
Gestión de errores
El problema de la gestión de errores puede abordarse en el nivel de
enlace o en niveles superiores (normalmente nivel de transporte).
Si se hace en el nivel de enlace, se corrigen los errores en la
comunicación entre cada par de máquinas adyacentes que participen en la comunicación
Si se hace en el nivel de transporte, se corrigen los errores en las
máquinas origen y destino de la comunicación.
c
2004
GSyC
Redes: Nivel de Enlace
58
Gestión de errores (cont.)
Problemas:
1. algún bit de una trama ha cambiado
2. una trama entera se ha perdido
3. una trama llega por duplicado al receptor
Normalmente, el primer problema se resuelve siempre en el nivel de
enlace, pues esos errores se dan con cierta frecuencia entre máquinas adyacentes.
Los otros dos problemas no son tan habituales entre máquinas adyacentes, por lo que podrı́a “diferirse” su solución a niveles superiores.
c
2004
GSyC
Redes: Nivel de Enlace
59
Bits cambiados en una trama
Bits cambiados en una trama
Soluciones al problema:
el receptor detecta el error y lo corrige automáticamente.
el receptor detecta el error y descarta la trama incorrecta, esperando que en algún momento el emisor la retransmita (ya veremos como).
c
2004
GSyC
Redes: Nivel de Enlace
60
Corrección de errores
Corrección de errores
Consiste en introducir redundancia en la información que se envı́a
para, en caso de error, poder “suponer” cuál era la información original.
Idea Básica:
sólo ciertos patrones de bits son “posibles”
si se recibe un patrón “imposible”, se supone que el que se querı́a
enviar es aquel “posible” que más se le parezca.
Distancia Hamming (d): N.o de diferencias entre dos patrones consecutivos.
En un patrón pueden detectarse hasta d−1 errores, y corregirse hasta
(d − 1)/2 errores.
c
2004
GSyC
Redes: Nivel de Enlace
61
Corrección de errores (cont.)
Ejemplo:
1. Patrones posibles: 0000000000, 0000011111, 1111100000, 1111111111
2. Se recibe: 0000000111
3. Se corrige a 0000011111
En este caso, d = 5, por lo que se pueden corregir hasta 2 errores en
un patrón.
Si al transmitir 0000011111 hubiera habido 3 errores, y llegado 0000000011,
se hubiera corregido incorrectamente a 0000000000. Sin embargo
sı́ se puede detectar que ha habido errores (se pueden detectar hasta 4).
c
2004
GSyC
Redes: Nivel de Enlace
62
Detección de errores y retransmisión
Detección de errores y retransmisión
Ahora la redundancia que se introduce es sólo con el objeto de poder detectar cuándo una trama ha llegado con errores, sin intentar
corregirlos pues la trama será reenviada.
Es más eficiente detectar que corregir errores: se necesitan menos
bits de redundancia, aunque aparece la necesidad de retransmitir.
La corrección de errores se utiliza fundamentalmente en casos en
que es imposible retransmitir. Ejemplo: Medios de transmisión simplex.
c
2004
GSyC
Redes: Nivel de Enlace
63
Detección de errores y retransmisión (cont.)
Bit de Paridad
Consiste en añadir un bit al patrón de datos que se envı́a.
Paridad Par: El bit añadido hace que el total de unos enviado sea
siempre par.
Paridad Impar: El bit añadido hace que el total de unos enviado
sea siempre impar.
Se puede detectar un error de 1 bit del patrón, y hay un 50 % de
probabilidades de detectar un error en más de 1 bit a la vez.
c
2004
GSyC
Redes: Nivel de Enlace
64
Detección de errores y retransmisión (cont.)
Códigos de Redundancia Cı́clica (CRC)
Se consideran los patrones de bits como polinomios, y se realizan
operaciones aritméticas módulo 2 con ellos.
El cálculo del CRC se implementa con circuitos hardware sencillos.
c
2004
GSyC
Redes: Nivel de Enlace
Detección de errores y retransmisión (cont.)
65
Se demuestra que con los CRC de 16 bits se detectan:
Todos los errores simples y dobles
Todos los errores en un número impar de bits
Todas las ráfagas de longitud≤16 bits
El 99.997 % de las ráfagas de 17 bits
El 99.998 % de las ráfagas de longitud≥18 bits
c
2004
GSyC
Redes: Nivel de Enlace
66
Recuperación de pérdidas y/o duplicados
Recuperación de pérdidas y/o duplicados
Estos protocolos, además de permitir la recuperación frente a tramas perdidas y/o duplicadas pueden utilizarse también para realizar
el control de flujo.
Se utilizan Timeouts y Asentimientos para implementarlos
MUY IMPORTANTE: Pueden situarse en el nivel de enlace o en niveles superiores. En las redes TCP/IP no aparecen hasta (por lo menos)
el nivel de transporte.
c
2004
GSyC
Redes: Nivel de Enlace
67
Recuperación de pérdidas y/o duplicados (cont.)
Tres tipos principales de protocolos:
De parada y espera: El transmisor, después de enviar una trama,
espera su asentimiento por parte del receptor antes de enviar la
siguiente.
De envı́o continuo: El transmisor va enviando tramas sucesivamente, y el receptor le va asintiendo por su cuenta. Requiere memoria infinita.
De ventanas: El transmisor puede enviar un número máximo de
tramas antes de recibir el primer asentimiento
c
2004
GSyC
Redes: Nivel de Enlace
Recuperación de pérdidas y/o duplicados (cont.)
68
Parada y Espera
Mecanismo básico:
Emisor
Receptor
tiempo
dato-1
Plazo
ACK
c
2004
GSyC
Redes: Nivel de Enlace
Recuperación de pérdidas y/o duplicados (cont.)
Emisor
tiempo
69
Receptor
dato-1
Plazo
dato-1
Plazo
ACK
c
2004
GSyC
Redes: Nivel de Enlace
70
Recuperación de pérdidas y/o duplicados (cont.)
El protocolo genera duplicados, que podrı́an descartarse en el receptor si los paquetes van identificados de alguna forma.
c
2004
GSyC
Redes: Nivel de Enlace
Recuperación de pérdidas y/o duplicados (cont.)
Emisor
71
Receptor
tiempo
dato-1
Plazo
ACK
dato-1
Plazo
ACK
c
2004
GSyC
Redes: Nivel de Enlace
72
Recuperación de pérdidas y/o duplicados (cont.)
Emisor
Receptor
tiempo
dato-1
Plazo
ACK
dato-1
Plazo
ACK
c
2004
GSyC
Redes: Nivel de Enlace
73
Recuperación de pérdidas y/o duplicados (cont.)
Solución: Con asentimiento alternado: cada paquete de datos lleva
un bit que va alternando. Los acks también incluyen el bit para identificar uno u otro paquete.
Emisor
Receptor
Emisor
Receptor
dato-1 (0)
dato-1 (0)
plazo
ack (0)
ack (0)
dato-2 (1)
dato-1 (0)
ack (1)
ack (0)
dato-3 (0)
dato-2 (1)
ack (0)
ack (1)
c
2004
GSyC
Ya no hay duplicados ni pérdidas
Redes: Nivel de Enlace
74
Recuperación de pérdidas y/o duplicados (cont.)
Envı́o Continuo
El canal está infrautilizado. Mejor que el emisor envı́e siempre que
pueda.
Envı́o contı́nuo con Rechazo Simple:
Emisor
tiempo
Receptor
dato-1
dato-2
dato-3
dato-4
dato-5
nack-3
Se asiente negativamente la trama perdida,
por lo que ¡¡cada trama debe tener un identificador!!
dato-6
dato-3
dato-4
El Emisor debe reenviar todas las tramas desde la perdida
dato-5
c
2004
GSyC
Redes: Nivel de Enlace
75
Recuperación de pérdidas y/o duplicados (cont.)
Envı́o contı́nuo con Rechazo Selectivo:
Emisor
Receptor
dato-1
tiempo
dato-2
dato-3
dato-4
dato-5
dato-6
nack-3
Se asiente negativamente la trama perdida
dato-3
dato-7
dato-8
c
2004
GSyC
Emisor sólo retransmite las tramas indicadas,
lo que es más eficiente
Redes: Nivel de Enlace
76
Recuperación de pérdidas y/o duplicados (cont.)
Ventanas
Parada y Espera es muy lento.
Envı́o Contı́nuo requerirı́a memoria infinita.
Solución intermedia: El Emisor, en vez de parar después de transmitir cada trama, para después de transmitir n (tamaño de la ventana)
tramas.
Cuando va recibiendo los ACKs de las tramas enviadas puede proseguir enviando nuevas tramas.
c
2004
GSyC
Redes: Nivel de Enlace
Recuperación de pérdidas y/o duplicados (cont.)
Emisor
1
dato-1
1 2
dato-2
1 2
3
77
Receptor
dato-3
Tamaño de ventana del Emisor: 3
ack-1
2 3
4 2 3
4
3
4 5 3
ack-2
dato-4
dato-5
4 5 3
c
2004
GSyC
dato-3
Redes: Nivel de Enlace
78
Protocolos de Nivel de Enlace en redes TCP/IP
Protocolos de Nivel de Enlace en redes
TCP/IP
Los más habituales:
Ethernet
Fast Ethernet
PPP
c
2004
GSyC
Redes: Nivel de Enlace
79
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
Ethernet
Norma originalmente establecida por Xerox, DEC e Intel.
Pensada para medios compartidos con acceso mediante CSMA/CD
Hasta 10 Mbps
Medios fı́sicos:
• Cable coaxial grueso (Thicknet): 10Base5, topologı́a en bus.
• Cable coaxial fino (Thinnet): 10Base2, topologı́a en bus.
• Par trenzado: 10Base-T, topologı́a en estrella.
• Fibra óptica: 10Base-F, topologı́a en estrella
Nivel Fı́sico: Código Machester, niveles de +0.85V y –0.85V.
Acceso al Medio: CSMA/CD
c
2004
GSyC
Redes: Nivel de Enlace
80
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
10BaseT:
Cable UTP-3 ó UTP-5 (Unshielded Twisted Pair ): 4 Pares trenzados, no blindados, categorı́a 3 ó 5.
Conectores RJ-45.
Se usa un par para transmitir y otro para recibir (full duplex).
Un concentrador (hub) hace de bus. Lo que recibe por una boca, lo retransmite por todas las demás. 10 Mbps entre todas las
bocas.
A veces se usa un conmutador (switch): Reenvı́a sólo a la boca
a la que se conecta el destinatario. 10 Mbps por boca y sentido,
varias transmisiones a la vez.
Longitud máxima hasta el concentrador: 100 metros
c
2004
GSyC
Redes: Nivel de Enlace
81
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
Formato de trama
nº bytes
7
1
Preámbulo
6
6
2
0 - 1500
0 - 46
4
Dirección destino
Dirección origen
Tipo
Datos
Relleno
CRC
Comienzo de trama
Preámbulo 10101010 (x 7 bytes). Permite al receptor sincronizar su
reloj con el del transmisor.
Comienzo de trama 10101011, indicando que a continuación empieza la trama.
c
2004
GSyC
Redes: Nivel de Enlace
82
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
Direcciones destino y origen 6 bytes.
Si todos los bits de destino son 1, la trama será entregada a
todas las estaciones de la subred (omnienvı́o o broadcast).
Si el bit 47 (el de mayor peso) de la dirección destino es 1,
la trama va destinada a un grupo de máquinas (multienvı́o o
multicast).
Si el bit 46 de una dirección está a 1, la dirección es de ámbito
mundial, asignada de forma única. Si está a 0, es de ámbito
local, relativo a esa subred. En ambos casos son direcciones
unienvı́o o unicast.
La dirección de destino va delante para que una estación sepa
rápidamente si una trama es para ella o no.
c
2004
GSyC
Redes: Nivel de Enlace
83
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
Tipo Indica el Protocolo encapsulado dentro del campo de Datos:
0x0800 datagrama IP
0x0806 paquete ARP (28 bytes de datos y 18 de relleno)
0x8035 paquete RARP (28 bytes de datos y 18 de relleno)
Datos Entre 46 y 1500 bytes.
Relleno La norma obliga a que toda trama sea ≥ 64 bytes, para poder
considerar que todas las tramas menores son resultado de transmisiones abortadas al detectar colisión. Por ello, si hay menos de
46 bytes de datos, se utilizan estos bytes de relleno.
Retardo máx. de propagación en 2,5 km, 4 repetidores: 25.6 µs
Tiempo de Reacción: 25.6 x 2 = 51.2 µs
Bits transmitidos en 51.2 µs a 10 Mbps: 51,2·10−6 ×10·106 = 512
bits = 64 bytes.
c
2004
GSyC
Redes: Nivel de Enlace
84
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
CRC 32 bits de Control de Redundancia Cı́clica, para la detección
de errores:
El transmisor calcula el CRC de los bits de datos, y lo coloca
en la trama.
El receptor calcula el CRC de los bits de datos de la trama, y
comprueba que coincida con el CRC que viene en ella. Si no
coincide, los datos han sido modificados por ruido en el cable,
y se descarta la trama.
c
2004
GSyC
Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
85
Fast Ethernet
Compatible con Ethernet (mismo formato de trama).
100 Mbps
100Base-TX: 2 pares UTP-5
100Base-T4: 4 pares UTP-3
100Base-FX: 2 fibras ópticas
c
2004
GSyC
Redes: Nivel de Enlace
86
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
PPP: Point to Point Protocol
Es un protocolo pensado para encapsular IP (nivel de red) sobre
lı́nea serie.
Está diseñado de forma que no sólo puede encapsular IP, sino
también otros protocolos.
Se utiliza fundamentalmente para conectarse a Internet a través
de la red telefónica básica mediante módem.
Históricamente se usó primero SLIP (Serial Line IP), pero PPP
es más completo. La principal diferencia de PPP con SLIP es
que PPP incluye detección de errores de transmisión mediante
CRC.
flag
7E
addr
FF
control
03
protocolo
1
1
1
2
datos
CRC
hasta 1500
c
2004
GSyC
2
flag
7E
1
nº bytes
Redes: Nivel de Enlace
87
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
ADSL: Asymetric Digital Susbcriber Line
Una lı́nea telefónica normal transmite voz: Una banda de 0-4kHz. En un par
de cobre “cabe más”, por lo que en la centralita se agrupan (multiplexan)
varias conversaciones (desplazadas en frecuencia) por un mismo cable. Las
transmisiones mediante módem con PPP reciben el mismo trato.
Con ADSL el abonado continúa utilizando los primeros 4kHz para las llamadas de voz, pero ahora ocupa más ancho de banda para la transmisión
(simultánea) de datos. En la centralita se trata al abonado de forma diferente,
separando los 4kHz por un lado y transmitiendo los datos de forma independiente.
Es asimétrico: se reserva más para recibir (256Kbps–2Mbps) que para enviar
(128Kbps–300Kbps). Ambas bandas están separadas.
Se transmite por modulación multitono discreta (MDT).
ADSL es más bien un nivel fı́sico: como nivel de enlace puede utilizarse cualquier de los usados en lı́neas punto a punto.
c
2004
GSyC
Redes: Nivel de Enlace
88
Dispositivos de interconexión de subredes
Dispositivos de interconexión de subredes
Para interconectar subredes pueden colocarse dispositivos muy diferentes en propósito y funcionamiento:
repetidores (repeaters)
puentes (bridges)
encaminadores (routers)
concentradores (hubs)
conmutadores (switches)
c
2004
GSyC
Redes: Nivel de Enlace
89
Dispositivos de interconexión de subredes (cont.)
Repetidores
Copian señales eléctricas de un medio fı́sico de transmisión a
otro (trabajan en el nivel 1).
Permiten extender la longitud fı́sica de la subred
Aislan los fallos de diferentes segmentos de la subred
c
2004
GSyC
Redes: Nivel de Enlace
90
Dispositivos de interconexión de subredes (cont.)
Puentes
Interconectan dos LAN, pasando tramas de una a otra (trabajan
en el nivel 2).
Las máquinas de las dos subredes NO son conscientes de la
presencia del bridge.
c
2004
GSyC
Redes: Nivel de Enlace
91
Dispositivos de interconexión de subredes (cont.)
Encaminadores
Interconectan subredes distintas trabajando en el nivel de red. La
mayor diferencia con los bridges es que los niveles de enlace de
máquinas de las subredes que interconectan SÍ son conscientes
de su presencia.
Los estudiaremos con más detalle en el tema siguiente.
c
2004
GSyC
Redes: Nivel de Enlace
92
Dispositivos de interconexión de subredes (cont.)
Concentradores
Ofrecen el servicio de un bus a topologı́as en estrella.
Su servicio es fundamentalmente de nivel 1: repiten la señal de
una boca a las otras
Puede incorporar cierta funcionalidad de nivel 2: en Ethernet,
cuando detectan señal por una boca, envı́an ruido por todas las
demás para que la vean las tarjetas, colisionen y reintente.
Reparten el ancho de banda disponible entre todas las bocas
c
2004
GSyC
Redes: Nivel de Enlace
93
Dispositivos de interconexión de subredes (cont.)
Conmutadores
Exteriormente muy parecidos a los concentradores, pero de comportamiento muy diferente
Almacenan internamente las tramas entrantes en buffers, del que
en paralelo van sacando tramas y reenviándolas por las bocas
adecuadas (trabajan en el nivel 2).
Pueden dar todo el ancho de banda a cada una de varias transmisiones simultáneas entre bocas.
Para tecnologı́as compatibles (Ethernet/FastEthernet) pueden tener bocas trabajando a distintas velocidades.
Reciben su nombre porque, para una transmisión entre dos bocas, ofrecen un funcionamiento equivalente a “conmutar” para interconectarlas ofreciendo un único canal directo e independiente
de otras transmisiones.
c
2004
GSyC
Redes: Nivel de Enlace
94
Dispositivos de interconexión de subredes (cont.)
Nivel de Red
c
2004
GSyC
Redes: Nivel de Red
95
Introducción
Introducción
El nivel de red se ocupa de que los paquetes que salen del transmisor lleguen a su destino final, aunque el emisor y el receptor no estén
“adyacentes” (conectados directamente al mismo medio de transmisión).
Esto normalmente requiere pasar a través de nodos intermedios: encaminadores (routers). Es necesario elegir la mejor ruta a seguir.
RECORDATORIO: El nivel de enlace sólo se ocupa de que las tramas
viajen entre máquinas “adyacentes”.
c
2004
GSyC
Redes: Nivel de Red
96
Misiones del Nivel de Red
Misiones del Nivel de Red
Encaminamiento de paquetes.
Asignación de direcciones únicas a todas las máquinas de la red,
independientes de la tecnologı́a de los niveles de enlace.
Interconexión en una misma red de subredes con distinto nivel de
enlace.
Control de congestión.
c
2004
GSyC
Redes: Nivel de Red
Tipos de Nivel de Red
97
Tipos de Nivel de Red
Según haya o no conexiones de red:
No orientado a conexión
Orientado a conexión
Según se encamine cada paquete por separado o no:
Basado en datagramas
Basado en ciruitos virtuales
Según se ofrezca o no un servicio fiable:
Fiable
No fiable
c
2004
GSyC
Redes: Nivel de Red
98
Tipos de Nivel de Red (cont.)
Servicio No Orientado a Conexión
Cada vez que el nivel superior quiere enviar datos, se compone una unidad de datos (paquete) con ellos y se envı́a. No hay
relación con transmisiones previas o futuras al mismo destino
Servicio Orientado a Conexión
Antes de enviar el primer byte de datos, origen y destino mantienen un diálogo inicial para establecer ciertas condiciones de
la transferencia de información, que se mantienen mientras dure
esta transferencia
c
2004
GSyC
Redes: Nivel de Red
99
Tipos de Nivel de Red (cont.)
Servicio basado en Datagramas
La dirección de destino viaja en todos los paquetes de datos.
El encaminamiento de cada paquete es independiente, por lo
que varios paquetes enviados del mismo origen al mismo destino
pueden viajar por diferentes rutas (y, tal vez, llegar en desorden).
Servicio basado en Circuitos Virtuales
Al principio se establece un “circuito virtual” por el que viajarán
todos los paquetes de datos.
La dirección de destino viaja sólo en los paquetes que establecen
el cirtuito virtual. Los paquetes con datos sólo llevan un identificador del circuito virtual al que pertenecen
Todos los paquetes pertenecientes a un mismo circuito virtual
siguen el mismo camino y llegan en orden.
c
2004
GSyC
Redes: Nivel de Red
100
Tipos de Nivel de Red (cont.)
Servicio basado en datagramas:
3
2
1
3
A
B
3
2
1
E
2
1
C
2
3
1
1
D
c
2004
GSyC
Redes: Nivel de Red
101
Tipos de Nivel de Red (cont.)
Servicio basado en circuitos virtuales:
3
2
1
A
3
2
1
B
3
2
1
E
3
2
1
C
D
c
2004
GSyC
Redes: Nivel de Red
102
Tipos de Nivel de Red (cont.)
Servicio Fiable:
Se garantiza al nivel superior que todos los paquetes llegan a su
destino, y que el destino es capaz de reordenarlos si se desordenan en el camino.
Para ello se numeran los paquetes, y se retransmiten los perdidos
Servicio No Fiable:
No se garantiza al nivel superior que todos los paquetes lleguen
a su destino: pueden perderse paquetes (tı́picamente por congestión).
Algún nivel superior deberá ser capaz de detectar y recuperarse
de estas pérdidas, si la aplicación lo requiere.
c
2004
GSyC
Redes: Nivel de Red
103
Tipos de Nivel de Red (cont.)
Todas las combinaciones de tipos de servicio de nivel de red son
teóricamente posibles, pero no todas se dan en la práctica.
Las combinaciones más frecuentes son:
Servicio Orientado a Conexión, basado en Circuitos Virtuales y
Fiable (ejemplo: X.25).
Servicio No Orientado a Conexión, basado en Datagramas y No
Fiable (ejemplo: IP).
c
2004
GSyC
Redes: Nivel de Red
104
Direcciones de Red
Direcciones de Red
Se necesita un mecanismo de identificación unı́voca de todas las
máquinas de la red, independientemente de la tecnologı́a del nivel
de enlace de cada una.
Existen distintos métodos de direccionamiento según el tipo de redes.
Veremos más adelante el formato de las direcciones del nivel de red
IP.
c
2004
GSyC
Redes: Nivel de Red
105
Interconexión de subredes con distinto nivel de enlace
Interconexión de subredes con distinto nivel
de enlace
Dependiendo de la arquitectura de red que se trate, puede que
se desee integrar en una misma red a subredes con distinto nivel
de enlace.
Cuando ası́ ocurre, es misión de nivel de red hacer esta integración
Es necesario que el nivel de red del encaminador que une las
subredes “entienda” los dos niveles de enlace. Puede tener que
resolver problemas de:
• distintos tamaños de las unidades de datos
• distintas velocidades de las subredes
c
2004
GSyC
Redes: Nivel de Red
106
Interconexión de subredes con distinto nivel de enlace (cont.)
Ejemplo
Protocolo FTP
Cliente FTP
Servidor FTP
Protocolo TCP
TCP
TCP
router
IP
Driver Ethernet
Protocolo IP
Protocolo
Ethernet
Protocolo IP
IP
Driver Ethernet
Driver token ring
Protocolo
token ring
IP
Driver token ring
TOKEN RING
ETHERNET
c
2004
GSyC
Redes: Nivel de Red
107
Encaminamiento
Encaminamiento
El proceso mediante el cuál se encuentra un camino entre dos puntos
cualesquiera de la red
Problemas a resolver: ¿Qué camino escoger? ¿Existe alguno más
corto? ¿Qué ocurre si un encaminador o un enlace intermedio se
rompen? ...
c
2004
GSyC
Redes: Nivel de Red
108
Encaminamiento (cont.)
Algoritmo de encaminamiento: Procedimiento por el cuál los encaminadores (routers) alcanzan las decisiones de las mejores rutas para
cada destino.
Como parte del algoritmo de encaminamiento, normalmente los encaminadores tienen que enviarse entre sı́ mensajes de control para
conseguir toda la información necesaria.
El resultado de los algoritmos de encaminamiento es generar en cada
encaminador su tabla de encaminamiento.
Tabla de encaminamiento: Tabla que consulta el encaminador cada
vez que recibe un paquete y tiene que encaminarlo. Esta tabla tiene
esta forma:
Destino final
Encaminador vecino al que enviar el paquete
D1
V1
D2
V2
...
...
Muchas veces se utiliza el término Protocolo de Encaminamiento en
vez de Algoritmo de Encaminamiento.
c
2004
GSyC
Redes: Nivel de Red
109
Encaminamiento (cont.)
Objetivos de un algoritmo de encaminamiento
Minimizar el espacio de la tabla de encaminamiento para poder
buscar rápidamente y para tener menos información a intercambiar con otros encaminadores
Minimizar el número y frecuencia de mensajes de control
Robustez: evitar agujeros negros, evitar bucles, evitar oscilaciones en las rutas
Generar caminos óptimos:
• menor retardo de tránsito, o
• camino más corto (en función de una cierta métrica en función
de retardo, coste de los enlaces, . . . ), o
• máxima utilización de la capacidad de la red
c
2004
GSyC
Redes: Nivel de Red
110
Encaminamiento (cont.)
Algoritmo de inundación
Es un algoritmo simple que a veces se utiliza cuando no hay ninguna información de encaminamiento disponible (al arrancar algún otro
algoritmo):
1. Cada paquete recibido por un nodo es encaminado a todos los
vecinos (excepto al que lo envió).
2. Los paquetes van etiquetados y numerados.
3. Si un nodo recibe un paquete que ya ha encaminado, lo descarta.
c
2004
GSyC
Redes: Nivel de Red
111
Encaminamiento (cont.)
Algoritmo de aprendizaje
Es un algoritmo simple, que mejora el de inundación. Se utiliza también en los bridges de nivel de enlace.
1. Cada nodo mantiene una tabla con entradas
(Destino, enlace por el que encamino)
que va actualizando según los paquetes que va recibiendo.
2. Al recibir un paquete, se fija en el nodo origen y enlace por el que
le ha llegado, apuntando en la tabla que cuando ese nodo sea
destino de un paquete lo encaminará por ese enlace
3. Cuando para un destino no hay entrada en la tabla, se envı́a por
inundación.
c
2004
GSyC
Redes: Nivel de Red
112
Encaminamiento (cont.)
Algoritmo de Dijkstra
Es un algoritmo que encuentra caminos de distancia mı́nima de un nodo al
resto (por lo que cada nodo ejecuta el algoritmo). Requiere conocer todas las
distancias entre nodos adyacentes.
1.
Se trabaja con dos conjuntos de nodos:
P : Nodos con su encaminamiento ya resuelto (permanentes)
T : Nodos aún no resueltos (tentativos)
2.
Inicialmente P sólo contiene el nodo inicial
3.
Para cada nodo de T :
si no está directamente conectado a ningún nodo de P , su distancia
al nodo inicial es infinta
en caso contrario, se calcula la menor entre la distancia calculada en
un paso anterior y las distancias directas entre él y los nodos de P
4.
El nodo de T de menor distancia se pasa a P . Si aún quedan nodos en
T , se vuelve al paso anterior.
c
2004
GSyC
Redes: Nivel de Red
113
Encaminamiento (cont.)
B
2
7
2
A
E
2
F
D
A
E (∞, −)
H
G (6, A)
(a)
B (2, A)
A
(b)
C (9, B)
E (4, B)
F (∞, −)
B (2, A)
D (∞,−)
A
H (∞, −)
G (6, A)
A
F (6, E)
D (∞,1)
H (∞, −)
(d)
E (4, B)
F (6, E)
H (9, G)
(e)
C (9, B)
G (5, E)
C (9, B)
G (5, E)
D (∞, −)
H (∞, −)
E (4, B)
(c)
B (2, A)
F (∞, −)
2
4
G
C (∞, −)
B (2, A)
3
2
1
6
C
3
B (2, A)
D (∞,−)
A
C (9, B)
E (4, B)
F (6,E)
G (5, E)
D (∞,−)
H (8, F)
(f)
Fig. 5-6. The first five steps used in computing the shortest
path from A to D. The arrows indicate the working node.
c
2004
GSyC
Redes: Nivel de Red
114
Encaminamiento (cont.)
Algoritmos basados en Vectores de Distancias
El protocolo RIP (Routing Information Protocol), utilizado en Internet,
emplea esta técnica.
1.
Cada nodo mantiene una tabla de encaminamiento con pares
(Destino, Nodo vecino por el que encamino), para todos los destinos de
la red.
2.
Cada nodo estima el retardo de sus paquetes a los nodos vecinos (enviando periódicamente paquetes de sondeo).
3.
Cada nodo envı́a periódicamente a sus vecinos todos sus pares
(Destino, retardo estimado)
4.
Cada nodo estudia la información recibida de los vecinos para ver si puede conseguir una ruta de menor retardo enviando a través de otro de sus
vecinos, y actualiza sus tablas de encaminamiento consecuentemente
c
2004
GSyC
Redes: Nivel de Red
115
Encaminamiento (cont.)
New estimated
delay from J
K
Line
Router
A
B
C
D
F
E
G
H
To
A
B
C
D
E
F
G
H
I
J
K
L
I
K
J
(a)
L
A
I
0
12
25
40
14
23
18
17
21
9
24
29
JA
delay
is
8
24
36
18
27
7
20
31
20
0
11
22
33
JI
delay
is
10
8
20
28
20
17
30
18
12
10
0
6
15
H
20
21
31
28
19
36
8
24
30
22
19
40
6
31
0
19
14
22
7
10
22
0
9
9
JH
JK
delay delay
is
is
12
6
A
A
I
H
I
I
H
H
I
−
K
K
New
routing
table
for J
Vectors received from
J's four neighbors
(b)
Fig. 5-10. (a) A subnet. (b) Input from A, I, H, K, and the new
routing table for J.
c
2004
GSyC
Redes: Nivel de Red
116
Encaminamiento (cont.)
Problema: cuenta al infinito.
La información acerca de mejores rutas se propaga poco a poco, consiguiéndose al cabo de un rato que todos los encaminadores tengan
tablas óptimas
Pero las malas noticias (se cae un enlace o un encaminador) tardan
en llegar:
A
B
∞
1
1
1
1
C
∞
∞
2
2
2
D
E
∞
∞
∞
∞ Initially
∞ After 1 exchange
∞ After 2 exchanges
∞ After 3 exchanges
4 After 4 exchanges
A
3
3
(a)
B
1
3
3
5
5
7
7
∞
C
2
2
4
4
6
6
8
..
.
∞
D
E
3
3
3
5
5
7
7
4
4
4
4
6
6
8
∞
∞
Initially
After 1 exchange
After 2 exchanges
After 3 exchanges
After 4 exchanges
After 5 exchanges
After 6 exchanges
(b)
Fig. 5-11. The count-to-infinity problem.
c
2004
GSyC
Redes: Nivel de Red
117
Encaminamiento (cont.)
Algoritmos basados en el Estado de Enlace
El protocolo OSPF (Open Shortest Path First), utilizado en Internet,
emplea esta técnica.
c
2004
GSyC
1.
Cada encaminador mide su distancia con cada uno de sus vecinos (enviando paquetes de sondeo) y construye un paquete de estado de enlaces con esta información.
2.
Cada encaminador envı́a perdiódicamente el paquete de estado de enlaces a todos los encaminadores de la red. Estos mensajes se difunden
por inundación.
3.
Cada encaminador, con la información recibida, conoce la topologı́a completa de la red y calcula el mejor camino a todos sus destinos (aplicando,
por ejemplo, el algoritmo de Dijkstra)
Redes: Nivel de Red
118
Encaminamiento (cont.)
B
Link
B
C
2
A
4
3
A
D
1
6
5
7
8
State
C
Packets
E
D
F
Seq.
Age
Seq.
Age
Seq.
Age
Seq.
Age
Seq.
Age
Seq.
Age
B 4
E 5
A 4
C 2
F 6
B 2
D 3
E 1
C 3
F 7
A 5
C 1
F 8
B 6
D 7
E 8
E
F
(a)
(b)
Fig. 5-15. (a) A subnet. (b) The link state packets for this subnet.
c
2004
GSyC
Redes: Nivel de Red
119
Encaminamiento (cont.)
Encaminamiento jerárquico
Si la red es muy grande, las tablas de encaminamiento se hacen inmanejables:
se tarda mucho en calcular los caminos óptimos
se genera mucho tráfico de control para conseguir difundir la información
necesaria para los algoritmos de encaminamiento
Solución: Encaminamiento Jerárquico:
Se divide la red en dominios
Dentro de cada dominio se encamina según un algoritmo de los vistos
anteriormente
Los dominios están interconectados mediante pasarelas (gateways)
Las máquinas dentro de un dominio no conocen a las de otro
Los gateways sólo conocen a otros gateways
c
2004
GSyC
Redes: Nivel de Red
120
Encaminamiento (cont.)
Full table for 1A
Dest.
Region 1
Region 2
1A
Line
–
1B
2A 2B
1B
1C
2A
2B
1B
1C
1B
1B
1A
1C
2C
4A
3A
3B
4B
4C
5B
2D
Region 4
1B
1B
1C
1C
4A
4B
4C
5A
5B
5C
5D
1C
1C
1C
1C
5C
5A
(a)
1
1
2
3
Hierarchical table for 1A
Dest.
Hops
–
3
1B
1C
1B
1C
1
1
2
2
4
5
1C
1C
1B
1C
2
3
4
3
2
Line
–
1A
3
4
5D
5E
Region 5
Region 3
2C
2D
3A
3B
Hops
–
5E
3
4
4
4
1C
1B
1C
5
5
6
1C
5
(b)
(c)
Fig. 5-17. Hierarchical routing.
c
2004
GSyC
Redes: Nivel de Red
121
Control de Congestión
Control de Congestión
Un encaminador tiene varios enlaces de entrada y salida.
Puede ser que lleguen paquetes más deprisa de lo que el encaminador sea capaz de darles salida.
Si esta situación es esporádica, se resuelva con buffers.
Los buffers son limitados: cuando se llenan se ha alcanzado la
congestión
Congestión: cuando el tráfico deseado/originado en los extremos es
mayor del que puede encaminar el nivel de red
c
2004
GSyC
Redes: Nivel de Red
122
Control de Congestión (cont.)
Medidas:
En redes basadas en circuitos virtuales, se puede hacer un control de admisión: Al intentar establecer un nuevo circuito virtual,
los encaminadores intermedios indican si tienen recursos (buffers) para que pase por ellos.
En redes basadas en datagramas, los encaminadores suelen descartar los paquetes que reciben y no les caben en sus buffers de
salida.
c
2004
GSyC
Redes: Nivel de Red
Control de Congestión (cont.)
123
IP: Internet Protocol
c
2004
GSyC
Redes: IP: Internet Protocol
124
Introducción
Introducción
IP es un protocolo de Nivel de Red que ofrece un servicio de entrega
de mensajes (datagramas):
no orientado a conexión
no fiable
Dentro de un datagrama IP se encapsula una unidad de datos de uno
de los siguientes protocolos:
ICMP Internet Control Message Protocol
IGMP Internet Group Management Protocol
TCP Transmission Control Protocol
UDP User Datagram Protocol
c
2004
GSyC
Redes: IP: Internet Protocol
125
Datagramas IP
Datagramas IP
4
versión
8
longitud
cabecera
16
tipo de servicio(TOS)
tiempo de vida (TTL)
longitud total
flags
(3 bits)
identificación
31
protocolo
offset de fragmentación
checksum de la cabecera
dirección IP origen
cabecera
0
dirección IP destino
opciones (en su caso)
datos
c
2004
GSyC
Redes: IP: Internet Protocol
126
Datagramas IP (cont.)
versión Actualmente versión 4. La siguiente versión es IPv6.
longitud cabecera Número de palabras de 32 bits que ocupa la cabera. Normalemente es 5 (20 bytes), cuando no hay opciones
TOS Se usan sólo 4 bits para indicar tipo de servicio a ofrecer:
minimizar retardo
maximizar rendimiento
maximizar fiabilidad
minimizar coste económico
c
2004
GSyC
Redes: IP: Internet Protocol
127
Datagramas IP (cont.)
longitud total En bytes. Tamaño máximo: 65535 bytes. Normalmente
es menor de 576 bytes. Dependiendo del nivel de enlace, cualquier máquina puede necesitar fragmentar un datagrama IP al
encaminarlo.
identificación Diferente para cada datagrama que genera una máquina (se va incrementando de 1 en 1). Distintos fragmentos del
mismo datagrama mantienen el mismo número de identificación.
flags Uno para indicar si este datagrama no puede fragmentarse, y
otro para indicar si hay más fragmentos de este datagrama
offset de fragmentación Generado al fragmentar un datagrama, le sirve al destino final para reensamblarlo.
TTL Indica el número máximo de encaminadores que el datagrama
puede atravesar. Normalmente se coloca a 32 ó 64. Cada encaminador lo decrementa, y si alcanza 0 se descarta el datagrama,
enviándose al originador del datagrama un mensaje ICMP.
c
2004
GSyC
Redes: IP: Internet Protocol
128
Datagramas IP (cont.)
protocolo Indica si en el campo de datos va un paquete de ICMP,
IGMP, TCP o UDP.
checksum Calculado únicamente sobre la cabera del datagrama.
direcciones origen y destino Valores de 32 bits.
opciones Información opcional. No todas las máquinas y encaminadores las soportan. El campo de opciones se rellena con ceros
por la derecha para asegurar un múltiplo de 32 bits. Ejemplos de
opciones:
restricciones de seguridad
ruta recorrida
marca de tiempo
encaminamiento en origen
c
2004
GSyC
Redes: IP: Internet Protocol
129
Direcciones IP
Direcciones IP
Cada interfaz fı́sico conectado a la Internet tiene asignada una dirección IP que resulta única en toda la red.
Los 32 bits se suelen expresar en ((notación decimal puntuada)): 212.128.4.4
El rango de direcciones se divide en 5 clases:
Clase
c
2004
GSyC
Rango
A
0.0.0.0 a 127.255.255.255
B
128.0.0.0 a 191.255.255.255
C
192.0.0.0 a 223.255.255.255
D
224.0.0.0 a 239.255.255.255
E
240.0.0.0 a 247.255.255.255
Redes: IP: Internet Protocol
130
Direcciones IP (cont.)
Los primeros bits de una dirección indican cuál es su clase.
En cada clase, es distinto el número de bits de red y el de bits de
máquina.
7 bits
id red
Clase A
0
Clase B
1
0
Clase C
1
1
0
Clase D
1
1
1
0
Clase E
1
1
1
1
24 bits
id maquina
14 bits
id red
16 bits
id maquina
21 bits
id red
8 bits
id maquina
28 bits
id grupo multicast
0
27 bits
reservado para usos futuros
c
2004
GSyC
Redes: IP: Internet Protocol
Direcciones IP (cont.)
131
Tipos de direcciones IP
unicast Representan a una sola máquina
multicast Representan a un grupo de máquinas
broadcast Representan a todas las máquinas de una subred
c
2004
GSyC
Redes: IP: Internet Protocol
132
Direcciones IP (cont.)
¿Quién asigna direcciones IP?
Tres organismos regionales: ARIN (América), RIPE (Europa y África)
y APIC (Asia).
RIPE delega en organismos regionales (normalmente por paı́ses).
En España, el organismo es Red.es, Entidad Pública Empresarial
adscrita al Ministerio de Ciencia y Tecnologı́a.
Una organización adquiere una (o más) direcciones de clase, y el
administrador local de la organización reparte la dirección de clase
entre todas sus máquinas.
ICANN (Internet Corporation for Assigned Names and Numbers) es
una organización internacional creada en 1998 para coordinar todas
las tareas de asignación de nombres y direcciones.
c
2004
GSyC
Redes: IP: Internet Protocol
133
Direcciones IP (cont.)
Subredes
En ocasiones, por razones organizativas o topológicas, se utilizan algunos bits de máquina como bits de subred.
Sobre todo con direcciones de clases A y B.
Dada una dirección de red otorgada a una organización, el administrador decidirá si utilizará subredes, y el número de bits de máquina
que utilizará para indicar la subred.
c
2004
GSyC
Redes: IP: Internet Protocol
134
Direcciones IP (cont.)
El número de bits con el que se indica la subred se denota con una
máscara de subred: 32 bits, 1 para bits de red y subred, 0 para bits
de máquina.
Ejemplos:
Dirección de clase
Máscara
Subredes
163.117.0.0
255.255.255.0
163.117.0.0 – 163.117.0.255
163.117.1.0 – 163.117.1.255
...
163.117.254.0 – 163.117.254.255
163.117.255.0 – 163.117.255.255
193.147.71.0
255.255.255.128
193.147.71.0 – 193.147.71.127
193.147.71.128 – 193.147.71.255
Normalmente en cada subred se reservan:
la primera dirección (bits de máquina a cero) como “dirección de la red”
la última dirección (bits de máquina a uno) como “dirección de broadcast”.
c
2004
GSyC
Redes: IP: Internet Protocol
135
Encaminamiento
Encaminamiento
Cualquier máquina IP puede está o no configurada como encaminador:
Si NO lo está los datagramas IP que recibe que no son para ella,
se tiran.
Si lo está, se tratan de encaminar.
c
2004
GSyC
Redes: IP: Internet Protocol
136
Encaminamiento (cont.)
Para encaminar, una máquina consultará su tabla de encaminamiento. En ella, para enviar un datagrama a una cierta dirección IP destino,
buscará por este orden:
1. Una entrada con una dirección IP de máquina igual a la buscada.
2. Una entrada con una dirección IP de red igual a la parte de red
de la buscada.
3. Una entrada por defecto (0.0.0.0).
c
2004
GSyC
Redes: IP: Internet Protocol
137
Encaminamiento (cont.)
Las tablas de encaminamiento tienen el aspecto:
% netstat -nr
Kernel IP routing table
Destination
Gateway
163.117.137.0
0.0.0.0
127.0.0.0
0.0.0.0
0.0.0.0
163.117.137.2
Genmask
255.255.255.0
255.0.0.0
0.0.0.0
Flags
U
U
UG
MSS
1500
3584
1500
Iface
eth0
lo
eth0
U ruta utilizable
G ruta indirecta (pasarela)
c
2004
GSyC
Redes: IP: Internet Protocol
138
Encaminamiento (cont.)
CIDR
El mecanismo de las clases A, B y C se ha mostrado muy inflexible y
ha provocado:
Agotamiento de las direcciones de las clases A y B
Crecimiento enorme de las tablas de encaminamiento por “el centro” de Internet
Solución (mientras que se pasa a IPv6): CIDR (Classless Inter Domain Routing): Encaminamiento sin clases.
c
2004
GSyC
Redes: IP: Internet Protocol
139
Encaminamiento (cont.)
Con CIDR:
No se tiene en cuenta la “clase” de las direcciones
Nueva forma de indicar direcciones y máscaras mediante prefijos:
193.147.71.0/25
indicando que los 25 primeros bits son los significativos en la
dirección anterior (entra el primer bit del último byte).
Las direcciones pasan a comprarse de esta manera.
Las tablas de encaminamiento se construyen y consultan de esta
manera.
c
2004
GSyC
Redes: IP: Internet Protocol
140
ARP (Address Resolution Protocol)
ARP (Address Resolution Protocol)
El protocolo de resolución de direcciones ARP proporciona una forma
de pasar de una dirección IP a una dirección Ethernet.
Cuando el nivel IP va a enviar un datagrama con una cierta dirección
IP de destino:
Si la dirección de destino es de la misma subred, esa máquina
es directamente a quien hay que enviar la trama Ethernet que
contenga el datagrama.
Si no, la tabla de encaminamiento da la dirección IP del siguiente
salto, que es el encaminador a quien hay que enviar la trama
Ethernet que contenga el datagrama.
En cualquiera de los dos casos, sólo se conoce la dirección IP de una
máquina adyacente a la que pasar el datagrama, pero para formar la
trama Ethernet se necesita conocer la dirección Ethernet de destino.
c
2004
GSyC
Redes: IP: Internet Protocol
141
ARP (Address Resolution Protocol) (cont.)
Para conocer la dirección Ethernet de una máquina de la misma
subred, dada su dirección IP, una máquina hace lo siguiente:
1. Envı́a una trama Ethernet de broadcast consistente en una solicitud ARP, conteniendo la dirección IP en cuestión.
2. Aquella máquina que reciba una solicitud ARP preguntando por
su propia dirección IP, contesta con una trama Ethernet dirigida a
quien hizo la pregunta, conteniendo una respuesta ARP indicando la dirección Ethernet pedida.
Cada máquina mantiene una cache de correspondencias direcciones
IP a direcciones Ethernet:
se guarda los resultados de las solicitudes que hace
aprende de todas las solicitudes de otras (aprovechando que las
solicitudes son broadcast.
c
2004
GSyC
Redes: IP: Internet Protocol
142
ARP (Address Resolution Protocol) (cont.)
Formato del paquete de solicitud/respuesta de ARP:
ARP puede usarse en combinación con otros protocolos de nivel
de red (no sólo IP), por lo que el formato varı́a.
Formato para usar ARP con IP:
Solicitud/Respuesta
Eth. Or.
IP Or.
Eth. Dest.
IP Dest.
No hay que olvidar que el paquete de ARP viaja dentro de una
trama Ethernet (si es ése el nivel de enlace).
En una solicitud, los campos ((origen)) llevan los datos de la máquina que pregunta, y de los campos ((destino)) sólo va relleno “IP
Dest.”, ya que “Eth. Dest.” es justo lo que se pregunta
Al formar la respuesta, la máquina interrogada cambia los dos
campos ((origen)) por los ((destino)), rellenando el que falta (que
es su dirección Ethernet pedida).
c
2004
GSyC
Redes: IP: Internet Protocol
143
ARP (Address Resolution Protocol) (cont.)
ARP gratuito: Una máquina puede enviar una solicitud ARP preguntando sobre su propia dirección IP. Propósitos:
• detectar direcciones IP duplicadas
• forzar a que todos actualicen la entrada de la cache correspondiente
ARP delegado (proxy ARP): Un encaminador puede contestar a
una solicitud ARP como si fuera la máquina destino, cuando esa
máquina destino es alcanzable a través de dicho encaminador.
c
2004
GSyC
Redes: IP: Internet Protocol
144
RARP (Reverse Address Resolution Protocol)
RARP (Reverse Address Resolution
Protocol)
En ocasiones es necesario un método para obtener la dirección IP de
una máquina a partir de su dirección Ethernet.
Ejemplo: Al arrancar una estación sin disco, no puede tener en ningún
fichero de configuración su dirección IP. Sólo sabe que tiene una tarjeta Ethernet en la que está grabada su dirección Ethernet.
Mecanismo de RARP:
1. La máquina envı́a un broadcast de una solicitud RARP, indicando
su dirección Ethernet.
2. Alguna máquina de la subred le enviará una respuesta RARP
indicándole cuál es su dirección IP.
c
2004
GSyC
Redes: IP: Internet Protocol
145
RARP (Reverse Address Resolution Protocol) (cont.)
Lo habitual es tener una máquina en la subred que actúe como servidor de RARP, manteniendo una tabla de correspondencias de direcciones Ethernet a direcciones IP para todos los nodos de la subred.
Si, por razones de protección frente a fallos, se colocan varios servidores de RARP en la misma subred, el protocolo establece que se
tomará sólo la primera respuesta RARP recibida por la máquina que
lanzo la solicitud RARP.
Alternativas a RARP: BOOTP (similar) y DHCP (más complejo).
c
2004
GSyC
Redes: IP: Internet Protocol
146
ICMP (Internet Control Message Protocol)
ICMP (Internet Control Message Protocol)
Este protocolo se utiliza para interrogar y/o comunicar condiciones de
error entre máquinas.
Los mensajes ICMP se transmiten encapsulados en datagramas IP.
Su formato es:
0
8
16
código
tipo
31
checksum de todo el mensaje ICMP
datos dependiendo de tipo ycódigo
c
2004
GSyC
Redes: IP: Internet Protocol
ICMP (Internet Control Message Protocol) (cont.)
147
Ejemplos de mensajes ICMP:
c
2004
GSyC
tipo
código
0
0
respuesta de eco
descripción
3
0
destino inalcanzable: red inalcanzable
3
1
destino inalcanzable: máquina inalcanzable
3
3
destino inalcanzable: puerto inalcanzable
8
0
solicitud de eco
11
0
tiempo excedido: TTL = 0
12
1
cabecera IP mal: falta una opción
13
0
solicitud de marca de tiempo
14
0
respuesta de marca de tiempo
Redes: IP: Internet Protocol
148
NAT (Network Address Translation)
NAT (Network Address Translation)
Existen unos rangos de direcciones IP privadas, reservadas para
ámbito local, y que no son utilizables globalmente en Internet:
• 10.0.0.0–10.255.255.255
• 172.16.0.0–172.31.255.255
• 192.168.0.0–192.168.255.255
Para paliar la escasez de direcciones, una organización puede
usar direcciones privadas internamente, y tener una sola dirección IP global (pública) en la máquina que da salida a Internet.
Esta máquina utiliza NAT para que los datagramas puedan entrar/salir de/a las máquinas internas. Muy resumidamente lo que
hace es cambiar las direcciones IP privadas de los datagramas
por la suya pública.
c
2004
GSyC
Redes: IP: Internet Protocol
149
Congestión en Internet
Congestión en Internet
El nivel de red (IP) ofrece un servicio basado en datagramas.
La principal fuente de pérdidas de paquetes en Internet se debe a la
congestión de encaminadores, que actúan descartando paquetes.
IP no toma ninguna medida para prevenir o disminuir la congestión:
será labor de protocolos de niveles superiores, en su caso.
c
2004
GSyC
Redes: IP: Internet Protocol
150
Congestión en Internet (cont.)
UDP:
User Datagram Protocol
c
2004
GSyC
Redes: UDP: User Datagram Protocol
151
Introducción
Introducción
UDP es un protocolo sencillo que implementa un nivel de transporte
orientado a datagramas:
NO orientado a conexión.
NO fiable.
Los datagramas UDP se encapsulan dentro de la parte de datos de
un datagrama IP.
Una aplicación que utilice UDP para transmitir datos, producirá exactamente un datagrama UDP cada vez que la aplicación quiera enviar
datos. Dicho datagrama UDP se encapsulará en un datagrama IP.
Si ese datagrama IP va a exceder el tamaño máximo de la unidad de
datos del nivel de enlace (ej: Trama Ethernet), se fragmentará.
c
2004
GSyC
Redes: UDP: User Datagram Protocol
152
Datagramas UDP
Datagramas UDP
0
16
31
número de puerto origen
número de puerto destino
longitud total
checksum de todo el datagrama UDP (opcional)
datos (en su caso)
La longitud del datagrama puede ser un número impar de bytes.
c
2004
GSyC
Redes: UDP: User Datagram Protocol
153
Datagramas UDP (cont.)
Checksum
El checksum es sobre cabecera y datos. Es un campo opcional, aunque se recomienda que siempre se utilice.
Se calcula sobre el datagrama UDP más una pseudo-cabecera que
se coloca delante:
16
31
dirección IP de origen
dirección IP de destino
ceros
protocolo
longitud total (repetido)
número de puerto origen
número de puerto destino
longitud total
checksum de todo el datagrama UDP (opcional)
pseudo-cabecera
0
datos (en su caso)
byte de relleno (ceros)
c
2004
GSyC
Redes: UDP: User Datagram Protocol
154
Puertos
Puertos
En una máquina multiproceso, el nivel de transporte debe preocuparse de saber a qué proceso va destinado un datagrama UDP o
segmento TCP que acaba de llegar por la red.
Por ello, los procesos que usan la red lo hacen a través de puertos.
Cada puerto del Nivel de Transporte proporciona a una aplicación un
punto de acceso a la red de comunicaciones, con lo que ésta puede
dialogar con otra aplicación situada en un puerto de una máquina
remota.
c
2004
GSyC
Redes: UDP: User Datagram Protocol
155
Puertos (cont.)
Ası́, el Nivel de Transporte TCP/IP:
multiplexa las unidades de datos que envı́an las aplicaciones a
través de los puertos, encapsulándolas en datagramas UDP o
segmentos TCP
demultiplexa los datagramas UDP y los segmentos TCP, pasando
los datos a las aplicaciones.
Los puertos se identifican por un número de 16 bits. Los puertos UDP
y TCP se manejan por separado: el puerto 7 UDP y el puerto 7 TCP
son puertos distintos.
c
2004
GSyC
Redes: UDP: User Datagram Protocol
156
Puertos (cont.)
Los puertos menores que 1024 (puertos privilegiados) están reservados y asignados universalmente a aplicaciones de red conocidas.
En una máquina Unix está asignación está en fichero /etc/services:
echo
echo
discard
discard
daytime
daytime
netstat
ftp-data
ftp
telnet
smtp
time
time
www
www
7/tcp
7/udp
9/tcp
9/udp
13/tcp
13/udp
15/tcp
20/tcp
21/tcp
23/tcp
25/tcp
37/tcp
37/udp
80/tcp
80/udp
sink null
sink null
# default ftp data port
mail
timserver
timserver
http
# WorldWideWeb HTTP
# HyperText Transfer Protocol
c
2004
GSyC
Redes: UDP: User Datagram Protocol
157
Puertos (cont.)
Ası́, por ejemplo, un servidor de WWW es un proceso esperando peticiones en el puerto 80 de una máquina. Un navegador desde otra
máquina hará peticiones al puerto 80 del servidor, y escuchará las
respuestas en un puerto suyo no privilegiado.
En vez de tener un servidor escuchando en cada puerto, un sólo proceso (inetd) escucha en varios, y se encarga de arrancar el proceso
adecuado según el puerto concreto por el que llegó la petición.
Ambos mecanismos conviven: inetd escucha en varios puertos, y
en otros (los más frecuentemente utilizados) lo hace directamente el
proceso involucrado.
c
2004
GSyC
Redes: UDP: User Datagram Protocol
158
Servicio dado por UDP
Servicio dado por UDP
El servicio ofrecido por UDP sólo aumenta el ofrecido por IP en:
números de puerto
un checksum optativo
Por ello el servicio ofrecido es NO fiable, presentando problemas que
las aplicaciones pueden querer resolver.
pueden perderse datagramas
pueden duplicarse datagramas
pueden desordenarse datagramas
Pero es un protocolo muchı́simo más ligero que TCP, y en una red
local (hay CRC y no hay encaminadores) puede compensar.
c
2004
GSyC
Redes: UDP: User Datagram Protocol
159
Servicio dado por UDP (cont.)
TCP: Transmission Control
Protocol
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
160
Introducción
Introducción
TCP (Transmission Control Protocol):
Protocolo de Transporte.
Ofrece un servicio orientado a conexión y fiable.
Unidad de datos: Segmento.
Se encapsula dentro de IP.
Ofrece servicio de puertos (como UDP).
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
161
Servicio Orientado a Conexión
Servicio Orientado a Conexión
La transmisión de datos de nivel de transporte presenta las fases:
• establecimiento de la conexión
• intercambio de datos
• liberación de la conexión.
Peculiaridad: Ambos extremos pueden transmitir y recibir datos
simultáneamente.
Los datos de la aplicación son troceados en segmentos del tamaño que TCP considera adecuado (¡diferente a UDP!).
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
162
Servicio Fiable
Servicio Fiable
Éste es el primer nivel en el que se proporciona fiabilidad.
Objeto: Recuperarse de pérdidas y desorden producido por IP.
Idea básica:
• Los segmentos con datos llevan un número de secuencia.
• El receptor de los datos debe mandar asentimientos (ACKs).
• Para cada segmento con datos transmitido se espera un plazo
de tiempo a que llegue su asentimiento. Si vence el plazo, se
retransmite el segmento.
• Para asentimientos y retransmisiones se utiliza un protocolo
de ventana.
• El receptor reordena segmentos y descarta los duplicados.
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
163
Segmentos TCP
Segmentos TCP
0
16
número de puerto origen
31
número de puerto destino
número de secuencia
longitud
cabecera
reseervado
(6 bits)
URG
ACK
PSH
RST
SYN
FIN
número de asentimiento
checksum de todo el segmento TCP
tamaño de la ventana
puntero de datos urgentes
opciones (en su caso)
datos (en su caso)
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
164
Segmentos TCP (cont.)
Puertos: TCP los asocia con la aplicación origen y destino del
segmento (como UDP).
Longitud cabecera: Tamaño de la cabecera en palabras de 32
bits. Lo normal es 5 (20 bytes).
Checksum: Sobre pseudo-cabecera, cabecera y datos, calculado
como en UDP. Si no se pasa la comprobación, se descarta el
datagrama.
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
165
Números de secuencia
Números de secuencia
Cada segmento con datos lleva un número de secuencia
El número de secuencia numera bytes, y NO segmentos: identifica el número de orden del primer byte de datos que lleva el
segmento.
Al establecerse una conexión se elige un número de secuencia
inicial para que no se confundan segmentos aún en tránsito procedentes de conexiones diferentes.
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
166
Números de asentimiento
Números de asentimiento
El receptor de segmentos de datos tiene que asentir los que le
llegan correctamente.
NO es necesario enviar un asentimiento para cada segmento con
datos que se recibe. Se puede esperar a asentir varios segmentos de una sola vez.
El número de asentimiento indica el número de secuencia del
próximo byte que se espera recibir, asintiéndose de esta manera
hasta el byte anterior incluido.
No hay rechazo selectivo: No hay forma en que el receptor le
diga al emisor que tiene los bytes del 300 al 700 excepto el trozo
400-500.
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
167
Números de asentimiento (cont.)
Cada segmento tiene un campo para el número de asentimiento:
siempre que se manda un segmento se aprovecha para asentir
los datos que esté enviando el otro extremo:
• Si el lado que envı́a un asentimiento tiene datos que enviar
al otro lado, puede aprovechar un segmento para las dos cosas: envı́a el asentimiento ((arrecucas)) de los datos (piggybacking).
• Si el lado que envı́a un asentimiento no tienen datos que enviar al otro lado, envı́a un segmento sólo con la cabecera, sin
datos.
Importante: Cada lado de la conexión utiliza sus números de secuencia (partiendo de su número de secuencia inicial) y asiente
los que está usando el otro extremo.
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
168
Números de asentimiento (cont.)
Ventana Deslizante
Se usa un protocolo de ventana para coordinar el envı́o de segmentos y asentimientos.
El receptor indica en el campo de tamaño de ventana el número
de bytes (a partir del indicado en el número de asentimiento) que
está dispuesto a recibir del emisor.
El emisor puede transmitir esos bytes aunque no reciba asentimientos, pero una vez transmitidos tendrá que parar hasta que
sepa más del receptor.
Según el receptor va recibiendo datos, puede ir asintiendo y deslizando la ventana para aceptar más.
Como ambos extremos pueden enviar datos, hay dos ventanas
diferentes, una para cada sentido.
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
169
Números de asentimiento (cont.)
Ejemplo:
• El emisor recibe un segmento con:
◦ Número de asentimiento: 5
◦ Tamaño de ventana: 8.
• El emisor ha transmitido los bytes hasta el 9 (incluido), sin
recibir nada del receptor.
• En ese momento la situación es la siguiente:
ventana
1
2
3
enviados y
asentidos
4
5
6
7
8
enviados y
no asentidos
9
10
11
12 13 14
pendientes
para enviar
15
16
sin aceptar de
la aplicación
El tamaño de la ventana es variable dinámicamente (pero deberı́an mantenerse las ((antiguas promesas))).
El tamaño de la ventana permite también hacer control de flujo
extremo a extremo.
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
170
Establecimiento de conexión
Establecimiento de conexión
A
B
segmento con bit SYN
núm.secuencia = x
segmento con bit SYN
núm.secuencia = y
núm.asentimiento = x+1
segmento
núm.asentimiento = y+1
Es necesario ponerse de acuerdo en el número de secuencia inicial de los
dos sentidos de transmisión (((triple apretón de manos)), three-way handshake).
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
171
Liberación de conexión
Liberación de conexión
A
B
segmento con bit FIN
segmento con asentimiento del FIN
segmento con bit FIN
segmento con asentimiento del FIN
Como la conexión permite la transmisión bidireccional de datos (full duplex),
es necesario “cerrar” cada sentido de la transmisión (por separado).
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
172
Liberación de conexión (cont.)
Plazos para asentimiento
Cuando se envı́a un segmento, se arranca un temporizador para esperar su asentimiento. Problema: ¿Qué plazo le ponemos?
Se utiliza un algoritmo adaptativo para optimizar lo más posible la
transmisión de datos.
Para cada segmento se calcula el tiempo de ronda (round-trip time,
RTT): tiempo entre que se envı́a el segmento y se recibe el asentimiento. Se va tomando su media en el tiempo.
Normalmente se elige un plazo de dos veces el tiempo de ronda medio, teniendo cuidado con la varianza.
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
173
Liberación de conexión (cont.)
Entrega de datos a la aplicación
Cuando llega un segmento con la bandera PSH activada se está indicando al receptor que pase esos datos a la aplicación.
No sólo se pasa ese segmento, sino también todos los datos asentidos que el receptor tuviera pendientes de entregar a la aplicación.
c
2004
GSyC
Redes: TCP: Transmission Control Protocol
Redes: TCP: Transmission Control Protocol
c
2004
GSyC
$#:$9
JF
8 &
#;
T #;
! $#;
8=$<BU!3<
:$#
@!B
/C$< "&>$#;
$!;
A 3# G&;
$!A T M@
6S4
:K9G& C $# &GF
3!AE
@
D
@; $$#
C @3#B"
=
< $!:A$#8 654
3RQ &">3#F
JF
%$!;
A 8@
M@8 P&;MO
;
@ 8N 8B3
J
B $!;
A M@
$#;
$$#;
L
%$!A ! K
#
!B ' $:$#JF$#:$98I$;
H?>$#
=<# 4
Ejemplo de conexión
HR
N8;
> W3<:K9V&
</B3<
B Q &"%>$#;
8F
%$!;
A 8@
M@8 P&;
:O$#8
%B
@3#!"; ?"%>$#
=
< 8 $:$#8;$#:$9
87 654
"R8 P&;O \ #3 &;9 P&3#8
;
W3<
B 8
N 6]4
+\ 5 * 2X [5 2 Z* XY
* /2 /
&"$#%"!
.
.
,-+*) $(
&"$#%"!
1
/
* 2 .
&"3#"!
"&%$#"!
'
"&%$#"!
"&%$#"!
"&%$#"!
/
+*) $(
"&%$#"!
0
Redes: TCP: Transmission Control Protocol
c
2004
GSyC
174
Liberación de conexión (cont.)
Datos urgentes
Pueden enviarse datos denominados urgentes (o ((fuera de banda))),
que el receptor debe pasar inmediatamente a la aplicación, lo antes
posible.
Ejemplo: Envı́o de un CTRL-C.
Se indican mediante el empleo de la bandera URG: Cuando está levantada, el campo puntero a datos urgentes apunta al último byte de
datos urgentes del segmento.
No está especificado dónde empiezan los datos urgentes. Se deja a
la aplicación.
175
Ejemplo de conexión
176
Ejemplo de conexión (cont.)
DNS: Domain Name System
c
2004
GSyC
Redes: DNS: Domain Name System
177
¿Por qué necesitamos el DNS?
¿Por qué necesitamos el DNS?
Los humanos preferimos nombres a direcciones IP
(ej: cacharro.escet.urjc.es frente a 212.128.1.44)
Los números IP están ligados a la estructura de la red, pero
eso no tiene por qué reflejarse en el nombrado de máquinas (ej:
www.debian.org, www.de.debian.org.
Los números IP están ligados a máquinas concretas, puede ser
conveniente un nivel de abstracción no ligado a máquinas (ej:
www.urjc.es puede cambiar de máquina, y de IP, pero no de nombre).
Es necesario establecer una correspondencia entre nombres y direcciones IP.
c
2004
GSyC
Redes: DNS: Domain Name System
178
Un poco de historia
Un poco de historia
Al principio (años 70), un único fichero (HOSTS.TXT) con información de todas las máquinas de ARPANET.
Se obtenı́a periódicamente por FTP. Gestión completamente manual.
Con el crecimiento de ARPANET se hizo inmanejable.
1984, Paul Mockapetris: primeras RFC que describen el Domain
Name System.
Especificaciones actuales: RFC 1034 y 1035.
c
2004
GSyC
Redes: DNS: Domain Name System
179
Estructura de nombrado
Estructura de nombrado
Se descentraliza el control consiguiéndose una estructura jerárquica
y fácilmente ampliable.
Jerarquı́a de dominios:
Dominio raı́z (root o “.”). Gestionado por ICANN (Internet Corporation for Assigned Names and Numbers).
Dominios de nivel máximo:
• Tradicionales: com, edu, gov, mil, net, org, int, códigos ISO de
paises (uk, mx, ar, de, es. . . )
• En negociación por ICANN en noviembre de 2000: biz, info,
name, pro, aero, coop, museum
Dominios secundarios, terciarios, . . .
c
2004
GSyC
Redes: DNS: Domain Name System
180
Estructura de nombrado (cont.)
Árbol de dominios
com edu gov mil org net es uk ...
sun mit
eng lcs
theory
acm ieee
urjc
escet rct
gsyc
c
2004
GSyC
Redes: DNS: Domain Name System
181
Estructura de nombrado (cont.)
Dominios directo e inverso
Dominio directo: proporciona para cada nombre una dirección IP.
Dominio inverso: proporciona para cada dirección IP un nombre.
• El dominio inverso también se conoce como dominio in-addr.arpa.
• Los elementos del dominio inverso son las direcciones de red
construidas invirtiendo los números que la componen, y terminando en in-addr.arpa
• Ejemplo: La red 138.117.0.0 es el dominio inverso 117.138.inaddr.arpa
c
2004
GSyC
Redes: DNS: Domain Name System
182
Estructura de gestión
Estructura de gestión
Cada vez que se delega un subdominio se delega también su gestión
(incluyendo su posible subdivisión sucesiva).
Si el gestor del dominio es delega un subdominio urjc, el responsable de urjc manejará la correspondencia de nombres y direcciones de todas las máquinas de su dominio.
Si el responsable de urjc lo cree conveniente, puede delegar un
subdominio escet, sin que por ello tenga que informar al gestor
de es.
Hay dominios (ejemplo: com, org) gestionados por varios “registrars”
en régimen de competencia.
c
2004
GSyC
Redes: DNS: Domain Name System
183
Consulta de una dirección para un nombre
Consulta de una dirección para un nombre
Cada aplicación va enlazada con una biblioteca de consulta al DNS
(resolver), con llamadas como gethostbyname().
La consulta normalmente sigue los pasos siguientes (en una máquina
Unix):
Consulta en un fichero (/etc/hosts).
Consulta en un servidor de DNS (su dirección IP está en
/etc/resolv.conf).
c
2004
GSyC
Redes: DNS: Domain Name System
184
Esquema de funcionamiento del DNS
Esquema de funcionamiento del DNS
Se trata de mantener la información como una base de datos distribuida. Las consultas al DNS se realizan en modo cliente-servidor:
Cuando una aplicación (cliente) quiere “resolver” un nombre (que
no aparece en el fichero local), pregunta a un servidor de DNS
El servidor investiga por su cuenta y devuelve la dirección IP pedida.
c
2004
GSyC
Redes: DNS: Domain Name System
Esquema de funcionamiento del DNS (cont.)
185
Consulta a un servidor
telnet gsyc.escet.urjc.es
Servidor DNS
gsyc.escet.urjc.es?
telnet
resolver
UDP(gsyc.escet.urjc.es?)
UDP(212.128.1.45)
212.128.1.45
c
2004
GSyC
Redes: DNS: Domain Name System
186
Esquema de funcionamiento del DNS (cont.)
Funcionamiento básico (sin caches)
Cuando un servidor recibe una consulta para resolver un nombre
(ejemplo: nic.funet.fi):
1. Comprueba si el nombre pertenece a alguno de los dominios que
sirve (si es que sirve alguno). Si lo encuentra busca en su “mapa”
y devuelve la dirección IP correspondiente.
2. En caso contrario pregunta a un servidor del dominio raı́z, que le
contestará con la dirección IP de un servidor del dominio “fi”.
3. Luego regunta a ese, obteniendo la dirección IP de un servidor
de “funet.fi”.
4. Ahora se pregunta a este último, que ya tiene en sus mapas la
dirección IP pedida.
(Cada servidor puede servir uno o varios dominios, o ninguno)
c
2004
GSyC
Redes: DNS: Domain Name System
187
Esquema de funcionamiento del DNS (cont.)
gsyc.escet.urjc.es.?
pregunta a es
gsyc.escet.urjc.es.?
es
urjc
escet rct
gsyc
pregunta a urjc
gsyc.escet.urjc.es.?
pregunta a escet
gsyc.escet.urjc.es.?
212.128.1.45
212.128.1.45
gsyc.escet.urjc.es?
telnet
c
2004
GSyC
resolver
Redes: DNS: Domain Name System
188
Esquema de funcionamiento del DNS (cont.)
Consultas a un servidor
Por lo tanto, los servidores de DNS responden dos tipos de consultas:
Recursivas: Las que le hace un cliente, que obligan al servidor a
hacer las consultas necesarias para encontrar la dirección pedida.
Iterativas: Las que le hace otro servidor, a las que responden con
la dirección IP del servidor del siguiente dominio en la jerarquı́a.
Siempre que pueden, los servidores usan datos de su cache.
c
2004
GSyC
Redes: DNS: Domain Name System
189
Tipos de servidores
Tipos de servidores
Según cómo son utilizados:
Reenviador (“forwarder”). Los servidores lo usan antes de consultar al resto del DNS. Utilizados por servidores para centralizar
las consultas. Evitan, por ejemplo, el acceso directo a servidores
raı́z.
Esclavo. Utilizados por servidores en lugar del resto del DNS (por
ejemplo, si hay cortafuegos).
c
2004
GSyC
Redes: DNS: Domain Name System
190
Tipos de servidores (cont.)
Según cómo reciben los datos:
Primario. Tiene la información actualizada.
Secundario. Copia del primario.
Cache. Guardan datos sobre los que han consultado.
Según el lugar de procedencia del dato:
Con autoridad (“authoritative”). Tiene el mapa “original” para el
dominio consultado (primario o secundario).
Sin autoridad. Tiene el dato en su cache.
c
2004
GSyC
Redes: DNS: Domain Name System
191
Mapas de dominio
Mapas de dominio
Cada mapa de dominio incluye un conjunto de registros de recurso
(RR):
Son la unidad de consulta.
Cada registro de recurso tiene 5 campos:
• Nombre de dominio.
• Tiempo de vida. Tiempo de validez del registro en las cachés.
• Clase. En Internet siempre IN.
• Tipo. Define el tipo del registro.
• Valor. Contenido que depende del campo tipo.
c
2004
GSyC
Redes: DNS: Domain Name System
192
Mapas de dominio (cont.)
Tipos de registro
SOA: Da información de gestión una zona del dominio (servidor
de nombres primario, administrador, etc.).
NS: Identifica al servidor de nombres.
A: Define una dirección IP de la estación (puede tener varias).
MX: Define el servidor de correo del dominio.
CNAME: Permite asociar un alias a un nombre de dominio.
HINFO: Da información del tipo de máquina y sistema operativo.
TXT: Da información del dominio.
c
2004
GSyC
Redes: DNS: Domain Name System
Mapas de dominio (cont.)
urjc.es.
172800
172800
172800
www
172800
venus
172800
escet
172800
gsyc.escet 172800
c
2004
GSyC
193
Ejemplo
IN SOA
venus.urjc.es.
root.venus.urjc.es. (
2000030702 ; Número de serie
86400
; Refresco
7200
; Reintento
2592000
; Expiración
172800 )
; Ttl
IN NS
venus.urjc.es.
IN MX
venus.urjc.es.
IN CNAME venus.urjc.es.
IN A
193.147.184.8
IN NS
gsyc.escet.urjc.es
IN A
212.128.1.45
Redes: DNS: Domain Name System
194
Formato de menaje DNS
Formato de menaje DNS
Paquetes iguales para consultas y respuestas.
Cabecera fija de 12 bytes:
Identificación (2 bytes). Correspondencia consultas-respuestas.
Banderas (2 bytes). Consulta/respuesta, truncamiento, tipo de
petición (directa, inversa, estado), respuesta con autoridad, petición recursiva, error.
Número de consultas (2 bytes).
Número de RRs de respuesta (2 bytes).
Número de RRs de autoridad (2 bytes).
Número de otros RRs (2 bytes).
c
2004
GSyC
Redes: DNS: Domain Name System
Formato de menaje DNS (cont.)
195
Datos, tamaño variable:
Consultas.
Respuestas.
Autoridad.
Más información.
c
2004
GSyC
Redes: DNS: Domain Name System
196
Formato de menaje DNS (cont.)
Consulta
Cada consulta de un mensaje DNS (normalmente sólo una) tiene:
Nombre de la petición: secuencia de etiquetas (tamaño, 1 byte,
cadena, hasta 63 bytes), terminada por la etiqueta “root” (byte de
tamaño a 0).
Tipo de consulta (2 bytes). A, NS, PTR, etc.
Clase de consulta (2 bytes). Normalmente IN.
c
2004
GSyC
Redes: DNS: Domain Name System
197
Formato de menaje DNS (cont.)
Registro de recurso
Cada RR de un mensaje DNS tiene:
Nombre de dominio. Mismo formato que nombre de petición.
Tipo (2 bytes).
Clase (2 bytes).
Tiempo de vida (4 bytes).
Tamaño de los datos del recurso (2 bytes).
Datos del recurso (valor).
c
2004
GSyC
Redes: DNS: Domain Name System
198
¿UDP o TCP?
¿UDP o TCP?
Se usa el puerto 53 de TCP y UDP para el servidor de DNS.
Normalmente el resolver hace consultas usando UDP.
Normalmente el servidor responde usando el protocolo de la consulta.
Si la respuesta UDP es de más de 512 bytes (truncada), el resolver al repite usando TCP.
Las transferencias de zona de primario a secundario usan TCP.
c
2004
GSyC
Redes: DNS: Domain Name System
199
Referencias
Referencias
“DNS: The Domain Name System”, capı́tulo 14 de “TCP/IP’ Illustrated, Volume 1”, por W. Richard Stevens, Addison Wesley, 1994.
FAQ de comp.protocols.tcp-ip.domains:
http://www.intac.com/˜cdp/cptd-faq/
ICANN: http://www.icann.net/
c
2004
GSyC
Redes: DNS: Domain Name System
Referencias (cont.)
200
HTTP
c
2004
GSyC
Redes: HTTP
¿Qué es HTTP?
201
¿Qué es HTTP?
Hypertext Transfer Protocol.
Es el protocolo más habitual para servir páginas web.
Protocolo cliente-servidor.
Normalmente funciona sobre TCP, con el servidor (normalmente)
en el puerto 80.
No olvidar que HTTP puede servir tanto contenido estático (ficheros) como dinámico (el resultado de ejecutar programas en el
servidor).
c
2004
GSyC
Redes: HTTP
Interacción cliente-servidor en HTTP
202
Interacción cliente-servidor en HTTP
El cliente abre una conexión TCP con el servidor.
El cliente envı́a un mensaje de petición.
El servidor responde con un mensaje de respuesta.
El servidor cierra la conexión TCP.
HTTP no mantiene estado (no hay información sobre las conexiones
entre una petición y otra).
c
2004
GSyC
Redes: HTTP
Interacción cliente-servidor en HTTP (cont.)
203
Formato de los mensajes
Mensajes “legibles” (compuestos por lı́neas de texto “casi en inglés”):
Lı́nea inicial (diferente para petición y respuesta), terminada en
CRLF.
Cero o más lı́neas de cabecera, cada una terminada en CRLF:
Cabecera-X: Valor-X CRLF
Lı́nea en blanco (CRLF).
Cuerpo del mensaje (opcional).
Además de CRLF, deberı́an tratarse adecuadamente lı́neas terminadas en LF.
c
2004
GSyC
Redes: HTTP
Interacción cliente-servidor en HTTP (cont.)
204
Lı́nea inicial (peticiones)
Especifica el recurso que se solicita, y qué se quiere de él:
Nombre de método (GET, POST, HEAD).
Camino de acceso (path)
Versión de HTTP (siempre HTTP/x.x).
Ejemplo:
GET /directorio/otro/fichero.html HTTP/1.0
c
2004
GSyC
Redes: HTTP
Interacción cliente-servidor en HTTP (cont.)
205
Lı́nea inicial (respuestas)
Proporciona información de estado:
Versión de HTTP (siempre HTTP/x.x).
Código numérico de estado.
Código de estado “en inglés”.
Códigos de estado:
1xx: Mensaje informativo.
2xx: Resultado exitoso (200 OK).
3xx: Redirección del cliente a otra URL (301 Moved permanently,
303 See Other).
4xx: Error en el lado del cliente (404 Not Found).
5xx: Error en el lado del servidor (500 Server Error).
c
2004
GSyC
Redes: HTTP
206
Interacción cliente-servidor en HTTP (cont.)
Lı́neas de cabecera
Mismo formato que las cabeceras de correo y News (RFC 822,
sección 3).
HTTP/1.0: 16 cabeceras, ninguna obligatoria.
HTTP/1.1: 46 cabeceras, “Host:” obligatoria en las peticiones (usada por los “virtual hosts”).
Se recomienda incluir en las peticiones al menos:
• “From:” (dirección de correo).
• “User-Agent:” (ej: Mozilla/4.7).
Se recomienda incluir en las respuestas al menos:
• “Server:” (ej: Apache/1.3).
• “Last-Modified:” (fecha GMT, usado por las caches).
c
2004
GSyC
Redes: HTTP
207
Interacción cliente-servidor en HTTP (cont.)
Cuerpo del mensaje
En las respuestas contiene el recurso pedido o texto explicando
un error.
En las peticiones contiene datos de usuario o ficheros para subir.
Si hay cuerpo, normalmente hay algunas cabeceras relativas a
él:
• “Content-Type”: tipo MIME de los datos (ej: text/html, image/png).
• “Content-Length”: número de bytes en el cuerpo.
c
2004
GSyC
Redes: HTTP
208
Interacción cliente-servidor en HTTP (cont.)
Ejemplo (GET, petición)
GET /˜jgb/test.html HTTP/1.0\r\n
Connection: Keep-Alive\r\n
User-Agent: Mozilla/4.07 [en] (X11; I; Linux 2.2.15 i586; Nav) ...
Host: gsyc.escet.urjc.es\r\n
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, i ...
Accept-Encoding: gzip\r\n
Accept-Language: en\r\n
Accept-Charset: iso-8859-1,*,utf-8\r\n
\r\n
c
2004
GSyC
Redes: HTTP
Interacción cliente-servidor en HTTP (cont.)
209
Ejemplo (GET, respuesta)
HTTP/1.1 200 OK\r\n
Date: Tue, 23 Jan 2001 12:44:27 GMT\r\n
Server: Apache/1.3.9 (Unix) Debian/GNU\r\n
Last-Modified: Tue, 23 Jan 2001 12:39:45 GMT\r\n
ETag: "19e89f-22-3a6d7b91"\r\n
Accept-Ranges: bytes\r\n
Content-Length: 34\r\n
Keep-Alive: timeout=15, max=100\r\n
Connection: Keep-Alive\r\n
Content-Type: text/html\r\n
\r\n
<html>\nEsto es una prueba\n</html>
c
2004
GSyC
>.
Redes: HTTP
Interacción cliente-servidor en HTTP (cont.)
210
Métodos HEAD y POST
HEAD:
Igual que un GET, pero sólo pide las cabeceras.
Se pueden consultar las caracterı́sticas sin bajarse el fichero.
POST:
Hay datos en el cuerpo (que se “suben” al servidor).
El URI “pedido” es normalmente el programa que trata los datos
enviados.
También se pueden enviar datos con un GET (codificándolos en
el URL pedido).
c
2004
GSyC
Redes: HTTP
Interacción cliente-servidor en HTTP (cont.)
211
Ejemplo (POST, petición)
POST /comments.pl HTTP/1.0\r\n
From: [email protected]\r\n
User-Agent: MegaNavigator/0.0\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Content-Length: 18\r\n
\r\n
section=all&rank=10
c
2004
GSyC
Redes: HTTP
Representante (proxy) HTTP
212
Representante (proxy) HTTP
Intermediario entre un cliente y un servidor.
Es por lo tanto a la vez cliente y servidor.
Usos: cortafuegos, caches, etc.
Las peticiones a una proxy incluyen la URL completa en la primera lı́nea del mensaje de petición.
Pueden encadenarse varias proxies.
Ejemplo de petición a una proxy:
GET http://gsyc.escet.urjc.es/index.html HTTP/1.0
c
2004
GSyC
Redes: HTTP
HTTP 1.1
213
HTTP 1.1
Es una evolución de HTTP 1.0.
Facilidades especı́ficas para máquinas virtuales (virtual hosts).
Codificación por racimos, para respuestas dinámicas (envı́o antes de saber el tamaño total).
Uso de conexiones persistentes que permiten varias transacciones sucesivas (se evitan establecimientos de conexión).
Facilidades especı́ficas para caches (“If-Modified-Since”, “If-UnmodifiedSince”).
c
2004
GSyC
Redes: HTTP
HTTP 1.1 (cont.)
214
Virtual hosts
Para tener virtual hosts es preciso indicar en cada petición a cuál
de ellos se dirige.
Por eso es obligatorio el uso de la cabecera “Host”.
Si un servidor recibe una petición sin “Host”, debe devolver un
mensaje de error (400 Bad Request).
Los servidores también han de aceptar primeras lı́neas de petición con URLs completas, en lugar de caminos (será lo habitual
en versiones futuras).
Ejemplo de petición “mı́nima”:
GET /dir/index.html HTTP/1.1\r\n
Host: gsyc.escet.urjc.es\r\n
\r\n
c
2004
GSyC
Redes: HTTP
HTTP 1.1 (cont.)
215
Codificación por racimos
Cabecera “Transfer-Encoding: chunked”.
Usada por un servidor que quiere enviar trozos que ya tiene listos
antes de tener todo.
El cuerpo de cada mensaje “por racimos” contiene una serie de
racimos, cada uno:
• Comienza por el tamaño de los datos del racimo, en hexadecimal, seguidos por “;”, quizás algo más, y CRLF.
• Los datos, terminados por CRLF.
• Terminado por una lı́nea con “0CRLF”.
• Seguido de “footers” (como cabeceras).
• Terminado en una lı́nea en blanco (CRLF).
c
2004
GSyC
Redes: HTTP
HTTP 1.1 (cont.)
216
Codificación por racimos
HTTP/1.1 200 OK\r\n
Date: Fri, 27 Jan 2001 23:00:00 GMT\r\n
Content-Type: text/plain\r\n
Transfer-Encoding: chunked\r\n
\r\n
1b; datos que se pueden ignorar\r\n
abcdefghijklmnopqrstuvwxyz\r\n
10\r\n
1234567890abcdefg\r\n
0\r\n
a-footer: su-valor\r\n
another-footer: otro-valor\r\n
\r\n
c
2004
GSyC
Redes: HTTP
HTTP 1.1 (cont.)
217
Conexiones persistentes
Permiten que varias peticiones y respuestas sean transferidas
usando la misma conexión TCP.
Se usan por omisión en HTTP 1.1.
Si se envı́a la cabecera “Connection: close”, el servidor cerrará la
conexión después de cada respuesta.
Un servidor puede cerrar la conexión antes de enviar todas las
respuestas.
El servidor cerrará las conexiones inactivas pasado un plazo (ej:
10 segundos).
c
2004
GSyC
Redes: HTTP
218
HTTP 1.1 (cont.)
Caches
Los servidores deben responder siempre con la cabecera “Date”
(con la fecha actual, en GMT).
Los servidores han de entender “If-Modified-Since” y “If-UnmodifiedSince” (los clientes pueden usarlos).
Respuesta a “If-Modified-Since”: “304 Not Modified”.
Respuesta a “If-Unmodified-Since”: “412 Precondition Failed”.
c
2004
GSyC
Redes: HTTP
HTTPS
219
HTTPS
HTTP sobre SSL (secure socket layer).
La conexión TCP está cifrada, de forma que una tercera parte no
puede conocer su contenido.
Permite enviar datos “sensibles” a un servidor web, y recibirlos
de él.
Necesita de otros mecanismos (certificados, etc.) para ofrecer un
nivel de seguridad razonable.
Las URLs son “https://”.
c
2004
GSyC
Redes: HTTP
Galletitas (cookies)
220
Galletitas (cookies)
Sirven para asociar estado a un conjunto de transacciones (peticiones/respuesta).
Normalmente son datos asociados a un usuario (carro de la compra, cuenta de usuario, etc.)
Las galletitas son generadas por los servidores, y presentadas
por los clientes en ciertas ocasiones.
Especificación original de Netscape, luego propuesta como RFC 2109.
c
2004
GSyC
Redes: HTTP
Galletitas (cookies) (cont.)
221
Cabecera “Set-Cookie”
Cabecera puesta por un servidor cuando quiere enviar una galletita.
Formato:
• “Set-Cookie:”
• Nombre de la galletita y valor (“nombre=valor”).
• Fecha de caducidad (“expires=fecha”).
• Dominio, camino (“domain=dominio path=camino”). Para decidir más tarde si se envı́a una galletita o no.
• “secure”: si está marcada ası́, sólo se transmitirá sobre canales seguros (HTTPS).
Ejemplo:
Set-Cookie: unnombre=unvalor; expires=Mon, 30-Jan-2001 12:35:23 GMT;
path=/dir; domain=mi.dominio.com; secure
c
2004
GSyC
Redes: HTTP
Galletitas (cookies) (cont.)
222
Cabecera “Cookie”
Cuando un cliente pide una URL, buscará en su lista de galletitas
si hay alguna que tenga que enviar (mirando su “domain” por la
cola, y su “path” por su cabeza).
Enviará todas las galletitas en una única cabecera (“Cookie”).
Dentro de esta cabecera, las galletitas se ordenarán de más a
menos especı́ficas (según su “path”).
No se consideran las galletitas con caducidad en el pasado (de
hecho, se eliminan).
Ejemplo:
Cookie: unnombre=unvalor; otronombre=otrovalor
c
2004
GSyC
Redes: HTTP
Referencias
223
Referencias
“Definition of URL/URI syntax, RFC 2396”.
http://www.cis.ohio-state.edu/htbin/rfc/rfc2396.html
“HTTP Made Really Easy. A Practical Guide to Writing Clients and
Servers”, por James Marshall.
http://www.jmarshall.com/easy/http/
“HTTP 1.0, RFC 1945”.
http://www.cis.ohio-state.edu/htbin/rfc/rfc1945.html
“HTTP 1.1, RFC 2068”.
http://www.cis.ohio-state.edu/htbin/rfc/rfc2068.html
c
2004
GSyC
Redes: HTTP
Referencias
224
Referencias
“An Overview of SHTTP”, por Adam Shostack.
hturlhttp://www.homeport.org/ adam/shttp.html
“Persistent Client State. HTTP Cookies”, Netscape.
http://www.netscape.com/newsref/std/cookie_spec.html
“HTTP State Management Mechanism, RFC 2109”.
http://www.cis.ohio-state.edu/htbin/rfc/rfc2109.html
c
2004
GSyC
Redes: HTTP
Referencias (cont.)
225
Correo electrónico
c
2004
GSyC
Redes: Correo electrónico
226
Algo de terminologı́a
Algo de terminologı́a
Agente de usuario (UA, user agent): programa que se usa como interfaz de usuario para el correo electrónico (leer, componer,
enviar, gestionar, etc.)
Agente de transferencia de mensajes (MTA, message transfer
agent): se encarga del encamiento y almacenamiento de los mensajes de correo hasta su destino final.
Protocolo de acceso al correo electrónico: lo usa un UA para acceder a un MTA, y recoger el correo para un usuario. Ejemplo:
POP, IMAP.
Protocolo de envı́o de correo electrónico: lo usa un MTA para enviar correo a otro MTA (también puede usarlo un UA para enviarlo
a un MTA). Ejemplo: SMTP.
c
2004
GSyC
Redes: Correo electrónico
227
Generalidades
Generalidades
Composición de un mensaje
Todo mensaje consta de 2 partes:
Sobre: Cabeceras estandarizadas para identificar el/los destinatarios/remitentes del mensaje...
Permiten que el mensaje llegue
Contenido: El mensaje propiamente dicho.
• La RFC822 sólo admite texto NVT–ASCII (Network Virtual Terminal – ASCII).
• Para otros tipos: codificadores de binarios (uuencode) y sobre
todo extensiones al mensaje (MIME, RFC1341 )
c
2004
GSyC
Redes: Correo electrónico
228
Generalidades (cont.)
Cabeceras
Le dicen al MTA qué debe hacer con el correo.
From: Dirección de origen
To: Dirección/direcciones de destino
CC: Con copia a. . .
BCC: Con copia ciega a. . .
Subject: Tema sobre el que versa la carta
Date: Fecha en que fue enviada
Received: Por dónde ha pasado la carta
Message-id: Identificador del mensaje
c
2004
GSyC
Redes: Correo electrónico
229
Generalidades (cont.)
Direcciones de correo
Dan la información necesaria para enviar/recibir un mensaje.
Indican a–dónde–va/de–dónde–viene, pero no por dónde ha de
pasar.
Formato Internet:
id_usuario@máquina.dominio
O bien, gracias a las cláusulas MX de DNS:
id_usuario@dominio
c
2004
GSyC
Redes: Correo electrónico
230
MIME
MIME
Las RFC 2045 – 2049 extienden el contenido de los mensajes
de correo para que puedan adjuntarse datos genéricos (attachments).
Multimedia Internet Mail Extensions define 5 cabeceras
• MIME-version:
• Content-Description:
• Content-Id:
• Content-Transfer-Encoding
• Content-Type:
Hay 8 tipos: Text, Image, Audio, Video, Application, Message, Model y Multipart.
varios subtipos: Text: html, plain o richtext; Image: gif, jpeg; . . .
c
2004
GSyC
Redes: Correo electrónico
231
MIME (cont.)
El Content-Type se utiliza para saber cómo tratar en el destino los
datos (con qué aplicación).
El Content-Transfer-Encoding se utiliza para saber cómo codificar para transmitir los datos por la red y descodificar los datos transmitidos.
base 64 (ASCII armor) para binarios:
grupos de 24 bits se rompen en 4x6 bits.
Cada carácter de 6 bits se cuantifica en binario y se manda en
ASCII
( el 0 va como una A, el 1 como B. . . ). Se rellena con = al final.
quoted-printable-encoding para textos con acentos: codifica los
caracteres por encima del 127 con un caracter “=” y dos dı́gitos
hexadecimales.
7bit, 8bit, binary. . .
c
2004
GSyC
Redes: Correo electrónico
232
El protocolo SMTP
El protocolo SMTP
usuario
agente de
usuario
(UA)
cola de correo
saliente
agente de
transferencia de
mensajes
(MTA)
remitente
conexión TCP
Puerto 25/TCP
usuario
agente de
usuario
(UA)
buzones
de los usuarios
agente de
transferencia de
mensajes
(MTA)
destinatario
c
2004
GSyC
Redes: Correo electrónico
233
El protocolo SMTP (cont.)
“Simple Mail Transfer Protocol”
Define los comandos que se emplean para comunicarse con/desde
un MTA.
¿Cómo? Conexión al puerto tcp/25 y envı́o de órdenes.
Los mensajes estaban limitados a 64K y habı́a problemas de timeouts, por lo que la RFC 1425 define ESMTP (EHLO...)
c
2004
GSyC
Redes: Correo electrónico
234
El protocolo SMTP (cont.)
(Telnet pantuflo.escet.urjc.es 25)
Connecting to pantuflo.escet.urjc.es (ether)...
220 pantuflo.escet.urjc.es
Sendmail SMI-8.6/SMI-SVR4 ready at Mon, 7 Sept 1998
>>> HELO a202e12.escet.urjc.es
250 pantuflo.escet.urjc.es
Hello a01-unix [192.2.3.14], pleased to meet you
>>> MAIL From:<[email protected]>
250 <[email protected]>... Sender ok
>>> RCPT To:<[email protected]>
250 <[email protected]>... Recipient ok
(Pueden ir varias RCPT seguidas)
>>> DATA
354 Enter mail, end with "." on a line by itself
Subject: Ejemplo
Texto del mail
.
250 MAA29247 Message accepted for delivery
>>> QUIT
221 pantuflo.escet.urjc.es closing connection
c
2004
GSyC
Redes: Correo electrónico
235
Recepción de correo de un MTA
Recepción de correo de un MTA
Los usuarios no tienen que estar permanentemente conectados
a la red ni compartir el directorio donde el MTA almacena los
mensajes.
Puede usarse un modelo cliente/servidor, siguiendo un protocolo que permita recuperar los mensajes del buzón (y borrarlos o
dejarlos) para que el UA pueda presentarlos en pantalla.
Hay varios protocolos para esto:
• POP2, POP3: Post Office Protocol. (RFC-1725,1734,1082)
• IMAP: Internet Message Access Protocol (RFC-1203; 1730 al
1733)
c
2004
GSyC
Redes: Correo electrónico
236
Referencias
Referencias
“SMTP: Simple Mail Transfer Protocol”, capı́tulo 28 de “TCP/IP’
Illustrated, Volume 1”, por W. Richard Stevens, Addison Wesley,
1994.
“SMTP. Simple Mail Transfer Protocol. A tutorial”, por Ben-Dayan
Maor, Ben-Shimon Sonny, Efron Niv, Kuperman Idan y Meller Tal.
http://raddist.rad.com/networks/1998/smtp/smtp.htm
“POP vs. IMAP”, por Barnard College Online Tutorials.
http://www.barnard.edu/at/training/eudora/imap.html
c
2004
GSyC
Redes: Correo electrónico
237
Referencias (cont.)
Resumen de RFCs principales
RFC821: protocolo SMTP
RFC822: formato de mensajes e interpretación de cabeceras
RFC974: gestión de cláusulas MX del DNS
RFC1425: protocolo ESMTP (Extended SMTP)
RFC1341: MIME: “Multipurpose Internet Mail Extensions”
c
2004
GSyC
Redes: Correo electrónico
Descargar