Title: Prof' Javier Caas
1Introducción Arquitecturas y Conectividad
2 Temario
- Introducción
- Conectividad
- Servicios
- Arquitectura de Redes
- Software de Red
3 1 Introducción
- Las redes de computadores, al igual que Internet,
han tenido un explosivo crecimiento que ha
permitido entregar innumerables servicios a miles
de millones de usuarios. - Este crecimiento ha sido posible por la
naturaleza de propósito general de las redes y a
la posibilidad de agregar nuevas funcionalidades
a la red escribiendo software que corre en
computadores accesibles y de buen desempeño.
4 Qué es una red?
- 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. - Hay distintas miradas para las redes
- Programador de aplicaciones
- Diseñador de redes
- Administrador
5 Dos ideas
- Conectividad una red debe proporcionar
conectividad. Esta conectividad puede ser
limitada, por razones de seguridad, o sin límites
(Internet). - Escalabilidad un sistema es escalable si puede
crecer en forma arbitraria sin degradar
sustancialmente su desempeño. Internet es un buen
ejemplo de escalabilidad.
62 Conectividad links y nodos
- Una red se puede representar por un grafo cuyos
nodos son computadores y sus arcos se denominan
links.
Links punto a punto
Link de acceso múltiple
7Redes de enlace directo Lan
- Si los nodos están interconectados a través de un
único medio físico, su escalabilidad se ve muy
limitada, por esta razón los links de acceso
múltiple sólo se utilizan en redes de área local
(LAN). - Otra alternativa es una llamada full mesh de
interconexión pero la escalabilidad en este caso
es más limitada.
8Ejemplo de full-mesh
9Redes de conmutación
- La conectividad entre dos nodos, no
necesariamente implica una conexión directa entre
ellos. - Un nodo que está conectado al menos a dos links y
tiene el software apropiado, puede proveer
conectividad a otros nodos en forma indirecta.
10Paquetes de datos
- Los nodos de una red envían y reciben bloques de
datos discretos llamados paquetes o mensajes. - Los paquetes de datos pasan entre los nodos a
través de una estrategia llamada store
forward. - Una red con conectividad indirecta que despacha
paquetes se denomina red de conmutación de
paquetes
11Redes de Conmutación de paquetes
switch
host
Sub red de comunicación
12Switches y host
- De la figura anterior podemos ver que existen dos
tipos de nodos - Switches nodos internos a la subred de
comunicación (computadores especializados en el
despacho de paquetes) - Host nodos que soportan las aplicaciones
(computadores)
13Interconexión de redes
Router o gateway
14Direccionamiento
- Para proveer conectividad no bastan los links y
nodos intermedios, es necesario asignar una
dirección a cada nodo. - Una dirección es un string que identifica un
nodo. - Los routers utilizan esta dirección para decidir
por dónde despachar el paquete para acercarlo a
su destino final.
15Unicast, multicast, broadcast, anycast
- El escenario más común es el envío de un paquete
de datos de un nodo a otro nodo (Unicast). - Multicast desde la fuente a un grupo de nodos.
- Broadcast desde la fuente a todos los nodos.
- Anycast desde la fuente a un grupo que tienen la
misma dirección. -
16Economías de escala
- Los criterios fundamentales que guían el diseño
de las redes son dos eficiencia y desempeño. - La eficiencia nos lleva a aprovechar los recursos
de la mejor forma posible. Por ejemplo la
estructura de la red de packet switching se
desprende de esa idea no hay una forma mejor de
proveer conectividad a menor costo.
17Economías de escala
- Otro aspecto sobre el cual se puede intervenir
pensando en la eficiencia es el uso de los links. - Una idea fundamental de conectividad eficiente es
la multiplexión. - La multiplexión es compartir recursos. (un
ejemplo es compartir CPU en un sistema operativo
multitarea)
18 Multiplexión
- Los paquetes de datos enviados por diferentes
usuarios se puede multiplexar
Switch 1
Switch 2
19Flujos de datos
- En la figura anterior podemos ver que 3 flujos de
datos son multiplexados sobre un link simple y
después demultiplexados en flujos separados. - Existen distintos métodos de multiplexing, Uno de
ellos es el llamado STDM (multiplexing sincrónico
por división de tiempo)
20 STDM
Cada flujo tiene asociado un quantum de tiempo.
Si un flujo está ocioso igual ocupa ancho de
banda. Por esta razón, no se usa STDM en redes de
datos.
Round robin
21Multiplexión estadística
En este caso, los datos correspondientes a cada
flujo son transmitidos bajo demanda. Se define
una cota máxima de datos a transmitir por cada
flujo. Esta cota es un paquete.
22Calidad de Servicio (Q o S)
- La decisión de despacho de un paquete puede
hacerse de múltiples maneras - FIFO
- STDM
- Es posible también asegurar que determinados
flujos - Reciban una fracción del ancho de banda
- Sus paquetes no sean retardados más de un
determinado tiempo.
23Calidad de Servicio (Q o S)
- El multiplexing estadístico define una forma
costo efectiva para que diversos flujos entre
host puedan compartir recursos de la red (nodos y
links) en una granularidad definida por paquetes. - También permite manejar la congestión al asignar
la capacidad de los links en forma justa.
243 Servicios de una red
- El sentido de una red es implementar servicios
distribuidos. - Los programas de aplicación que corren en los
host conectados a la red deben ser capaces de
comunicarse. - En vez de partir de cero en desarrollo de
aplicaciones distribuidas en una red, es mejor
identificar los servicios que son comunes a todas
las aplicaciones
25Canales abstractos
- Resulta útil ver una red como proveedora de
canales sobre los cuales las aplicaciones se
comunican. - En forma abstracta un canal es un tubo sobre el
cual las aplicaciones envían y reciben datos. - Los canales pueden tener funcionalidades
distintas, por ejemplo, seguridad, garantía de
despacho etc
26Canales Abstractos
host
host
canal
host
27Servicios Comunes
- Cuando un par de programas de aplicación se
comunican a través de la red, no basta sólo el
intercambio de mensajes sino que necesitan una
coordinación compleja. - Estas funcionalidades se pueden incorporar a las
aplicaciones pero como la mayoría de las
aplicaciones necesitan servicios comunes, resulta
más conveniente implementar estas funcionalidades
como servicios proporcionados por la red.
28ServiciosComunes
- El éxito de las redes está en ocultar su
complejidad, presentando a las aplicaciones un
conjunto de servicios. - Cuál debe ser el conjunto básico de servicios?.
Esta es un área muy dinámica para los diseñadores
de redes.
29Canales lógicos
- La red se puede ver como proveedora de canales
lógicos sobre los cuales los procesos de
aplicaciones se pueden comunicar. - Qué funcionalidades deben los canales proveer a
las aplicaciones? - es necesario que los mensajes lleguen en orden?
- pueden perderse mensajes?
30Interacción cliente - servidor
- Una interacción común es la llamada cliente
servidor
petición
respuesta
31Clases de aplicaciones
- Veremos conjuntos representativos de
aplicaciones - ftp, nfs leer un archivo remoto implica enviar
un pequeño mensaje al servidor. El servidor
responde con un mensaje más largo correspondiente
a los datos del archivo. - www la interacción es parecida a la anterior.
- Video conferencia ejemplo vic. Aquí importa
mucho la latencia
32Dos canales tipos
- Considerando las aplicaciones anteriores como
muestras representativas, podemos establecer dos
tipos de canales - Request/reply transferencia de archivos y
bibliotecas digitales - Message streams aplicaciones de audio y video
33Canal Request/reply
- El requerimiento es garantizar que un mensaje
despachado llegue a destino y que no se generen
copias de este mensaje. - También debe garantizar que el orden de envío sea
el mismo que el orden de entrega de los paquetes. - Podría también requerir servicios de seguridad
como privacidad e integridad
34Canal Message Stream
- No requiere garantía de entrega de mensajes pero
debe soportar diferentes propiedades de retardo. - También debe garantizar que el orden de envío sea
el mismo que el orden de entrega de los paquetes. - Debe soportar multicast
354 Arquitecturas de Redes
- Tal como se vio una red debe proporcionar
conectividad a un gran número de computadores en
forma general, costo efectiva, justa, robusta y
con alto desempeño. - Además las redes evolucionan en el tiempo para
incorporar los cambios tecnológicos y las nuevas
demandas de las aplicaciones.
36Arquitecturas de Redes
- Para relacionarse con esta complejidad, se
generan documentos llamados arquitectura de red
que guían el diseño e implementación de las
redes. - Existen innumerables arquitecturas de redes, pero
las más representativas son - OSI
- Internet
37Capas y protocolos
- Complejidad abstracción cuando un sistema se
vuelve complejo se introducen nuevos niveles de
abstracción. - Por ejemplo en concepto de canal lógico abstrae
muchas complejidades de la red. - La abstracción lleva naturalmente a la
arquitectura en capas
38Capas en una arquitectura
Programas de Aplicación
Conectividad proceso a proceso
Conectividad Host a Host
Hardware
39Arquitectura de capas
- La Arquitectura de capas tiene dos grandes
ventajas - Se descompone un problema complejo en componentes
más manejables. - Se logra un diseño modular.
- Lo contrario a un diseño de capas es la
estructura monolítica
40Arquitectura de capas
- La Arquitectura de capas puede tener
abstracciones diferentes en un nivel. - Por ejemplo una capa puede soportar los dos
canales lógicos discutidos anteriormente.
41Arquitectura de capas
Programas de Aplicación
Canal Request/ reply
Canal Mesagge stream
Conectividad Host a Host
Hardware
42 Protocolos
- Los protocolos son los objetos con los cuales se
construyen las capas. - Los protocolos proporcionan servicios de
comunicación que utilizan otros objetos tales
como protocolos de mayor nivel o aplicaciones
43Estructura de protocolos
- Cada protocolo define 2 interfaces
- De servicio para otros objetos dentro del mismo
computador que deseen utilizar los servicios de
comunicación. - Par es la interfaz que define a la máquina par
con la cual se establece la comunicación. Esta
interfaz define la forma y el significado de los
mensajes entre protocolos pares para implementar
el servicio.
44Interfaz de servicio
- Son funciones que proveen los protocolos que
permiten utilizar sus servicios por parte de
objetos de alto nivel (otros protocolos o
aplicaciones)
Objeto de Alto nivel
Interfaz de servicio
Protocolo
45 Interfaz par
- Sólo en la capa de hardware esta comunicación es
directa, en las demás capas es indirecta. - Las capas pares de protocolos se comunican a
través de mensajes utilizando algún protocolo de
mayor nivel.
46Interfaces de protocolos
Interfaz par
Host 1
Host 2
Objeto de Alto nivel
Objeto de Alto nivel
Protocolo
Protocolo
47Qué es un protocolo?
- El concepto de protocolo suele llevar a
confusión. Hay dos aspectos a considerar - Operaciones definidas por la interfaz de
servicio. Este aspecto se denomina
especificación de protocolos (ej. RFC) - Módulos de software que implementan estas
interfaces de servicio.
48Grafo de Protocolos
- En cada capa de la arquitectura pueden existir
muchos protocolos. - Es el conjunto de todos los protocolos de una
arquitectura los que ofrecen los distintos
servicios de una red. - Estos protocolos no son independientes. Se
relacionan unos con otros a través de un grafo
de protocolos.
49Ejemplo de Grafo de Protocolo
Biblioteca electrónica
Aplicación archivos
Aplicación Video
RRP
MSP
HHP
50RRP y MSP
- Los protocolos RRP y MSP implementan dos canales
entre aplicaciones (procesos) diferentes - RRP Protocolo request/reply
- MSP Protocolo message/stream.
- Tanto RRP como MSP dependen del protocolo HHP
(host a host) que provee un servicio de
conectividad entre computadores.
51Ejemplo de Grafo de Protocolo
host2
host1
Red
52El Stack de protocolos
- Se puede ver de las figuras anteriores la
relación entre los distintos protocolos, por
ejemplo una transferencia de archivos entre el
host1 y el host2 requiere RRP y HHP. En este
caso se dice que la aplicación utiliza el
servicio de protocolos ofrecidos por el stack
RRP/HHP. - Un ejemplo conocido es TCP/IP.
53Encapsulamiento
- Todo mensaje lleva un encabezamiento llamado
header. - Cada protocolo agrega un nuevo header al
mensaje proporcionado por el nivel superior. - Para un protocolo, la carga útil o datos de un
mensaje es solo un conjunto de bits sin
estructura.
54Encapsulamiento
- Normalmente el header se ubica al comienzo del
mensaje. Por ejemplo
RRP
Datos
Header que agrega RRP
Carga útil
55Encapsulamiento
aplicación
aplicación
dato
dato
RRP
RRP
HHP
HHP
PP
PP
56Encapsulamiento
- La figura anterior muestra el proceso de
encapsulamiento. En cada nivel un protocolo
encapsula el mensaje proveniente del nivel
superior. - En el nivel inferior, el protocolo PP (Physical
Protocol) es el encargado de enviar el mensaje
por la red a su protocolo par.
57Multiplexión y Demultiplexión
- La misma idea que se aplica en la capa física, se
aplica en un grafo de protocolo. - Cada protocolo puede recibir mensajes de
múltiples protocolos o aplicaciones. - El encabezamiento contiene un campo normalmente
llamado protocol que contiene un número que
identifica al protocolo que pertenece el mansaje.
58MUX y DEMUX en protocolos
RRP
MSP
HHP
59Estándares en Arquitecturas
- Existes muchas arquitecturas de redes, entre las
cuales se encuentran arquitecturas propietarias y
arquitecturas abiertas. - La ISO fue la primera organización en definir
formalmente una forma estándar de conectar
computadores. Esta arquitectura se denomina
Open System Inteconnection o arquitectura OSI
60 Arquitectura OSI
- OSI define 7 niveles
- Físico se ocupa transmitir bits sin estructura
sobre un enlace de comunicaciones. - Enlace de datos se ocupa transmitir tramas con
de información a través de un enlace. Se ocupa
también de la detección de corrupción de datos y
la coordinación de uso de medios físicos
compartidos.
61Arquitectura OSI
- Red Permite que cualquier par de Host en la red
se puedan comunicar entre si, es decir, provee un
servicio Host a Host resolviendo el cálculo de
ruta y la fragmentación y reensamblado de
paquetes. - Transporte Establece un canal abstracto proceso
a proceso se ocupa de la pérdida de paquetes,
duplicados y reordenamiento de paquetes. Los
protocolos de esta capa y de las capas superiores
corren en los host y no en los nodos intermedios
62Arquitectura OSI
- Sesión Permite el manejo de diferentes flujos
de transporte que son parte de una misma
aplicación. Por ejemplo stream de audio y video
que se combinan para una video conferencia,
control de diálogo. - Presentación Presentación de datos (big endian,
little endian) - Aplicación ftp, www,
63Arquitectura OSI
Aplicación
Aplicación
Presentación
Presentación
Sesión
Sesión
Transporte
Transporte
Red
Red
Red
Red
Enlace datos
Enlace datos
Enlace datos
Enlace datos
Física
Física
Física
Física
64Arquitectura Internet o TCP/IP
- La arquitectura llamada Internet es una evolución
de la red de packet switching llamada ARPANET. - En vez de 7 capas sólo tiene 4. En el menor nivel
se acepta una gran variedad de protocolos de
redes de distintas tecnologías. - El corazón de la arquitectura es el protocolo de
red llamado IP.
65Arquitectura Internet o TCP/IP
- La tercera capa contiene dos protocolos
principales UDP y TCP. Ambos proveen canales
lógicos a las aplicaciones. - Tanto TCP como UDP se les denomina protocolos end
to end para enfatizar su funcionalidad.
Corresponden a la capa de transporte de OSI.
66Arquitectura Internet o TCP/IP
- Sobre la capa de transporte existen muchos
protocolos de aplicación tales como ftp, tftp,
smtp. - La siguiente transparencias se muestra en forma
gráfica la arquitectura y el grafo de protocolos.
67Arquitectura y grafo de protocolos
ftp
ftp
ftp
ftp
Aplicación
TCP
UDP
TCP
UDP
IP
IP
Red
Red1
Red1
Red1
Red1
685 Software de Red
- Cómo construir una aplicación de red?
- Para esto es necesario saber que
- Los protocolos se implementan en software.
- Actualmente todos los sistemas computacionales
implementan los protocolos de red como parte
integral del sistema operativo. - Es el sistema operativo quien proporciona la
interfaz (API) a su subsistema de red.
69La Interfaz Socket
- Si bien cada sistema operativo es libre para
proporcionar su propia API de red, con el tiempo
la interfaz desarrollada en Berkeley y
distribuida en UNIX llamada Socket. - Un socket se puede ver como un punto de acceso
lógico en el cual una aplicación se conecta a la
red.
70La Interfaz Socket
- La interfaz define operaciones para
- Crear un socket
- Ligar el socket a la red
- Enviar y recibir mensajes a través del socket
- Cerrar el Socket
- La utilización del socket se mostrará a través de
una pequeña aplicación escrita en Python.
71Socket un ejemplo
- Se muestra a continuación una aplicación que
consiste en un servidor que está a la espera de
conexiones por parte de clientes. - Como es un ejemplo para mostrarlo en un sistema
tipo UNIX, se toma la local loop como dirección
IP (127.0.0.1)
72 Código cliente
- !/usr/bin/python
- connecting side.Client side
- from socket import
- rsocket(AF_INET, SOCK_STREAM)
- r.connect(('127.0.0.1',44444))
- tr.recv(1024) Recibe hasta 1024B
- print t
73 Código servidor
- listening side.Server
- from socket import
- ssocket(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(10) Fija el largo de cola de
conecciones pendientes - count1
- hola'Hola, soy el servidor. Esta es la conexion
numero '
74Código servidor
- while 1
- q,vs.accept() Retorna el socket q y
direccion v - print 'mensaje desde ', v
- mensajeholastr(count)
- q.send(mensaje)
- count1
75FIN