Sunteți pe pagina 1din 119

Redes

Grupo de Sistemas y Comunicaciones


gsyc-profes@gsyc.escet.urjc.es

Octubre 2003

Introducción a las
Redes de Ordenadores

2003
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

2003
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 comunicaciones


que permite el diálogo entre ellas.
Dos formas fundamentales de diseñar la subred de comunicaciones:
mediante canales punto-a-punto
mediante canales de radiado broadcast
Normalemente hay una mezcla de muchos canales de los dos tipos.

2003
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

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

2003
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

2003
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 trans-
ferencia se hace en cada máquina entre niveles adyacentes, a través
de las interfaces entre niveles: llamadas a procedimientos/funciones.

2003
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

2003
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 cabeceras)
pasar sus unidades de datos al nivel inferior, usando sus servicios
¿Es esto software o hardware?

2003
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 procesar
los datos adecuadamente (agrupando, separando, . . . )
pasar los datos al nivel superior
¿Es esto software o hardware?

2003
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

2003
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

2003
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

2003
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

      

          

      

          

      

          

2003
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 














     

2003
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

2003
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

2003
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 





 
















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


Las distintas arquitecturas de redes se diferencian en:
Número de niveles, y servicios de cada nivel
Protocolos de cada nivel

2003
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 aque-
llo de lo que cada nivel debe ocuparse.

2003
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

2003
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 reconocida
en recepción como un bit a 1.
La transmisión puede ser eléctrica, óptica, . . .
Aborda los problemas eléctricos, electrónicos, de establecimiento de
conexiones fı́sicas, . . .

2003
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 transmisión.
Además, puede
• descartar las tramas con errores, y/o
• corregir los errores de las tramas con errores, y/o
• pedir la retransmisión de las tramas con errores
Se ocupa de resolver los problemas de acceso a un medio de transmi-
sión compartido.

2003
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 conectadas


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

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


Gestiona las congestiones y cuellos de botella.
Puede incluir funciones de tarificación.
Puede proporcionar distintos tipos de servicio: Fiable, no fiable.

2003
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 diversos


procesos de la misma máquina que quieran usarla (gestiona puertos
en máquinas multiproceso).
Puede proporcionar distintos tipos de servicio: Fiable, no fiable.
Realiza comunicación extremo a extremo, no tiene en cuenta las
máquina intermedias.
Realiza control de flujo extremo a extremo (el receptor no es capaz
de recibir a la velocidad a la que transmite el emisor).

2003
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, gestión
de tokens.
Gestiona la sincronización entre máquinas.
Ejemplo: pizarra compartida.

2003
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 entre


máquinas:
Orden de bytes de enteros (little endian/big endian).
Representación de caracteres alfabéticos.
Tamaño de los tipos de datos.
Tı́picamente traduce los datos a un formato normalizado que todas las
máquinas entienden.
También se suele ocupar de la compresión y cifrado de datos.

2003
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 apli-


caciones que usan la red:

Para transmisión de ficheros


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

2003
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 datos

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


(fundamentalmente la denominación de los niveles)

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

2003
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

2003
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

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

Arquitectura TCP/IP (cont.) 33

Nivel Fı́sico

2003
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 con-
cuerden en la forma de usar el medio fı́sico, es decir, que un bit a 1
enviado no sea interpretado por el receptor como un bit a 0.

2003
c GSyC Redes: Nivel Fı́sico

Conceptos Generales 35

Conceptos Generales

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


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

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

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

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

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

2003
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 velo-
cidades de 1 Tbps en laboratorio y el lı́mite teórico está por los 50 Tbps.

2003
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 direccio-
nales especiales unos cuantos kilómetros.
• 11 Mbps - 54 Mbps
Redes por Satélite:
• Cuando no hay visón directa emisor–receptor: Satélites.
• Cada satélite tiene varios transpondedores (canales), ofreciendo cada
uno cientos de Mbps para transmisión de datos.
• Principal problema: retardo, tı́picamente 300 ms extremo a extremo
para satélites geosincrónicos. Pero si no hay retransmisiones, puede ser
mejor que cables.
GSM/GPRS

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

Transmisión Digital

Para medios capaces de transportar una señal digital directamente.


