Está en la página 1de 119

Redes

Grupo de Sistemas y Comunicaciones


gsyc-profes@gsyc.escet.urjc.es

Octubre 2004

Introducción a las
Redes de Ordenadores

2004
c GSyC Redes
Objetivos de las Redes de Ordenadores 2

Objetivos de las Redes de Ordenadores

Compartir recursos: Discos duros, impresoras, programas. . .

Compartir información: Acceso documentos remotos. . .

Mejorar la fiabilidad: Alternativas, replicación. . .

Incrementar el rendimiento: Máquinas trabajando juntas. . .

Servir de medio de comunicación de personas/comunidades

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

Estructura de las Redes 3

Estructura de las Redes

Diversas máquinas (hosts) se conectan a una subred de comunica-


ciones que permite el diálogo entre ellas.
Dos formas fundamentales de diseñar la subred de comunicaciones:

mediante canales punto-a-punto

mediante canales de radiado broadcast

Normalemente hay una mezcla de muchos canales de los dos tipos.

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

Topologı́as comunes en Redes

ESTRELLA ANILLO ARBOL

TOTALMENTE PARCIALMENTE
CONECTADA CONECTADA

BUS SATELITE ANILLO

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

Protocolo de Comunicaciones 5

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

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

Jerarquı́as de Protocolos

En la mayorı́a de las redes se utilizan varios protocolos con distintos


propósitos.
Todos esos protocolos se organizan normalmente en niveles o capas.

cada nivel ofrece servicios al nivel superior

cada nivel se apoya en los servicios ofrecidos por el nivel inferior

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

Jerarquı́as de Protocolos (cont.) 7

Principios Fundamentales

Cada nivel ofrece servicios al nivel superior, ocultándole la forma


en que realmente se implementan dichos servicios.

Cada nivel dentro de una máquina “conversa” con su gemelo en


otra. Las reglas que rigen esta “conversación” forman el protocolo
de dicho nivel.

No hay transferencia fı́sica de datos entre niveles gemelos. La


transferencia se hace en cada máquina entre niveles adyacentes,
a través de las interfaces entre niveles: llamadas a procedimien-
tos/funciones.

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

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

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

Jerarquı́as de Protocolos (cont.) 9

Máquina origen de una comunicación

El mecanismo básico en cada nivel es:

tomar las unidades de datos que le ofrece el nivel superior

procesarlos (agrupando, separando, . . . ) y formar sus propias


unidades de datos (añadiendo información de control en cabe-
ceras)

pasar sus unidades de datos al nivel inferior, usando sus servicios

¿Es esto software o hardware?

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

Máquina destino de una comunicación

El mecanismo básico en cada nivel es:

tomar las unidades de datos que le ofrece el nivel inferior

identificar las cabeceras introducidas en el nivel gemelo para pro-


cesar los datos adecuadamente (agrupando, separando, . . . )

pasar los datos al nivel superior

¿Es esto software o hardware?

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

Jerarquı́as de Protocolos (cont.) 11

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

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

Protocolo Nivel N+1

 

       

 
       

 
       


 

      Protocolo Nivel N

Protocolo Nivel N-1

2004
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

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

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

      

          

      

          

      

          

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

Jerarquı́as de Protocolos (cont.) 15

Protocolo Nivel N+1

Protocolo Nivel N
      

           

      
           

      
           

Protocolo Nivel N-1 














     

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

Protocolo Nivel N+1

  

       

  
       

  
       

Protocolo Nivel N 




     

Protocolo Nivel N-1

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

Jerarquı́as de Protocolos (cont.) 17

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

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

Protocolo Nivel N+1







  
       







  
       







  
       

Protocolo Nivel N 




     

                       

                  

                       
                  

                       
                  
































Protocolo Nivel N-1 





 
















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

Arquitectura de Red 19

Arquitectura de Red

Conjunto de niveles y protocolos de una determinada red de ordena-


dores.
Las distintas arquitecturas de redes se diferencian en:

Número de niveles, y servicios de cada nivel

Protocolos de cada nivel

2004
c GSyC Redes: Introducción a las Redes de Ordenadores
Arquitectura OSI 20

Arquitectura OSI

En 1983 ISO (Organización de Estándares Internacionales) propone


un modelo de referencia para arquitecturas de redes:
Modelo de Referencia para la Interconexión de Sistemas Abiertos
(ISO OSI Reference Model).
El Modelo OSI no es estrictamente una arquitectura, sino un marco
al que deben someterse protocolos concretos para establecer una
arquitectura “conforme a OSI”
OSI no define los servicios y protocolos exactos para cada nivel, sólo
aquello de lo que cada nivel debe ocuparse.

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

Arquitectura OSI (cont.) 21

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

Enlace Protocolo de Enlace Enlace

Protocolo de nivel Fisico


Fisico Fisico

Medio de transmision

2004
c GSyC Redes: Introducción a las Redes de Ordenadores
Arquitectura OSI (cont.) 22

El Nivel Fı́sico

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

Debe asegurarse que la forma de transmitir un bit a 1 es recono-


cida en recepción como un bit a 1.

La transmisión puede ser eléctrica, óptica, . . .

Aborda los problemas eléctricos, electrónicos, de establecimiento


de conexiones fı́sicas, . . .

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

Arquitectura OSI (cont.) 23

El Nivel de Enlace

Transforma un sistema de transmisión crudo (lo que le ofrece el nivel


fı́sico) en una lı́nea libre de errores de transmisión (lo que ofrece para
el nivel de red) entre máquinas conectadas al mismo medio fı́sico.

Forma tramas.

Se encarga de detectar las tramas recibidas con errores de trans-


misión. Además, puede
• descartar las tramas con errores, y/o
• corregir los errores de las tramas con errores, y/o
• pedir la retransmisión de las tramas con errores

Se ocupa de resolver los problemas de acceso a un medio de


transmisión compartido.

2004
c GSyC Redes: Introducción a las Redes de Ordenadores
Arquitectura OSI (cont.) 24

Nivel de Red

Se encarga de la interconexión de máquinas que no están conecta-


das al mismo medio de transmisión. Por ello su misión fundamen-
tal es el encaminamiento de paquetes desde la máquina origen a la
máquina de destino.

El encaminamiento puede ser estático o dinámico.

Gestiona las congestiones y cuellos de botella.

Puede incluir funciones de tarificación.

Puede proporcionar distintos tipos de servicio: Fiable, no fiable.

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

Arquitectura OSI (cont.) 25

Nivel de Transporte

Se encarga de gobernar el acceso múltiple a la red de los diver-


sos procesos de la misma máquina que quieran usarla (gestiona
puertos en máquinas multiproceso).

Puede proporcionar distintos tipos de servicio: Fiable, no fiable.

Realiza comunicación extremo a extremo, no tiene en cuenta las


máquina intermedias.

Realiza control de flujo extremo a extremo (el receptor no es ca-


paz de recibir a la velocidad a la que transmite el emisor).

2004
c GSyC Redes: Introducción a las Redes de Ordenadores
Arquitectura OSI (cont.) 26

Nivel de Sesión

Permite a usuarios en distintas máquinas establecer sesiones entre


ellos:

Proporciona mecanismos para controlar el diálogo: Ej: Turno, ges-


tión de tokens.

Gestiona la sincronización entre máquinas.

Ejemplo: pizarra compartida.

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

Arquitectura OSI (cont.) 27

Nivel de Presentación

Se ocupa de la sintaxis y semántica de la información transferida en-


tre máquinas:

Orden de bytes de enteros (little endian/big endian).

Representación de caracteres alfabéticos.

Tamaño de los tipos de datos.

Tı́picamente traduce los datos a un formato normalizado que todas


las máquinas entienden.
También se suele ocupar de la compresión y cifrado de datos.

2004
c GSyC Redes: Introducción a las Redes de Ordenadores
Arquitectura OSI (cont.) 28

Nivel de Aplicación

Contiene un conjunto de protocolos que son de utilidad directa para


aplicaciones que usan la red:

Para transmisión de ficheros

Para correo electrónico

Para control de trabajos remotos

...

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

Arquitectura OSI (cont.) 29

Crı́ticas al Modelo OSI

Surgió demasiado pronto.

Niveles de distinto “grosor”.

Modelo muy complejo.

Funcionalidades mal situadas: cifrado, . . .

Modelo dominado por una visión “telefónica” de las redes de da-


tos

Hoy la arquitectura OSI ha caı́do en desuso, pero se utiliza su termi-


nologı́a (fundamentalmente la denominación de los niveles)

2004
c GSyC Redes: Introducción a las Redes de Ordenadores
Arquitectura TCP/IP 30

Arquitectura TCP/IP

Su desarrollo comenzó a finales de los 60, como proyecto financiado


por el Gobierno de los Estados Unidos.
Auténtico sistema abierto: Los protocolos y sus implementaciones
están disponibles públicamente.
Constituyen el armazón sobre el que se sitúa Internet.
No se ajusta exactamente al modelo de referencia OSI, surgio antes
y OSI no intentó incluirlo.
Su éxito (a partir del de Internet) ha hecho que sea la arquitectura
más importante y conocida actualmente.

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

Arquitectura TCP/IP (cont.) 31

La pila TCP/IP

Nivel de Aplicación DNS, SMTP, HTTP. . .


Nivel de Transporte TCP, UDP
Nivel de Red IP, ICMP
Nivel de Enlace Ethernet, PPP, ADSL

2004
c GSyC Redes: Introducción a las Redes de Ordenadores
Arquitectura TCP/IP (cont.) 32

ordenador A ordenador B
Protocolo HTTP
Cliente HTTP Servidor HTTP

Protocolo TCP
TCP TCP

encaminador

Protocolo IP Protocolo IP
IP IP IP

Driver + Tarjeta Protocolo Driver + Tarjeta Driver + Tarjeta Protocolo Driver + Tarjeta
Ethernet Ethernet Ethernet Ethernet Ethernet Ethernet

ETHERNET

ETHERNET

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

Arquitectura TCP/IP (cont.) 33

Nivel Fı́sico

2004
c GSyC Redes: Nivel Fı́sico
Introducción 34

Introducción

El nivel fı́sico es el más bajo de toda la torre OSI.


Se ocupa de cómo se transmiten los datos a través de los medios
fı́sicos de transmisión.
Debe ocuparse de que las entidades directamente interconectadas
concuerden en la forma de usar el medio fı́sico, es decir, que un bit a
1 enviado no sea interpretado por el receptor como un bit a 0.

2004
c GSyC Redes: Nivel Fı́sico

Conceptos Generales 35

Conceptos Generales

Velocidad de Transmisión: Bits por segundo que se transmiten


(Unidades: Kbps, Mbps, Gbps). También se le llama, informal-
mente, “ancho de banda”)
Latencia o Retardo de propagación: Tiempo que tarda un bit des-
de que sale hasta que llega a su destino.
Transmisión Simplex: El canal de comunicaciones es de un solo
sentido.
Transmisión Semi-Duplex: Canal bidireccional, pero en el que no
puede transmitirse en ambos sentidos a la vez.
Transmisión Duplex: Canal bidireccional en el que puede trans-
mitirse en ambos sentidos a la vez.

