Redes de Computadores 1 Introducción a las Redes Prof. Javier Cañas R. Universidad Técnica Federico Santa María Departamento de Informática Temario 1 Introducción 2 Requerimientos de una Red 3 Conectividad 4 Canales Abstractos 5 Arquitectura de Redes 6 Arquitectura OSI 7 Arquitectura Internet Prof. Javier Cañas R. 2 1 Introducción • ¿Qué es una Red de Computadores ? – Conjunto de Computadores autónomos conectados por enlaces de comunicación – Una R. de C. Se caracteriza por su generalidad. No está optimizada para ninguna aplicación en particular. • Crecimiento – 1988 100.000 computadores – 1992 1000.000 computadores (ver curva de crecimiento) • Aplicaciones Relevantes – FTP – WWW – NV: Network video (video conferencia sobre Internet) Prof. Javier Cañas R. 3 Prof. Javier Cañas R. 08 01 01 01 01 01 01 07 10 04 10 04 10 01 10 01 07 11 10 08 08 01 01 01 01 01 /0 /0 /9 /9 /9 /9 /9 /9 /9 /9 /9 /9 /9 /9 /8 /8 /8 /8 /8 /8 /8 /7 /7 /7 /7 Time Per iod 4 2 1 9 8 7 6 5 4 3 3 2 2 1 1 9 9 8 6 5 3 1 9 6 4 3 1 69 /7 9/ No. of Hosts Growth of Internet Hosts * Sept. 1969 - Sept. 2002 25 0,000,000 20 0,000,000 15 0,000,000 10 0,000,000 50,000,0 00 0 2 Requerimientos de una Red ¿Qué esperamos de una Red? Hay 3 actores: - Usuario: Requiere servicios con diferentes calidades - Diseñador de la red: Requiere realizar un diseño costo/efectivo - Proveedor de red: Requiere facilidad de administración y aislamiento de fallas. Prof. Javier Cañas R. 5 Requerimiento de Conectividad • Una Red de Computadores debe proveer conectividades entre computadores. Esto puede ir de unos pocos computadores (razones de privacidad y seguridad) hasta todos los Computadores del mundo. • Escalabilidad: Es la propiedad de una red de crecer hasta un tamaño arbitrario. • Un ejemplo de escalabilidad es Internet Prof. Javier Cañas R. 6 3 Conectividad La conect ividad se produce en varios niveles: Nodo o host link Los links pueden ser: Punto a punto De Acceso Múltiple (presentan lim itaciones de escalabilidad) Prof. Javier Cañas R. 7 Redes de conexión indirecta La conexión puede ser indirecta. Se produce en las llamadas Redes de Packet Switching Switched Network Switched Network Circuit Switched Packet Switched Las unidades de información que se transmiten por estas Redes se denominan Paquetes o Mensajes Prof. Javier Cañas R. 8 Store & Forward Las Redes Packet switched utilizan técnica de Store & Forward Switch: su función es almacenar paquetes y despacharlos host Cada Switch o nodo interno de la RED, almacena los paquetes y posteriormente los transmite Prof. Javier Cañas R. 9 Internetwork: Conjunto de Redes distintas interconectadas Router o gateway (la m ism a función de un switch a nivel de red) Cada nodo tiene una dirección Prof. Javier Cañas R. 10 Unicast, Multicast y Broadcast Otro requerimiento de las redes es el soporte para: • Unicast: Envío de un mensaje de un host a otro host de la red • Multicast: Envío de un mensaje de un host a un grupo de host de la red • Broadcast: Envío de un mensaje de un host a todos los host de la red Prof. Javier Cañas R. 11 Definición de RED (recursiva) Una Red de Computadores es un conjunto de dos o más nodos autónomos, conectados por un link físico o dos o más Redes conectadas por uno o más nodos. Prof. Javier Cañas R. 12 LAN, MAN y WAM Una manera de caracterizar las redes es por su tamaño • LAN (Local Area Network): Redes con menos de 1 Km de extensión • WAN (Wide Area Network): Redes con cobertura planetaria • MAN (Metrop olitan Area Network): Redes que cubren distancias de ≈10 Km. Por ejemplo Redes de grande Campus universitarios o de Corporaciones Esta definición es sólo referencial. Con el avance tecnológico existen LAN que son MAN y MAN que son WAN Prof. Javier Cañas R. 13 SAN y DAN • Otras opciones a las LAN, MAN y WAN son las: – SAN (System Area Networks) – DAN (Desk Area Network) Prof. Javier Cañas R. 14 DAN • ¿Cuál es la idea? – Es abrir el computador y poner sus distintas unidades accesibles por una red rápida: discos, CPU, Display, Printers, Cámaras de video etc.. • En un DAN, el bus de E/S se reemplaza por una red estableciendo un acceso uniforme a todos los recursos que sean requeridos por una aplicación de red. Prof. Javier Cañas R. 15 SAN • Las SAN toman su nombre de System Area Networks. Su área geográfica se reduce a una habitación donde se conectan varios componentes de un gran sistema computacional. • Las tecnologías que se usan son: HiPPI (High Performance Parallel Interface) y Fiber Channel. Se usan para conectar procesadores con paralelismo masivo con servidores de almacenamiento. Estos sistemas se conectan a LAN y WAN Prof. Javier Cañas R. 16 Recursos Compartidos: MUX y DEMUX El m ayor interés está en las redes packet switching STDM: Synchronous Tim e Division Multiplex ing En las Redes se utilizan econom ías de escala. Una idea im portante de packet switching es la m ultiplex ion de m uchos flujos de datos sobre un link sim ple. Prof. Javier Cañas R. 17 Comunicación de Procesos sobre canales Abstractos Host2 Host aplicación Host1 Red aplicación Host Host Es m ejor ver la red com o proveedora de canales entre aplicaciones Prof. Javier Cañas R. 18 4 Canales Abstractos • Existen distintos tipos de aplicaciones sobre las redes. Cada tipo de aplicación, define un determinado canal abstracto en la red.Estos canales están manejados por dos tipos de protocolos • Los protocolos de canales abstractos son: – Request/Reply – Message Stream Prof. Javier Cañas R. 19 Protocolo Request/Reply (RRP) • Se caracterizan por mensajes de consultas cortos y respuestas grandes. • Cada mensaje despachado debe ser recibido, es decir, no se aceptan pérdidas de paquetes. • El protocolo busca proteger privacidad e integridad • Ejemplos de Aplicaciones: ftp, Bibliotecas Digitales, www Prof. Javier Cañas R. 20 Interacción de transferencia de archivos (ftp) Cliente Servidor S C Request Reply Prof. Javier Cañas R. 21 Protocolo Message Stream (MSP) • Corresponde a tráfico HDX o FDX con retardos controlados. • En las aplicaciones Message Stream, no es necesario que todos los mensajes sean recibidos • Se debe garantizar el orden de los mensajes • Ejemplo de aplicaciones:Video bajo demanda, NV (Network Video), teleconferencias Prof. Javier Cañas R. 22 Interacción Message Stream Ejem plo: video en dem anda El ojo es sensible al retardo Server Client Video (Son datos) Prof. Javier Cañas R. 23 5 Arquitectura de Redes • ¿Qué es una arquitectura de Red? • Existen varias respuestas • Una respuesta simple: – Arquitectura de red: documentos que guían el diseño redes • Necesidad de definir una Arquitectura – Sistemas complejos---------->abstracción Prof. Javier Cañas R. 24 Capas • Entender, diseñar y construir una red de computadores es una tarea compleja que requiere devidir el problema en tareas más pequeñas. • Tradicionalmente se divide el problema en varias capas. Cada capa es responsible de proveer un servicio a la capa superior utilizando algún servicio de la capa inferior • Cada capa se comunica con su capa “par” en otro nodo utilizando un protocolo. Prof. Javier Cañas R. 25 Niveles en una Arquitectura de Redes Programas de Aplicación Conexión Proceso - Proceso Conexión Host- Host Niveles m ás abstractos de servicios HW Prof. Javier Cañas R. 26 Arquitectura de Redes Aplicaciones Request/Reply channel Message stream Channel Host-host HW En la realidad las arquitecturas son m ás com plejas que una secuencia lineal de niveles. A veces un nivel provee m últiples abstracciones Prof. Javier Cañas R. 27 Protocolos • Los objetos abstractos a través de las cuales se construyen los distintos niveles se denominan protocolos. • Un protocolo provee un servicio de comunicación que los niveles superiores utilizan para intercambiar mensajes. Prof. Javier Cañas R. 28 Interfaces de Protocolos Un protocolo define 2 interfaces diferentes: • Service Interface: en el mismo computador que desea usar los servicios de comunicación. Define las operaciones que los objetos locales pueden hacer sobre el protocolo. • Peer interface: define la forma y el sentido de los mensajes que se intercambian entre las máquinas. Prof. Javier Cañas R. 29 Interfaces de Protocolo Host 1 Host 2 Objetos de alto nivel Objetos de alto nivel Protocolo Service Interfaz Interfaz Peer- to- Peer Prof. Javier Cañas R. Protocolo 30 Grafo de Protocolos File Aplication Digital library aplication Video Aplication Igual RRP MSP HHP H1 H2 RED Prof. Javier Cañas R. 31 Grafo de Protocolos: Descripción del ejemplo • RRP: Request Reply Protocol • HHP: Host to Host Protocol • Un programa de aplicación de H1 desea comunicar con su correspondiente en H2 usando el servicio de comunicación ofrecido por RRP. RRP invoca el servicio ofrecido por HHP. • En este caso se dice que la aplicación utiliza el servicio ofrecido por el stack de protocolo RRP/HHP Prof. Javier Cañas R. 32 Encapsulación Programa de aplicación Datos RRP RRP HHP DLP HHP RRP RRP Transporte Datos HHP Red DLP Data Link Datos Datos Prof. Javier Cañas R. 33 ...Encapsulación Programa de aplicación RRP Host 2 Host aplicación Programa de aplicación Host 1 Red aplicación HHP RRP Host Host DLP HHP DLP DLP HHP RRP Datos Prof. Javier Cañas R. 34 Estándares de Arquitecturas • Existen estandarizaciones que fijan marcas para las arquitecturas: – ISO (International Standards Organization) – IETF (Internet Engineering Task Force) Prof. Javier Cañas R. 35 6 Arquitectura OSI No es grafo de protocolos, sino una guía para diseñarlos 7 6 5 4 3 2 1 Sólo en end host 3 2 1 Prof. Javier Cañas R. 3 2 1 7 6 5 4 3 2 1 36 Responsabilidades de las Capa Física • Capa Física: transmitir bits sin estructura sobre un enlace de comunicaciones – Problemas que resuelve: tamaño y forma de conectores, convertir bits en señales eléctricas. – En una red pueden existir diversos tipos de capas físicas. Prof. Javier Cañas R. 37 Responsabilidades de la Capa de Enlace de Datos • Enlace de Datos: transmitir pedazos de información a través de un enlace – Problemas que resuelve: Detección de corrupción de datos – Coordinación de uso de medios físicos compartidos. – Es común que diferentes enlaces de datos implementan diferentes capas de enlace de datos Prof. Javier Cañas R. 38 Capa de Red • Red: Permitir que cualquier par de Host en la red se puedan comunicar entre si. (Servicio Host a Host). • La capa de red es responsable de encontrar un camino entre dos host a través de un conjunto de nodos • Problemas que resuelve: – Cálculo de ruta – fragmentación y reensamblado de paquetes Prof. Javier Cañas R. 39 Capa de Transporte • Transporte: establece un canal abstracto Proceso a proceso. – Problemas que resuelve: Errores que se cometen en la capa de red tales como: • Pérdida de paquetes • Paquetes duplicados • Reordenamiento de paquetes – Los protocolos de esta capa y de las capas superiores corren en los host y no en los nodos intermedios Prof. Javier Cañas R. 40 Capa de Sesión • Sesión: Ofrecer servicios sobre un flujo full-duplex confiable proporcionado por el nivel de transporte. Permite el manejo de potencialmente diferentes flujos de transporte que son parte de una misma aplicación. • Ej: – stream de audio y video que se combinan para una video conferencia – control de diálogo, chaining (combinar grupos de paquetes o todos o ninguno se despacha) Prof. Javier Cañas R. 41 Capas de Presentación y Aplicación • Presentación: medias para la representación de datos – XDR ( Big endian- little endian) – Número de bits (16, 32, 64) • Aplicación: – FTAM – VT virtual terminal services Prof. Javier Cañas R. 42 7 Arquitectura Internet También se llama arquitectura TCP/ IP Historia: Arpanet proyectos financiados por ARPA (Advanced Internet Research Projects Agency) Aplicación TCP IP Las aplicaciones son libres para utilizar los protocolos que quieran Network Prof. Javier Cañas R. 43 Arquitectura Internet: grafo de protocolo Grafo parcial: HTTP FTP NV TCP TFTP UDP IP Red 1 Red 2 Red n Prof. Javier Cañas R. 44 ...Arquitectura Internet • Filosofía central: cualquiera puede proponer un protocolo, pero se debe entregar: – especificación de protocolo – uno o dos implantaciones representativas IETF: Internet Engineering Task Force Prof. Javier Cañas R. 45 ¿Cómo construir una aplicación de red? • El punto de partida es la interfaz que exporta la red. • La mayoría de los sistemas operativos implementan los protocolos de red como parte del núcleo, es decir la interfaz que exporta la red es la llamada API (Application Programming Interface). • Si bien cada s.o. es libre para definir sus propias API de red, con el tiempo algunas han sido ampliamente soportadas, como es el caso de los sockets de UNIX. • Con esto se logra portar aplicaciones entre distintos sistemas operativos. Prof. Javier Cañas R. 46 ...¿Cómo construir una aplicación de red? Cada protocolo provee un conjunto de servicios. La API provee la sintaxis a través de la cual es posible obtener esos servicios. • La principal abstracción de la interfaz socket se llama socket!. Un socket es la conexión entre una aplicación y la red • Un socket se crea invocando la función: • int socket(int domain, int type, int protocol) domain:especifica la familia de protocolo. PF_INET para internet y PF_UNIX para pipes UNIX. Prof. Javier Cañas R. 47 ...¿Cómo construir una aplicación de red? type:semántica de la comunicación. SOCK_STREAM para flujo de bytes y SOCK__DGRAM para servicio orientado a mensajes. protocol:se especifica el protocolo. Normalmente es UNSPEC porque la combinación PF_INET y SOCK_STREAM implica TCP. Prof. Javier Cañas R. 48 El servidor int socket(int domain, int type, int protocol) El socket retorna un identificador llamado handle que permite referenciarlo en el futuro. El lado servidor hace un open pasivo, es decir se prepara para recibir conecciones. Esto lo hace invocando tres operaciones: int bind(int socket, struct sockaddr *address, int addr_len) • bind liga el socket recién creado con la dirección del servidor • Si es un protocolo Internet, la dirección es la IP y el número de puerto. Prof. Javier Cañas R. 49 ...El servidor int listen(int socket, int backlog) • Permite definir cuantas conecciones pueden quedar pendientes en un socket específico. Int accept(int socket, struct sockaddr *address, int addr_len) • Activa el open pasivo. La función se bloquea hasta que un participante remoto establece una conexión. Cuando se completa esta conexión, devuelve un nuevo socket que corresponde a la conexión recién establecida. La dirección corresponde a la dirección del participante remoto. Prof. Javier Cañas R. 50 El Cliente En la máquina cliente, el proceso de aplicación hace un open activo invocando: int connect(int socket, struct sockaddr *address, int addr_len) • La función no retorna hasta que TCP ha establecido exitosamente una conexión. Una vez establecida la conexión, la aplicación puede comenzar el envío de datos. • Mientras el servidor escucha en un puerto predeterminado, el cliente deja al sistema operativo que asigne algún puerto libre. Una vez establecida la conexión, la aplicación invoca dos operaciones para enviar y recibir datos: int send(int socket, char *mensaje, int msg_len, int flags) int recv(int socket, char *buffer, int buf_len, int flags) Prof. Javier Cañas R. 51 Ejemplo en Python: Código Servidor #!/usr/bin/python #listening side.Server from socket import * s=socket(AF_INET, SOCK_STREAM) #AF_INET: internet, SOCK_STREAM: TCP s.bind(('127.0.0.1',44444)) # 127.0.0.1 es el local loopback s.listen(1) #Fija el largo de cola de conecciones pendientes q,v=s.accept() #Retorna el socket q y direccion v print 'mensaje desde: ', v q.send('Hola, soy el servidor') Prof. Javier Cañas R. 52 Ejemplo en Python: Código Cliente #!/usr/bin/python #connecting side.Client side from socket import * r=socket(AF_INET, SOCK_STREAM) r.connect(('127.0.0.1',44444)) t=r.recv(1024) #Recibe hasta 1024B print t 53 Prof. Javier Cañas R. Links a URLs relacionados • Estándares IEEE http://standards.ieee.org • Estado actual de varios estándares www.acm.org./sigcomm/sos.html • Información sobre IETF y grupos relacionados. Se pueden obtener RFC: www.ietf.cnri.reston.va.us • Selección bibliográfica de temas de investigación en redes www.research.att.com/#netbib Prof. Javier Cañas R. 54 ...Links a URLs relacionados • Todo sobre Internet http://www.isoc.org Prof. Javier Cañas R. 55 FIN Introducción