Está en la página 1de 150

Redes

Grupo de Sistemas y Comunicaciones


gsyc-profes@gsyc.escet.urjc.es

Octubre 2001

Introducción a las
Redes de Ordenadores

2001
c GSyC Redes
Introducción 2

Introducción

Primeros sistemas informáticos:


• Pocos ordenadores
• De gran tamaño
• Sistemas Centralizados
Redes de Ordenadores:
• Muchos ordenadores
• De pequeño tamaño
• Interconectados en Red

2001
c GSyC Redes: Introducción a las Redes de Ordenadores

Redes y Sistemas Distribuidos 3

Redes y Sistemas Distribuidos

Redes:
• Conjunto de ordenadores autónomos interconectados.
• No hay relaciones de dependencia cliente/servidor.
• Se utilizan explı́citamente las distintas máquinas.
Sistemas Distribuidos:
• La existencia de múltiples máquinas es transparente al usuario.
• Son un caso particular de redes.
• Su transparencia se adquiere mediante software.

2001
c GSyC Redes: Introducción a las Redes de Ordenadores
Objetivos de las Redes 4

Objetivos de las Redes

• Compartición de recursos: Discos duros, impresoras . . .


• Fiabilidad alta: Alternativas, replicación . . .
• Ahorro económico: No varias CPU’s grandes, impresoras . . .
• Incremento gradual de rendimiento: Nuevas máquinas pequeñas . . .
• Vehı́culo de comunicación entre gente geográficamente distantes

2001
c GSyC Redes: Introducción a las Redes de Ordenadores

Estructura de las Redes 5

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 (Redes de conmutación de paquetes)
• mediante canales de radiado o broadcast

2001
c GSyC Redes: Introducción a las Redes de Ordenadores
Topologı́as comunes en Redes 6

Topologı́as comunes en Redes

ESTRELLA ANILLO ARBOL

TOTALMENTE PARCIALMENTE
CONECTADA CONECTADA

BUS SATELITE ANILLO

2001
c GSyC Redes: Introducción a las Redes de Ordenadores

Protocolo de Comunicaciones 7

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.”

2001
c GSyC Redes: Introducción a las Redes de Ordenadores
Jerarquı́as de Protocolos 8

Jerarquı́as de Protocolos

La mayorı́a de las redes se organizan en niveles o capas construidos cada


uno sobre el inmediatamente inferior.
En las distintas redes son diferentes:
• los nombres de los niveles
• el número de niveles
• la funcionalidad de cada nivel
El conjunto de niveles y protocolos se denomina Arquitectura de la Red.

2001
c GSyC Redes: Introducción a las Redes de Ordenadores

Jerarquı́as de Protocolos (cont.) 9

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 un nivel, su superior
y su inferior a través de los interfaces entre niveles

2001
c GSyC Redes: Introducción a las Redes de Ordenadores
Jerarquı́as de Protocolos (cont.) 10

Maquina A Maquina B
Protocolo del Nivel 4
Nivel 4 Nivel 4
interfaz 3/4
Protocolo del Nivel 3
Nivel 3 Nivel 3
interfaz 2/3
Protocolo del Nivel 2
Nivel 2 Nivel 2
interfaz 1/2
Protocolo del Nivel 1
Nivel 1 Nivel 1

Medio de transmision

2001
c GSyC Redes: Introducción a las Redes de Ordenadores

Jerarquı́as de Protocolos (cont.) 11

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, . . . )
• formar sus propias unidades de datos (con cabeceras, colas)
• pasar sus unidades de datos al nivel inferior, usando sus servicios
¿Es esto software o hardware?

2001
c GSyC Redes: Introducción a las Redes de Ordenadores
Jerarquı́as de Protocolos (cont.) 12

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
• procesarlos (agrupando, separando, . . . )
• formar sus propias unidades de datos (con cabeceras, colas)
• pasar sus unidades de datos al nivel superior, a través de sus servicios
¿Es esto software o hardware?

2001
c GSyC Redes: Introducción a las Redes de Ordenadores

Jerarquı́as de Protocolos (cont.) 13

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

2001
c GSyC Redes: Introducción a las Redes de Ordenadores
Jerarquı́as de Protocolos (cont.) 14

2001
c GSyC Redes: Introducción a las Redes de Ordenadores

Jerarquı́as de Protocolos (cont.) 15

2001
c GSyC Redes: Introducción a las Redes de Ordenadores
Jerarquı́as de Protocolos (cont.) 16

2001
c GSyC Redes: Introducción a las Redes de Ordenadores

Jerarquı́as de Protocolos (cont.) 17

2001
c GSyC Redes: Introducción a las Redes de Ordenadores
Jerarquı́as de Protocolos (cont.) 18

2001
c GSyC Redes: Introducción a las Redes de Ordenadores

Jerarquı́as de Protocolos (cont.) 19

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

2001
c GSyC Redes: Introducción a las Redes de Ordenadores
Jerarquı́as de Protocolos (cont.) 20

2001
c GSyC Redes: Introducción a las Redes de Ordenadores

Jerarquı́as de Protocolos (cont.) 21

Arquitecturas de
Comunicaciones

2001
c GSyC Redes: Arquitecturas de Comunicaciones
Modelo de Referencia OSI 22

Modelo de Referencia OSI

Propuesto en 1983 por ISO (Organización de Estándares Internacionales).


Modelo para intentar estandarizar un conjunto de protocolos para la co-
municación entre máquinas:
Modelo de Referencia para la Interconexión de Sistemas Abiertos (ISO
OSI Reference Model).
El Modelo OSI no es una Arquitectura: No define los servicios y protocolos
exactos para cada nivel, sólo aquello de lo que cada nivel debe ocuparse.
ISO ha producido estándares para cada nivel del modelo OSI.

2001
c GSyC Redes: Arquitecturas de Comunicaciones

Modelo de Referencia OSI (cont.) 23

Principios de diseño

El Modelo OSI estructura las redes en 7 niveles. Para ello se basa en:
1. Se crea un nivel allı́ donde se necesite un nuevo nivel de abstracción.
2. Cada nivel debe realizar una función definida claramente.
3. La función de cada capa debe elegirse teniendo en cuenta una posible
estandarización internacional de protocolos.
4. Los bordes de los niveles deben elegirse para minimizar el flujo de
información a través de los interfaces.
5. Debe existir un equilibrio entre la separación de funciones en niveles
y el no dejar crecer excesivamente su número.

2001
c GSyC Redes: Arquitecturas de Comunicaciones
Modelo de Referencia OSI (cont.) 24

La “torre” OSI
Maquina A Maquina B
Protocolo de Aplicacion
Aplicacion Aplicacion

Protocolo de Presentacion
Presentacion Presentacion

Protocolo de Sesion
Sesion Sesion

Protocolo de Transporte
Transporte Transporte

Protocolo de Red
Red Red

Protocolo de Enlace
Enlace Enlace

Protocolo de nivel Fisico


Fisico Fisico

Medio de transmision

2001
c GSyC Redes: Arquitecturas de Comunicaciones

Modelo de Referencia OSI (cont.) 25

El Nivel Fı́sico

Se ocupa de enviar y recibir bits sobre un medio fı́sico de transmisión:


• Debe asegurarse que un bit a 1 enviado es recibido 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, . . .

2001
c GSyC Redes: Arquitecturas de Comunicaciones
Modelo de Referencia OSI (cont.) 26

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.

• Un emisor trocea los datos del nivel de red y envı́a tramas de datos
secuencialmente, recibiendo tramas de asentimiento del receptor.
• Crear y reconoce separadores de tramas.
• Retransmite tramas perdidas y elimina tramas duplicadas.
• Controla el flujo de la transmisión.
• Se ocupa de la transmisión bidireccional, si la hubiere.

2001
c GSyC Redes: Arquitecturas de Comunicaciones

Modelo de Referencia OSI (cont.) 27

Nivel de Red

Controla el funcionamiento de la subred, para interconectar máquinas que


no están en el mismo medio fı́sico:
• Se ocupa del encaminamiento de paquetes desde el origen al destino.
• El encaminamiento puede ser estático o dinámico.
• Gestiona las congestiones y cuellos de botella.
• Puede incluir funciones de tarificación.
• Se encarga de los problemas de direccionamiento entre redes hete-
rogéneas.

2001
c GSyC Redes: Arquitecturas de Comunicaciones
Modelo de Referencia OSI (cont.) 28

Nivel de Transporte

• Se encarga de multiplexar o no conexiones de transporte en conexiones


de red.
• Puede proporcionar distintos tipos de servicio: Fiable, no fiable.
• Realiza comunicación extremo a extremo, sin intermediarios.
• Gestiona puertos en máquinas multiproceso.
• Realiza control de flujo extremo a extremo.

2001
c GSyC Redes: Arquitecturas de Comunicaciones

Modelo de Referencia OSI (cont.) 29

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.

2001
c GSyC Redes: Arquitecturas de Comunicaciones
Modelo de Referencia OSI (cont.) 30

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.
• 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.

2001
c GSyC Redes: Arquitecturas de Comunicaciones

Modelo de Referencia OSI (cont.) 31

Nivel de Aplicación

Contiene un conjunto de protocolos que son de utilidad directa para apli-


caciones que usan red:

• Para transmisión de ficheros


• Para correo electrónico
• Para control de trabajos remotos
• ...

2001
c GSyC Redes: Arquitecturas de Comunicaciones
Modelo de Referencia OSI (cont.) 32

Crı́ticas al Modelo OSI

• Surgió demasiado pronto.


• Niveles de distinto “grosor”.
• Modelo muy complejo.
• Funcionalidades mal situadas: cifrado, . . .
• Modelo dominado por las comunicaciones y no por la informática

2001
c GSyC Redes: Arquitecturas de Comunicaciones

La familia de protocolos TCP/IP 33

La familia de protocolos TCP/IP

El conjunto de protocolos TCP/IP permite la comunicación entre diferen-


tes máquinas que ejecutan sistemas operativos completamente distintos.
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 la Internet.
No se ajustan al modelo de referencia OSI.

2001
c GSyC Redes: Arquitecturas de Comunicaciones
La familia de protocolos TCP/IP (cont.) 34

Los niveles

Protocolos de red: estructura en forma de pila de niveles.


Pila de TCP/IP: Sistema de 4 niveles:

Nivel de Aplicación Protocolos que usan directamente aplicaciones de red


telnet, ftp, snmp, http. . .
Nivel de Transporte Transporte de datos extremo a extremo
TCP, UDP
Nivel de Red Encaminamiento y paquetes
IP, ICMP
Nivel de Enlace Acceso a la red fı́sica
Ethernet

2001
c GSyC Redes: Arquitecturas de Comunicaciones

La familia de protocolos TCP/IP (cont.) 35

Protocolo FTP
Cliente FTP Servidor FTP

Protocolo TCP
TCP TCP

router

Protocolo IP Protocolo IP
IP IP IP

Protocolo Protocolo
Driver Ethernet Ethernet Driver Ethernet Driver token ring token ring Driver token ring

TOKEN RING
ETHERNET

2001
c GSyC Redes: Arquitecturas de Comunicaciones
La familia de protocolos TCP/IP (cont.) 36

Nivel Fı́sico

2001
c GSyC Redes: Nivel Fı́sico

Introducción 37

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 de fı́sicos
de transmisión.
Debe ocuparse de que las entidades directamente interconectadas con-
cuerden 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.

2001
c GSyC Redes: Nivel Fı́sico
Conceptos Generales 38

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: Tiempo que tarda en llegar un bit al destino.
Transmisión serie: Se transmite bit a bit.
Transmisión en paralelo: Se transmiten varios bits de golpe.
Transmisión sı́ncrona: Existe un reloj común para emisor y receptor.
Transmisión ası́ncrona: No hay reloj común. Los datos deben ayudar al
sincronismo.

2001
c GSyC Redes: Nivel Fı́sico

Conceptos Generales (cont.) 39

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.