Ventaja: Menor tasa de errores (puede recrearse la señal original en
puntos intermedios)
Se transmite una señal cuadrada, en la que los distintos niveles de
tensión indican la transmisión de ceros o unos.
Hay varias formas de codificar los 0 y 1: Código unipolar, NRZ, Man-
chester, Manchester diferencial. . .

2003
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:

2003
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 acceso
al medio.
Los modems convierten una señal digital en su equivalente analógica
(modulan) y viceversa (demodulan).

MODEM MODEM

Transmision
´ Digital
Transmision
´ Analogica
´

2003
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:

(b)
Modulación ASK:

Modulación FSK: (c)

Modulación PSK: (d)

Phase changes

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

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

Nivel de Enlace

2003
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áquinas
adyacentes, encargándose de:
composición/descomposición de tramas.
control de flujo (opcional).
gestión de los errores en la transmisión (opcional).

2003
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 aprovechar
mejor el canal en LAN’s.
• Acceso por contienda: Las máquinas compiten por usar el medio.
Si coinciden dos o más a la vez: colisión
• Acceso por reserva: Las máquinas pueden hacer reservas para po-
der usar el canal en exclusiva durante un tiempo

2003
c GSyC Redes: Nivel de Enlace

Protocolo CSMA/CD 49

Protocolo CSMA/CD

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


ceso múltiple con detección de portadora.
Funcionamiento:
Cuando una estación quiere transmitir escucha en el canal.
Si está ocupado, espera a que quede libre
Si está libre, transmite.
Mientras transmite, sigue escuchando para ver si alguien transmite a
la vez, en cuyo caso aborta la transmisión

2003
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 trans-
miten a la vez, colisionando. Y ası́ indefinidamente.
Para evitarlo, en caso de colisión las estaciones esperan un tiempo aleatorio
antes de reintentar.

2003
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

2003
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 transmitir, por
lo que desaparecen las colisiones.
Supone que las estaciones de la red se configuran como un anillo fı́sico o
lógico.
Mecanismo:
Cuando el canal está libre, por él circula el testigo.
Cuando una estación quiere transmitir:
• captura el testigo
• envı́a su trama
• devuelve el testigo al anillo.

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

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

2003
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 principio
y/o al final de cada trama. Por ejemplo: 01111110.
Problema: ¿Y si en medio bits de datos aparece justo ese patrón especial?
Solución: Bits de relleno (bit stuffing ) — Si vienen 5 unos seguidos, el
emisor añade un 0 de “relleno”. El receptor, cada vez que recibe 5 unos,
descarta el 0 subsiguiente.

2003
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 capaz de


recoger.
Solución: Los protocolos incluyen reglas que permiten al transmisor saber
de forma implı́cita o explı́cita si puede enviar otra trama al receptor.
Ejemplo: Al establecer la conexión, el receptor indica que se le pueden
enviar hasta N tramas consecutivas, pero no más hasta que él lo indique
expresamente.

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


nicación entre cada par de máquinas adyacentes que participen en la
comunicación
Si se hace en el nivel de transporte, se corrigen los errores en las
máquinas origen y destino de la comunicación.

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

2003
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, esperando
que en algún momento el emisor la retransmita (ya veremos como).

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

2003
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 hasta 4).

2003
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 poder


detectar cuándo una trama ha llegado con errores, sin intentar corregirlos
pues la trama será reenviada.
Es más eficiente detectar que corregir errores: se necesitan menos bits de
redundancia, aunque aparece la necesidad de retransmitir.
La corrección de errores se utiliza fundamentalmente en casos en que es
imposible retransmitir. Ejemplo: Medios de transmisión simplex.

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

2003
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 opera-


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

2003
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

2003
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 tramas per-


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

2003
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, espe-
ra su asentimiento por parte del receptor antes de enviar la siguiente.
De envı́o continuo: El transmisor va enviando tramas sucesivamente,
y el receptor le va asintiendo por su cuenta. Requiere memoria infinita.
De ventanas: El transmisor puede enviar un número máximo de tramas
antes de recibir el primer asentimiento

2003
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

2003
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

2003
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 receptor si


los paquetes van identificados de alguna forma.

2003
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

