Red - ISOCOR

Anuncio
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
Descargar