2001
c GSyC Redes: Nivel Fı́sico
Medios de Transmisión 40

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 100 Mbps.
El problema es la latencia o retardo de propagación: lo que tarda en llegar
el primer byte a su destino.
Los bancos siguen utilizando estos métodos.

2001
c GSyC Redes: Nivel Fı́sico

Medios de Transmisión 41

Medios de Transmisión

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.
Para transmisiones analógicas y digitales.
Utilizados sobre todo en telefonı́a.
Pueden alcanzarse cientos de Mbps de ancho de banda.

2001
c GSyC Redes: Nivel Fı́sico
Medios de Transmisión (cont.) 42

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.
Suele utilizarse para transmisión digital:
• Pura: 5 voltios = 1 binario, 0 voltios = 0 binario.
• Código Manchester: Transición de 5 a 0 voltios = 1 binario, transición
de 0 a 5 voltios = 0 binario.

2001
c GSyC Redes: Nivel Fı́sico

Medios de Transmisión (cont.) 43

Cable Coaxial de Banda Ancha

Igual que el de Banda Base, pero de 75 ohmios.


Utilizado tradicionalmente para televisión.
Para transmisión analógica.
Alcanza hasta 150 Mbps, pero necesita amplificadores intermedios que
convierten el canal en unidireccional.

2001
c GSyC Redes: Nivel Fı́sico
Medios de Transmisión (cont.) 44

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.

2001
c GSyC Redes: Nivel Fı́sico

Medios de Transmisión (cont.) 45

Transmisión por Aire

Muy barato en muchos casos.


Se transmiten señales de radio por radiado (broadcast).
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.

2001
c GSyC Redes: Nivel Fı́sico
Transmisión Analógica 46

Transmisión Analógica

Los ordenadores desean transmitir bits. Cuando el medio de transmisión


es analógico necesitamos MOduladores–DEModuladoreS en los puntos de
acceso al medio.
Los modems convierten una señal digital en su equivalente analógica (mo-
dulan) y viceversa (demodulan).

MODEM MODEM

Transmision
´ Digital
Transmision
´ Analogica
´

2001
c GSyC Redes: Nivel Fı́sico

Transmisión Analógica (cont.) 47

Tipos de Modulación

0 1 0 1 1 0 0 1 0 0 1 0 0

(a)

(b)

(c)

(d)

Phase changes

2001
c GSyC Redes: Nivel Fı́sico
Transmisión Analógica (cont.) 48

Estándar RS-232-C

Especifica la forma de comunicación entre un ordenador y un módem:


• Especificación Mecánica: Conector de 25 patillas.
• Especificación Eléctrica: V < −3 volts = 1; V > 4 volts = 0.
• Especificación Funcional: Ver figura de la página siguiente.
• Especificación Procedural: Basada en acción–reacción: A un Request
to Send le contesta un Clear to Send.
Permite interconectar directamente dos ordenadores (módem nulo) hasta
a 15 metros a 20 Kbps.
Actualizado por el RS-449, que permite hasta 60 metros a 2 Mbps.

2001
c GSyC Redes: Nivel Fı́sico

Transmisión Analógica (cont.) 49

Tierra (1)
Transmit (2)
Receive (3)
Request to Send (4)
Ordenador Clear to Send (5) Modem
Data Set Ready (6)
Common Return (7)
Carrier Detect (8)
Data Terminal Ready (20)

2001
c GSyC Redes: Nivel Fı́sico
Transmisión Digital 50

Transmisión Digital

Se envı́an los 1 y 0 directamente, lo que presenta varias ventajas:


• Menor tasa de errores gracias a los repetidores digitales.
• Multiplexación de comunicaciones (vı́deo, audio, datos).
• Mayor velocidad de transmisión.
Desventaja principal: Mayor coste, pero va decreciendo rápidamente.

2001
c GSyC Redes: Nivel Fı́sico

Transmisión Digital (cont.) 51

Nivel de Enlace
(I. Acceso al Medio)

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
Introducción 52

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
El MAC aparece fundamentalmente en redes en las que varias máquinas
comparten el mismo medio de transmisión, y su objetivo esencial es de-
terminar quién puede acceder al canal cuando varios lo intentan a la vez.
A él se dedica este tema: Nivel de Enlace (Primera Parte).

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

LAN’s y WAN’s 53

LAN’s y WAN’s

El Subnivel de acceso al medio cobra especial importancia en las llamadas


Redes de Área Local (LAN), ya que suelen utilizar un canal compartido
como medio básico de comunicación.
Caracterı́sticas diferenciadoras de una LAN:
• Diámetro no más grande de unos cuantos kilómetros.
• Velocidad de transferencia media de al menos unos cuantos Mbps.
• Propiedad de una sola organización.
Redes de Área Extensa (WAN): Caracterı́sticas opuestas.
Concepto intermedio: Redes de Área Metropolitanas: Tecnologı́a LAN
con extensión de una ciudad, por ejemplo. Basadas en tecnologı́a digital.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
El problema del acceso al medio 54

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 (multiplexa) el canal en el tiempo
(TDM) o en frecuencia (FDM). Bueno para tráficos pesados y cons-
tantes, pero malo para ráfagas (lo habitual en LAN’s).
• Asignación dinámica: No está prefijado el reparto. Trata de aprove-
char mejor el canal en LAN’s.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

Asignación Dinámica 55

Asignación Dinámica

Los conceptos básicos que se manejan en los distintos protocolos de asig-


nación dinámica del canal son:
• Si se transmite más de una trama a la vez hay colisión.
• El tiempo puede ser continuo o ranurado.
• Las estaciones pueden ser capaces o no de detectar si el canal está
ocupado en un momento dado.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
Protocolos ALOHA 56

Protocolos ALOHA

ALOHA puro

Ideado por Norman Abramson en la Universidad de Hawaii en los años 70.


Bases del protocolo:
• Cada estación transmite cuando quiere.
• El propio medio compartido hace que la estación detecte (a posteriori,
cuando recibe su propio mensaje) si hubo colisión al transmitir.
• Si hubo colisión, se espera una cantidad aleatoria de tiempo y se
retransmite.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

Protocolos ALOHA (cont.) 57

Sea S el tráfico cursado por el canal (normalizado). 0 ≤ S ≤ 1. Si S = 1,


el canal transmite las máximas tramas de que es capaz.
Sea G el tráfico ofrecido al canal. Al haber retransmisiones, G ≥ S.
En situaciones de carga baja del canal (S ≈ 0), hay pocas colisiones, luego
hay pocas retransmisiones y G ≈ S.
En situaciones de carga alta del canal hay muchas colisiones, luego por lo
tanto muchas retransmisiones, y G > S.
En el protocolo ALOHA puro, se demuestra que S = Ge−2G , función que
alcanza su máximo en (G = 0.5, S = 0.184), lo que indica que la máxima
utilización del canal es de un 18%.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
Protocolos ALOHA (cont.) 58

ALOHA ranurado

En 1972 Roberts publicó una variación del ALOHA puro, en la que el


tiempo quedaba ranurado (slotted), i.e.: dividido en intervalos discretos.
Una estación no puede transmitir hasta el comienzo de una ranura de
tiempo.
Se puede comprobar que se ha reducido la probabilidad de colisión.
Ahora: S = Ge−G
Máximo: (G = 1, S = 0.37).
Se ha doblado el aprovechamiento del canal: 37%.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

Protocolos ALOHA (cont.) 59

Comparación

S
IDEAL
1

0.5
ALOHA RANURADO
0.37

0.18 ALOHA PURO

0.5 G
1

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
Protocolos CSMA 60

Protocolos CSMA

El principal problema en ALOHA es que las estaciones se ponen a trans-


mitir sin fijarse si el canal está ocupado o no.
Los avances en la tecnologı́a permiten a una estación escuchar en el canal
antes de transmitir para ver si ya hay alguien transmitiendo.
CSMA: Carrier Sense Multiple Access: 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.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

Protocolos CSMA (cont.) 61

¿Cuándo se producen 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.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
Protocolos CSMA (cont.) 62

CSMA no persistente

1. Escucha en el canal
2. ¿Está libre?
• SI: Transmite
• NO: Se espera un tiempo aleatorio y se vuelve a 1

Ventaja: Se reduce la probabilidad de colisión.


Inconveniente: Hay tiempos muertos en que el canal puede estar libre y
no se usa.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

Protocolos CSMA (cont.) 63

CSMA 1-persistente

1. Escucha en el canal
2. ¿Está libre?
• SI: Transmite
• NO: Vuelve a ??

Ventaja: No se desaprovecha tiempo.


Inconveniente: Mayor número de colisiones.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
Protocolos CSMA (cont.) 64

CSMA p-persistente

1. Escucha en el canal
2. ¿Está libre?
• SI: Transmite con probabilidad p, espera con probabilidad 1 − p
antes de volver a ??
• NO: Vuelve a ??

Se utiliza en canales con tiempo ranurado, con lo que la espera proba-


bilı́stica es hasta la siguiente ranura.
Ventaja: Descienden las colisiones con respecto a CSMA 1-persistente.
Inconveniente: Vuelven a aparecer los tiempos muertos.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

Protocolos CSMA (cont.) 65

CSMA/CD

CSMA/CD: CSMA with Collision Detection — CSMA con detección de


colisiones.

• Las estaciones permanecen a la escucha del canal mientras transmiten.


• Si se produce colisión. abortan inmediatamente la transmisión y es-
peran un tiempo aleatorio para reintentarlo.
• En caso de sucesivas colisiones, se espera cada vez más tiempo para
reintentar, hasta que se abandona.

Aparecen las mismas variantes: no-persistente, 1-persistente y p-persis-


tente.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
Protocolos CSMA (cont.) 66

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

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

Protocolos CSMA 67

Protocolos CSMA

Comparación
S
CSMA/CD
no-persistente
1

CSMA/CD
0.8 1-persistente

0.6
CSMA
no-persistente
0.4 CSMA
1-persistente CSMA
ALOHA 0.1-persistente
ranurado
0.2
ALOHA

0
0.1 1 10 100 G
0.01

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
Protocolos de Paso de Testigo 68

Protocolos de Paso de Testigo

La asignación dinámica del canal puede NO hacerse por contienda, sino


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 configuren como un anillo, bien
fı́sico o bien lógico.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

Protocolos de Paso de Testigo (cont.) 69

Token Ring

Las estaciones están interconectadas por un conjunto de enlaces punto a


punto, formando un anillo fı́sico.
Cada estación lleva asociada un repetidor que conecta sus enlaces de
entrada y salida.
Cada estación puede estar en uno de los siguientes estados:
• Escucha: Repite lo que le llega por un enlace al otro, tras analizarlo.
• Transmisión: Envı́a sus datos por el enlace de salida.
• Inactivo: Simplemente interconecta sus dos enlaces

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
Protocolos de Paso de Testigo (cont.) 70

Mecanismo:
• Cuando el canal está libre, por él circula el testigo.
• Cuando una estación quiere transmitir:
– captura el testigo
– envı́a su trama, recibiendo un asentimiento del destino
– devuelve el testigo al anillo.
Nótese que de esta forma, la siguiente estación del anillo será la próxima
con oportunidad para transmitir.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

Protocolos de Paso de Testigo (cont.) 71

Token Bus

Las estaciones se conectan en un bus de radiado, configurándose un anillo


lógico entre ellas.
Cada estación debe pasar el testigo a la siguiente en el anillo lógico: El
testigo ahora debe llevar un campo de dirección.
La gestión del anillo lógico es una complicación añadida al caso de Token
Ring: Las estaciones que quieren entrar o abandonar el anillo obligan a
una reorganización de la estructura lógica de la que todas las estaciones
deben enterarse.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
Redes FDDI 72

Redes FDDI