2003
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

2003
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 identificar uno u
otro paquete.
Emisor Receptor Emisor Receptor

dato-1 (0)
dato-1 (0)

plazo ack (0)


ack (0)

dato-2 (1) dato-1 (0)

ack (1)

ack (0)
dato-3 (0)
dato-2 (1)

ack (0)

ack (1) Ya no hay duplicados ni pérdidas

2003
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

2003
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

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

2003
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

2003
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

2003
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

2003
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 trenzados,
no blindados, categorı́a 3 ó 5.
Conectores RJ-45.
Se usa un par para transmitir y otro para recibir (full duplex).
Un concentrador (hub) hace de bus. Lo que recibe por una boca, lo
retransmite por todas las demás. 10 Mbps entre todas las bocas.
A veces se usa un conmutador (switch): Reenvı́a sólo a la boca a la
que se conecta el destinatario. 10 Mbps por boca y sentido, varias
transmisiones a la vez.
Longitud máxima hasta el concentrador: 100 metros

2003
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 empieza
la trama.

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

2003
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 transmisio-
nes abortadas al detectar colisión. Por ello, si hay menos de 46 bytes
de datos, se utilizan estos bytes de relleno.
Retardo máx. de propagación en 2,5 km, 4 repetidores: 25.6 µs
Tiempo de Reacción: 25.6 x 2 = 51.2 µs
Bits transmitidos en 51.2 µs a 10 Mbps: 51,2 · 10−6 × 10 · 106 = 512
bits = 64 bytes.

2003
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 com-
prueba 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.

2003
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

2003
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

2003
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 transmisio-
nes mediante módem con PPP reciben el mismo trato.
Con ADSL el abonado continúa utilizando los primeros 4kHz para las llamadas
de voz, pero ahora ocupa más ancho de banda para la transmisión (simultánea)
de datos. En la centralita se trata al abonado de forma diferente, separando los
4kHz por un lado y transmitiendo los datos de forma independiente.
Es asimétrico: se reserva más para recibir (256Kbps–2Mbps) que para enviar
(128Kbps–300Kbps). Ambas bandas están separadas.
Se transmite por modulación multitono discreta (MDT).

ADSL es más bien un nivel fı́sico: como nivel de enlace puede utilizarse cualquier
de los usados en lı́neas punto a punto.

2003
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 diferentes


en propósito y funcionamiento:

repetidores (repeaters)
puentes (bridges)
encaminadores (routers)
concentradores (hubs)
conmutadores (switches)

2003
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

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

2003
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 ma-


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

2003
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

2003
c GSyC Redes: Nivel de Enlace

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

Conmutadores

Exteriormente muy parecidos a los concentradores, pero de compor-


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

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

Nivel de Red

2003
c GSyC Redes: Nivel de Red

Introducción 95

Introducción