2004
c GSyC Redes: Nivel Fı́sico
Medios de Transmisión 36

Medios de Transmisión

Medios Magnéticos

Se almacenan datos en cintas magnéticas que se transportan en tren


o camión a su destino, donde se leen.
¡No es broma!
Se pueden alcanzar velocidades de transferencia media de varios
Gbps.
El problema es la latencia o retardo de propagación: lo que tarda en
llegar el primer bit a su destino.
Los bancos siguen utilizando estos métodos.

2004
c GSyC Redes: Nivel Fı́sico

Medios de Transmisión (cont.) 37

Cable de Pares

Cable de pares: Dos cables de cobre de 1 mm de espesor, trenzados


en hélice.
Pueden emplearse sin amplificación en varios kilómetros.
Utilizados tanto en telefonı́a como redes Ethernet.
Pueden alcanzarse cientos de Mbps de ancho de banda.

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

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.

2004
c GSyC Redes: Nivel Fı́sico

Medios de Transmisión (cont.) 39

Cable Coaxial de Banda Ancha

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


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

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

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.

2004
c GSyC Redes: Nivel Fı́sico

Medios de Transmisión (cont.) 41

Transmisión por Aire


Se transmiten señales de radiofrecuencia por radiado (broadcast).
Tres escenarios en los que se utiliza:
Redes Inalámbricas (WiFi/802.11):
• Alcances en el entorno de los cientos de metros, con antenas direc-
cionales especiales unos cuantos kilómetros.
• 11 Mbps - 54 Mbps
Redes por Satélite:
• Cuando no hay visón directa emisor–receptor: Satélites.
• Cada satélite tiene varios transpondedores (canales), ofreciendo ca-
da uno cientos de Mbps para transmisión de datos.
• Principal problema: retardo, tı́picamente 300 ms extremo a extremo
para satélites geosincrónicos. Pero si no hay retransmisiones, puede
ser mejor que cables.
GSM/GPRS

2004
c GSyC Redes: Nivel Fı́sico
Transmisión Digital 42

Transmisión Digital

Para medios capaces de transportar una señal digital directamen-


te.

Ventaja: Menor tasa de errores (puede recrearse la señal original


en puntos intermedios)

Se transmite una señal cuadrada, en la que los distintos niveles


de tensión indican la transmisión de ceros o unos.

Hay varias formas de codificar los 0 y 1: Código unipolar, NRZ,


Manchester, Manchester diferencial. . .

2004
c GSyC Redes: Nivel Fı́sico

Transmisión Digital (cont.) 43

Ejemplo: Código Manchester


V
0
0 1 0 0 1 1 1 0
1

Nota: No se puede transmitir una señal cuadrada perfecta (ancho


de banda infinito). Se transmite una suma de sinusoides que se le
parece:

2004
c GSyC Redes: Nivel Fı́sico
Transmisión Analógica 44

Transmisión Analógica

Para medios diseñados para transportar señales analógicas (ej:


lı́nea telefónica).
Se necesitan MOduladores–DEModuladores en los puntos de ac-
ceso al medio.
Los modems convierten una señal digital en su equivalente analógi-
ca (modulan) y viceversa (demodulan).

MODEM MODEM

Transmision
´ Digital
Transmision
´ Analogica
´

2004
c GSyC Redes: Nivel Fı́sico

Transmisión Analógica (cont.) 45

Tipos de Modulación

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

(a)
Señal digital:

Modulación ASK: (b)

Modulación FSK: (c)

Modulación PSK: (d)

Phase changes

Modulación QAM: Combinación de ASK y PSK.

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

Nivel de Enlace

2004
c GSyC Redes: Nivel de Enlace

Introducción 47

Introducción

El Nivel de Enlace suele subdividirse en dos subniveles:


Nivel de Red
LLC (Subnivel de Control del Enlace Lógico)
MAC (Subnivel de Control de Acceso al Medio)
Nivel Fı́sico

MAC: gobierna el acceso a un medio de transmisión compartido por varias


máquinas
LLC: ofrece al nivel de red un servicio de transmisión de datos entre máqui-
nas adyacentes, encargándose de:
composición/descomposición de tramas.
control de flujo (opcional).
gestión de los errores en la transmisión (opcional).

2004
c GSyC Redes: Nivel de Enlace
El problema del acceso al medio 48

El problema del acceso al medio


¿Cómo y cuando asignar el canal fı́sico a las distintas máquinas que
lo comparten y quieren acceder a él?
Soluciones:
Asignación estática: Se reparte el canal en el tiempo (TDM) o
en frecuencia (FDM). Bueno para tráficos pesados y constantes,
pero malo para ráfagas (lo habitual).
Asignación dinámica: No está prefijado el reparto. Trata de apro-
vechar mejor el canal en LAN’s.
• Acceso por contienda: Las máquinas compiten por usar el me-
dio. Si coinciden dos o más a la vez: colisión
• Acceso por reserva: Las máquinas pueden hacer reservas pa-
ra poder usar el canal en exclusiva durante un tiempo

2004
c GSyC Redes: Nivel de Enlace

Protocolo CSMA/CD 49

Protocolo CSMA/CD

CSMA/CD (Carrier Sense Multiple Access with Collision Detection):


Acceso múltiple con detección de portadora.
Funcionamiento:

Cuando una estación quiere transmitir escucha en el canal.

Si está ocupado, espera a que quede libre

Si está libre, transmite.

Mientras transmite, sigue escuchando para ver si alguien trans-


mite a la vez, en cuyo caso aborta la transmisión

2004
c GSyC Redes: Nivel de Enlace
Protocolo CSMA/CD (cont.) 50

¿Cómo se pueden producir las colisiones?

Cuando dos estaciones deciden transmitir simultáneamente al


ver el canal libre.

Cuando el canal parece libre pero no lo está debido al retardo de


propagación de los paquetes por la red.

Caso patológico: Dos estaciones quieren transmitir y ven que el canal


está ocupado. Esperan a que quede libre, y cuando lo está ambas
transmiten a la vez, colisionando. Y ası́ indefinidamente.
Para evitarlo, en caso de colisión las estaciones esperan un tiempo
aleatorio antes de reintentar.

2004
c GSyC Redes: Nivel de Enlace

Protocolo CSMA/CD (cont.) 51

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

2004
c GSyC Redes: Nivel de Enlace
Protocolos de Paso de Testigo 52

Protocolos de Paso de Testigo

Acceso al medio por reserva: Existe un testigo o token que circula por
la red. En todo momento, sólo el poseedor del testigo puede transmi-
tir, por lo que desaparecen las colisiones.
Supone que las estaciones de la red se configuran como un anillo
fı́sico o lógico.
Mecanismo:
Cuando el canal está libre, por él circula el testigo.
Cuando una estación quiere transmitir:
• captura el testigo
• envı́a su trama
• devuelve el testigo al anillo.

2004
c GSyC Redes: Nivel de Enlace

Nivel de Enlace 53

Nivel de Enlace

Recuerda: 2 partes.

MAC: Control de acceso al medio (ya visto)

LLC: Control del enlace lógico:


• Gestión de tramas
• Control de flujo (opcional)
• Control de errores (opcional)

2004
c GSyC Redes: Nivel de Enlace
Gestión de tramas 54

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.

2004
c GSyC Redes: Nivel de Enlace

Gestión de tramas (cont.) 55

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

2004
c GSyC Redes: Nivel de Enlace
Control de Flujo 56

Control de Flujo

Problema: Emisor enviando más deprisa de lo que el receptor es ca-


paz 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 re-
ceptor.
Ejemplo: Al establecer la conexión, el receptor indica que se le pue-
den enviar hasta N tramas consecutivas, pero no más hasta que él lo
indique expresamente.

2004
c GSyC Redes: Nivel de Enlace

Gestión de errores 57

Gestión de errores

El problema de la gestión de errores puede abordarse en el nivel de


enlace o en niveles superiores (normalmente nivel de transporte).

Si se hace en el nivel de enlace, se corrigen los errores en la


comunicación entre cada par de máquinas adyacentes que parti-
cipen 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.

2004
c GSyC Redes: Nivel de Enlace
Gestión de errores (cont.) 58

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áqui-
nas adyacentes.
Los otros dos problemas no son tan habituales entre máquinas adya-
centes, por lo que podrı́a “diferirse” su solución a niveles superiores.

2004
c GSyC Redes: Nivel de Enlace

Bits cambiados en una trama 59

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


rando que en algún momento el emisor la retransmita (ya vere-
mos como).

2004
c GSyC Redes: Nivel de Enlace
Corrección de errores 60

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 origi-
nal.
Idea Básica:
sólo ciertos patrones de bits son “posibles”
si se recibe un patrón “imposible”, se supone que el que se querı́a
enviar es aquel “posible” que más se le parezca.
Distancia Hamming (d): N.o de diferencias entre dos patrones conse-
cutivos.
En un patrón pueden detectarse hasta d−1 errores, y corregirse hasta
(d − 1)/2 errores.

2004
c GSyC Redes: Nivel de Enlace

Corrección de errores (cont.) 61

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 has-
ta 4).

2004
c GSyC Redes: Nivel de Enlace
Detección de errores y retransmisión 62

Detección de errores y retransmisión

Ahora la redundancia que se introduce es sólo con el objeto de po-


der 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 sim-
plex.

2004
c GSyC Redes: Nivel de Enlace

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

Bit de Paridad

Consiste en añadir un bit al patrón de datos que se envı́a.

Paridad Par: El bit añadido hace que el total de unos enviado sea
siempre par.

Paridad Impar: El bit añadido hace que el total de unos enviado


sea siempre impar.

Se puede detectar un error de 1 bit del patrón, y hay un 50 % de


probabilidades de detectar un error en más de 1 bit a la vez.

2004
c GSyC Redes: Nivel de Enlace
Detección de errores y retransmisión (cont.) 64

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

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


operaciones aritméticas módulo 2 con ellos.
El cálculo del CRC se implementa con circuitos hardware sencillos.

2004
c GSyC Redes: Nivel de Enlace

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

Se demuestra que con los CRC de 16 bits se detectan:

Todos los errores simples y dobles

Todos los errores en un número impar de bits

Todas las ráfagas de longitud≤16 bits

El 99.997 % de las ráfagas de 17 bits

El 99.998 % de las ráfagas de longitud≥18 bits

2004
c GSyC Redes: Nivel de Enlace
Recuperación de pérdidas y/o duplicados 66

Recuperación de pérdidas y/o duplicados

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


mas perdidas y/o duplicadas pueden utilizarse también para realizar
el control de flujo.
Se utilizan Timeouts y Asentimientos para implementarlos
MUY IMPORTANTE: Pueden situarse en el nivel de enlace o en nive-
les superiores. En las redes TCP/IP no aparecen hasta (por lo menos)
el nivel de transporte.