Las redes FDDI (Fiber Distributed Data Interface) son LAN’s de estacio-
nes en Token Ring con enlaces de fibra óptica, a 100 Mbps.
El anillo es doble: Cada estación puede estar está conectada a los dos ani-
llos idénticos, en los que se transmite en sentidos inversos, proporcionado
un grado de protección frente al fallo de uno de los dos anillos.
Estaciones Clase A se conectan a los dos anillos, las Clase B sólo a uno.
Pueden conectarse al anillo hasta 1000 estaciones, teniendo una longitud
máxima de hasta 200 km de fibra.
Protocolos similares al IEEE 802.5, pero ahora nada más transmitir se
devuelve el testigo al anillo, en vez de esperar a que regrese la trama.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

Redes por Satélite 73

Redes por Satélite

En las redes por satélite es inviable la detección de portadora: El retardo


de propagación es de 270 ms, con lo que durante ese tiempo una estación
habrı́a trasmitido gran cantidad de bytes inútiles. Por ello no pueden
emplearse protocolos CSMA.
Tampoco protocolos de Token Bus: Con un anillo lógico de 100 estaciones
el testigo tardarı́a 27 segundos en dar la vuelta completa.
Posibilidades:
• FDM o TDM.
• ALOHA ranurado
• ALOHA con reserva

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)
Redes por Satélite (cont.) 74

ALOHA con reserva

Es un hı́brido entre TDM y ALOHA ranurado:


• Se parte de un esquema TDM, donde cada estación tiene asignada
una ranura.
• Cuando una estación no ocupa su ranura, para la siguiente ronda
queda disponible para que la utilice otra estación.
• Si se produce colisión, en la siguiente ronda nadie puede coger la
ranura salvo su primitivo dueño.
El sistema se comporta para baja carga como un ALOHA ranurado puro,
y para alta carga como TDM puro.

2001
c GSyC Redes: Nivel de Enlace(I. Acceso al Medio)

Redes por Satélite (cont.) 75

Nivel de Enlace
(II. Tipos de Servicio)

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Introducción 76

Introducción

El propósito del Nivel de enlace es conseguir una transmisión fiable y


eficiente entre máquinas adyacentes.
Misiones:
• Composición/descomposición de tramas.
• Control de flujo.
• Gestión de los errores en la transmisión.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Servicios ofrecidos por el Nivel de Enlace 77

Servicios ofrecidos por el Nivel de Enlace

El Nivel de Enlace puede diseñarse de forma que ofrezca distintos tipos


de servicio:
• servicio no orientado a conexión y no confirmado
• servicio no orientado a conexión y confirmado
• servicio orientado a conexión

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Servicio No Orientado a Conexión 78

Servicio No Orientado a Conexión

Cada trama se envı́a al destino de forma independiente.


Tipos:
No Confirmado Si una trama se pierde, no se intenta recuperar en el
Nivel de Enlace. Sera misión de los niveles superiores
Confirmado Cada trama enviada debe ser asentida por el receptor. Las
tramas perdidas se reenvı́an.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Servicio Orientado a Conexión 79

Servicio Orientado a Conexión

Las máquinas origen y destino negocian y establecen una conexión antes


de enviar la primera trama con datos.
Las tramas de datos se envı́an numeradas, lo que permite el reordena-
miento y la eliminación de duplicados en el destino.
Fases:
• establecimiento de la conexión
• transmisión de las tramas de datos
• liberación de la conexión

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Gestión de tramas 80

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.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Gestión de tramas (cont.) 81

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.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Control de Flujo 82

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.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Gestión de errores 83

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 comu-


nicació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.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Gestión de errores (cont.) 84

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.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Bits cambiados en una trama 85

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).

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Corrección de errores 86

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): No de diferencias entre dos patrones consecuti-
vos.
En un patrón pueden detectarse hasta d − 1 errores, y corregirse hasta
(d − 1)/2 errores.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Corrección de errores (cont.) 87

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).

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Detección de errores y retransmisión 88

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.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Detección de errores y retransmisión (cont.) 89

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 probabi-
lidades de detectar un error en más de 1 bit a la vez.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Detección de errores y retransmisión (cont.) 90

Códigos de Redundancia Cı́clica (CRC)

Se consideran los patrones de bits como polinomios, y se realizan opera-


ciones aritméticas módulo 2 con ellos.

• Transmisor y receptor eligen un polinomio generador G(x) de r bits,


con al menos el primero y el último a 1.
• Para transmitir un patrón de bits P (x), se calcula:
r
T (x) = (xr P (x)) − resto( xG(x)
P (x)
)

• El receptor divide T (x) entre G(x), y si obtiene un resto distinto de


cero, considera T (x) erróneo.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Detección de errores y retransmisión (cont.) 91

Polinomios generadores normalizados:


CRC–12 x12 + x11 + x3 + x2 + x1 + 1
CRC–16 x16 + x15 + x2 + 1
CRC–CCITT x16 + x12 + x5 + 1

El cálculo del CRC se implementa con circuitos hardware sencillos.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Detección de errores y retransmisión (cont.) 92

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

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Protocolos elementales de retransmisión 93

Protocolos elementales de retransmisión

Estos protocolos, además de permitir la recuperación frente a tramas per-


didas 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.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Protocolos elementales de retransmisión (cont.) 94

Tres tipos principales de protocolos:


• De parada y espera: El transmisor, después de enviar una trama, espe-
ra 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 tra-
mas antes de recibir el primer asentimiento

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Protocolos elementales de retransmisión (cont.) 95

Parada y Espera

Mecanismo básico:
Emisor Receptor

tiempo
dato-1

Plazo
ACK

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Protocolos elementales de retransmisión (cont.) 96

Emisor Receptor

tiempo dato-1

Plazo

dato-1

Plazo
ACK

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Protocolos elementales de retransmisión (cont.) 97

El protocolo genera duplicados, que podrı́an descartarse en el receptor si


los paquetes van identificados de alguna forma.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Protocolos elementales de retransmisión (cont.) 98

Emisor Receptor

tiempo dato-1

Plazo ACK

dato-1

Plazo
ACK

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Protocolos elementales de retransmisión (cont.) 99

Emisor Receptor

tiempo dato-1

Plazo

ACK

dato-1

Plazo ACK

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Protocolos elementales de retransmisión (cont.) 100

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) Ya no hay duplicados ni pérdidas

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Protocolos elementales de retransmisión (cont.) 101

Envı́o Continuo

Estamos infrautilizando el canal. Mejor que el emisor envı́e siempre que


pueda.
Envı́o contı́nuo con Rechazo Simple:
Emisor Receptor

tiempo dato-1
dato-2

dato-3

dato-4

dato-5
nack-3
Se asiente negativamente la trama perdida,
dato-6
por lo que ¡¡cada trama debe tener un identificador!!
dato-3

dato-4 El Emisor debe reenviar todas las tramas desde la perdida


dato-5

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Protocolos elementales de retransmisión (cont.) 102

Envı́o contı́nuo con Rechazo Selectivo:


Emisor Receptor

dato-1
tiempo
dato-2
dato-3
dato-4
dato-5
nack-3
Se asiente negativamente la trama perdida
dato-6
dato-3
dato-7 Emisor sólo retransmite las tramas indicadas,
dato-8 lo que es más eficiente

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Protocolos elementales de retransmisión (cont.) 103

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.

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)
Protocolos elementales de retransmisión (cont.) 104

Emisor Receptor

1 dato-1
1 2 dato-2
1 2 3 dato-3

Tamaño de ventana del Emisor: 3


ack-1
2 3 ack-2
4 2 3
4 3 dato-4
4 5 3
dato-5
4 5 3 dato-3

2001
c GSyC Redes: Nivel de Enlace(II. Tipos de Servicio)

Protocolos elementales de retransmisión (cont.) 105

Nivel de Enlace
(III. Ejemplos)

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
El estándar IEEE 802.3 106

El estándar IEEE 802.3

El estándar IEEE 802 define normas para protocolos que cubran los niveles
de enlace y fı́sico para varias topologı́as de LAN.
Tiene varias partes:
802.1 Da la introducción al conjunto de estándares.
802.2 Contiene las especificaciones de la parte alta del Nivel de Enlace:
LLC (Control del Enlace Lógico).
802.3 Estándar para CSMA/CD 1-persistente.
802.4 Estándar para Token Bus.
802.5 Estándar para Token Ring.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

El estándar IEEE 802.3 (cont.) 107

Una de sus implementaciones más extendidas: Ethernet, de Xerox, DEC,


Intel.
Utiliza asignación del canal por CSMA/CD 1-persistente.
Ethernet: 10 Mbps (Fast-Ethernet: 100 Mbps).
Se utiliza transmisión digital, con código Manchester: La transición de
estado en mitad del bit permite la sincronización.
En cada instante el cable puede estar transmitiendo un 0 (pasando de
+0.85 voltios a –0.85), transmitiendo un 1 (pasando de –0.85 a +0.85),
o inactivo (a 0 voltios) si nadie transmite.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
El estándar IEEE 802.3 (cont.) 108

Máxima longitud del coaxial sin repetidores: 500 metros.


Máxima longitud total: 2,5 km, con 4 repetidores.
Cada ordenador se conecta al cable coaxial mediante un transceptor.
Dicho transceptor contiene la electrónica que se ocupa de:
• Detección de portadora
• Detección de colisión
En la tarjeta de red del ordenador un chip controlador es el que se encarga
de enviar y recibir tramas, accediendo a buffers de almacenamiento en la
propia tarjeta, que luego se pasan a la memoria principal.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

El estándar IEEE 802.3 (cont.) 109

Formato de trama
nº bytes 7 1 2ó6 2ó6 2 0 - 1500 0 - 46 4

Preámbulo Dirección destino Dirección origen Longitud Datos Relleno CRC

Comienzo de trama

Preámbulo 10101010 (x 7 veces). Permite al receptor sincronizar su


reloj con el del transmisor.
Comienzo de trama 10101011, indicando que a continuación empieza
la trama.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
El estándar IEEE 802.3 (cont.) 110

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 por el IEEE. Si está a 0, es de
ámbito local, relativo a esa subred. En ambos casos son direccio-
nes unienvı́o o unicast.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

El estándar IEEE 802.3 (cont.) 111

Longitud Indica el tamaño en bytes del campo de datos, entre 0 y 1500.


Datos La información que se transmite entre máquinas.
Relleno La norma obliga a que toda trama sea ≥ 64 bytes, para poder
considerar que todas las tramas menores son resultado de transmisio-
nes 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.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
El estándar IEEE 802.3 (cont.) 112

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.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

El estándar IEEE 802.3 (cont.) 113

Reintentos después de colisión

Mecanismo llamado Retroceso exponencial binario:


• En la colisión i sucesiva sobre el intento de enviar la misma trama,
se espera para reintentar entre 0 y 2i − 1 veces el tiempo de reacción
(51.2 µs).
• A partir de la colisión 10, siempre se espera entre 0 y 1023 veces el
tiempo de reacción.
• A la colisión 16 se desiste, y se informa del error.
Es mecanismo de espera aleatoria sobre un plazo cada vez mayor permite
que si colisionan pocas máquinas no se produzca mucho retardo, pero
también que si colisionan muchas se pueda salir del “atasco”

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
Niveles de Enlace en TCP/IP 114

Niveles de Enlace en TCP/IP

TCP/IP soporta distintos tipos de niveles de enlace, dependiendo del hard-


ware a emplear:
• Ethernet
• Token Ring
• FDDI
• Linea Serie RS-232
El más utilizado es el de Ethernet:
• CSMA/CD
• 10 Mbps
• Direcciones de 48 bits

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

Niveles de Enlace en TCP/IP (cont.) 115

Nivel de Enlace Ethernet

El formato de trama Ethernet que se utiliza en redes TCP/IP es algo


diferente del estándar IEEE 802.3:
nº bytes 7 1 6 6 2 0 - 1500 0 - 46 4

Preámbulo Dirección destino Dirección origen Tipo Datos Relleno CRC

Comienzo de trama

Aquı́ el campo Longitud no existe (las tarjetas son capaces de detectar


automáticamente la longitud de una trama), y en su lugar se emplea el
campo Tipo.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
Niveles de Enlace en TCP/IP (cont.) 116

El campo Tipo indica el Protocolo encapsulado dentro del campo de Da-