El nivel de red se ocupa de que los paquetes que salen del transmisor
lleguen a su destino final, aunque el emisor y el receptor no estén “adya-
centes” (conectados directamente al mismo medio de transmisión).
Esto normalmente requiere pasar a través de nodos intermedios: encami-
nadores (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”.

2003
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, in-
dependientes 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.

2003
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

2003
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 compone una
unidad de datos (paquete) con ellos y se envı́a. No hay relación con
transmisiones previas o futuras al mismo destino
Servicio Orientado a Conexión
Antes de enviar el primer byte de datos, origen y destino mantienen un
diálogo inicial para establecer ciertas condiciones de la transferencia
de información, que se mantienen mientras dure esta transferencia

2003
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 identificador
del circuito virtual al que pertenecen
Todos los paquetes pertenecientes a un mismo circuito virtual siguen
el mismo camino y llegan en orden.

2003
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

2003
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

2003
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 des-
tino, y que el destino es capaz de reordenarlos si se desordenan en el
camino.
Para ello se numeran los paquetes, y se retransmiten los perdidos
Servicio No Fiable:
No se garantiza al nivel superior que todos los paquetes lleguen a su
destino: pueden perderse paquetes (tı́picamente por congestión).
Algún nivel superior deberá ser capaz de detectar y recuperarse de
estas pérdidas, si la aplicación lo requiere.

2003
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órica-


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

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

2003
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 integración
Es necesario que el nivel de red del encaminador que une las subre-
des “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

2003
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

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

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

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


dores (routers) alcanzan las decisiones de las mejores rutas para cada
destino.
Como parte del algoritmo de encaminamiento, normalmente los encami-
nadores 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.

2003
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 intercambiar con otros
encaminadores
Minimizar el número y frecuencia de mensajes de control
Robustez: evitar agujeros negros, evitar bucles, evitar oscilaciones en
las rutas
Generar caminos óptimos:
• menor retardo de tránsito, o
• camino más corto (en función de una cierta métrica en función de
retardo, coste de los enlaces, . . . ), o
• máxima utilización de la capacidad de la red

2003
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 ninguna infor-


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

2003
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 111

Algoritmo de aprendizaje

Es un algoritmo simple, que mejora el de inundación. Se utiliza también


en los bridges de nivel de enlace.
1. Cada nodo mantiene una tabla con entradas
(Destino, enlace por el que encamino)
que va actualizando según los paquetes que va recibiendo.
2. Al recibir un paquete, se fija en el nodo origen y enlace por el que le
ha llegado, apuntando en la tabla que cuando ese nodo sea destino
de un paquete lo encaminará por ese enlace
3. Cuando para un destino no hay entrada en la tabla, se envı́a por
inundación.

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

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

2003
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 (enviando
periódicamente paquetes de sondeo).

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


(Destino, retardo estimado)

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

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

2003
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, consi-
guiéndose al cabo de un rato que todos los encaminadores tengan tablas
óptimas
Pero las malas noticias (se cae un enlace o un encaminador) tardan en
llegar:
A B C D E A B C D E

∞ ∞ ∞ ∞ Initially Initially


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


1 3 2 3 4
∞ ∞ After 2 exchanges


After 2 exchanges


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

2003
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, em-


plea esta técnica.
1. Cada encaminador mide su distancia con cada uno de sus vecinos (enviando
paquetes de sondeo) y construye un paquete de estado de enlaces con esta
información.

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


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

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

2003
c GSyC Redes: Nivel de Red

Encaminamiento (cont.) 119

Encaminamiento jerárquico

Si la red es muy grande, las tablas de encaminamiento se hacen inmanejables:

se tarda mucho en calcular los caminos óptimos

se genera mucho tráfico de control para conseguir difundir la información


necesaria para los algoritmos de encaminamiento

Solución: Encaminamiento Jerárquico:

Se divide la red en dominios

Dentro de cada dominio se encamina según un algoritmo de los vistos


anteriormente

Los dominios están interconectados mediante pasarelas (gateways)

Las máquinas dentro de un dominio no conocen a las de otro

Los gateways sólo conocen a otros gateways

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

2003
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 encaminador
sea capaz de darles salida.
Si esta situación es esporádica, se resuelva con buffers.
Los buffers son limitados: cuando se llenan se ha alcanzado la con-
gestión

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


del que puede encaminar el nivel de red

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

Medidas:
En redes basadas en circuitos virtuales, se puede hacer un control de
admisión: Al intentar establecer un nuevo circuito virtual, los encami-
nadores intermedios indican si tienen recursos (buffers) para que pase
por ellos.
En redes basadas en datagramas, los encaminadores suelen descartar
los paquetes que reciben y no les caben en sus buffers de salida.

2003
c GSyC Redes: Nivel de Red

Control de Congestión (cont.) 123

IP: Internet Protocol

2003
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

2003
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

identificación flags offset de fragmentación


(3 bits)

tiempo de vida (TTL) protocolo checksum de la cabecera


cabecera

dirección IP origen

dirección IP destino

opciones (en su caso)

datos

2003
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 cabera.
Normalemente es 5 (20 bytes), cuando no hay opciones
TOS Se usan sólo 4 bits para indicar tipo de servicio a ofrecer:
minimizar retardo
maximizar rendimiento
maximizar fiabilidad
minimizar coste económico

2003
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, cualquier
máquina puede necesitar fragmentar un datagrama IP al encaminarlo.
identificación Diferente para cada datagrama que genera una máquina
(se va incrementando de 1 en 1). Distintos fragmentos del mismo
datagrama mantienen el mismo número de identificación.
flags Uno para indicar si este datagrama no puede fragmentarse, y otro
para indicar si hay más fragmentos de este datagrama
offset de fragmentación Generado al fragmentar un datagrama, le 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 encaminador lo
decrementa, y si alcanza 0 se descarta el datagrama, enviándose al
originador del datagrama un mensaje ICMP.

2003
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 encaminadores
las soportan. El campo de opciones se rellena con ceros por la derecha
para asegurar un múltiplo de 32 bits. Ejemplos de opciones:
restricciones de seguridad
ruta recorrida
marca de tiempo
encaminamiento en origen

2003
c GSyC Redes: IP: Internet Protocol

Direcciones IP 129

Direcciones IP

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


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

Clase 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

2003
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

2003
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

2003
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 admi-
nistrador 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.

2003
c GSyC Redes: IP: Internet Protocol

Direcciones IP (cont.) 133

Subredes

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


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

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

2003
c GSyC Redes: IP: Internet Protocol

Encaminamiento 135

Encaminamiento

Cualquier máquina IP puede está o no configurada como encaminador:


Si NO lo está los datagramas IP que recibe que no son para ella, se
tiran.
Si lo está, se tratan de encaminar.

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

Para encaminar, una máquina consultará su tabla de encaminamiento. En


ella, para enviar un datagrama a una cierta dirección IP destino, bus-
cará 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).