2004
c GSyC Redes: Nivel de Enlace

Recuperación de pérdidas y/o duplicados (cont.) 67

Tres tipos principales de protocolos:

De parada y espera: El transmisor, después de enviar una trama,


espera su asentimiento por parte del receptor antes de enviar la
siguiente.

De envı́o continuo: El transmisor va enviando tramas sucesiva-


mente, y el receptor le va asintiendo por su cuenta. Requiere me-
moria infinita.

De ventanas: El transmisor puede enviar un número máximo de


tramas antes de recibir el primer asentimiento

2004
c GSyC Redes: Nivel de Enlace
Recuperación de pérdidas y/o duplicados (cont.) 68

Parada y Espera

Mecanismo básico:
Emisor Receptor

tiempo
dato-1

Plazo
ACK

2004
c GSyC Redes: Nivel de Enlace

Recuperación de pérdidas y/o duplicados (cont.) 69

Emisor Receptor

tiempo dato-1

Plazo

dato-1

Plazo
ACK

2004
c GSyC Redes: Nivel de Enlace
Recuperación de pérdidas y/o duplicados (cont.) 70

El protocolo genera duplicados, que podrı́an descartarse en el recep-


tor si los paquetes van identificados de alguna forma.

2004
c GSyC Redes: Nivel de Enlace

Recuperación de pérdidas y/o duplicados (cont.) 71

Emisor Receptor

tiempo dato-1

Plazo ACK

dato-1

Plazo
ACK

2004
c GSyC Redes: Nivel de Enlace
Recuperación de pérdidas y/o duplicados (cont.) 72

Emisor Receptor

tiempo dato-1

Plazo

ACK

dato-1

Plazo ACK

2004
c GSyC Redes: Nivel de Enlace

Recuperación de pérdidas y/o duplicados (cont.) 73

Solución: Con asentimiento alternado: cada paquete de datos lleva


un bit que va alternando. Los acks también incluyen el bit para identi-
ficar 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

2004
c GSyC Redes: Nivel de Enlace
Recuperación de pérdidas y/o duplicados (cont.) 74

Envı́o Continuo

El canal está infrautilizado. 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

2004
c GSyC Redes: Nivel de Enlace

Recuperación de pérdidas y/o duplicados (cont.) 75

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

2004
c GSyC Redes: Nivel de Enlace
Recuperación de pérdidas y/o duplicados (cont.) 76

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 transmi-
tir cada trama, para después de transmitir n (tamaño de la ventana)
tramas.
Cuando va recibiendo los ACKs de las tramas enviadas puede pro-
seguir enviando nuevas tramas.

2004
c GSyC Redes: Nivel de Enlace

Recuperación de pérdidas y/o duplicados (cont.) 77

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

2004
c GSyC Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP 78

Protocolos de Nivel de Enlace en redes


TCP/IP

Los más habituales:

Ethernet

Fast Ethernet

PPP

2004
c GSyC Redes: Nivel de Enlace

Protocolos de Nivel de Enlace en redes TCP/IP (cont.) 79

Ethernet

Norma originalmente establecida por Xerox, DEC e Intel.

Pensada para medios compartidos con acceso mediante CSMA/CD

Hasta 10 Mbps

Medios fı́sicos:
• Cable coaxial grueso (Thicknet): 10Base5, topologı́a en bus.
• Cable coaxial fino (Thinnet): 10Base2, topologı́a en bus.
• Par trenzado: 10Base-T, topologı́a en estrella.
• Fibra óptica: 10Base-F, topologı́a en estrella

Nivel Fı́sico: Código Machester, niveles de +0.85V y –0.85V.

Acceso al Medio: CSMA/CD

2004
c GSyC Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.) 80

10BaseT:

Cable UTP-3 ó UTP-5 (Unshielded Twisted Pair ): 4 Pares trenza-


dos, no blindados, categorı́a 3 ó 5.

Conectores RJ-45.

Se usa un par para transmitir y otro para recibir (full duplex).

Un concentrador (hub) hace de bus. Lo que recibe por una bo-


ca, lo retransmite por todas las demás. 10 Mbps entre todas las
bocas.

A veces se usa un conmutador (switch): Reenvı́a sólo a la boca


a la que se conecta el destinatario. 10 Mbps por boca y sentido,
varias transmisiones a la vez.

Longitud máxima hasta el concentrador: 100 metros

2004
c GSyC Redes: Nivel de Enlace

Protocolos de Nivel de Enlace en redes TCP/IP (cont.) 81

Formato de trama
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

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


reloj con el del transmisor.

Comienzo de trama 10101011, indicando que a continuación empie-


za la trama.

2004
c GSyC Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.) 82

Direcciones destino y origen 6 bytes.


Si todos los bits de destino son 1, la trama será entregada a
todas las estaciones de la subred (omnienvı́o o broadcast).
Si el bit 47 (el de mayor peso) de la dirección destino es 1,
la trama va destinada a un grupo de máquinas (multienvı́o o
multicast).
Si el bit 46 de una dirección está a 1, la dirección es de ámbito
mundial, asignada de forma única. Si está a 0, es de ámbito
local, relativo a esa subred. En ambos casos son direcciones
unienvı́o o unicast.
La dirección de destino va delante para que una estación sepa
rápidamente si una trama es para ella o no.

2004
c GSyC Redes: Nivel de Enlace

Protocolos de Nivel de Enlace en redes TCP/IP (cont.) 83

Tipo Indica el Protocolo encapsulado dentro del campo de Datos:


0x0800 datagrama IP
0x0806 paquete ARP (28 bytes de datos y 18 de relleno)
0x8035 paquete RARP (28 bytes de datos y 18 de relleno)

Datos Entre 46 y 1500 bytes.

Relleno La norma obliga a que toda trama sea ≥ 64 bytes, para poder
considerar que todas las tramas menores son resultado de trans-
misiones 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.

2004
c GSyC Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.) 84

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.

2004
c GSyC Redes: Nivel de Enlace

Protocolos de Nivel de Enlace en redes TCP/IP (cont.) 85

Fast Ethernet

Compatible con Ethernet (mismo formato de trama).

100 Mbps

100Base-TX: 2 pares UTP-5

100Base-T4: 4 pares UTP-3

100Base-FX: 2 fibras ópticas

2004
c GSyC Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.) 86

PPP: Point to Point Protocol

Es un protocolo pensado para encapsular IP (nivel de red) sobre


lı́nea serie.
Está diseñado de forma que no sólo puede encapsular IP, sino
también otros protocolos.
Se utiliza fundamentalmente para conectarse a Internet a través
de la red telefónica básica mediante módem.
Históricamente se usó primero SLIP (Serial Line IP), pero PPP
es más completo. La principal diferencia de PPP con SLIP es
que PPP incluye detección de errores de transmisión mediante
CRC.
flag addr control flag
protocolo datos CRC
7E FF 03 7E
1 1 1 2 hasta 1500 2 1 nº bytes

2004
c GSyC Redes: Nivel de Enlace

Protocolos de Nivel de Enlace en redes TCP/IP (cont.) 87

ADSL: Asymetric Digital Susbcriber Line

Una lı́nea telefónica normal transmite voz: Una banda de 0-4kHz. En un par
de cobre “cabe más”, por lo que en la centralita se agrupan (multiplexan)
varias conversaciones (desplazadas en frecuencia) por un mismo cable. Las
transmisiones mediante módem con PPP reciben el mismo trato.
Con ADSL el abonado continúa utilizando los primeros 4kHz para las lla-
madas de voz, pero ahora ocupa más ancho de banda para la transmisión
(simultánea) de datos. En la centralita se trata al abonado de forma diferente,
separando los 4kHz por un lado y transmitiendo los datos de forma indepen-
diente.
Es asimétrico: se reserva más para recibir (256Kbps–2Mbps) que para enviar
(128Kbps–300Kbps). Ambas bandas están separadas.
Se transmite por modulación multitono discreta (MDT).
ADSL es más bien un nivel fı́sico: como nivel de enlace puede utilizarse cual-
quier de los usados en lı́neas punto a punto.

2004
c GSyC Redes: Nivel de Enlace
Dispositivos de interconexión de subredes 88

Dispositivos de interconexión de subredes

Para interconectar subredes pueden colocarse dispositivos muy dife-


rentes en propósito y funcionamiento:

repetidores (repeaters)

puentes (bridges)

encaminadores (routers)

concentradores (hubs)

conmutadores (switches)

2004
c GSyC Redes: Nivel de Enlace

Dispositivos de interconexión de subredes (cont.) 89

Repetidores

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


otro (trabajan en el nivel 1).

Permiten extender la longitud fı́sica de la subred

Aislan los fallos de diferentes segmentos de la subred

2004
c GSyC Redes: Nivel de Enlace
Dispositivos de interconexión de subredes (cont.) 90

Puentes

Interconectan dos LAN, pasando tramas de una a otra (trabajan


en el nivel 2).

Las máquinas de las dos subredes NO son conscientes de la


presencia del bridge.

2004
c GSyC Redes: Nivel de Enlace

Dispositivos de interconexión de subredes (cont.) 91

Encaminadores

Interconectan subredes distintas trabajando en el nivel de red. La


mayor diferencia con los bridges es que los niveles de enlace de
máquinas de las subredes que interconectan SÍ son conscientes
de su presencia.

Los estudiaremos con más detalle en el tema siguiente.

2004
c GSyC Redes: Nivel de Enlace
Dispositivos de interconexión de subredes (cont.) 92

Concentradores

Ofrecen el servicio de un bus a topologı́as en estrella.

Su servicio es fundamentalmente de nivel 1: repiten la señal de


una boca a las otras

Puede incorporar cierta funcionalidad de nivel 2: en Ethernet,


cuando detectan señal por una boca, envı́an ruido por todas las
demás para que la vean las tarjetas, colisionen y reintente.

Reparten el ancho de banda disponible entre todas las bocas

2004
c GSyC Redes: Nivel de Enlace

Dispositivos de interconexión de subredes (cont.) 93

Conmutadores
Exteriormente muy parecidos a los concentradores, pero de com-
portamiento muy diferente
Almacenan internamente las tramas entrantes en buffers, del que
en paralelo van sacando tramas y reenviándolas por las bocas
adecuadas (trabajan en el nivel 2).
Pueden dar todo el ancho de banda a cada una de varias trans-
misiones simultáneas entre bocas.
Para tecnologı́as compatibles (Ethernet/FastEthernet) pueden te-
ner bocas trabajando a distintas velocidades.
Reciben su nombre porque, para una transmisión entre dos bo-
cas, ofrecen un funcionamiento equivalente a “conmutar” para in-
terconectarlas ofreciendo un único canal directo e independiente
de otras transmisiones.

2004
c GSyC Redes: Nivel de Enlace
Dispositivos de interconexión de subredes (cont.) 94

Nivel de Red

2004
c GSyC Redes: Nivel de Red

Introducción 95

Introducción

