You are on page 1of 119

Redes

Grupo de Sistemas y Comunicaciones


gsyc-profes@gsyc.escet.urjc.es

Octubre 2003

Introduccin a las o Redes de Ordenadores

c 2003 GSyC

Redes

Objetivos de las Redes de Ordenadores

Objetivos de las Redes de Ordenadores


Compartir recursos: Discos duros, impresoras, programas. . . Compartir informacin: Acceso documentos remotos. . . o Mejorar la abilidad: Alternativas, replicacin. . . o Incrementar el rendimiento: Mquinas trabajando juntas. . . a Servir de medio de comunicacin de personas/comunidades o

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Estructura de las Redes

Estructura de las Redes


Diversas mquinas (hosts) se conectan a una subred de comunicaciones a que permite el dilogo entre ellas. a Dos formas fundamentales de disear la subred de comunicaciones: n mediante canales punto-a-punto mediante canales de radiado broadcast Normalemente hay una mezcla de muchos canales de los dos tipos.

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Topolog comunes en Redes as

Topolog comunes en Redes as

ESTRELLA

ANILLO

ARBOL

TOTALMENTE CONECTADA

PARCIALMENTE CONECTADA

BUS

SATELITE

ANILLO

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Protocolo de Comunicaciones

Protocolo de Comunicaciones
Conjunto de reglas (interfaces, algoritmos, formatos de mensajes . . . ) que conocen las entidades que intercambian datos a travs de una red de e comunicaciones.

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos as

Jerarqu de Protocolos as
En la mayor de las redes se utilizan varios protocolos con distintos a propsitos. o Todos esos protocolos se organizan normalmente en niveles o capas. cada nivel ofrece servicios al nivel superior cada nivel se apoya en los servicios ofrecidos por el nivel inferior

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos (cont.) as

Principios Fundamentales Cada nivel ofrece servicios al nivel superior, ocultndole la forma en a que realmente se implementan dichos servicios. Cada nivel dentro de una mquina conversa con su gemelo en otra. a Las reglas que rigen esta conversacin forman el protocolo de dicho o nivel. No hay transferencia f sica de datos entre niveles gemelos. La transferencia se hace en cada mquina entre niveles adyacentes, a travs a e de las interfaces entre niveles: llamadas a procedimientos/funciones.

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos (cont.) as

Maquina A

Maquina B Protocolo del Nivel 4

Nivel 4
interfaz 3/4

Nivel 4 Nivel 3 Nivel 2 Nivel 1

Nivel 3
interfaz 2/3

Protocolo del Nivel 3

Nivel 2
interfaz 1/2

Protocolo del Nivel 2

Nivel 1

Protocolo del Nivel 1

Medio de transmision

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos (cont.) as

Mquina origen de una comunicacin a o El mecanismo bsico en cada nivel es: a tomar las unidades de datos que le ofrece el nivel superior procesarlos (agrupando, separando, . . . ) y formar sus propias unidades de datos (aadiendo informacin de control en cabeceras) n o pasar sus unidades de datos al nivel inferior, usando sus servicios Es esto software o hardware?

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos (cont.) as

10

Mquina destino de una comunicacin a o El mecanismo bsico en cada nivel es: a tomar las unidades de datos que le ofrece el nivel inferior identicar las cabeceras introducidas en el nivel gemelo para procesar los datos adecuadamente (agrupando, separando, . . . ) pasar los datos al nivel superior Es esto software o hardware?

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos (cont.) as

11

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos (cont.) as

12

Protocolo Nivel N+1


Protocolo Nivel N

Protocolo Nivel N-1

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos (cont.) as

13

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos (cont.) as

14

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos (cont.) as

Protocolo Nivel N+1

Protocolo Nivel N

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Protocolo Nivel N-1

15

Jerarqu de Protocolos (cont.) as

16

Protocolo Nivel N+1


Protocolo Nivel N

Protocolo Nivel N-1

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos (cont.) as

17

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Jerarqu de Protocolos (cont.) as

18

Protocolo Nivel N+1


                                                                                                                               

Protocolo Nivel N

c 2003 GSyC

Conjunto de niveles y protocolos de una determinada red de ordenadores. Las distintas arquitecturas de redes se diferencian en: Nmero de niveles, y servicios de cada nivel u Protocolos de cada nivel

c 2003 GSyC

              

       

Protocolo Nivel N-1

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura de Red

19

Arquitectura de Red

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura OSI

20

Arquitectura OSI
En 1983 ISO (Organizacin de Estndares Internacionales) propone un o a modelo de referencia para arquitecturas de redes: Modelo de Referencia para la Interconexin de Sistemas Abiertos (ISO o 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 dene los servicios y protocolos exactos para cada nivel, slo aqueo llo de lo que cada nivel debe ocuparse.

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura OSI (cont.)

21

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

Presentacion

Protocolo de Presentacion

Presentacion

Sesion

Protocolo de Sesion

Sesion

Transporte

Protocolo de Transporte

Transporte

Red

Protocolo de Red

Red

Enlace

Protocolo de Enlace

Enlace

Fisico

Protocolo de nivel Fisico

Fisico

Medio de transmision

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura OSI (cont.)

22

El Nivel F sico Se ocupa de enviar y recibir bits sobre un medio f sico de transmisin: o Debe asegurarse que la forma de transmitir un bit a 1 es reconocida en recepcin como un bit a 1. o La transmisin puede ser elctrica, ptica, . . . o e o Aborda los problemas elctricos, electrnicos, de establecimiento de e o conexiones f sicas, . . .

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura OSI (cont.)

23

El Nivel de Enlace Transforma un sistema de transmisin crudo (lo que le ofrece el nivel o f sico) en una l nea libre de errores de transmisin (lo que ofrece para el o nivel de red) entre mquinas conectadas al mismo medio f a sico. Forma tramas. Se encarga de detectar las tramas recibidas con errores de transmisin. o Adems, puede a descartar las tramas con errores, y/o corregir los errores de las tramas con errores, y/o pedir la retransmisin de las tramas con errores o Se ocupa de resolver los problemas de acceso a un medio de transmisin compartido. o

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura OSI (cont.)

24

Nivel de Red Se encarga de la interconexin de mquinas que no estn conectadas o a a al mismo medio de transmisin. Por ello su misin fundamental es el o o encaminamiento de paquetes desde la mquina origen a la mquina de a a destino. El encaminamiento puede ser esttico o dinmico. a a Gestiona las congestiones y cuellos de botella. Puede incluir funciones de taricacin. o Puede proporcionar distintos tipos de servicio: Fiable, no able.

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura OSI (cont.)

25

Nivel de Transporte Se encarga de gobernar el acceso mltiple a la red de los diversos u procesos de la misma mquina que quieran usarla (gestiona puertos a en mquinas multiproceso). a Puede proporcionar distintos tipos de servicio: Fiable, no able. Realiza comunicacin extremo a extremo, no tiene en cuenta las o mquina intermedias. a Realiza control de ujo extremo a extremo (el receptor no es capaz de recibir a la velocidad a la que transmite el emisor).

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura OSI (cont.)

26

Nivel de Sesin o Permite a usuarios en distintas mquinas establecer sesiones entre ellos: a Proporciona mecanismos para controlar el dilogo: Ej: Turno, gestin a o de tokens. Gestiona la sincronizacin entre mquinas. o a Ejemplo: pizarra compartida.

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura OSI (cont.)

27

Nivel de Presentacin o Se ocupa de la sintaxis y semntica de la informacin transferida entre a o mquinas: a Orden de bytes de enteros (little endian/big endian). Representacin de caracteres alfabticos. o e Tamao de los tipos de datos. n T picamente traduce los datos a un formato normalizado que todas las mquinas entienden. a Tambin se suele ocupar de la compresin y cifrado de datos. e o

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura OSI (cont.)

28

Nivel de Aplicacin o Contiene un conjunto de protocolos que son de utilidad directa para aplicaciones que usan la red: Para transmisin de cheros o Para correo electrnico o Para control de trabajos remotos ...

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura OSI (cont.)

29

Cr ticas al Modelo OSI Surgi demasiado pronto. o Niveles de distinto grosor. Modelo muy complejo. Funcionalidades mal situadas: cifrado, . . . Modelo dominado por una visin telefnica de las redes de datos o o Hoy la arquitectura OSI ha ca en desuso, pero se utiliza su terminolog do a (fundamentalmente la denominacin de los niveles) o

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura TCP/IP

30

Arquitectura TCP/IP
Su desarrollo comenz a nales de los 60, como proyecto nanciado por o el Gobierno de los Estados Unidos. Autntico sistema abierto: Los protocolos y sus implementaciones estn e a disponibles pblicamente. u Constituyen el armazn sobre el que se sita Internet. o u No se ajusta exactamente al modelo de referencia OSI, surgio antes y OSI no intent incluirlo. o Su xito (a partir del de Internet) ha hecho que sea la arquitectura ms e a importante y conocida actualmente.

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura TCP/IP (cont.)

31

La pila TCP/IP Nivel de Aplicacin o Nivel de Transporte Nivel de Red Nivel de Enlace DNS, SMTP, HTTP. . . TCP, UDP IP, ICMP Ethernet, PPP, ADSL

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura TCP/IP (cont.)

32

ordenador A Protocolo HTTP Cliente HTTP

ordenador B Servidor HTTP

TCP

Protocolo TCP

TCP

encaminador IP Protocolo IP IP Protocolo IP IP

Driver + Tarjeta Ethernet

Protocolo Ethernet

Driver + Tarjeta Ethernet

Driver + Tarjeta Ethernet

Protocolo Ethernet

Driver + Tarjeta Ethernet

ETHERNET ETHERNET

c 2003 GSyC

Redes: Introduccin a las Redes de Ordenadores o

Arquitectura TCP/IP (cont.)

33

Nivel F sico

c 2003 GSyC

Redes: Nivel F sico

Introduccin o

34

Introduccin o
El nivel f sico es el ms bajo de toda la torre OSI. a Se ocupa de cmo se transmiten los datos a travs de los medios f o e sicos de transmisin. o Debe ocuparse de que las entidades directamente interconectadas concuerden en la forma de usar el medio f sico, es decir, que un bit a 1 enviado no sea interpretado por el receptor como un bit a 0.

c 2003 GSyC

Redes: Nivel F sico

Conceptos Generales

35

Conceptos Generales
Velocidad de Transmisin: Bits por segundo que se transmiten (Unidao des: Kbps, Mbps, Gbps). Tambin se le llama, informalmente, ancho e de banda) Latencia o Retardo de propagacin: Tiempo que tarda un bit desde o que sale hasta que llega a su destino. Transmisin Simplex: El canal de comunicaciones es de un solo seno tido. Transmisin Semi-Duplex: Canal bidireccional, pero en el que no pueo de transmitirse en ambos sentidos a la vez. Transmisin Duplex: Canal bidireccional en el que puede transmitirse o en ambos sentidos a la vez.
c 2003 GSyC Redes: Nivel F sico

Medios de Transmisin o

36

Medios de Transmisin o
Medios Magnticos e Se almacenan datos en cintas magnticas que se transportan en tren o e camin a su destino, donde se leen. o No es broma! Se pueden alcanzar velocidades de transferencia media de varios Gbps. El problema es la latencia o retardo de propagacin: lo que tarda en llegar o el primer bit a su destino. Los bancos siguen utilizando estos mtodos. e

c 2003 GSyC

Redes: Nivel F sico

Medios de Transmisin (cont.) o

37

Cable de Pares Cable de pares: Dos cables de cobre de 1 mm de espesor, trenzados en hlice. e Pueden emplearse sin amplicacin en varios kilmetros. o o Utilizados tanto en telefon como redes Ethernet. a Pueden alcanzarse cientos de Mbps de ancho de banda.

c 2003 GSyC

Redes: Nivel F sico

Medios de Transmisin (cont.) o

38

Cable Coaxial de Banda Base Ncleo de cobre, aislante y malla conductora. 50 ohmios. u Mayor inmunidad al ruido que el cable de pares. Con cables de 1 km se alcanzan 10 Mbps.

c 2003 GSyC

Redes: Nivel F sico

Medios de Transmisin (cont.) o

39

Cable Coaxial de Banda Ancha Igual que el de Banda Base, pero de 75 ohmios. Utilizado tradicionalmente para televisin. o Alcanza hasta 150 Mbps, pero necesita amplicadores intermedios que convierten el canal en unidireccional.

c 2003 GSyC

Redes: Nivel F sico

Medios de Transmisin (cont.) o

40