2003
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 Window irtt Iface
163.117.137.0 0.0.0.0 255.255.255.0 U 1500 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0 0 lo
0.0.0.0 163.117.137.2 0.0.0.0 UG 1500 0 0 eth0

U ruta utilizable

G ruta indirecta (pasarela)

2003
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 centro”
de Internet
Solución (mientras que se pasa a IPv6): CIDR (Classless Inter Domain
Routing ): Encaminamiento sin clases.

2003
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 ma-
nera.

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

2003
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 solicitud


ARP, conteniendo la dirección IP en cuestión.
2. Aquella máquina que reciba una solicitud ARP preguntando por su
propia dirección IP, contesta con una trama Ethernet dirigida a quien
hizo la pregunta, conteniendo una respuesta ARP indicando la direc-
ció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 soli-
citudes son broadcast.

2003
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áquina
que pregunta, y de los campos ((destino)) sólo va relleno “IP Dest.”,
ya que “Eth. Dest.” es justo lo que se pregunta
Al formar la respuesta, la máquina interrogada cambia los dos campos
((origen)) por los ((destino)), rellenando el que falta (que es su dirección
Ethernet pedida).

2003
c GSyC Redes: IP: Internet Protocol

ARP (Address Resolution Protocol) (cont.) 143

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

2003
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 tarjeta
Ethernet en la que está grabada su dirección Ethernet.
Mecanismo de RARP:
1. La máquina envı́a un broadcast de una solicitud RARP, indicando su
dirección Ethernet.
2. Alguna máquina de la subred le enviará una respuesta RARP in-
dicándole cuál es su dirección IP.

2003
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 direcciones
Ethernet a direcciones IP para todos los nodos de la subred.
Si, por razones de protección frente a fallos, se colocan varios servidores
de RARP en la misma subred, el protocolo establece que se tomará sólo
la primera respuesta RARP recibida por la máquina que lanzo la solicitud
RARP.
Alternativas a RARP: BOOTP (similar) y DHCP (más complejo).

2003
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

2003
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

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

NAT (Network Address Translation)

Existen unos rangos de direcciones IP privadas, reservadas para ámbi-


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

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


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

2003
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 con-
gestió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.

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

UDP:
User Datagram Protocol

2003
c GSyC Redes: UDP: User Datagram Protocol

Introducción 151

Introducción

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


tado a datagramas:
NO orientado a conexión.
NO fiable.
Los datagramas UDP se encapsulan dentro de la parte de datos de un
datagrama IP.
Una aplicación que utilice UDP para transmitir datos, producirá exacta-
mente un datagrama UDP cada vez que la aplicación quiera enviar datos.
Dicho datagrama UDP se encapsulará en un datagrama IP.
Si ese datagrama IP va a exceder el tamaño máximo de la unidad de datos
del nivel de enlace (ej: Trama Ethernet), se fragmentará.

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

