Sei sulla pagina 1di 119

Redes

Grupo de Sistemas y Comunicaciones


gsyc-profes@gsyc.escet.urjc.es

Octubre 2004

Introducci n a las o Redes de Ordenadores

c 2004 GSyC

Redes

Objetivos de las Redes de Ordenadores

Objetivos de las Redes de Ordenadores


Compartir recursos: Discos duros, impresoras, programas. . . Compartir informacion: Acceso documentos remotos. . . Mejorar la abilidad: Alternativas, replicacion. . . Incrementar el rendimiento: Maquinas trabajando juntas. . . Servir de medio de comunicacion de personas/comunidades

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Estructura de las Redes

Estructura de las Redes


Diversas maquinas (hosts) se conectan a una subred de comunica ciones que permite el dialogo entre ellas. Dos formas fundamentales de disenar la subred de comunicaciones: mediante canales punto-a-punto mediante canales de radiado broadcast Normalemente hay una mezcla de muchos canales de los dos tipos.

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Topologas comunes en Redes

Topologas comunes en Redes

ESTRELLA

ANILLO

ARBOL

TOTALMENTE CONECTADA

PARCIALMENTE CONECTADA

BUS

SATELITE

ANILLO

c 2004 GSyC

Redes: Introducci n 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 traves de una red de comunicaciones.

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Jerarquas de Protocolos

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

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Jerarquas de Protocolos (cont.)

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

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Jerarquas de Protocolos (cont.)

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 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Jerarquas de Protocolos (cont.)

Maquina origen de una comunicacion El mecanismo basico en cada nivel es: tomar las unidades de datos que le ofrece el nivel superior procesarlos (agrupando, separando, . . . ) y formar sus propias unidades de datos (anadiendo informacion de control en cabeceras) pasar sus unidades de datos al nivel inferior, usando sus servicios Es esto software o hardware?

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Jerarquas de Protocolos (cont.)

10

Maquina destino de una comunicacion El mecanismo basico en cada nivel es: 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 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Jerarquas de Protocolos (cont.)

11

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Jerarquas de Protocolos (cont.)

12

Protocolo Nivel N+1


Protocolo Nivel N

Protocolo Nivel N-1

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Jerarquas de Protocolos (cont.)

13

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Jerarquas de Protocolos (cont.)

14

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

c 2004 GSyC

Jerarquas de Protocolos (cont.)

Protocolo Nivel N+1

Protocolo Nivel N

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Protocolo Nivel N-1

Redes: Introducci n a las Redes de Ordenadores o

15

Jerarquas de Protocolos (cont.)

16

Protocolo Nivel N+1


Protocolo Nivel N

Protocolo Nivel N-1

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Jerarquas de Protocolos (cont.)

17

Protocolo Nivel N+1

Protocolo Nivel N

Protocolo Nivel N-1

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Jerarquas de Protocolos (cont.)

18

Protocolo Nivel N+1


                                                                                                                               

Protocolo Nivel N

c 2004 GSyC

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

c 2004 GSyC

              

       

Protocolo Nivel N-1

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura de Red

19

Arquitectura de Red

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura OSI

20

Arquitectura OSI
En 1983 ISO (Organizacion de Estandares Internacionales) propone un modelo de referencia para arquitecturas de redes: Modelo de Referencia para la Interconexion de Sistemas Abiertos (ISO OSI Reference Model). El Modelo OSI no es estrictamente una arquitectura, sino un marco al que deben someterse protocolos concretos para establecer una arquitectura conforme a OSI OSI no dene los servicios y protocolos exactos para cada nivel, solo aquello de lo que cada nivel debe ocuparse.

c 2004 GSyC

Redes: Introducci n 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 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura OSI (cont.)

22

El Nivel Fsico Se ocupa de enviar y recibir bits sobre un medio fsico de transmision: Debe asegurarse que la forma de transmitir un bit a 1 es recono cida en recepcion como un bit a 1. La transmision puede ser electrica, optica, . . . Aborda los problemas electricos, electronicos, de establecimiento de conexiones fsicas, . . .

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura OSI (cont.)

23

El Nivel de Enlace Transforma un sistema de transmision crudo (lo que le ofrece el nivel fsico) en una lnea libre de errores de transmision (lo que ofrece para el nivel de red) entre maquinas conectadas al mismo medio fsico. Forma tramas. Se encarga de detectar las tramas recibidas con errores de trans mision. Ademas, puede descartar las tramas con errores, y/o corregir los errores de las tramas con errores, y/o pedir la retransmision de las tramas con errores Se ocupa de resolver los problemas de acceso a un medio de transmision compartido.

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura OSI (cont.)

24

Nivel de Red Se encarga de la interconexion de maquinas que no estan conecta das al mismo medio de transmision. Por ello su mision fundamen tal es el encaminamiento de paquetes desde la maquina origen a la maquina de destino. El encaminamiento puede ser estatico o dinamico. Gestiona las congestiones y cuellos de botella. Puede incluir funciones de taricacion. Puede proporcionar distintos tipos de servicio: Fiable, no able.

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura OSI (cont.)

25

Nivel de Transporte Se encarga de gobernar el acceso multiple a la red de los diver sos procesos de la misma maquina que quieran usarla (gestiona puertos en maquinas multiproceso). Puede proporcionar distintos tipos de servicio: Fiable, no able. Realiza comunicacion extremo a extremo, no tiene en cuenta las maquina intermedias. Realiza control de ujo extremo a extremo (el receptor no es capaz de recibir a la velocidad a la que transmite el emisor).

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura OSI (cont.)

26

Nivel de Sesion Permite a usuarios en distintas maquinas establecer sesiones entre ellos: Proporciona mecanismos para controlar el dialogo: Ej: Turno, ges tion de tokens. Gestiona la sincronizacion entre maquinas. Ejemplo: pizarra compartida.

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura OSI (cont.)

27

Nivel de Presentacion Se ocupa de la sintaxis y semantica de la informacion transferida en tre maquinas: Orden de bytes de enteros (little endian/big endian). Representacion de caracteres alfabeticos. Tamano de los tipos de datos. Tpicamente traduce los datos a un formato normalizado que todas las maquinas entienden. Tambien se suele ocupar de la compresion y cifrado de datos.

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura OSI (cont.)

28

Nivel de Aplicacion Contiene un conjunto de protocolos que son de utilidad directa para aplicaciones que usan la red: Para transmision de cheros Para correo electronico Para control de trabajos remotos ...

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura OSI (cont.)

29

Crticas al Modelo OSI Surgio demasiado pronto. Niveles de distinto grosor. Modelo muy complejo. Funcionalidades mal situadas: cifrado, . . . Modelo dominado por una vision telefonica de las redes de datos Hoy la arquitectura OSI ha cado en desuso, pero se utiliza su termi nologa (fundamentalmente la denominacion de los niveles)

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura TCP/IP

30

Arquitectura TCP/IP
Su desarrollo comenzo a nales de los 60, como proyecto nanciado por el Gobierno de los Estados Unidos. Autentico sistema abierto: Los protocolos y sus implementaciones estan disponibles publicamente. Constituyen el armazon sobre el que se situa Internet. No se ajusta exactamente al modelo de referencia OSI, surgio antes y OSI no intento incluirlo. Su exito (a partir del de Internet) ha hecho que sea la arquitectura mas importante y conocida actualmente.

c 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura TCP/IP (cont.)

31

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

c 2004 GSyC

Redes: Introducci n 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 2004 GSyC

Redes: Introducci n a las Redes de Ordenadores o

Arquitectura TCP/IP (cont.)

33

Nivel Fsico

c 2004 GSyC

Redes: Nivel Fsico

Introducci n o

34

Introduccion
El nivel fsico es el mas bajo de toda la torre OSI. Se ocupa de como se transmiten los datos a traves de los medios fsicos de transmision. Debe ocuparse de que las entidades directamente interconectadas concuerden en la forma de usar el medio fsico, es decir, que un bit a 1 enviado no sea interpretado por el receptor como un bit a 0.

c 2004 GSyC

Redes: Nivel Fsico

Conceptos Generales

35

Conceptos Generales
Velocidad de Transmision: Bits por segundo que se transmiten (Unidades: Kbps, Mbps, Gbps). Tambien se le llama, informalmente, ancho de banda) Latencia o Retardo de propagacion: Tiempo que tarda un bit desde que sale hasta que llega a su destino. Transmision Simplex: El canal de comunicaciones es de un solo sentido. Transmision Semi-Duplex: Canal bidireccional, pero en el que no puede transmitirse en ambos sentidos a la vez. Transmision Duplex: Canal bidireccional en el que puede transmitirse en ambos sentidos a la vez.
c 2004 GSyC Redes: Nivel Fsico

Medios de Transmisi n o

36

Medios de Transmision
Medios Magneticos Se almacenan datos en cintas magneticas que se transportan en tren o camion a su destino, donde se leen. No es broma! Se pueden alcanzar velocidades de transferencia media de varios Gbps. El problema es la latencia o retardo de propagacion: lo que tarda en llegar el primer bit a su destino. Los bancos siguen utilizando estos metodos.

c 2004 GSyC

Redes: Nivel Fsico

Medios de Transmisi n (cont.) o

37

Cable de Pares Cable de pares: Dos cables de cobre de 1 mm de espesor, trenzados en helice. Pueden emplearse sin amplicacion en varios kilometros. Utilizados tanto en telefona como redes Ethernet. Pueden alcanzarse cientos de Mbps de ancho de banda.

c 2004 GSyC

Redes: Nivel Fsico

Medios de Transmisi n (cont.) o

38

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

c 2004 GSyC