Fibra Optica En vez de corriente elctrica se transmite luz. e Para transmisin digital: La presencia de luz es un 1, la ausencia un 0. o Sistema de Transmisin: o Emisor: Diodo lser a Medio: Fibra ptica (silicio) o Receptor: Foto-diodo Puede transmitirse hasta a 20 Gbps en varios km. Se han alcanzado velocidades de 1 Tbps en laboratorio y el l mite terico est por los 50 Tbps. o a

c 2003 GSyC

Redes: Nivel F sico

Medios de Transmisin (cont.) o

41

Transmisin por Aire o


Se transmiten seales de radiofrecuencia por radiado (broadcast). n Tres escenarios en los que se utiliza: Redes Inalmbricas (WiFi/802.11): a Alcances en el entorno de los cientos de metros, con antenas direccionales especiales unos cuantos kilmetros. o 11 Mbps - 54 Mbps Redes por Satlite: e Cuando no hay visn directa emisorreceptor: Satlites. o e Cada satlite tiene varios transpondedores (canales), ofreciendo cada e uno cientos de Mbps para transmisin de datos. o Principal problema: retardo, t picamente 300 ms extremo a extremo para satlites geosincrnicos. Pero si no hay retransmisiones, puede ser e o mejor que cables. GSM/GPRS
c 2003 GSyC Redes: Nivel F sico

Transmisin Digital o

42

Transmisin Digital o
Para medios capaces de transportar una seal digital directamente. n Ventaja: Menor tasa de errores (puede recrearse la seal original en n puntos intermedios) Se transmite una seal cuadrada, en la que los distintos niveles de n tensin indican la transmisin de ceros o unos. o o Hay varias formas de codicar los 0 y 1: Cdigo unipolar, NRZ, Mano chester, Manchester diferencial. . .

c 2003 GSyC

Redes: Nivel F sico

Transmisin Digital (cont.) o

43

Ejemplo: Cdigo Manchester o


V 0

0
1

Nota: No se puede transmitir una seal cuadrada perfecta (ancho de banda n innito). Se transmite una suma de sinusoides que se le parece:

c 2003 GSyC

Redes: Nivel F sico

Transmisin Analgica o o

44

Transmisin Analgica o o
Para medios diseados para transportar seales analgicas (ej: l n n o nea telefnica). o Se necesitan MOduladoresDEModuladores en los puntos de acceso al medio. Los modems convierten una seal digital en su equivalente analgica n o (modulan) y viceversa (demodulan).

MODEM

MODEM

Transmision Digital Transmision Analogica

c 2003 GSyC

Redes: Nivel F sico

Transmisin Analgica (cont.) o o

45

Tipos de Modulacin o
0 (a) 1 0 1 1 0 0 1 0 0 1 0 0

Seal digital: n

Modulacin ASK: o

(b)

Modulacin FSK: o

(c)

Modulacin PSK: o

(d)

Phase changes

Modulacin QAM: o
c 2003 GSyC

Combinacin de ASK y PSK. o


Redes: Nivel F sico

Transmisin Analgica (cont.) o o

46

Nivel de Enlace

c 2003 GSyC

Redes: Nivel de Enlace

Introduccin o

47

Introduccin o
El Nivel de Enlace suele subdividirse en dos subniveles:
Nivel de Red LLC (Subnivel de Control del Enlace Lgico) o MAC (Subnivel de Control de Acceso al Medio) Nivel F sico

MAC: gobierna el acceso a un medio de transmisin compartido por varias o mquinas a LLC: ofrece al nivel de red un servicio de transmisin de datos entre mquinas o a adyacentes, encargndose de: a composicin/descomposicin de tramas. o o control de ujo (opcional). gestin de los errores en la transmisin (opcional). o o

c 2003 GSyC

Redes: Nivel de Enlace

El problema del acceso al medio

48

El problema del acceso al medio


Cmo y cuando asignar el canal f o sico a las distintas mquinas que lo a comparten y quieren acceder a l? e Soluciones: Asignacin esttica: Se reparte el canal en el tiempo (TDM) o en o a frecuencia (FDM). Bueno para trcos pesados y constantes, pero a malo para rfagas (lo habitual). a Asignacin dinmica: No est prejado el reparto. Trata de aprovechar o a a mejor el canal en LANs. Acceso por contienda: Las mquinas compiten por usar el medio. a Si coinciden dos o ms a la vez: colisin a o Acceso por reserva: Las mquinas pueden hacer reservas para poa der usar el canal en exclusiva durante un tiempo
c 2003 GSyC Redes: Nivel de Enlace

Protocolo CSMA/CD

49

Protocolo CSMA/CD
CSMA/CD (Carrier Sense Multiple Access with Collision Detection): Acceso mltiple con deteccin de portadora. u o Funcionamiento: Cuando una estacin quiere transmitir escucha en el canal. o Si est ocupado, espera a que quede libre a Si est libre, transmite. a Mientras transmite, sigue escuchando para ver si alguien transmite a la vez, en cuyo caso aborta la transmisin o

c 2003 GSyC

Redes: Nivel de Enlace

Protocolo CSMA/CD (cont.)

50

Cmo se pueden producir las colisiones? o Cuando dos estaciones deciden transmitir simultneamente al ver el a canal libre. Cuando el canal parece libre pero no lo est debido al retardo de a propagacin de los paquetes por la red. o Caso patolgico: Dos estaciones quieren transmitir y ven que el canal o est ocupado. Esperan a que quede libre, y cuando lo est ambas transa a miten a la vez, colisionando. Y as indenidamente. Para evitarlo, en caso de colisin las estaciones esperan un tiempo aleatorio o antes de reintentar.

c 2003 GSyC

Redes: Nivel de Enlace

Protocolo CSMA/CD (cont.)

51

Tiempo que tarda en detectarse una colisin en el caso peor (tiempo de o reaccin): Doble del retardo mximo de propagacin ( ): o a o Desde que A empieza a transmitir hasta que pasa , B puede empezar a trasmitir tambin. e B se da cuenta de la colisin inmediatamente, pero hasta que no pasa o otro , A no se entera. Ejemplo: Con cable coaxial de 1 km = 5 s tiempo de reaccin = 10 s o

c 2003 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, slo el poseedor del testigo puede transmitir, por o lo que desaparecen las colisiones. Supone que las estaciones de la red se conguran como un anillo f sico o lgico. o Mecanismo: Cuando el canal est libre, por l circula el testigo. a e Cuando una estacin quiere transmitir: o captura el testigo env su trama a devuelve el testigo al anillo.

c 2003 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 lgico: o Gestin de tramas o Control de ujo (opcional) Control de errores (opcional)

c 2003 GSyC

Redes: Nivel de Enlace

Gestin de tramas o

54

Gestin de tramas o
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 pasrselos al nivel de red. a

c 2003 GSyC

Redes: Nivel de Enlace

Gestin de tramas (cont.) o

55

Separacin de tramas o Cuando el nivel de enlace toma la tira de bits del nivel f sico debe ser capaz de identicar tramas en ella. El mtodo ms habitual es colocar patrones especiales de bits al principio e a y/o al nal de cada trama. Por ejemplo: 01111110. Problema: Y si en medio bits de datos aparece justo ese patrn especial? o Solucin: Bits de relleno (bit stung ) Si vienen 5 unos seguidos, el o emisor aade un 0 de relleno. El receptor, cada vez que recibe 5 unos, n descarta el 0 subsiguiente.

c 2003 GSyC

Redes: Nivel de Enlace

Control de Flujo

56

Control de Flujo
Problema: Emisor enviando ms deprisa de lo que el receptor es capaz de a recoger. Solucin: Los protocolos incluyen reglas que permiten al transmisor saber o de forma impl cita o expl cita si puede enviar otra trama al receptor. Ejemplo: Al establecer la conexin, el receptor indica que se le pueden o enviar hasta N tramas consecutivas, pero no ms hasta que l lo indique a e expresamente.

c 2003 GSyC

Redes: Nivel de Enlace

Gestin de errores o

57

Gestin de errores o
El problema de la gestin de errores puede abordarse en el nivel de enlace o o en niveles superiores (normalmente nivel de transporte). Si se hace en el nivel de enlace, se corrigen los errores en la comunicacin entre cada par de mquinas adyacentes que participen en la o a comunicacin o Si se hace en el nivel de transporte, se corrigen los errores en las mquinas origen y destino de la comunicacin. a o

c 2003 GSyC

Redes: Nivel de Enlace

Gestin de errores (cont.) o

58

Problemas: 1. algn bit de una trama ha cambiado u 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 mquinas adyacentes. a Los otros dos problemas no son tan habituales entre mquinas adyacentes, a por lo que podr diferirse su solucin a niveles superiores. a o

c 2003 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 automticamente. a el receptor detecta el error y descarta la trama incorrecta, esperando que en algn momento el emisor la retransmita (ya veremos como). u

c 2003 GSyC

Redes: Nivel de Enlace

Correccin de errores o

60

Correccin de errores o
Consiste en introducir redundancia en la informacin que se env para, o a en caso de error, poder suponer cul era la informacin original. a o Idea Bsica: a slo ciertos patrones de bits son posibles o si se recibe un patrn imposible, se supone que el que se quer o a enviar es aquel posible que ms se le parezca. a Distancia Hamming (d): N.o de diferencias entre dos patrones consecutivos. En un patrn pueden detectarse hasta d 1 errores, y corregirse hasta o (d 1)/2 errores.

c 2003 GSyC

Redes: Nivel de Enlace

Correccin de errores (cont.) o

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 patrn. o Si al transmitir 0000011111 hubiera habido 3 errores, y llegado 0000000011, se hubiera corregido incorrectamente a 0000000000. Sin embargo s se puede detectar que ha habido errores (se pueden detectar hasta 4).

c 2003 GSyC

Redes: Nivel de Enlace

Deteccin de errores y retransmisin o o

62

Deteccin de errores y retransmisin o o


Ahora la redundancia que se introduce es slo con el objeto de poder o detectar cundo una trama ha llegado con errores, sin intentar corregirlos a pues la trama ser reenviada. a Es ms eciente detectar que corregir errores: se necesitan menos bits de a redundancia, aunque aparece la necesidad de retransmitir. La correccin de errores se utiliza fundamentalmente en casos en que es o imposible retransmitir. Ejemplo: Medios de transmisin simplex. o

c 2003 GSyC

Redes: Nivel de Enlace

Deteccin de errores y retransmisin (cont.) o o

63

Bit de Paridad Consiste en aadir un bit al patrn de datos que se env n o a. Paridad Par: El bit aadido hace que el total de unos enviado sea n siempre par. Paridad Impar: El bit aadido hace que el total de unos enviado sea n siempre impar. Se puede detectar un error de 1 bit del patrn, y hay un 50 % de probao bilidades de detectar un error en ms de 1 bit a la vez. a

c 2003 GSyC

Redes: Nivel de Enlace

Deteccin de errores y retransmisin (cont.) o o

64

Cdigos de Redundancia C o clica (CRC) Se consideran los patrones de bits como polinomios, y se realizan operaciones aritmticas mdulo 2 con ellos. e o El clculo del CRC se implementa con circuitos hardware sencillos. a

c 2003 GSyC

Redes: Nivel de Enlace

Deteccin de errores y retransmisin (cont.) o o

65

Se demuestra que con los CRC de 16 bits se detectan: Todos los errores simples y dobles Todos los errores en un nmero impar de bits u Todas las rfagas de longitud16 bits a El 99.997 % de las rfagas de 17 bits a El 99.998 % de las rfagas de longitud18 bits a

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados o e

66

Recuperacin de prdidas y/o duplicados o e


Estos protocolos, adems de permitir la recuperacin frente a tramas pera o didas y/o duplicadas pueden utilizarse tambin para realizar el control de e ujo. Se utilizan Timeouts y Asentimientos para implementarlos MUY IMPORTANTE: Pueden situarse en el nivel de enlace o en niveles superiores. En las redes TCP/IP no aparecen hasta (por lo menos) el nivel de transporte.

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados (cont.) o e

67

Tres tipos principales de protocolos: De parada y espera: El transmisor, despus de enviar una trama, espee ra su asentimiento por parte del receptor antes de enviar la siguiente. De env continuo: El transmisor va enviando tramas sucesivamente, o y el receptor le va asintiendo por su cuenta. Requiere memoria innita. De ventanas: El transmisor puede enviar un nmero mximo de tramas u a antes de recibir el primer asentimiento

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados (cont.) o e

68

Parada y Espera Mecanismo bsico: a


Emisor tiempo dato-1 Receptor

Plazo ACK

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados (cont.) o e

69

Emisor tiempo dato-1

Receptor

Plazo

dato-1

Plazo ACK

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados (cont.) o e

70