tos:
0800 datagrama IP
0806 paquete ARP (28 bytes de datos y 18 de relleno)
8035 paquete RARP (28 bytes de datos y 18 de relleno)

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

Niveles de Enlace en TCP/IP (cont.) 117

SLIP: Serial Line IP

Protocolo sencillo para encapsular datagramas IP en una linea serie:


datagrama IP

c0 db

END ESC ESC END

c0 db dc db dd c0

• No hay campo de tipo: Sólo puede usarse SLIP para enviar datagra-
mas IP.
• Cada extremo debe conocer la dirección IP del otro lado.
• No hay campo de CRC: Control de errores en niveles superiores.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
Niveles de Enlace en TCP/IP (cont.) 118

CSLIP: Compressed SLIP

Los datos de la aplicación ya llegan comprimidos al nivel de enlace, pero


las cabeceras no.
Muchos paquetes TCP llevan 1 sólo byte de datos, al que se añaden 20
bytes de la cabecera TCP y otros 20 de la cabecera IP.
CSLIP aplica compresión a los datagramas IP, consiguiendo reducir los 40
bytes de cabeceras a 3-5 bytes.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

Niveles de Enlace en TCP/IP (cont.) 119

PPP: Point to Point Protocol

Es un protocolo para encapsular IP por linea serie que corrige las deficien-
cias de SLIP.
Consta de tres partes:
• Especificación de la encapsulación de datagramas IP.
• Protocolo de Control del Enlace (LCP), para establecer, configurar y
testear el enlace.
• Familia de protocolos de Control de Red (NCPs), para poder especi-
ficar distintas familias de protocolos de niveles superiores.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
Niveles de Enlace en TCP/IP (cont.) 120

flag addr control flag


protocolo datos CRC
7E FF 03 7E
1 1 1 2 hasta 1500 2 1 nº bytes

protocolo
0021 datagrama IP

protocolo
C021 datos de control del enlace

protocolo
datos de control de red
8021

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

Niveles de Enlace en TCP/IP (cont.) 121

Interfaz de autoenvı́o (loopback)

Es un interfaz de nivel de enlace (al que se le asigna la dirección IP


127.0.0.1) que permite la comunicación entre aplicaciones TCP/IP que
coexistan en la misma máquina.
Un datagrama IP enviado a la dirección de autoenvı́o nunca aparecerá en
la red fı́sica.
El interfaz de autoenvı́o simplemente devuelve el datagrama IP a la parte
receptora de la propia máquina, como si acabara de llegar por la red.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
Red Digital de Servicios Integrados 122

Red Digital de Servicios Integrados

Origen

CCITT y las PTTs anticiparon una gran demanda de servicios digitales


entre usuarios finales:
• 1984: Acuerdan construir un sistema telefónico totalmente digital, la
Red Digital de Servicios Integrados (RDSI).
• Principal objetivo: Integración de servicios de voz con los servicios de
datos.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

Red Digital de Servicios Integrados (cont.) 123

Servicios RDSI

El principal servicio de la RDSI sigue siendo voz, pero con caracterı́sticas


avanzadas:
• Conexiones preestablecidas, teléfonos con memoria, teléfonos que
muestran los datos del que llama.
• Teléfonos conectados a ordenadores, de forma que al recibir una lla-
mada se obtenga de la base de datos al información del que llama.
Proporciona servicios de datos (conexión remota a dispositivos, llamadas
automáticas, etc.).

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
Red Digital de Servicios Integrados (cont.) 124

Arquitectura RDSI

Entre el usuario y el proveedor hay un tubo digital dúplex:


• Independiente de los dispositivos.
• Proporciona múltiples canales con multiplexión por división en el tiem-
po (MDT).

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

Red Digital de Servicios Integrados (cont.) 125

Customer's office Carrier's office

ISDN Terminal

Digital
bit pipe
T U To
ISDN carrier's
NT1 Exchange internal
ISDN ISDN ISDN network
Telephone Terminal Alarm

Customer's equipment Carrier's equipment


(a)

Customer's office Carrier's office

TE1
ISDN S
Terminal

T U To
ISDN carrier's
S NT2 NT1 internal
Exchange
ISDN network
TE1 PBX
ISDN
Telephone
S Digital Carrier's equipment
R TA
bit pipe

Non
ISDN
Terminal LAN Gateway

Customer's equipment
(b)

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
Red Digital de Servicios Integrados (cont.) 126

Arquitectura RDSI (II)

Configuración normal (casa o pequeña empresa):


• Terminador de red 1 (NT1) en el domicilio del usuario.
• Al NT1 se conectan los dispositivos (hasta 8) con un bus pasivo.
Para empresas grandes:
• Se utiliza un terminador de red 2 (NT2), que es una centralita RDSI.
• Los dispositivos de conectan al NT2.
Cuatros puntos de referencia: R, S, T y U.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

Red Digital de Servicios Integrados (cont.) 127

La interfaz RDSI

Varios tipos de canal normalizados. Los más comunes son:


• Tipo B: canal a 64 Kbps para datos o voz digitalizada (MIC-PCM).
• Tipo D: canal a 16 o 64 Kbps para señalización fuera de banda.
Se agrupan en dos tipos de accesos normalizados (con los canales com-
partiendo el “tubo digital”con MDT):
• Acceso básico: 2 canales B y un canal D a 16 Kbps.
• Acceso primario: 30 canales B y un canal D a 64 Kbps (en EEUU y
Japón sólo 23 canales B).

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
Red Digital de Servicios Integrados (cont.) 128

La interfaz RDSI (II)

D (64 kbps)

Primary rate
D (16 kbps) B1 to B23
Basic rate
B1 to B2 or B30

(a) (b)

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)

Red Digital de Servicios Integrados (cont.) 129

Perspectiva de la RDSI

• Es una buena idea.


• Para cuando el servicio se ha ofrecido, se ha quedado anticuado.
• Son necesaria mayores velocidades para poder ofrecer vı́deo.
• El acceso a Internet está salvando parcialmente la inversión.

2001
c GSyC Redes: Nivel de Enlace(III. Ejemplos)
Red Digital de Servicios Integrados (cont.) 130

Nivel de Red

2001
c GSyC Redes: Nivel de Red

Introducción 131

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 adya-
centes.
Esto puede requerir el tránsito a través de nodos intermedios. Implica la
elección de la ruta más adecuada a seguir.
NOTA: El nivel de enlace sólo se ocupaba de que las tramas llegaran de
un extremo a otro del cable.

2001
c GSyC Redes: Nivel de Red
Misiones del Nivel de Red 132

Misiones del Nivel de Red

• Asignación de direcciones de red únicas.


• Interconexión de subredes distintas.
• Encaminamiento de paquetes.
• Control de congestión.

2001
c GSyC Redes: Nivel de Red

Servicios ofrecidos por el Nivel de Red 133

Servicios ofrecidos por el Nivel de Red

El nivel de red del Modelo OSI se diseñó pensando fundamentalmente en


que ofreciera un servicio orientado a conexión.
Sin embargo también puede ofrecer un servicio NO orientado a conexión,
en cuyo caso se delega el control de flujo y errores extremo a extremo a
niveles más altos.
NOTA: Puede ofrecerse un nivel de red O.C. sobre uno de enlace NO
O.C., (y viceversa, aunque es más raro).

2001
c GSyC Redes: Nivel de Red
Servicio No Orientado a Conexión 134

Servicio No Orientado a Conexión

• El esfuerzo se dirige a optimizar los recursos de comunicación: Mini-


mizar el retardo, reacción ante caı́das de enlaces, . . .
• El nivel de transporte estructurará sus datos en paquetes que se al-
macenarán y reenviarán en los nodos intermedios (Conmutación de
paquetes).
• El encaminamiento de cada paquete es independiente.
• No se tarifica por tráfico.

2001
c GSyC Redes: Nivel de Red

Servicio No Orientado a Conexión (cont.) 135

Servicio No Orientado a Conexión (cont.)

• La dirección de destino viaja en todos los paquetes


• El encaminamiento de cada paquete es independiente, por lo que
pueden llegar en desorden y es necesario reordenar en destino
• El fallo de un componente de la red afecta sólo a los paquetes en
tránsito
• Control de congestión difı́cil

Ejemplo tı́pico: Protocolo IP.

2001
c GSyC Redes: Nivel de Red
Servicio No Orientado a Conexión (cont.) 136

Servicio No Orientado a Conexión (cont.)

3 2 1
3
A B

3
2

2 E

1 2 3
C 1
1

2001
c GSyC Redes: Nivel de Red

Servicio Orientado a Conexión 137

Servicio Orientado a Conexión

• El esfuerzo se dirige a minimizar la tasa de fallos: No perder ni de-


sordenar paquetes
• Se concentra la complejidad de la comunicación dentro de la red
• Origen y destino mantienen un diálogo inicial para establecer una ruta
extremo a extremo fija para toda la comunicación (Circuito Virtual).
• Se tarifica fundamentalmente por tráfico.

2001
c GSyC Redes: Nivel de Red
Servicio Orientado a Conexión (cont.) 138

Servicio Orientado a Conexión (cont.)

• La dirección de destino viaja sólo en los paquetes de establecimiento


de la conexión.
• Todos los paquetes de la conexión siguen el mismo camino y llegan
en orden.
• El fallo de un componente provoca la pérdida de la conexión.
• Control de congestión simple: Parar la fuente.

Ejemplo tı́pico: Norma X.25.

2001
c GSyC Redes: Nivel de Red

Servicio Orientado a Conexión (cont.) 139

Servicio Orientado a Conexión (cont.)

3 2 1
3 2 1
A B
3
2
1

3 2 1
C

2001
c GSyC Redes: Nivel de Red
Interconexión de Redes 140

Interconexión de Redes

Se colocan pasarelas (gateways) que interconectan redes distintas.


Esta interconexión puede ser:
• a nivel fı́sico: repetidores (repeaters)
• a nivel de enlace: puentes (bridges)
• a nivel de red: encaminadores (routers)
• por encima del nivel de red: pasarelas de nivel N (gateways).

2001
c GSyC Redes: Nivel de Red

Interconexión de Redes (cont.) 141

Interconexión de Redes (cont.)

Repetidores

• Copian señales eléctricas de un medio fı́sico de transmisión a otro


(igual o distinto).
• Permiten extender la longitud fı́sica de la subred
• Aislan de fallos segmentos de la subred

2001
c GSyC Redes: Nivel de Red
Interconexión de Redes (cont.) 142

Interconexión de Redes (cont.)

Puentes

• Interconectan dos LAN, pasando tramas de una a otra.


• Ejemplo: LAN con CSMA/CD y LAN con Token Bus.
• Deben resolver problemas de encaminamiento: Puede haber varias
formas de alcanzar una LAN desde otra, a través de diferentes puen-
tes.
• Deben resolver problemas de congestión: LAN de distintas velocida-
des.

2001
c GSyC Redes: Nivel de Red

Interconexión de Redes (cont.) 143

Interconexión de Redes (cont.)

Encaminadores

• Interconectan redes distintas, pasando paquetes de una a otra.


• Deben resolver problemas de:
– distintas direcciones en las redes
– distintos tamaños de las unidades de datos
– distintas velocidades de las subredes
– encaminamientos alternativos para alcanzar un destino

2001
c GSyC Redes: Nivel de Red
Interconexión de Redes (cont.) 144

Interconexión de Redes (cont.)

Otros

• Concentradores (hubs): Ofrecen el servicio de un bus a varios (6 o 12)


pares de cables convencionales. Su servicio es fundamentalmente de
nivel 1 (repetición de la señal de una boca a las otras) pero incorpora
cosas de nivel 2 (colisiones: cuando las detecta envı́a ruido por todas
las bocas para que la vean las tarjetas y retransmitan).
• Conmutadores (Switches): Conmutan entre sus bocas para interco-
nectar 2 de ellas ofreciendo un único canal. Almacenan internamente
las tramas en buffers, realizando funciones de nivel 2 y a veces hasta
de nivel 3.

