introducción a las redesprof. javier cañas r. 13 lan, man y wam una manera de caracterizar las...
TRANSCRIPT
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
Prof. Javier Cañas R. 2
Temario
1 Introducción2 Requerimientos de una
Red
3 Conectividad4 Canales Abstractos
5 Arquitectura de Redes
6 Arquitectura OSI7 Arquitectura Internet
Prof. Javier Cañas R. 3
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. 4
Growth of Internet Hosts *Sept. 1969 - Sept. 2002
0
50,000,000
100,000,000
150,000,000
200,000,000
250,000,000
9/ 69
01/ 71
01/ 73
01/ 74
01/ 76
01/ 79
08/ 81
08/ 83
10/ 85
11/ 86
07/ 88
01/ 89
10/ 89
01/ 91
10/ 91
04/ 92
10/ 92
04/ 93
10/ 93
07/ 94
01/ 95
01/ 96
01/ 97
01/ 98
01/ 99
01/ 01
08/ 02
Time Period
No
. of
Ho
sts
Prof. Javier Cañas R. 5
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. 6
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. 7
3 Conectividad
La conect ividad se produce en varios niveles:
Nodo o host
link
Los links pueden ser:Punto a puntoDe Acceso Múlt iple (presentan limitaciones de
escalabilidad)
Prof. Javier Cañas R. 8
Redes de conexión indirectaLa conexión puede ser indirecta. Se produce en las llamadasRedes de Packet Switching
Switched Network
Switched Network Circuit Switched Packet Switched
Las unidades de información que se transmiten porestas Redes se denominan Paquetes o Mensajes
Prof. Javier Cañas R. 9
Store & Forward
Las Redes Packet switched utilizan técnica de Store & Forward
Switch: su función esalmacenar paquetes ydespacharlos
host
Cada Switch o nodo interno de la RED, almacena los paquetes y posteriormente los transmite
Prof. Javier Cañas R. 10
Internetwork: Conjunto de Redes distintas interconectadas
Router o gateway (la misma funciónde un switch a nivelde red)
Cada nodo tiene una dirección
Prof. Javier Cañas R. 11
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. 12
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. 13
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. 14
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. 15
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. 16
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. 17
Recursos Compartidos: MUX y DEMUX
El mayor interés está en las redes packet switching
STDM: Synchronous TimeDivision Mult iplex ing
En las Redes se ut ilizan economías de escala. Una idea importante de packet switching es la mult iplex ionde muchos f lujos de datos sobre un link simple.
Prof. Javier Cañas R. 18
Comunicación de Procesos sobre canales Abstractos
Es mejor ver la red como proveedora de canales entre aplicaciones
aplicación
Host1
Host
aplicación
Host2
Red
Host
Host
Prof. Javier Cañas R. 19
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. 20
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. 21
Interacción de transferencia de archivos (ftp)
Request
Reply
Cliente Servidor
SC
Prof. Javier Cañas R. 22
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. 23
Interacción Message Stream
Ejemplo: video en demanda
Client Server
Video (Son datos)
El ojo es sensibleal retardo
Prof. Javier Cañas R. 24
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. 25
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. 26
Niveles en una Arquitectura de Redes
Programas de Aplicación
Conexión Proceso - Proceso
Conexión Host- Host
HW
Niveles más abstractos deservicios
Prof. Javier Cañas R. 27
Arquitectura de Redes
Aplicaciones
Request/Replychannel
Message streamChannel
Host-host
HW
En la realidad las arquitecturas son más complejas que una secuencia lineal de niveles. A veces un nivel provee múlt iples abstracciones
Prof. Javier Cañas R. 28
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. 29
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. 30
Interfaces de Protocolo
Service Interfaz
Objetos dealto nivel
Protocolo
Host 1
Objetos dealto nivel
Protocolo
Host 2
InterfazPeer- to- Peer
Prof. Javier Cañas R. 31
Grafo de Protocolos
File
Aplication
Digitallibrary
aplication
Video
Aplication
RRP MSP
HHP
Igual
H1 H2
RED
Prof. Javier Cañas R. 32
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. 33
Encapsulación
Datos
RRP Datos
RRP DatosHHP
Data Link
Red
Transporte
RRP DatosHHPDLP
Programa de aplicación
RRP
HHP
DLP
Prof. Javier Cañas R. 34
...Encapsulación
Programa de aplicación
RRP
HHP
DLP
Programa de aplicación
RRP
HHP
DLP
RRP DatosHHPDLP
aplicación
Host1
Host
aplicación
Host2
Red
Host
Host
35
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.
36
6 Arquitectura OSI
No es grafo de protocolos, sino una guía para diseñarlos
321
321
7654321
Sólo en end host
1
765432
Prof. Javier Cañas R.
37
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.
Prof. Javier Cañas R. 38
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. 39
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. 40
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. 41
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. 42
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. 43
7 Arquitectura Internet
También se llama arquitectura TCP/ IP
Historia: Arpanet proyectos financiados por ARPA (Advanced Internet Research Projects Agency)
AplicaciónLas aplicaciones son librespara utilizar los protocolos que quieran
Network
IP
TCP
Prof. Javier Cañas R. 44
Arquitectura Internet: grafo de protocolo
Grafo parcial:
FTP HTTP
TCP
Red1 Red2 Redn
IP
UDP
NV TFTP
Prof. Javier Cañas R. 45
...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. 46
¿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. 47
...¿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. 48
...¿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. 49
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. 50
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.
...El servidor
Prof. Javier Cañas R. 51
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)
El Cliente
Prof. Javier Cañas R. 52
#!/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')
Ejemplo en Python: Código Servidor
Prof. Javier Cañas R. 53
#!/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
Ejemplo en Python: Código Cliente
Prof. Javier Cañas R. 54
Links a URLs relacionados
• Estándares IEEEhttp://standards.ieee.org
• Estado actual de varios estándareswww.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 redeswww.research.att.com/#netbib
Prof. Javier Cañas R. 55
...Links a URLs relacionados
• Todo sobre Internethttp://www.isoc.org
FIN
Introducción