2003
c GSyC Redes: UDP: User Datagram Protocol

Datagramas UDP (cont.) 153

Checksum

El checksum es sobre cabecera y datos. Es un campo opcional, aunque se


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

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

Puertos

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


saber a qué proceso va destinado un datagrama UDP o segmento TCP
que acaba de llegar por la red.
Por ello, los procesos que usan la red lo hacen a través de puertos.
Cada puerto del Nivel de Transporte proporciona a una aplicación un punto
de acceso a la red de comunicaciones, con lo que ésta puede dialogar con
otra aplicación situada en un puerto de una máquina remota.

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

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

Los puertos menores que 1024 (puertos privilegiados) están reservados y


asignados universalmente a aplicaciones de red conocidas.
En una máquina Unix está asignación está en fichero /etc/services:
echo 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

2003
c GSyC Redes: UDP: User Datagram Protocol

Puertos (cont.) 157

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


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

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

2003
c GSyC Redes: UDP: User Datagram Protocol

Servicio dado por UDP (cont.) 159

TCP: Transmission
Control Protocol

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

2003
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 si-
multáneamente.
Los datos de la aplicación son troceados en segmentos del tamaño
que TCP considera adecuado (¡diferente a UDP!).

2003
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 retrans-
mite el segmento.
• Para asentimientos y retransmisiones se utiliza un protocolo de
ventana.
• El receptor reordena segmentos y descarta los duplicados.

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

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

Puertos: TCP los asocia con la aplicación origen y destino del seg-
mento (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.

2003
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: identifica el
número de orden del primer byte de datos que lleva el segmento.
Al establecerse una conexión se elige un número de secuencia inicial
para que no se confundan segmentos aún en tránsito procedentes de
conexiones diferentes.

2003
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 segmentos de una sola
vez.
El número de asentimiento indica el número de secuencia del próximo
byte que se espera recibir, asintiéndose de esta manera hasta el byte
anterior incluido.
No hay rechazo selectivo: No hay forma en que el receptor le diga al
emisor que tiene los bytes del 300 al 700 excepto el trozo 400-500.

2003
c GSyC Redes: TCP: Transmission Control Protocol

Números de asentimiento (cont.) 167

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


pre que se manda un segmento se aprovecha para asentir los datos
que esté enviando el otro extremo:
• Si el lado que envı́a un asentimiento tiene datos que enviar al otro
lado, puede aprovechar un segmento para las dos cosas: envı́a el
asentimiento ((arrecucas)) de los datos (piggybacking ).
• Si el lado que envı́a un asentimiento no tienen datos que enviar al
otro lado, envı́a un segmento sólo con la cabecera, sin datos.
Importante: Cada lado de la conexión utiliza sus números de secuen-
cia (partiendo de su número de secuencia inicial) y asiente los que
está usando el otro extremo.

2003
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 segmentos


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

2003
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 deberı́an


mantenerse las ((antiguas promesas))).
El tamaño de la ventana permite también hacer control de flujo ex-
tremo a extremo.

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

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

2003
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 esperar


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

2003
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á indicando


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

2003
c GSyC Redes: TCP: Transmission Control Protocol
$#:$9
JF8
&
#;T
#;!$#;8=$<B U!3<
:$#

@! B
T 
M@
 6S4
174

Redes: TCP: Transmission Control Protocol

175

Redes: TCP: Transmission Control Protocol


/C$< "&>$#;$!;A3# G&;$!A 
:K9G&

3RQ "&>3#FJF
 %$!;A
8@

M@8 P&;OM
 
;@8 N
8B3
J
B $!;A
@M
$#;   $$#; L
 %$!A 
#!

 K  

!B

'   $:$#JF$#:$9 8I$; H?>$#


=<# 4
Se indican mediante el empleo de la bandera URG: Cuando está levantada,
Pueden enviarse datos denominados urgentes (o ((fuera de banda))), que

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

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


el receptor debe pasar inmediatamente a la aplicación, lo antes posible.

C$# G&F
   3!EA 
 @

 D



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

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

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

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

 /




 
 
* /2 

 /
   "&$#%"!
 




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

 
 