2001
c GSyC Redes: Nivel de Red

Direcciones de Red 145

Direcciones de Red

Se necesita un mecanismo de identificación unı́voca de todas las máquinas


de la red.
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.

2001
c GSyC Redes: Nivel de Red
Encaminamiento 146

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? ...
Utilizando algoritmos de encaminamiento los encaminadores intercambian
mensajes de control, a partir de los cuales cada encaminador puede generar
la tabla de encaminamiento
Después, cuando llegue un paquete a encaminar, cada encaminador toma
decisiones locales mirando en su tabla, pero que dependen de la topologı́a
global

2001
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 147

Objetivos de un algoritmo de encaminamiento

• Minimizar el espacio de la tabla de encaminamiento para poder bus-


car rápidamente y para tener menos info 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, o

2001
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 148

Clasificación de los algoritmos de encaminamiento

• Estáticos: Las tablas de encaminamiento no varı́an con el tiempo.


Para redes en las que el tráfico y la topologı́a no varı́a.
– Centralizados: Las tablas se calculan en un sólo nodo de la red.
– Distribuidos: Las tablas se calculan por cooperación entre todos
lo nodos.

2001
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 149

Clasificación de los algoritmos de encaminamiento (cont.)

• Dinámicos o Adaptativos: Las tablas de encaminamiento se ajustan


a cambios en las condiciones de la red (tráfico o topologı́a).
– Aislados: Cada nodo toma decisiones independientemente del res-
to.
– Centralizados: Un nodo acumula toda la información de la red.
– Distribuidos: Los nodos cooperan para adaptarse a las condiciones
de la red.
– Mixtos: Un nodo central mantiene información del estado de la
red, y aconseja a los otros nodos, que pueden tomar decisiones
por su cuenta.

2001
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 150

Algoritmo de Dijkstra

Es un algoritmo estático distribuido que encuentra caminos de distancia


mı́nima de un nodo al resto.

1. Se trabaja con dos conjuntos: P : Nodos ya encaminados (permanen-


tes); y T : nodos aún no resueltos (tentativos)
2. En cada paso se conocen las distancias de la subred P a cada nodo
de T . Se parte de D0 .
3. Inicialmente P sólo contiene el nodo inicial y las distancias son las
directas de ese nodo al resto.

2001
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 151

Algoritmo de Dijkstra (cont.)

4. En cada paso, el nodo de T más cercano se pasa a P conectado por la


ruta óptima, y se recalculan las distancias a los nodos de T , tomando
la menor de entre la antigua y la posible a través del nuevo nodo en
P.
5. Se termina cuando todos los nodos están en P , habiéndose obtenido
tanto las distancias mı́nimas como el árbol de encaminamiento.

2001
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 152

B 7 C B (2, A) C (∞, −)


2 3
2


3
E 2 F E (∞, −)
A D A F (∞, −) D (∞, −)
1 2
6 4 2

H (∞, −)
 

G H G (6, A)
(a) (b)

B (2, A) C (9, B) B (2, A) C (9, B)

E (4, B) E (4, B)
A F (∞, −) D (∞,−) A F (6, E) D (∞,1)

H (∞, −) H (∞, −)
 

G (6, A) G (5, E)
(c) (d)

B (2, A) C (9, B) B (2, A) C (9, B)

E (4, B) E (4, B)
A F (6, E) D (∞,−) A F (6,E) D (∞,−)

G (5, E) H (9, G) G (5, E) H (8, F)


(e) (f)

Fig. 5-6. The first five steps used in computing the shortest
path from A to D. The arrows indicate the working node.

2001
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 153

Algoritmo de inundación

Es un algoritmo adaptativo aislado.

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, se descarta.

2001
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 154

Algoritmo de aprendizaje

Es un algoritmo adaptativo aislado. Utilizado para hacer bridging (nivel


2)
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.

2001
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 155

Vectores de Distancias

Es un algoritmo distribuido. Utilizado en Internet (RIP)


1. Cada nodo mantiene una tabla de encaminamiento con pares
(Destino, Nodo vecino por el que encamino), para cada destino de la red.

2. Cada nodo estima el retardo de sus paquetes a los destinos por el mejor ca-
mino (enviando periódicamente paquetes de petición de eco). Para conocer
a los vecinos: paquetes HELLO para que se identifiquen

3. Cada nodo envı́a periódicamente a sus vecinos todos sus pares


(Destino, retardo estimado)

4. Cada nodo estudia esta información de los vecinos para ver si puede con-
seguir una ruta de menor retardo enviando a través de otro de sus vecinos,
y actualiza sus tablas de encaminamiento consecuentemente

2001
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 156

New estimated
Router

delay from J
A B C D To A I H K Line
A 0 24 20 21 8 A
 

B 12 36 31 28 20 A
 

C 25 18 19 36 28 I
  

F G D 40


27


8 24
  

20 H
E H
E 14 7 30 22 17 I
 

F 23 20 19


40 30 I
  

G 18 31 6 31 18 H
 

H 17 20 0 19 12 H
 

L


I J K
I 21 0 14 22 10 I


(a) −


J 9 11 7 10 0
 

K 24 22 22 0 6 K


L 29 33 9 9 15 K
  

   

JA

JI

JH JK

delay delay delay delay New


is is is is routing
table

8 10 12 6


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.

2001
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 157

Problema: contador infinito.


La información acerca de mejores rutas se propaga poco a poco, consi-
guié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 C D E A B C D E

∞ ∞ ∞ ∞ Initially Initially


1 2 3 4
∞ ∞ ∞ After 1 exchange After 1 exchange


1 3 2 3 4
∞ ∞


After 2 exchanges After 2 exchanges




1 2 3 4 3 4



1 2 3 After 3 exchanges 5 4 After 3 exchanges




5 4
1 2 3 4 After 4 exchanges 5 After 4 exchanges


6


5 6
After 5 exchanges


7 6 7 6


(a) 7 After 6 exchanges




8


7 8
..
.
∞ ∞ ∞ ∞
(b)

Fig. 5-11. The count-to-infinity problem.

2001
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 158

Solución: Split Horizon


No le decimos al vecino cuál es nuestro coste hasta X si el vecino es para
nosotros el próximo salto hacia X. Alternativa (RIP): le decimos que el
coste es infinito.
Pero no es una solución óptima. Hay casos en los que seguimos teniendo
que contar hasta infinito:
A B

C Router

D
Fig. 5-12. An example where split horizon fails.

2001
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 159

Estado de enlace (Link State)

Es un algoritmo distribuido. Utilizado en Internet (OSPF)


También presupone que el encaminador conoce la dirección de sus vecinos
y el coste de alcanzarles
Cada encaminador conoce toda la topologı́a de la red gracias a los men-
sajes de control que ha recibido de todos los encaminadores
Cada encaminador:
1. Descubre quiénes son sus vecinos y aprende sus direcciones de red
(paquetes HELLO)
2. Mide su distancia con cada uno de sus vecinos. Envı́o paquete sonda
(HELLO me vale) y mido RTT/2.

2001
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 160

4. Construye un paquete de estado de enlaces con esta información.


Periódicamente o cuando haya cambios (caı́das de lı́neas y/o encami-
nadores)
5. Envı́a el paquete de estado de enlaces a todos los encaminadores de
la red
• Se utiliza inundación controlada: número de secuencia
• Hasta que todos no hayan recibido todos los paquetes puede haber
problemas de inconsistencia: bucles, máquinas no alcanzables...

6. Calcula el mejor camino (Dijkstra) a cada encaminador

2001
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 161

Link


B


2 C State Packets

A B C D E F
4


3 

Seq.


Seq.


Seq.


Seq.


Seq.


Seq.
A D Age Age Age Age Age Age
1


6 B 4 A 4 B 2 C 3 A 5 B 6
  

5


7
E 5 C 2 D 3 F 7 C 1 D 7
 

F 6


E 1 F 8


E 8


E 8 F


(a) (b)

Fig. 5-15. (a) A subnet. (b) The link state packets for this subnet.

2001
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 162

Problemas:
Número de secuencia da la vuelta. Contador grandote: 32 bits
Encaminador rearranca: número de secuencia se inicializa, por lo que
todos rechazarán sus paquetes de estado de enlaces
Se altera un bit, pasando de 4 a 65540: del 5 al 65540 se rechazarán
Solución: los paquetes de estado de enlaces caducan (periódicamente se
decrementa el campo de edad del paquete de estado de enlaces en cada
encaminador que lo almacena)
Cuando un encaminador rearranca espera un poco a que caduquen sus
anteriores paquetes de estado de enlaces en el resto de encaminadores

2001
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 163

Encaminamiento jerárquico

Las redes grandes provocan que las tablas de encaminamiento sean muy
grandes:
• se tarda más en computar los caminos mı́nimos
• se gasta más ancho de banda en intercambiar mensajes de control
Solución: encaminamiento jerárquico:
• Dividimos la red en dominios
• Los dominios están interconectados mediante gateways
• Las máquinas dentro de un dominio no conocen a las de otro
• Los gateways sólo conocen a otros gateways

2001
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 164

Full table for 1A Hierarchical table for 1A

Dest. Line Hops Dest. Line Hops


Region 1 Region 2 1A – – 1A – –
1B 2A 2B 1B 1B 1 1B 1B 1
1C 1C 1 1C 1C 1
1A
2A 1B 2 2 1B 2
1C 2C 2D
2B 1B 1C 2


3


3
1C


3


2C 1B 3 4
1C


4


2D 1B 4 5
  

3A 4A 5B 

5C 3A 1C 3



5A 

3B 1C 2


4B 4C
3B


5D
4A 1C


3
5E
4B 1C 4
Region 3 Region 4 Region 5
4C 1C 4


5A 1C 4
 

5B 1C 5
 

5C 1B 5
 

5D 1C 6
 

5E 1C 5
(a) (b) (c)

Fig. 5-17. Hierarchical routing.

2001
c GSyC Redes: Nivel de Red

Control de Congestión 165

Control de Congestión

Reserva de Buffers

• Para redes de circuitos virtuales.


• En la fase de establecimiento de la conexión, cada nodo intermedio
del circuito virtual hace una reserva de buffers adecuada.
• Si no se puede garantizar la reserva de buffers, no se establece la
conexión.

2001
c GSyC Redes: Nivel de Red
Control de Congestión (cont.) 166

Descartado de paquetes

• Lo habitual en redes de conmutación de paquetes


• Si un nodo no puede colocar un paquete en un buffer de salida, lo
descarta.
• Se debe recuperar el fallo
– en este nivel, mediante reenvı́o desde el nodo anterior
– en el nivel de transporte (o superior), con reenvı́o extremo a ex-
tremo.

2001
c GSyC Redes: Nivel de Red

Control de Congestión (cont.) 167

Control Isarrı́tmico

• Se supone que la red puede procesar k paquetes, y si hay más se


congestiona.
• Se obliga a que en la red nunca haya más de esos k paquetes.
• Por la red circulan paquetes especiales o salvoconductos (permits).
Paquetes de datos + Salvoconductos = k.
• Para transmitir un paquete de datos, un nodo debe retirar de la red
un salvoconducto.
• Un nodo destino, al recibir un paquete de datos para él, inyecta un
salvoconducto en la red.

2001
c GSyC Redes: Nivel de Red
Control de Congestión (cont.) 168

Control de Flujo

• Puede intentarse controlar la congestión mediante el control de flujo.


• El problema es dimensionar los nodos intermedios para que no haya
congestión a partir de datos de control de flujo extremo a extremo.

2001
c GSyC Redes: Nivel de Red

Control de Congestión (cont.) 169

Paquetes de Ahogo

• Se emplean mecanismos de previsión de la congestión.


• Cuando un nodo detecta que se está acercando a la congestión en
paquetes que le llegan con origen A y destino B:
– Envı́a a A un paquete de ahogo (choke packet), para que baje el
flujo de transmisión.
– Envı́a a B otro, pero con una marca para que los nodos intermedios
ya no envı́en paquetes de ahogo a A, que ya está avisado.

