Prof' Javier Caas - PowerPoint PPT Presentation

1 / 75
About This Presentation
Title:

Prof' Javier Caas

Description:

Este crecimiento ha sido posible por la naturaleza de prop sito general de las ... datos pasan entre los nodos a trav s de una estrategia llamada: 'store & forward' ... – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 76
Provided by: javie63
Category:
Tags: caas | fwd | javier | prof

less

Transcript and Presenter's Notes

Title: Prof' Javier Caas


1
Introducción Arquitecturas y Conectividad
  • Prof. Javier Cañas

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.

6
2 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
7
Redes 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.

8
Ejemplo de full-mesh
9
Redes 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.

10
Paquetes 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

11
Redes de Conmutación de paquetes
switch
host
Sub red de comunicación
12
Switches 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)

13
Interconexión de redes
Router o gateway
14
Direccionamiento
  • 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.

15
Unicast, 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.

16
Economí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.

17
Economí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
19
Flujos 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
21
Multiplexió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.
22
Calidad 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.

23
Calidad 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.

24
3 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

25
Canales 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

26
Canales Abstractos
host
host
canal
host
27
Servicios 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.

28
ServiciosComunes
  • 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.

29
Canales 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?

30
Interacción cliente - servidor
  • Una interacción común es la llamada cliente
    servidor

petición
respuesta
31
Clases 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

32
Dos 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

33
Canal 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

34
Canal 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

35
4 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.

36
Arquitecturas 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

37
Capas 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

38
Capas en una arquitectura
Programas de Aplicación
Conectividad proceso a proceso
Conectividad Host a Host
Hardware
39
Arquitectura 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

40
Arquitectura 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.

41
Arquitectura 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

43
Estructura 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.

44
Interfaz 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.

46
Interfaces de protocolos
Interfaz par
Host 1
Host 2
Objeto de Alto nivel
Objeto de Alto nivel
Protocolo
Protocolo
47
Qué 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.

48
Grafo 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.

49
Ejemplo de Grafo de Protocolo
Biblioteca electrónica
Aplicación archivos
Aplicación Video
RRP
MSP
HHP
50
RRP 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.

51
Ejemplo de Grafo de Protocolo
host2
host1
Red
52
El 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.

53
Encapsulamiento
  • 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.

54
Encapsulamiento
  • Normalmente el header se ubica al comienzo del
    mensaje. Por ejemplo

RRP
Datos
Header que agrega RRP
Carga útil
55
Encapsulamiento
aplicación
aplicación
dato
dato
RRP
RRP
HHP
HHP
PP
PP
56
Encapsulamiento
  • 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.

57
Multiplexió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.

58
MUX y DEMUX en protocolos
RRP
MSP
HHP
59
Está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.

61
Arquitectura 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

62
Arquitectura 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,

63
Arquitectura 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
64
Arquitectura 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.

65
Arquitectura 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.

66
Arquitectura 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.

67
Arquitectura y grafo de protocolos
ftp
ftp
ftp
ftp
Aplicación
TCP
UDP
TCP
UDP
IP
IP
Red
Red1
Red1
Red1
Red1
68
5 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.

69
La 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.

70
La 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.

71
Socket 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 '

74
Código servidor
  • while 1
  • q,vs.accept() Retorna el socket q y

    direccion v
  • print 'mensaje desde ', v
  • mensajeholastr(count)
  • q.send(mensaje)
  • count1

75
FIN
  • Introducción
Write a Comment
User Comments (0)
About PowerShow.com