.


Ejemplo de conexión
* 2  
 
  "&3#"!
 


.
Datos urgentes

 
 


.

  
 

 


 


 



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

 
    
 

 



 

 


 


'
   "&%$#!"
 
  
 

 


 


 



   "&%$#!"
 

del segmento.
  
 

 


 

aplicación.


 



   "&%$#!"
 


 /




 
 

GSyC

GSyC
 -,+*)  
 




 

2003

2003
   &"$#%!"
 
$(


c
+*)  
 
  "&%$#!"
 
$(


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

DNS: Domain Name


System

2003
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 tie-
ne 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 conve-
niente un nivel de abstracción no ligado a máquinas (ej: www.urjc.es
puede cambiar de máquina, y de IP, pero no de nombre).

Es necesario establecer una correspondencia entre nombres y direccio-


nes IP.

2003
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 informa-


ción de todas las máquinas de ARPANET.
Se obtenı́a periódicamente por FTP. Gestión completamente manual.
Con el crecimiento de ARPANET se hizo inmanejable.
1984, Paul Mockapetris: primeras RFC que describen el Domain Name
System.
Especificaciones actuales: RFC 1034 y 1035.

2003
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ácil-


mente ampliable.
Jerarquı́a de dominios:
Dominio raı́z (root o “.”). Gestionado por ICANN (Internet Corpora-
tion 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, . . .

2003
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
2003
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 cons-
truidas invirtiendo los números que la componen, y terminando en
in-addr.arpa
• Ejemplo: La red 138.117.0.0 es el dominio inverso 117.138.in-
addr.arpa

2003
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 (in-


cluyendo su posible subdivisión sucesiva).

Si el gestor del dominio es delega un subdominio urjc, el responsable


de urjc manejará la correspondencia de nombres y direcciones de todas
las máquinas de su dominio.
Si el responsable de urjc lo cree conveniente, puede delegar un sub-
dominio escet, sin que por ello tenga que informar al gestor de es.

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


régimen de competencia.

2003
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 (re-


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

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


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

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


aparece en el fichero local), pregunta a un servidor de DNS
El servidor investiga por su cuenta y devuelve la dirección IP pedida.

2003
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

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

2003
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

2003
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 pedida.
Iterativas: Las que le hace otro servidor, a las que responden con la
dirección IP del servidor del siguiente dominio en la jerarquı́a.

Siempre que pueden, los servidores usan datos de su cache.

2003
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 consultar al


resto del DNS. Utilizados por servidores para centralizar las consultas.
Evitan, por ejemplo, el acceso directo a servidores raı́z.
Esclavo. Utilizados por servidores en lugar del resto del DNS (por
ejemplo, si hay cortafuegos).

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

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

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

2003
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

2003
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 peti-
ción (directa, inversa, estado), respuesta con autoridad, petición re-
cursiva, 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).

2003
c GSyC Redes: DNS: Domain Name System

Formato de menaje DNS (cont.) 195

Datos, tamaño variable:

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

2003
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, cade-


na, hasta 63 bytes), terminada por la etiqueta “root” (byte de tamaño
a 0).
Tipo de consulta (2 bytes). A, NS, PTR, etc.
Clase de consulta (2 bytes). Normalmente IN.

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

2003
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 consulta.
Si la respuesta UDP es de más de 512 bytes (truncada), el resolver al
repite usando TCP.
Las transferencias de zona de primario a secundario usan TCP.

2003
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/

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

HTTP

2003
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 (ficheros)
como dinámico (el resultado de ejecutar programas en el servidor).

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

2003
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 terminadas en


LF.

2003
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

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

2003
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, sec-
ción 3).
HTTP/1.0: 16 cabeceras, ninguna obligatoria.
HTTP/1.1: 46 cabeceras, “Host:” obligatoria en las peticiones (usada
por los “virtual hosts”).
Se recomienda incluir en las peticiones al menos:
• “From:” (dirección de correo).
• “User-Agent:” (ej: Mozilla/4.7).
Se recomienda incluir en las respuestas al menos:
• “Server:” (ej: Apache/1.3).
• “Last-Modified:” (fecha GMT, usado por las caches).

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

2003
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

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

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