2001
c GSyC Redes: Nivel de Red
Control de Congestión (cont.) 170

Introducción a TCP/IP

2001
c GSyC Redes: Introducción a TCP/IP

Introducción 171

Introducción

El conjunto de protocolos TCP/IP permite la comunicación entre diferen-


tes máquinas que ejecutan sistemas operativos completamente distintos.
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 la Internet.
No se ajustan al modelo de referencia OSI.

2001
c GSyC Redes: Introducción a TCP/IP
Los niveles 172

Los niveles

Protocolos de red: estructura en forma de pila de niveles.


Pila de TCP/IP: Sistema de 4 niveles:

Nivel de Aplicación Aplicaciones que usan la red


telnet, ftp, e-mail, . . .
Nivel de Transporte Transporte de datos extremo a extremo
TCP, UDP
Nivel de Red Encaminamiento y paquetes
IP, ICMP
Nivel de Enlace Acceso a la red fı́sica
Ethernet

2001
c GSyC Redes: Introducción a TCP/IP

Los niveles (cont.) 173

Los niveles (cont.)

Protocolo FTP
Cliente FTP Servidor FTP

Protocolo TCP
TCP TCP

router

Protocolo IP Protocolo IP
IP IP IP

Protocolo Protocolo
Driver Ethernet Ethernet Driver Ethernet Driver token ring token ring Driver token ring

TOKEN RING
ETHERNET

2001
c GSyC Redes: Introducción a TCP/IP
Los niveles (cont.) (cont.) 174

IP: Internet Protocol

2001
c GSyC Redes: IP: Internet Protocol

Introducción 175

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

2001
c GSyC Redes: IP: Internet Protocol
Datagramas IP 176

Datagramas IP

2001
c GSyC Redes: IP: Internet Protocol

Datagramas IP 177

0 4 8 16 31
versión longitud tipo de servicio(TOS) longitud total
cabecera
flags
identificación (3 bits) offset de fragmentación

tiempo de vida (TTL) protocolo checksum de la cabecera


cabecera

dirección IP origen

dirección IP destino

opciones (en su caso)

datos

2001
c GSyC Redes: IP: Internet Protocol
Datagramas IP (cont.) 178

Datagramas IP (cont.)

versión La versión actual del protocolo IP es la 4.


longitud cabecera En número de palabras de 32 bits. El valor normal
es 5 (20 bytes, no hay opciones), el máximo es 15 (60 bytes de
cabecera).
TOS Se usan sólo 4 bits para indicar tipo de servicio a ofrecer:
• minimizar retardo
• maximizar rendimiento
• maximizar fiabilidad
• minimizar coste económico

2001
c GSyC Redes: IP: Internet Protocol

Datagramas IP (cont.) 179

Datagramas IP (cont.)

longitud total En bytes. Tamaño máximo: 65535 bytes. Normalmente


es menor de 576 bytes. El nivel de enlace puede fragmentar datagra-
mas IP grandes.
identificación Identifica de manera única cada datagrama enviado por
una máquina. Normalmente se incrementa en 1 para cada datagrama
que se envı́a.
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.

2001
c GSyC Redes: IP: Internet Protocol
Datagramas IP (cont.) 180

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.
• Es el complemento a 1 de la suma (módulo 16 bits) de palabras
de 16 bits de la cabecera.
• El receptor calcula la suma de todas las palabras de 16 bits de
la cabecera (incluido el campo de checksum), y si obtiene algo
distinto de todo unos, descarta el datagrama. No se genera ningún
mensaje de error.
• Los encaminadores al decrementar el TTL deben incrementar el
checksum.

2001
c GSyC Redes: IP: Internet Protocol

Datagramas IP (cont.) 181

Datagramas IP (cont.)

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

2001
c GSyC Redes: IP: Internet Protocol
Direcciones IP 182

Direcciones IP

Cada interfaz fı́sico conectado a la Internet tiene asignada una dirección


IP única.
Dirección IP: 32 bits, normalmente expresados en notación decimal pun-
tuada: 163.117.129.50
Hay 5 clases distintas de direcciones:

2001
c GSyC Redes: IP: Internet Protocol

Direcciones IP 183

Clase 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

2001
c GSyC Redes: IP: Internet Protocol
Direcciones IP (cont.) 184

Direcciones IP (cont.)

7 bits 24 bits
Clase A 0 id red id maquina

14 bits 16 bits
Clase B 1 0 id red id maquina

21 bits 8 bits
Clase C 1 1 0 id red id maquina

28 bits
Clase D 1 1 1 0 id grupo multicast

27 bits
Clase E 1 1 1 1 0 reservado para usos futuros

2001
c GSyC Redes: IP: Internet Protocol

Direcciones IP (cont.) 185

Direcciones IP (cont.)

DNS: Domain Name System

Para simplificar la referencia a máquinas, existe una base de datos distri-


buida global a la Internet, que hace una correspondencia entre direcciones
IP y nombres de máquina.
Ası́ podremos referirnos a una máquina de la Internet no sólo por su
dirección IP sino también por su nombre dentro del DNS.
Los nombres de máquinas siguen una organización jerárquica por subdo-
minios:
máquina.subdominio 2.subdominio 1.dominio de paı́s
Ejemplos: a01-unix.uc3m.es yeti.dit.upm.es ftp.cica.indiana.edu

2001
c GSyC Redes: IP: Internet Protocol
Direcciones IP (cont.) 186

Direcciones IP (cont.)

InterNIC

Organismo con autoridad para asignar direcciones IP: El InterNIC (Internet


Network Information Center ).
El InterNIC asigna direcciones de red, el administrador local las de máquina.
Dirección de InterNIC: rs.internic.net (registro), ds.internic.net (bases de
datos), is.internic.net (información).

2001
c GSyC Redes: IP: Internet Protocol

Direcciones IP (cont.) 187

Direcciones IP (cont.)

Tipos

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

2001
c GSyC Redes: IP: Internet Protocol
Direcciones IP (cont.) 188

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 por el InterNIC, el administrador
decide si utilizará subredes, y el número de bits de máquina que utilizará
para indicar la subred.

2001
c GSyC Redes: IP: Internet Protocol

Direcciones IP (cont.) 189

Direcciones IP (cont.)

Subredes (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.
Ejemplo: Dirección 163.117.129.50 (clase B) con máscara 255.255.255.0
se interpreta como máquina 50 de la subred 129 de la red 163.117.

2001
c GSyC Redes: IP: Internet Protocol
Encaminamiento 190

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.

2001
c GSyC Redes: IP: Internet Protocol

Encaminamiento (cont.) 191

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).

2001
c GSyC Redes: IP: Internet Protocol
Encaminamiento (cont.) 192

Encaminamiento (cont.)

Las tablas de encaminamiento tienen el aspecto:


% netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
163.117.137.0 0.0.0.0 255.255.255.0 U 1500 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0 0 lo
0.0.0.0 163.117.137.2 0.0.0.0 UG 1500 0 0 eth0

U ruta utilizable

G ruta indirecta (pasarela)

2001
c GSyC Redes: IP: Internet Protocol

ARP (Address Resolution Protocol) 193

ARP (Address Resolution Protocol)

El protocolo de resolución de direcciones ARP proporciona una forma de


pasar de una dirección IP (32 bits) a una dirección Ethernet (48 bits).
Cuando el nivel IP decide enviar un datagrama a un cierto destino de-
finido por su dirección IP, necesita conocer la dirección Ethernet que le
corresponde. Para ello:
1. Envı́a un mensaje 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 respuesta ARP indicando su
dirección Ethernet.

2001
c GSyC Redes: IP: Internet Protocol
ARP (cont.) 194

ARP (cont.)

• Las máquina mantienen una cache de correspondencias direcciones IP


a direcciones Ethernet.
• 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.
• ARP gratuito: Una máquina puede enviar una solicitud ARP pregun-
tando sobre su propia dirección IP. Propósitos:
– detectar direcciones IP duplicadas
– forzar a que todos actualicen la entrada de la cache correspon-
diente

2001
c GSyC Redes: IP: Internet Protocol

RARP (Reverse Address Resolution Protocol) 195

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 in-
dicándole cuál es su dirección IP.

2001
c GSyC Redes: IP: Internet Protocol
RARP (cont.) 196

RARP (cont.)

Lo habitual es tener una máquina en la subred que actúe como servi-


dor 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.

2001
c GSyC Redes: IP: Internet Protocol

ICMP (Internet Control Message Protocol) 197

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 31

tipo código checksum de todo el mensaje ICMP

datos dependiendo de tipo ycódigo

2001
c GSyC Redes: IP: Internet Protocol
ICMP (cont.) 198

ICMP (cont.)

Ejemplos de mensajes ICMP:


tipo código descripción
0 0 respuesta de echo
3 0 destino inalcanzable: red inalcanzable
3 1 destino inalcanzable: máquina inalcanzable
3 3 destino inalcanzable: puerto inalcanzable
8 0 solicitud de echo
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

2001
c GSyC Redes: IP: Internet Protocol

IGMP (Internet Group Management Protocol) 199

IGMP (Internet Group Management


Protocol)

Las direcciones IP clase D son para multicast: 4 bits con 1110 y 28 bits
con el identificador del grupo de multicast.
El grupo 224.0.0.1 está predefinido como “todos las máquinas en la red
fı́sica”.
El problema se presenta para los encaminadores: ¿Cómo saber si por
uno de los interfaces existe alguna máquina miembro de un determinado
grupo?
El protocolo IGMP permite a máquinas y encaminadores conocer qué
máquinas pertenecen a qué grupos de multicast.
Los mensajes IGMP se transmiten encapsulados en datagramas IP.

2001
c GSyC Redes: IP: Internet Protocol
IGMP (cont.) 200

IGMP (cont.)

Formato de los mensajes IGMP:


0 8 16 31

versión tipo no utilizado checksum de todo el mensaje IGMP

Dirección IP de clase D: grupo de multicast

versión
tipo 1: interrogación, 2: informe

2001
c GSyC Redes: IP: Internet Protocol

IGMP (cont.) 201

IGMP (cont.)

• Cuando una máquina se apunta a un grupo, envı́a un informe IGMP.


• Periódicamente los encaminadores envı́an interrogaciones IGMP a to-
das las máquinas de su subred, que son respondidas por las que siguen
apuntadas a grupos con los informes IGMP correspondientes.

2001
c GSyC Redes: IP: Internet Protocol
IGMP (cont.) (cont.) 202

Ejemplos: Frame Relay


y ATM

2001
c GSyC Redes: Ejemplos: Frame Relay y ATM

Frame Relay 203

Frame Relay

Aparece en 1988 como parte de RDSI. Gran popularidad fuera de RDSI.


• Conmutación “ligera” de paquetes (¿tramas?).
• Servicio orientado a la conexión no fiable.
• Señalización por conexión especı́fica.
• Garantiza cierta calidad de servicio.
• Tı́picamente, velocidades hasta 2 Mbps.

2001
c GSyC Redes: Ejemplos: Frame Relay y ATM
Servicio Frame Relay 204

Servicio Frame Relay

Permite múltiple circuitos virtuales (conmutados y permanentes), identi-


ficados con su DLCI (data link connection identifier).
• Todas las unidades de datos son tramas LAPF de datos.
• Para señalización se usan tramas con DLCI=0.
• La red preserva el orden en una conexión.
• La red detecta algunos errores y descarta las tramas afectadas.

2001
c GSyC Redes: Ejemplos: Frame Relay y ATM

Calidad de servicio en Frame Relay 205

Calidad de servicio en Frame Relay

Cada conexión puede negociar varios parámetros:


• Tamaño máximo de trama (tı́picamente unos 1600 octetos).
• Caudal mı́nimo garantizado (CIR, commited information rate). Tra-
mas que lo exceden se marcan con bit DE.
• Cuando se puede exceder del caudal mı́nimo (Be ). Tramas que exce-
den el máximo caudal se descartan.

2001
c GSyC Redes: Ejemplos: Frame Relay y ATM
Control de la congestión en Frame Relay 206