El protocolo genera duplicados, que podr descartarse en el receptor si an los paquetes van identicados de alguna forma.

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados (cont.) o e

71

Emisor tiempo dato-1

Receptor

Plazo

ACK

dato-1

Plazo ACK

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados (cont.) o e

72

Emisor tiempo dato-1

Receptor

Plazo

ACK dato-1

Plazo

ACK

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados (cont.) o e

73

Solucin: Con asentimiento alternado: cada paquete de datos lleva un bit o que va alternando. Los acks tambin incluyen el bit para identicar uno u e otro paquete.
Emisor Receptor Emisor dato-1 (0) dato-1 (0) Receptor

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

ack (0)

dato-1 (0)

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

Ya no hay duplicados ni prdidas

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados (cont.) o e

74

Env Continuo o El canal est infrautilizado. Mejor que el emisor env siempre que pueda. a e Env cont o nuo con Rechazo Simple:
Emisor tiempo Receptor

dato-1 dato-2 dato-3 dato-4 dato-5 dato-6 dato-3 dato-4 dato-5 nack-3

Se asiente negativamente la trama perdida, por lo que cada trama debe tener un identificador!! El Emisor debe reenviar todas las tramas desde la perdida

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados (cont.) o e

75

Env cont o nuo con Rechazo Selectivo:


Emisor Receptor

dato-1
tiempo

dato-2 dato-3 dato-4 dato-5 dato-6 dato-3 dato-7 dato-8 nack-3

Se asiente negativamente la trama perdida

Emisor slo retransmite las tramas indicadas, lo que es ms eficiente

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados (cont.) o e

76

Ventanas Parada y Espera es muy lento. Env Cont o nuo requerir memoria innita. a Solucin intermedia: El Emisor, en vez de parar despus de transmitir cada o e trama, para despus de transmitir n (tamao de la ventana) tramas. e n Cuando va recibiendo los ACKs de las tramas enviadas puede proseguir enviando nuevas tramas.

c 2003 GSyC

Redes: Nivel de Enlace

Recuperacin de prdidas y/o duplicados (cont.) o e

77

Emisor
1 1 2 1 2 3

Receptor

dato-1 dato-2 dato-3 Tamao de ventana del Emisor: 3 ack-1

2 3 4 2 3 4 3 4 5 3 4 5 3

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

c 2003 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 ms habituales: a Ethernet Fast Ethernet PPP

c 2003 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 en bus. a Cable coaxial no (Thinnet): 10Base2, topolog en bus. a Par trenzado: 10Base-T, topolog en estrella. a Fibra ptica: 10Base-F, topolog en estrella o a Nivel F sico: Cdigo Machester, niveles de +0.85V y 0.85V. o Acceso al Medio: CSMA/CD

c 2003 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, o no blindados, categor 3 5. a o 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 dems. 10 Mbps entre todas las bocas. a A veces se usa un conmutador (switch): Reenv slo a la boca a la a o que se conecta el destinatario. 10 Mbps por boca y sentido, varias transmisiones a la vez. Longitud mxima hasta el concentrador: 100 metros a

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

Prembulo

Direccin destino

Direccin origen

Tipo

Datos

Relleno

CRC

Comienzo de trama

Prembulo 10101010 (x 7 bytes). Permite al receptor sincronizar su a reloj con el del transmisor. Comienzo de trama 10101011, indicando que a continuacin empieza o la trama.

c 2003 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 a las estaciones de la subred (omnienv o broadcast). o Si el bit 47 (el de mayor peso) de la direccin destino es 1, la trama o va destinada a un grupo de mquinas (multienv o multicast). a o Si el bit 46 de una direccin est a 1, la direccin es de mbito o a o a mundial, asignada de forma unica. Si est a 0, es de mbito local, a a relativo a esa subred. En ambos casos son direcciones unienv o o unicast. La direccin de destino va delante para que una estacin sepa o o rpidamente si una trama es para ella o no. a

c 2003 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 transmisiones abortadas al detectar colisin. Por ello, si hay menos de 46 bytes o de datos, se utilizan estos bytes de relleno.
Retardo mx. de propagacin en 2,5 km, 4 repetidores: 25.6 s a o Tiempo de Reaccin: 25.6 x 2 = 51.2 s o Bits transmitidos en 51.2 s a 10 Mbps: 51,2 106 10 106 = 512 bits = 64 bytes.

c 2003 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 deteccin de o errores: El transmisor calcula el CRC de los bits de datos, y lo coloca en la trama. El receptor calcula el CRC de los bits de datos de la trama, y comprueba que coincida con el CRC que viene en ella. Si no coincide, los datos han sido modicados por ruido en el cable, y se descarta la trama.

c 2003 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 bras pticas o

c 2003 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 diseado de forma que no slo puede encapsular IP, sino tambin a n o e otros protocolos. Se utiliza fundamentalmente para conectarse a Internet a travs de la e red telefnica bsica mediante mdem. o a o Histricamente se us primero SLIP (Serial Line IP), pero PPP es o o ms completo. La principal diferencia de PPP con SLIP es que PPP a incluye deteccin de errores de transmisin mediante CRC. o o
flag 7E
1

addr FF
1

control 03
1

protocolo
2

datos
hasta 1500

CRC
2

flag 7E
1 n bytes

c 2003 GSyC

Redes: Nivel de Enlace

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

87

ADSL: Asymetric Digital Susbcriber Line


Una l nea telefnica normal transmite voz: Una banda de 0-4kHz. En un par de o cobre cabe ms, por lo que en la centralita se agrupan (multiplexan) varias a conversaciones (desplazadas en frecuencia) por un mismo cable. Las transmisiones mediante mdem con PPP reciben el mismo trato. o Con ADSL el abonado contina utilizando los primeros 4kHz para las llamadas u de voz, pero ahora ocupa ms ancho de banda para la transmisin (simultnea) a o a 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 asimtrico: se reserva ms para recibir (256Kbps2Mbps) que para enviar e a (128Kbps300Kbps). Ambas bandas estn separadas. a Se transmite por modulacin multitono discreta (MDT). o ADSL es ms bien un nivel f a sico: como nivel de enlace puede utilizarse cualquier de los usados en l neas punto a punto.

c 2003 GSyC

Redes: Nivel de Enlace

Dispositivos de interconexin de subredes o

88

Dispositivos de interconexin de subredes o


Para interconectar subredes pueden colocarse dispositivos muy diferentes en propsito y funcionamiento: o repetidores (repeaters) puentes (bridges) encaminadores (routers) concentradores (hubs) conmutadores (switches)

c 2003 GSyC

Redes: Nivel de Enlace

Dispositivos de interconexin de subredes (cont.) o

89

Repetidores Copian seales elctricas de un medio f n e sico de transmisin a otro o (trabajan en el nivel 1). Permiten extender la longitud f sica de la subred Aislan los fallos de diferentes segmentos de la subred

c 2003 GSyC

Redes: Nivel de Enlace

Dispositivos de interconexin de subredes (cont.) o

90

Puentes Interconectan dos LAN, pasando tramas de una a otra (trabajan en el nivel 2). Las mquinas de las dos subredes NO son conscientes de la presencia a del bridge.

c 2003 GSyC

Redes: Nivel de Enlace

Dispositivos de interconexin de subredes (cont.) o

91

Encaminadores Interconectan subredes distintas trabajando en el nivel de red. La mayor diferencia con los bridges es que los niveles de enlace de mquinas a son conscientes de su presencia. de las subredes que interconectan SI Los estudiaremos con ms detalle en el tema siguiente. a

c 2003 GSyC

Redes: Nivel de Enlace

Dispositivos de interconexin de subredes (cont.) o

92

Concentradores Ofrecen el servicio de un bus a topolog en estrella. as Su servicio es fundamentalmente de nivel 1: repiten la seal de una n boca a las otras Puede incorporar cierta funcionalidad de nivel 2: en Ethernet, cuando detectan seal por una boca, env ruido por todas las dems para n an a que la vean las tarjetas, colisionen y reintente. Reparten el ancho de banda disponible entre todas las bocas

c 2003 GSyC

Redes: Nivel de Enlace

Dispositivos de interconexin de subredes (cont.) o

93

Conmutadores Exteriormente muy parecidos a los concentradores, pero de comportamiento muy diferente Almacenan internamente las tramas entrantes en buers, del que en paralelo van sacando tramas y reenvindolas por las bocas adecuadas a (trabajan en el nivel 2). Pueden dar todo el ancho de banda a cada una de varias transmisiones simultneas entre bocas. a Para tecnolog compatibles (Ethernet/FastEthernet) pueden tener as bocas trabajando a distintas velocidades. Reciben su nombre porque, para una transmisin entre dos bocas, o ofrecen un funcionamiento equivalente a conmutar para interconectarlas ofreciendo un unico canal directo e independiente de otras transmisiones.
c 2003 GSyC Redes: Nivel de Enlace

Dispositivos de interconexin de subredes (cont.) o

94

Nivel de Red

c 2003 GSyC

Redes: Nivel de Red

Introduccin o

95

Introduccin o
El nivel de red se ocupa de que los paquetes que salen del transmisor lleguen a su destino nal, aunque el emisor y el receptor no estn adyae centes (conectados directamente al mismo medio de transmisin). o Esto normalmente requiere pasar a travs de nodos intermedios: encamie nadores (routers). Es necesario elegir la mejor ruta a seguir. RECORDATORIO: El nivel de enlace slo se ocupa de que las tramas o viajen entre mquinas adyacentes. a

c 2003 GSyC

Redes: Nivel de Red

Misiones del Nivel de Red

96

Misiones del Nivel de Red


Encaminamiento de paquetes. Asignacin de direcciones unicas a todas las mquinas de la red, ino a dependientes de la tecnolog de los niveles de enlace. a Interconexin en una misma red de subredes con distinto nivel de o enlace. Control de congestin. o

c 2003 GSyC

Redes: Nivel de Red

Tipos de Nivel de Red

97

Tipos de Nivel de Red


Segn haya o no conexiones de red: u No orientado a conexin o Orientado a conexin o Segn se encamine cada paquete por separado o no: u Basado en datagramas Basado en ciruitos virtuales Segn se ofrezca o no un servicio able: u Fiable No able

c 2003 GSyC

Redes: Nivel de Red

Tipos de Nivel de Red (cont.)

98

Servicio No Orientado a Conexin o Cada vez que el nivel superior quiere enviar datos, se compone una unidad de datos (paquete) con ellos y se env No hay relacin con a. o transmisiones previas o futuras al mismo destino Servicio Orientado a Conexin o Antes de enviar el primer byte de datos, origen y destino mantienen un dilogo inicial para establecer ciertas condiciones de la transferencia a de informacin, que se mantienen mientras dure esta transferencia o

c 2003 GSyC

Redes: Nivel de Red

Tipos de Nivel de Red (cont.)

99

Servicio basado en Datagramas La direccin de destino viaja en todos los paquetes de datos. o 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 viajarn todos a los paquetes de datos. La direccin de destino viaja slo en los paquetes que establecen el o o cirtuito virtual. Los paquetes con datos slo llevan un identicador o del circuito virtual al que pertenecen Todos los paquetes pertenecientes a un mismo circuito virtual siguen el mismo camino y llegan en orden.

c 2003 GSyC

Redes: Nivel de Red

Tipos de Nivel de Red (cont.)

100

Servicio basado en datagramas:


3 2 1 3

A
2 1

B
3

E
1 2 3

C
1

c 2003 GSyC

Redes: Nivel de Red

Tipos de Nivel de Red (cont.)

101

Servicio basado en circuitos virtuales:


3 2 1

B
3 2 1

E
3 2 1

c 2003 GSyC

Redes: Nivel de Red

Tipos de Nivel de Red (cont.)

102

Servicio Fiable: Se garantiza al nivel superior que todos los paquetes llegan a su destino, y que el destino es capaz de reordenarlos si se 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 congestin). o Algn nivel superior deber ser capaz de detectar y recuperarse de u a estas prdidas, si la aplicacin lo requiere. e o

c 2003 GSyC

Redes: Nivel de Red

Tipos de Nivel de Red (cont.)

103

Todas las combinaciones de tipos de servicio de nivel de red son tericao mente posibles, pero no todas se dan en la prctica. a Las combinaciones ms frecuentes son: a Servicio Orientado a Conexin, basado en Circuitos Virtuales y Fiable o (ejemplo: X.25). Servicio No Orientado a Conexin, basado en Datagramas y No Fiable o (ejemplo: IP).

c 2003 GSyC

Redes: Nivel de Red

Direcciones de Red

104