Redes: Nivel Fsico

Medios de Transmisi n (cont.) o

39

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

c 2004 GSyC

Redes: Nivel Fsico

Medios de Transmisi n (cont.) o

40

Fibra Optica En vez de corriente electrica se transmite luz. Para transmision digital: La presencia de luz es un 1, la ausencia un 0. Sistema de Transmision: Emisor: Diodo laser Medio: Fibra optica (silicio) Receptor: Foto-diodo Puede transmitirse hasta a 20 Gbps en varios km. Se han alcanzado velocidades de 1 Tbps en laboratorio y el lmite teorico esta por los 50 Tbps.

c 2004 GSyC

Redes: Nivel Fsico

Medios de Transmisi n (cont.) o

41

Transmision por Aire


Se transmiten senales de radiofrecuencia por radiado (broadcast). Tres escenarios en los que se utiliza: Redes Inalambricas (WiFi/802.11): Alcances en el entorno de los cientos de metros, con antenas direc cionales especiales unos cuantos kilometros. 11 Mbps - 54 Mbps Redes por Satelite: Cuando no hay vison directa emisorreceptor: Satelites. Cada satelite tiene varios transpondedores (canales), ofreciendo ca da uno cientos de Mbps para transmision de datos. Principal problema: retardo, tpicamente 300 ms extremo a extremo para satelites geosincronicos. Pero si no hay retransmisiones, puede ser mejor que cables. GSM/GPRS
c 2004 GSyC Redes: Nivel Fsico

Transmisi n Digital o

42

Transmision Digital
Para medios capaces de transportar una senal digital directamente. Ventaja: Menor tasa de errores (puede recrearse la senal original en puntos intermedios) Se transmite una senal cuadrada, en la que los distintos niveles de tension indican la transmision de ceros o unos. Hay varias formas de codicar los 0 y 1: Codigo unipolar, NRZ, Manchester, Manchester diferencial. . .

c 2004 GSyC

Redes: Nivel Fsico

Transmisi n Digital (cont.) o

43

Ejemplo: Codigo Manchester


V 0

0
1

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

c 2004 GSyC

Redes: Nivel Fsico

Transmisi n Anal gica o o

44

Transmision Analogica
Para medios disenados para transportar senales analogicas (ej: lnea telefonica). Se necesitan MOduladoresDEModuladores en los puntos de acceso al medio. Los modems convierten una senal digital en su equivalente analogica (modulan) y viceversa (demodulan).

MODEM

MODEM

Transmision Digital Transmision Analogica

c 2004 GSyC

Redes: Nivel Fsico

Transmisi n Anal gica (cont.) o o

45

Tipos de Modulacion
0 (a) 1 0 1 1 0 0 1 0 0 1 0 0

Senal digital:

Modulacion ASK:

(b)

Modulacion FSK:

(c)

Modulacion PSK:

(d)

Phase changes

Modulacion QAM:
c 2004 GSyC

Combinacion de ASK y PSK.


Redes: Nivel Fsico

Transmisi n Anal gica (cont.) o o

46

Nivel de Enlace

c 2004 GSyC

Redes: Nivel de Enlace

Introducci n o

47

Introduccion
El Nivel de Enlace suele subdividirse en dos subniveles:
Nivel de Red LLC (Subnivel de Control del Enlace Logico) MAC (Subnivel de Control de Acceso al Medio) Nivel Fsico

MAC: gobierna el acceso a un medio de transmision compartido por varias maquinas LLC: ofrece al nivel de red un servicio de transmision de datos entre maqui nas adyacentes, encargandose de: composicion/descomposicion de tramas. control de ujo (opcional). gestion de los errores en la transmision (opcional).
c 2004 GSyC Redes: Nivel de Enlace

El problema del acceso al medio

48

El problema del acceso al medio


Como y cuando asignar el canal fsico a las distintas maquinas que lo comparten y quieren acceder a el? Soluciones: Asignacion estatica: Se reparte el canal en el tiempo (TDM) o en frecuencia (FDM). Bueno para tracos pesados y constantes, pero malo para rafagas (lo habitual). Asignacion dinamica: No esta prejado el reparto. Trata de aprovechar mejor el canal en LANs. Acceso por contienda: Las maquinas compiten por usar el me dio. Si coinciden dos o mas a la vez: colision Acceso por reserva: Las maquinas pueden hacer reservas para poder usar el canal en exclusiva durante un tiempo

c 2004 GSyC

Redes: Nivel de Enlace

Protocolo CSMA/CD

49

Protocolo CSMA/CD
CSMA/CD (Carrier Sense Multiple Access with Collision Detection): Acceso multiple con deteccion de portadora. Funcionamiento: Cuando una estacion quiere transmitir escucha en el canal. Si esta ocupado, espera a que quede libre Si esta libre, transmite. Mientras transmite, sigue escuchando para ver si alguien trans mite a la vez, en cuyo caso aborta la transmision

c 2004 GSyC

Redes: Nivel de Enlace

Protocolo CSMA/CD (cont.)

50

Como se pueden producir las colisiones? Cuando dos estaciones deciden transmitir simultaneamente al ver el canal libre. Cuando el canal parece libre pero no lo esta debido al retardo de propagacion de los paquetes por la red. Caso patologico: Dos estaciones quieren transmitir y ven que el canal esta ocupado. Esperan a que quede libre, y cuando lo esta ambas transmiten a la vez, colisionando. Y as indenidamente. Para evitarlo, en caso de colision las estaciones esperan un tiempo aleatorio antes de reintentar.

c 2004 GSyC

Redes: Nivel de Enlace

Protocolo CSMA/CD (cont.)

51

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

c 2004 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, solo el poseedor del testigo puede transmitir, por lo que desaparecen las colisiones. Supone que las estaciones de la red se conguran como un anillo fsico o logico. Mecanismo: Cuando el canal esta libre, por el circula el testigo. Cuando una estacion quiere transmitir: captura el testigo enva su trama devuelve el testigo al anillo.

c 2004 GSyC

Redes: Nivel de Enlace

Nivel de Enlace

53

Nivel de Enlace
Recuerda: 2 partes. MAC: Control de acceso al medio (ya visto) LLC: Control del enlace logico: Gestion de tramas Control de ujo (opcional) Control de errores (opcional)

c 2004 GSyC

Redes: Nivel de Enlace

Gesti n de tramas o

54

Gestion de tramas
El nivel fsico 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 fsico de los bits que recibe del nivel fsico, reconocer tramas y extraer los datos de ellas para pasarselos al nivel de red.

c 2004 GSyC

Redes: Nivel de Enlace

Gesti n de tramas (cont.) o

55

Separacion de tramas Cuando el nivel de enlace toma la tira de bits del nivel fsico debe ser capaz de identicar tramas en ella. El metodo mas habitual es colocar patrones especiales de bits al principio y/o al nal de cada trama. Por ejemplo: 01111110. Problema: Y si en medio bits de datos aparece justo ese patron especial? Solucion: Bits de relleno (bit stufng) Si vienen 5 unos seguidos, el emisor anade un 0 de relleno. El receptor, cada vez que recibe 5 unos, descarta el 0 subsiguiente.

c 2004 GSyC

Redes: Nivel de Enlace

Control de Flujo

56

Control de Flujo
Problema: Emisor enviando mas deprisa de lo que el receptor es capaz de recoger. Solucion: Los protocolos incluyen reglas que permiten al transmisor saber de forma implcita o explcita si puede enviar otra trama al re ceptor. Ejemplo: Al establecer la conexion, el receptor indica que se le pue den enviar hasta N tramas consecutivas, pero no mas hasta que el lo indique expresamente.

c 2004 GSyC

Redes: Nivel de Enlace

Gesti n de errores o

57

Gestion de errores
El problema de la gestion de errores puede abordarse en el nivel de enlace o en niveles superiores (normalmente nivel de transporte). Si se hace en el nivel de enlace, se corrigen los errores en la comunicacion entre cada par de maquinas adyacentes que parti cipen en la comunicacion Si se hace en el nivel de transporte, se corrigen los errores en las maquinas origen y destino de la comunicacion.

c 2004 GSyC

Redes: Nivel de Enlace

Gesti n de errores (cont.) o

58

Problemas: 1. algun bit de una trama ha cambiado 2. una trama entera se ha perdido 3. una trama llega por duplicado al receptor Normalmente, el primer problema se resuelve siempre en el nivel de enlace, pues esos errores se dan con cierta frecuencia entre maquinas adyacentes. Los otros dos problemas no son tan habituales entre maquinas adya centes, por lo que podra diferirse su solucion a niveles superiores.

c 2004 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 automaticamente. el receptor detecta el error y descarta la trama incorrecta, esperando que en algun momento el emisor la retransmita (ya vere mos como).

c 2004 GSyC

Redes: Nivel de Enlace

Correcci n de errores o

60

Correccion de errores
Consiste en introducir redundancia en la informacion que se enva para, en caso de error, poder suponer cual era la informacion original. Idea Basica: solo ciertos patrones de bits son posibles si se recibe un patron imposible, se supone que el que se quera enviar es aquel posible que mas se le parezca. Distancia Hamming (d): N.o de diferencias entre dos patrones consecutivos. En un patron pueden detectarse hasta d1 errores, y corregirse hasta (d 1)/2 errores.
c 2004 GSyC Redes: Nivel de Enlace

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

c 2004 GSyC

Redes: Nivel de Enlace

Detecci n de errores y retransmisi n o o

62

Deteccion de errores y retransmision