Control de la congestión en Frame Relay

• Control de admisión.
• Paquetes de ahogo (choke):
– Aviso al origen con bit BECN (backward explicit congestion noti-
fication).
– Aviso al destino con bit FECN (forward explicit congestion notifi-
cation).
• Descartado selectivo de paquetes con bit DE.

2001
c GSyC Redes: Ejemplos: Frame Relay y ATM

ATM: Asynchronous Transfer Mode 207

ATM: Asynchronous Transfer Mode

Tecnologı́a propuesta para soportar todos los servicios de la RDSI de banda


ancha
• Conmutación de celdas (paquetes de tamaño fijo).
• Servicio orientado a la conexión no fiable.
• Garantiza calidad de servicio.
• Velocidades de 155 y 622 Mbps.

2001
c GSyC Redes: Ejemplos: Frame Relay y ATM
Servicio ATM 208

Servicio ATM

Permite múltiple circuitos virtuales (conmutados y permanentes), identi-


ficados con el par identificador de camino virtual (VPI) - identificador de
canal virtual (VCI).
• Todas las unidades de datos son celdas de 53 octetos (5 de cabecera
y 48 de datos).
• Para señalización se usan celdas con VPI=0 y VCI=5.
• La red preserva el orden en una conexión.
• La red detecta errores en la cabecera y descarta las tramas afectadas.

2001
c GSyC Redes: Ejemplos: Frame Relay y ATM

Encaminamiento y conmutación 209

Encaminamiento y conmutación

Todas las celdas de un circuito virtual siguen la misma ruta, seleccionada


al establecer el CV.
Conmutación puede ser por hardware.
Conmutación usa dos niveles: VPI y VCI:
• Sólo se mira al VPI a menos que se acabe.
• Simplicidad. Generalmente el VCI no se mira.
• Flexibilidad. Se pueden reencaminar todos los VCI de un VPI a la
vez.

2001
c GSyC Redes: Ejemplos: Frame Relay y ATM
Parámetros de las conexiones ATM 210

Parámetros de las conexiones ATM

• Tráfico:
– Caudal medio.
– Caudal pico.
– Máxima duración de pico.
• Calidad de servicio:
– Retardo de transferencia.
– Variación del retardo.
– Tasa de pérdidas.

2001
c GSyC Redes: Ejemplos: Frame Relay y ATM

Categorı́as de servicio 211

Categorı́as de servicio

• CBR (constant bit rate). Caudal fijo y limitaciones en el retardo y


sus variaciones.
• VBR (variable bit rate). Caudal medio garantizado, superable dentro
de unos lı́mites.
• ABR (available bit rate). Caudal mı́nimo garantizado. Usa el sobrante
de otras conexiones.
• UBR (undefined bit rate). No se garantiza caudal mı́nimo.

2001
c GSyC Redes: Ejemplos: Frame Relay y ATM
Control de la congestión 212

Control de la congestión

• Control de admisión.
• Control de parámetros de uso.
• Celdas de ahogo (choke). Aviso al destino de haber sufrido congestión
• Descartado selectivo de celdas.

2001
c GSyC Redes: Ejemplos: Frame Relay y ATM

Control de la congestión (cont.) 213

UDP:
User Datagram Protocol

2001
c GSyC Redes: UDP: User Datagram Protocol
Introducción 214

Introducción

UDP es un protocolo sencillo que implementa un nivel de transporte orien-


tado 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á exacta-
mente 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á.

2001
c GSyC Redes: UDP: User Datagram Protocol

Datagramas UDP 215

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.

2001
c GSyC Redes: UDP: User Datagram Protocol
Datagramas UDP (cont.) 216

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, mediante el mismo procedimiento que en IP:
0 16 31

pseudo-cabecera
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)

datos (en su caso)

g byte de relleno (ceros)

2001
c GSyC Redes: UDP: User Datagram Protocol

Datagramas UDP (cont.) 217

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.

2001
c GSyC Redes: UDP: User Datagram Protocol
Datagramas UDP (cont.) 218

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.

2001
c GSyC Redes: UDP: User Datagram Protocol

Datagramas UDP (cont.) 219

Los puertos de menor que 1024 (puertos privilegiados) están reserva-


dos y asignados universalmente a aplicaciones de red conocidas (fichero
/etc/services.
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
ftp-data 20/tcp # default ftp data port
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
time 37/tcp timserver
time 37/udp timserver
www 80/tcp http # WorldWideWeb HTTP
www 80/udp # HyperText Transfer Protocol

2001
c GSyC Redes: UDP: User Datagram Protocol
Datagramas UDP (cont.) 220

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.
Es corriente que no haya un servidor escuchando en cada aplicación de red
(ftp, telnet, www. . . ), sino que un solo proceso escucha en varios puertos,
y cuando recibe algo por ellos arranca el proceso del servidor adecuado.

2001
c GSyC Redes: UDP: User Datagram Protocol

Servicio dado por UDP 221

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 deben resolver.
• pueden perderse datagramas
• pueden duplicarse datagramas
• pueden desordenarse datagramas
Pero es un protocolo muchı́simo más ligero que TCP, y en una LAN (hay
CRC y no hay encaminadores) puede compensar.

2001
c GSyC Redes: UDP: User Datagram Protocol
Servicio dado por UDP (cont.) 222

TCP: Transmission
Control Protocol

2001
c GSyC Redes: TCP: Transmission Control Protocol

Introducción 223

Introducción

TCP es un protocolo que implementa un nivel de transporte que ofrece


un servicio:

• orientado a conexión
• fiable

Aunque utiliza el mismo protocolo de nivel de red (IP) que UDP, ofrece
a las aplicaciones una funcionalidad completamente diferente.
Los segmentos TCP se encapsulan dentro de la parte de datos de un
datagrama IP.

2001
c GSyC Redes: TCP: Transmission Control Protocol
Introducción (cont.) 224

• La transmisión de datos de nivel de transporte presenta las fases:


– establecimiento de la conexión
– intercambio fiable de datos
– liberación de la conexión.
• La conexión es Full Duplex: Ambos extremos pueden transmitir y
recibir simultaneamente.
• La transferencia se apoya en el envı́o con ventanas (buffers) para
almacenamiento de segmentos pendientes de asentimiento.
• TCP proporciona además control de flujo mediante esos buffers.

2001
c GSyC Redes: TCP: Transmission Control Protocol

Introducción (cont.) 225

• Los datos de la aplicación son troceados en segmentos del tamaño


que TCP considere adecuado
• Al transmitir cada segmento se espera un asentimiento. Si no llega
en un determinado plazo, se retransmite el segmento.
• Los segmentos TCP llevan un campo de checksum sobre cabecera y
datos. Si el receptor recoge un segmento con checksum inválido, lo
rechaza y no envı́a el asentimiento.
• Los segmentos TCP se reordenan en recepción, pasandose en orden
a la aplicación.
• TCP descarta los duplicados en recepción y se recupera de las pérdidas.

2001
c GSyC Redes: TCP: Transmission Control Protocol
Segmentos TCP 226

Segmentos TCP
0 16 31

número de puerto origen número de puerto destino

número de secuencia

número de asentimiento

URG
ACK

SYN
longitud reseervado

PSH
RST

FIN
tamaño de la ventana
cabecera (6 bits)

checksum de todo el segmento TCP puntero de datos urgentes

opciones (en su caso)

datos (en su caso)

2001
c GSyC Redes: TCP: Transmission Control Protocol

Segmentos TCP (cont.) 227

puertos Identifican la aplicación origen y destino del segmento.


número de secuencia Identifica al primer byte de datos dentro de todo
el flujo de datos que compone la conexión. Al establecerse la conexión
se elige el número de secuencia inicial. Cuando el número de secuencia
pasa de 232 − 1, vuelve a 0.
número de asentimiento Es el número de secuencia del próximo byte
que se espera recibir, asintiéndose implı́citamente hasta el byte an-
terior inclusive. De esta forma, los los asentimientos se envı́an “a
cuestas” dentro de los propios segmentos con datos (piggybacking ).

2001
c GSyC Redes: TCP: Transmission Control Protocol
Segmentos TCP (cont.) 228

longitud cabecera Tamaño de la cabecera en palabras de 32 bits. Lo


normal es 5 (20 bytes).
URG Bit que indica si el campo de puntero a datos urgentes es válido.
ACK Bit que indica si el número de asentimiento es válido.
PSH Bit para indicar que el receptor debe entregar ya a la aplicación los
datos que tenga pendientes.
RST Bit para indicar la reinicialización de la conexión.
SYN Bit para indicar que se van a sincronizar los números de secuencia
iniciales.
FIN Bit para indicar que se ha llegado al final de los datos a transmitir.

2001
c GSyC Redes: TCP: Transmission Control Protocol

Segmentos TCP (cont.) 229

tamaño de ventana Indica el número de bytes (a partir del indicado


en el número de asentimiento) que el transmisor espera recibir del
receptor: es una ventana de recepción. Tamaño máximo: 64 Kb.
checksum Sobre pseudo-cabecera, cabecera y datos, calculado como en
UDP.
puntero a datos urgentes Indica el número a añadir al número de
secuencia para obtener el número del último byte urgente.

2001
c GSyC Redes: TCP: Transmission Control Protocol
Establecimiento de conexión 230

Establecimiento de conexión

Es necesario ponerse de acuerdo en el número de secuencia inicial de los


dos sentidos de transmisión (three-way handshake):
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

2001
c GSyC Redes: TCP: Transmission Control Protocol

Liberación de conexión 231

Liberación de conexión

Como la conexión permite la transmisión bidireccional de datos (full du-


plex), es necesario “cerrar” cada sentido de la transmisión. Esto puede
hacerse por separado, dando lugar a conexiones semicerradas.
A B

segmento con bit FIN

segmento con asentimiento del FIN

segmento con bit FIN

segmento con asentimiento del FIN

2001
c GSyC Redes: TCP: Transmission Control Protocol
Intercambio Fiable de Datos 232

Intercambio Fiable de Datos

• Los números de secuencia se refieren a bytes, y se utilizan en el re-


ceptor para recomponer los datos de la aplicación.
• El tamaño de los segmentos es variable, y no hay campo de tamaño
en la cabecera.
• Se envı́an asentimientos positivos, indicando el número de orden del
siguiente byte a recibir: Se asienten implicitamente todos los bytes
anteriores.
• No es estrictamente necesario mandar un asentimiento de cada seg-
mento recibido: un asentimiento puede asentir varios segmentos de
golpe.
• 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.

2001
c GSyC Redes: TCP: Transmission Control Protocol

Intercambio Fiable de Datos (cont.) 233

Ventanas Deslizantes

Se necesita un protocolo para coordinar el envı́o de segmentos y asenti-


mientos.
Parada y espera con asentimiento alternado no es eficiente: mejor que el
transmisor siga enviando aunque no reciba los asentimientos.
¿Cuánto más? Hay que acotarlo: El transmisor mantendrá un número
limitado de buffers con los segmentos enviados y no asentidos. Cuando
se llenen todos los buffers, deja de enviar más segmentos.
Estos buffers se conocen como ventana deslizante. Cada conexión TCP
tiene dos: una para cada sentido de la comunicación.

2001
c GSyC Redes: TCP: Transmission Control Protocol
Intercambio Fiable de Datos (cont.) 234

ventana

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

enviados y enviados y pendientes sin aceptar de


asentidos no asentidos para enviar la aplicación

El tamaño de la ventana implica un control de flujo.


El tamaño es variable dinámicamente: Con el campo de tamaño de ven-
tana se indica el número de bytes que el receptor está dispuesto a recibir
(máximo: 65535 bytes).
Caso extremo: El receptor envı́a tamaño cero para parar al emisor.

2001
c GSyC Redes: TCP: Transmission Control Protocol

Intercambio Fiable de Datos (cont.) 235

Entrega de datos a la aplicación

Cuando llega un segmento con el bit PSH activado se está indicando al


receptor que pase esos datos a la aplicación.
No sólo se pasa ese segmento, sino todos los datos que el receptor tuviera
pendientes para la aplicación.

2001
c GSyC Redes: TCP: Transmission Control Protocol
Intercambio Fiable de Datos (cont.) 236

Datos urgentes

Pueden enviarse datos denominados urgentes (o “fuera de banda”), que


el receptor debe pasar directamente a la aplicación, sin esperar a leer el
resto de datos que ha llegado antes.
Ejemplo: Envı́o de un CTRL-C.
Se indican mediante el empleo del bit URG: apunta al último byte de datos
urgente.
No hay forma de indicar dónde empiezan los datos urgentes. Se deja a la
aplicación.

2001
c GSyC Redes: TCP: Transmission Control Protocol

Intercambio Fiable de Datos (cont.) 237

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 trans-
misión de datos.
Para cada segamento 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.

2001
c GSyC Redes: TCP: Transmission Control Protocol
Intercambio Fiable de Datos (cont.) 238

DNS: Domain Name


System

2001
c GSyC Redes: DNS: Domain Name System

¿Por qué necesitamos el DNS? 239

¿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 tie-
ne porqué 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 conve-
niente 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 direccio-


nes IP.

2001
c GSyC Redes: DNS: Domain Name System
Un poco de historia 240

Un poco de historia

• Al principio (años 70), un único fichero (HOSTS.TXT) con informa-


ció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 Na-
me System.
• Especificaciones actuales: RFC 1034 y 1035.

2001
c GSyC Redes: DNS: Domain Name System

Estructura de nombrado 241

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 Corpo-
ration 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, . . .

2001
c GSyC Redes: DNS: Domain Name System
Estructura de nombrado (cont.) 242

Árbol de dominios

com edu gov mil org net es uk ...

sun mit acm ieee urjc


eng lcs escet rct
theory gsyc
2001
c GSyC Redes: DNS: Domain Name System

Estructura de nombrado (cont.) 243

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 cons-
truidas 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.in-
addr.arpa

2001
c GSyC Redes: DNS: Domain Name System
Estructura de gestión 244

Estructura de gestión

Cada vez que se delega un subdominio se delega también su gestión (in-


cluyendo 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 sub-
dominio 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.

2001
c GSyC Redes: DNS: Domain Name System

Consulta de una dirección para un nombre 245

Consulta de una dirección para un nombre

Cada aplicación va enlazada con una biblioteca de consulta al DNS (re-


solver), con llamadas como gethostbyname().
La consulta puede hacerse:

• Mirando en un fichero (/etc/hosts).


• Consultando a un servidor local (normalmente sólo caché).
• Consultando a un servidor en otra máquina (lista previamente espe-
cificada).

2001
c GSyC Redes: DNS: Domain Name System
Esquema de funcionamiento del DNS 246

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, pregun-


ta a un servidor de DNS
• El servidor investiga por su cuenta y devuelve la dirección IP pedida.

Hay que configurar cada máquina con la lista de servidores de DNS que
puede usar para resolver nombres, usualmente dos o tres (a veces se hace
automáticamente).
A un servidor siempre hay que decirle qué máquinas sirven el dominio raı́z
(“.”)

2001
c GSyC Redes: DNS: Domain Name System

Esquema de funcionamiento del DNS (cont.) 247

Consulta a un servidor

telnet gsyc.escet.urjc.es













Servidor DNS
  

gsyc.escet.urjc.es? UDP(gsyc.escet.urjc.es?)

telnet resolver
UDP(212.128.1.45)

212.128.1.45

2001
c GSyC Redes: DNS: Domain Name System
Esquema de funcionamiento del DNS (cont.) 248

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 sir-
ve (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)

2001
c GSyC Redes: DNS: Domain Name System

Esquema de funcionamiento del DNS (cont.) 249

gsyc.escet.urjc.es.?

pregunta a es

gsyc.escet.urjc.es.?
es pregunta a urjc
gsyc.escet.urjc.es.?
urjc pregunta a escet
gsyc.escet.urjc.es.?
escet rct
gsyc 212.128.1.45 212.128.1.45
gsyc.escet.urjc.es?

telnet resolver

2001
c GSyC Redes: DNS: Domain Name System
Esquema de funcionamiento del DNS (cont.) 250

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.

2001
c GSyC Redes: DNS: Domain Name System

Tipos de servidores 251

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).

2001
c GSyC Redes: DNS: Domain Name System
Tipos de servidores (cont.) 252

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.

2001
c GSyC Redes: DNS: Domain Name System

Mapas de dominio 253

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.

2001
c GSyC Redes: DNS: Domain Name System
Mapas de dominio (cont.) 254

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.

2001
c GSyC Redes: DNS: Domain Name System

Mapas de dominio (cont.) 255

Ejemplo
urjc.es. 172800 IN SOA venus.urjc.es.
root.venus.urjc.es. (
2000030702 ; Número de serie
86400 ; Refresco
7200 ; Reintento
2592000 ; Expiración
172800 ) ; Ttl
172800 IN NS venus.urjc.es.
172800 IN MX venus.urjc.es.
www 172800 IN CNAME venus.urjc.es.
venus 172800 IN A 193.147.184.8
escet 172800 IN NS gsyc.escet.urjc.es
gsyc.escet 172800 IN A 212.128.1.45

2001
c GSyC Redes: DNS: Domain Name System
Formato de menaje DNS 256

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 pe-
tició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).