Direcciones de Red
Se necesita un mecanismo de identicacin un o voca de todas las mquinas a de la red, independientemente de la tecnolog del nivel de enlace de cada a una. Existen distintos mtodos de direccionamiento segn el tipo de redes. e u Veremos ms adelante el formato de las direcciones del nivel de red IP. a

c 2003 GSyC

Redes: Nivel de Red

Interconexin de subredes con distinto nivel de enlace o

105

Interconexin de subredes con distinto nivel o 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 misin de nivel de red hacer esta integracin o o Es necesario que el nivel de red del encaminador que une las subredes entienda los dos niveles de enlace. Puede tener que resolver problemas de: distintos tamaos de las unidades de datos n distintas velocidades de las subredes

c 2003 GSyC

Redes: Nivel de Red

Interconexin de subredes con distinto nivel de enlace (cont.) o

106

Ejemplo
Protocolo FTP Cliente FTP Servidor FTP

TCP

Protocolo TCP

TCP

router IP Protocolo IP IP Protocolo IP IP

Driver Ethernet

Protocolo Ethernet

Driver Ethernet

Driver token ring

Protocolo token ring

Driver token ring

TOKEN RING ETHERNET

c 2003 GSyC

Redes: Nivel de Red

Encaminamiento

107

Encaminamiento
El proceso mediante el cul se encuentra un camino entre dos puntos a cualesquiera de la red Problemas a resolver: Qu camino escoger? Existe alguno ms corto? e a Qu ocurre si un encaminador o un enlace intermedio se rompen? ... e

c 2003 GSyC

Redes: Nivel de Red

Encaminamiento (cont.)

108

Algoritmo de encaminamiento: Procedimiento por el cul los encaminaa dores (routers) alcanzan las decisiones de las mejores rutas para cada destino. Como parte del algoritmo de encaminamiento, normalmente los encaminadores tienen que enviarse entre s mensajes de control para conseguir toda la informacin necesaria. o 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 nal D1 D2 ... Encaminador vecino al que enviar el paquete V1 V2 ...

Muchas veces se utiliza el trmino Protocolo de Encaminamiento en vez e de Algoritmo de Encaminamiento.


c 2003 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 rpidamente y para tener menos informacin a intercambiar con otros a o encaminadores Minimizar el nmero y frecuencia de mensajes de control u Robustez: evitar agujeros negros, evitar bucles, evitar oscilaciones en las rutas Generar caminos ptimos: o menor retardo de trnsito, o a camino ms corto (en funcin de una cierta mtrica en funcin de a o e o retardo, coste de los enlaces, . . . ), o mxima utilizacin de la capacidad de la red a o

c 2003 GSyC

Redes: Nivel de Red

Encaminamiento (cont.)

110

Algoritmo de inundacin o Es un algoritmo simple que a veces se utiliza cuando no hay ninguna informacin de encaminamiento disponible (al arrancar algn otro algoritmo): o u 1. Cada paquete recibido por un nodo es encaminado a todos los vecinos (excepto al que lo envi). o 2. Los paquetes van etiquetados y numerados. 3. Si un nodo recibe un paquete que ya ha encaminado, lo descarta.

c 2003 GSyC

Redes: Nivel de Red

Encaminamiento (cont.)

111

Algoritmo de aprendizaje Es un algoritmo simple, que mejora el de inundacin. Se utiliza tambin o e en los bridges de nivel de enlace. 1. Cada nodo mantiene una tabla con entradas (Destino, enlace por el que encamino) que va actualizando segn los paquetes que va recibiendo. u 2. Al recibir un paquete, se ja 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 a 3. Cuando para un destino no hay entrada en la tabla, se env por a inundacin. o

c 2003 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 an no resueltos (tentativos) u 2. 3. Inicialmente P slo contiene el nodo inicial o Para cada nodo de T : si no est directamente conectado a ningn nodo de P , su distancia al a u nodo inicial es innta 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 e 4. El nodo de T de menor distancia se pasa a P . Si an quedan nodos en T , u se vuelve al paso anterior.
Redes: Nivel de Red

c 2003 GSyC

Encaminamiento (cont.)

113

B 2 A 6 G 2 1 E

7 2 4 F 2 3

C 3 D 2 H A

B (2, A) E (, )

C (, ) F (, ) H (, ) D (, )

G (6, A) (b)

(a) B (2, A) E (4, B) C (9, B) B (2, A)

C (9, B)

F (, ) H (, )

D (,)

E (4, B) F (6, E) H (, ) (d)

D (,1)

G (6, A) (c) B (2, A) E (4, B)

G (5, E)

C (9, B) D (,)

B (2, A) E (4, B)

C (9, B) D (,)

F (6, E)

F (6,E)

G (5, E) (e)

H (9, G)

G (5, E) (f)

H (8, F)

Fig. 5-6. The first five steps used in computing the shortest path from A to D. The arrows indicate the working node.
c 2003 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 tcnica. e
1. Cada nodo mantiene una tabla de encaminamiento con pares (Destino, Nodo vecino por el que encamino), para todos los destinos de la red. Cada nodo estima el retardo de sus paquetes a los nodos vecinos (enviando peridicamente paquetes de sondeo). o Cada nodo env peridicamente a sus vecinos todos sus pares a o (Destino, retardo estimado) Cada nodo estudia la informacin recibida de los vecinos para ver si puede o conseguir una ruta de menor retardo enviando a travs de otro de sus e vecinos, y actualiza sus tablas de encaminamiento consecuentemente

2.

3.

4.

c 2003 GSyC

Redes: Nivel de Red

Encaminamiento (cont.)

115

New routing table for J




Vectors received from J's four neighbors

(b)

Fig. 5-10. (a) A subnet. (b) Input from A, I, H, K, and the new routing table for J.
c 2003 GSyC Redes: Nivel de Red

(a)

To A B C D E F G H I J K L

I 24 36 18 27 7 20 31 20 0 11 22 33 JI delay is 10

0 12 25 40 14 23 18 17 21 9 24 29 JA delay is 8

20 21 31 28 19 36 8 24 30 22 19 40 6 31 0 19 14 22 7 10 22 0 9 9 JH JK delay delay is is 12 6

Router

New estimated delay from J K Line 8 20 28 20 17 30 18 12 10 0 6 15 A A I H I I H H I K K

Encaminamiento (cont.)

116

Problema: cuenta al innito. La informacin acerca de mejores rutas se propaga poco a poco, consio guindose al cabo de un rato que todos los encaminadores tengan tablas e o ptimas Pero las malas noticias (se cae un enlace o un encaminador) tardan en llegar:
A B C D E A B 1 3 3 5 5 7 7 C 2 2 4 4 6 6 8 D

E 4 4 4 4 6 6 8 Initially After 1 exchange After 2 exchanges After 3 exchanges After 4 exchanges After 5 exchanges After 6 exchanges

1 1 1 1

. . .
(b)

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

c 2003 GSyC

Encaminamiento (cont.)

Algoritmos basados en el Estado de Enlace El protocolo OSPF (Open Shortest Path First), utilizado en Internet, emplea esta tcnica. e
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 informacin. o Cada encaminador env perdidicamente el paquete de estado de enlaa o ces a todos los encaminadores de la red. Estos mensajes se difunden por inundacin. o Cada encaminador, con la informacin recibida, conoce la topolog como a pleta de la red y calcula el mejor camino a todos sus destinos (aplicando, por ejemplo, el algoritmo de Dijkstra)

2.

3.

c 2003 GSyC

(a)

3 3

2 2 2

Initially After 1 exchange After 2 exchanges After 3 exchanges 4 After 4 exchanges

3 3 3 5 5 7 7

Redes: Nivel de Red

117

Redes: Nivel de Red

Encaminamiento (cont.)

118

A A 5

D 1 E 8 6 7 F

Seq. Age

Seq. Age A 4 C 2 F 6

Seq. Age B 2 D 3 E 1

Seq. Age

Seq. Age A 5 C 1 F 8

(a)

(b)

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

c 2003 GSyC

Redes: Nivel de Red

Encaminamiento (cont.)

Encaminamiento jerrquico a
Si la red es muy grande, las tablas de encaminamiento se hacen inmanejables: se tarda mucho en calcular los caminos ptimos o se genera mucho trco de control para conseguir difundir la informacin a o necesaria para los algoritmos de encaminamiento Solucin: Encaminamiento Jerrquico: o a Se divide la red en dominios Dentro de cada dominio se encamina segn un algoritmo de los vistos u anteriormente Los dominios estn interconectados mediante pasarelas (gateways) a Las mquinas dentro de un dominio no conocen a las de otro a Los gateways slo conocen a otros gateways o

c 2003 GSyC

Redes: Nivel de Red

B 4 E 5

C 3 F 7

B 6 D 7 E 8

Link B

State C

Packets E

F Seq. Age

119

Encaminamiento (cont.)

120

Full table for 1A Dest. Region 1 1B 1A 1C 2C 2D

Hierarchical table for 1A Dest. 1A 1B 1C 2

Region 2 2A 2B

1A 1B 1C 2A 2B 2C 2D 3A 3B 4A 4B 4C 5A 5B 5C 5D

Line 1B 1C 1B 1B 1B 1B 1C 1C 1C 1C 1C 1C

Hops 1 1 2 3

Line 1B 1C 1B 1C

Hops 1 1 2 2

Region 3

Region 4

5E

1C (b)

(a)

Fig. 5-17. Hierarchical routing.


c 2003 GSyC Redes: Nivel de Red

Control de Congestin o

Control de Congestin o
Un encaminador tiene varios enlaces de entrada y salida. Puede ser que lleguen paquetes ms deprisa de lo que el encaminador a sea capaz de darles salida. Si esta situacin es espordica, se resuelva con buers. o a Los buers son limitados: cuando se llenan se ha alcanzado la congestin o Congestin: cuando el trco deseado/originado en los extremos es mayor o a del que puede encaminar el nivel de red

c 2003 GSyC

1C 1B 1C

5D 5E Region 5

3B

4B

4C

3A

4A

5A

5B

5C

3 4 4 4 5 5 6 5 (c)

3 4 3 2

4 5

1C 1C

3 4

121

Redes: Nivel de Red

Control de Congestin (cont.) o

122

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

c 2003 GSyC

Redes: Nivel de Red

Control de Congestin (cont.) o

123

IP: Internet Protocol

c 2003 GSyC

Redes: IP: Internet Protocol

Introduccin o

124

Introduccin o
IP es un protocolo de Nivel de Red que ofrece un servicio de entrega de mensajes (datagramas): no orientado a conexin o no able Dentro de un datagrama IP se encapsula una unidad de datos de uno de los siguientes protocolos: ICMP Internet Control Message Protocol IGMP Internet Group Management Protocol TCP Transmission Control Protocol UDP User Datagram Protocol

c 2003 GSyC

Redes: IP: Internet Protocol

Datagramas IP

125

Datagramas IP
0 versin 4 longitud cabecera 8 tipo de servicio(TOS) flags (3 bits) protocolo direccin IP origen direccin IP destino opciones (en su caso) 16 longitud total offset de fragmentacin cabecera
Redes: IP: Internet Protocol

31

identificacin tiempo de vida (TTL)

checksum de la cabecera

datos

c 2003 GSyC

Datagramas IP (cont.)

126

versin Actualmente versin 4. La siguiente versin es IPv6. o o o longitud cabecera Nmero de palabras de 32 bits que ocupa la cabera. u Normalemente es 5 (20 bytes), cuando no hay opciones TOS Se usan slo 4 bits para indicar tipo de servicio a ofrecer: o minimizar retardo maximizar rendimiento maximizar abilidad minimizar coste econmico o

c 2003 GSyC

Redes: IP: Internet Protocol

Datagramas IP (cont.)

127

longitud total En bytes. Tamao mximo: 65535 bytes. Normalmente n a es menor de 576 bytes. Dependiendo del nivel de enlace, cualquier mquina puede necesitar fragmentar un datagrama IP al encaminarlo. a identicacin Diferente para cada datagrama que genera una mquina o a (se va incrementando de 1 en 1). Distintos fragmentos del mismo datagrama mantienen el mismo nmero de identicacin. u o ags Uno para indicar si este datagrama no puede fragmentarse, y otro para indicar si hay ms fragmentos de este datagrama a oset de fragmentacin Generado al fragmentar un datagrama, le siro ve al destino nal para reensamblarlo. TTL Indica el nmero mximo de encaminadores que el datagrama puede u a atravesar. Normalmente se coloca a 32 64. Cada encaminador lo o decrementa, y si alcanza 0 se descarta el datagrama, envindose al a originador del datagrama un mensaje ICMP.