Ahora la redundancia que se introduce es solo con el objeto de po der detectar cuando una trama ha llegado con errores, sin intentar corregirlos pues la trama sera reenviada. Es mas eciente detectar que corregir errores: se necesitan menos bits de redundancia, aunque aparece la necesidad de retransmitir. La correccion de errores se utiliza fundamentalmente en casos en que es imposible retransmitir. Ejemplo: Medios de transmision simplex.

c 2004 GSyC

Redes: Nivel de Enlace

Detecci n de errores y retransmisi n (cont.) o o

63

Bit de Paridad Consiste en anadir un bit al patron de datos que se enva. Paridad Par: El bit anadido hace que el total de unos enviado sea siempre par. Paridad Impar: El bit anadido hace que el total de unos enviado sea siempre impar. Se puede detectar un error de 1 bit del patron, y hay un 50 % de probabilidades de detectar un error en mas de 1 bit a la vez.

c 2004 GSyC

Redes: Nivel de Enlace

Detecci n de errores y retransmisi n (cont.) o o

64

Codigos de Redundancia Cclica (CRC) Se consideran los patrones de bits como polinomios, y se realizan operaciones aritmeticas modulo 2 con ellos. El calculo del CRC se implementa con circuitos hardware sencillos.

c 2004 GSyC

Redes: Nivel de Enlace