2001
c GSyC Redes: DNS: Domain Name System

Formato de menaje DNS (cont.) 257

Datos, tamaño variable:

• Consultas.
• Respuestas.
• Autoridad.
• Más información.

2001
c GSyC Redes: DNS: Domain Name System
Formato de menaje DNS (cont.) 258

Consulta

Cada consulta de un mensaje DNS (normalmente sólo una) tiene:

• Nombre de la petición: secuencia de etiquetas (tamaño, 1 byte, cade-


na, 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.

2001
c GSyC Redes: DNS: Domain Name System

Formato de menaje DNS (cont.) 259

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).

2001
c GSyC Redes: DNS: Domain Name System
¿UDP o TCP? 260

¿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.

2001
c GSyC Redes: DNS: Domain Name System

Referencias 261

Referencias

• “DNS: The Domain Name System”, capı́tulo 14 de “TCP/IP’ Illus-


trated, 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/

2001
c GSyC Redes: DNS: Domain Name System
Referencias (cont.) 262

HTTP

2001
c GSyC Redes: HTTP

¿Qué es HTTP? 263

¿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).

2001
c GSyC Redes: HTTP
Interacción cliente-servidor en HTTP 264

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).

2001
c GSyC Redes: HTTP

Interacción cliente-servidor en HTTP (cont.) 265

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.

2001
c GSyC Redes: HTTP
Interacción cliente-servidor en HTTP (cont.) 266

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

2001
c GSyC Redes: HTTP

Interacción cliente-servidor en HTTP (cont.) 267

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).

2001
c GSyC Redes: HTTP
Interacción cliente-servidor en HTTP (cont.) 268

Lı́neas de cabecera

• Mismo formato que las cabeceras de correo y News (RFC 822, sec-
ción 3).
• HTTP/1.0: 16 cabeceras, ninguna obligatoria.
• HTTP/1.1: 46 cabeceras, “Host:” obligatoria en las peticiones (usa-
da 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).

2001
c GSyC Redes: HTTP

Interacción cliente-servidor en HTTP (cont.) 269

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, ima-
ge/png).
– “Content-Length”: número de bytes en el cuerpo.

2001
c GSyC Redes: HTTP
Interacción cliente-servidor en HTTP (cont.) 270

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

2001
c GSyC Redes: HTTP

Interacción cliente-servidor en HTTP (cont.) 271

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> >.

2001
c GSyC Redes: HTTP
Interacción cliente-servidor en HTTP (cont.) 272

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).

2001
c GSyC Redes: HTTP

Interacción cliente-servidor en HTTP (cont.) 273

Ejemplo (POST, petición)

POST /comments.pl HTTP/1.0\r\n


From: jgb@gsyc.escet.urjc.es\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

2001
c GSyC Redes: HTTP
Representante (proxy) HTTP 274

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

2001
c GSyC Redes: HTTP

HTTP 1.1 275

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 su-
cesivas (se evitan establecimientos de conexión).
• Facilidades especı́ficas para caches (“If-Modified-Since”, “If-Unmodified-
Since”).

2001
c GSyC Redes: HTTP
HTTP 1.1 (cont.) 276

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 men-
saje 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

2001
c GSyC Redes: HTTP

HTTP 1.1 (cont.) 277

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 raci-
mos, 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).

2001
c GSyC Redes: HTTP
HTTP 1.1 (cont.) 278

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

2001
c GSyC Redes: HTTP

HTTP 1.1 (cont.) 279

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 res-
puestas.
• El servidor cerrará las conexiones inactivas pasado un plazo (ej: 10
segundos).

2001
c GSyC Redes: HTTP
HTTP 1.1 (cont.) 280

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-Unmodified-
Since” (los clientes pueden usarlos).
• Respuesta a “If-Modified-Since”: “304 Not Modified”.
• Respuesta a “If-Unmodified-Since”: “412 Precondition Failed”.

2001
c GSyC Redes: HTTP

HTTPS 281

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://”.

2001
c GSyC Redes: HTTP
Galletitas (cookies) 282

Galletitas (cookies)

• Sirven para asociar estado a un conjunto de transacciones (peticio-


nes/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.

2001
c GSyC Redes: HTTP

Galletitas (cookies) (cont.) 283

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 deci-
dir 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

2001
c GSyC Redes: HTTP
Galletitas (cookies) (cont.) 284

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

2001
c GSyC Redes: HTTP

Referencias 285

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

2001
c GSyC Redes: HTTP
Referencias 286

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

2001
c GSyC Redes: HTTP

Referencias (cont.) 287

Correo electrónico

2001
c GSyC Redes: Correo electrónico
Algo de terminologı́a 288

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 co-
rreo 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.

2001
c GSyC Redes: Correo electrónico

Generalidades 289

Generalidades

Composición de un mensaje

Todo mensaje consta de 2 partes:

• Sobre: Cabeceras estandarizadas para identificar el/los destinata-


rios/remitentes del mensaje...
Permiten que el mensaje llegue
• Contenido: El mensaje propiamente dicho.
– La RFC822 sólo admite texto NVT–ASCII (Network Virtual Ter-
minal – ASCII ).
– Para otros tipos: codificadores de binarios (uuencode) y sobre todo
extensiones al mensaje (MIME, RFC1341 )

2001
c GSyC Redes: Correo electrónico
Generalidades (cont.) 290

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

2001
c GSyC Redes: Correo electrónico

Generalidades (cont.) 291

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

2001
c GSyC Redes: Correo electrónico
MIME 292

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; . . .

2001
c GSyC Redes: Correo electrónico

MIME (cont.) 293

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. . .

2001
c GSyC Redes: Correo electrónico
El protocolo SMTP 294

El protocolo SMTP

agente de
agente de cola de correo transferencia de
usuario usuario mensajes
saliente
(UA) (MTA)
remitente

conexión TCP

Puerto 25/TCP
agente de
agente de buzones transferencia de
usuario usuario mensajes
de los usuarios
(UA) (MTA)
destinatario

2001
c GSyC Redes: Correo electrónico

El protocolo SMTP (cont.) 295

• “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...)

2001
c GSyC Redes: Correo electrónico
El protocolo SMTP (cont.) 296

(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:<alumno@a202e12.escet.urjc.es>
250 <alumno@a202e12.escet.urjc.es>... Sender ok
>>> RCPT To:<jcenteno@pantuflo.escet.urjc.es>
250 <jcenteno@pantuflo.escet.urjc.es>... 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

2001
c GSyC Redes: Correo electrónico

Recepción de correo de un MTA 297

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)

2001
c GSyC Redes: Correo electrónico
Referencias 298

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

2001
c GSyC Redes: Correo electrónico

Referencias (cont.) 299

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”

2001
c GSyC Redes: Correo electrónico

También podría gustarte