El nivel de red se ocupa de que los paquetes que salen del transmi-
sor lleguen a su destino final, aunque el emisor y el receptor no estén
“adyacentes” (conectados directamente al mismo medio de transmi-
sión).
Esto normalmente requiere pasar a través de nodos intermedios: en-
caminadores (routers). Es necesario elegir la mejor ruta a seguir.
RECORDATORIO: El nivel de enlace sólo se ocupa de que las tramas
viajen entre máquinas “adyacentes”.

2004
c GSyC Redes: Nivel de Red
Misiones del Nivel de Red 96

Misiones del Nivel de Red

Encaminamiento de paquetes.

Asignación de direcciones únicas a todas las máquinas de la red,


independientes de la tecnologı́a de los niveles de enlace.

Interconexión en una misma red de subredes con distinto nivel de


enlace.

Control de congestión.

2004
c GSyC Redes: Nivel de Red

Tipos de Nivel de Red 97

Tipos de Nivel de Red

Según haya o no conexiones de red:

No orientado a conexión

Orientado a conexión

Según se encamine cada paquete por separado o no:

Basado en datagramas

Basado en ciruitos virtuales

Según se ofrezca o no un servicio fiable:

Fiable

No fiable

2004
c GSyC Redes: Nivel de Red
Tipos de Nivel de Red (cont.) 98

Servicio No Orientado a Conexión

Cada vez que el nivel superior quiere enviar datos, se compo-


ne una unidad de datos (paquete) con ellos y se envı́a. No hay
relación con transmisiones previas o futuras al mismo destino

Servicio Orientado a Conexión

Antes de enviar el primer byte de datos, origen y destino man-


tienen un diálogo inicial para establecer ciertas condiciones de
la transferencia de información, que se mantienen mientras dure
esta transferencia

2004
c GSyC Redes: Nivel de Red

Tipos de Nivel de Red (cont.) 99

Servicio basado en Datagramas


La dirección de destino viaja en todos los paquetes de datos.
El encaminamiento de cada paquete es independiente, por lo
que varios paquetes enviados del mismo origen al mismo destino
pueden viajar por diferentes rutas (y, tal vez, llegar en desorden).
Servicio basado en Circuitos Virtuales
Al principio se establece un “circuito virtual” por el que viajarán
todos los paquetes de datos.
La dirección de destino viaja sólo en los paquetes que establecen
el cirtuito virtual. Los paquetes con datos sólo llevan un identifi-
cador del circuito virtual al que pertenecen
Todos los paquetes pertenecientes a un mismo circuito virtual
siguen el mismo camino y llegan en orden.

2004
c GSyC Redes: Nivel de Red
Tipos de Nivel de Red (cont.) 100

Servicio basado en datagramas:


3 2 1
3
A B

3
2

2 E

1 2 3
C 1
1

2004
c GSyC Redes: Nivel de Red

Tipos de Nivel de Red (cont.) 101

Servicio basado en circuitos virtuales:


3 2 1
3 2 1
A B
3
2
1

3 2 1
C

2004
c GSyC Redes: Nivel de Red
Tipos de Nivel de Red (cont.) 102

Servicio Fiable:

Se garantiza al nivel superior que todos los paquetes llegan a su


destino, y que el destino es capaz de reordenarlos si se desorde-
nan en el camino.

Para ello se numeran los paquetes, y se retransmiten los perdidos

Servicio No Fiable:

No se garantiza al nivel superior que todos los paquetes lleguen


a su destino: pueden perderse paquetes (tı́picamente por con-
gestión).

Algún nivel superior deberá ser capaz de detectar y recuperarse


de estas pérdidas, si la aplicación lo requiere.

2004
c GSyC Redes: Nivel de Red

Tipos de Nivel de Red (cont.) 103

Todas las combinaciones de tipos de servicio de nivel de red son


teóricamente posibles, pero no todas se dan en la práctica.
Las combinaciones más frecuentes son:

Servicio Orientado a Conexión, basado en Circuitos Virtuales y


Fiable (ejemplo: X.25).

Servicio No Orientado a Conexión, basado en Datagramas y No


Fiable (ejemplo: IP).

2004
c GSyC Redes: Nivel de Red
Direcciones de Red 104

Direcciones de Red

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


máquinas de la red, independientemente de la tecnologı́a del nivel
de enlace de cada una.
Existen distintos métodos de direccionamiento según el tipo de redes.
Veremos más adelante el formato de las direcciones del nivel de red
IP.

2004
c GSyC Redes: Nivel de Red

Interconexión de subredes con distinto nivel de enlace 105

Interconexión de subredes con distinto nivel


de enlace

Dependiendo de la arquitectura de red que se trate, puede que


se desee integrar en una misma red a subredes con distinto nivel
de enlace.

Cuando ası́ ocurre, es misión de nivel de red hacer esta integra-


ción

Es necesario que el nivel de red del encaminador que une las


subredes “entienda” los dos niveles de enlace. Puede tener que
resolver problemas de:
• distintos tamaños de las unidades de datos
• distintas velocidades de las subredes

2004
c GSyC Redes: Nivel de Red
Interconexión de subredes con distinto nivel de enlace (cont.) 106

Ejemplo

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

2004
c GSyC Redes: Nivel de Red

Encaminamiento 107

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

2004
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 108

Algoritmo de encaminamiento: Procedimiento por el cuál los encami-


nadores (routers) alcanzan las decisiones de las mejores rutas para
cada destino.
Como parte del algoritmo de encaminamiento, normalmente los en-
caminadores tienen que enviarse entre sı́ mensajes de control para
conseguir toda la información necesaria.
El resultado de los algoritmos de encaminamiento es generar en cada
encaminador su tabla de encaminamiento.
Tabla de encaminamiento: Tabla que consulta el encaminador cada
vez que recibe un paquete y tiene que encaminarlo. Esta tabla tiene
esta forma:
Destino final Encaminador vecino al que enviar el paquete
D1 V1
D2 V2
... ...

Muchas veces se utiliza el término Protocolo de Encaminamiento en


vez de Algoritmo de Encaminamiento.

2004
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 109

Objetivos de un algoritmo de encaminamiento

Minimizar el espacio de la tabla de encaminamiento para poder


buscar rápidamente y para tener menos información a intercam-
biar con otros encaminadores

Minimizar el número y frecuencia de mensajes de control

Robustez: evitar agujeros negros, evitar bucles, evitar oscilacio-


nes 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

2004
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 110

Algoritmo de inundación

Es un algoritmo simple que a veces se utiliza cuando no hay ningu-


na información de encaminamiento disponible (al arrancar algún otro
algoritmo):

1. Cada paquete recibido por un nodo es encaminado a todos los


vecinos (excepto al que lo envió).

2. Los paquetes van etiquetados y numerados.

3. Si un nodo recibe un paquete que ya ha encaminado, lo descarta.

2004
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 111

Algoritmo de aprendizaje

Es un algoritmo simple, que mejora el de inundación. Se utiliza tam-


bién en los bridges de nivel de enlace.

1. Cada nodo mantiene una tabla con entradas


(Destino, enlace por el que encamino)
que va actualizando según los paquetes que va recibiendo.

2. Al recibir un paquete, se fija en el nodo origen y enlace por el que


le ha llegado, apuntando en la tabla que cuando ese nodo sea
destino de un paquete lo encaminará por ese enlace

3. Cuando para un destino no hay entrada en la tabla, se envı́a por


inundación.

2004
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 112

Algoritmo de Dijkstra
Es un algoritmo que encuentra caminos de distancia mı́nima de un nodo al
resto (por lo que cada nodo ejecuta el algoritmo). Requiere conocer todas las
distancias entre nodos adyacentes.
1. Se trabaja con dos conjuntos de nodos:
P : Nodos con su encaminamiento ya resuelto (permanentes)
T : Nodos aún no resueltos (tentativos)
2. Inicialmente P sólo contiene el nodo inicial
3. Para cada nodo de T :
si no está directamente conectado a ningún nodo de P , su distancia
al nodo inicial es infinta
en caso contrario, se calcula la menor entre la distancia calculada en
un paso anterior y las distancias directas entre él y los nodos de P
4. El nodo de T de menor distancia se pasa a P . Si aún quedan nodos en
T , se vuelve al paso anterior.

2004
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 113

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

G H G (6, A) H (∞, −)
(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)

G (6, A) H (∞, −) G (5, E) H (∞, −)


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

2004
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 114

Algoritmos basados en Vectores de Distancias

El protocolo RIP (Routing Information Protocol), utilizado en Internet,


emplea esta técnica.
1. Cada nodo mantiene una tabla de encaminamiento con pares
(Destino, Nodo vecino por el que encamino), para todos los destinos de
la red.

2. Cada nodo estima el retardo de sus paquetes a los nodos vecinos (en-
viando periódicamente paquetes de sondeo).

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


(Destino, retardo estimado)

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

2004
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 115

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.

2004
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 116

Problema: cuenta al infinito.


La información acerca de mejores rutas se propaga poco a poco, con-
siguié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
∞ After 3 exchanges


1 2 3 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.

2004
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 117

Algoritmos basados en el Estado de Enlace

El protocolo OSPF (Open Shortest Path First), utilizado en Internet,


emplea esta técnica.
1. Cada encaminador mide su distancia con cada uno de sus vecinos (en-
viando paquetes de sondeo) y construye un paquete de estado de enla-
ces con esta información.

2. Cada encaminador envı́a perdiódicamente el paquete de estado de en-


laces a todos los encaminadores de la red. Estos mensajes se difunden
por inundación.

3. Cada encaminador, con la información recibida, conoce la topologı́a com-


pleta de la red y calcula el mejor camino a todos sus destinos (aplicando,
por ejemplo, el algoritmo de Dijkstra)

2004
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 118

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.

2004
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 119

Encaminamiento jerárquico

Si la red es muy grande, las tablas de encaminamiento se hacen inmaneja-


bles:
se tarda mucho en calcular los caminos óptimos
se genera mucho tráfico de control para conseguir difundir la información
necesaria para los algoritmos de encaminamiento
Solución: Encaminamiento Jerárquico:
Se divide la red en dominios
Dentro de cada dominio se encamina según un algoritmo de los vistos
anteriormente
Los dominios están interconectados mediante pasarelas (gateways)
Las máquinas dentro de un dominio no conocen a las de otro
Los gateways sólo conocen a otros gateways

2004
c GSyC Redes: Nivel de Red
Encaminamiento (cont.) 120

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.

2004
c GSyC Redes: Nivel de Red

Control de Congestión 121

Control de Congestión

Un encaminador tiene varios enlaces de entrada y salida.

Puede ser que lleguen paquetes más deprisa de lo que el enca-


minador sea capaz de darles salida.

Si esta situación es esporádica, se resuelva con buffers.

Los buffers son limitados: cuando se llenan se ha alcanzado la


congestión

Congestión: cuando el tráfico deseado/originado en los extremos es


mayor del que puede encaminar el nivel de red

2004
c GSyC Redes: Nivel de Red
Control de Congestión (cont.) 122