c 2003 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 unicamente sobre la cabera del datagrama. direcciones origen y destino Valores de 32 bits. opciones Informacin opcional. No todas las mquinas y encaminadores o a las soportan. El campo de opciones se rellena con ceros por la derecha para asegurar un mltiplo de 32 bits. Ejemplos de opciones: u restricciones de seguridad ruta recorrida marca de tiempo encaminamiento en origen

c 2003 GSyC

Redes: IP: Internet Protocol

Direcciones IP

129

Direcciones IP
Cada interfaz f sico conectado a la Internet tiene asignada una direccin o IP que resulta unica en toda la red. Los 32 bits se suelen expresar en ((notacin decimal puntuada)): 212.128.4.4 o El rango de direcciones se divide en 5 clases: Clase A B C D E Rango 0.0.0.0 a 127.255.255.255 128.0.0.0 a 191.255.255.255 192.0.0.0 a 223.255.255.255 224.0.0.0 a 239.255.255.255 240.0.0.0 a 247.255.255.255

c 2003 GSyC

Redes: IP: Internet Protocol

Direcciones IP (cont.)

130

Los primeros bits de una direccin indican cul es su clase. o a En cada clase, es distinto el nmero de bits de red y el de bits de mquina. u a
Clase A 0
7 bits id red 14 bits id red 21 bits id red 28 bits 24 bits id maquina 16 bits id maquina 8 bits id maquina

Clase B

Clase C

Clase D

id grupo multicast 27 bits reservado para usos futuros

Clase E

c 2003 GSyC

Redes: IP: Internet Protocol

Direcciones IP (cont.)

131

Tipos de direcciones IP unicast Representan a una sola mquina a multicast Representan a un grupo de mquinas a broadcast Representan a todas las mquinas de una subred a

c 2003 GSyC

Redes: IP: Internet Protocol

Direcciones IP (cont.)

132

Quin asigna direcciones IP? e Tres organismos regionales: ARIN (Amrica), RIPE (Europa y Africa) y e APIC (Asia). RIPE delega en organismos regionales (normalmente por pa ses). En Espaa, el organismo es Red.es, Entidad Pblica Empresarial adscrita n u al Ministerio de Ciencia y Tecnolog a. Una organizacin adquiere una (o ms) direcciones de clase, y el admio a nistrador local de la organizacin reparte la direccin de clase entre todas o o sus mquinas. a ICANN (Internet Corporation for Assigned Names and Numbers) es una organizacin internacional creada en 1998 para coordinar todas las tareas o de asignacin de nombres y direcciones. o

c 2003 GSyC

Redes: IP: Internet Protocol

Direcciones IP (cont.)

133

Subredes En ocasiones, por razones organizativas o topolgicas, se utilizan algunos o bits de mquina como bits de subred. a Sobre todo con direcciones de clases A y B. Dada una direccin de red otorgada a una organizacin, el administrao o dor decidir si utilizar subredes, y el nmero de bits de mquina que a a u a utilizar para indicar la subred. a

c 2003 GSyC

Redes: IP: Internet Protocol

Direcciones IP (cont.)

134

El nmero de bits con el que se indica la subred se denota con una mscara u a de subred: 32 bits, 1 para bits de red y subred, 0 para bits de mquina. a Ejemplos:
Direccin de clase o 163.117.0.0 Mscara a 255.255.255.0 Subredes 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 direccin (bits de mquina a cero) como direccin de la red o a o la ultima direccin (bits de mquina a uno) como direccin de broadcast. o a o

c 2003 GSyC

Redes: IP: Internet Protocol

Encaminamiento

135

Encaminamiento
Cualquier mquina IP puede est o no congurada como encaminador: a a Si NO lo est los datagramas IP que recibe que no son para ella, se a tiran. Si lo est, se tratan de encaminar. a

c 2003 GSyC

Redes: IP: Internet Protocol

Encaminamiento (cont.)

136

Para encaminar, una mquina consultar su tabla de encaminamiento. En a a ella, para enviar un datagrama a una cierta direccin IP destino, buso car por este orden: a 1. Una entrada con una direccin IP de mquina igual a la buscada. o a 2. Una entrada con una direccin IP de red igual a la parte de red de la o buscada. 3. Una entrada por defecto (0.0.0.0).

c 2003 GSyC

Redes: IP: Internet Protocol

Encaminamiento (cont.)

137

Las tablas de encaminamiento tienen el aspecto:


% netstat -nr Kernel IP routing table Destination Gateway 163.117.137.0 0.0.0.0 127.0.0.0 0.0.0.0 0.0.0.0 163.117.137.2 U ruta utilizable G ruta indirecta (pasarela)

Genmask 255.255.255.0 255.0.0.0 0.0.0.0

Flags U U UG

MSS 1500 3584 1500

Window 0 0 0

irtt 0 0 0

Iface eth0 lo eth0

c 2003 GSyC

Redes: IP: Internet Protocol

Encaminamiento (cont.)

138

CIDR El mecanismo de las clases A, B y C se ha mostrado muy inexible 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 Solucin (mientras que se pasa a IPv6): CIDR (Classless Inter Domain o Routing ): Encaminamiento sin clases.

c 2003 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 mscaras mediante prejos: a 193.147.71.0/25 indicando que los 25 primeros bits son los signicativos en la direccin o anterior (entra el primer bit del ultimo byte). Las direcciones pasan a comprarse de esta manera. Las tablas de encaminamiento se construyen y consultan de esta manera.

c 2003 GSyC

Redes: IP: Internet Protocol

ARP (Address Resolution Protocol)

140

ARP (Address Resolution Protocol)


El protocolo de resolucin de direcciones ARP proporciona una forma de o pasar de una direccin IP a una direccin Ethernet. o o Cuando el nivel IP va a enviar un datagrama con una cierta direccin IP o de destino: Si la direccin de destino es de la misma subred, esa mquina es o a directamente a quien hay que enviar la trama Ethernet que contenga el datagrama. Si no, la tabla de encaminamiento da la direccin IP del siguiente o salto, que es el encaminador a quien hay que enviar la trama Ethernet que contenga el datagrama. En cualquiera de los dos casos, slo se conoce la direccin IP de una o o mquina adyacente a la que pasar el datagrama, pero para formar la a trama Ethernet se necesita conocer la direccin Ethernet de destino. o
c 2003 GSyC Redes: IP: Internet Protocol

ARP (Address Resolution Protocol) (cont.)

141

Para conocer la direccin Ethernet de una mquina de la misma subred, o a dada su direccin IP, una mquina hace lo siguiente: o a 1. Env una trama Ethernet de broadcast consistente en una solicitud a ARP, conteniendo la direccin IP en cuestin. o o 2. Aquella mquina que reciba una solicitud ARP preguntando por su a propia direccin IP, contesta con una trama Ethernet dirigida a quien o hizo la pregunta, conteniendo una respuesta ARP indicando la direccin Ethernet pedida. o Cada mquina mantiene una cache de correspondencias direcciones IP a a direcciones Ethernet: se guarda los resultados de las solicitudes que hace aprende de todas las solicitudes de otras (aprovechando que las solicitudes son broadcast.
c 2003 GSyC Redes: IP: Internet Protocol

ARP (Address Resolution Protocol) (cont.)

142

Formato del paquete de solicitud/respuesta de ARP: ARP puede usarse en combinacin con otros protocolos de nivel de o red (no slo IP), por lo que el formato var o 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). e En una solicitud, los campos ((origen)) llevan los datos de la mquina a que pregunta, y de los campos ((destino)) slo va relleno IP Dest., o ya que Eth. Dest. es justo lo que se pregunta Al formar la respuesta, la mquina interrogada cambia los dos campos a ((origen)) por los ((destino)), rellenando el que falta (que es su direccin o Ethernet pedida).

c 2003 GSyC

Redes: IP: Internet Protocol

ARP (Address Resolution Protocol) (cont.)

143

ARP gratuito: Una mquina puede enviar una solicitud ARP preguna tando sobre su propia direccin IP. Propsitos: o o detectar direcciones IP duplicadas forzar a que todos actualicen la entrada de la cache correspondiente ARP delegado (proxy ARP): Un encaminador puede contestar a una solicitud ARP como si fuera la mquina destino, cuando esa mquina a a destino es alcanzable a travs de dicho encaminador. e

c 2003 GSyC

Redes: IP: Internet Protocol

RARP (Reverse Address Resolution Protocol)

144

RARP (Reverse Address Resolution Protocol)


En ocasiones es necesario un mtodo para obtener la direccin IP de una e o mquina a partir de su direccin Ethernet. a o Ejemplo: Al arrancar una estacin sin disco, no puede tener en ningn o u chero de conguracin su direccin IP. Slo sabe que tiene una tarjeta o o o Ethernet en la que est grabada su direccin Ethernet. a o Mecanismo de RARP: 1. La mquina env un broadcast de una solicitud RARP, indicando su a a direccin Ethernet. o 2. Alguna mquina de la subred le enviar una respuesta RARP ina a dicndole cul es su direccin IP. a a o

c 2003 GSyC

Redes: IP: Internet Protocol

RARP (Reverse Address Resolution Protocol) (cont.)

145

Lo habitual es tener una mquina en la subred que acte como servia u 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 proteccin frente a fallos, se colocan varios servidores o de RARP en la misma subred, el protocolo establece que se tomar slo a o la primera respuesta RARP recibida por la mquina que lanzo la solicitud a RARP. Alternativas a RARP: BOOTP (similar) y DHCP (ms complejo). a

c 2003 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 mquinas. a Los mensajes ICMP se transmiten encapsulados en datagramas IP. Su formato es:
0 tipo 8 cdigo 16 checksum de todo el mensaje ICMP 31

datos dependiendo de tipo ycdigo

c 2003 GSyC

Redes: IP: Internet Protocol

ICMP (Internet Control Message Protocol) (cont.)

147

Ejemplos de mensajes ICMP:


tipo 0 3 3 3 8 11 12 13 14 cdigo o 0 0 1 3 0 0 1 0 0 descripcin o respuesta de eco destino inalcanzable: red inalcanzable destino inalcanzable: mquina inalcanzable a destino inalcanzable: puerto inalcanzable solicitud de eco tiempo excedido: TTL = 0 cabecera IP mal: falta una opcin o solicitud de marca de tiempo respuesta de marca de tiempo

c 2003 GSyC

Redes: IP: Internet Protocol

NAT (Network Address Translation)

148

NAT (Network Address Translation)


Existen unos rangos de direcciones IP privadas, reservadas para mbia to local, y que no son utilizables globalmente en Internet:
10.0.0.010.255.255.255 172.16.0.0172.31.255.255 192.168.0.0192.168.255.255

Para paliar la escasez de direcciones, una organizacin puede usar o direcciones privadas internamente, y tener una sola direccin IP global o (pblica) en la mquina que da salida a Internet. u a Esta mquina utiliza NAT para que los datagramas puedan entrar/salir a de/a las mquinas internas. Muy resumidamente lo que hace es cama biar las direcciones IP privadas de los datagramas por la suya pblica. u

c 2003 GSyC

Redes: IP: Internet Protocol

Congestin en Internet o

149

Congestin en Internet o
El nivel de red (IP) ofrece un servicio basado en datagramas. La principal fuente de prdidas de paquetes en Internet se debe a la cone gestin de encaminadores, que actan descartando paquetes. o u IP no toma ninguna medida para prevenir o disminuir la congestin: o ser labor de protocolos de niveles superiores, en su caso. a

c 2003 GSyC

Redes: IP: Internet Protocol

Congestin en Internet (cont.) o

150

UDP: User Datagram Protocol

c 2003 GSyC

Redes: UDP: User Datagram Protocol

Introduccin o

151

Introduccin o
UDP es un protocolo sencillo que implementa un nivel de transporte orientado a datagramas: NO orientado a conexin. o NO able. Los datagramas UDP se encapsulan dentro de la parte de datos de un datagrama IP. Una aplicacin que utilice UDP para transmitir datos, producir exactao a mente un datagrama UDP cada vez que la aplicacin quiera enviar datos. o Dicho datagrama UDP se encapsular en un datagrama IP. a Si ese datagrama IP va a exceder el tamao mximo de la unidad de datos n a del nivel de enlace (ej: Trama Ethernet), se fragmentar. a
c 2003 GSyC

Redes: UDP: User Datagram Protocol

Datagramas UDP

152

Datagramas UDP
0 nmero de puerto origen longitud total 16 nmero de puerto destino checksum de todo el datagrama UDP (opcional) 31

datos (en su caso)

La longitud del datagrama puede ser un nmero impar de bytes. u