Detecci n de errores y retransmisi n (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 numero impar de bits Todas las rafagas de longitud16 bits El 99.997 % de las rafagas de 17 bits El 99.998 % de las rafagas de longitud18 bits

c 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados o e

66

Recuperacion de perdidas y/o duplicados


Estos protocolos, ademas de permitir la recuperacion frente a tra mas perdidas y/o duplicadas pueden utilizarse tambien para realizar el control de 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 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados (cont.) o e

67

Tres tipos principales de protocolos: De parada y espera: El transmisor, despues de enviar una trama, espera su asentimiento por parte del receptor antes de enviar la siguiente. De envo continuo: El transmisor va enviando tramas sucesiva mente, y el receptor le va asintiendo por su cuenta. Requiere memoria innita. De ventanas: El transmisor puede enviar un numero maximo de tramas antes de recibir el primer asentimiento

c 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados (cont.) o e

68

Parada y Espera Mecanismo basico:


Emisor tiempo dato-1 Receptor

Plazo ACK

c 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados (cont.) o e

69

Emisor tiempo dato-1

Receptor

Plazo

dato-1

Plazo ACK

c 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados (cont.) o e

70

El protocolo genera duplicados, que podran descartarse en el recep tor si los paquetes van identicados de alguna forma.

c 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados (cont.) o e

71

Emisor tiempo dato-1

Receptor

Plazo

ACK

dato-1

Plazo ACK

c 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados (cont.) o e

72

Emisor tiempo dato-1

Receptor

Plazo

ACK dato-1

Plazo

ACK

c 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados (cont.) o e

73

Solucion: Con asentimiento alternado: cada paquete de datos lleva un bit que va alternando. Los acks tambien incluyen el bit para identicar uno u 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 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados (cont.) o e

74

Envo Continuo El canal esta infrautilizado. Mejor que el emisor enve siempre que pueda. Envo contnuo 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 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados (cont.) o e

75

Envo contnuo 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 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados (cont.) o e

76

Ventanas Parada y Espera es muy lento. Envo Contnuo requerira memoria innita. Solucion intermedia: El Emisor, en vez de parar despues de transmi tir cada trama, para despues de transmitir n (tamano de la ventana) tramas. Cuando va recibiendo los ACKs de las tramas enviadas puede proseguir enviando nuevas tramas.

c 2004 GSyC

Redes: Nivel de Enlace

Recuperaci n de p rdidas y/o duplicados (cont.) 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 2004 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 mas habituales: Ethernet Fast Ethernet PPP

c 2004 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 fsicos: Cable coaxial grueso (Thicknet): 10Base5, topologa en bus. Cable coaxial no (Thinnet): 10Base2, topologa en bus. Par trenzado: 10Base-T, topologa en estrella. Fibra optica: 10Base-F, topologa en estrella Nivel Fsico: Codigo Machester, niveles de +0.85V y 0.85V. Acceso al Medio: CSMA/CD

c 2004 GSyC

Redes: Nivel de Enlace

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

80

10BaseT: Cable UTP-3 o UTP-5 (Unshielded Twisted Pair ): 4 Pares trenza dos, no blindados, categora 3 o 5. Conectores RJ-45. Se usa un par para transmitir y otro para recibir (full duplex). Un concentrador (hub) hace de bus. Lo que recibe por una bo ca, lo retransmite por todas las demas. 10 Mbps entre todas las bocas. A veces se usa un conmutador (switch): Reenva solo a la boca a la que se conecta el destinatario. 10 Mbps por boca y sentido, varias transmisiones a la vez. Longitud maxima hasta el concentrador: 100 metros

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

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

c 2004 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 sera entregada a todas las estaciones de la subred (omnienvo o broadcast). Si el bit 47 (el de mayor peso) de la direccion destino es 1, la trama va destinada a un grupo de maquinas (multienvo o multicast). Si el bit 46 de una direccion esta a 1, la direccion es de ambito mundial, asignada de forma unica. Si esta a 0, es de ambito local, relativo a esa subred. En ambos casos son direcciones unienvo o unicast. La direccion de destino va delante para que una estacion sepa rapidamente si una trama es para ella o no.

c 2004 GSyC

Redes: Nivel de Enlace

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

83

Tipo Indica el Protocolo encapsulado dentro del campo de Datos: 0x0800 datagrama IP 0x0806 paquete ARP (28 bytes de datos y 18 de relleno) 0x8035 paquete RARP (28 bytes de datos y 18 de relleno) Datos Entre 46 y 1500 bytes. Relleno La norma obliga a que toda trama sea 64 bytes, para poder considerar que todas las tramas menores son resultado de trans misiones abortadas al detectar colision. Por ello, si hay menos de 46 bytes de datos, se utilizan estos bytes de relleno.
Retardo max. de propagacion en 2,5 km, 4 repetidores: 25.6 s Tiempo de Reaccion: 25.6 x 2 = 51.2 s Bits transmitidos en 51.2 s a 10 Mbps: 51,2106 10106 = 512 bits = 64 bytes.

c 2004 GSyC

Redes: Nivel de Enlace

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

84

CRC 32 bits de Control de Redundancia Cclica, para la deteccion de errores: El transmisor calcula el CRC de los bits de datos, y lo coloca en la trama. El receptor calcula el CRC de los bits de datos de la trama, y comprueba que coincida con el CRC que viene en ella. Si no coincide, los datos han sido modicados por ruido en el cable, y se descarta la trama.

c 2004 GSyC

Redes: Nivel de Enlace

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

85

Fast Ethernet Compatible con Ethernet (mismo formato de trama). 100 Mbps 100Base-TX: 2 pares UTP-5 100Base-T4: 4 pares UTP-3 100Base-FX: 2 bras opticas

c 2004 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 lnea serie. Esta disenado de forma que no solo puede encapsular IP, sino tambien otros protocolos. Se utiliza fundamentalmente para conectarse a Internet a traves de la red telefonica basica mediante modem. Historicamente se uso primero SLIP (Serial Line IP), pero PPP es mas completo. La principal diferencia de PPP con SLIP es que PPP incluye deteccion de errores de transmision mediante CRC.
flag 7E
1

addr FF
1

control 03
1

protocolo
2

datos
hasta 1500

CRC
2

flag 7E
1 n bytes

c 2004 GSyC

Redes: Nivel de Enlace

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

87

ADSL: Asymetric Digital Susbcriber Line


Una lnea telefonica normal transmite voz: Una banda de 0-4kHz. En un par de cobre cabe mas, por lo que en la centralita se agrupan (multiplexan) varias conversaciones (desplazadas en frecuencia) por un mismo cable. Las transmisiones mediante modem con PPP reciben el mismo trato. Con ADSL el abonado continua utilizando los primeros 4kHz para las lla madas de voz, pero ahora ocupa mas ancho de banda para la transmision (simultanea) 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 asimetrico: se reserva mas para recibir (256Kbps2Mbps) que para enviar (128Kbps300Kbps). Ambas bandas estan separadas. Se transmite por modulacion multitono discreta (MDT). ADSL es mas bien un nivel fsico: como nivel de enlace puede utilizarse cual quier de los usados en lneas punto a punto.
c 2004 GSyC Redes: Nivel de Enlace

Dispositivos de interconexi n de subredes o

88

Dispositivos de interconexion de subredes


Para interconectar subredes pueden colocarse dispositivos muy dife rentes en proposito y funcionamiento: repetidores (repeaters) puentes (bridges) encaminadores (routers) concentradores (hubs) conmutadores (switches)

c 2004 GSyC

Redes: Nivel de Enlace

Dispositivos de interconexi n de subredes (cont.) o

89

Repetidores Copian senales electricas de un medio fsico de transmision a otro (trabajan en el nivel 1). Permiten extender la longitud fsica de la subred Aislan los fallos de diferentes segmentos de la subred

c 2004 GSyC

Redes: Nivel de Enlace

Dispositivos de interconexi n de subredes (cont.) o

90

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

c 2004 GSyC

Redes: Nivel de Enlace

Dispositivos de interconexi n 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 maquinas de las subredes que interconectan S son conscientes I de su presencia. Los estudiaremos con mas detalle en el tema siguiente.

c 2004 GSyC

Redes: Nivel de Enlace

Dispositivos de interconexi n de subredes (cont.) o

92

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

c 2004 GSyC

Redes: Nivel de Enlace

Dispositivos de interconexi n de subredes (cont.) o

93

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

Dispositivos de interconexi n de subredes (cont.) o

94

Nivel de Red

c 2004 GSyC

Redes: Nivel de Red

Introducci n o

95

Introduccion
El nivel de red se ocupa de que los paquetes que salen del transmi sor lleguen a su destino nal, aunque el emisor y el receptor no esten adyacentes (conectados directamente al mismo medio de transmi sion). Esto normalmente requiere pasar a traves de nodos intermedios: encaminadores (routers). Es necesario elegir la mejor ruta a seguir. RECORDATORIO: El nivel de enlace solo se ocupa de que las tramas viajen entre maquinas adyacentes.

c 2004 GSyC

Redes: Nivel de Red

Misiones del Nivel de Red

96

Misiones del Nivel de Red


Encaminamiento de paquetes. Asignacion de direcciones unicas a todas las maquinas de la red, independientes de la tecnologa de los niveles de enlace. Interconexion en una misma red de subredes con distinto nivel de enlace. Control de congestion.

c 2004 GSyC

Redes: Nivel de Red

Tipos de Nivel de Red

97

Tipos de Nivel de Red


Segun haya o no conexiones de red: No orientado a conexion Orientado a conexion Segun se encamine cada paquete por separado o no: Basado en datagramas Basado en ciruitos virtuales Segun se ofrezca o no un servicio able: Fiable No able
c 2004 GSyC Redes: Nivel de Red

Tipos de Nivel de Red (cont.)

98

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

c 2004 GSyC

Redes: Nivel de Red

Tipos de Nivel de Red (cont.)

99

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

c 2004 GSyC

Redes: Nivel de Red

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 2004 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 2004 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 (tpicamente por con gestion). Algun nivel superior debera ser capaz de detectar y recuperarse de estas perdidas, si la aplicacion lo requiere.

c 2004 GSyC

Redes: Nivel de Red

Tipos de Nivel de Red (cont.)

103

Todas las combinaciones de tipos de servicio de nivel de red son teoricamente posibles, pero no todas se dan en la practica. Las combinaciones mas frecuentes son: Servicio Orientado a Conexion, basado en Circuitos Virtuales y Fiable (ejemplo: X.25). Servicio No Orientado a Conexion, basado en Datagramas y No Fiable (ejemplo: IP).

c 2004 GSyC

Redes: Nivel de Red

Direcciones de Red

104

Direcciones de Red
Se necesita un mecanismo de identicacion unvoca de todas las maquinas de la red, independientemente de la tecnologa del nivel de enlace de cada una. Existen distintos metodos de direccionamiento segun el tipo de redes. Veremos mas adelante el formato de las direcciones del nivel de red IP.

c 2004 GSyC

Redes: Nivel de Red

Interconexi n de subredes con distinto nivel de enlace o

105

Interconexion de subredes con distinto nivel de enlace


Dependiendo de la arquitectura de red que se trate, puede que se desee integrar en una misma red a subredes con distinto nivel de enlace. Cuando as ocurre, es mision de nivel de red hacer esta integra cion 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 tamanos de las unidades de datos distintas velocidades de las subredes
c 2004 GSyC

Redes: Nivel de Red

Interconexi n 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 2004 GSyC

Redes: Nivel de Red

Encaminamiento

107

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

c 2004 GSyC

Redes: Nivel de Red

Encaminamiento (cont.)

108

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

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


c 2004 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 rapidamente y para tener menos informacion a intercambiar con otros encaminadores Minimizar el numero y frecuencia de mensajes de control Robustez: evitar agujeros negros, evitar bucles, evitar oscilaciones en las rutas Generar caminos optimos: menor retardo de transito, o camino mas corto (en funcion de una cierta metrica en funcion de retardo, coste de los enlaces, . . . ), o maxima utilizacion de la capacidad de la red

c 2004 GSyC

Redes: Nivel de Red

Encaminamiento (cont.)

110

Algoritmo de inundacion Es un algoritmo simple que a veces se utiliza cuando no hay ningu na informacion de encaminamiento disponible (al arrancar algun otro algoritmo): 1. Cada paquete recibido por un nodo es encaminado a todos los vecinos (excepto al que lo envio). 2. Los paquetes van etiquetados y numerados. 3. Si un nodo recibe un paquete que ya ha encaminado, lo descarta.

c 2004 GSyC

Redes: Nivel de Red

Encaminamiento (cont.)

111

Algoritmo de aprendizaje Es un algoritmo simple, que mejora el de inundacion. Se utiliza tam bien en los bridges de nivel de enlace. 1. Cada nodo mantiene una tabla con entradas (Destino, enlace por el que encamino) que va actualizando segun los paquetes que va recibiendo. 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 encaminara por ese enlace 3. Cuando para un destino no hay entrada en la tabla, se enva por inundacion.

c 2004 GSyC

Redes: Nivel de Red

Encaminamiento (cont.)

112

Algoritmo de Dijkstra
Es un algoritmo que encuentra caminos de distancia mnima 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 aun no resueltos (tentativos) 2. 3. Inicialmente P solo contiene el nodo inicial Para cada nodo de T : si no esta directamente conectado a ningun nodo de P , su distancia al nodo inicial es innta en caso contrario, se calcula la menor entre la distancia calculada en un paso anterior y las distancias directas entre el y los nodos de P 4. El nodo de T de menor distancia se pasa a P . Si aun quedan nodos en T , se vuelve al paso anterior.

c 2004 GSyC

Redes: Nivel de Red

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 2004 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 tecnica.
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 (en viando periodicamente paquetes de sondeo). Cada nodo enva periodicamente a sus vecinos todos sus pares (Destino, retardo estimado) Cada nodo estudia la informacion recibida de los vecinos para ver si pue de conseguir una ruta de menor retardo enviando a traves de otro de sus vecinos, y actualiza sus tablas de encaminamiento consecuentemente

2.

3.

4.

c 2004 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 2004 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 informacion acerca de mejores rutas se propaga poco a poco, con siguiendose al cabo de un rato que todos los encaminadores tengan tablas optimas 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 2004 GSyC

Encaminamiento (cont.)

Algoritmos basados en el Estado de Enlace El protocolo OSPF (Open Shortest Path First), utilizado en Internet, emplea esta tecnica.
1. Cada encaminador mide su distancia con cada uno de sus vecinos (enviando paquetes de sondeo) y construye un paquete de estado de enla ces con esta informacion. Cada encaminador enva perdiodicamente el paquete de estado de en laces a todos los encaminadores de la red. Estos mensajes se difunden por inundacion. Cada encaminador, con la informacion recibida, conoce la topologa com pleta de la red y calcula el mejor camino a todos sus destinos (aplicando, por ejemplo, el algoritmo de Dijkstra)

2.

3.

c 2004 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 2004 GSyC

Redes: Nivel de Red

Encaminamiento (cont.)

Encaminamiento jerarquico
Si la red es muy grande, las tablas de encaminamiento se hacen inmanejables: se tarda mucho en calcular los caminos optimos se genera mucho traco de control para conseguir difundir la informacion necesaria para los algoritmos de encaminamiento Solucion: Encaminamiento Jerarquico: Se divide la red en dominios Dentro de cada dominio se encamina segun un algoritmo de los vistos anteriormente Los dominios estan interconectados mediante pasarelas (gateways) Las maquinas dentro de un dominio no conocen a las de otro Los gateways solo conocen a otros gateways

c 2004 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 2004 GSyC Redes: Nivel de Red

Control de Congesti n o

Control de Congestion
Un encaminador tiene varios enlaces de entrada y salida. Puede ser que lleguen paquetes mas deprisa de lo que el encaminador sea capaz de darles salida. Si esta situacion es esporadica, se resuelva con buffers. Los buffers son limitados: cuando se llenan se ha alcanzado la congestion Congestion: cuando el traco deseado/originado en los extremos es mayor del que puede encaminar el nivel de red

c 2004 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 Congesti n (cont.) o

122

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

c 2004 GSyC

Redes: Nivel de Red

Control de Congesti n (cont.) o

123

IP: Internet Protocol

c 2004 GSyC

Redes: IP: Internet Protocol

Introducci n o

124

Introduccion
IP es un protocolo de Nivel de Red que ofrece un servicio de entrega de mensajes (datagramas): no orientado a conexion 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 2004 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 2004 GSyC

Datagramas IP (cont.)

126

versi n Actualmente version 4. La siguiente version es IPv6. o longitud cabecera Numero de palabras de 32 bits que ocupa la cabe ra. Normalemente es 5 (20 bytes), cuando no hay opciones TOS Se usan solo 4 bits para indicar tipo de servicio a ofrecer: minimizar retardo maximizar rendimiento maximizar abilidad minimizar coste economico

c 2004 GSyC

Redes: IP: Internet Protocol

Datagramas IP (cont.)

127

longitud total En bytes. Tamano maximo: 65535 bytes. Normalmente es menor de 576 bytes. Dependiendo del nivel de enlace, cual quier maquina puede necesitar fragmentar un datagrama IP al encaminarlo. identicaci n Diferente para cada datagrama que genera una maquio na (se va incrementando de 1 en 1). Distintos fragmentos del mismo datagrama mantienen el mismo numero de identicacion. ags Uno para indicar si este datagrama no puede fragmentarse, y otro para indicar si hay mas fragmentos de este datagrama offset de fragmentaci n Generado al fragmentar un datagrama, le siro ve al destino nal para reensamblarlo. TTL Indica el numero maximo de encaminadores que el datagrama puede atravesar. Normalmente se coloca a 32 o 64. Cada encaminador lo decrementa, y si alcanza 0 se descarta el datagrama, enviandose al originador del datagrama un mensaje ICMP.
c 2004 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 Informacion opcional. No todas las maquinas y encaminadores las soportan. El campo de opciones se rellena con ceros por la derecha para asegurar un multiplo de 32 bits. Ejemplos de opciones: restricciones de seguridad ruta recorrida marca de tiempo encaminamiento en origen

c 2004 GSyC

Redes: IP: Internet Protocol

Direcciones IP

129

Direcciones IP
Cada interfaz fsico conectado a la Internet tiene asignada una direc cion IP que resulta unica en toda la red. Los 32 bits se suelen expresar en ((notacion decimal puntuada)): 212.128.4.4 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 2004 GSyC

Redes: IP: Internet Protocol

Direcciones IP (cont.)

130

Los primeros bits de una direccion indican cual es su clase. En cada clase, es distinto el numero de bits de red y el de bits de maquina.
Clase A 0
7 bits id red 14 bits id red 21 bits id red 28 bits id grupo multicast 27 bits reservado para usos futuros 24 bits id maquina 16 bits id maquina 8 bits id maquina

Clase B

Clase C

Clase D

Clase E

c 2004 GSyC

Redes: IP: Internet Protocol

Direcciones IP (cont.)

131

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

c 2004 GSyC

Redes: IP: Internet Protocol

Direcciones IP (cont.)

132

Quien asigna direcciones IP? Tres organismos regionales: ARIN (America), RIPE (Europa y Africa) y APIC (Asia). RIPE delega en organismos regionales (normalmente por pases). En Espana, el organismo es Red.es, Entidad Publica Empresarial adscrita al Ministerio de Ciencia y Tecnologa. Una organizacion adquiere una (o mas) direcciones de clase, y el administrador local de la organizacion reparte la direccion de clase entre todas sus maquinas. ICANN (Internet Corporation for Assigned Names and Numbers) es una organizacion internacional creada en 1998 para coordinar todas las tareas de asignacion de nombres y direcciones.

c 2004 GSyC

Redes: IP: Internet Protocol

Direcciones IP (cont.)

133

Subredes En ocasiones, por razones organizativas o topologicas, se utilizan al gunos bits de maquina como bits de subred. Sobre todo con direcciones de clases A y B. Dada una direccion de red otorgada a una organizacion, el adminis trador decidira si utilizara subredes, y el numero de bits de maquina que utilizara para indicar la subred.

c 2004 GSyC

Redes: IP: Internet Protocol

Direcciones IP (cont.)

134

El numero de bits con el que se indica la subred se denota con una mascara de subred: 32 bits, 1 para bits de red y subred, 0 para bits de maquina. Ejemplos:
Direccion de clase 163.117.0.0 Mascara 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 direccion (bits de maquina a cero) como direccion de la red la ultima direccion (bits de maquina a uno) como direccion de broadcast.

c 2004 GSyC

Redes: IP: Internet Protocol

Encaminamiento

135

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

c 2004 GSyC

Redes: IP: Internet Protocol

Encaminamiento (cont.)

136

Para encaminar, una maquina consultara su tabla de encaminamien to. En ella, para enviar un datagrama a una cierta direccion IP destino, buscara por este orden: 1. Una entrada con una direccion IP de maquina igual a la buscada. 2. Una entrada con una direccion IP de red igual a la parte de red de la buscada. 3. Una entrada por defecto (0.0.0.0).

c 2004 GSyC

Redes: IP: Internet Protocol

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

Iface eth0 lo eth0

c 2004 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 Solucion (mientras que se pasa a IPv6): CIDR (Classless Inter Domain Routing): Encaminamiento sin clases.

c 2004 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 mascaras mediante prejos: 193.147.71.0/25 indicando que los 25 primeros bits son los signicativos en la direccion 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 2004 GSyC

Redes: IP: Internet Protocol

ARP (Address Resolution Protocol)

140

ARP (Address Resolution Protocol)


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

ARP (Address Resolution Protocol) (cont.)

141

Para conocer la direccion Ethernet de una maquina de la misma subred, dada su direccion IP, una maquina hace lo siguiente: 1. Enva una trama Ethernet de broadcast consistente en una soli citud ARP, conteniendo la direccion IP en cuestion. 2. Aquella maquina que reciba una solicitud ARP preguntando por su propia direccion IP, contesta con una trama Ethernet dirigida a quien hizo la pregunta, conteniendo una respuesta ARP indican do la direccion Ethernet pedida. Cada maquina mantiene una cache de correspondencias direcciones IP a direcciones Ethernet: se guarda los resultados de las solicitudes que hace aprende de todas las solicitudes de otras (aprovechando que las solicitudes son broadcast.
c 2004 GSyC Redes: IP: Internet Protocol

ARP (Address Resolution Protocol) (cont.)

142

Formato del paquete de solicitud/respuesta de ARP: ARP puede usarse en combinacion con otros protocolos de nivel de red (no solo IP), por lo que el formato vara. 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 ese el nivel de enlace). En una solicitud, los campos ((origen)) llevan los datos de la maqui na que pregunta, y de los campos ((destino)) solo va relleno IP Dest., ya que Eth. Dest. es justo lo que se pregunta Al formar la respuesta, la maquina interrogada cambia los dos campos ((origen)) por los ((destino)), rellenando el que falta (que es su direccion Ethernet pedida).

c 2004 GSyC

Redes: IP: Internet Protocol

ARP (Address Resolution Protocol) (cont.)

143

ARP gratuito: Una maquina puede enviar una solicitud ARP pre guntando sobre su propia direccion IP. Propositos: 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 maquina destino, cuando esa maquina destino es alcanzable a traves de dicho encaminador.

c 2004 GSyC

Redes: IP: Internet Protocol

RARP (Reverse Address Resolution Protocol)

144

RARP (Reverse Address Resolution Protocol)


En ocasiones es necesario un metodo para obtener la direccion IP de una maquina a partir de su direccion Ethernet. Ejemplo: Al arrancar una estacion sin disco, no puede tener en ningun chero de conguracion su direccion IP. Solo sabe que tiene una tar jeta Ethernet en la que esta grabada su direccion Ethernet. Mecanismo de RARP: 1. La maquina enva un broadcast de una solicitud RARP, indicando su direccion Ethernet. 2. Alguna maquina de la subred le enviara una respuesta RARP indicandole cual es su direccion IP.
c 2004 GSyC Redes: IP: Internet Protocol

RARP (Reverse Address Resolution Protocol) (cont.)

145

Lo habitual es tener una maquina en la subred que actue como servi dor de RARP, manteniendo una tabla de correspondencias de direcciones Ethernet a direcciones IP para todos los nodos de la subred. Si, por razones de proteccion frente a fallos, se colocan varios servidores de RARP en la misma subred, el protocolo establece que se tomara solo la primera respuesta RARP recibida por la maquina que lanzo la solicitud RARP. Alternativas a RARP: BOOTP (similar) y DHCP (mas complejo).

c 2004 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 maquinas. 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 2004 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 codigo 0 0 1 3 0 0 1 0 0 descripcion respuesta de eco destino inalcanzable: red inalcanzable destino inalcanzable: maquina inalcanzable destino inalcanzable: puerto inalcanzable solicitud de eco tiempo excedido: TTL = 0 cabecera IP mal: falta una opcion solicitud de marca de tiempo respuesta de marca de tiempo

c 2004 GSyC

Redes: IP: Internet Protocol

NAT (Network Address Translation)

148

NAT (Network Address Translation)


Existen unos rangos de direcciones IP privadas, reservadas para ambito 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 organizacion puede usar direcciones privadas internamente, y tener una sola direc cion IP global (publica) en la maquina que da salida a Internet. Esta maquina utiliza NAT para que los datagramas puedan en trar/salir de/a las maquinas internas. Muy resumidamente lo que hace es cambiar las direcciones IP privadas de los datagramas por la suya publica.

c 2004 GSyC

Redes: IP: Internet Protocol

Congesti n en Internet o

149

Congestion en Internet
El nivel de red (IP) ofrece un servicio basado en datagramas. La principal fuente de perdidas de paquetes en Internet se debe a la congestion de encaminadores, que actuan descartando paquetes. IP no toma ninguna medida para prevenir o disminuir la congestion: sera labor de protocolos de niveles superiores, en su caso.

c 2004 GSyC

Redes: IP: Internet Protocol

Congesti n en Internet (cont.) o

150

UDP: User Datagram Protocol

c 2004 GSyC

Redes: UDP: User Datagram Protocol

Introducci n o

151

Introduccion
UDP es un protocolo sencillo que implementa un nivel de transporte orientado a datagramas: NO orientado a conexion. NO able. Los datagramas UDP se encapsulan dentro de la parte de datos de un datagrama IP. Una aplicacion que utilice UDP para transmitir datos, producira exac tamente un datagrama UDP cada vez que la aplicacion quiera enviar datos. Dicho datagrama UDP se encapsulara en un datagrama IP. Si ese datagrama IP va a exceder el tamano maximo de la unidad de datos del nivel de enlace (ej: Trama Ethernet), se fragmentara.
c 2004 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 numero impar de bytes.

c 2004 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 mas una pseudo-cabecera que se 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
Redes: UDP: User Datagram Protocol

nmero de puerto origen longitud total

datos (en su caso)

byte de relleno (ceros)

c 2004 GSyC

Puertos

154

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

c 2004 GSyC

Redes: UDP: User Datagram Protocol

Puertos (cont.)

155

As, el Nivel de Transporte TCP/IP: multiplexa las unidades de datos que envan las aplicaciones a traves de los puertos, encapsulandolas en datagramas UDP o segmentos TCP demultiplexa los datagramas UDP y los segmentos TCP, pasando los datos a las aplicaciones. Los puertos se identican por un numero de 16 bits. Los puertos UDP y TCP se manejan por separado: el puerto 7 UDP y el puerto 7 TCP son puertos distintos.

c 2004 GSyC

Redes: UDP: User Datagram Protocol

Puertos (cont.)

156

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

# default ftp data port

mail timserver timserver http # WorldWideWeb HTTP # HyperText Transfer Protocol

c 2004 GSyC

Redes: UDP: User Datagram Protocol

Puertos (cont.)

157

As, por ejemplo, un servidor de WWW es un proceso esperando pe ticiones en el puerto 80 de una maquina. Un navegador desde otra maquina hara peticiones al puerto 80 del servidor, y escuchara las respuestas en un puerto suyo no privilegiado. En vez de tener un servidor escuchando en cada puerto, un solo proceso (inetd) escucha en varios, y se encarga de arrancar el proceso adecuado segun el puerto concreto por el que llego la peticion. Ambos mecanismos conviven: inetd escucha en varios puertos, y en otros (los mas frecuentemente utilizados) lo hace directamente el proceso involucrado.

c 2004 GSyC

Redes: UDP: User Datagram Protocol

Servicio dado por UDP

158

Servicio dado por UDP


El servicio ofrecido por UDP solo aumenta el ofrecido por IP en: numeros de puerto 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 muchsimo mas ligero que TCP, y en una red local (hay CRC y no hay encaminadores) puede compensar.
c 2004 GSyC Redes: UDP: User Datagram Protocol

Servicio dado por UDP (cont.)

159

TCP: Transmission Control Protocol

c 2004 GSyC

Redes: TCP: Transmission Control Protocol

Introducci n o

160

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

c 2004 GSyC

Redes: TCP: Transmission Control Protocol

Servicio Orientado a Conexi n o

161

Servicio Orientado a Conexion


La transmision de datos de nivel de transporte presenta las fases: establecimiento de la conexion intercambio de datos liberacion de la conexion. Peculiaridad: Ambos extremos pueden transmitir y recibir datos simultaneamente. Los datos de la aplicacion son troceados en segmentos del ta mano que TCP considera adecuado (diferente a UDP!).

c 2004 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 perdidas y desorden producido por IP. Idea basica: Los segmentos con datos llevan un numero de secuencia. El receptor de los datos debe mandar asentimientos (ACKs). Para cada segmento con datos transmitido se espera un plazo de tiempo a que llegue su asentimiento. Si vence el plazo, se retransmite el segmento. Para asentimientos y retransmisiones se utiliza un protocolo de ventana. El receptor reordena segmentos y descarta los duplicados.

c 2004 GSyC

Redes: TCP: Transmission Control Protocol

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 2004 GSyC

Redes: TCP: Transmission Control Protocol

Segmentos TCP (cont.)

164

Puertos: TCP los asocia con la aplicacion origen y destino del segmento (como UDP). Longitud cabecera: Tamano de la cabecera en palabras de 32 bits. Lo normal es 5 (20 bytes). Checksum: Sobre pseudo-cabecera, cabecera y datos, calculado como en UDP. Si no se pasa la comprobacion, se descarta el datagrama.

c 2004 GSyC

Redes: TCP: Transmission Control Protocol

N meros de secuencia u

165

Numeros de secuencia
Cada segmento con datos lleva un numero de secuencia El numero de secuencia numera bytes, y NO segmentos: iden tica el numero de orden del primer byte de datos que lleva el segmento. Al establecerse una conexion se elige un numero de secuencia inicial para que no se confundan segmentos aun en transito pro cedentes de conexiones diferentes.

c 2004 GSyC

Redes: TCP: Transmission Control Protocol

N meros de asentimiento u

166

Numeros de asentimiento
El receptor de segmentos de datos tiene que asentir los que le llegan correctamente. NO es necesario enviar un asentimiento para cada segmento con datos que se recibe. Se puede esperar a asentir varios segmentos de una sola vez. El numero de asentimiento indica el numero de secuencia del proximo byte que se espera recibir, asintiendose de esta manera hasta el byte anterior incluido. No hay rechazo selectivo: No hay forma en que el receptor le diga al emisor que tiene los bytes del 300 al 700 excepto el trozo 400-500.
c 2004 GSyC

Redes: TCP: Transmission Control Protocol

N meros de asentimiento (cont.) u

167

Cada segmento tiene un campo para el numero de asentimiento: siempre que se manda un segmento se aprovecha para asentir los datos que este enviando el otro extremo: Si el lado que enva un asentimiento tiene datos que enviar al otro lado, puede aprovechar un segmento para las dos cosas: enva el asentimiento ((arrecucas)) de los datos (piggy backing). Si el lado que enva un asentimiento no tienen datos que en viar al otro lado, enva un segmento solo con la cabecera, sin datos. Importante: Cada lado de la conexion utiliza sus numeros de se cuencia (partiendo de su numero de secuencia inicial) y asiente los que esta usando el otro extremo.

c 2004 GSyC

Redes: TCP: Transmission Control Protocol

N meros de asentimiento (cont.) u

168

Ventana Deslizante Se usa un protocolo de ventana para coordinar el envo de seg mentos y asentimientos. El receptor indica en el campo de tamano de ventana el numero de bytes (a partir del indicado en el numero de asentimiento) que esta dispuesto a recibir del emisor. El emisor puede transmitir esos bytes aunque no reciba asenti mientos, pero una vez transmitidos tendra que parar hasta que sepa mas del receptor. Segun el receptor va recibiendo datos, puede ir asintiendo y des lizando la ventana para aceptar mas. Como ambos extremos pueden enviar datos, hay dos ventanas diferentes, una para cada sentido.

c 2004 GSyC

Redes: TCP: Transmission Control Protocol

N meros de asentimiento (cont.) u

169

Ejemplo: El emisor recibe un segmento con:


Numero de asentimiento: 5 Tamano de ventana: 8.

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

10

11

12 13 14

15

16

enviados y asentidos

enviados y no asentidos

pendientes para enviar

sin aceptar de la aplicacin

El tamano de la ventana es variable dinamicamente (pero deberan mantenerse las ((antiguas promesas))). El tamano de la ventana permite tambien hacer control de ujo extremo a extremo.
c 2004 GSyC Redes: TCP: Transmission Control Protocol

Establecimiento de conexi n o

170

Establecimiento de conexion
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 numero de secuencia inicial de los dos sentidos de transmision (((triple apreton de manos)), three-way handshake).

c 2004 GSyC

Redes: TCP: Transmission Control Protocol

Liberaci n de conexi n o o

171

Liberacion de conexion
A segmento con bit FIN B

segmento con asentimiento del FIN segmento con bit FIN

segmento con asentimiento del FIN

Como la conexion permite la transmision bidireccional de datos (full duplex), es necesario cerrar cada sentido de la transmision (por separado).

c 2004 GSyC

Redes: TCP: Transmission Control Protocol

Liberaci n de conexi n (cont.) o o

172

Plazos para asentimiento Cuando se enva un segmento, se arranca un temporizador para es perar su asentimiento. Problema: Que plazo le ponemos? Se utiliza un algoritmo adaptativo para optimizar lo mas posible la transmision de datos. Para cada segmento se calcula el tiempo de ronda (round-trip time, RTT): tiempo entre que se enva el segmento y se recibe el asenti miento. Se va tomando su media en el tiempo. Normalmente se elige un plazo de dos veces el tiempo de ronda medio, teniendo cuidado con la varianza.

c 2004 GSyC

Redes: TCP: Transmission Control Protocol

Liberaci n de conexi n (cont.) o o

173

Entrega de datos a la aplicacion Cuando llega un segmento con la bandera PSH activada se esta in dicando al receptor que pase esos datos a la aplicacion. No solo se pasa ese segmento, sino tambien todos los datos asenti dos que el receptor tuviera pendientes de entregar a la aplicacion.

c 2004 GSyC

Redes: TCP: Transmission Control Protocol

174

175

Redes: TCP: Transmission Control Protocol

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

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

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

No esta especicado donde empiezan los datos urgentes. Se deja a la aplicacion.

b5 ) ) )3 e )d)d  8 y   )d #x f Q 84(Qptp76YVwV2 "Yw# &YV VQ) )f )3 e )d  "5   5 )  3 53   t(&(6Yw$)(6Y % # 6(6Y# v)76e  &) u&)  )3  9 '  ) 5 #2 "5 ) W ) ) c 5 ) # (f  $)" (% 6X6tp$#(6X6Vs6Y rb(6a)`&(5 R