Medidas:

En redes basadas en circuitos virtuales, se puede hacer un con-


trol de admisión: Al intentar establecer un nuevo circuito virtual,
los encaminadores intermedios indican si tienen recursos (buf-
fers) para que pase por ellos.

En redes basadas en datagramas, los encaminadores suelen des-


cartar los paquetes que reciben y no les caben en sus buffers de
salida.

2004
c GSyC Redes: Nivel de Red

Control de Congestión (cont.) 123

IP: Internet Protocol

2004
c GSyC Redes: IP: Internet Protocol
Introducción 124

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

2004
c GSyC Redes: IP: Internet Protocol

Datagramas IP 125

Datagramas IP

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

2004
c GSyC Redes: IP: Internet Protocol
Datagramas IP (cont.) 126

versión Actualmente versión 4. La siguiente versión es IPv6.

longitud cabecera Número de palabras de 32 bits que ocupa la cabe-


ra. Normalemente es 5 (20 bytes), cuando no hay opciones

TOS Se usan sólo 4 bits para indicar tipo de servicio a ofrecer:


minimizar retardo
maximizar rendimiento
maximizar fiabilidad
minimizar coste económico

2004
c GSyC Redes: IP: Internet Protocol

Datagramas IP (cont.) 127

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


es menor de 576 bytes. Dependiendo del nivel de enlace, cual-
quier máquina puede necesitar fragmentar un datagrama IP al
encaminarlo.
identificación Diferente para cada datagrama que genera una máqui-
na (se va incrementando de 1 en 1). Distintos fragmentos del
mismo datagrama mantienen el mismo número de identificación.
flags Uno para indicar si este datagrama no puede fragmentarse, y
otro para indicar si hay más fragmentos de este datagrama
offset de fragmentación Generado al fragmentar un datagrama, le sir-
ve al destino final para reensamblarlo.
TTL Indica el número máximo de encaminadores que el datagrama
puede atravesar. Normalmente se coloca a 32 ó 64. Cada enca-
minador lo decrementa, y si alcanza 0 se descarta el datagrama,
enviándose al originador del datagrama un mensaje ICMP.

2004
c GSyC Redes: IP: Internet Protocol
Datagramas IP (cont.) 128

protocolo Indica si en el campo de datos va un paquete de ICMP,


IGMP, TCP o UDP.

checksum Calculado únicamente sobre la cabera del datagrama.

direcciones origen y destino Valores de 32 bits.

opciones Información opcional. No todas las máquinas y encamina-


dores 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

2004
c GSyC Redes: IP: Internet Protocol

Direcciones IP 129

Direcciones IP

Cada interfaz fı́sico conectado a la Internet tiene asignada una direc-


ción IP que resulta única en toda la red.
Los 32 bits se suelen expresar en ((notación decimal puntuada)): 212.128.4.4
El rango de direcciones se divide en 5 clases:

Clase 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

2004
c GSyC Redes: IP: Internet Protocol
Direcciones IP (cont.) 130

Los primeros bits de una dirección indican cuál es su clase.


En cada clase, es distinto el número de bits de red y el de bits de
máquina.

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

2004
c GSyC Redes: IP: Internet Protocol

Direcciones IP (cont.) 131

Tipos de direcciones IP

unicast Representan a una sola máquina

multicast Representan a un grupo de máquinas

broadcast Representan a todas las máquinas de una subred

2004
c GSyC Redes: IP: Internet Protocol
Direcciones IP (cont.) 132

¿Quién asigna direcciones IP?

Tres organismos regionales: ARIN (América), RIPE (Europa y África)


y APIC (Asia).
RIPE delega en organismos regionales (normalmente por paı́ses).
En España, el organismo es Red.es, Entidad Pública Empresarial
adscrita al Ministerio de Ciencia y Tecnologı́a.
Una organización adquiere una (o más) direcciones de clase, y el
administrador local de la organización reparte la dirección de clase
entre todas sus máquinas.
ICANN (Internet Corporation for Assigned Names and Numbers) es
una organización internacional creada en 1998 para coordinar todas
las tareas de asignación de nombres y direcciones.

2004
c GSyC Redes: IP: Internet Protocol

Direcciones IP (cont.) 133

Subredes

En ocasiones, por razones organizativas o topológicas, se utilizan al-


gunos bits de máquina como bits de subred.
Sobre todo con direcciones de clases A y B.
Dada una dirección de red otorgada a una organización, el adminis-
trador decidirá si utilizará subredes, y el número de bits de máquina
que utilizará para indicar la subred.

2004
c GSyC Redes: IP: Internet Protocol
Direcciones IP (cont.) 134

El número de bits con el que se indica la subred se denota con una


máscara de subred: 32 bits, 1 para bits de red y subred, 0 para bits
de máquina.
Ejemplos:
Dirección de clase Máscara Subredes
163.117.0.0 255.255.255.0 163.117.0.0 – 163.117.0.255
163.117.1.0 – 163.117.1.255
...
163.117.254.0 – 163.117.254.255
163.117.255.0 – 163.117.255.255
193.147.71.0 255.255.255.128 193.147.71.0 – 193.147.71.127
193.147.71.128 – 193.147.71.255
Normalmente en cada subred se reservan:
la primera dirección (bits de máquina a cero) como “dirección de la red”
la última dirección (bits de máquina a uno) como “dirección de broadcast”.

2004
c GSyC Redes: IP: Internet Protocol

Encaminamiento 135

Encaminamiento

Cualquier máquina IP puede está o no configurada como encamina-


dor:

Si NO lo está los datagramas IP que recibe que no son para ella,


se tiran.

Si lo está, se tratan de encaminar.

2004
c GSyC Redes: IP: Internet Protocol
Encaminamiento (cont.) 136

Para encaminar, una máquina consultará su tabla de encaminamien-


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

2004
c GSyC Redes: IP: Internet Protocol

Encaminamiento (cont.) 137

Las tablas de encaminamiento tienen el aspecto:


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

U ruta utilizable

G ruta indirecta (pasarela)

2004
c GSyC Redes: IP: Internet Protocol
Encaminamiento (cont.) 138

CIDR

El mecanismo de las clases A, B y C se ha mostrado muy inflexible y


ha provocado:

Agotamiento de las direcciones de las clases A y B

Crecimiento enorme de las tablas de encaminamiento por “el cen-


tro” de Internet

Solución (mientras que se pasa a IPv6): CIDR (Classless Inter Do-


main Routing): Encaminamiento sin clases.

2004
c GSyC Redes: IP: Internet Protocol

Encaminamiento (cont.) 139

Con CIDR:

No se tiene en cuenta la “clase” de las direcciones

Nueva forma de indicar direcciones y máscaras mediante prefijos:


193.147.71.0/25
indicando que los 25 primeros bits son los significativos en la
dirección anterior (entra el primer bit del último byte).

Las direcciones pasan a comprarse de esta manera.

Las tablas de encaminamiento se construyen y consultan de esta


manera.

2004
c GSyC Redes: IP: Internet Protocol
ARP (Address Resolution Protocol) 140

ARP (Address Resolution Protocol)


El protocolo de resolución de direcciones ARP proporciona una forma
de pasar de una dirección IP a una dirección Ethernet.
Cuando el nivel IP va a enviar un datagrama con una cierta dirección
IP de destino:
Si la dirección de destino es de la misma subred, esa máquina
es directamente a quien hay que enviar la trama Ethernet que
contenga el datagrama.
Si no, la tabla de encaminamiento da la dirección IP del siguiente
salto, que es el encaminador a quien hay que enviar la trama
Ethernet que contenga el datagrama.
En cualquiera de los dos casos, sólo se conoce la dirección IP de una
máquina adyacente a la que pasar el datagrama, pero para formar la
trama Ethernet se necesita conocer la dirección Ethernet de destino.

2004
c GSyC Redes: IP: Internet Protocol

ARP (Address Resolution Protocol) (cont.) 141

Para conocer la dirección Ethernet de una máquina de la misma


subred, dada su dirección IP, una máquina hace lo siguiente:

1. Envı́a una trama Ethernet de broadcast consistente en una soli-


citud ARP, conteniendo la dirección IP en cuestión.
2. Aquella máquina que reciba una solicitud ARP preguntando por
su propia dirección IP, contesta con una trama Ethernet dirigida a
quien hizo la pregunta, conteniendo una respuesta ARP indican-
do la dirección Ethernet pedida.

Cada máquina mantiene una cache de correspondencias direcciones


