Redes Grupo de Sistemas y Comunicaciones gsyc-profes@gsyc.escet.urjc.es
Octubre 2003
1
Introducci´ on a las Redes de Ordenadores
c 2003 GSyC
Redes
Objetivos de las Redes de Ordenadores
2
Objetivos de las Redes de Ordenadores Compartir recursos: Discos duros, impresoras, programas. . . Compartir informaci´ on: Acceso documentos remotos. . . Mejorar la fiabilidad: Alternativas, replicaci´ on. . . Incrementar el rendimiento: M´aquinas trabajando juntas. . . Servir de medio de comunicaci´ on de personas/comunidades
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Estructura de las Redes
3
Estructura de las Redes Diversas m´aquinas (hosts) se conectan a una subred de comunicaciones que permite el di´alogo entre ellas. Dos formas fundamentales de dise˜ nar 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 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Topolog´ıas comunes en Redes
4
Topolog´ıas comunes en Redes
ESTRELLA
ANILLO
TOTALMENTE CONECTADA
BUS
c 2003 GSyC
ARBOL
PARCIALMENTE CONECTADA
SATELITE
ANILLO
Redes: Introducci´ on a las Redes de Ordenadores
Protocolo de Comunicaciones
5
Protocolo de Comunicaciones “Conjunto de reglas (interfaces, algoritmos, formatos de mensajes . . . ) que conocen las entidades que intercambian datos a trav´es de una red de comunicaciones.”
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos
6
Jerarqu´ıas de Protocolos En la mayor´ıa de las redes se utilizan varios protocolos con distintos prop´ ositos. Todos esos protocolos se organizan normalmente en niveles o capas. cada nivel ofrece servicios al nivel superior cada nivel se apoya en los servicios ofrecidos por el nivel inferior
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos (cont.)
7
Principios Fundamentales Cada nivel ofrece servicios al nivel superior, ocult´andole la forma en que realmente se implementan dichos servicios. Cada nivel dentro de una m´aquina “conversa” con su gemelo en otra. Las reglas que rigen esta “conversaci´ on” forman el protocolo de dicho nivel. No hay transferencia f´ısica de datos entre niveles gemelos. La transferencia se hace en cada m´aquina entre niveles adyacentes, a trav´es de las interfaces entre niveles: llamadas a procedimientos/funciones.
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos (cont.)
Maquina A
Nivel 4
8
Maquina B Protocolo del Nivel 4
Nivel 4
interfaz 3/4
Nivel 3
Protocolo del Nivel 3
Nivel 3
interfaz 2/3
Nivel 2
Protocolo del Nivel 2
Nivel 2
interfaz 1/2
Nivel 1
Protocolo del Nivel 1
Nivel 1
Medio de transmision
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos (cont.)
9
M´ aquina origen de una comunicaci´ on El mecanismo b´asico en cada nivel es: tomar las unidades de datos que le ofrece el nivel superior procesarlos (agrupando, separando, . . . ) y formar sus propias unidades de datos (a˜ nadiendo informaci´ on de control en cabeceras) pasar sus unidades de datos al nivel inferior, usando sus servicios ¿Es esto software o hardware?
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos (cont.)
10
M´ aquina destino de una comunicaci´ on El mecanismo b´asico en cada nivel es: tomar las unidades de datos que le ofrece el nivel inferior identificar las cabeceras introducidas en el nivel gemelo para procesar los datos adecuadamente (agrupando, separando, . . . ) pasar los datos al nivel superior ¿Es esto software o hardware?
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos (cont.)
11
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos (cont.)
12
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos (cont.)
13
Protocolo Nivel N+1
Protocolo Nivel N
c 2003 GSyC
Protocolo Nivel N-1
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos (cont.)
14
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos (cont.)
15
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos (cont.)
16
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´ıas de Protocolos (cont.)
17
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Jerarqu´Ĺas de Protocolos (cont.)
18
Protocolo Nivel N+1
Protocolo Nivel N
Protocolo Nivel N-1
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura de Red
19
Arquitectura de Red Conjunto de niveles y protocolos de una determinada red de ordenadores. Las distintas arquitecturas de redes se diferencian en: N´ umero de niveles, y servicios de cada nivel Protocolos de cada nivel
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura OSI
20
Arquitectura OSI En 1983 ISO (Organizaci´ on de Est´andares Internacionales) propone un modelo de referencia para arquitecturas de redes: Modelo de Referencia para la Interconexi´ on de Sistemas Abiertos (ISO OSI Reference Model). El Modelo OSI no es estrictamente una arquitectura, sino un marco al que deben someterse protocolos concretos para establecer una arquitectura “conforme a OSI” OSI no define los servicios y protocolos exactos para cada nivel, s´ olo aquello de lo que cada nivel debe ocuparse.
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura OSI (cont.)
21
La “torre” OSI Maquina A Aplicacion
Presentacion
Sesion
Transporte
Red
Enlace
Fisico
Maquina B Protocolo de Aplicacion
Protocolo de Presentacion
Protocolo de Sesion
Protocolo de Transporte
Protocolo de Red
Protocolo de Enlace
Protocolo de nivel Fisico
Aplicacion
Presentacion
Sesion
Transporte
Red
Enlace
Fisico
Medio de transmision
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura OSI (cont.)
22
El Nivel F´ısico Se ocupa de enviar y recibir bits sobre un medio f´ısico de transmisi´ on: Debe asegurarse que la forma de transmitir un bit a 1 es reconocida en recepci´ on como un bit a 1. La transmisi´ on puede ser el´ectrica, ´ optica, . . . Aborda los problemas el´ectricos, electr´ onicos, de establecimiento de conexiones f´ısicas, . . .
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura OSI (cont.)
23
El Nivel de Enlace Transforma un sistema de transmisi´ on crudo (lo que le ofrece el nivel f´ısico) en una l´ınea libre de errores de transmisi´ on (lo que ofrece para el nivel de red) entre m´aquinas conectadas al mismo medio f´ısico. Forma tramas. Se encarga de detectar las tramas recibidas con errores de transmisi´ on. Adem´as, puede • descartar las tramas con errores, y/o • corregir los errores de las tramas con errores, y/o • pedir la retransmisi´ on de las tramas con errores Se ocupa de resolver los problemas de acceso a un medio de transmisi´ on compartido.
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura OSI (cont.)
24
Nivel de Red Se encarga de la interconexi´ on de m´aquinas que no est´an conectadas al mismo medio de transmisi´ on. Por ello su misi´ on fundamental es el encaminamiento de paquetes desde la m´aquina origen a la m´aquina de destino. El encaminamiento puede ser est´atico o din´amico. Gestiona las congestiones y cuellos de botella. Puede incluir funciones de tarificaci´ on. Puede proporcionar distintos tipos de servicio: Fiable, no fiable.
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura OSI (cont.)
25
Nivel de Transporte Se encarga de gobernar el acceso m´ ultiple a la red de los diversos procesos de la misma m´aquina que quieran usarla (gestiona puertos en m´aquinas multiproceso). Puede proporcionar distintos tipos de servicio: Fiable, no fiable. Realiza comunicaci´ on extremo a extremo, no tiene en cuenta las m´aquina intermedias. Realiza control de flujo extremo a extremo (el receptor no es capaz de recibir a la velocidad a la que transmite el emisor).
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura OSI (cont.)
26
Nivel de Sesi´ on Permite a usuarios en distintas m´aquinas establecer sesiones entre ellos: Proporciona mecanismos para controlar el di´alogo: Ej: Turno, gesti´ on de tokens. Gestiona la sincronizaci´ on entre m´aquinas. Ejemplo: pizarra compartida.
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura OSI (cont.)
27
Nivel de Presentaci´ on Se ocupa de la sintaxis y sem´antica de la informaci´ on transferida entre m´aquinas: Orden de bytes de enteros (little endian/big endian). Representaci´ on de caracteres alfab´eticos. Tama˜ no de los tipos de datos. T´ıpicamente traduce los datos a un formato normalizado que todas las m´aquinas entienden. Tambi´en se suele ocupar de la compresi´ on y cifrado de datos.
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura OSI (cont.)
28
Nivel de Aplicaci´ on Contiene un conjunto de protocolos que son de utilidad directa para aplicaciones que usan la red: Para transmisi´ on de ficheros Para correo electr´ onico Para control de trabajos remotos ...
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura OSI (cont.)
29
Cr´ıticas al Modelo OSI Surgi´ o demasiado pronto. Niveles de distinto “grosor”. Modelo muy complejo. Funcionalidades mal situadas: cifrado, . . . Modelo dominado por una visi´ on “telef´ onica” de las redes de datos Hoy la arquitectura OSI ha ca´ıdo en desuso, pero se utiliza su terminolog´ıa (fundamentalmente la denominaci´ on de los niveles)
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura TCP/IP
30
Arquitectura TCP/IP Su desarrollo comenz´ o a finales de los 60, como proyecto financiado por el Gobierno de los Estados Unidos. Aut´entico sistema abierto: Los protocolos y sus implementaciones est´an disponibles p´ ublicamente. Constituyen el armaz´ on sobre el que se sit´ ua Internet. No se ajusta exactamente al modelo de referencia OSI, surgio antes y OSI no intent´ o incluirlo. Su ´exito (a partir del de Internet) ha hecho que sea la arquitectura m´as importante y conocida actualmente.
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura TCP/IP (cont.)
31
La pila TCP/IP Nivel de Aplicaci´ on
DNS, SMTP, HTTP. . .
Nivel de Transporte
TCP, UDP
Nivel de Red Nivel de Enlace
c 2003 GSyC
IP, ICMP Ethernet, PPP, ADSL
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura TCP/IP (cont.)
32
ordenador A
ordenador B Protocolo HTTP Servidor HTTP
Cliente HTTP
Protocolo TCP
TCP
TCP
encaminador IP
Driver + Tarjeta Ethernet
Protocolo IP
Protocolo Ethernet
Protocolo IP
IP
Driver + Tarjeta Ethernet
Protocolo Ethernet
Driver + Tarjeta Ethernet
IP
Driver + Tarjeta Ethernet
ETHERNET ETHERNET
c 2003 GSyC
Redes: Introducci´ on a las Redes de Ordenadores
Arquitectura TCP/IP (cont.)
33
Nivel F´ısico
c 2003 GSyC
Redes: Nivel F´ ısico
Introducci´ on
34
Introducci´ on El nivel f´ısico es el m´as bajo de toda la torre OSI. Se ocupa de c´ omo se transmiten los datos a trav´es de los medios f´ısicos de transmisi´ on. Debe ocuparse de que las entidades directamente interconectadas concuerden en la forma de usar el medio f´ısico, es decir, que un bit a 1 enviado no sea interpretado por el receptor como un bit a 0.
c 2003 GSyC
Redes: Nivel F´ ısico
Conceptos Generales
35
Conceptos Generales Velocidad de Transmisi´on: Bits por segundo que se transmiten (Unidades: Kbps, Mbps, Gbps). Tambi´en se le llama, informalmente, “ancho de banda”) Latencia o Retardo de propagaci´ on: Tiempo que tarda un bit desde que sale hasta que llega a su destino. Transmisi´ on Simplex: El canal de comunicaciones es de un solo sentido. Transmisi´ on Semi-Duplex: Canal bidireccional, pero en el que no puede transmitirse en ambos sentidos a la vez. Transmisi´ on Duplex: Canal bidireccional en el que puede transmitirse en ambos sentidos a la vez. c 2003 GSyC
Redes: Nivel F´ ısico
Medios de Transmisi´ on
36
Medios de Transmisi´ on Medios Magn´ eticos Se almacenan datos en cintas magn´eticas que se transportan en tren o cami´ on a su destino, donde se leen. ¡No es broma! Se pueden alcanzar velocidades de transferencia media de varios Gbps. El problema es la latencia o retardo de propagaci´ on: lo que tarda en llegar el primer bit a su destino. Los bancos siguen utilizando estos m´etodos.
c 2003 GSyC
Redes: Nivel F´ ısico
Medios de Transmisi´ on (cont.)
37
Cable de Pares Cable de pares: Dos cables de cobre de 1 mm de espesor, trenzados en h´elice. Pueden emplearse sin amplificaci´ on en varios kil´ ometros. Utilizados tanto en telefon´ıa como redes Ethernet. Pueden alcanzarse cientos de Mbps de ancho de banda.
c 2003 GSyC
Redes: Nivel F´ ısico
Medios de Transmisi´ on (cont.)
38
Cable Coaxial de Banda Base N´ ucleo 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 2003 GSyC
Redes: Nivel F´ ısico
Medios de Transmisi´ on (cont.)
39
Cable Coaxial de Banda Ancha Igual que el de Banda Base, pero de 75 ohmios. Utilizado tradicionalmente para televisi´ on. Alcanza hasta 150 Mbps, pero necesita amplificadores intermedios que convierten el canal en unidireccional.
c 2003 GSyC
Redes: Nivel F´ ısico
Medios de Transmisi´ on (cont.)
40
´ Fibra Optica En vez de corriente el´ectrica se transmite luz. Para transmisi´ on digital: La presencia de luz es un 1, la ausencia un 0. Sistema de Transmisi´ on: Emisor: Diodo l´aser 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 l´ımite te´ orico est´a por los 50 Tbps.
c 2003 GSyC
Redes: Nivel F´ ısico
Medios de Transmisi´ on (cont.)
41
Transmisi´ on por Aire Se transmiten se˜ nales de radiofrecuencia por radiado (broadcast). Tres escenarios en los que se utiliza: Redes Inal´ ambricas (WiFi/802.11): • Alcances en el entorno de los cientos de metros, con antenas direccionales especiales unos cuantos kil´ ometros. • 11 Mbps - 54 Mbps Redes por Sat´elite: • Cuando no hay vis´ on directa emisor–receptor: Sat´elites. • Cada sat´elite tiene varios transpondedores (canales), ofreciendo cada uno cientos de Mbps para transmisi´ on de datos. • Principal problema: retardo, t´ıpicamente 300 ms extremo a extremo para sat´elites geosincr´ onicos. Pero si no hay retransmisiones, puede ser mejor que cables. GSM/GPRS c 2003 GSyC
Redes: Nivel F´ ısico
Transmisi´ on Digital
42
Transmisi´ on Digital Para medios capaces de transportar una se˜ nal digital directamente. Ventaja: Menor tasa de errores (puede recrearse la se˜ nal original en puntos intermedios) Se transmite una se˜ nal cuadrada, en la que los distintos niveles de tensi´ on indican la transmisi´ on de ceros o unos. Hay varias formas de codificar los 0 y 1: C´ odigo unipolar, NRZ, Manchester, Manchester diferencial. . .
c 2003 GSyC
Redes: Nivel F´ ısico
Transmisi´ on Digital (cont.)
43
Ejemplo: C´ odigo Manchester V 0
0
1
0
0
1
1
1
0
1
t
Nota: No se puede transmitir una se˜ nal cuadrada perfecta (ancho de banda infinito). Se transmite una suma de sinusoides que se le parece:
c 2003 GSyC
Redes: Nivel F´ ısico
Transmisi´ on Anal´ ogica
44
Transmisi´ on Anal´ ogica Para medios dise˜ nados para transportar se˜ nales anal´ ogicas (ej: l´ınea telef´ onica). Se necesitan MOduladores–DEModuladores en los puntos de acceso al medio. Los modems convierten una se˜ nal digital en su equivalente anal´ ogica (modulan) y viceversa (demodulan).
MODEM
MODEM
Transmision ´ Digital Transmision ´ ´ Analogica
c 2003 GSyC
Redes: Nivel F´ ısico
Transmisi´ on Anal´ ogica (cont.)
45
Tipos de Modulaci´ on 0
Se˜ nal digital:
Modulaci´on ASK:
1
0
1
1
0
0
1
0
0
1
0
0
(a)
(b)
Modulaci´on FSK:
(c)
Modulaci´on PSK:
(d)
Phase changes
Modulaci´on QAM: c 2003 GSyC
Combinaci´ on de ASK y PSK. Redes: Nivel F´ ısico
Transmisi´ on Anal´ ogica (cont.)
46
Nivel de Enlace
c 2003 GSyC
Redes: Nivel de Enlace
Introducci´ on
47
Introducci´ on El Nivel de Enlace suele subdividirse en dos subniveles: Nivel de Red LLC (Subnivel de Control del Enlace L´ ogico) MAC (Subnivel de Control de Acceso al Medio) Nivel F´ısico
MAC: gobierna el acceso a un medio de transmisi´ on compartido por varias m´ aquinas LLC: ofrece al nivel de red un servicio de transmisi´ on de datos entre m´ aquinas adyacentes, encarg´ andose de: composici´ on/descomposici´ on de tramas. control de flujo (opcional). gesti´ on de los errores en la transmisi´ on (opcional).
c 2003 GSyC
Redes: Nivel de Enlace
El problema del acceso al medio
48
El problema del acceso al medio ¿C´ omo y cuando asignar el canal f´ısico a las distintas m´aquinas que lo comparten y quieren acceder a ´el? Soluciones: Asignaci´ on est´atica: Se reparte el canal en el tiempo (TDM) o en frecuencia (FDM). Bueno para tr´aficos pesados y constantes, pero malo para r´afagas (lo habitual). Asignaci´ on din´amica: No est´a prefijado el reparto. Trata de aprovechar mejor el canal en LAN’s. • Acceso por contienda: Las m´aquinas compiten por usar el medio. Si coinciden dos o m´as a la vez: colisi´ on • Acceso por reserva: Las m´aquinas pueden hacer reservas para poder usar el canal en exclusiva durante un tiempo c 2003 GSyC
Redes: Nivel de Enlace
Protocolo CSMA/CD
49
Protocolo CSMA/CD CSMA/CD (Carrier Sense Multiple Access with Collision Detection): Acceso m´ ultiple con detecci´on de portadora. Funcionamiento: Cuando una estaci´ on quiere transmitir escucha en el canal. Si est´a ocupado, espera a que quede libre Si est´a libre, transmite. Mientras transmite, sigue escuchando para ver si alguien transmite a la vez, en cuyo caso aborta la transmisi´ on
c 2003 GSyC
Redes: Nivel de Enlace
Protocolo CSMA/CD (cont.)
50
¿C´ omo se pueden producir las colisiones? Cuando dos estaciones deciden transmitir simult´aneamente al ver el canal libre. Cuando el canal parece libre pero no lo est´a debido al retardo de propagaci´on de los paquetes por la red. Caso patol´ ogico: Dos estaciones quieren transmitir y ven que el canal est´a ocupado. Esperan a que quede libre, y cuando lo est´a ambas transmiten a la vez, colisionando. Y as´ı indefinidamente. Para evitarlo, en caso de colisi´ on las estaciones esperan un tiempo aleatorio antes de reintentar.
c 2003 GSyC
Redes: Nivel de Enlace
Protocolo CSMA/CD (cont.)
51
Tiempo que tarda en detectarse una colisi´ on en el caso peor (tiempo de reacci´ on): Doble del retardo m´aximo de propagaci´ on (τ ): Desde que A empieza a transmitir hasta que pasa τ , B puede empezar a trasmitir tambi´en. B se da cuenta de la colisi´ on inmediatamente, pero hasta que no pasa otro τ , A no se entera. Ejemplo: Con cable coaxial de 1 km τ = 5 µs tiempo de reacci´ on = 10 µs
c 2003 GSyC
Redes: Nivel de Enlace
Protocolos de Paso de Testigo
52
Protocolos de Paso de Testigo Acceso al medio por reserva: Existe un testigo o token que circula por la red. En todo momento, s´ olo el poseedor del testigo puede transmitir, por lo que desaparecen las colisiones. Supone que las estaciones de la red se configuran como un anillo f´ısico o l´ ogico. Mecanismo: Cuando el canal est´a libre, por ´el circula el testigo. Cuando una estaci´ on quiere transmitir: • captura el testigo • env´ıa su trama • devuelve el testigo al anillo.
c 2003 GSyC
Redes: Nivel de Enlace
Nivel de Enlace
53
Nivel de Enlace Recuerda: 2 partes. MAC: Control de acceso al medio (ya visto) LLC: Control del enlace l´ ogico: • Gesti´ on de tramas • Control de flujo (opcional) • Control de errores (opcional)
c 2003 GSyC
Redes: Nivel de Enlace
Gesti´ on de tramas
54
Gesti´ on de tramas El nivel f´ısico maneja una “tira” de bits que recibe-del/pasa-al nivel de enlace. El nivel de enlace maneja unidades de datos denominadas tramas. Debe encargarse de: con los datos que recibe del nivel de red, formar tramas que pasa al nivel f´ısico de los bits que recibe del nivel f´ısico, reconocer tramas y extraer los datos de ellas para pas´arselos al nivel de red.
c 2003 GSyC
Redes: Nivel de Enlace
Gesti´ on de tramas (cont.)
55
Separaci´ on de tramas Cuando el nivel de enlace toma la tira de bits del nivel f´ısico debe ser capaz de identificar tramas en ella. El m´etodo m´as habitual es colocar patrones especiales de bits al principio y/o al final de cada trama. Por ejemplo: 01111110. Problema: ¿Y si en medio bits de datos aparece justo ese patr´ on especial? Soluci´ on: Bits de relleno (bit stuffing ) — Si vienen 5 unos seguidos, el emisor a˜ nade un 0 de “relleno”. El receptor, cada vez que recibe 5 unos, descarta el 0 subsiguiente.
c 2003 GSyC
Redes: Nivel de Enlace
Control de Flujo
56
Control de Flujo Problema: Emisor enviando m´as deprisa de lo que el receptor es capaz de recoger. Soluci´ on: Los protocolos incluyen reglas que permiten al transmisor saber de forma impl´ıcita o expl´ıcita si puede enviar otra trama al receptor. Ejemplo: Al establecer la conexi´ on, el receptor indica que se le pueden enviar hasta N tramas consecutivas, pero no m´as hasta que ´el lo indique expresamente.
c 2003 GSyC
Redes: Nivel de Enlace
Gesti´ on de errores
57
Gesti´ on de errores El problema de la gesti´ on de errores puede abordarse en el nivel de enlace o en niveles superiores (normalmente nivel de transporte). Si se hace en el nivel de enlace, se corrigen los errores en la comunicaci´ on entre cada par de m´aquinas adyacentes que participen en la comunicaci´on Si se hace en el nivel de transporte, se corrigen los errores en las m´aquinas origen y destino de la comunicaci´ on.
c 2003 GSyC
Redes: Nivel de Enlace
Gesti´ on de errores (cont.)
58
Problemas: 1. alg´ un bit de una trama ha cambiado 2. una trama entera se ha perdido 3. una trama llega por duplicado al receptor Normalmente, el primer problema se resuelve siempre en el nivel de enlace, pues esos errores se dan con cierta frecuencia entre m´aquinas adyacentes. Los otros dos problemas no son tan habituales entre m´aquinas adyacentes, por lo que podr´ıa “diferirse” su soluci´ on a niveles superiores.
c 2003 GSyC
Redes: Nivel de Enlace
Bits cambiados en una trama
59
Bits cambiados en una trama Soluciones al problema: el receptor detecta el error y lo corrige autom´aticamente. el receptor detecta el error y descarta la trama incorrecta, esperando que en alg´ un momento el emisor la retransmita (ya veremos como).
c 2003 GSyC
Redes: Nivel de Enlace
Correcci´ on de errores
60
Correcci´ on de errores Consiste en introducir redundancia en la informaci´ on que se env´ıa para, en caso de error, poder “suponer” cu´al era la informaci´ on original. Idea B´asica: s´ olo ciertos patrones de bits son “posibles” si se recibe un patr´ on “imposible”, se supone que el que se quer´ıa enviar es aquel “posible” que m´as se le parezca. Distancia Hamming (d): N.o de diferencias entre dos patrones consecutivos. En un patr´ on pueden detectarse hasta d − 1 errores, y corregirse hasta (d − 1)/2 errores.
c 2003 GSyC
Redes: Nivel de Enlace
Correcci´ on de errores (cont.)
61
Ejemplo: 1. Patrones posibles: 0000000000, 0000011111, 1111100000, 1111111111 2. Se recibe: 0000000111 3. Se corrige a 0000011111 En este caso, d = 5, por lo que se pueden corregir hasta 2 errores en un patr´ on. Si al transmitir 0000011111 hubiera habido 3 errores, y llegado 0000000011, se hubiera corregido incorrectamente a 0000000000. Sin embargo s´ı se puede detectar que ha habido errores (se pueden detectar hasta 4).
c 2003 GSyC
Redes: Nivel de Enlace
Detecci´ on de errores y retransmisi´ on
62
Detecci´ on de errores y retransmisi´ on Ahora la redundancia que se introduce es s´ olo con el objeto de poder detectar cu´ando una trama ha llegado con errores, sin intentar corregirlos pues la trama ser´a reenviada. Es m´as eficiente detectar que corregir errores: se necesitan menos bits de redundancia, aunque aparece la necesidad de retransmitir. La correcci´ on de errores se utiliza fundamentalmente en casos en que es imposible retransmitir. Ejemplo: Medios de transmisi´on simplex.
c 2003 GSyC
Redes: Nivel de Enlace
Detecci´ on de errores y retransmisi´ on (cont.)
63
Bit de Paridad Consiste en a˜ nadir un bit al patr´ on de datos que se env´ıa. Paridad Par: El bit a˜ nadido hace que el total de unos enviado sea siempre par. Paridad Impar: El bit a˜ nadido hace que el total de unos enviado sea siempre impar. Se puede detectar un error de 1 bit del patr´ on, y hay un 50 % de probabilidades de detectar un error en m´as de 1 bit a la vez.
c 2003 GSyC
Redes: Nivel de Enlace
Detecci´ on de errores y retransmisi´ on (cont.)
64
C´ odigos de Redundancia C´ıclica (CRC) Se consideran los patrones de bits como polinomios, y se realizan operaciones aritm´eticas m´ odulo 2 con ellos. El c´alculo del CRC se implementa con circuitos hardware sencillos.
c 2003 GSyC
Redes: Nivel de Enlace
Detecci´ on de errores y retransmisi´ on (cont.)
65
Se demuestra que con los CRC de 16 bits se detectan: Todos los errores simples y dobles Todos los errores en un n´ umero impar de bits Todas las r´afagas de longitud≤16 bits El 99.997 % de las r´afagas de 17 bits El 99.998 % de las r´afagas de longitud≥18 bits
c 2003 GSyC
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados
66
Recuperaci´ on de p´ erdidas y/o duplicados Estos protocolos, adem´as de permitir la recuperaci´ on frente a tramas perdidas y/o duplicadas pueden utilizarse tambi´en para realizar el control de flujo. Se utilizan Timeouts y Asentimientos para implementarlos MUY IMPORTANTE: Pueden situarse en el nivel de enlace o en niveles superiores. En las redes TCP/IP no aparecen hasta (por lo menos) el nivel de transporte.
c 2003 GSyC
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados (cont.)
67
Tres tipos principales de protocolos: De parada y espera: El transmisor, despu´es de enviar una trama, espera su asentimiento por parte del receptor antes de enviar la siguiente. De env´ıo continuo: El transmisor va enviando tramas sucesivamente, y el receptor le va asintiendo por su cuenta. Requiere memoria infinita. De ventanas: El transmisor puede enviar un n´ umero m´aximo de tramas antes de recibir el primer asentimiento
c 2003 GSyC
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados (cont.)
68
Parada y Espera Mecanismo b´asico: Emisor
Receptor
tiempo dato-1
Plazo ACK
c 2003 GSyC
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados (cont.)
Emisor tiempo
69
Receptor dato-1
Plazo
dato-1
Plazo ACK
c 2003 GSyC
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados (cont.)
70
El protocolo genera duplicados, que podr´ıan descartarse en el receptor si los paquetes van identificados de alguna forma.
c 2003 GSyC
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados (cont.)
Emisor
71
Receptor
tiempo
dato-1
Plazo
ACK
dato-1
Plazo ACK
c 2003 GSyC
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados (cont.)
Emisor
72
Receptor
tiempo
dato-1
Plazo
ACK dato-1
Plazo
ACK
c 2003 GSyC
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados (cont.)
73
Soluci´ on: Con asentimiento alternado: cada paquete de datos lleva un bit que va alternando. Los acks tambi´en incluyen el bit para identificar uno u otro paquete. Emisor
Receptor
Emisor
Receptor dato-1 (0)
dato-1 (0)
plazo
ack (0)
ack (0) dato-2 (1)
dato-1 (0)
ack (1) ack (0) dato-3 (0) dato-2 (1) ack (0) ack (1)
c 2003 GSyC
Ya no hay duplicados ni pérdidas
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados (cont.)
74
Env´ıo Continuo El canal est´a infrautilizado. Mejor que el emisor env´ıe siempre que pueda. Env´ıo cont´ınuo con Rechazo Simple: Emisor tiempo
Receptor
dato-1 dato-2 dato-3 dato-4 dato-5 dato-6
nack-3
Se asiente negativamente la trama perdida, por lo que ¡¡cada trama debe tener un identificador!!
dato-3 dato-4
El Emisor debe reenviar todas las tramas desde la perdida
dato-5
c 2003 GSyC
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados (cont.)
75
Env´ıo cont´ınuo con Rechazo Selectivo: Emisor
Receptor
dato-1 tiempo
dato-2 dato-3 dato-4 dato-5 dato-6
nack-3
Se asiente negativamente la trama perdida
dato-3 dato-7 dato-8
c 2003 GSyC
Emisor sólo retransmite las tramas indicadas, lo que es más eficiente
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados (cont.)
76
Ventanas Parada y Espera es muy lento. Env´ıo Cont´ınuo requerir´ıa memoria infinita. Soluci´ on intermedia: El Emisor, en vez de parar despu´es de transmitir cada trama, para despu´es de transmitir n (tama˜ no de la ventana) tramas. Cuando va recibiendo los ACKs de las tramas enviadas puede proseguir enviando nuevas tramas.
c 2003 GSyC
Redes: Nivel de Enlace
Recuperaci´ on de p´ erdidas y/o duplicados (cont.)
Emisor 1
dato-1
1 2
dato-2
1 2
3
77
Receptor
dato-3 Tamaño de ventana del Emisor: 3 ack-1
2 3 4 2 3 4 3 4 5 3
ack-2 dato-4 dato-5
4 5 3
c 2003 GSyC
dato-3
Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP
78
Protocolos de Nivel de Enlace en redes TCP/IP Los m´as habituales: Ethernet Fast Ethernet PPP
c 2003 GSyC
Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
79
Ethernet Norma originalmente establecida por Xerox, DEC e Intel. Pensada para medios compartidos con acceso mediante CSMA/CD Hasta 10 Mbps Medios f´ısicos: • Cable coaxial grueso (Thicknet): 10Base5, topolog´ıa en bus. • Cable coaxial fino (Thinnet): 10Base2, topolog´ıa en bus. • Par trenzado: 10Base-T, topolog´ıa en estrella. • Fibra ´ optica: 10Base-F, topolog´ıa en estrella Nivel F´ısico: C´ odigo Machester, niveles de +0.85V y –0.85V. Acceso al Medio: CSMA/CD
c 2003 GSyC
Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
80
10BaseT: Cable UTP-3 ´o UTP-5 (Unshielded Twisted Pair ): 4 Pares trenzados, no blindados, categor´ıa 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 boca, lo retransmite por todas las dem´as. 10 Mbps entre todas las bocas. A veces se usa un conmutador (switch): Reenv´ıa s´ olo a la boca a la que se conecta el destinatario. 10 Mbps por boca y sentido, varias transmisiones a la vez. Longitud m´axima hasta el concentrador: 100 metros
c 2003 GSyC
Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
81
Formato de trama nº bytes
7
1
Preámbulo
6
6
2
0 - 1500
0 - 46
4
Dirección destino
Dirección origen
Tipo
Datos
Relleno
CRC
Comienzo de trama
Pre´ ambulo 10101010 (x 7 bytes). Permite al receptor sincronizar su reloj con el del transmisor. Comienzo de trama 10101011, indicando que a continuaci´ on empieza la trama.
c 2003 GSyC
Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
82
Direcciones destino y origen 6 bytes. Si todos los bits de destino son 1, la trama ser´a entregada a todas las estaciones de la subred (omnienv´ıo o broadcast). Si el bit 47 (el de mayor peso) de la direcci´ on destino es 1, la trama va destinada a un grupo de m´aquinas (multienv´ıo o multicast). Si el bit 46 de una direcci´ on est´a a 1, la direcci´ on es de ´ambito mundial, asignada de forma u ´nica. Si est´a a 0, es de ´ambito local, relativo a esa subred. En ambos casos son direcciones unienv´ıo o unicast. La direcci´ on de destino va delante para que una estaci´ on sepa r´apidamente si una trama es para ella o no.
c 2003 GSyC
Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
83
Tipo Indica el Protocolo encapsulado dentro del campo de Datos: 0x0800 datagrama IP 0x0806 paquete ARP (28 bytes de datos y 18 de relleno) 0x8035 paquete RARP (28 bytes de datos y 18 de relleno) Datos Entre 46 y 1500 bytes. Relleno La norma obliga a que toda trama sea ≥ 64 bytes, para poder considerar que todas las tramas menores son resultado de transmisiones abortadas al detectar colisi´ on. Por ello, si hay menos de 46 bytes de datos, se utilizan estos bytes de relleno. Retardo m´ ax. de propagaci´ on en 2,5 km, 4 repetidores: 25.6 µs Tiempo de Reacci´ on: 25.6 x 2 = 51.2 µs Bits transmitidos en 51.2 µs a 10 Mbps: 51,2 · 10−6 × 10 · 106 = 512 bits = 64 bytes.
c 2003 GSyC
Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
84
CRC 32 bits de Control de Redundancia C´ıclica, para la detecci´ on de errores: El transmisor calcula el CRC de los bits de datos, y lo coloca en la trama. El receptor calcula el CRC de los bits de datos de la trama, y comprueba que coincida con el CRC que viene en ella. Si no coincide, los datos han sido modificados por ruido en el cable, y se descarta la trama.
c 2003 GSyC
Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
85
Fast Ethernet Compatible con Ethernet (mismo formato de trama). 100 Mbps 100Base-TX: 2 pares UTP-5 100Base-T4: 4 pares UTP-3 100Base-FX: 2 fibras ´ opticas
c 2003 GSyC
Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
86
PPP: Point to Point Protocol Es un protocolo pensado para encapsular IP (nivel de red) sobre l´ınea serie. Est´a dise˜ nado de forma que no s´ olo puede encapsular IP, sino tambi´en otros protocolos. Se utiliza fundamentalmente para conectarse a Internet a trav´es de la red telef´ onica b´asica mediante m´ odem. Hist´ oricamente se us´ o primero SLIP (Serial Line IP), pero PPP es m´as completo. La principal diferencia de PPP con SLIP es que PPP incluye detecci´ on de errores de transmisi´ on mediante CRC. flag 7E
addr FF
control 03
protocolo
1
1
1
2
datos
CRC
hasta 1500
2
c 2003 GSyC
flag 7E 1
nº bytes
Redes: Nivel de Enlace
Protocolos de Nivel de Enlace en redes TCP/IP (cont.)
87
ADSL: Asymetric Digital Susbcriber Line Una l´ınea telef´ onica normal transmite voz: Una banda de 0-4kHz. En un par de cobre “cabe m´ as”, por lo que en la centralita se agrupan (multiplexan) varias conversaciones (desplazadas en frecuencia) por un mismo cable. Las transmisiones mediante m´ odem con PPP reciben el mismo trato. Con ADSL el abonado contin´ ua utilizando los primeros 4kHz para las llamadas de voz, pero ahora ocupa m´ as ancho de banda para la transmisi´ on (simult´ anea) de datos. En la centralita se trata al abonado de forma diferente, separando los 4kHz por un lado y transmitiendo los datos de forma independiente. Es asim´etrico: se reserva m´ as para recibir (256Kbps–2Mbps) que para enviar (128Kbps–300Kbps). Ambas bandas est´ an separadas. Se transmite por modulaci´ on multitono discreta (MDT). ADSL es m´ as bien un nivel f´ısico: como nivel de enlace puede utilizarse cualquier de los usados en l´ıneas punto a punto.
c 2003 GSyC
Redes: Nivel de Enlace
Dispositivos de interconexi´ on de subredes
88
Dispositivos de interconexi´ on de subredes Para interconectar subredes pueden colocarse dispositivos muy diferentes en prop´ osito y funcionamiento: repetidores (repeaters) puentes (bridges) encaminadores (routers) concentradores (hubs) conmutadores (switches)
c 2003 GSyC
Redes: Nivel de Enlace
Dispositivos de interconexi´ on de subredes (cont.)
89
Repetidores Copian se˜ nales el´ectricas de un medio f´ısico de transmisi´ on a otro (trabajan en el nivel 1). Permiten extender la longitud f´ısica de la subred Aislan los fallos de diferentes segmentos de la subred
c 2003 GSyC
Redes: Nivel de Enlace
Dispositivos de interconexi´ on de subredes (cont.)
90
Puentes Interconectan dos LAN, pasando tramas de una a otra (trabajan en el nivel 2). Las m´aquinas de las dos subredes NO son conscientes de la presencia del bridge.
c 2003 GSyC
Redes: Nivel de Enlace
Dispositivos de interconexi´ on de subredes (cont.)
91
Encaminadores Interconectan subredes distintas trabajando en el nivel de red. La mayor diferencia con los bridges es que los niveles de enlace de m´aquinas de las subredes que interconectan S´I son conscientes de su presencia. Los estudiaremos con m´as detalle en el tema siguiente.
c 2003 GSyC
Redes: Nivel de Enlace
Dispositivos de interconexi´ on de subredes (cont.)
92
Concentradores Ofrecen el servicio de un bus a topolog´ıas en estrella. Su servicio es fundamentalmente de nivel 1: repiten la se˜ nal de una boca a las otras Puede incorporar cierta funcionalidad de nivel 2: en Ethernet, cuando detectan se˜ nal por una boca, env´ıan ruido por todas las dem´as para que la vean las tarjetas, colisionen y reintente. Reparten el ancho de banda disponible entre todas las bocas
c 2003 GSyC
Redes: Nivel de Enlace
Dispositivos de interconexi´ on de subredes (cont.)
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 reenvi´andolas por las bocas adecuadas (trabajan en el nivel 2). Pueden dar todo el ancho de banda a cada una de varias transmisiones simult´aneas entre bocas. Para tecnolog´ıas compatibles (Ethernet/FastEthernet) pueden tener bocas trabajando a distintas velocidades. Reciben su nombre porque, para una transmisi´ on entre dos bocas, ofrecen un funcionamiento equivalente a “conmutar” para interconectarlas ofreciendo un u ´nico canal directo e independiente de otras transmisiones. c 2003 GSyC
Redes: Nivel de Enlace
Dispositivos de interconexi´ on de subredes (cont.)
94
Nivel de Red
c 2003 GSyC
Redes: Nivel de Red
Introducci´ on
95
Introducci´ on El nivel de red se ocupa de que los paquetes que salen del transmisor lleguen a su destino final, aunque el emisor y el receptor no est´en “adyacentes” (conectados directamente al mismo medio de transmisi´ on). Esto normalmente requiere pasar a trav´es de nodos intermedios: encaminadores (routers). Es necesario elegir la mejor ruta a seguir. RECORDATORIO: El nivel de enlace s´ olo se ocupa de que las tramas viajen entre m´aquinas “adyacentes”.
c 2003 GSyC
Redes: Nivel de Red
Misiones del Nivel de Red
96
Misiones del Nivel de Red Encaminamiento de paquetes. Asignaci´ on de direcciones u ´nicas a todas las m´aquinas de la red, independientes de la tecnolog´ıa de los niveles de enlace. Interconexi´ on en una misma red de subredes con distinto nivel de enlace. Control de congesti´ on.
c 2003 GSyC
Redes: Nivel de Red
Tipos de Nivel de Red
97
Tipos de Nivel de Red Seg´ un haya o no conexiones de red: No orientado a conexi´ on Orientado a conexi´ on Seg´ un se encamine cada paquete por separado o no: Basado en datagramas Basado en ciruitos virtuales Seg´ un se ofrezca o no un servicio fiable: Fiable No fiable
c 2003 GSyC
Redes: Nivel de Red
Tipos de Nivel de Red (cont.)
98
Servicio No Orientado a Conexi´ on Cada vez que el nivel superior quiere enviar datos, se compone una unidad de datos (paquete) con ellos y se env´ıa. No hay relaci´ on con transmisiones previas o futuras al mismo destino Servicio Orientado a Conexi´ on Antes de enviar el primer byte de datos, origen y destino mantienen un di´alogo inicial para establecer ciertas condiciones de la transferencia de informaci´ on, que se mantienen mientras dure esta transferencia
c 2003 GSyC
Redes: Nivel de Red
Tipos de Nivel de Red (cont.)
99
Servicio basado en Datagramas La direcci´ on de destino viaja en todos los paquetes de datos. El encaminamiento de cada paquete es independiente, por lo que varios paquetes enviados del mismo origen al mismo destino pueden viajar por diferentes rutas (y, tal vez, llegar en desorden). Servicio basado en Circuitos Virtuales Al principio se establece un “circuito virtual” por el que viajar´an todos los paquetes de datos. La direcci´ on de destino viaja s´ olo en los paquetes que establecen el cirtuito virtual. Los paquetes con datos s´ olo llevan un identificador del circuito virtual al que pertenecen Todos los paquetes pertenecientes a un mismo circuito virtual siguen el mismo camino y llegan en orden.
c 2003 GSyC
Redes: Nivel de Red
Tipos de Nivel de Red (cont.)
100
Servicio basado en datagramas: 3
2
1 3
A
B 3
2 1
E
2
1
C
2
3
1 1
D
c 2003 GSyC
Redes: Nivel de Red
Tipos de Nivel de Red (cont.)
101
Servicio basado en circuitos virtuales: 3
2
1
A
3
2
1
B 3 2 1
E 3
2
1
C
D
c 2003 GSyC
Redes: Nivel de Red
Tipos de Nivel de Red (cont.)
102
Servicio Fiable: Se garantiza al nivel superior que todos los paquetes llegan a su destino, y que el destino es capaz de reordenarlos si se desordenan en el camino. Para ello se numeran los paquetes, y se retransmiten los perdidos Servicio No Fiable: No se garantiza al nivel superior que todos los paquetes lleguen a su destino: pueden perderse paquetes (t´ıpicamente por congesti´ on). Alg´ un nivel superior deber´a ser capaz de detectar y recuperarse de estas p´erdidas, si la aplicaci´ on lo requiere.
c 2003 GSyC
Redes: Nivel de Red
Tipos de Nivel de Red (cont.)
103
Todas las combinaciones de tipos de servicio de nivel de red son te´ oricamente posibles, pero no todas se dan en la pr´actica. Las combinaciones m´as frecuentes son: Servicio Orientado a Conexi´ on, basado en Circuitos Virtuales y Fiable (ejemplo: X.25). Servicio No Orientado a Conexi´ on, basado en Datagramas y No Fiable (ejemplo: IP).
c 2003 GSyC
Redes: Nivel de Red
Direcciones de Red
104
Direcciones de Red Se necesita un mecanismo de identificaci´ on un´ıvoca de todas las m´aquinas de la red, independientemente de la tecnolog´ıa del nivel de enlace de cada una. Existen distintos m´etodos de direccionamiento seg´ un el tipo de redes. Veremos m´as adelante el formato de las direcciones del nivel de red IP.
c 2003 GSyC
Redes: Nivel de Red
Interconexi´ on de subredes con distinto nivel de enlace
105
Interconexi´ on de subredes con distinto nivel de enlace Dependiendo de la arquitectura de red que se trate, puede que se desee integrar en una misma red a subredes con distinto nivel de enlace. Cuando as´ı ocurre, es misi´ on de nivel de red hacer esta integraci´ on Es necesario que el nivel de red del encaminador que une las subredes “entienda” los dos niveles de enlace. Puede tener que resolver problemas de: • distintos tama˜ nos de las unidades de datos • distintas velocidades de las subredes
c 2003 GSyC
Redes: Nivel de Red
Interconexi´ on de subredes con distinto nivel de enlace (cont.)
106
Ejemplo Protocolo FTP Cliente FTP
Servidor FTP
Protocolo TCP
TCP
TCP
router IP
Driver Ethernet
Protocolo IP
Protocolo Ethernet
Protocolo IP
IP
Driver Ethernet
Driver token ring
Protocolo token ring
IP
Driver token ring
TOKEN RING ETHERNET
c 2003 GSyC
Redes: Nivel de Red
Encaminamiento
107
Encaminamiento El proceso mediante el cu´al se encuentra un camino entre dos puntos cualesquiera de la red Problemas a resolver: ¿Qu´e camino escoger? ¿Existe alguno m´as corto? ¿Qu´e ocurre si un encaminador o un enlace intermedio se rompen? ...
c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
108
Algoritmo de encaminamiento: Procedimiento por el cu´al 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 informaci´ on necesaria. El resultado de los algoritmos de encaminamiento es generar en cada encaminador su tabla de encaminamiento. Tabla de encaminamiento: Tabla que consulta el encaminador cada vez que recibe un paquete y tiene que encaminarlo. Esta tabla tiene esta forma: Destino final
Encaminador vecino al que enviar el paquete
D1
V1
D2
V2
...
...
Muchas veces se utiliza el t´ermino Protocolo de Encaminamiento en vez de Algoritmo de Encaminamiento. c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
109
Objetivos de un algoritmo de encaminamiento Minimizar el espacio de la tabla de encaminamiento para poder buscar r´apidamente y para tener menos informaci´ on a intercambiar con otros encaminadores Minimizar el n´ umero y frecuencia de mensajes de control Robustez: evitar agujeros negros, evitar bucles, evitar oscilaciones en las rutas Generar caminos ´ optimos: • menor retardo de tr´ansito, o • camino m´as corto (en funci´ on de una cierta m´etrica en funci´ on de retardo, coste de los enlaces, . . . ), o • m´axima utilizaci´ on de la capacidad de la red
c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
110
Algoritmo de inundaci´ on Es un algoritmo simple que a veces se utiliza cuando no hay ninguna informaci´ on de encaminamiento disponible (al arrancar alg´ un otro algoritmo): 1. Cada paquete recibido por un nodo es encaminado a todos los vecinos (excepto al que lo envi´ o). 2. Los paquetes van etiquetados y numerados. 3. Si un nodo recibe un paquete que ya ha encaminado, lo descarta.
c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
111
Algoritmo de aprendizaje Es un algoritmo simple, que mejora el de inundaci´ on. Se utiliza tambi´en en los bridges de nivel de enlace. 1. Cada nodo mantiene una tabla con entradas (Destino, enlace por el que encamino) que va actualizando seg´ un los paquetes que va recibiendo. 2. Al recibir un paquete, se fija en el nodo origen y enlace por el que le ha llegado, apuntando en la tabla que cuando ese nodo sea destino de un paquete lo encaminar´a por ese enlace 3. Cuando para un destino no hay entrada en la tabla, se env´ıa por inundaci´ on.
c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
112
Algoritmo de Dijkstra Es un algoritmo que encuentra caminos de distancia m´ınima de un nodo al resto (por lo que cada nodo ejecuta el algoritmo). Requiere conocer todas las distancias entre nodos adyacentes. 1.
Se trabaja con dos conjuntos de nodos: P : Nodos con su encaminamiento ya resuelto (permanentes) T : Nodos a´ un no resueltos (tentativos)
2.
Inicialmente P s´ olo contiene el nodo inicial
3.
Para cada nodo de T : si no est´ a directamente conectado a ning´ un nodo de P , su distancia al nodo inicial es infinta en caso contrario, se calcula la menor entre la distancia calculada en un paso anterior y las distancias directas entre ´el y los nodos de P
4.
El nodo de T de menor distancia se pasa a P . Si a´ un quedan nodos en T , se vuelve al paso anterior.
c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
B 2
7 2
A
E
2
F
D
A
E (∞, −)
H
G (6, A)
(a) B (2, A)
A
(b) C (9, B)
E (4, B)
F (∞, −)
B (2, A)
D (∞,−)
A
H (∞, −)
G (6, A)
A
F (6, E)
D (∞,1)
H (∞, −) (d)
E (4, B) F (6, E)
H (9, G) (e)
C (9, B)
G (5, E)
C (9, B)
G (5, E)
D (∞, −)
H (∞, −)
E (4, B)
(c) B (2, A)
F (∞, −)
2
4 G
C (∞, −)
B (2, A) 3
2
1
6
C 3
113
B (2, A) D (∞,−)
A
C (9, B)
E (4, B) F (6,E)
G (5, E)
D (∞,−)
H (8, F) (f)
Fig. 5-6. The first five steps used in computing the shortest path from A to D. The arrows indicate the working node. c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
114
Algoritmos basados en Vectores de Distancias El protocolo RIP (Routing Information Protocol), utilizado en Internet, emplea esta t´ecnica. 1.
Cada nodo mantiene una tabla de encaminamiento con pares (Destino, Nodo vecino por el que encamino), para todos los destinos de la red.
2.
Cada nodo estima el retardo de sus paquetes a los nodos vecinos (enviando peri´ odicamente paquetes de sondeo).
3.
Cada nodo env´ıa peri´ odicamente a sus vecinos todos sus pares (Destino, retardo estimado)
4.
Cada nodo estudia la informaci´ on recibida de los vecinos para ver si puede conseguir una ruta de menor retardo enviando a trav´es de otro de sus vecinos, y actualiza sus tablas de encaminamiento consecuentemente
c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
115
New estimated delay from J K Line
Router A
B
C
D
F
E
G
H
To A B C D E F G H I J K L
I
K
J (a)
L
A
I
0 12 25 40 14 23 18 17 21 9 24 29 JA delay is 8
24 36 18 27 7 20 31 20 0 11 22 33 JI delay is 10
8 20 28 20 17 30 18 12 10 0 6 15
H
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
A A I H I I H H I − K K
New routing table for J
Vectors received from J's four neighbors
(b)
Fig. 5-10. (a) A subnet. (b) Input from A, I, H, K, and the new routing table for J. c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
116
Problema: cuenta al infinito. La informaci´ on acerca de mejores rutas se propaga poco a poco, consigui´endose 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
∞ 1 1 1 1
C
∞ ∞ 2 2 2
D
E
∞ ∞ ∞
∞ Initially ∞ After 1 exchange ∞ After 2 exchanges ∞ After 3 exchanges 4 After 4 exchanges
A
3 3
(a)
B 1 3 3 5 5 7 7
∞
C
2 2 4 4 6 6 8
.. . ∞
D
E
3 3 3 5 5 7 7
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
(b)
Fig. 5-11. The count-to-infinity problem.
c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
117
Algoritmos basados en el Estado de Enlace El protocolo OSPF (Open Shortest Path First), utilizado en Internet, emplea esta t´ecnica. 1.
Cada encaminador mide su distancia con cada uno de sus vecinos (enviando paquetes de sondeo) y construye un paquete de estado de enlaces con esta informaci´ on.
2.
Cada encaminador env´ıa perdi´ odicamente el paquete de estado de enlaces a todos los encaminadores de la red. Estos mensajes se difunden por inundaci´ on.
3.
Cada encaminador, con la informaci´ on recibida, conoce la topolog´ıa completa de la red y calcula el mejor camino a todos sus destinos (aplicando, por ejemplo, el algoritmo de Dijkstra)
c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
B
Link B
C
2
A
4
3
A
D 1
6
5
7
8
State C
Packets E
D
F
Seq. Age
Seq. Age
Seq. Age
Seq. Age
Seq. Age
Seq. Age
B 4 E 5
A 4 C 2 F 6
B 2 D 3 E 1
C 3 F 7
A 5 C 1 F 8
B 6 D 7 E 8
E
118
F
(a)
(b)
Fig. 5-15. (a) A subnet. (b) The link state packets for this subnet.
c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
119
Encaminamiento jer´ arquico Si la red es muy grande, las tablas de encaminamiento se hacen inmanejables: se tarda mucho en calcular los caminos ´ optimos se genera mucho tr´ afico de control para conseguir difundir la informaci´ on necesaria para los algoritmos de encaminamiento Soluci´ on: Encaminamiento Jer´ arquico: Se divide la red en dominios Dentro de cada dominio se encamina seg´ un un algoritmo de los vistos anteriormente Los dominios est´ an interconectados mediante pasarelas (gateways) Las m´ aquinas dentro de un dominio no conocen a las de otro Los gateways s´ olo conocen a otros gateways
c 2003 GSyC
Redes: Nivel de Red
Encaminamiento (cont.)
Full table for 1A Dest. Region 1
Region 2
1A
Line –
1B
2A 2B
1B 1C 2A 2B
1B 1C 1B 1B
1A 1C
2C
4A
3A
3B
4B
4C
5B
2D
Region 4
1B 1B 1C 1C
4A 4B 4C 5A 5B 5C 5D
1C 1C 1C 1C
5C
5A
(a)
1 1 2 3
Hierarchical table for 1A Dest.
3 4 3 2
Line –
Hops –
3
1B 1C 1B 1C
1 1 2 2
4 5
1C 1C
1A 1B 1C 2
3 4
5D 5E Region 5
Region 3
2C 2D 3A 3B
Hops –
120
5E
3 4 4 4
1C 1B 1C
5 5 6
1C
5
(b)
(c)
Fig. 5-17. Hierarchical routing. c 2003 GSyC
Redes: Nivel de Red
Control de Congesti´ on
121
Control de Congesti´ on Un encaminador tiene varios enlaces de entrada y salida. Puede ser que lleguen paquetes m´as deprisa de lo que el encaminador sea capaz de darles salida. Si esta situaci´on es espor´adica, se resuelva con buffers. Los buffers son limitados: cuando se llenan se ha alcanzado la congesti´ on Congesti´ on: cuando el tr´afico deseado/originado en los extremos es mayor del que puede encaminar el nivel de red
c 2003 GSyC
Redes: Nivel de Red
Control de Congesti´ on (cont.)
122
Medidas: En redes basadas en circuitos virtuales, se puede hacer un control de admisi´ on: 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 2003 GSyC
Redes: Nivel de Red
Control de Congesti´ on (cont.)
123
IP: Internet Protocol
c 2003 GSyC
Redes: IP: Internet Protocol
Introducci´ on
124
Introducci´ on IP es un protocolo de Nivel de Red que ofrece un servicio de entrega de mensajes (datagramas): no orientado a conexi´ on no fiable Dentro de un datagrama IP se encapsula una unidad de datos de uno de los siguientes protocolos: ICMP Internet Control Message Protocol IGMP Internet Group Management Protocol TCP Transmission Control Protocol UDP User Datagram Protocol
c 2003 GSyC
Redes: IP: Internet Protocol
Datagramas IP
125
Datagramas IP 4 versión
8 longitud cabecera
16
tipo de servicio(TOS)
tiempo de vida (TTL)
longitud total flags (3 bits)
identificación
31
protocolo
offset de fragmentación checksum de la cabecera
dirección IP origen
cabecera
0
dirección IP destino opciones (en su caso)
datos
c 2003 GSyC
Redes: IP: Internet Protocol
Datagramas IP (cont.)
126
versi´ on Actualmente versi´ on 4. La siguiente versi´ on es IPv6. longitud cabecera N´ umero de palabras de 32 bits que ocupa la cabera. Normalemente es 5 (20 bytes), cuando no hay opciones TOS Se usan s´ olo 4 bits para indicar tipo de servicio a ofrecer: minimizar retardo maximizar rendimiento maximizar fiabilidad minimizar coste econ´ omico
c 2003 GSyC
Redes: IP: Internet Protocol
Datagramas IP (cont.)
127
longitud total En bytes. Tama˜ no m´aximo: 65535 bytes. Normalmente es menor de 576 bytes. Dependiendo del nivel de enlace, cualquier m´aquina puede necesitar fragmentar un datagrama IP al encaminarlo. identificaci´ on Diferente para cada datagrama que genera una m´aquina (se va incrementando de 1 en 1). Distintos fragmentos del mismo datagrama mantienen el mismo n´ umero de identificaci´ on. flags Uno para indicar si este datagrama no puede fragmentarse, y otro para indicar si hay m´as fragmentos de este datagrama offset de fragmentaci´ on Generado al fragmentar un datagrama, le sirve al destino final para reensamblarlo. TTL Indica el n´ umero m´aximo 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, envi´andose al originador del datagrama un mensaje ICMP.
c 2003 GSyC
Redes: IP: Internet Protocol
Datagramas IP (cont.)
128
protocolo Indica si en el campo de datos va un paquete de ICMP, IGMP, TCP o UDP. checksum Calculado u ´nicamente sobre la cabera del datagrama. direcciones origen y destino Valores de 32 bits. opciones Informaci´ on opcional. No todas las m´aquinas y encaminadores las soportan. El campo de opciones se rellena con ceros por la derecha para asegurar un m´ ultiplo de 32 bits. Ejemplos de opciones: restricciones de seguridad ruta recorrida marca de tiempo encaminamiento en origen
c 2003 GSyC
Redes: IP: Internet Protocol
Direcciones IP
129
Direcciones IP Cada interfaz f´ısico conectado a la Internet tiene asignada una direcci´ on IP que resulta u ´nica en toda la red. Los 32 bits se suelen expresar en ((notaci´ on decimal puntuada)): 212.128.4.4 El rango de direcciones se divide en 5 clases: Clase
c 2003 GSyC
Rango
A
0.0.0.0 a 127.255.255.255
B
128.0.0.0 a 191.255.255.255
C
192.0.0.0 a 223.255.255.255
D
224.0.0.0 a 239.255.255.255
E
240.0.0.0 a 247.255.255.255
Redes: IP: Internet Protocol
Direcciones IP (cont.)
130
Los primeros bits de una direcci´ on indican cu´al es su clase. En cada clase, es distinto el n´ umero de bits de red y el de bits de m´aquina. 7 bits id red
Clase A
0
Clase B
1
0
Clase C
1
1
0
Clase D
1
1
1
0
Clase E
1
1
1
1
24 bits id maquina 14 bits id red
16 bits id maquina 21 bits id red
8 bits id maquina 28 bits id grupo multicast
0
27 bits reservado para usos futuros
c 2003 GSyC
Redes: IP: Internet Protocol
Direcciones IP (cont.)
131
Tipos de direcciones IP unicast Representan a una sola m´aquina multicast Representan a un grupo de m´aquinas broadcast Representan a todas las m´aquinas de una subred
c 2003 GSyC
Redes: IP: Internet Protocol
Direcciones IP (cont.)
132
¿Qui´ en asigna direcciones IP? ´ Tres organismos regionales: ARIN (Am´erica), RIPE (Europa y Africa) y APIC (Asia). RIPE delega en organismos regionales (normalmente por pa´ıses). En Espa˜ na, el organismo es Red.es, Entidad P´ ublica Empresarial adscrita al Ministerio de Ciencia y Tecnolog´ıa. Una organizaci´ on adquiere una (o m´as) direcciones de clase, y el administrador local de la organizaci´ on reparte la direcci´ on de clase entre todas sus m´aquinas. ICANN (Internet Corporation for Assigned Names and Numbers) es una organizaci´ on internacional creada en 1998 para coordinar todas las tareas de asignaci´ on de nombres y direcciones.
c 2003 GSyC
Redes: IP: Internet Protocol
Direcciones IP (cont.)
133
Subredes En ocasiones, por razones organizativas o topol´ ogicas, se utilizan algunos bits de m´aquina como bits de subred. Sobre todo con direcciones de clases A y B. Dada una direcci´ on de red otorgada a una organizaci´ on, el administrador decidir´a si utilizar´a subredes, y el n´ umero de bits de m´aquina que utilizar´a para indicar la subred.
c 2003 GSyC
Redes: IP: Internet Protocol
Direcciones IP (cont.)
134
El n´ umero de bits con el que se indica la subred se denota con una m´ascara de subred: 32 bits, 1 para bits de red y subred, 0 para bits de m´aquina. Ejemplos: Direcci´ on de clase
M´ ascara
Subredes
163.117.0.0
255.255.255.0
163.117.0.0 – 163.117.0.255 163.117.1.0 – 163.117.1.255 ... 163.117.254.0 – 163.117.254.255 163.117.255.0 – 163.117.255.255
193.147.71.0
255.255.255.128
193.147.71.0 – 193.147.71.127 193.147.71.128 – 193.147.71.255
Normalmente en cada subred se reservan: la primera direcci´ on (bits de m´ aquina a cero) como “direcci´ on de la red” la u ´ltima direcci´ on (bits de m´ aquina a uno) como “direcci´ on de broadcast”.
c 2003 GSyC
Redes: IP: Internet Protocol
Encaminamiento
135
Encaminamiento Cualquier m´aquina IP puede est´a o no configurada como encaminador: Si NO lo est´a los datagramas IP que recibe que no son para ella, se tiran. Si lo est´a, se tratan de encaminar.
c 2003 GSyC
Redes: IP: Internet Protocol
Encaminamiento (cont.)
136
Para encaminar, una m´aquina consultar´a su tabla de encaminamiento. En ella, para enviar un datagrama a una cierta direcci´ on IP destino, buscar´a por este orden: 1. Una entrada con una direcci´ on IP de m´aquina igual a la buscada. 2. Una entrada con una direcci´ on IP de red igual a la parte de red de la buscada. 3. Una entrada por defecto (0.0.0.0).
c 2003 GSyC
Redes: IP: Internet Protocol
Encaminamiento (cont.)
137
Las tablas de encaminamiento tienen el aspecto: % netstat -nr Kernel IP routing table Destination Gateway 163.117.137.0 0.0.0.0 127.0.0.0 0.0.0.0 0.0.0.0 163.117.137.2
Genmask 255.255.255.0 255.0.0.0 0.0.0.0
Flags U U UG
MSS 1500 3584 1500
Window 0 0 0
irtt 0 0 0
Iface eth0 lo eth0
U ruta utilizable G ruta indirecta (pasarela)
c 2003 GSyC
Redes: IP: Internet Protocol
Encaminamiento (cont.)
138
CIDR El mecanismo de las clases A, B y C se ha mostrado muy inflexible y ha provocado: Agotamiento de las direcciones de las clases A y B Crecimiento enorme de las tablas de encaminamiento por “el centro” de Internet Soluci´ on (mientras que se pasa a IPv6): CIDR (Classless Inter Domain Routing ): Encaminamiento sin clases.
c 2003 GSyC
Redes: IP: Internet Protocol
Encaminamiento (cont.)
139
Con CIDR: No se tiene en cuenta la “clase” de las direcciones Nueva forma de indicar direcciones y m´ascaras mediante prefijos: 193.147.71.0/25 indicando que los 25 primeros bits son los significativos en la direcci´ on anterior (entra el primer bit del u ´ltimo byte). Las direcciones pasan a comprarse de esta manera. Las tablas de encaminamiento se construyen y consultan de esta manera.
c 2003 GSyC
Redes: IP: Internet Protocol
ARP (Address Resolution Protocol)
140
ARP (Address Resolution Protocol) El protocolo de resoluci´ on de direcciones ARP proporciona una forma de pasar de una direcci´ on IP a una direcci´ on Ethernet. Cuando el nivel IP va a enviar un datagrama con una cierta direcci´ on IP de destino: Si la direcci´ on de destino es de la misma subred, esa m´aquina es directamente a quien hay que enviar la trama Ethernet que contenga el datagrama. Si no, la tabla de encaminamiento da la direcci´ on IP del siguiente salto, que es el encaminador a quien hay que enviar la trama Ethernet que contenga el datagrama. En cualquiera de los dos casos, s´ olo se conoce la direcci´ on IP de una m´aquina adyacente a la que pasar el datagrama, pero para formar la trama Ethernet se necesita conocer la direcci´ on Ethernet de destino. c 2003 GSyC
Redes: IP: Internet Protocol
ARP (Address Resolution Protocol) (cont.)
141
Para conocer la direcci´ on Ethernet de una m´aquina de la misma subred, dada su direcci´ on IP, una m´aquina hace lo siguiente: 1. Env´ıa una trama Ethernet de broadcast consistente en una solicitud ARP, conteniendo la direcci´ on IP en cuesti´ on. 2. Aquella m´aquina que reciba una solicitud ARP preguntando por su propia direcci´on IP, contesta con una trama Ethernet dirigida a quien hizo la pregunta, conteniendo una respuesta ARP indicando la direcci´ on Ethernet pedida. Cada m´aquina 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 2003 GSyC
Redes: IP: Internet Protocol
ARP (Address Resolution Protocol) (cont.)
142
Formato del paquete de solicitud/respuesta de ARP: ARP puede usarse en combinaci´ on con otros protocolos de nivel de red (no s´ olo IP), por lo que el formato var´ıa. Formato para usar ARP con IP: Solicitud/Respuesta
Eth. Or.
IP Or.
Eth. Dest.
IP Dest.
No hay que olvidar que el paquete de ARP viaja dentro de una trama Ethernet (si es ´ese el nivel de enlace). En una solicitud, los campos ((origen)) llevan los datos de la m´aquina que pregunta, y de los campos ((destino)) s´ olo va relleno “IP Dest.”, ya que “Eth. Dest.” es justo lo que se pregunta Al formar la respuesta, la m´aquina interrogada cambia los dos campos ((origen)) por los ((destino)), rellenando el que falta (que es su direcci´ on Ethernet pedida).
c 2003 GSyC
Redes: IP: Internet Protocol
ARP (Address Resolution Protocol) (cont.)
143
ARP gratuito: Una m´aquina puede enviar una solicitud ARP preguntando sobre su propia direcci´ on IP. Prop´ ositos: • 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 m´aquina destino, cuando esa m´aquina destino es alcanzable a trav´es de dicho encaminador.
c 2003 GSyC
Redes: IP: Internet Protocol
RARP (Reverse Address Resolution Protocol)
144
RARP (Reverse Address Resolution Protocol) En ocasiones es necesario un m´etodo para obtener la direcci´ on IP de una m´aquina a partir de su direcci´ on Ethernet. Ejemplo: Al arrancar una estaci´ on sin disco, no puede tener en ning´ un fichero de configuraci´ on su direcci´ on IP. S´ olo sabe que tiene una tarjeta Ethernet en la que est´a grabada su direcci´ on Ethernet. Mecanismo de RARP: 1. La m´aquina env´ıa un broadcast de una solicitud RARP, indicando su direcci´ on Ethernet. 2. Alguna m´aquina de la subred le enviar´a una respuesta RARP indic´andole cu´al es su direcci´ on IP.
c 2003 GSyC
Redes: IP: Internet Protocol
RARP (Reverse Address Resolution Protocol) (cont.)
145
Lo habitual es tener una m´aquina en la subred que act´ ue como servidor de RARP, manteniendo una tabla de correspondencias de direcciones Ethernet a direcciones IP para todos los nodos de la subred. Si, por razones de protecci´ on frente a fallos, se colocan varios servidores de RARP en la misma subred, el protocolo establece que se tomar´a s´ olo la primera respuesta RARP recibida por la m´aquina que lanzo la solicitud RARP. Alternativas a RARP: BOOTP (similar) y DHCP (m´as complejo).
c 2003 GSyC
Redes: IP: Internet Protocol
ICMP (Internet Control Message Protocol)
146
ICMP (Internet Control Message Protocol) Este protocolo se utiliza para interrogar y/o comunicar condiciones de error entre m´aquinas. Los mensajes ICMP se transmiten encapsulados en datagramas IP. Su formato es: 0
8
16
31
código
tipo
checksum de todo el mensaje ICMP
datos dependiendo de tipo ycódigo
c 2003 GSyC
Redes: IP: Internet Protocol
ICMP (Internet Control Message Protocol) (cont.)
147
Ejemplos de mensajes ICMP:
c 2003 GSyC
tipo
c´ odigo
0
0
respuesta de eco
descripci´ on
3
0
destino inalcanzable: red inalcanzable
3
1
destino inalcanzable: m´ aquina inalcanzable
3
3
destino inalcanzable: puerto inalcanzable
8
0
solicitud de eco
11
0
tiempo excedido: TTL = 0
12
1
cabecera IP mal: falta una opci´ on
13
0
solicitud de marca de tiempo
14
0
respuesta de marca de tiempo
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.0–10.255.255.255 • 172.16.0.0–172.31.255.255 • 192.168.0.0–192.168.255.255
Para paliar la escasez de direcciones, una organizaci´ on puede usar direcciones privadas internamente, y tener una sola direcci´ on IP global (p´ ublica) en la m´aquina que da salida a Internet. Esta m´aquina utiliza NAT para que los datagramas puedan entrar/salir de/a las m´aquinas internas. Muy resumidamente lo que hace es cambiar las direcciones IP privadas de los datagramas por la suya p´ ublica.
c 2003 GSyC
Redes: IP: Internet Protocol
Congesti´ on en Internet
149
Congesti´ on en Internet El nivel de red (IP) ofrece un servicio basado en datagramas. La principal fuente de p´erdidas de paquetes en Internet se debe a la congesti´ on de encaminadores, que act´ uan descartando paquetes. IP no toma ninguna medida para prevenir o disminuir la congesti´ on: ser´a labor de protocolos de niveles superiores, en su caso.
c 2003 GSyC
Redes: IP: Internet Protocol
Congesti´ on en Internet (cont.)
150
UDP: User Datagram Protocol
c 2003 GSyC
Redes: UDP: User Datagram Protocol
Introducci´ on
151
Introducci´ on UDP es un protocolo sencillo que implementa un nivel de transporte orientado a datagramas: NO orientado a conexi´ on. NO fiable. Los datagramas UDP se encapsulan dentro de la parte de datos de un datagrama IP. Una aplicaci´ on que utilice UDP para transmitir datos, producir´a exactamente un datagrama UDP cada vez que la aplicaci´ on quiera enviar datos. Dicho datagrama UDP se encapsular´a en un datagrama IP. Si ese datagrama IP va a exceder el tama˜ no m´aximo de la unidad de datos del nivel de enlace (ej: Trama Ethernet), se fragmentar´a. c 2003 GSyC
Redes: UDP: User Datagram Protocol
Datagramas UDP
152
Datagramas UDP 0
16
31
número de puerto origen
número de puerto destino
longitud total
checksum de todo el datagrama UDP (opcional)
datos (en su caso)
La longitud del datagrama puede ser un n´ umero impar de bytes.
c 2003 GSyC
Redes: UDP: User Datagram Protocol
Datagramas UDP (cont.)
153
Checksum El checksum es sobre cabecera y datos. Es un campo opcional, aunque se recomienda que siempre se utilice. Se calcula sobre el datagrama UDP m´as una pseudo-cabecera que se coloca delante: 16
31
dirección IP de origen dirección IP de destino ceros
protocolo
longitud total (repetido)
número de puerto origen
número de puerto destino
longitud total
checksum de todo el datagrama UDP (opcional)
pseudo-cabecera
0
datos (en su caso)
byte de relleno (ceros)
c 2003 GSyC
Redes: UDP: User Datagram Protocol
Puertos
154
Puertos En una m´aquina multiproceso, el nivel de transporte debe preocuparse de saber a qu´e proceso va destinado un datagrama UDP o segmento TCP que acaba de llegar por la red. Por ello, los procesos que usan la red lo hacen a trav´es de puertos. Cada puerto del Nivel de Transporte proporciona a una aplicaci´ on un punto de acceso a la red de comunicaciones, con lo que ´esta puede dialogar con otra aplicaci´ on situada en un puerto de una m´aquina remota.
c 2003 GSyC
Redes: UDP: User Datagram Protocol
Puertos (cont.)
155
As´ı, el Nivel de Transporte TCP/IP: multiplexa las unidades de datos que env´ıan las aplicaciones a trav´es de los puertos, encapsul´andolas en datagramas UDP o segmentos TCP demultiplexa los datagramas UDP y los segmentos TCP, pasando los datos a las aplicaciones. Los puertos se identifican por un n´ umero 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 2003 GSyC
Redes: UDP: User Datagram Protocol
Puertos (cont.)
156
Los puertos menores que 1024 (puertos privilegiados) est´an reservados y asignados universalmente a aplicaciones de red conocidas. En una m´aquina Unix est´a asignaci´ on est´a en fichero /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 2003 GSyC
Redes: UDP: User Datagram Protocol
Puertos (cont.)
157
As´ı, por ejemplo, un servidor de WWW es un proceso esperando peticiones en el puerto 80 de una m´aquina. Un navegador desde otra m´aquina har´a peticiones al puerto 80 del servidor, y escuchar´a las respuestas en un puerto suyo no privilegiado. En vez de tener un servidor escuchando en cada puerto, un s´ olo proceso (inetd) escucha en varios, y se encarga de arrancar el proceso adecuado seg´ un el puerto concreto por el que lleg´ o la petici´ on. Ambos mecanismos conviven: inetd escucha en varios puertos, y en otros (los m´as frecuentemente utilizados) lo hace directamente el proceso involucrado.
c 2003 GSyC
Redes: UDP: User Datagram Protocol
Servicio dado por UDP
158
Servicio dado por UDP El servicio ofrecido por UDP s´ olo aumenta el ofrecido por IP en: n´ umeros de puerto un checksum optativo Por ello el servicio ofrecido es NO fiable, presentando problemas que las aplicaciones pueden querer resolver. pueden perderse datagramas pueden duplicarse datagramas pueden desordenarse datagramas Pero es un protocolo much´ısimo m´as ligero que TCP, y en una red local (hay CRC y no hay encaminadores) puede compensar. c 2003 GSyC
Redes: UDP: User Datagram Protocol
Servicio dado por UDP (cont.)
159
TCP: Transmission Control Protocol
c 2003 GSyC
Redes: TCP: Transmission Control Protocol
Introducci´ on
160
Introducci´ on TCP (Transmission Control Protocol): Protocolo de Transporte. Ofrece un servicio orientado a conexi´ on y fiable. Unidad de datos: Segmento. Se encapsula dentro de IP. Ofrece servicio de puertos (como UDP).
c 2003 GSyC
Redes: TCP: Transmission Control Protocol
Servicio Orientado a Conexi´ on
161
Servicio Orientado a Conexi´ on La transmisi´ on de datos de nivel de transporte presenta las fases: • establecimiento de la conexi´ on • intercambio de datos • liberaci´ on de la conexi´ on. Peculiaridad: Ambos extremos pueden transmitir y recibir datos simult´aneamente. Los datos de la aplicaci´ on son troceados en segmentos del tama˜ no que TCP considera adecuado (¡diferente a UDP!).
c 2003 GSyC
Redes: TCP: Transmission Control Protocol
Servicio Fiable
162
Servicio Fiable ´ Este es el primer nivel en el que se proporciona fiabilidad. Objeto: Recuperarse de p´erdidas y desorden producido por IP. Idea b´asica: • Los segmentos con datos llevan un n´ umero 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 2003 GSyC
Redes: TCP: Transmission Control Protocol
Segmentos TCP
163
Segmentos TCP 0
16 número de puerto origen
31 número de puerto destino
número de secuencia
longitud cabecera
reseervado (6 bits)
URG ACK PSH RST SYN FIN
número de asentimiento
checksum de todo el segmento TCP
tamaño de la ventana puntero de datos urgentes
opciones (en su caso)
datos (en su caso)
c 2003 GSyC
Redes: TCP: Transmission Control Protocol
Segmentos TCP (cont.)
164
Puertos: TCP los asocia con la aplicaci´ on origen y destino del segmento (como UDP). Longitud cabecera: Tama˜ no de la cabecera en palabras de 32 bits. Lo normal es 5 (20 bytes). Checksum: Sobre pseudo-cabecera, cabecera y datos, calculado como en UDP. Si no se pasa la comprobaci´ on, se descarta el datagrama.
c 2003 GSyC
Redes: TCP: Transmission Control Protocol
N´ umeros de secuencia
165
N´ umeros de secuencia Cada segmento con datos lleva un n´ umero de secuencia El n´ umero de secuencia numera bytes, y NO segmentos: identifica el n´ umero de orden del primer byte de datos que lleva el segmento. Al establecerse una conexi´ on se elige un n´ umero de secuencia inicial para que no se confundan segmentos a´ un en tr´ansito procedentes de conexiones diferentes.
c 2003 GSyC
Redes: TCP: Transmission Control Protocol
N´ umeros de asentimiento
166
N´ umeros de asentimiento El receptor de segmentos de datos tiene que asentir los que le llegan correctamente. NO es necesario enviar un asentimiento para cada segmento con datos que se recibe. Se puede esperar a asentir varios segmentos de una sola vez. El n´ umero de asentimiento indica el n´ umero de secuencia del pr´ oximo byte que se espera recibir, asinti´endose 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 2003 GSyC
Redes: TCP: Transmission Control Protocol
N´ umeros de asentimiento (cont.)
167
Cada segmento tiene un campo para el n´ umero de asentimiento: siempre que se manda un segmento se aprovecha para asentir los datos que est´e enviando el otro extremo: • Si el lado que env´ıa un asentimiento tiene datos que enviar al otro lado, puede aprovechar un segmento para las dos cosas: env´ıa el asentimiento ((arrecucas)) de los datos (piggybacking ). • Si el lado que env´ıa un asentimiento no tienen datos que enviar al otro lado, env´ıa un segmento s´ olo con la cabecera, sin datos. Importante: Cada lado de la conexi´ on utiliza sus n´ umeros de secuencia (partiendo de su n´ umero de secuencia inicial) y asiente los que est´a usando el otro extremo.
c 2003 GSyC
Redes: TCP: Transmission Control Protocol
N´ umeros de asentimiento (cont.)
168
Ventana Deslizante Se usa un protocolo de ventana para coordinar el env´ıo de segmentos y asentimientos. El receptor indica en el campo de tama˜ no de ventana el n´ umero de bytes (a partir del indicado en el n´ umero de asentimiento) que est´a dispuesto a recibir del emisor. El emisor puede transmitir esos bytes aunque no reciba asentimientos, pero una vez transmitidos tendr´a que parar hasta que sepa m´as del receptor. Seg´ un el receptor va recibiendo datos, puede ir asintiendo y deslizando la ventana para aceptar m´as. Como ambos extremos pueden enviar datos, hay dos ventanas diferentes, una para cada sentido.
c 2003 GSyC
Redes: TCP: Transmission Control Protocol
N´ umeros de asentimiento (cont.)
169
Ejemplo: • El emisor recibe un segmento con: ◦ N´ umero de asentimiento: 5 ◦ Tama˜ no de ventana: 8.
• El emisor ha transmitido los bytes hasta el 9 (incluido), sin recibir nada del receptor. • En ese momento la situaci´ on es la siguiente: ventana
1
2
3
enviados y asentidos
4
5
6
7
8
enviados y no asentidos
9
10
11
12 13 14 15 16
pendientes para enviar
sin aceptar de la aplicación
El tama˜ no de la ventana es variable din´amicamente (pero deber´ıan mantenerse las ((antiguas promesas))). El tama˜ no de la ventana permite tambi´en hacer control de flujo extremo a extremo. c 2003 GSyC
Redes: TCP: Transmission Control Protocol
Establecimiento de conexi´ on
170
Establecimiento de conexi´ on A
B
segmento con bit SYN núm.secuencia = x segmento con bit SYN núm.secuencia = y núm.asentimiento = x+1 segmento núm.asentimiento = y+1
Es necesario ponerse de acuerdo en el n´ umero de secuencia inicial de los dos sentidos de transmisi´ on (((triple apret´ on de manos)), three-way handshake).
c 2003 GSyC
Redes: TCP: Transmission Control Protocol
Liberaci´ on de conexi´ on
171
Liberaci´ on de conexi´ on A
B
segmento con bit FIN
segmento con asentimiento del FIN segmento con bit FIN
segmento con asentimiento del FIN
Como la conexi´ on permite la transmisi´ on bidireccional de datos (full duplex), es necesario “cerrar” cada sentido de la transmisi´ on (por separado). c 2003 GSyC
Redes: TCP: Transmission Control Protocol
Liberaci´ on de conexi´ on (cont.)
172
Plazos para asentimiento Cuando se env´ıa un segmento, se arranca un temporizador para esperar su asentimiento. Problema: ¿Qu´e plazo le ponemos? Se utiliza un algoritmo adaptativo para optimizar lo m´as posible la transmisi´ on de datos. Para cada segmento se calcula el tiempo de ronda (round-trip time, RTT): tiempo entre que se env´ıa el segmento y se recibe el asentimiento. Se va tomando su media en el tiempo. Normalmente se elige un plazo de dos veces el tiempo de ronda medio, teniendo cuidado con la varianza.
c 2003 GSyC
Redes: TCP: Transmission Control Protocol
Liberaci´ on de conexi´ on (cont.)
173
Entrega de datos a la aplicaci´ on Cuando llega un segmento con la bandera PSH activada se est´a indicando al receptor que pase esos datos a la aplicaci´ on. No s´ olo se pasa ese segmento, sino tambi´en todos los datos asentidos que el receptor tuviera pendientes de entregar a la aplicaci´ on.
c 2003 GSyC
Redes: TCP: Transmission Control Protocol
175 Ejemplo de conexi´ on
$# :$9 J F8 & #;T #;!$#; 8 = $< B U!3< : $# @ ! B /C$< "&> $# ; $!;A 3# G& ; $!A : K9G& T M@ 6S4
C $# G&F 3!EA @
D @ ; $ $# C @ 3# "B = < $!A:$#8 654
3RQ "& >3# FJ F % $!;A 8@ M@8 P&; OM ;@8 N 8B 3 J B $!;A @M $#; $ $#; L % $!A #! K !B
' $ :$#J F $# :$9 8 I $ ; H?> $# = < # 4
Ejemplo de conexi´ on
HR N8 ;>W 3< :K9V&< /B3< B Q "&%>$#; 8 F % $!;A 8@ M@8 P&; :O$#8 % B
@ 3# !"; "?>%$# = < 8
$ : $#8 ; $#: $9 8 7 654
"R8 P& ;O \ #3 ;&9 P& 3#8 ; W3< B 8 N 6]4 +\ 5 * 2X [5 2 Z* XY
* /2 /
"& $#% "!
.
.
-,+* )
$( &" $#% !"
1
/
* 2
.
"& 3# "!
"&%$# !"
'
"&%$# !"
"&%$# !"
"&%$# !"
/
+* ) $(
"&%$# !"
0
Redes: TCP: Transmission Control Protocol
c 2003 GSyC
Redes: TCP: Transmission Control Protocol c 2003 GSyC
174 Liberaci´ on de conexi´ on (cont.)
Datos urgentes
Pueden enviarse datos denominados urgentes (o ((fuera de banda))), que el receptor debe pasar inmediatamente a la aplicaci´ on, lo antes posible. Ejemplo: Env´Ĺo de un CTRL-C.
Se indican mediante el empleo de la bandera URG: Cuando est´a levantada, el campo puntero a datos urgentes apunta al u ´ltimo byte de datos urgentes del segmento.
No est´a especificado d´ onde empiezan los datos urgentes. Se deja a la aplicaci´ on.
Ejemplo de conexi´ on (cont.)
176
DNS: Domain Name System
c 2003 GSyC
Redes: DNS: Domain Name System
¿Por qu´ e necesitamos el DNS?
177
¿Por qu´ e necesitamos el DNS? Los humanos preferimos nombres a direcciones IP (ej: cacharro.escet.urjc.es frente a 212.128.1.44) Los n´ umeros IP est´an ligados a la estructura de la red, pero eso no tiene por qu´e reflejarse en el nombrado de m´aquinas (ej: www.debian.org, www.de.debian.org. Los n´ umeros IP est´an ligados a m´aquinas concretas, puede ser conveniente un nivel de abstracci´ on no ligado a m´aquinas (ej: www.urjc.es puede cambiar de m´aquina, y de IP, pero no de nombre). Es necesario establecer una correspondencia entre nombres y direcciones IP.
c 2003 GSyC
Redes: DNS: Domain Name System
Un poco de historia
178
Un poco de historia Al principio (a˜ nos 70), un u ´nico fichero (HOSTS.TXT) con informaci´ on de todas las m´aquinas de ARPANET. Se obten´ıa peri´ odicamente por FTP. Gesti´ on completamente manual. Con el crecimiento de ARPANET se hizo inmanejable. 1984, Paul Mockapetris: primeras RFC que describen el Domain Name System. Especificaciones actuales: RFC 1034 y 1035.
c 2003 GSyC
Redes: DNS: Domain Name System
Estructura de nombrado
179
Estructura de nombrado Se descentraliza el control consigui´endose una estructura jer´arquica y f´acilmente ampliable. Jerarqu´ıa de dominios: Dominio ra´ız (root o “.”). Gestionado por ICANN (Internet Corporation for Assigned Names and Numbers). Dominios de nivel m´aximo: • Tradicionales: com, edu, gov, mil, net, org, int, c´ odigos ISO de paises (uk, mx, ar, de, es. . . ) • En negociaci´ on por ICANN en noviembre de 2000: biz, info, name, pro, aero, coop, museum Dominios secundarios, terciarios, . . . c 2003 GSyC
Redes: DNS: Domain Name System
Estructura de nombrado (cont.)
180
´ Arbol de dominios
com edu gov mil org net es uk ... sun mit eng lcs theory
acm ieee
urjc
escet rct gsyc
c 2003 GSyC
Redes: DNS: Domain Name System
Estructura de nombrado (cont.)
181
Dominios directo e inverso Dominio directo: proporciona para cada nombre una direcci´ on IP. Dominio inverso: proporciona para cada direcci´ on IP un nombre. • El dominio inverso tambi´en se conoce como dominio in-addr.arpa. • Los elementos del dominio inverso son las direcciones de red construidas invirtiendo los n´ umeros que la componen, y terminando en in-addr.arpa • Ejemplo: La red 138.117.0.0 es el dominio inverso 117.138.inaddr.arpa
c 2003 GSyC
Redes: DNS: Domain Name System
Estructura de gesti´ on
182
Estructura de gesti´ on Cada vez que se delega un subdominio se delega tambi´en su gesti´ on (incluyendo su posible subdivisi´ on sucesiva). Si el gestor del dominio es delega un subdominio urjc, el responsable de urjc manejar´a la correspondencia de nombres y direcciones de todas las m´aquinas de su dominio. Si el responsable de urjc lo cree conveniente, puede delegar un subdominio escet, sin que por ello tenga que informar al gestor de es. Hay dominios (ejemplo: com, org) gestionados por varios “registrars” en r´egimen de competencia.
c 2003 GSyC
Redes: DNS: Domain Name System
Consulta de una direcci´ on para un nombre
183
Consulta de una direcci´ on para un nombre Cada aplicaci´ on va enlazada con una biblioteca de consulta al DNS (resolver), con llamadas como gethostbyname(). La consulta normalmente sigue los pasos siguientes (en una m´aquina Unix): Consulta en un fichero (/etc/hosts). Consulta en un servidor de DNS (su direcci´ on IP est´a en /etc/resolv.conf).
c 2003 GSyC
Redes: DNS: Domain Name System
Esquema de funcionamiento del DNS
184
Esquema de funcionamiento del DNS Se trata de mantener la informaci´ on como una base de datos distribuida. Las consultas al DNS se realizan en modo cliente-servidor: Cuando una aplicaci´ on (cliente) quiere “resolver” un nombre (que no aparece en el fichero local), pregunta a un servidor de DNS El servidor investiga por su cuenta y devuelve la direcci´ on IP pedida.
c 2003 GSyC
Redes: DNS: Domain Name System
Esquema de funcionamiento del DNS (cont.)
185
Consulta a un servidor
telnet gsyc.escet.urjc.es
Servidor DNS
gsyc.escet.urjc.es?
telnet
resolver
UDP(gsyc.escet.urjc.es?)
UDP(212.128.1.45)
212.128.1.45
c 2003 GSyC
Redes: DNS: Domain Name System
Esquema de funcionamiento del DNS (cont.)
186
Funcionamiento b´ asico (sin caches) Cuando un servidor recibe una consulta para resolver un nombre (ejemplo: nic.funet.fi): 1. Comprueba si el nombre pertenece a alguno de los dominios que sirve (si es que sirve alguno). Si lo encuentra busca en su “mapa” y devuelve la direcci´ on IP correspondiente. 2. En caso contrario pregunta a un servidor del dominio ra´ız, que le contestar´a con la direcci´ on IP de un servidor del dominio “fi”. 3. Luego regunta a ese, obteniendo la direcci´ on IP de un servidor de “funet.fi”. 4. Ahora se pregunta a este u ´ltimo, que ya tiene en sus mapas la direcci´ on IP pedida. (Cada servidor puede servir uno o varios dominios, o ninguno)
c 2003 GSyC
Redes: DNS: Domain Name System
Esquema de funcionamiento del DNS (cont.)
187
gsyc.escet.urjc.es.? pregunta a es gsyc.escet.urjc.es.?
es urjc escet rct gsyc
pregunta a urjc gsyc.escet.urjc.es.? pregunta a escet gsyc.escet.urjc.es.? 212.128.1.45
212.128.1.45 gsyc.escet.urjc.es? telnet
c 2003 GSyC
resolver
Redes: DNS: Domain Name System
Esquema de funcionamiento del DNS (cont.)
188
Consultas a un servidor Por lo tanto, los servidores de DNS responden dos tipos de consultas: Recursivas: Las que le hace un cliente, que obligan al servidor a hacer las consultas necesarias para encontrar la direcci´ on pedida. Iterativas: Las que le hace otro servidor, a las que responden con la direcci´ on IP del servidor del siguiente dominio en la jerarqu´ıa. Siempre que pueden, los servidores usan datos de su cache.
c 2003 GSyC
Redes: DNS: Domain Name System
Tipos de servidores
189
Tipos de servidores Seg´ un c´ omo son utilizados: Reenviador (“forwarder”). Los servidores lo usan antes de consultar al resto del DNS. Utilizados por servidores para centralizar las consultas. Evitan, por ejemplo, el acceso directo a servidores ra´ız. Esclavo. Utilizados por servidores en lugar del resto del DNS (por ejemplo, si hay cortafuegos).
c 2003 GSyC
Redes: DNS: Domain Name System
Tipos de servidores (cont.)
190
Seg´ un c´ omo reciben los datos: Primario. Tiene la informaci´ on actualizada. Secundario. Copia del primario. Cache. Guardan datos sobre los que han consultado. Seg´ un 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 2003 GSyC
Redes: DNS: Domain Name System
Mapas de dominio
191
Mapas de dominio Cada mapa de dominio incluye un conjunto de registros de recurso (RR): Son la unidad de consulta. Cada registro de recurso tiene 5 campos: • Nombre de dominio. • Tiempo de vida. Tiempo de validez del registro en las cach´es. • Clase. En Internet siempre IN. • Tipo. Define el tipo del registro. • Valor. Contenido que depende del campo tipo.
c 2003 GSyC
Redes: DNS: Domain Name System
Mapas de dominio (cont.)
192
Tipos de registro SOA: Da informaci´ on de gesti´ on una zona del dominio (servidor de nombres primario, administrador, etc.). NS: Identifica al servidor de nombres. A: Define una direcci´ on IP de la estaci´ on (puede tener varias). MX: Define el servidor de correo del dominio. CNAME: Permite asociar un alias a un nombre de dominio. HINFO: Da informaci´ on del tipo de m´aquina y sistema operativo. TXT: Da informaci´ on del dominio.
c 2003 GSyC
Redes: DNS: Domain Name System
Mapas de dominio (cont.)
urjc.es.
172800
IN
172800 172800 www 172800 venus 172800 escet 172800 gsyc.escet 172800
IN IN IN IN IN IN
c 2003 GSyC
193
Ejemplo SOA venus.urjc.es. root.venus.urjc.es. ( 2000030702 ; N´ umero de serie 86400 ; Refresco 7200 ; Reintento 2592000 ; Expiraci´ on 172800 ) ; Ttl NS venus.urjc.es. MX venus.urjc.es. CNAME venus.urjc.es. A 193.147.184.8 NS gsyc.escet.urjc.es A 212.128.1.45
Redes: DNS: Domain Name System
Formato de menaje DNS
194
Formato de menaje DNS Paquetes iguales para consultas y respuestas. Cabecera fija de 12 bytes: Identificaci´ on (2 bytes). Correspondencia consultas-respuestas. Banderas (2 bytes). Consulta/respuesta, truncamiento, tipo de petici´ on (directa, inversa, estado), respuesta con autoridad, petici´ on recursiva, error. N´ umero de consultas (2 bytes). N´ umero de RRs de respuesta (2 bytes). N´ umero de RRs de autoridad (2 bytes). N´ umero de otros RRs (2 bytes).
c 2003 GSyC
Redes: DNS: Domain Name System
Formato de menaje DNS (cont.)
195
Datos, tama˜ no variable: Consultas. Respuestas. Autoridad. M´as informaci´ on.
c 2003 GSyC
Redes: DNS: Domain Name System
Formato de menaje DNS (cont.)
196
Consulta Cada consulta de un mensaje DNS (normalmente s´ olo una) tiene: Nombre de la petici´ on: secuencia de etiquetas (tama˜ no, 1 byte, cadena, hasta 63 bytes), terminada por la etiqueta “root” (byte de tama˜ no a 0). Tipo de consulta (2 bytes). A, NS, PTR, etc. Clase de consulta (2 bytes). Normalmente IN.
c 2003 GSyC
Redes: DNS: Domain Name System
Formato de menaje DNS (cont.)
197
Registro de recurso Cada RR de un mensaje DNS tiene: Nombre de dominio. Mismo formato que nombre de petici´ on. Tipo (2 bytes). Clase (2 bytes). Tiempo de vida (4 bytes). Tama˜ no de los datos del recurso (2 bytes). Datos del recurso (valor).
c 2003 GSyC
Redes: DNS: Domain Name System
¿UDP o TCP?
198
¿UDP o TCP? Se usa el puerto 53 de TCP y UDP para el servidor de DNS. Normalmente el resolver hace consultas usando UDP. Normalmente el servidor responde usando el protocolo de la consulta. Si la respuesta UDP es de m´as de 512 bytes (truncada), el resolver al repite usando TCP. Las transferencias de zona de primario a secundario usan TCP.
c 2003 GSyC
Redes: DNS: Domain Name System
Referencias
199
Referencias “DNS: The Domain Name System”, cap´ıtulo 14 de “TCP/IP’ Illustrated, Volume 1”, por W. Richard Stevens, Addison Wesley, 1994. FAQ de comp.protocols.tcp-ip.domains: http://www.intac.com/~cdp/cptd-faq/ ICANN: http://www.icann.net/
c 2003 GSyC
Redes: DNS: Domain Name System
Referencias (cont.)
200
HTTP
c 2003 GSyC
Redes: HTTP
¿Qu´ e es HTTP?
201
¿Qu´ e es HTTP? Hypertext Transfer Protocol. Es el protocolo m´as habitual para servir p´aginas web. Protocolo cliente-servidor. Normalmente funciona sobre TCP, con el servidor (normalmente) en el puerto 80. No olvidar que HTTP puede servir tanto contenido est´atico (ficheros) como din´amico (el resultado de ejecutar programas en el servidor).
c 2003 GSyC
Redes: HTTP
Interacci´ on cliente-servidor en HTTP
202
Interacci´ on cliente-servidor en HTTP El cliente abre una conexi´ on TCP con el servidor. El cliente env´ıa un mensaje de petici´ on. El servidor responde con un mensaje de respuesta. El servidor cierra la conexi´ on TCP. HTTP no mantiene estado (no hay informaci´ on sobre las conexiones entre una petici´ on y otra).
c 2003 GSyC
Redes: HTTP
Interacci´ on cliente-servidor en HTTP (cont.)
203
Formato de los mensajes Mensajes “legibles” (compuestos por l´ıneas de texto “casi en ingl´es”): L´ınea inicial (diferente para petici´ on y respuesta), terminada en CRLF. Cero o m´as l´ıneas de cabecera, cada una terminada en CRLF: Cabecera-X: Valor-X CRLF L´ınea en blanco (CRLF). Cuerpo del mensaje (opcional). Adem´as de CRLF, deber´ıan tratarse adecuadamente l´ıneas terminadas en LF.
c 2003 GSyC
Redes: HTTP
Interacci´ on cliente-servidor en HTTP (cont.)
204
L´ınea inicial (peticiones) Especifica el recurso que se solicita, y qu´e se quiere de ´el: Nombre de m´etodo (GET, POST, HEAD). Camino de acceso (path) Versi´ on de HTTP (siempre HTTP/x.x). Ejemplo: GET /directorio/otro/fichero.html HTTP/1.0
c 2003 GSyC
Redes: HTTP
Interacci´ on cliente-servidor en HTTP (cont.)
205
L´ınea inicial (respuestas) Proporciona informaci´ on de estado: Versi´ on de HTTP (siempre HTTP/x.x). C´ odigo num´erico de estado. C´ odigo de estado “en ingl´es”. C´ odigos de estado: 1xx: Mensaje informativo. 2xx: Resultado exitoso (200 OK). 3xx: Redirecci´on 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 2003 GSyC
Redes: HTTP
Interacci´ on cliente-servidor en HTTP (cont.)
206
L´ıneas de cabecera Mismo formato que las cabeceras de correo y News (RFC 822, secci´ on 3). HTTP/1.0: 16 cabeceras, ninguna obligatoria. HTTP/1.1: 46 cabeceras, “Host:” obligatoria en las peticiones (usada por los “virtual hosts”). Se recomienda incluir en las peticiones al menos: • “From:” (direcci´ on de correo). • “User-Agent:” (ej: Mozilla/4.7). Se recomienda incluir en las respuestas al menos: • “Server:” (ej: Apache/1.3). • “Last-Modified:” (fecha GMT, usado por las caches).
c 2003 GSyC
Redes: HTTP
Interacci´ on cliente-servidor en HTTP (cont.)
207
Cuerpo del mensaje En las respuestas contiene el recurso pedido o texto explicando un error. En las peticiones contiene datos de usuario o ficheros para subir. Si hay cuerpo, normalmente hay algunas cabeceras relativas a ´el: • “Content-Type”: tipo MIME de los datos (ej: text/html, image/png). • “Content-Length”: n´ umero de bytes en el cuerpo.
c 2003 GSyC
Redes: HTTP
Interacci´ on cliente-servidor en HTTP (cont.)
208
Ejemplo (GET, petici´ on) GET /~jgb/test.html HTTP/1.0\r\n Connection: Keep-Alive\r\n User-Agent: Mozilla/4.07 [en] (X11; I; Linux 2.2.15 i586; Nav) ... Host: gsyc.escet.urjc.es\r\n Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, i ... Accept-Encoding: gzip\r\n Accept-Language: en\r\n Accept-Charset: iso-8859-1,*,utf-8\r\n \r\n
c 2003 GSyC
Redes: HTTP
Interacci´ on cliente-servidor en HTTP (cont.)
209
Ejemplo (GET, respuesta) HTTP/1.1 200 OK\r\n Date: Tue, 23 Jan 2001 12:44:27 GMT\r\n Server: Apache/1.3.9 (Unix) Debian/GNU\r\n Last-Modified: Tue, 23 Jan 2001 12:39:45 GMT\r\n ETag: "19e89f-22-3a6d7b91"\r\n Accept-Ranges: bytes\r\n Content-Length: 34\r\n Keep-Alive: timeout=15, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html\r\n \r\n <html>\nEsto es una prueba\n</html>
c 2003 GSyC
>.
Redes: HTTP
Interacci´ on cliente-servidor en HTTP (cont.)
210
M´ etodos HEAD y POST HEAD: Igual que un GET, pero s´ olo pide las cabeceras. Se pueden consultar las caracter´ısticas sin bajarse el fichero. POST: Hay datos en el cuerpo (que se “suben” al servidor). El URI “pedido” es normalmente el programa que trata los datos enviados. Tambi´en se pueden enviar datos con un GET (codific´andolos en el URL pedido).
c 2003 GSyC
Redes: HTTP
Interacci´ on cliente-servidor en HTTP (cont.)
211
Ejemplo (POST, petici´ on) POST /comments.pl HTTP/1.0\r\n From: jgb@gsyc.escet.urjc.es\r\n User-Agent: MegaNavigator/0.0\r\n Content-Type: application/x-www-form-urlencoded\r\n Content-Length: 18\r\n \r\n section=all&rank=10
c 2003 GSyC
Redes: HTTP
Representante (proxy) HTTP
212
Representante (proxy) HTTP Intermediario entre un cliente y un servidor. Es por lo tanto a la vez cliente y servidor. Usos: cortafuegos, caches, etc. Las peticiones a una proxy incluyen la URL completa en la primera l´ınea del mensaje de petici´ on. Pueden encadenarse varias proxies. Ejemplo de petici´on a una proxy: GET http://gsyc.escet.urjc.es/index.html HTTP/1.0
c 2003 GSyC
Redes: HTTP
HTTP 1.1
213
HTTP 1.1 Es una evoluci´ on de HTTP 1.0. Facilidades espec´ıficas para m´aquinas virtuales (virtual hosts). Codificaci´ on por racimos, para respuestas din´amicas (env´ıo antes de saber el tama˜ no total). Uso de conexiones persistentes que permiten varias transacciones sucesivas (se evitan establecimientos de conexi´ on). Facilidades espec´ıficas para caches (“If-Modified-Since”, “If-UnmodifiedSince”).
c 2003 GSyC
Redes: HTTP
HTTP 1.1 (cont.)
214
Virtual hosts Para tener virtual hosts es preciso indicar en cada petici´ on a cu´al de ellos se dirige. Por eso es obligatorio el uso de la cabecera “Host”. Si un servidor recibe una petici´ on sin “Host”, debe devolver un mensaje de error (400 Bad Request). Los servidores tambi´en han de aceptar primeras l´ıneas de petici´ on con URLs completas, en lugar de caminos (ser´a lo habitual en versiones futuras). Ejemplo de petici´on “m´ınima”: GET /dir/index.html HTTP/1.1\r\n Host: gsyc.escet.urjc.es\r\n \r\n c 2003 GSyC
Redes: HTTP
HTTP 1.1 (cont.)
215
Codificaci´ on por racimos Cabecera “Transfer-Encoding: chunked”. Usada por un servidor que quiere enviar trozos que ya tiene listos antes de tener todo. El cuerpo de cada mensaje “por racimos” contiene una serie de racimos, cada uno: • Comienza por el tama˜ no de los datos del racimo, en hexadecimal, seguidos por “;”, quiz´as algo m´as, y CRLF. • Los datos, terminados por CRLF. • Terminado por una l´ınea con “0CRLF”. • Seguido de “footers” (como cabeceras). • Terminado en una l´ınea en blanco (CRLF).
c 2003 GSyC
Redes: HTTP
HTTP 1.1 (cont.)
216
Codificaci´ on 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 2003 GSyC
Redes: HTTP
HTTP 1.1 (cont.)
217
Conexiones persistentes Permiten que varias peticiones y respuestas sean transferidas usando la misma conexi´ on TCP. Se usan por omisi´ on en HTTP 1.1. Si se env´ıa la cabecera “Connection: close”, el servidor cerrar´a la conexi´ on despu´es de cada respuesta. Un servidor puede cerrar la conexi´ on antes de enviar todas las respuestas. El servidor cerrar´a las conexiones inactivas pasado un plazo (ej: 10 segundos).
c 2003 GSyC
Redes: HTTP
HTTP 1.1 (cont.)
218
Caches Los servidores deben responder siempre con la cabecera “Date” (con la fecha actual, en GMT). Los servidores han de entender “If-Modified-Since” y “If-UnmodifiedSince” (los clientes pueden usarlos). Respuesta a “If-Modified-Since”: “304 Not Modified”. Respuesta a “If-Unmodified-Since”: “412 Precondition Failed”.
c 2003 GSyC
Redes: HTTP
HTTPS
219
HTTPS HTTP sobre SSL (secure socket layer). La conexi´ on TCP est´a 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 (certificados, etc.) para ofrecer un nivel de seguridad razonable. Las URLs son “https://”.
c 2003 GSyC
Redes: HTTP
Galletitas (cookies)
220
Galletitas (cookies) Sirven para asociar estado a un conjunto de transacciones (peticiones/respuesta). Normalmente son datos asociados a un usuario (carro de la compra, cuenta de usuario, etc.) Las galletitas son generadas por los servidores, y presentadas por los clientes en ciertas ocasiones. Especificaci´ on original de Netscape, luego propuesta como RFC 2109.
c 2003 GSyC
Redes: HTTP
Galletitas (cookies) (cont.)
221
Cabecera “Set-Cookie” Cabecera puesta por un servidor cuando quiere enviar una galletita. Formato: • “Set-Cookie:” • Nombre de la galletita y valor (“nombre=valor”). • Fecha de caducidad (“expires=fecha”). • Dominio, camino (“domain=dominio path=camino”). Para decidir m´as tarde si se env´ıa una galletita o no. • “secure”: si est´a marcada as´ı, s´ olo se transmitir´a sobre canales seguros (HTTPS). Ejemplo: Set-Cookie: unnombre=unvalor; expires=Mon, 30-Jan-2001 12:35:23 GMT; path=/dir; domain=mi.dominio.com; secure c 2003 GSyC
Redes: HTTP
Galletitas (cookies) (cont.)
222
Cabecera “Cookie” Cuando un cliente pide una URL, buscar´a en su lista de galletitas si hay alguna que tenga que enviar (mirando su “domain” por la cola, y su “path” por su cabeza). Enviar´a todas las galletitas en una u ´nica cabecera (“Cookie”). Dentro de esta cabecera, las galletitas se ordenar´an de m´as a menos espec´ıficas (seg´ un su “path”). No se consideran las galletitas con caducidad en el pasado (de hecho, se eliminan). Ejemplo: Cookie: unnombre=unvalor; otronombre=otrovalor
c 2003 GSyC
Redes: HTTP
Referencias
223
Referencias “Definition of URL/URI syntax, RFC 2396”. http://www.cis.ohio-state.edu/htbin/rfc/rfc2396.html “HTTP Made Really Easy. A Practical Guide to Writing Clients and Servers”, por James Marshall. http://www.jmarshall.com/easy/http/ “HTTP 1.0, RFC 1945”. http://www.cis.ohio-state.edu/htbin/rfc/rfc1945.html “HTTP 1.1, RFC 2068”. http://www.cis.ohio-state.edu/htbin/rfc/rfc2068.html
c 2003 GSyC
Redes: HTTP
Referencias
224
Referencias “An Overview of SHTTP”, por Adam Shostack. hturlhttp://www.homeport.org/ adam/shttp.html “Persistent Client State. HTTP Cookies”, Netscape. http://www.netscape.com/newsref/std/cookie_spec.html “HTTP State Management Mechanism, RFC 2109”. http://www.cis.ohio-state.edu/htbin/rfc/rfc2109.html
c 2003 GSyC
Redes: HTTP
Referencias (cont.)
225
Correo electr´ onico
c 2003 GSyC
Redes: Correo electr´ onico
Algo de terminolog´ıa
226
Algo de terminolog´ıa Agente de usuario (UA, user agent): programa que se usa como interfaz de usuario para el correo electr´ onico (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 final. Protocolo de acceso al correo electr´ onico: lo usa un UA para acceder a un MTA, y recoger el correo para un usuario. Ejemplo: POP, IMAP. Protocolo de env´ıo de correo electr´ onico: lo usa un MTA para enviar correo a otro MTA (tambi´en puede usarlo un UA para enviarlo a un MTA). Ejemplo: SMTP.
c 2003 GSyC
Redes: Correo electr´ onico
Generalidades
227
Generalidades Composici´ on de un mensaje Todo mensaje consta de 2 partes: Sobre: Cabeceras estandarizadas para identificar el/los destinatarios/remitentes del mensaje... Permiten que el mensaje llegue Contenido: El mensaje propiamente dicho. • La RFC822 s´olo admite texto NVT–ASCII (Network Virtual Terminal – ASCII ). • Para otros tipos: codificadores de binarios (uuencode) y sobre todo extensiones al mensaje (MIME, RFC1341 )
c 2003 GSyC
Redes: Correo electr´ onico
Generalidades (cont.)
228
Cabeceras Le dicen al MTA qu´e debe hacer con el correo. From: Direcci´ on de origen To: Direcci´ on/direcciones de destino CC: Con copia a. . . BCC: Con copia ciega a. . . Subject: Tema sobre el que versa la carta Date: Fecha en que fue enviada Received: Por d´ onde ha pasado la carta Message-id: Identificador del mensaje
c 2003 GSyC
Redes: Correo electr´ onico
Generalidades (cont.)
229
Direcciones de correo Dan la informaci´ on necesaria para enviar/recibir un mensaje. Indican a–d´ onde–va/de–d´ onde–viene, pero no por d´ onde ha de pasar. Formato Internet: id_usuario@m´ aquina.dominio O bien, gracias a las cl´ausulas MX de DNS: id_usuario@dominio
c 2003 GSyC
Redes: Correo electr´ onico
MIME
230
MIME Las RFC 2045 – 2049 extienden el contenido de los mensajes de correo para que puedan adjuntarse datos gen´ericos (attachments). Multimedia Internet Mail Extensions define 5 cabeceras • MIME-version: • Content-Description: • Content-Id: • Content-Transfer-Encoding • Content-Type: Hay 8 tipos: Text, Image, Audio, Video, Application, Message, Model y Multipart. varios subtipos: Text: html, plain o richtext; Image: gif, jpeg; . . .
c 2003 GSyC
Redes: Correo electr´ onico
MIME (cont.)
231
El Content-Type se utiliza para saber c´ omo tratar en el destino los datos (con qu´e aplicaci´ on). El Content-Transfer-Encoding se utiliza para saber c´ omo codificar para transmitir los datos por la red y descodificar los datos transmitidos. base 64 (ASCII armor) para binarios: grupos de 24 bits se rompen en 4x6 bits. Cada car´acter de 6 bits se cuantifica en binario y se manda en ASCII ( el 0 va como una A, el 1 como B. . . ). Se rellena con = al final. quoted-printable-encoding para textos con acentos: codifica los caracteres por encima del 127 con un caracter “=” y dos d´ıgitos hexadecimales. 7bit, 8bit, binary. . .
c 2003 GSyC
Redes: Correo electr´ onico
El protocolo SMTP
232
El protocolo SMTP
usuario
agente de usuario (UA)
cola de correo saliente
agente de transferencia de mensajes (MTA)
remitente
conexión TCP
Puerto 25/TCP
usuario
agente de usuario (UA)
buzones de los usuarios
agente de transferencia de mensajes (MTA)
destinatario
c 2003 GSyC
Redes: Correo electr´ onico
El protocolo SMTP (cont.)
233
“Simple Mail Transfer Protocol” Define los comandos que se emplean para comunicarse con/desde un MTA. ¿C´ omo? Conexi´ on al puerto tcp/25 y env´ıo de ´ ordenes. Los mensajes estaban limitados a 64K y hab´ıa problemas de timeouts, por lo que la RFC 1425 define ESMTP (EHLO...)
c 2003 GSyC
Redes: Correo electr´ onico
El protocolo SMTP (cont.)
234
(Telnet pantuflo.escet.urjc.es 25) Connecting to pantuflo.escet.urjc.es (ether)... 220 pantuflo.escet.urjc.es Sendmail SMI-8.6/SMI-SVR4 ready at Mon, 7 Sept 1998 >>> HELO a202e12.escet.urjc.es 250 pantuflo.escet.urjc.es Hello a01-unix [192.2.3.14], pleased to meet you >>> MAIL From:<alumno@a202e12.escet.urjc.es> 250 <alumno@a202e12.escet.urjc.es>... Sender ok >>> RCPT To:<jcenteno@pantuflo.escet.urjc.es> 250 <jcenteno@pantuflo.escet.urjc.es>... Recipient ok (Pueden ir varias RCPT seguidas) >>> DATA 354 Enter mail, end with "." on a line by itself Subject: Ejemplo Texto del mail . 250 MAA29247 Message accepted for delivery >>> QUIT 221 pantuflo.escet.urjc.es closing connection c 2003 GSyC
Redes: Correo electr´ onico
Recepci´ on de correo de un MTA
235
Recepci´ on de correo de un MTA Los usuarios no tienen que estar permanentemente conectados a la red ni compartir el directorio donde el MTA almacena los mensajes. Puede usarse un modelo cliente/servidor, siguiendo un protocolo que permita recuperar los mensajes del buz´ on (y borrarlos o dejarlos) para que el UA pueda presentarlos en pantalla. Hay varios protocolos para esto: • POP2, POP3: Post Office Protocol. (RFC-1725,1734,1082) • IMAP: Internet Message Access Protocol (RFC-1203; 1730 al 1733)
c 2003 GSyC
Redes: Correo electr´ onico
Referencias
236
Referencias “SMTP: Simple Mail Transfer Protocol”, cap´ıtulo 28 de “TCP/IP’ Illustrated, Volume 1”, por W. Richard Stevens, Addison Wesley, 1994. “SMTP. Simple Mail Transfer Protocol. A tutorial”, por Ben-Dayan Maor, Ben-Shimon Sonny, Efron Niv, Kuperman Idan y Meller Tal. http://raddist.rad.com/networks/1998/smtp/smtp.htm “POP vs. IMAP”, por Barnard College Online Tutorials. http://www.barnard.edu/at/training/eudora/imap.html
c 2003 GSyC
Redes: Correo electr´ onico
Referencias (cont.)
237
Resumen de RFCs principales RFC821: protocolo SMTP RFC822: formato de mensajes e interpretaci´ on de cabeceras RFC974: gesti´ on de cl´ausulas MX del DNS RFC1425: protocolo ESMTP (Extended SMTP) RFC1341: MIME: “Multipurpose Internet Mail Extensions”
c 2003 GSyC
Redes: Correo electr´ onico