g )5 " )3  " &(6) 8qp ' (Qei0#d   #d # h$#"Y % # 6(6&(Q(f4a)&(6X6V2   TR  5 ) g )d5#  ` )3 e 5 # S

x ) b ` ) 8` f ` # f b 5 ) )  ) 3 e ) d  ) d  8" y 5    rVYQXuWGQ(& 8476YVp76YVwV2 YX6V7f #d5  2 b5 ) ` )  '  ) 5 #2 "5 ) W ) S (Q(34Y c476a)&V  0)" (% 6X6VY$#(6X6VU TR

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

Ejemplo de conexion

P   B G  G 25 )32    84(674) 1

 G    

Liberaci n de conexi n (cont.) o o

     F

Datos urgentes

Ejemplo de conexi n o

P   B    25)32 F   84(Q(4) 1

     F

)0" (& $# ! '%   "          476(4) 1  825 )32

Ejemplo: Envo de un CTRL-C.

     

)0" (& $# ! '%   "          476(4) 1 9 825 )32

0)" (& $# ! '%   "          476(4) 1  825 )32

)0" (& $# ! '%   "          476(4) 1  825 )32

  G     

DEC1   B A     25 32 @ 6  84(6)74) 1


c 2004 GSyC

c 2004 GSyC

C1   B A   6  476(4) 1 @  825 )32