IP a direcciones Ethernet:
se guarda los resultados de las solicitudes que hace
aprende de todas las solicitudes de otras (aprovechando que las
solicitudes son broadcast.

2004
c GSyC Redes: IP: Internet Protocol
ARP (Address Resolution Protocol) (cont.) 142

Formato del paquete de solicitud/respuesta de ARP:


ARP puede usarse en combinación con otros protocolos de nivel
de red (no sólo IP), por lo que el formato varı́a.
Formato para usar ARP con IP:
Solicitud/Respuesta Eth. Or. IP Or. Eth. Dest. IP Dest.
No hay que olvidar que el paquete de ARP viaja dentro de una
trama Ethernet (si es ése el nivel de enlace).
En una solicitud, los campos ((origen)) llevan los datos de la máqui-
na que pregunta, y de los campos ((destino)) sólo va relleno “IP
Dest.”, ya que “Eth. Dest.” es justo lo que se pregunta
Al formar la respuesta, la máquina interrogada cambia los dos
campos ((origen)) por los ((destino)), rellenando el que falta (que
es su dirección Ethernet pedida).

2004
c GSyC Redes: IP: Internet Protocol

ARP (Address Resolution Protocol) (cont.) 143

ARP gratuito: Una máquina puede enviar una solicitud ARP pre-
guntando sobre su propia dirección IP. Propósitos:
• detectar direcciones IP duplicadas
• forzar a que todos actualicen la entrada de la cache corres-
pondiente

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.

2004
c GSyC Redes: IP: Internet Protocol
RARP (Reverse Address Resolution Protocol) 144

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 tar-
jeta Ethernet en la que está grabada su dirección Ethernet.
Mecanismo de RARP:

1. La máquina envı́a un broadcast de una solicitud RARP, indicando


su dirección Ethernet.

2. Alguna máquina de la subred le enviará una respuesta RARP


indicándole cuál es su dirección IP.

2004
c GSyC Redes: IP: Internet Protocol

RARP (Reverse Address Resolution Protocol) (cont.) 145

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


dor de RARP, manteniendo una tabla de correspondencias de direc-
ciones Ethernet a direcciones IP para todos los nodos de la subred.
Si, por razones de protección frente a fallos, se colocan varios servi-
dores de RARP en la misma subred, el protocolo establece que se
tomará sólo la primera respuesta RARP recibida por la máquina que
lanzo la solicitud RARP.
Alternativas a RARP: BOOTP (similar) y DHCP (más complejo).

2004
c GSyC Redes: IP: Internet Protocol
ICMP (Internet Control Message Protocol) 146

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

2004
c GSyC Redes: IP: Internet Protocol

ICMP (Internet Control Message Protocol) (cont.) 147

Ejemplos de mensajes ICMP:


tipo código descripción
0 0 respuesta de eco
3 0 destino inalcanzable: red inalcanzable
3 1 destino inalcanzable: máquina inalcanzable
3 3 destino inalcanzable: puerto inalcanzable
8 0 solicitud de eco
11 0 tiempo excedido: TTL = 0
12 1 cabecera IP mal: falta una opción
13 0 solicitud de marca de tiempo
14 0 respuesta de marca de tiempo

2004
c GSyC Redes: IP: Internet Protocol
NAT (Network Address Translation) 148

NAT (Network Address Translation)

Existen unos rangos de direcciones IP privadas, reservadas para


ámbito local, y que no son utilizables globalmente en Internet:
• 10.0.0.0–10.255.255.255
• 172.16.0.0–172.31.255.255
• 192.168.0.0–192.168.255.255

Para paliar la escasez de direcciones, una organización puede


usar direcciones privadas internamente, y tener una sola direc-
ción IP global (pública) en la máquina que da salida a Internet.
Esta máquina utiliza NAT para que los datagramas puedan en-
trar/salir de/a las máquinas internas. Muy resumidamente lo que
hace es cambiar las direcciones IP privadas de los datagramas
por la suya pública.

2004
c GSyC Redes: IP: Internet Protocol

Congestión en Internet 149

Congestión en Internet

El nivel de red (IP) ofrece un servicio basado en datagramas.


La principal fuente de pérdidas de paquetes en Internet se debe a la
congestión de encaminadores, que actúan descartando paquetes.
IP no toma ninguna medida para prevenir o disminuir la congestión:
será labor de protocolos de niveles superiores, en su caso.

2004
c GSyC Redes: IP: Internet Protocol
Congestión en Internet (cont.) 150

UDP:
User Datagram Protocol

2004
c GSyC Redes: UDP: User Datagram Protocol

Introducción 151

Introducción

UDP es un protocolo sencillo que implementa un nivel de transporte


orientado a datagramas:
NO orientado a conexión.
NO fiable.
Los datagramas UDP se encapsulan dentro de la parte de datos de
un datagrama IP.
Una aplicación que utilice UDP para transmitir datos, producirá exac-
tamente 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á.

2004
c GSyC Redes: UDP: User Datagram Protocol
Datagramas UDP 152

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.

2004
c GSyC Redes: UDP: User Datagram Protocol

Datagramas UDP (cont.) 153

Checksum

El checksum es sobre cabecera y datos. Es un campo opcional, aun-


que se recomienda que siempre se utilice.
Se calcula sobre el datagrama UDP más una pseudo-cabecera que
se coloca delante:
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)

byte de relleno (ceros)

2004
c GSyC Redes: UDP: User Datagram Protocol
Puertos 154

Puertos

En una máquina multiproceso, el nivel de transporte debe preocu-


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

2004
c GSyC Redes: UDP: User Datagram Protocol

Puertos (cont.) 155

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.

2004
c GSyC Redes: UDP: User Datagram Protocol
Puertos (cont.) 156

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


dos y asignados universalmente a aplicaciones de red conocidas.
En una máquina Unix está asignación está en 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

2004
c GSyC Redes: UDP: User Datagram Protocol

Puertos (cont.) 157

Ası́, por ejemplo, un servidor de WWW es un proceso esperando pe-


ticiones en el puerto 80 de una máquina. Un navegador desde otra
máquina hará peticiones al puerto 80 del servidor, y escuchará las
respuestas en un puerto suyo no privilegiado.
En vez de tener un servidor escuchando en cada puerto, un sólo pro-
ceso (inetd) escucha en varios, y se encarga de arrancar el proceso
adecuado según el puerto concreto por el que llegó la petición.
Ambos mecanismos conviven: inetd escucha en varios puertos, y
en otros (los más frecuentemente utilizados) lo hace directamente el
proceso involucrado.

2004
c GSyC Redes: UDP: User Datagram Protocol
Servicio dado por UDP 158

Servicio dado por UDP

El servicio ofrecido por UDP sólo aumenta el ofrecido por IP en:


números de puerto
un checksum optativo
Por ello el servicio ofrecido es NO fiable, presentando problemas que
las aplicaciones pueden querer resolver.
pueden perderse datagramas
pueden duplicarse datagramas
pueden desordenarse datagramas
Pero es un protocolo muchı́simo más ligero que TCP, y en una red
local (hay CRC y no hay encaminadores) puede compensar.

2004
c GSyC Redes: UDP: User Datagram Protocol

Servicio dado por UDP (cont.) 159

TCP: Transmission Control


Protocol

2004
c GSyC Redes: TCP: Transmission Control Protocol
Introducción 160

Introducción

TCP (Transmission Control Protocol):

Protocolo de Transporte.

Ofrece un servicio orientado a conexión y fiable.

Unidad de datos: Segmento.

Se encapsula dentro de IP.

Ofrece servicio de puertos (como UDP).

2004
c GSyC Redes: TCP: Transmission Control Protocol

Servicio Orientado a Conexión 161

Servicio Orientado a Conexión

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


• establecimiento de la conexión
• intercambio de datos
• liberación de la conexión.

Peculiaridad: Ambos extremos pueden transmitir y recibir datos


simultáneamente.

Los datos de la aplicación son troceados en segmentos del ta-


maño que TCP considera adecuado (¡diferente a UDP!).

2004
c GSyC Redes: TCP: Transmission Control Protocol
Servicio Fiable 162

Servicio Fiable

Éste es el primer nivel en el que se proporciona fiabilidad.


Objeto: Recuperarse de pérdidas y desorden producido por IP.
Idea básica:
• Los segmentos con datos llevan un número de secuencia.
• El receptor de los datos debe mandar asentimientos (ACKs).
• Para cada segmento con datos transmitido se espera un plazo
de tiempo a que llegue su asentimiento. Si vence el plazo, se
retransmite el segmento.
• Para asentimientos y retransmisiones se utiliza un protocolo
de ventana.
• El receptor reordena segmentos y descarta los duplicados.

2004
c GSyC Redes: TCP: Transmission Control Protocol

Segmentos TCP 163

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)

2004
c GSyC Redes: TCP: Transmission Control Protocol
Segmentos TCP (cont.) 164

Puertos: TCP los asocia con la aplicación origen y destino del


segmento (como UDP).

Longitud cabecera: Tamaño de la cabecera en palabras de 32


bits. Lo normal es 5 (20 bytes).

Checksum: Sobre pseudo-cabecera, cabecera y datos, calculado


como en UDP. Si no se pasa la comprobación, se descarta el
datagrama.

2004
c GSyC Redes: TCP: Transmission Control Protocol

Números de secuencia 165

Números de secuencia

Cada segmento con datos lleva un número de secuencia

El número de secuencia numera bytes, y NO segmentos: iden-


tifica el número de orden del primer byte de datos que lleva el
segmento.

Al establecerse una conexión se elige un número de secuencia


inicial para que no se confundan segmentos aún en tránsito pro-
cedentes de conexiones diferentes.

2004
c GSyC Redes: TCP: Transmission Control Protocol
Números de asentimiento 166

Números de asentimiento

El receptor de segmentos de datos tiene que asentir los que le


llegan correctamente.

NO es necesario enviar un asentimiento para cada segmento con


datos que se recibe. Se puede esperar a asentir varios segmen-
tos de una sola vez.

El número de asentimiento indica el número de secuencia del


próximo byte que se espera recibir, asintiéndose de esta manera
hasta el byte anterior incluido.

No hay rechazo selectivo: No hay forma en que el receptor le


diga al emisor que tiene los bytes del 300 al 700 excepto el trozo
400-500.

2004
c GSyC Redes: TCP: Transmission Control Protocol

Números de asentimiento (cont.) 167

Cada segmento tiene un campo para el número de asentimiento:


siempre que se manda un segmento se aprovecha para asentir
los datos que esté enviando el otro extremo:
• Si el lado que envı́a un asentimiento tiene datos que enviar
al otro lado, puede aprovechar un segmento para las dos co-
sas: envı́a el asentimiento ((arrecucas)) de los datos (piggy-
backing).
• Si el lado que envı́a un asentimiento no tienen datos que en-
viar al otro lado, envı́a un segmento sólo con la cabecera, sin
datos.

Importante: Cada lado de la conexión utiliza sus números de se-


cuencia (partiendo de su número de secuencia inicial) y asiente
los que está usando el otro extremo.

2004
c GSyC Redes: TCP: Transmission Control Protocol
Números de asentimiento (cont.) 168

Ventana Deslizante

Se usa un protocolo de ventana para coordinar el envı́o de seg-


mentos y asentimientos.
El receptor indica en el campo de tamaño de ventana el número
de bytes (a partir del indicado en el número de asentimiento) que
está dispuesto a recibir del emisor.
El emisor puede transmitir esos bytes aunque no reciba asenti-
mientos, pero una vez transmitidos tendrá que parar hasta que
sepa más del receptor.
Según el receptor va recibiendo datos, puede ir asintiendo y des-
lizando la ventana para aceptar más.
Como ambos extremos pueden enviar datos, hay dos ventanas
diferentes, una para cada sentido.

2004
c GSyC Redes: TCP: Transmission Control Protocol

Números de asentimiento (cont.) 169

Ejemplo:
• El emisor recibe un segmento con:
◦ Número de asentimiento: 5
◦ Tamaño de ventana: 8.
• El emisor ha transmitido los bytes hasta el 9 (incluido), sin
recibir nada del receptor.
• En ese momento la situación es la siguiente:
ventana

1 2 3 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 es variable dinámicamente (pero de-


berı́an mantenerse las ((antiguas promesas))).
El tamaño de la ventana permite también hacer control de flujo
extremo a extremo.

2004
c GSyC Redes: TCP: Transmission Control Protocol
Establecimiento de conexión 170

Establecimiento de conexión
A B

segmento con bit SYN


núm.secuencia = x

segmento con bit SYN


núm.secuencia = y
núm.asentimiento = x+1

segmento
núm.asentimiento = y+1

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


dos sentidos de transmisión (((triple apretón de manos)), three-way handsha-
ke).

2004
c GSyC Redes: TCP: Transmission Control Protocol

Liberación de conexión 171

Liberación de conexión
A B

segmento con bit FIN

segmento con asentimiento del FIN

segmento con bit FIN

segmento con asentimiento del FIN

Como la conexión permite la transmisión bidireccional de datos (full duplex),


es necesario “cerrar” cada sentido de la transmisión (por separado).

2004
c GSyC Redes: TCP: Transmission Control Protocol
Liberación de conexión (cont.) 172

Plazos para asentimiento

Cuando se envı́a un segmento, se arranca un temporizador para es-