2003
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

2003
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 primera
lı́nea del mensaje de petición.
Pueden encadenarse varias proxies.

Ejemplo de petición a una proxy:


GET http://gsyc.escet.urjc.es/index.html HTTP/1.0

2003
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 antes de
saber el tamaño total).
Uso de conexiones persistentes que permiten varias transacciones su-
cesivas (se evitan establecimientos de conexión).
Facilidades especı́ficas para caches (“If-Modified-Since”, “If-Unmodified-
Since”).

2003
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 men-
saje de error (400 Bad Request).
Los servidores también han de aceptar primeras lı́neas de petición con
URLs completas, en lugar de caminos (será lo habitual en versiones
futuras).
Ejemplo de petición “mı́nima”:
GET /dir/index.html HTTP/1.1\r\n
Host: gsyc.escet.urjc.es\r\n
\r\n

2003
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 raci-
mos, cada uno:
• Comienza por el tamaño de los datos del racimo, en hexadecimal,
seguidos por “;”, quizás algo más, y CRLF.
• Los datos, terminados por CRLF.
• Terminado por una lı́nea con “0CRLF”.
• Seguido de “footers” (como cabeceras).
• Terminado en una lı́nea en blanco (CRLF).

2003
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

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

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

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

2003
c GSyC Redes: HTTP
Galletitas (cookies) 220

Galletitas (cookies)

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


nes/respuesta).
Normalmente son datos asociados a un usuario (carro de la compra,
cuenta de usuario, etc.)
Las galletitas son generadas por los servidores, y presentadas por los
clientes en ciertas ocasiones.
Especificación original de Netscape, luego propuesta como RFC 2109.

2003
c GSyC Redes: HTTP

Galletitas (cookies) (cont.) 221

Cabecera “Set-Cookie”

Cabecera puesta por un servidor cuando quiere enviar una galletita.


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

2003
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

2003
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

2003
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

2003
c GSyC Redes: HTTP

Referencias (cont.) 225

Correo electrónico

2003
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 como in-
terfaz de usuario para el correo electrónico (leer, componer, enviar,
gestionar, etc.)
Agente de transferencia de mensajes (MTA, message transfer agent):
se encarga del encamiento y almacenamiento de los mensajes de co-
rreo hasta su destino final.
Protocolo de acceso al correo electrónico: lo usa un UA para acceder
a un MTA, y recoger el correo para un usuario. Ejemplo: POP, IMAP.
Protocolo de envı́o de correo electrónico: lo usa un MTA para enviar
correo a otro MTA (también puede usarlo un UA para enviarlo a un
MTA). Ejemplo: SMTP.

2003
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 destinata-


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

2003
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

2003
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

2003
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 (attachments).
Multimedia Internet Mail Extensions define 5 cabeceras
• MIME-version:
• Content-Description:
• Content-Id:
• Content-Transfer-Encoding
• Content-Type:
Hay 8 tipos: Text, Image, Audio, Video, Application, Message, Model
y Multipart.
varios subtipos: Text: html, plain o richtext; Image: gif, jpeg; . . .

2003
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 para
transmitir los datos por la red y descodificar los datos transmitidos.

base 64 (ASCII armor) para binarios:


grupos de 24 bits se rompen en 4x6 bits.
Cada carácter de 6 bits se cuantifica en binario y se manda en ASCII
( el 0 va como una A, el 1 como B. . . ). Se rellena con = al final.
quoted-printable-encoding para textos con acentos: codifica los ca-
racteres por encima del 127 con un caracter “=” y dos dı́gitos hexa-
decimales.
7bit, 8bit, binary. . .

2003
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

2003
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 timeouts,
por lo que la RFC 1425 define ESMTP (EHLO...)

2003
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

2003
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 protocolo que
permita recuperar los mensajes del buzón (y borrarlos o dejarlos) para
que el UA pueda presentarlos en pantalla.
Hay varios protocolos para esto:
• POP2, POP3: Post Office Protocol. (RFC-1725,1734,1082)
• IMAP: Internet Message Access Protocol (RFC-1203; 1730 al 1733)

2003
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

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

2003
c GSyC Redes: Correo electrónico

S-ar putea să vă placă și