Redes: TCP: Transmission Control Protocol

Ejemplo de conexi n (cont.) o

176

DNS: Domain Name System

c 2004 GSyC

Redes: DNS: Domain Name System

Por qu necesitamos el DNS? e

177

Por que necesitamos el DNS?


Los humanos preferimos nombres a direcciones IP (ej: cacharro.escet.urjc.es frente a 212.128.1.44) Los numeros IP estan ligados a la estructura de la red, pero eso no tiene por que reejarse en el nombrado de maquinas (ej: www.debian.org, www.de.debian.org. Los numeros IP estan ligados a maquinas concretas, puede ser conveniente un nivel de abstraccion no ligado a maquinas (ej: www.urjc.es puede cambiar de maquina, y de IP, pero no de nombre). Es necesario establecer una correspondencia entre nombres y direcciones IP.
c 2004 GSyC Redes: DNS: Domain Name System

Un poco de historia

178

Un poco de historia
Al principio (anos 70), un unico chero (HOSTS.TXT) con infor macion de todas las maquinas de ARPANET. Se obtena periodicamente por FTP. Gestion completamente ma nual. 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 2004 GSyC

Redes: DNS: Domain Name System

Estructura de nombrado

179

Estructura de nombrado
Se descentraliza el control consiguiendose una estructura jerarquica y facilmente ampliable. Jerarqua de dominios: Dominio raz (root o .). Gestionado por ICANN (Internet Corpo ration for Assigned Names and Numbers). Dominios de nivel maximo: Tradicionales: com, edu, gov, mil, net, org, int, codigos ISO de paises (uk, mx, ar, de, es. . . ) En negociacion por ICANN en noviembre de 2000: biz, info, name, pro, aero, coop, museum Dominios secundarios, terciarios, . . .

c 2004 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 2004 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 direccion IP. Dominio inverso: proporciona para cada direccion IP un nombre. El dominio inverso tambien se conoce como dominio in-addr.arpa. Los elementos del dominio inverso son las direcciones de red construidas invirtiendo los numeros que la componen, y ter minando en in-addr.arpa Ejemplo: La red 138.117.0.0 es el dominio inverso 117.138.inaddr.arpa

c 2004 GSyC

Redes: DNS: Domain Name System

Estructura de gesti n o

182

Estructura de gestion
Cada vez que se delega un subdominio se delega tambien su gestion (incluyendo su posible subdivision sucesiva). Si el gestor del dominio es delega un subdominio urjc, el respon sable de urjc manejara la correspondencia de nombres y direc ciones de todas las maquinas de su dominio. Si el responsable de urjc lo cree conveniente, puede delegar un subdominio escet, sin que por ello tenga que informar al gestor de es. Hay dominios (ejemplo: com, org) gestionados por varios registrars en regimen de competencia.

c 2004 GSyC

Redes: DNS: Domain Name System

Consulta de una direcci n para un nombre o

183

Consulta de una direccion para un nombre


Cada aplicacion va enlazada con una biblioteca de consulta al DNS (resolver), con llamadas como gethostbyname(). La consulta normalmente sigue los pasos siguientes (en una maquina Unix): Consulta en un chero (/etc/hosts). Consulta en un servidor de DNS (su direccion IP esta en /etc/resolv.conf).

c 2004 GSyC

Redes: DNS: Domain Name System

Esquema de funcionamiento del DNS

184

Esquema de funcionamiento del DNS


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

c 2004 GSyC

Redes: DNS: Domain Name System

Esquema de funcionamiento del DNS (cont.)

185

Consulta a un servidor

telnet gsyc.escet.urjc.es Servidor DNS


gsyc.escet.urjc.es?

UDP(gsyc.escet.urjc.es?)

telnet

resolver

UDP(212.128.1.45)

212.128.1.45

c 2004 GSyC

Redes: DNS: Domain Name System

Esquema de funcionamiento del DNS (cont.)

186

Funcionamiento basico (sin caches) 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 direccion IP correspondiente. 2. En caso contrario pregunta a un servidor del dominio raz, que le contestara con la direccion IP de un servidor del dominio . 3. Luego regunta a ese, obteniendo la direccion IP de un servidor de funet.. 4. Ahora se pregunta a este ultimo, que ya tiene en sus mapas la direccion IP pedida. (Cada servidor puede servir uno o varios dominios, o ninguno)
c 2004 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 2004 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 direccion pedida. Iterativas: Las que le hace otro servidor, a las que responden con la direccion IP del servidor del siguiente dominio en la jerarqua. Siempre que pueden, los servidores usan datos de su cache.

c 2004 GSyC

Redes: DNS: Domain Name System

Tipos de servidores

189

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

c 2004 GSyC

Redes: DNS: Domain Name System

Tipos de servidores (cont.)

190

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

c 2004 GSyC

Redes: DNS: Domain Name System

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

c 2004 GSyC

Redes: DNS: Domain Name System

Mapas de dominio (cont.)

192

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

c 2004 GSyC

Redes: DNS: Domain Name System

Mapas de dominio (cont.)

193

urjc.es.

172800

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

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

c 2004 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: Identicacion (2 bytes). Correspondencia consultas-respuestas. Banderas (2 bytes). Consulta/respuesta, truncamiento, tipo de peticion (directa, inversa, estado), respuesta con autoridad, pe ticion recursiva, error. Numero de consultas (2 bytes). Numero de RRs de respuesta (2 bytes). Numero de RRs de autoridad (2 bytes). Numero de otros RRs (2 bytes).

c 2004 GSyC

Redes: DNS: Domain Name System

Formato de menaje DNS (cont.)

195

Datos, tamano variable: Consultas. Respuestas. Autoridad. Mas informacion.

c 2004 GSyC

Redes: DNS: Domain Name System

Formato de menaje DNS (cont.)

196

Consulta Cada consulta de un mensaje DNS (normalmente solo una) tiene: Nombre de la peticion: secuencia de etiquetas (tamano, 1 byte, cadena, hasta 63 bytes), terminada por la etiqueta root (byte de tamano a 0). Tipo de consulta (2 bytes). A, NS, PTR, etc. Clase de consulta (2 bytes). Normalmente IN.

c 2004 GSyC

Redes: DNS: Domain Name System

Formato de menaje DNS (cont.)

197

Registro de recurso Cada RR de un mensaje DNS tiene: Nombre de dominio. Mismo formato que nombre de peticion. Tipo (2 bytes). Clase (2 bytes). Tiempo de vida (4 bytes). Tamano de los datos del recurso (2 bytes). Datos del recurso (valor).

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

c 2004 GSyC

Redes: DNS: Domain Name System

Referencias

199

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

c 2004 GSyC

Redes: DNS: Domain Name System

Referencias (cont.)

200

HTTP

c 2004 GSyC

Redes: HTTP

Qu es HTTP? e

201

Que es HTTP?
Hypertext Transfer Protocol. Es el protocolo mas habitual para servir paginas web. Protocolo cliente-servidor. Normalmente funciona sobre TCP, con el servidor (normalmente) en el puerto 80. No olvidar que HTTP puede servir tanto contenido estatico ( cheros) como dinamico (el resultado de ejecutar programas en el servidor).

c 2004 GSyC

Redes: HTTP

Interacci n cliente-servidor en HTTP o

202

Interaccion cliente-servidor en HTTP


El cliente abre una conexion TCP con el servidor. El cliente enva un mensaje de peticion. El servidor responde con un mensaje de respuesta. El servidor cierra la conexion TCP. HTTP no mantiene estado (no hay informacion sobre las conexiones entre una peticion y otra).

c 2004 GSyC

Redes: HTTP

Interacci n cliente-servidor en HTTP (cont.) o

203

Formato de los mensajes Mensajes legibles (compuestos por lneas de texto casi en ingles): Lnea inicial (diferente para peticion y respuesta), terminada en CRLF. Cero o mas lneas de cabecera, cada una terminada en CRLF: Cabecera-X: Valor-X CRLF Lnea en blanco (CRLF). Cuerpo del mensaje (opcional). Ademas de CRLF, deberan tratarse adecuadamente lneas termina das en LF.

c 2004 GSyC

Redes: HTTP

Interacci n cliente-servidor en HTTP (cont.) o

204

Lnea inicial (peticiones) Especica el recurso que se solicita, y que se quiere de el: Nombre de metodo (GET, POST, HEAD). Camino de acceso (path) Version de HTTP (siempre HTTP/x.x). Ejemplo: GET /directorio/otro/fichero.html HTTP/1.0

c 2004 GSyC

Redes: HTTP

Interacci n cliente-servidor en HTTP (cont.) o

205

Lnea inicial (respuestas) Proporciona informacion de estado: Version de HTTP (siempre HTTP/x.x). Codigo numerico de estado. Codigo de estado en ingles. Codigos de estado: 1xx: Mensaje informativo. 2xx: Resultado exitoso (200 OK). 3xx: Redireccion del cliente a otra URL (301 Moved permanently, 303 See Other). 4xx: Error en el lado del cliente (404 Not Found). 5xx: Error en el lado del servidor (500 Server Error).
c 2004 GSyC Redes: HTTP

Interacci n cliente-servidor en HTTP (cont.) o

206

Lneas de cabecera Mismo formato que las cabeceras de correo y News (RFC 822, seccion 3). HTTP/1.0: 16 cabeceras, ninguna obligatoria. HTTP/1.1: 46 cabeceras, Host: obligatoria en las peticiones (usada por los virtual hosts). Se recomienda incluir en las peticiones al menos: From: (direccion de correo). 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 2004 GSyC

Redes: HTTP

Interacci n 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 el: Content-Type: tipo MIME de los datos (ej: text/html, image/png). Content-Length: numero de bytes en el cuerpo.

c 2004 GSyC

Redes: HTTP

Interacci n cliente-servidor en HTTP (cont.) o

208

Ejemplo (GET, peticion)


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

c 2004 GSyC

Redes: HTTP

Interacci n cliente-servidor en HTTP (cont.) 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 2004 GSyC

Redes: HTTP

Interacci n cliente-servidor en HTTP (cont.) o

210

Metodos HEAD y POST HEAD: Igual que un GET, pero solo pide las cabeceras. Se pueden consultar las caractersticas 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. Tambien se pueden enviar datos con un GET (codicandolos en el URL pedido).

c 2004 GSyC

Redes: HTTP

Interacci n cliente-servidor en HTTP (cont.) o

211

Ejemplo (POST, peticion)


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 2004 GSyC

Redes: HTTP

Representante (proxy) HTTP

212

Representante (proxy) HTTP


Intermediario entre un cliente y un servidor. Es por lo tanto a la vez cliente y servidor. Usos: cortafuegos, caches, etc. Las peticiones a una proxy incluyen la URL completa en la prime ra lnea del mensaje de peticion. Pueden encadenarse varias proxies. Ejemplo de peticion a una proxy: GET http://gsyc.escet.urjc.es/index.html HTTP/1.0

c 2004 GSyC

Redes: HTTP

HTTP 1.1

213

HTTP 1.1
Es una evolucion de HTTP 1.0. Facilidades especcas para maquinas virtuales (virtual hosts). Codicacion por racimos, para respuestas dinamicas (envo an tes de saber el tamano total). Uso de conexiones persistentes que permiten varias transaccio nes sucesivas (se evitan establecimientos de conexion). Facilidades especcas para caches (If-Modied-Since, If-Unmodied Since).

c 2004 GSyC

Redes: HTTP

HTTP 1.1 (cont.)

214

Virtual hosts Para tener virtual hosts es preciso indicar en cada peticion a cual de ellos se dirige. Por eso es obligatorio el uso de la cabecera Host. Si un servidor recibe una peticion sin Host, debe devolver un mensaje de error (400 Bad Request). Los servidores tambien han de aceptar primeras lneas de peti cion con URLs completas, en lugar de caminos (sera lo habitual en versiones futuras). Ejemplo de peticion mnima: GET /dir/index.html HTTP/1.1\r\n Host: gsyc.escet.urjc.es\r\n \r\n
c 2004 GSyC Redes: HTTP

HTTP 1.1 (cont.)

215

Codicacion por racimos Cabecera Transfer-Encoding: chunked. Usada por un servidor que quiere enviar trozos que ya tiene listos antes de tener todo. El cuerpo de cada mensaje por racimos contiene una serie de racimos, cada uno: Comienza por el tamano de los datos del racimo, en hexade cimal, seguidos por ;, quizas algo mas, y CRLF. Los datos, terminados por CRLF. Terminado por una lnea con 0CRLF. Seguido de footers (como cabeceras). Terminado en una lnea en blanco (CRLF).

c 2004 GSyC

Redes: HTTP

HTTP 1.1 (cont.)

216

Codicacion por racimos


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

c 2004 GSyC

Redes: HTTP

HTTP 1.1 (cont.)

217

Conexiones persistentes Permiten que varias peticiones y respuestas sean transferidas usando la misma conexion TCP. Se usan por omision en HTTP 1.1. Si se enva la cabecera Connection: close, el servidor cerrara la conexion despues de cada respuesta. Un servidor puede cerrar la conexion antes de enviar todas las respuestas. El servidor cerrara las conexiones inactivas pasado un plazo (ej: 10 segundos).

c 2004 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 2004 GSyC

Redes: HTTP

HTTPS

219

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

c 2004 GSyC

Redes: HTTP

Galletitas (cookies)

220

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

c 2004 GSyC

Redes: HTTP

Galletitas (cookies) (cont.)

221

Cabecera Set-Cookie Cabecera puesta por un servidor cuando quiere enviar una galletita. Formato: Set-Cookie: Nombre de la galletita y valor (nombre=valor). Fecha de caducidad (expires=fecha). Dominio, camino (domain=dominio path=camino). Para de cidir mas tarde si se enva una galletita o no. secure: si esta marcada as, solo se transmitira sobre cana les seguros (HTTPS). Ejemplo:
Set-Cookie: unnombre=unvalor; expires=Mon, 30-Jan-2001 12:35:23 GMT; path=/dir; domain=mi.dominio.com; secure

c 2004 GSyC

Redes: HTTP

Galletitas (cookies) (cont.)

222

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

c 2004 GSyC

Redes: HTTP

Referencias

223

Referencias
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 2004 GSyC

Redes: HTTP

Referencias

224

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

c 2004 GSyC

Redes: HTTP

Referencias (cont.)

225

Correo electr nico o

c 2004 GSyC

Redes: Correo electr nico o

Algo de terminologa

226

Algo de terminologa
Agente de usuario (UA, user agent): programa que se usa co mo interfaz de usuario para el correo electronico (leer, componer, enviar, gestionar, etc.) Agente de transferencia de mensajes (MTA, message transfer agent): se encarga del encamiento y almacenamiento de los mensajes de correo hasta su destino nal. Protocolo de acceso al correo electronico: lo usa un UA para acceder a un MTA, y recoger el correo para un usuario. Ejemplo: POP, IMAP. Protocolo de envo de correo electronico: lo usa un MTA para en viar correo a otro MTA (tambien puede usarlo un UA para enviarlo a un MTA). Ejemplo: SMTP.
c 2004 GSyC Redes: Correo electr nico o

Generalidades

227

Generalidades
Composicion de un mensaje 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 solo admite texto NVTASCII (Network Virtual Terminal ASCII). Para otros tipos: codicadores de binarios (uuencode) y sobre todo extensiones al mensaje (MIME, RFC1341 )

c 2004 GSyC

Redes: Correo electr nico o

Generalidades (cont.)

228

Cabeceras Le dicen al MTA que debe hacer con el correo. From: Direccion de origen To: Direccion/direcciones de destino CC: Con copia a. . . BCC: Con copia ciega a. . . Subject: Tema sobre el que versa la carta Date: Fecha en que fue enviada Received: Por donde ha pasado la carta Message-id: Identicador del mensaje

c 2004 GSyC

Redes: Correo electr nico o

Generalidades (cont.)

229

Direcciones de correo Dan la informacion necesaria para enviar/recibir un mensaje. Indican adondeva/dedondeviene, pero no por donde ha de pasar. Formato Internet: id_usuario@mquina.dominio a O bien, gracias a las clausulas MX de DNS: id_usuario@dominio

c 2004 GSyC

Redes: Correo electr nico o

MIME

230

MIME
Las RFC 2045 2049 extienden el contenido de los mensajes de correo para que puedan adjuntarse datos genericos (attachments). 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 2004 GSyC Redes: Correo electr nico o

MIME (cont.)

231

El Content-Type se utiliza para saber como tratar en el destino los datos (con que aplicacion). El Content-Transfer-Encoding se utiliza para saber como codicar para 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 caracter de 6 bits se cuantica en binario y se manda en ASCII ( 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 dgitos hexadecimales. 7bit, 8bit, binary. . .

c 2004 GSyC

Redes: Correo electr nico 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 2004 GSyC

Redes: Correo electr nico o

El protocolo SMTP (cont.)

233

Simple Mail Transfer Protocol Dene los comandos que se emplean para comunicarse con/desde un MTA. Como? Conexion al puerto tcp/25 y envo de ordenes. Los mensajes estaban limitados a 64K y haba problemas de ti meouts, por lo que la RFC 1425 dene ESMTP (EHLO...)

c 2004 GSyC

Redes: Correo electr nico 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 2004 GSyC Redes: Correo electr nico o

Recepci n de correo de un MTA o

235

Recepcion de correo de un MTA


Los usuarios no tienen que estar permanentemente conectados a la red ni compartir el directorio donde el MTA almacena los mensajes. Puede usarse un modelo cliente/servidor, siguiendo un protoco lo que permita recuperar los mensajes del buzon (y borrarlos o dejarlos) para que el UA pueda presentarlos en pantalla. Hay varios protocolos para esto: POP2, POP3: Post Ofce Protocol. (RFC-1725,1734,1082) IMAP: Internet Message Access Protocol (RFC-1203; 1730 al 1733)

c 2004 GSyC

Redes: Correo electr nico o

Referencias

236

Referencias
SMTP: Simple Mail Transfer Protocol, captulo 28 de TCP/IP Illustrated, Volume 1, por W. Richard Stevens, Addison Wesley, 1994. SMTP. Simple Mail Transfer Protocol. A tutorial, por Ben-Dayan Maor, Ben-Shimon Sonny, Efron Niv, Kuperman Idan y Meller Tal. http://raddist.rad.com/networks/1998/smtp/smtp.htm POP vs. IMAP, por Barnard College Online Tutorials. http://www.barnard.edu/at/training/eudora/imap.html

c 2004 GSyC

Redes: Correo electr nico o

Referencias (cont.)

237

Resumen de RFCs principales RFC821: protocolo SMTP RFC822: formato de mensajes e interpretacion de cabeceras RFC974: gestion de clausulas MX del DNS RFC1425: protocolo ESMTP (Extended SMTP) RFC1341: MIME: Multipurpose Internet Mail Extensions

c 2004 GSyC

Redes: Correo electr nico o

Potrebbero piacerti anche