c 2003 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 ms una pseudo-cabecera que se a coloca delante:
0 16 direccin IP de origen direccin IP de destino ceros protocolo longitud total (repetido) nmero de puerto destino checksum de todo el datagrama UDP (opcional) 31 pseudo-cabecera

nmero de puerto origen longitud total

datos (en su caso)

byte de relleno (ceros)

c 2003 GSyC

Redes: UDP: User Datagram Protocol

Puertos

154

Puertos
En una mquina multiproceso, el nivel de transporte debe preocuparse de a saber a qu proceso va destinado un datagrama UDP o segmento TCP e que acaba de llegar por la red. Por ello, los procesos que usan la red lo hacen a travs de puertos. e Cada puerto del Nivel de Transporte proporciona a una aplicacin un punto o de acceso a la red de comunicaciones, con lo que sta puede dialogar con e otra aplicacin situada en un puerto de una mquina remota. o a

c 2003 GSyC

Redes: UDP: User Datagram Protocol

Puertos (cont.)

155

As el Nivel de Transporte TCP/IP: , multiplexa las unidades de datos que env las aplicaciones a travs an e de los puertos, encapsulndolas en datagramas UDP o segmentos a TCP demultiplexa los datagramas UDP y los segmentos TCP, pasando los datos a las aplicaciones. Los puertos se identican por un nmero de 16 bits. Los puertos UDP y u TCP se manejan por separado: el puerto 7 UDP y el puerto 7 TCP son puertos distintos.

c 2003 GSyC

Redes: UDP: User Datagram Protocol

Puertos (cont.)

156

Los puertos menores que 1024 (puertos privilegiados) estn reservados y a asignados universalmente a aplicaciones de red conocidas. En una mquina Unix est asignacin est en chero /etc/services: a a o a
echo echo discard discard daytime daytime netstat ftp-data ftp telnet smtp time time www www 7/tcp 7/udp 9/tcp 9/udp 13/tcp 13/udp 15/tcp 20/tcp 21/tcp 23/tcp 25/tcp 37/tcp 37/udp 80/tcp 80/udp sink null sink null

# default ftp data port

mail timserver timserver http # WorldWideWeb HTTP # HyperText Transfer Protocol

c 2003 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 mquina. Un navegador desde otra mquina a a har peticiones al puerto 80 del servidor, y escuchar las respuestas en un a a puerto suyo no privilegiado. En vez de tener un servidor escuchando en cada puerto, un slo proceso o (inetd) escucha en varios, y se encarga de arrancar el proceso adecuado segn el puerto concreto por el que lleg la peticin. u o o Ambos mecanismos conviven: inetd escucha en varios puertos, y en otros (los ms frecuentemente utilizados) lo hace directamente el proceso invoa lucrado.

c 2003 GSyC

Redes: UDP: User Datagram Protocol

Servicio dado por UDP

158

Servicio dado por UDP


El servicio ofrecido por UDP slo aumenta el ofrecido por IP en: o nmeros de puerto u un checksum optativo Por ello el servicio ofrecido es NO able, presentando problemas que las aplicaciones pueden querer resolver. pueden perderse datagramas pueden duplicarse datagramas pueden desordenarse datagramas Pero es un protocolo much simo ms ligero que TCP, y en una red local a (hay CRC y no hay encaminadores) puede compensar.
c 2003 GSyC

Redes: UDP: User Datagram Protocol

Servicio dado por UDP (cont.)

159

TCP: Transmission Control Protocol

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Introduccin o

160

Introduccin o
TCP (Transmission Control Protocol): Protocolo de Transporte. Ofrece un servicio orientado a conexin y able. o Unidad de datos: Segmento. Se encapsula dentro de IP. Ofrece servicio de puertos (como UDP).

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Servicio Orientado a Conexin o

161

Servicio Orientado a Conexin o


La transmisin de datos de nivel de transporte presenta las fases: o establecimiento de la conexin o intercambio de datos liberacin de la conexin. o o Peculiaridad: Ambos extremos pueden transmitir y recibir datos simultneamente. a Los datos de la aplicacin son troceados en segmentos del tamao o n que TCP considera adecuado (diferente a UDP!).

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Servicio Fiable

162

Servicio Fiable
Este es el primer nivel en el que se proporciona abilidad. Objeto: Recuperarse de prdidas y desorden producido por IP. e Idea bsica: a Los segmentos con datos llevan un nmero de secuencia. u El receptor de los datos debe mandar asentimientos (ACKs). Para cada segmento con datos transmitido se espera un plazo de tiempo a que llegue su asentimiento. Si vence el plazo, se retransmite el segmento. Para asentimientos y retransmisiones se utiliza un protocolo de ventana. El receptor reordena segmentos y descarta los duplicados.

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Segmentos TCP

163

Segmentos TCP
0 nmero de puerto origen nmero de secuencia nmero de asentimiento longitud cabecera reseervado (6 bits) URG ACK PSH RST SYN FIN tamao de la ventana puntero de datos urgentes 16 nmero de puerto destino 31

checksum de todo el segmento TCP opciones (en su caso)

datos (en su caso)

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Segmentos TCP (cont.)

164

Puertos: TCP los asocia con la aplicacin origen y destino del sego mento (como UDP). Longitud cabecera: Tamao de la cabecera en palabras de 32 bits. Lo n normal es 5 (20 bytes). Checksum: Sobre pseudo-cabecera, cabecera y datos, calculado como en UDP. Si no se pasa la comprobacin, se descarta el datagrama. o

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Nmeros de secuencia u

165

Nmeros de secuencia u
Cada segmento con datos lleva un nmero de secuencia u El nmero de secuencia numera bytes, y NO segmentos: identica el u nmero de orden del primer byte de datos que lleva el segmento. u Al establecerse una conexin se elige un nmero de secuencia inicial o u para que no se confundan segmentos an en trnsito procedentes de u a conexiones diferentes.

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Nmeros de asentimiento u

166

Nmeros de asentimiento u
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 nmero de asentimiento indica el nmero de secuencia del prximo u u o byte que se espera recibir, asintindose de esta manera hasta el byte e anterior incluido. No hay rechazo selectivo: No hay forma en que el receptor le diga al emisor que tiene los bytes del 300 al 700 excepto el trozo 400-500.

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Nmeros de asentimiento (cont.) u

167

Cada segmento tiene un campo para el nmero de asentimiento: siemu pre que se manda un segmento se aprovecha para asentir los datos que est enviando el otro extremo: e Si el lado que env un asentimiento tiene datos que enviar al otro a lado, puede aprovechar un segmento para las dos cosas: env el a asentimiento ((arrecucas)) de los datos (piggybacking ). Si el lado que env un asentimiento no tienen datos que enviar al a otro lado, env un segmento slo con la cabecera, sin datos. a o Importante: Cada lado de la conexin utiliza sus nmeros de secueno u cia (partiendo de su nmero de secuencia inicial) y asiente los que u est usando el otro extremo. a

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Nmeros de asentimiento (cont.) u

168

Ventana Deslizante Se usa un protocolo de ventana para coordinar el env de segmentos o y asentimientos. El receptor indica en el campo de tamao de ventana el nmero n u de bytes (a partir del indicado en el nmero de asentimiento) que u est dispuesto a recibir del emisor. a El emisor puede transmitir esos bytes aunque no reciba asentimientos, pero una vez transmitidos tendr que parar hasta que sepa ms del a a receptor. Segn el receptor va recibiendo datos, puede ir asintiendo y deslizando u la ventana para aceptar ms. a Como ambos extremos pueden enviar datos, hay dos ventanas diferentes, una para cada sentido.

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Nmeros de asentimiento (cont.) u

169

Ejemplo: El emisor recibe un segmento con:


Nmero de asentimiento: 5 u Tamao de ventana: 8. n

El emisor ha transmitido los bytes hasta el 9 (incluido), sin recibir nada del receptor. En ese momento la situacin es la siguiente: o ventana

10

11

12 13 14 15 16
sin aceptar de la aplicacin

enviados y asentidos

enviados y no asentidos

pendientes para enviar

El tamao de la ventana es variable dinmicamente (pero deber n a an mantenerse las ((antiguas promesas))). El tamao de la ventana permite tambin hacer control de ujo exn e tremo a extremo.
c 2003 GSyC Redes: TCP: Transmission Control Protocol

Establecimiento de conexin o

170

Establecimiento de conexin o
A segmento con bit SYN nm.secuencia = x segmento con bit SYN nm.secuencia = y nm.asentimiento = x+1 segmento nm.asentimiento = y+1 B

Es necesario ponerse de acuerdo en el nmero de secuencia inicial de los dos u sentidos de transmisin (((triple apretn de manos)), three-way handshake). o o

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Liberacin de conexin o o

171

Liberacin de conexin o o
A segmento con bit FIN B

segmento con asentimiento del FIN segmento con bit FIN

segmento con asentimiento del FIN

Como la conexin permite la transmisin bidireccional de datos (full duplex), es o o necesario cerrar cada sentido de la transmisin (por separado). o
c 2003 GSyC Redes: TCP: Transmission Control Protocol

Liberacin de conexin (cont.) o o

172

Plazos para asentimiento Cuando se env un segmento, se arranca un temporizador para esperar a su asentimiento. Problema: Qu plazo le ponemos? e Se utiliza un algoritmo adaptativo para optimizar lo ms posible la transa misin de datos. o Para cada segmento se calcula el tiempo de ronda (round-trip time, RTT): tiempo entre que se env el segmento y se recibe el asentimiento. Se va a tomando su media en el tiempo. Normalmente se elige un plazo de dos veces el tiempo de ronda medio, teniendo cuidado con la varianza.

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Liberacin de conexin (cont.) o o

173

Entrega de datos a la aplicacin o Cuando llega un segmento con la bandera PSH activada se est indicando a al receptor que pase esos datos a la aplicacin. o No slo se pasa ese segmento, sino tambin todos los datos asentidos que o e el receptor tuviera pendientes de entregar a la aplicacin. o

c 2003 GSyC

Redes: TCP: Transmission Control Protocol

Redes: TCP: Transmission Control Protocol

Pueden enviarse datos denominados urgentes (o ((fuera de banda))), que el receptor debe pasar inmediatamente a la aplicacin, lo antes posible. o

Se indican mediante el empleo de la bandera URG: Cuando est levantada, a el campo puntero a datos urgentes apunta al ultimo byte de datos urgentes del segmento.

No est especicado dnde empiezan los datos urgentes. Se deja a la a o aplicacin. o

8 b 5 )  ) 3 e d  ) d  8"  ) d # x  f Q 4(Q)ptp76Y)VwV2 Yyw# &YV VQ) ) f 3 e )  5   5 )  )3 5   t(&)(6Ydw$)"(6Y % # 6(6Y# v76e  3&) u&)   3  9 '  5 # 5 W ) ) c 5 # )(f  $)" (% 6)X6t2p$#"(6)X6Vs6Y rb(6)a)`&(5 R

g&(6) qp ' (Qi0#d ) 5 8" ) 3 e " # h$#Y % # 6(6g&d(Q#(4a)&)(6eX6V2   TR   #d "  5 ) ) 5 f ` 3 5 # S

x ) b ` f ` f 8 b 5 ) )  ) 3 e ) d  ) d  8" y 5    rVYQ)XuW8`GQ#(& 476YVp76YVwV2 YX6V7f # 5 2 c 5 ) ` )  '  ) 5 #2 "5 ) W ) S d(Q(34Y 4b76a)&V  0)" (% 6X6VY$#(6X6VU TR

4V2 "Yy #0"(5Q) YW "(QVYQ(f&V  TR 8 8 8 5) ` #x C1 S B P S P! 1B

P   B G  G  825 )32   4(674) 1

 G    

Ejemplo de conexin o

Liberacin de conexin (cont.) o o

Ejemplo de conexin o

     F

Datos urgentes

P   B      4(Q)(4) 1 F 825 32

      F

)0" '(& $# ! %   "          825 ) 2   476(34) 1

Ejemplo: Env de un CTRL-C. o

      

)0" '(& $# ! %   "          825 ) 2 9  476(34) 1

)0" '(& $# ! %   "          825 ) 2   476(34) 1

)0" '(& $# ! %   "          825 ) 2   476(34) 1

c 2003 GSyC

  EC1   D B A    6  84(6734) 1 @ 25 ) 2

B A   C1   6  476(34) 1 @  825 ) 2

c 2003 GSyC

  G     

Redes: TCP: Transmission Control Protocol

174

175

$#"(6)X6tpV2 YY6YVa6(fQX6(3f 5 W  ) # 8 5 5 3 5 ) ) `  3`   5 ) d ) g` 8 5 )3 e 5 8 )3 G6 4b(6)Y(6Y)(Q) q"Y(6e  XuWq" w# TR # 8 #d