perar su asentimiento. Problema: ¿Qué plazo le ponemos?
Se utiliza un algoritmo adaptativo para optimizar lo más posible la
transmisión de datos.
Para cada segmento se calcula el tiempo de ronda (round-trip time,
RTT): tiempo entre que se envı́a el segmento y se recibe el asenti-
miento. Se va tomando su media en el tiempo.
Normalmente se elige un plazo de dos veces el tiempo de ronda me-
dio, teniendo cuidado con la varianza.

2004
c GSyC Redes: TCP: Transmission Control Protocol

Liberación de conexión (cont.) 173

Entrega de datos a la aplicación

Cuando llega un segmento con la bandera PSH activada se está in-


dicando al receptor que pase esos datos a la aplicación.
No sólo se pasa ese segmento, sino también todos los datos asenti-
dos que el receptor tuviera pendientes de entregar a la aplicación.

2004
c GSyC Redes: TCP: Transmission Control Protocol
174

Redes: TCP: Transmission Control Protocol

175

Redes: TCP: Transmission Control Protocol


$#:$9
JF
 8
&
#; T
#;
! $#; 8=$<B U!3<
:$#

@ !B
/C$< "&>$#;
 $!;A 3# G&;
 $!A  
:K9G&
 T 
M@
 6S4
3RQ &">3#F
 JF
 %$!;A
8@

M@8 P&;MO
 

;@ 8 N
8B3
Pueden enviarse datos denominados urgentes (o ((fuera de banda))),
que el receptor debe pasar inmediatamente a la aplicación, lo antes

Se indican mediante el empleo de la bandera URG: Cuando está le-


vantada, el campo puntero a datos urgentes apunta al último byte de

No está especificado dónde empiezan los datos urgentes. Se deja a

J
B $!;
A
M@
$#;     $$#;
 L
 %$!A  
# !

 K
 

!B


'   $:$#JF$#:$9 8I$;   H?>$#
=<# 4
C $# &GF
    3!AE 
 @

 D



@;   $$#
 
C
@3#B"
=
< $!:A$#8     654
HR
N8;> W3<:K9V&
</B3<
B Q &"%>$#;
 8F
 %$!; A
8@

M@8 P&;
 :O$#8
%B

@3#!"; ?"%>$#
= < 8

  $:$#8;$#:$9
87 654
"R8 P&;O \ #3 &;9 P&3#8
; B 8
N  6]4
 W3<
+\ 5 * 2X  [5 2 Z* XY  

 /





 
 
 
* /2 

 /
   &"$#%"!
 




Ejemplo de conexión
  
 

Liberación de conexión (cont.)



.

 
 
* 2  
 

Ejemplo de conexión
  &"3#"!
 


.
Datos urgentes

  
 



.

 
 
  
 

 
 

 



 
  



   "&%$#"!
 
Ejemplo: Envı́o de un CTRL-C.

datos urgentes del segmento.   


 
   
 

 




 
   

 



 
  



'   "&%$#"!
 
  
 

 
 

 



 
  



   "&%$#"!
 
  
 

 
 

 



 
  



   "&%$#"!
 

la aplicación.


 /




 
 
 

posible.
  ,-+*) 
  





  
   &"$#%"!
 
$(

+*)  
 

GSyC

GSyC
  "&%$#"!
 
$(



2004

2004
c

c
1 0
Ejemplo de conexión (cont.) 176

DNS: Domain Name System

2004
c GSyC Redes: DNS: Domain Name System

¿Por qué necesitamos el DNS? 177

¿Por qué necesitamos el DNS?

Los humanos preferimos nombres a direcciones IP


(ej: cacharro.escet.urjc.es frente a 212.128.1.44)

Los números IP están ligados a la estructura de la red, pero


eso no tiene por qué reflejarse en el nombrado de máquinas (ej:
www.debian.org, www.de.debian.org.

Los números IP están ligados a máquinas concretas, puede ser


conveniente un nivel de abstracción no ligado a máquinas (ej:
www.urjc.es puede cambiar de máquina, y de IP, pero no de nom-
bre).

Es necesario establecer una correspondencia entre nombres y direc-


ciones IP.

2004
c GSyC Redes: DNS: Domain Name System
Un poco de historia 178

Un poco de historia

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


mación de todas las máquinas de ARPANET.

Se obtenı́a periódicamente por FTP. Gestión completamente ma-


nual.

Con el crecimiento de ARPANET se hizo inmanejable.

1984, Paul Mockapetris: primeras RFC que describen el Domain


Name System.

Especificaciones actuales: RFC 1034 y 1035.

2004
c GSyC Redes: DNS: Domain Name System

Estructura de nombrado 179

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

2004
c GSyC Redes: DNS: Domain Name System
Estructura de nombrado (cont.) 180

Árbol de dominios

com edu gov mil org net es uk ...

sun mit acm ieee urjc


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

Estructura de nombrado (cont.) 181

Dominios directo e inverso

Dominio directo: proporciona para cada nombre una dirección IP.

Dominio inverso: proporciona para cada dirección IP un nombre.


• El dominio inverso también se conoce como dominio in-addr.arpa.
• Los elementos del dominio inverso son las direcciones de red
construidas invirtiendo los números que la componen, y ter-
minando en in-addr.arpa
• Ejemplo: La red 138.117.0.0 es el dominio inverso 117.138.in-
addr.arpa

2004
c GSyC Redes: DNS: Domain Name System
Estructura de gestión 182

Estructura de gestión

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


(incluyendo su posible subdivisión sucesiva).

Si el gestor del dominio es delega un subdominio urjc, el respon-


sable de urjc manejará la correspondencia de nombres y direc-
ciones de todas las máquinas de su dominio.

Si el responsable de urjc lo cree conveniente, puede delegar un


subdominio escet, sin que por ello tenga que informar al gestor
de es.

Hay dominios (ejemplo: com, org) gestionados por varios “registrars”


en régimen de competencia.

2004
c GSyC Redes: DNS: Domain Name System

Consulta de una dirección para un nombre 183

Consulta de una dirección para un nombre

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


(resolver), con llamadas como gethostbyname().
La consulta normalmente sigue los pasos siguientes (en una máquina
Unix):

Consulta en un fichero (/etc/hosts).

Consulta en un servidor de DNS (su dirección IP está en


/etc/resolv.conf).

2004
c GSyC Redes: DNS: Domain Name System
Esquema de funcionamiento del DNS 184

Esquema de funcionamiento del DNS

Se trata de mantener la información como una base de datos distri-


buida. Las consultas al DNS se realizan en modo cliente-servidor:

Cuando una aplicación (cliente) quiere “resolver” un nombre (que


no aparece en el fichero local), pregunta a un servidor de DNS

El servidor investiga por su cuenta y devuelve la dirección IP pe-


dida.

2004
c GSyC Redes: DNS: Domain Name System

Esquema de funcionamiento del DNS (cont.) 185

Consulta a un servidor

telnet gsyc.escet.urjc.es








Servidor DNS
  

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

telnet resolver
UDP(212.128.1.45)

212.128.1.45

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

Funcionamiento básico (sin caches)

Cuando un servidor recibe una consulta para resolver un nombre


(ejemplo: nic.funet.fi):
1. Comprueba si el nombre pertenece a alguno de los dominios que
sirve (si es que sirve alguno). Si lo encuentra busca en su “mapa”
y devuelve la dirección IP correspondiente.
2. En caso contrario pregunta a un servidor del dominio raı́z, que le
contestará con la dirección IP de un servidor del dominio “fi”.
3. Luego regunta a ese, obteniendo la dirección IP de un servidor
de “funet.fi”.
4. Ahora se pregunta a este último, que ya tiene en sus mapas la
dirección IP pedida.
(Cada servidor puede servir uno o varios dominios, o ninguno)

2004
c GSyC Redes: DNS: Domain Name System

Esquema de funcionamiento del DNS (cont.) 187

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

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

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

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.

2004
c GSyC Redes: DNS: Domain Name System

Tipos de servidores 189

Tipos de servidores

Según cómo son utilizados:

Reenviador (“forwarder”). Los servidores lo usan antes de con-


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

2004
c GSyC Redes: DNS: Domain Name System
Tipos de servidores (cont.) 190

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.

2004
c GSyC Redes: DNS: Domain Name System

Mapas de dominio 191

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.

2004
c GSyC Redes: DNS: Domain Name System
Mapas de dominio (cont.) 192

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.

2004
c GSyC Redes: DNS: Domain Name System

Mapas de dominio (cont.) 193

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

2004
c GSyC Redes: DNS: Domain Name System
Formato de menaje DNS 194

Formato de menaje DNS

Paquetes iguales para consultas y respuestas.


Cabecera fija de 12 bytes:
Identificación (2 bytes). Correspondencia consultas-respuestas.
Banderas (2 bytes). Consulta/respuesta, truncamiento, tipo de
petición (directa, inversa, estado), respuesta con autoridad, pe-
tició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).

2004
c GSyC Redes: DNS: Domain Name System

Formato de menaje DNS (cont.) 195

Datos, tamaño variable:

Consultas.

Respuestas.

Autoridad.

Más información.

2004
c GSyC Redes: DNS: Domain Name System
Formato de menaje DNS (cont.) 196

Consulta

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

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


cadena, hasta 63 bytes), terminada por la etiqueta “root” (byte de
tamaño a 0).

Tipo de consulta (2 bytes). A, NS, PTR, etc.

Clase de consulta (2 bytes). Normalmente IN.

2004
c GSyC Redes: DNS: Domain Name System

Formato de menaje DNS (cont.) 197

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

2004
c GSyC Redes: DNS: Domain Name System
¿UDP o TCP? 198

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


sulta.

Si la respuesta UDP es de más de 512 bytes (truncada), el resol-


ver al repite usando TCP.

Las transferencias de zona de primario a secundario usan TCP.

2004
c GSyC Redes: DNS: Domain Name System

Referencias 199

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/

2004
c GSyC Redes: DNS: Domain Name System
Referencias (cont.) 200

HTTP

2004
c GSyC Redes: HTTP

¿Qué es HTTP? 201

¿Qué es HTTP?

Hypertext Transfer Protocol.

Es el protocolo más habitual para servir páginas web.

Protocolo cliente-servidor.

Normalmente funciona sobre TCP, con el servidor (normalmente)


en el puerto 80.

No olvidar que HTTP puede servir tanto contenido estático (fi-


cheros) como dinámico (el resultado de ejecutar programas en el
servidor).

2004
c GSyC Redes: HTTP
Interacción cliente-servidor en HTTP 202

Interacción cliente-servidor en HTTP

El cliente abre una conexión TCP con el servidor.

El cliente envı́a un mensaje de petición.

El servidor responde con un mensaje de respuesta.

El servidor cierra la conexión TCP.

HTTP no mantiene estado (no hay información sobre las conexiones


entre una petición y otra).

2004
c GSyC Redes: HTTP

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

Formato de los mensajes

Mensajes “legibles” (compuestos por lı́neas de texto “casi en inglés”):

Lı́nea inicial (diferente para petición y respuesta), terminada en


CRLF.

Cero o más lı́neas de cabecera, cada una terminada en CRLF:


Cabecera-X: Valor-X CRLF

Lı́nea en blanco (CRLF).

Cuerpo del mensaje (opcional).

Además de CRLF, deberı́an tratarse adecuadamente lı́neas termina-


das en LF.

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

Lı́nea inicial (peticiones)

Especifica el recurso que se solicita, y qué se quiere de él:

Nombre de método (GET, POST, HEAD).

Camino de acceso (path)

Versión de HTTP (siempre HTTP/x.x).

Ejemplo:

GET /directorio/otro/fichero.html HTTP/1.0

2004
c GSyC Redes: HTTP

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

Lı́nea inicial (respuestas)


Proporciona información de estado:
Versión de HTTP (siempre HTTP/x.x).
Código numérico de estado.
Código de estado “en inglés”.
Códigos de estado:
1xx: Mensaje informativo.
2xx: Resultado exitoso (200 OK).
3xx: Redirección del cliente a otra URL (301 Moved permanently,
303 See Other).
4xx: Error en el lado del cliente (404 Not Found).
5xx: Error en el lado del servidor (500 Server Error).

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

Lı́neas de cabecera

Mismo formato que las cabeceras de correo y News (RFC 822,


sección 3).
HTTP/1.0: 16 cabeceras, ninguna obligatoria.
HTTP/1.1: 46 cabeceras, “Host:” obligatoria en las peticiones (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).

2004
c GSyC Redes: HTTP

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

Cuerpo del mensaje

En las respuestas contiene el recurso pedido o texto explicando


un error.

En las peticiones contiene datos de usuario o ficheros para subir.

Si hay cuerpo, normalmente hay algunas cabeceras relativas a


él:
• “Content-Type”: tipo MIME de los datos (ej: text/html, image/png).
• “Content-Length”: número de bytes en el cuerpo.

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

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

2004
c GSyC Redes: HTTP

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

Ejemplo (GET, respuesta)

HTTP/1.1 200 OK\r\n


Date: Tue, 23 Jan 2001 12:44:27 GMT\r\n
Server: Apache/1.3.9 (Unix) Debian/GNU\r\n
Last-Modified: Tue, 23 Jan 2001 12:39:45 GMT\r\n
ETag: "19e89f-22-3a6d7b91"\r\n
Accept-Ranges: bytes\r\n
Content-Length: 34\r\n
Keep-Alive: timeout=15, max=100\r\n
Connection: Keep-Alive\r\n
Content-Type: text/html\r\n
\r\n
<html>\nEsto es una prueba\n</html> >.

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

Métodos HEAD y POST

HEAD:

Igual que un GET, pero sólo pide las cabeceras.

Se pueden consultar las caracterı́sticas sin bajarse el fichero.

POST:

Hay datos en el cuerpo (que se “suben” al servidor).

El URI “pedido” es normalmente el programa que trata los datos


enviados.

También se pueden enviar datos con un GET (codificándolos en


el URL pedido).

2004
c GSyC Redes: HTTP

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

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

2004
c GSyC Redes: HTTP
Representante (proxy) HTTP 212

Representante (proxy) HTTP

Intermediario entre un cliente y un servidor.

Es por lo tanto a la vez cliente y servidor.

Usos: cortafuegos, caches, etc.

Las peticiones a una proxy incluyen la URL completa en la prime-


ra 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

2004
c GSyC Redes: HTTP

HTTP 1.1 213

HTTP 1.1

Es una evolución de HTTP 1.0.

Facilidades especı́ficas para máquinas virtuales (virtual hosts).

Codificación por racimos, para respuestas dinámicas (envı́o an-


tes de saber el tamaño total).

Uso de conexiones persistentes que permiten varias transaccio-


nes sucesivas (se evitan establecimientos de conexión).

Facilidades especı́ficas para caches (“If-Modified-Since”, “If-Unmodified-


Since”).

2004
c GSyC Redes: HTTP
HTTP 1.1 (cont.) 214

Virtual hosts

Para tener virtual hosts es preciso indicar en cada petición a cuál


de ellos se dirige.
Por eso es obligatorio el uso de la cabecera “Host”.
Si un servidor recibe una petición sin “Host”, debe devolver un
mensaje de error (400 Bad Request).
Los servidores también han de aceptar primeras lı́neas de peti-
ció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

2004
c GSyC Redes: HTTP

HTTP 1.1 (cont.) 215

Codificación por racimos

Cabecera “Transfer-Encoding: chunked”.

Usada por un servidor que quiere enviar trozos que ya tiene listos
antes de tener todo.

El cuerpo de cada mensaje “por racimos” contiene una serie de


racimos, cada uno:
• Comienza por el tamaño de los datos del racimo, en hexade-
cimal, 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).

2004
c GSyC Redes: HTTP
HTTP 1.1 (cont.) 216

Codificación por racimos

HTTP/1.1 200 OK\r\n


Date: Fri, 27 Jan 2001 23:00:00 GMT\r\n
Content-Type: text/plain\r\n
Transfer-Encoding: chunked\r\n
\r\n
1b; datos que se pueden ignorar\r\n
abcdefghijklmnopqrstuvwxyz\r\n
10\r\n
1234567890abcdefg\r\n
0\r\n
a-footer: su-valor\r\n
another-footer: otro-valor\r\n
\r\n

2004
c GSyC Redes: HTTP

HTTP 1.1 (cont.) 217

Conexiones persistentes

Permiten que varias peticiones y respuestas sean transferidas


usando la misma conexión TCP.

Se usan por omisión en HTTP 1.1.

Si se envı́a la cabecera “Connection: close”, el servidor cerrará la


conexión después de cada respuesta.

Un servidor puede cerrar la conexión antes de enviar todas las


respuestas.

El servidor cerrará las conexiones inactivas pasado un plazo (ej:


10 segundos).

2004
c GSyC Redes: HTTP
HTTP 1.1 (cont.) 218

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

2004
c GSyC Redes: HTTP

HTTPS 219

HTTPS

HTTP sobre SSL (secure socket layer).

La conexión TCP está cifrada, de forma que una tercera parte no


puede conocer su contenido.

Permite enviar datos “sensibles” a un servidor web, y recibirlos


de él.

Necesita de otros mecanismos (certificados, etc.) para ofrecer un


nivel de seguridad razonable.

Las URLs son “https://”.

2004
c GSyC Redes: HTTP
Galletitas (cookies) 220

Galletitas (cookies)

Sirven para asociar estado a un conjunto de transacciones (peti-


ciones/respuesta).

Normalmente son datos asociados a un usuario (carro de la com-


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

2004
c GSyC Redes: HTTP

Galletitas (cookies) (cont.) 221

Cabecera “Set-Cookie”
Cabecera puesta por un servidor cuando quiere enviar una galle-
tita.
Formato:
• “Set-Cookie:”
• Nombre de la galletita y valor (“nombre=valor”).
• Fecha de caducidad (“expires=fecha”).
• Dominio, camino (“domain=dominio path=camino”). Para de-
cidir más tarde si se envı́a una galletita o no.
• “secure”: si está marcada ası́, sólo se transmitirá sobre cana-
les seguros (HTTPS).
Ejemplo:
Set-Cookie: unnombre=unvalor; expires=Mon, 30-Jan-2001 12:35:23 GMT;
path=/dir; domain=mi.dominio.com; secure

2004
c GSyC Redes: HTTP
Galletitas (cookies) (cont.) 222

Cabecera “Cookie”

Cuando un cliente pide una URL, buscará en su lista de galletitas


si hay alguna que tenga que enviar (mirando su “domain” por la
cola, y su “path” por su cabeza).

Enviará todas las galletitas en una única cabecera (“Cookie”).

Dentro de esta cabecera, las galletitas se ordenarán de más a


menos especı́ficas (según su “path”).

No se consideran las galletitas con caducidad en el pasado (de


hecho, se eliminan).

Ejemplo:

Cookie: unnombre=unvalor; otronombre=otrovalor

2004
c GSyC Redes: HTTP

Referencias 223

Referencias

“Definition of URL/URI syntax, RFC 2396”.


http://www.cis.ohio-state.edu/htbin/rfc/rfc2396.html

“HTTP Made Really Easy. A Practical Guide to Writing Clients and


Servers”, por James Marshall.
http://www.jmarshall.com/easy/http/

“HTTP 1.0, RFC 1945”.


http://www.cis.ohio-state.edu/htbin/rfc/rfc1945.html

“HTTP 1.1, RFC 2068”.


http://www.cis.ohio-state.edu/htbin/rfc/rfc2068.html

2004
c GSyC Redes: HTTP
Referencias 224

Referencias

“An Overview of SHTTP”, por Adam Shostack.


hturlhttp://www.homeport.org/ adam/shttp.html

“Persistent Client State. HTTP Cookies”, Netscape.


http://www.netscape.com/newsref/std/cookie_spec.html

“HTTP State Management Mechanism, RFC 2109”.


http://www.cis.ohio-state.edu/htbin/rfc/rfc2109.html

2004
c GSyC Redes: HTTP

Referencias (cont.) 225

Correo electrónico

2004
c GSyC Redes: Correo electrónico
Algo de terminologı́a 226

Algo de terminologı́a

Agente de usuario (UA, user agent): programa que se usa co-


mo 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 men-
sajes de correo hasta su destino final.
Protocolo de acceso al correo electrónico: lo usa un UA para ac-
ceder 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 en-
viar correo a otro MTA (también puede usarlo un UA para enviarlo
a un MTA). Ejemplo: SMTP.

2004
c GSyC Redes: Correo electrónico

Generalidades 227

Generalidades

Composición de un mensaje

Todo mensaje consta de 2 partes:

Sobre: Cabeceras estandarizadas para identificar el/los destina-


tarios/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 )

2004
c GSyC Redes: Correo electrónico
Generalidades (cont.) 228

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

2004
c GSyC Redes: Correo electrónico

Generalidades (cont.) 229

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

2004
c GSyC Redes: Correo electrónico
MIME 230

MIME
Las RFC 2045 – 2049 extienden el contenido de los mensajes
de correo para que puedan adjuntarse datos genéricos (attach-
ments).
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, Mo-
del y Multipart.
varios subtipos: Text: html, plain o richtext; Image: gif, jpeg; . . .

2004
c GSyC Redes: Correo electrónico

MIME (cont.) 231

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

2004
c GSyC Redes: Correo electrónico
El protocolo SMTP 232

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

2004
c GSyC Redes: Correo electrónico

El protocolo SMTP (cont.) 233

“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 ti-


meouts, por lo que la RFC 1425 define ESMTP (EHLO...)

2004
c GSyC Redes: Correo electrónico
El protocolo SMTP (cont.) 234

(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

2004
c GSyC Redes: Correo electrónico

Recepción de correo de un MTA 235

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


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

2004
c GSyC Redes: Correo electrónico
Referencias 236

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

2004
c GSyC Redes: Correo electrónico

Referencias (cont.) 237

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”

2004
c GSyC Redes: Correo electrónico