Ejemplo de conexin (cont.) o

176

DNS: Domain Name System

c 2003 GSyC

Redes: DNS: Domain Name System

Por qu necesitamos el DNS? e

177

Por qu necesitamos el DNS? e


Los humanos preferimos nombres a direcciones IP (ej: cacharro.escet.urjc.es frente a 212.128.1.44) Los nmeros IP estn ligados a la estructura de la red, pero eso no tieu a ne por qu reejarse en el nombrado de mquinas (ej: www.debian.org, e a www.de.debian.org. Los nmeros IP estn ligados a mquinas concretas, puede ser conveu a a niente un nivel de abstraccin no ligado a mquinas (ej: www.urjc.es o a puede cambiar de mquina, y de IP, pero no de nombre). a Es necesario establecer una correspondencia entre nombres y direcciones IP.

c 2003 GSyC

Redes: DNS: Domain Name System

Un poco de historia

178

Un poco de historia
Al principio (aos 70), un unico chero (HOSTS.TXT) con informan cin de todas las mquinas de ARPANET. o a Se obten peridicamente por FTP. Gestin completamente manual. a o o Con el crecimiento de ARPANET se hizo inmanejable. 1984, Paul Mockapetris: primeras RFC que describen el Domain Name System. Especicaciones actuales: RFC 1034 y 1035.

c 2003 GSyC

Redes: DNS: Domain Name System

Estructura de nombrado

179

Estructura de nombrado
Se descentraliza el control consiguindose una estructura jerrquica y fcile a a mente ampliable. Jerarqu de dominios: a Dominio ra (root o .). Gestionado por ICANN (Internet Corporaz tion for Assigned Names and Numbers). Dominios de nivel mximo: a Tradicionales: com, edu, gov, mil, net, org, int, cdigos ISO de o paises (uk, mx, ar, de, es. . . ) En negociacin por ICANN en noviembre de 2000: biz, info, name, o pro, aero, coop, museum Dominios secundarios, terciarios, . . .
c 2003 GSyC

Redes: DNS: Domain Name System

Estructura de nombrado (cont.)

180

Arbol de dominios

com edu gov mil org net es uk ... sun mit eng lcs theory
c 2003 GSyC

acm ieee

urjc

escet rct gsyc


Redes: DNS: Domain Name System

Estructura de nombrado (cont.)

181

Dominios directo e inverso Dominio directo: proporciona para cada nombre una direccin IP. o Dominio inverso: proporciona para cada direccin IP un nombre. o El dominio inverso tambin se conoce como dominio in-addr.arpa. e Los elementos del dominio inverso son las direcciones de red construidas invirtiendo los nmeros que la componen, y terminando en u in-addr.arpa Ejemplo: La red 138.117.0.0 es el dominio inverso 117.138.inaddr.arpa

c 2003 GSyC

Redes: DNS: Domain Name System

Estructura de gestin o

182

Estructura de gestin o
Cada vez que se delega un subdominio se delega tambin su gestin (ine o cluyendo su posible subdivisin sucesiva). o Si el gestor del dominio es delega un subdominio urjc, el responsable de urjc manejar la correspondencia de nombres y direcciones de todas a las mquinas de su dominio. a Si el responsable de urjc lo cree conveniente, puede delegar un subdominio escet, sin que por ello tenga que informar al gestor de es. Hay dominios (ejemplo: com, org) gestionados por varios registrars en rgimen de competencia. e

c 2003 GSyC

Redes: DNS: Domain Name System

Consulta de una direccin para un nombre o

183

Consulta de una direccin para un nombre o


Cada aplicacin va enlazada con una biblioteca de consulta al DNS (reo solver), con llamadas como gethostbyname(). La consulta normalmente sigue los pasos siguientes (en una mquina a Unix): Consulta en un chero (/etc/hosts). Consulta en un servidor de DNS (su direccin IP est en /etc/resolv.conf). o a

c 2003 GSyC

Redes: DNS: Domain Name System

Esquema de funcionamiento del DNS

184

Esquema de funcionamiento del DNS


Se trata de mantener la informacin como una base de datos distribuida. o Las consultas al DNS se realizan en modo cliente-servidor: Cuando una aplicacin (cliente) quiere resolver un nombre (que no o aparece en el chero local), pregunta a un servidor de DNS El servidor investiga por su cuenta y devuelve la direccin IP pedida. o

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

c 2003 GSyC

Redes: DNS: Domain Name System

Esquema de funcionamiento del DNS (cont.)

186

Funcionamiento bsico (sin caches) a Cuando un servidor recibe una consulta para resolver un nombre (ejemplo: nic.funet.): 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 direccin IP correspondiente. o 2. En caso contrario pregunta a un servidor del dominio ra que le z, contestar con la direccin IP de un servidor del dominio . a o 3. Luego regunta a ese, obteniendo la direccin IP de un servidor de o funet.. 4. Ahora se pregunta a este ultimo, que ya tiene en sus mapas la direccin o IP pedida. (Cada servidor puede servir uno o varios dominios, o ninguno)

c 2003 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 urjc escet rct gsyc

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


gsyc.escet.urjc.es? telnet resolver

212.128.1.45

c 2003 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 direccin pedida. o Iterativas: Las que le hace otro servidor, a las que responden con la direccin IP del servidor del siguiente dominio en la jerarqu o a. Siempre que pueden, los servidores usan datos de su cache.

c 2003 GSyC

Redes: DNS: Domain Name System

Tipos de servidores

189

Tipos de servidores
Segn cmo son utilizados: u o Reenviador (forwarder). Los servidores lo usan antes de consultar al resto del DNS. Utilizados por servidores para centralizar las consultas. Evitan, por ejemplo, el acceso directo a servidores ra z. Esclavo. Utilizados por servidores en lugar del resto del DNS (por ejemplo, si hay cortafuegos).

c 2003 GSyC

Redes: DNS: Domain Name System

Tipos de servidores (cont.)

190

Segn cmo reciben los datos: u o Primario. Tiene la informacin actualizada. o Secundario. Copia del primario. Cache. Guardan datos sobre los que han consultado. Segn el lugar de procedencia del dato: u Con autoridad (authoritative). Tiene el mapa original para el dominio consultado (primario o secundario). Sin autoridad. Tiene el dato en su cache.

c 2003 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 cachs. e Clase. En Internet siempre IN. Tipo. Dene el tipo del registro. Valor. Contenido que depende del campo tipo.

c 2003 GSyC

Redes: DNS: Domain Name System

Mapas de dominio (cont.)

192

Tipos de registro SOA: Da informacin de gestin una zona del dominio (servidor de o o nombres primario, administrador, etc.). NS: Identica al servidor de nombres. A: Dene una direccin IP de la estacin (puede tener varias). o o MX: Dene el servidor de correo del dominio. CNAME: Permite asociar un alias a un nombre de dominio. HINFO: Da informacin del tipo de mquina y sistema operativo. o a TXT: Da informacin del dominio. o

c 2003 GSyC

Redes: DNS: Domain Name System

Mapas de dominio (cont.)

193

urjc.es.

172800

IN

172800 172800 www 172800 venus 172800 escet 172800 gsyc.escet 172800

IN IN IN IN IN IN

Ejemplo SOA venus.urjc.es. root.venus.urjc.es. ( 2000030702 ; Nmero de serie u 86400 ; Refresco 7200 ; Reintento 2592000 ; Expiracin o 172800 ) ; Ttl NS venus.urjc.es. MX venus.urjc.es. CNAME venus.urjc.es. A 193.147.184.8 NS gsyc.escet.urjc.es A 212.128.1.45

c 2003 GSyC

Redes: DNS: Domain Name System

Formato de menaje DNS

194

Formato de menaje DNS


Paquetes iguales para consultas y respuestas. Cabecera ja de 12 bytes: Identicacin (2 bytes). Correspondencia consultas-respuestas. o Banderas (2 bytes). Consulta/respuesta, truncamiento, tipo de peticin (directa, inversa, estado), respuesta con autoridad, peticin reo o cursiva, error. Nmero de consultas (2 bytes). u Nmero de RRs de respuesta (2 bytes). u Nmero de RRs de autoridad (2 bytes). u Nmero de otros RRs (2 bytes). u

c 2003 GSyC

Redes: DNS: Domain Name System

Formato de menaje DNS (cont.)

195

Datos, tamao variable: n Consultas. Respuestas. Autoridad. Ms informacin. a o

c 2003 GSyC

Redes: DNS: Domain Name System

Formato de menaje DNS (cont.)

196

Consulta Cada consulta de un mensaje DNS (normalmente slo una) tiene: o Nombre de la peticin: secuencia de etiquetas (tamao, 1 byte, cadeo n na, hasta 63 bytes), terminada por la etiqueta root (byte de tamao n a 0). Tipo de consulta (2 bytes). A, NS, PTR, etc. Clase de consulta (2 bytes). Normalmente IN.

c 2003 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 peticin. o Tipo (2 bytes). Clase (2 bytes). Tiempo de vida (4 bytes). Tamao de los datos del recurso (2 bytes). n Datos del recurso (valor).

c 2003 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 ms de 512 bytes (truncada), el resolver al a repite usando TCP. Las transferencias de zona de primario a secundario usan TCP.

c 2003 GSyC

Redes: DNS: Domain Name System

Referencias

199

Referencias
DNS: The Domain Name System, cap tulo 14 de TCP/IP Illustrated, Volume 1, por W. Richard Stevens, Addison Wesley, 1994. FAQ de comp.protocols.tcp-ip.domains: http://www.intac.com/~cdp/cptd-faq/ ICANN: http://www.icann.net/

c 2003 GSyC

Redes: DNS: Domain Name System

Referencias (cont.)

200

HTTP

c 2003 GSyC

Redes: HTTP

Qu es HTTP? e

201

Qu es HTTP? e
Hypertext Transfer Protocol. Es el protocolo ms habitual para servir pginas web. a a Protocolo cliente-servidor. Normalmente funciona sobre TCP, con el servidor (normalmente) en el puerto 80. No olvidar que HTTP puede servir tanto contenido esttico (cheros) a como dinmico (el resultado de ejecutar programas en el servidor). a

c 2003 GSyC

Redes: HTTP

Interaccin cliente-servidor en HTTP o

202

Interaccin cliente-servidor en HTTP o


El cliente abre una conexin TCP con el servidor. o El cliente env un mensaje de peticin. a o El servidor responde con un mensaje de respuesta. El servidor cierra la conexin TCP. o HTTP no mantiene estado (no hay informacin sobre las conexiones entre o una peticin y otra). o

c 2003 GSyC

Redes: HTTP

Interaccin cliente-servidor en HTTP (cont.) o

203

Formato de los mensajes Mensajes legibles (compuestos por l neas de texto casi en ingls): e L nea inicial (diferente para peticin y respuesta), terminada en CRLF. o Cero o ms l a neas de cabecera, cada una terminada en CRLF: Cabecera-X: Valor-X CRLF L nea en blanco (CRLF). Cuerpo del mensaje (opcional). Adems de CRLF, deber tratarse adecuadamente l a an neas terminadas en LF.

c 2003 GSyC

Redes: HTTP

Interaccin cliente-servidor en HTTP (cont.) o

204

L nea inicial (peticiones) Especica el recurso que se solicita, y qu se quiere de l: e e Nombre de mtodo (GET, POST, HEAD). e Camino de acceso (path) Versin de HTTP (siempre HTTP/x.x). o Ejemplo: GET /directorio/otro/fichero.html HTTP/1.0

c 2003 GSyC

Redes: HTTP

Interaccin cliente-servidor en HTTP (cont.) o

205

L nea inicial (respuestas) Proporciona informacin de estado: o Versin de HTTP (siempre HTTP/x.x). o Cdigo numrico de estado. o e Cdigo de estado en ingls. o e Cdigos de estado: o 1xx: Mensaje informativo. 2xx: Resultado exitoso (200 OK). 3xx: Redireccin del cliente a otra URL (301 Moved permanently, 303 o See Other). 4xx: Error en el lado del cliente (404 Not Found). 5xx: Error en el lado del servidor (500 Server Error).
c 2003 GSyC Redes: HTTP

Interaccin cliente-servidor en HTTP (cont.) o

206

L neas de cabecera Mismo formato que las cabeceras de correo y News (RFC 822, seccin 3). o 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: (direccin de correo). o User-Agent: (ej: Mozilla/4.7). Se recomienda incluir en las respuestas al menos: Server: (ej: Apache/1.3). Last-Modied: (fecha GMT, usado por las caches).

c 2003 GSyC

Redes: HTTP

Interaccin cliente-servidor en HTTP (cont.) o

207

Cuerpo del mensaje En las respuestas contiene el recurso pedido o texto explicando un error. En las peticiones contiene datos de usuario o cheros para subir. Si hay cuerpo, normalmente hay algunas cabeceras relativas a l: e Content-Type: tipo MIME de los datos (ej: text/html, image/png). Content-Length: nmero de bytes en el cuerpo. u

c 2003 GSyC

Redes: HTTP

Interaccin cliente-servidor en HTTP (cont.) o

208

Ejemplo (GET, peticin) o GET /~jgb/test.html HTTP/1.0\r\n Connection: Keep-Alive\r\n User-Agent: Mozilla/4.07 [en] (X11; I; Linux 2.2.15 i586; Nav) ... Host: gsyc.escet.urjc.es\r\n Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, i ... Accept-Encoding: gzip\r\n Accept-Language: en\r\n Accept-Charset: iso-8859-1,*,utf-8\r\n \r\n

c 2003 GSyC

Redes: HTTP

Interaccin cliente-servidor en HTTP (cont.) o

209

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

>.

c 2003 GSyC

Redes: HTTP

Interaccin cliente-servidor en HTTP (cont.) o

210

Mtodos HEAD y POST e HEAD: Igual que un GET, pero slo pide las cabeceras. o Se pueden consultar las caracter sticas sin bajarse el chero. POST: Hay datos en el cuerpo (que se suben al servidor). El URI pedido es normalmente el programa que trata los datos enviados. Tambin se pueden enviar datos con un GET (codicndolos en el e a URL pedido).

c 2003 GSyC

Redes: HTTP

Interaccin cliente-servidor en HTTP (cont.) o

211

Ejemplo (POST, peticin) o 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

c 2003 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 peticin. o Pueden encadenarse varias proxies. Ejemplo de peticin a una proxy: o GET http://gsyc.escet.urjc.es/index.html HTTP/1.0

c 2003 GSyC

Redes: HTTP

HTTP 1.1

213

HTTP 1.1
Es una evolucin de HTTP 1.0. o Facilidades espec cas para mquinas virtuales (virtual hosts). a Codicacin por racimos, para respuestas dinmicas (env antes de o a o saber el tamao total). n Uso de conexiones persistentes que permiten varias transacciones sucesivas (se evitan establecimientos de conexin). o Facilidades espec cas para caches (If-Modied-Since, If-UnmodiedSince).

c 2003 GSyC

Redes: HTTP

HTTP 1.1 (cont.)

214

Virtual hosts Para tener virtual hosts es preciso indicar en cada peticin a cul de o a ellos se dirige. Por eso es obligatorio el uso de la cabecera Host. Si un servidor recibe una peticin sin Host, debe devolver un meno saje de error (400 Bad Request). Los servidores tambin han de aceptar primeras l e neas de peticin con o URLs completas, en lugar de caminos (ser lo habitual en versiones a futuras). Ejemplo de peticin m o nima: GET /dir/index.html HTTP/1.1\r\n Host: gsyc.escet.urjc.es\r\n \r\n
c 2003 GSyC Redes: HTTP

HTTP 1.1 (cont.)

215

Codicacin por racimos o Cabecera Transfer-Encoding: chunked. Usada por un servidor que quiere enviar trozos que ya tiene listos antes de tener todo. El cuerpo de cada mensaje por racimos contiene una serie de racimos, cada uno: Comienza por el tamao de los datos del racimo, en hexadecimal, n seguidos por ;, quizs algo ms, y CRLF. a a Los datos, terminados por CRLF. Terminado por una l nea con 0CRLF. Seguido de footers (como cabeceras). Terminado en una l nea en blanco (CRLF).

c 2003 GSyC

Redes: HTTP

HTTP 1.1 (cont.)

216

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

c 2003 GSyC

Redes: HTTP

HTTP 1.1 (cont.)

217

Conexiones persistentes Permiten que varias peticiones y respuestas sean transferidas usando la misma conexin TCP. o Se usan por omisin en HTTP 1.1. o Si se env la cabecera Connection: close, el servidor cerrar la a a conexin despus de cada respuesta. o e Un servidor puede cerrar la conexin antes de enviar todas las reso puestas. El servidor cerrar las conexiones inactivas pasado un plazo (ej: 10 a segundos).

c 2003 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-Modied-Since y If-UnmodiedSince (los clientes pueden usarlos). Respuesta a If-Modied-Since: 304 Not Modied. Respuesta a If-Unmodied-Since: 412 Precondition Failed.

c 2003 GSyC

Redes: HTTP

HTTPS

219

HTTPS
HTTP sobre SSL (secure socket layer). La conexin TCP est cifrada, de forma que una tercera parte no o a puede conocer su contenido. Permite enviar datos sensibles a un servidor web, y recibirlos de l. e Necesita de otros mecanismos (certicados, etc.) para ofrecer un nivel de seguridad razonable. Las URLs son https://.

c 2003 GSyC

Redes: HTTP

Galletitas (cookies)

220

Galletitas (cookies)
Sirven para asociar estado a un conjunto de transacciones (peticiones/respuesta). Normalmente son datos asociados a un usuario (carro de la compra, cuenta de usuario, etc.) Las galletitas son generadas por los servidores, y presentadas por los clientes en ciertas ocasiones. Especicacin original de Netscape, luego propuesta como RFC 2109. o

c 2003 GSyC

Redes: HTTP

Galletitas (cookies) (cont.)

221

Cabecera Set-Cookie Cabecera puesta por un servidor cuando quiere enviar una galletita. Formato: Set-Cookie: Nombre de la galletita y valor (nombre=valor). Fecha de caducidad (expires=fecha). Dominio, camino (domain=dominio path=camino). Para decidir ms tarde si se env una galletita o no. a a secure: si est marcada as slo se transmitir sobre canales a , o a seguros (HTTPS). Ejemplo: Set-Cookie: unnombre=unvalor; expires=Mon, 30-Jan-2001 12:35:23 GMT; path=/dir; domain=mi.dominio.com; secure
c 2003 GSyC Redes: HTTP

Galletitas (cookies) (cont.)

222

Cabecera Cookie Cuando un cliente pide una URL, buscar en su lista de galletitas si a hay alguna que tenga que enviar (mirando su domain por la cola, y su path por su cabeza). Enviar todas las galletitas en una unica cabecera (Cookie). a Dentro de esta cabecera, las galletitas se ordenarn de ms a menos a a espec cas (segn su path). u No se consideran las galletitas con caducidad en el pasado (de hecho, se eliminan). Ejemplo: Cookie: unnombre=unvalor; otronombre=otrovalor

c 2003 GSyC

Redes: HTTP

Referencias

223

Referencias
Denition of URL/URI syntax, RFC 2396. http://www.cis.ohio-state.edu/htbin/rfc/rfc2396.html HTTP Made Really Easy. A Practical Guide to Writing Clients and Servers, por James Marshall. http://www.jmarshall.com/easy/http/ HTTP 1.0, RFC 1945. http://www.cis.ohio-state.edu/htbin/rfc/rfc1945.html HTTP 1.1, RFC 2068. http://www.cis.ohio-state.edu/htbin/rfc/rfc2068.html

c 2003 GSyC

Redes: HTTP

Referencias

224

Referencias
An Overview of SHTTP, por Adam Shostack. hturlhttp://www.homeport.org/ adam/shttp.html Persistent Client State. HTTP Cookies, Netscape. http://www.netscape.com/newsref/std/cookie_spec.html HTTP State Management Mechanism, RFC 2109. http://www.cis.ohio-state.edu/htbin/rfc/rfc2109.html

c 2003 GSyC

Redes: HTTP

Referencias (cont.)

225

Correo electrnico o

c 2003 GSyC

Redes: Correo electrnico o

Algo de terminolog a

226

Algo de terminolog a
Agente de usuario (UA, user agent): programa que se usa como interfaz de usuario para el correo electrnico (leer, componer, enviar, o gestionar, etc.) Agente de transferencia de mensajes (MTA, message transfer agent): se encarga del encamiento y almacenamiento de los mensajes de correo hasta su destino nal. Protocolo de acceso al correo electrnico: lo usa un UA para acceder o a un MTA, y recoger el correo para un usuario. Ejemplo: POP, IMAP. Protocolo de env de correo electrnico: lo usa un MTA para enviar o o correo a otro MTA (tambin puede usarlo un UA para enviarlo a un e MTA). Ejemplo: SMTP.

c 2003 GSyC

Redes: Correo electrnico o

Generalidades

227

Generalidades
Composicin de un mensaje o Todo mensaje consta de 2 partes: Sobre: Cabeceras estandarizadas para identicar el/los destinatarios/remitentes del mensaje... Permiten que el mensaje llegue Contenido: El mensaje propiamente dicho. La RFC822 slo admite texto NVTASCII (Network Virtual Tero minal ASCII ). Para otros tipos: codicadores de binarios (uuencode) y sobre todo extensiones al mensaje (MIME, RFC1341 )

c 2003 GSyC

Redes: Correo electrnico o

Generalidades (cont.)

228

Cabeceras Le dicen al MTA qu debe hacer con el correo. e From: Direccin de origen o To: Direccin/direcciones de destino o 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 dnde ha pasado la carta o Message-id: Identicador del mensaje

c 2003 GSyC

Redes: Correo electrnico o

Generalidades (cont.)

229

Direcciones de correo Dan la informacin necesaria para enviar/recibir un mensaje. o Indican adndeva/dedndeviene, pero no por dnde ha de pasar. o o o Formato Internet: id_usuario@mquina.dominio a O bien, gracias a las clusulas MX de DNS: a id_usuario@dominio

c 2003 GSyC

Redes: Correo electrnico o

MIME

230

MIME
Las RFC 2045 2049 extienden el contenido de los mensajes de correo para que puedan adjuntarse datos genricos (attachments). e Multimedia Internet Mail Extensions dene 5 cabeceras MIME-version: Content-Description: Content-Id: Content-Transfer-Encoding Content-Type: Hay 8 tipos: Text, Image, Audio, Video, Application, Message, Model y Multipart. varios subtipos: Text: html, plain o richtext; Image: gif, jpeg; . . .

c 2003 GSyC

Redes: Correo electrnico o

MIME (cont.)

231

El Content-Type se utiliza para saber cmo tratar en el destino los datos o (con qu aplicacin). e o El Content-Transfer-Encoding se utiliza para saber cmo codicar para o transmitir los datos por la red y descodicar los datos transmitidos. base 64 (ASCII armor) para binarios: grupos de 24 bits se rompen en 4x6 bits. Cada carcter de 6 bits se cuantica en binario y se manda en ASCII a ( el 0 va como una A, el 1 como B. . . ). Se rellena con = al nal. quoted-printable-encoding para textos con acentos: codica los caracteres por encima del 127 con un caracter = y dos d gitos hexadecimales. 7bit, 8bit, binary. . .

c 2003 GSyC

Redes: Correo electrnico o

El protocolo SMTP

232

El protocolo SMTP
agente de usuario (UA) cola de correo saliente agente de transferencia de mensajes (MTA)

usuario
remitente

conexin TCP

Puerto 25/TCP

usuario
destinatario

agente de usuario (UA)

buzones de los usuarios

agente de transferencia de mensajes (MTA)

c 2003 GSyC

Redes: Correo electrnico o

El protocolo SMTP (cont.)

233

Simple Mail Transfer Protocol Dene los comandos que se emplean para comunicarse con/desde un MTA. Cmo? Conexin al puerto tcp/25 y env de rdenes. o o o o Los mensajes estaban limitados a 64K y hab problemas de timeouts, a por lo que la RFC 1425 dene ESMTP (EHLO...)

c 2003 GSyC

Redes: Correo electrnico o

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
c 2003 GSyC Redes: Correo electrnico o

Recepcin de correo de un MTA o

235

Recepcin de correo de un MTA o


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 buzn (y borrarlos o dejarlos) para o que el UA pueda presentarlos en pantalla. Hay varios protocolos para esto: POP2, POP3: Post Oce Protocol. (RFC-1725,1734,1082) IMAP: Internet Message Access Protocol (RFC-1203; 1730 al 1733)

c 2003 GSyC

Redes: Correo electrnico o

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

c 2003 GSyC

Redes: Correo electrnico o

Referencias (cont.)

237

Resumen de RFCs principales RFC821: protocolo SMTP RFC822: formato de mensajes e interpretacin de cabeceras o RFC974: gestin de clusulas MX del DNS o a RFC1425: protocolo ESMTP (Extended SMTP) RFC1341: MIME: Multipurpose Internet Mail Extensions

c 2003 GSyC

Redes: Correo electrnico o

You might also like