SlideShare uma empresa Scribd logo
1 de 74
Baixar para ler offline
Generated by Foxit PDF Creator © Foxit Software
                 http://www.foxitsoftware.com For evaluation only.




Comunicacion entre procesos



      Lic. Jorge Guerra Guerra
             Mayo 2012
Generated by Foxit PDF Creator © Foxit Software
                             http://www.foxitsoftware.com For evaluation only.




Comunicación entre procesos

•Es la cooperación entre procesos para
 lograr un objetivo global. (Cada proceso
 hace su labor).
•Dos Formas
  –Procesos locales
  –Procesos Remotos




                 Lic. Jorge Guerra Guerra                                        2
Generated by Foxit PDF Creator © Foxit Software
                             http://www.foxitsoftware.com For evaluation only.




Modalidades de interacción entre procesos




  Comunicación Unicast




                                 Comunicación multicast


                  Lic. Jorge Guerra Guerra                                       3
Generated by Foxit PDF Creator © Foxit Software
                               http://www.foxitsoftware.com For evaluation only.




Comunicación en Sistemas Distribuidos
Red de comunicación es elemento
 fundamental para comunicación entre
 procesos.
Dos modelos de comunicación entre
 procesos:
  Memoria compartida.
  zona común en que los mensajes podrán ser
   compartidos entre cliente y servidor , la base
   de datos distribuida es un ejemplo de uso.



                   Lic. Jorge Guerra Guerra                                        4
Generated by Foxit PDF Creator © Foxit Software
                                       http://www.foxitsoftware.com For evaluation only.




2
Memoria compartida
Declaración independiente de variables
             Proceso A                                 Proceso B

                Texto                                      Texto
                                                           Datos
                                                                    var2
               Datos
             var1




                                2

                    Pila        Segmento                     Pila
                                de memoria
                                compartida




                           Lic. Jorge Guerra Guerra                                        5
Generated by Foxit PDF Creator © Foxit Software
                            http://www.foxitsoftware.com For evaluation only.




Modelos de comunicación (cont)
Paso de mensajes
En este modelo el proceso cliente y el
 proceso servidor se encuentran en máquinas
 distintas y no tienen ningún elemento común
 entre ellos, por lo que solo se servirán del
 medio de comunicación para intercambiarse
 mensajes.




                 Lic. Jorge Guerra Guerra                                       6
Generated by Foxit PDF Creator © Foxit Software
                                    http://www.foxitsoftware.com For evaluation only.




Paso de mensajes
Permite resolver:
   Exclusión mutua
   Sincronizar un proceso que recibe un mensaje y otro que lo
    envía
   Comunicación de datos entre espacios de memoria diferentes
    (mismo computador, diferentes computadores)


Primitivas básicas:
   send(destino, mensaje) envía un mensaje al proceso destino
   receive(destino, mensaje) recibe un mensaje del proceso
    destino




                        Lic. Jorge Guerra Guerra                                        7
Generated by Foxit PDF Creator © Foxit Software
                                      http://www.foxitsoftware.com For evaluation only.




Paso de mensajes
Múltiples soluciones

Aspectos de diseño
   Tamaño del mensaje
   Flujo de datos (unidireccional, bidireccional)
   Nombrado          Directo
                      Indirecto (puertos, colas)
   Sincronización (síncrono, asíncrono)
   Almacenamiento




                          Lic. Jorge Guerra Guerra                                        8
Generated by Foxit PDF Creator © Foxit Software
                                                            http://www.foxitsoftware.com For evaluation only.




Uso de colas y puertos


 Proceso cliente                      Proceso cliente
                     send
                                                                     Proceso cliente                            Proceso cliente
                                 receive
                                                                                       send
                                                                                                                       Puerto


                                                                                               mensaje
                      mensaje

                   Cola de mensajes




        Comunicación con                                                   Comunicación con puertos
        colas de mensajes



                                                Lic. Jorge Guerra Guerra                                                     9
Generated by Foxit PDF Creator © Foxit Software
                           http://www.foxitsoftware.com For evaluation only.




Tipos de paso de mensajes
Paso de mensajes puro



 Llamada a procedimientos remotos



 Invocación a métodos remotos



               Lic. Jorge Guerra Guerra                                        10
Generated by Foxit PDF Creator © Foxit Software
                          http://www.foxitsoftware.com For evaluation only.




Arquitectura de comunicaciones:
Modelo Cliente/Servidor




              Lic. Jorge Guerra Guerra                                        11
Generated by Foxit PDF Creator © Foxit Software
                       http://www.foxitsoftware.com For evaluation only.




Modelo con proxy o cache




           Lic. Jorge Guerra Guerra                                        12
Generated by Foxit PDF Creator © Foxit Software
                       http://www.foxitsoftware.com For evaluation only.




Modelo multicapa




           Lic. Jorge Guerra Guerra                                        13
Generated by Foxit PDF Creator © Foxit Software
                          http://www.foxitsoftware.com For evaluation only.




Código móvil




               Lic. Jorge Guerra Guerra                                       14
Generated by Foxit PDF Creator © Foxit Software
                      http://www.foxitsoftware.com For evaluation only.




Modelo peer-to-peer




           Lic. Jorge Guerra Guerra                                       15
Generated by Foxit PDF Creator © Foxit Software
                              http://www.foxitsoftware.com For evaluation only.




Factores de Comunicación
Los diferentes mecanismos de comunicación
se caracterizan por los siguientes factores:
  Rendimiento: Latencia, ratio de transferencia,
   ancho de banda, ...
  Escalabilidad: Número de elementos activos.
  Fiabilidad: Pérdida de mensajes.
  Seguridad:Cifrado, certificación, ...
  Movilidad: Equipos móviles.
  Calidad de Servicio (QoS): Reserva y garantía
   de anchos de banda.
  Comunicación en grupo: Multicast.

                  Lic. Jorge Guerra Guerra                                        16
Generated by Foxit PDF Creator © Foxit Software
                             http://www.foxitsoftware.com For evaluation only.




Fundamentos de la comunicación entre procesos

Procesos en diferentes maquinas. Se
 requiere:
  Una red de comunicaciones
  Lenguaje común de comunicaciones
  Protocolo de transporte




                 Lic. Jorge Guerra Guerra                                        17
Generated by Foxit PDF Creator © Foxit Software
                      http://www.foxitsoftware.com For evaluation only.




Niveles de Comunicación




           Lic. Jorge Guerra Guerra                                       18
Generated by Foxit PDF Creator © Foxit Software
                            http://www.foxitsoftware.com For evaluation only.




Tipos de comunicacion
Comunicación asíncrona - el remitente
 continúa inmediatamente después de enviar
 el mensaje, el mensaje se almacena en un
 búfer local.
Comunicación Síncrona - el remitente está
 bloqueado hasta que el mensaje sea
 almacenado en un búfer del host receptor,
 o efectivamente sea entregado al receptor




                Lic. Jorge Guerra Guerra                                        19
Generated by Foxit PDF Creator © Foxit Software
                                 http://www.foxitsoftware.com For evaluation only.




 Comunicación Síncrona VS Asíncrona

• Una cola está asociado con cada destino del mensaje.
 • Los procesos de envío causaran que los mensajes se
  añadan a colas remotas.
 • Los procesos de recepción eliminaran los mensajes de
  las colas locales.
                               La comunicación entre los procesos
                               de envío y recepción puede
                               ser sincrónica o asincrónica.




                     Lic. Jorge Guerra Guerra                                        20
Generated by Foxit PDF Creator © Foxit Software
                              http://www.foxitsoftware.com For evaluation only.




Comunicación Sincrona
Los procesos de envio y recepcion se
 sincronizan en cada mensaje.
En este caso, El send y receive son
 operaciones bloqueantes:
  cuando un send() es ejecutado, el proceso de
   envío está bloqueado hasta que la
   recepción correspondiente se emita;
  cada vez que una receive() es ejecutado,se
   bloquea el proceso de recepción hasta que llegue
   un mensaje.


                  Lic. Jorge Guerra Guerra                                        21
Generated by Foxit PDF Creator © Foxit Software
                              http://www.foxitsoftware.com For evaluation only.




Comunicación Asincrona
• La operacion send() es no-bloqueante:
  ‣ el proceso de envío termina tan pronto como el
   mensaje ha sido copiado en un buffer local;
  ‣ la transmisión del mensaje se realiza
   en paralelo con el proceso de envío.
• La operacion receive() puede ser bloqueante
 o no bloqueante:
  ‣ [no-bloqueante] El proceso de recepcion se
   realiza normalmente aun se haya ejecutado la
   operacion receive();
  ‣ [bloqueante] procesos de recepcion se bloquean
   hasta que un mensaje llegue.
                  Lic. Jorge Guerra Guerra                                        22
Generated by Foxit PDF Creator © Foxit Software
                               http://www.foxitsoftware.com For evaluation only.




Primitivas de funcion para comunicación entre procesos




                    Lic. Jorge Guerra Guerra                                       23
Generated by Foxit PDF Creator © Foxit Software
                                http://www.foxitsoftware.com For evaluation only.




Algoritmo: Paso de Mensajes
Los modelos de comunicación basados en cliente-
servidor con paso de mensajes responden al
esqueleto:
msg        CLIENTE                                SERVIDOR                          msg

 Send(msg)                                                    Receive(msg)
                              msg


Mensaje msg,reply;
                                        Mensaje op,ack;
msg=<dato a trasmitir>
                                        receive(op);
send(msg);
                                        if(validOp(op))
receive(reply);
                                          ack=<operación OK>
if(isOK(reply))
                                        else
  <operación correcto>
                                          ack=<operación ERROR>
else
                                        send(ack);
  <error en operación>
                                        ...
...

                     Lic. Jorge Guerra Guerra                                             24
Generated by Foxit PDF Creator © Foxit Software
                                        http://www.foxitsoftware.com For evaluation only.




• Direcciones IP
Las direcciones IP son una serie de cuatro
cifras 0..255 (4 bytes, 32 bits) separadas por puntos.
Existe una dirección IP especial: 127.0.0.1 que referencia siempre
   nuestra máquina local. Por ello, tiene asociado el nombre "localhost".
Rangos reservados:
  192.168.0.0 .. 192.168.0.255
  192.168.1.0 .. 192.168.1.255




                            Lic. Jorge Guerra Guerra                                        25
Generated by Foxit PDF Creator © Foxit Software
                                              http://www.foxitsoftware.com For evaluation only.




Puerto

Código de identificación que generalmente está
asignado de antemano por el fabricante de la
aplicación que genera el proceso


FTP (21)               WWW(80)                 IMAP(143)              POP3(110)
SMTP(25)               SSH(22)                 TeInet(23)             MysqI(3306)
Observación: Los puertos del 1 al 1024 están reservados para el Sistema Operativo, por lo que
los demás se pueden usar para cualquier aplicación.




                                  Lic. Jorge Guerra Guerra                                        26
Generated by Foxit PDF Creator © Foxit Software
                                 http://www.foxitsoftware.com For evaluation only.




Las capas TCP/IP

                mail, file transfer, web
Application                                                            Application


                      tcp, udp
 Transport                                                              Transport
                               ip
  Internet       Internet               Internet                          Internet



Media access   Media access         Media access                     Media access


                     Lic. Jorge Guerra Guerra                                        27
Generated by Foxit PDF Creator © Foxit Software
                                http://www.foxitsoftware.com For evaluation only.




Capas, Protocolos y Mensajes

Application                   M                                                     M



 Transport           Ht       M                                          Ht         M


  Internet        Hi Ht       M                                  Hi Ht              M



Media access   Hm Hi Ht       M                         Hm Hi Ht                    M


                    Lic. Jorge Guerra Guerra                                            28
Generated by Foxit PDF Creator © Foxit Software
                          http://www.foxitsoftware.com For evaluation only.




Representacion del modelo TCP/IP




              Lic. Jorge Guerra Guerra                                        29
Generated by Foxit PDF Creator © Foxit Software
                       http://www.foxitsoftware.com For evaluation only.




Protocolos en TCP/IP




           Lic. Jorge Guerra Guerra                                        30
Generated by Foxit PDF Creator © Foxit Software
                              http://www.foxitsoftware.com For evaluation only.




Capa de transporte
La capa de transporte tiene la misión de
 establecer la forma de enviar el mensaje
 producido en la capa de aplicación, para ello
 establece las siguientes operaciones:
   La división del mensaje a enviar en unidades
   más pequeñas denominadas paquetes.
  En el proceso emisor estos paquetes serán
   enviados mediante un criterio de transmisión
   determinado con destino al proceso receptor.
   En el proceso receptor la operación consiste en
   recuperar los paquetes recibidos y mediante un
   algoritmo de reconstrucción regenerar el
   mensaje original.
                  Lic. Jorge Guerra Guerra                                        31
Generated by Foxit PDF Creator © Foxit Software
                                http://www.foxitsoftware.com For evaluation only.




Tipos de servicios en Capa de transporte
 Servicios orientados a conexión
    envío de paquetes en forma secuencial
    camino o ruta de envío predefinida entre
     cliente/servidor (stream)
    capacidad de retransmisión
    es confiable y es poco probable la perdida de
     paquetes
    el algoritmo de recuperación del mensaje
     recibido es sencillo




                    Lic. Jorge Guerra Guerra                                        32
Generated by Foxit PDF Creator © Foxit Software
                              http://www.foxitsoftware.com For evaluation only.




Tipos de servicios en Capa de transporte

Servicios orientados a no conexión
  No hay camino predeterminado entre cliente y
   servidor
  La transmisión de los mensajes es de tipo
   paralela o simultánea
  Cada paquete toma su propio camino para llegar
   a su destino
  Es poco confiable
  El algoritmo de recuperación del mensajes es
   más complejo utilizando para ello un algoritmo
   de ordenamiento

                  Lic. Jorge Guerra Guerra                                        33
Generated by Foxit PDF Creator © Foxit Software
                             http://www.foxitsoftware.com For evaluation only.




Datagramas
En Internet, la información se transmite
mediante datagramas. La información se
divide en paquetes, denominados
datagramas IP.
Cada paquete puede seguir un camino
diferente desde el origen hasta el
destino, pueden llegar en distinto orden
de cuando se enviaron, o no llegar.


                 Lic. Jorge Guerra Guerra                                        34
Generated by Foxit PDF Creator © Foxit Software
                         http://www.foxitsoftware.com For evaluation only.




TCP y UDP para Cliente / Servidor


                                                     request

                                                   response


                                                     UDP




      TCP                                      T/TCP

              Lic. Jorge Guerra Guerra                                       35
Generated by Foxit PDF Creator © Foxit Software
                            http://www.foxitsoftware.com For evaluation only.




Socket
Se considera como un extremo de una
 conexión de comunicación entre dos
 computadoras. Por otro lado, si lo vemos
 del punto de vista de la programación un
 socket representa el mecanismo para
 transferir datos de una computadora a otra




                Lic. Jorge Guerra Guerra                                        36
Generated by Foxit PDF Creator © Foxit Software
                       http://www.foxitsoftware.com For evaluation only.




Como funciona el socket




           Lic. Jorge Guerra Guerra                                        37
Generated by Foxit PDF Creator © Foxit Software
                        http://www.foxitsoftware.com For evaluation only.




Socket dentro del modelo TCP/IP




             Lic. Jorge Guerra Guerra                                       38
Generated by Foxit PDF Creator © Foxit Software
                             http://www.foxitsoftware.com For evaluation only.




Atributos de un socket
Dominio: Especifica el medio de
 comunicación de la red que el socket va a
 utilizar
Tipo: Define las características de la
 comunicación entre procesos en la que es
 usado un socket, es decir el tipo de
 comunicación que se realizara entre cliente
 y servidor.
Protocolo: La capa de transporte
 proporciona el protocolo necesario para el
 uso del socket.
                 Lic. Jorge Guerra Guerra                                        39
Generated by Foxit PDF Creator © Foxit Software
                          http://www.foxitsoftware.com For evaluation only.




Tipos de Socket
Socket UDP
Socket TCP
Socket Raw
Socket SeqSocket




              Lic. Jorge Guerra Guerra                                        40
Generated by Foxit PDF Creator © Foxit Software
                      http://www.foxitsoftware.com For evaluation only.




Flujograma de sockets UDP




           Lic. Jorge Guerra Guerra                                       41
Generated by Foxit PDF Creator © Foxit Software
                      http://www.foxitsoftware.com For evaluation only.




Flujograma de sockets TCP




           Lic. Jorge Guerra Guerra                                       42
Generated by Foxit PDF Creator © Foxit Software
                               http://www.foxitsoftware.com For evaluation only.




Sockets en Java
 Engloba en objetos cada una de las estructuras de
  la comunicación. Las funciones se tratan como
  métodos de dichos objetos:
    InetAddress
    Socket DatagramSocket ServerSocket
    Connection
    DatagramPacket


 Define un nivel de abstracción mayor,
  proporcionando constructores que realizan parte
  del proceso de inicialización de los elementos.


                   Lic. Jorge Guerra Guerra                                        43
Generated by Foxit PDF Creator © Foxit Software
                           http://www.foxitsoftware.com For evaluation only.




Clases de comunicaciones-paquete java.net




               Lic. Jorge Guerra Guerra                                        44
Generated by Foxit PDF Creator © Foxit Software
                                  http://www.foxitsoftware.com For evaluation only.




Sockets en Java(Direccionamiento)
Las direcciones de Internet se asocian a
objetos de la clase InetAddress. Estos
objetos se construyen en base a métodos
estáticos de la clase:

  static InetAddress getByName(String
   host)
     Obtiene una dirección IP en base al nombre (dominios o
      números).
  static InetAddress getLocalHost()
     Obtiene la dirección IP local.


                      Lic. Jorge Guerra Guerra                                        45
Generated by Foxit PDF Creator © Foxit Software
                           http://www.foxitsoftware.com For evaluation only.




Sockets en Java (UDP)
La información a trasmitir se asocia a un
objetos de la clase DatagramPacket. Estos
objetos se construyen con un array de bytes
a transmitir:




                Lic. Jorge Guerra Guerra                                       46
Generated by Foxit PDF Creator © Foxit Software
            http://www.foxitsoftware.com For evaluation only.




Lic. Jorge Guerra Guerra                                        47
Generated by Foxit PDF Creator © Foxit Software
                                   http://www.foxitsoftware.com For evaluation only.




Sockets en Java (UDP)
La comunicación vía UDP se realiza por medio de
objetos de la clase DatagramSocket.
    DatagramSocket(int puerto,InetAddress dir)
      Crea un socket UDP con un bind a la dirección y puerto
      indicados. Dirección y puerto son opcionales (se elige uno
      libre).
    void send(DatagramPacket paquete)
      Envía el datagrama a la dirección del paquete.
    void receive(DatagramPacket paquete)
      Se bloquea hasta la recepción del datagrama.




                        Lic. Jorge Guerra Guerra                                       48
Generated by Foxit PDF Creator © Foxit Software
                                     http://www.foxitsoftware.com For evaluation only.




Sockets en Java (TCP)
Se utilizan dos clases de socket (una para el cliente y
otra para socket servidor).
Para el cliente:
    Socket(InetAddress dir, int puerto)
      Crea un socket stream para el cliente conectado con la
       dirección y puerto indicados. Existen otros constructores con
       diferentes argumentos.
Para el servidor:
    ServerSocket(int puerto)
      Crea un socket stream para el servidor. Existen otros
       constructores con diferentes argumentos.
    Socket accept()
       Prepara la conexión y se bloquea a espera de conexiones.
       Equivale a listen y accept de BSD Sockets. Devuelve un
       Socket.


                         Lic. Jorge Guerra Guerra                                        49
Generated by Foxit PDF Creator © Foxit Software
                       http://www.foxitsoftware.com For evaluation only.




Ejemplo de comunicación TCP




           Lic. Jorge Guerra Guerra                                        50
Generated by Foxit PDF Creator © Foxit Software
                      http://www.foxitsoftware.com For evaluation only.




Streams TCP




          Lic. Jorge Guerra Guerra                                        51
Generated by Foxit PDF Creator © Foxit Software
                       http://www.foxitsoftware.com For evaluation only.




Transferencias de datos TCP




           Lic. Jorge Guerra Guerra                                        52
Generated by Foxit PDF Creator © Foxit Software
                             http://www.foxitsoftware.com For evaluation only.




Usando InputStream y OutputStream en TCP




                 Lic. Jorge Guerra Guerra                                        53
Generated by Foxit PDF Creator © Foxit Software
                            http://www.foxitsoftware.com For evaluation only.




Cliente-servidor con sockets streams de Java




                Lic. Jorge Guerra Guerra                                        54
Generated by Foxit PDF Creator © Foxit Software
                              http://www.foxitsoftware.com For evaluation only.




Clases URL / URLConnection

Estas clases tienen la misma funcionalidad
que las clases Socket y ServerSocket, pero
son más sencillas de utilizar (más alto nivel).
Nos permiten establecer una conexión con
cualquier recurso de Internet y descargar su
contenido, así como conectar dos
ordenadores y transferir datos mediante
flujos (streams).


                  Lic. Jorge Guerra Guerra                                        55
Generated by Foxit PDF Creator © Foxit Software
           http://www.foxitsoftware.com For evaluation only.




Lic. Jorge Guerra Guerra                                       56
Generated by Foxit PDF Creator © Foxit Software
           http://www.foxitsoftware.com For evaluation only.




Sockets en .NET



 Implementación en C#
Generated by Foxit PDF Creator © Foxit Software
                            http://www.foxitsoftware.com For evaluation only.




Absolute Basics
All socket services in System.Net.Sockets
 namespace
System.Net provides services for DNS, IP
 Addresses, HTTP services etc




                Lic. Jorge Guerra Guerra                                        58
Generated by Foxit PDF Creator © Foxit Software
                                        http://www.foxitsoftware.com For evaluation only.




    Sockets TCP (lado servidor)
    La creación de un servidor TCP no resulta
     demasiado complicada. En primer lugar,
     debemos establecer el socket a través del
     cual el servidor aceptará peticiones, para lo
     cual nos hace falta una dirección IP (la
     correspondiente a la máquina en la que se
     ejecute el servidor) y un número de puerto
     TCP:
// DNS: nombre del host -> dirección IP
 IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
 // Puerto
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);
                            Lic. Jorge Guerra Guerra                                        59
Generated by Foxit PDF Creator © Foxit Software
                                     http://www.foxitsoftware.com For evaluation only.




Creando un Socket
Must specify address family, socket type
 and protocol type
Address Family: InterNetwork (Addr for
 IP Ver 4).. InterNetworkV6 (ver 6)
Socket Type: Stream, Dgram, Raw etc
Protocol Type: Tcp, Udp
Socket s = new Socket(AddressFamily.InterNetwork,
   SocketType.Stream, ProtocolType.Tcp);




                         Lic. Jorge Guerra Guerra                                        60
Generated by Foxit PDF Creator © Foxit Software
                                    http://www.foxitsoftware.com For evaluation only.




 Sockets TCP (lado servidor)
  Una vez que tenemos el puerto a través del cual aceptaremos
   conexiones, creamos físicamente el socket y lo configuramos
   para que pueda aceptar conexiones:
  El método Listen pone el socket en estado de escucha y su
   parámetro establece la longitud máxima de la cola de
   conexiones pendientes que puede tener el servidor antes de
   empezar a rechazar conexiones [backlog, en inglés].


Socket listener = new Socket (
AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp );
listener.Bind(localEndPoint);
listener.Listen(100);

                        Lic. Jorge Guerra Guerra                                        61
Generated by Foxit PDF Creator © Foxit Software
                                   http://www.foxitsoftware.com For evaluation only.




Sockets TCP (lado servidor)
 A continuación, nos quedamos esperando a que un cliente
  establezca una conexión con nuestro servidor. El método
  Accept extrae la primera petición de la cola asociada al
  servidor y devuelve un nuevo socket que podemos utilizar
  para comunicarnos con el cliente:
    Socket handler = listener.Accept();

 En este caso hemos utilizado los sockets de la forma
  tradicional (la misma que originalmente se ideó en la
  distribución BSD de UNIX): el servidor se queda esperando
  al llamar a Accept hasta que llegue alguna petición. En
  Windows, no obstante, también podríamos haber utilizado
  sockets de forma asíncrona, para evitar que el servidor
  quede bloqueado indefinidamente.

                       Lic. Jorge Guerra Guerra                                        62
Generated by Foxit PDF Creator © Foxit Software
                             http://www.foxitsoftware.com For evaluation only.




Next Step..Creating a data pipe
What we need… IP address and port
 number 162.312.324.400:8000
What we have… a more user friendly web
 address

What we need is known in C# as an
 Endpoint…there is an Endpoint Class for
 each family, for IP addresses the class is
 known as IPEndPoint



                 Lic. Jorge Guerra Guerra                                        63
Generated by Foxit PDF Creator © Foxit Software
                                       http://www.foxitsoftware.com For evaluation only.




 Sockets TCP (lado servidor)
  Cuando la llamada a Accept devuelve un nuevo socket, entonces
   podemos realizar la tarea para la cual hayamos diseñado nuestro
   servidor. Por ejemplo, podemos construir un servidor que haga
    de eco, devolviéndole al cliente lo mismo que éste le envíe:
byte[] bytes = new byte[1024];
 int count;
String data = "";
do {
count = handler.Receive(bytes);
data += System.Text.Encoding.ASCII.GetString(bytes,0,count);
 } while ( data.IndexOf("<FIN>") == -1 );
// Eco
Console.WriteLine( "Texto recibido received : {0}", data);
byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);
 handler.Send(msg);
 handler.Shutdown(SocketShutdown.Both);
 handler.Close();
                           Lic. Jorge Guerra Guerra                                        64
Generated by Foxit PDF Creator © Foxit Software
                                            http://www.foxitsoftware.com For evaluation only.




Creating the EndPoint...
 Give user friendly address to Dns.Resolve
 Returns a list of addresses… select one
 Use the address to create the EndPoint

IPHostEntry iphost= Dns.Resolve (“http://ist.psu.edu”);
IPAddress ip=iphost.AddressList[0];
IPEndPoint EndPoint=new IPEndPoint(ip, portnumber);
s.Connect(EndPoint)

(note that port number must be Int16..use System.Convert.ToInt16)




                                Lic. Jorge Guerra Guerra                                        65
Generated by Foxit PDF Creator © Foxit Software
                                      http://www.foxitsoftware.com For evaluation only.




Sending Data
The Send method can send data through a
 CONNECTED socket


byte[] msg = System.Text.Encoding.ASCII.GetBytes("This is a test");
int bytesSent = s.Send(msg);




                          Lic. Jorge Guerra Guerra                                        66
Generated by Foxit PDF Creator © Foxit Software
                                     http://www.foxitsoftware.com For evaluation only.




Receiving Data
We use the Receive method
 (similar to Send)

byte[] bytes = new byte[1024];
s.Receive(bytes);

//Displays to the screen.
Console.WriteLine(Encoding.ASCII.GetString(bytes));




                         Lic. Jorge Guerra Guerra                                        67
Generated by Foxit PDF Creator © Foxit Software
                                   http://www.foxitsoftware.com For evaluation only.




TCPListener
La plataforma .NET incluye una clase
 auxiliar denominada TcpListener que
 simplifica algo la creación de servidores
 TCP, si bien internamente se sigue haciendo
 lo mismo:
        TcpListener listener = new TcpListener(11000);
        listener.Start();
        TcpClient client = listener.AcceptTcpClient();
         ...
La única diferencia reseñable es que ahora,
 en vez de utilizar Send y Receive, el objeto
 de tipo TcpClient dispone de un stream a
 través del cual leemos y escribimos datos.
                       Lic. Jorge Guerra Guerra                                        68
Generated by Foxit PDF Creator © Foxit Software
                                                http://www.foxitsoftware.com For evaluation only.




  Sockets TCP (lado cliente)
 string mensaje = "Hola... <FIN>";
 string respuesta;
 Byte[] SendBytes = Encoding.ASCII.GetBytes(mensaje);
 Byte[] RecvBytes = new Byte[256];
 int bytes;
 // DNS
IPAddress address = Dns.Resolve("localhost").AddressList[0];
 // EndPoint
IPEndPoint EPhost = new IPEndPoint(address, 11000);
// Socket
Socket socket = new Socket ( AddressFamily.InterNetwork,
 SocketType.Stream, ProtocolType.Tcp );
// Conexión
 try {
    socket.Connect (EPhost);
    socket.Send( SendBytes, SendBytes.Length, SocketFlags.None);
    bytes = socket.Receive ( RecvBytes, RecvBytes.Length, SocketFlags.None);
   respuesta = Encoding.ASCII.GetString (RecvBytes, 0, bytes);
     while (bytes > 0) {
        bytes = socket.Receive ( RecvBytes, RecvBytes.Length, SocketFlags.None);
        respuesta += Encoding.ASCII.GetString (RecvBytes, 0, bytes);
     }
       Console.WriteLine(respuesta);
} catch (Exception error) {
     Console.WriteLine("ERROR - "+error); Jorge Guerra Guerra
                                        Lic.                                                        69
}
Generated by Foxit PDF Creator © Foxit Software
                                       http://www.foxitsoftware.com For evaluation only.




TCPClient
string mensaje = "Hola... <FIN>";
 string respuesta;
 Byte[] SendBytes = Encoding.ASCII.GetBytes(mensaje);
 Byte[] RecvBytes = new Byte[256];
 int bytes;
// Cliente
TCP TcpClient client = new TcpClient();
 NetworkStream stream;
 // Conexión
 try {
  client.Connect("localhost",11000);
  stream = client.GetStream();
  stream.Write ( SendBytes, 0,SendBytes.Length );
  bytes = stream.Read ( RecvBytes, 0, RecvBytes.Length);
  respuesta = Encoding.ASCII.GetString (RecvBytes, 0, bytes);
    while (bytes > 0) {
     bytes = stream.Read ( RecvBytes, 0, RecvBytes.Length );
    respuesta += Encoding.ASCII.GetString (RecvBytes, 0, bytes);
    } Console.WriteLine(respuesta);
  } catch (Exception error) {
     Console.WriteLine("ERROR - "+error);
 }                               Lic. Jorge Guerra Guerra                                  70
Generated by Foxit PDF Creator © Foxit Software
                                   http://www.foxitsoftware.com For evaluation only.




  Sockets UDP (fragmento de
  codigo)
 IPAddress broadcastAddress = IPAddress.Parse("150.214.191.255");
 string host = Dns.GetHostName();
  IPAddress localAddress = Dns.GetHostByName(host).AddressList[0];
 int Port = 11000;
Thread listener;
 // Hebra empleada
 // para recibir mensajes
 bool fin = false;
 // Flag empleado para terminar la ejecución de la hebra Arranque
private void ChatForm_Load (object sender, System.EventArgs e) {
ThreadStart start = new ThreadStart(Listener);
listener = new Thread(start);
listener.Start(); }
 private void Listener() {
 while (!fin) { ... }
}
// Detención
private void ChatForm_Closed (object sender, System.EventArgs e) {
fin = true; Send("FIN");      Lic. Jorge Guerra Guerra                                 71
 listener.Join(); }
Generated by Foxit PDF Creator © Foxit Software
                                  http://www.foxitsoftware.com For evaluation only.




  Envio de mensajes UDP
private void Send (string message) {
 IPEndPoint ep;
Socket socket;
 ep = new IPEndPoint(broadcastAddress, Port);
 socket = new Socket ( localAddress.AddressFamily,
SocketType.Dgram, ProtocolType.Udp);
byte[] msg = Encoding.Default.GetBytes( message );
 try {
socket.SendTo ( msg, 0, msg.Length, SocketFlags.None, ep);
 } catch (Exception e) {
MessageBox.Show( e.ToString(), "Error enviando datos");
 }
}

                      Lic. Jorge Guerra Guerra                                        72
Generated by Foxit PDF Creator © Foxit Software
                                     http://www.foxitsoftware.com For evaluation only.




Recepción Socket UDP
private void Listener() {
 IPEndPoint localEP;
Socket socket;
localEP = new IPEndPoint(localAddress, Port);
 socket = new Socket ( localAddress.AddressFamily,
 SocketType.Dgram, ProtocolType.Udp);
 try{
 socket.Bind(localEP);
   while (!fin) {
 // Buffer para recibir el mensaje
 byte[] buffer = new byte[1024];
 // IPEndPoint para identificar al emisor
IPEndPoint sender = new IPEndPoint(IPAddress.Any,0);
 EndPoint remoteEP = (EndPoint) sender;
 // Recepción del mensaje (ojo: bloquea al receptor)
socket.ReceiveFrom (buffer, ref remoteEP);
 string mensaje = Encoding.Default.GetString(buffer);
 textBoxDialog.AppendText(mensaje); }
 } catch (Exception e) {
MessageBox.Show( e.ToString(), Guerra Guerra
                           Lic. Jorge "Error recibiendo datos"); } }                     73
Generated by Foxit PDF Creator © Foxit Software
                                    http://www.foxitsoftware.com For evaluation only.




Shutdown sockets
The SocketShutdown enumeration defines
 constants that indicate whether the socket
 should be closed for sending, for receiving,
 or for both.
Call the Close method to free all managed
 and unmanaged resources associated with
 the Socket
s.Shutdown(SocketShutdown.Both);
s.Close();




                        Lic. Jorge Guerra Guerra                                        74

Mais conteúdo relacionado

Mais procurados

Diseño Base Datos
Diseño Base DatosDiseño Base Datos
Diseño Base Datosjhonnyjpo
 
Presentacion Ftp
Presentacion FtpPresentacion Ftp
Presentacion Ftpalexmerono
 
Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtualkerlly villon
 
Creación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracerCreación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracerJenny Lophezz
 
Sistemas Operativos de Cliente y Servidor
Sistemas Operativos de Cliente y ServidorSistemas Operativos de Cliente y Servidor
Sistemas Operativos de Cliente y ServidorMaria Garcia
 
Cuadro comparativo de los medios de transmisión guiados y no guiados
Cuadro comparativo de los medios de transmisión guiados y no guiadosCuadro comparativo de los medios de transmisión guiados y no guiados
Cuadro comparativo de los medios de transmisión guiados y no guiadosJorge William
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acidJefer Lee Parra
 
Clasificacion de los protocolos de enrutamiento
Clasificacion de los protocolos de enrutamientoClasificacion de los protocolos de enrutamiento
Clasificacion de los protocolos de enrutamientoOscar
 
Ambientes de servicios, negocios, industria y comercio electrónico
Ambientes de servicios, negocios, industria y comercio electrónico Ambientes de servicios, negocios, industria y comercio electrónico
Ambientes de servicios, negocios, industria y comercio electrónico Carlos Rangel Hernández
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMMari Cruz
 
Cuadro comparativo de manejadores de la base de datos
Cuadro comparativo de manejadores de la base de datos Cuadro comparativo de manejadores de la base de datos
Cuadro comparativo de manejadores de la base de datos Maria Garcia
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores JUANR1022
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas Distribuidosdrianda
 
Capa de enlace de datos
Capa de enlace de datosCapa de enlace de datos
Capa de enlace de datosJorge Arroyo
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...Hugo Alberto Rivera Diaz
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UMLramirezjaime
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesossueich
 
Capas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaCapas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaaeross
 

Mais procurados (20)

Diseño Base Datos
Diseño Base DatosDiseño Base Datos
Diseño Base Datos
 
Presentacion Ftp
Presentacion FtpPresentacion Ftp
Presentacion Ftp
 
Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtual
 
Creación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracerCreación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracer
 
Sistemas Operativos de Cliente y Servidor
Sistemas Operativos de Cliente y ServidorSistemas Operativos de Cliente y Servidor
Sistemas Operativos de Cliente y Servidor
 
Cuadro comparativo de los medios de transmisión guiados y no guiados
Cuadro comparativo de los medios de transmisión guiados y no guiadosCuadro comparativo de los medios de transmisión guiados y no guiados
Cuadro comparativo de los medios de transmisión guiados y no guiados
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acid
 
Clasificacion de los protocolos de enrutamiento
Clasificacion de los protocolos de enrutamientoClasificacion de los protocolos de enrutamiento
Clasificacion de los protocolos de enrutamiento
 
Ambientes de servicios, negocios, industria y comercio electrónico
Ambientes de servicios, negocios, industria y comercio electrónico Ambientes de servicios, negocios, industria y comercio electrónico
Ambientes de servicios, negocios, industria y comercio electrónico
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUM
 
Cuadro comparativo de manejadores de la base de datos
Cuadro comparativo de manejadores de la base de datos Cuadro comparativo de manejadores de la base de datos
Cuadro comparativo de manejadores de la base de datos
 
Sistema Operativo Distribuido
Sistema Operativo DistribuidoSistema Operativo Distribuido
Sistema Operativo Distribuido
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas Distribuidos
 
Protocolo arp
Protocolo arpProtocolo arp
Protocolo arp
 
Capa de enlace de datos
Capa de enlace de datosCapa de enlace de datos
Capa de enlace de datos
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UML
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesos
 
Capas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaCapas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capa
 

Destaque

Procesos - Sistemas Operativos
Procesos - Sistemas OperativosProcesos - Sistemas Operativos
Procesos - Sistemas Operativosrichardstalin
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos Cristhian Rosales
 
Gestores de descarga
Gestores de descargaGestores de descarga
Gestores de descargayanciflorez
 
Protocolos de comunicación
Protocolos de comunicaciónProtocolos de comunicación
Protocolos de comunicaciónNohemi Alvarez
 
Comunicación entre Procesos - IPC
Comunicación entre Procesos - IPCComunicación entre Procesos - IPC
Comunicación entre Procesos - IPCmartadans
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosLuis Yallerco
 
Diapositivas de las capas del modelo osi.
Diapositivas de  las capas del modelo osi.Diapositivas de  las capas del modelo osi.
Diapositivas de las capas del modelo osi.Elia Archibold
 
Diapositivas modelo osi
Diapositivas modelo osiDiapositivas modelo osi
Diapositivas modelo osicarito6626
 
Presentacion modelo osi
Presentacion modelo osiPresentacion modelo osi
Presentacion modelo osielyoarabia
 
Diapositiva Modelo Osi
Diapositiva Modelo OsiDiapositiva Modelo Osi
Diapositiva Modelo OsiMEKY04
 
Definiciones Sistemas Distribuidos
Definiciones Sistemas DistribuidosDefiniciones Sistemas Distribuidos
Definiciones Sistemas DistribuidosJorge Guerra
 
Ensayo de Comunicacion (Maria Garcia)
Ensayo de Comunicacion (Maria Garcia)Ensayo de Comunicacion (Maria Garcia)
Ensayo de Comunicacion (Maria Garcia)Maria Garcia
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSIComdat4
 
Diagrama de flujo
Diagrama de flujo Diagrama de flujo
Diagrama de flujo Alan Ponce
 
Modelos de comunicacion mapa conceptual
Modelos de comunicacion  mapa conceptualModelos de comunicacion  mapa conceptual
Modelos de comunicacion mapa conceptualMonica_Molina
 

Destaque (20)

Procesos - Sistemas Operativos
Procesos - Sistemas OperativosProcesos - Sistemas Operativos
Procesos - Sistemas Operativos
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos
 
Gestores de descarga
Gestores de descargaGestores de descarga
Gestores de descarga
 
Gestores de descarga
Gestores de descargaGestores de descarga
Gestores de descarga
 
Dos yogures y un hilo pdf
Dos yogures y un hilo pdfDos yogures y un hilo pdf
Dos yogures y un hilo pdf
 
Protocolos de comunicación
Protocolos de comunicaciónProtocolos de comunicación
Protocolos de comunicación
 
Comunicación entre Procesos - IPC
Comunicación entre Procesos - IPCComunicación entre Procesos - IPC
Comunicación entre Procesos - IPC
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Caracteristicas de Sistemas Hipermediales
Caracteristicas de Sistemas HipermedialesCaracteristicas de Sistemas Hipermediales
Caracteristicas de Sistemas Hipermediales
 
Diapositivas de las capas del modelo osi.
Diapositivas de  las capas del modelo osi.Diapositivas de  las capas del modelo osi.
Diapositivas de las capas del modelo osi.
 
Diapositivas modelo osi
Diapositivas modelo osiDiapositivas modelo osi
Diapositivas modelo osi
 
Presentacion modelo osi
Presentacion modelo osiPresentacion modelo osi
Presentacion modelo osi
 
Diapositiva Modelo Osi
Diapositiva Modelo OsiDiapositiva Modelo Osi
Diapositiva Modelo Osi
 
Definiciones Sistemas Distribuidos
Definiciones Sistemas DistribuidosDefiniciones Sistemas Distribuidos
Definiciones Sistemas Distribuidos
 
Ensayo de Comunicacion (Maria Garcia)
Ensayo de Comunicacion (Maria Garcia)Ensayo de Comunicacion (Maria Garcia)
Ensayo de Comunicacion (Maria Garcia)
 
Diapositiva De Osi
Diapositiva De OsiDiapositiva De Osi
Diapositiva De Osi
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
 
Diagrama de flujo
Diagrama de flujo Diagrama de flujo
Diagrama de flujo
 
Modelos de comunicacion mapa conceptual
Modelos de comunicacion  mapa conceptualModelos de comunicacion  mapa conceptual
Modelos de comunicacion mapa conceptual
 
Mapa mental
Mapa mentalMapa mental
Mapa mental
 

Semelhante a Comunicacion entre procesos SSDD

Comunicación Interactiva
Comunicación InteractivaComunicación Interactiva
Comunicación InteractivaReimar Carmona
 
Orcobot - Avances Segundo Parcial
Orcobot - Avances Segundo ParcialOrcobot - Avances Segundo Parcial
Orcobot - Avances Segundo Parcialorcobot
 
Expocicion
ExpocicionExpocicion
ExpocicionDREECTOR
 
Expocicion
ExpocicionExpocicion
Expocicionmurycio
 
Expocicion
ExpocicionExpocicion
Expociciondocburbu
 
Convertirdor+de+pdf...
Convertirdor+de+pdf...Convertirdor+de+pdf...
Convertirdor+de+pdf...paolove
 
20100623 comunicaciones-unificadas-avatar-v2
20100623 comunicaciones-unificadas-avatar-v220100623 comunicaciones-unificadas-avatar-v2
20100623 comunicaciones-unificadas-avatar-v2campus party
 
Procesamiento de datos ii luis castellanos (3)
Procesamiento de datos ii   luis castellanos (3)Procesamiento de datos ii   luis castellanos (3)
Procesamiento de datos ii luis castellanos (3)Luis R Castellanos
 
Comunicaciones Unificadas con Software Libre
Comunicaciones Unificadas con Software LibreComunicaciones Unificadas con Software Libre
Comunicaciones Unificadas con Software LibreAlejandro Rios Peña
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisQuobis
 
Presentación multimedia
Presentación multimediaPresentación multimedia
Presentación multimediawilmarvallejo
 
LP II clase04 - Reportes
LP II clase04 - ReportesLP II clase04 - Reportes
LP II clase04 - ReportesAngelDX
 
II Llampageek: Uso corporativo del software libre
II Llampageek: Uso corporativo del software libreII Llampageek: Uso corporativo del software libre
II Llampageek: Uso corporativo del software libreEtiCAGNU
 
Adapactión de contenido web a la lengua de signos desde la perspectiva del so...
Adapactión de contenido web a la lengua de signos desde la perspectiva del so...Adapactión de contenido web a la lengua de signos desde la perspectiva del so...
Adapactión de contenido web a la lengua de signos desde la perspectiva del so...guestc92423
 
Informe practica1 kiaraescobar
Informe practica1 kiaraescobarInforme practica1 kiaraescobar
Informe practica1 kiaraescobarFranklin Alarza
 

Semelhante a Comunicacion entre procesos SSDD (20)

Comunicación Interactiva
Comunicación InteractivaComunicación Interactiva
Comunicación Interactiva
 
Orcobot - Avances Segundo Parcial
Orcobot - Avances Segundo ParcialOrcobot - Avances Segundo Parcial
Orcobot - Avances Segundo Parcial
 
Expocicion
ExpocicionExpocicion
Expocicion
 
Expocicion
ExpocicionExpocicion
Expocicion
 
Expocicion
ExpocicionExpocicion
Expocicion
 
Expocicion
ExpocicionExpocicion
Expocicion
 
Expocicion
ExpocicionExpocicion
Expocicion
 
Convertirdor+de+pdf...
Convertirdor+de+pdf...Convertirdor+de+pdf...
Convertirdor+de+pdf...
 
20100623 comunicaciones-unificadas-avatar-v2
20100623 comunicaciones-unificadas-avatar-v220100623 comunicaciones-unificadas-avatar-v2
20100623 comunicaciones-unificadas-avatar-v2
 
Procesamiento de datos ii luis castellanos (3)
Procesamiento de datos ii   luis castellanos (3)Procesamiento de datos ii   luis castellanos (3)
Procesamiento de datos ii luis castellanos (3)
 
Comunicaciones Unificadas con Software Libre
Comunicaciones Unificadas con Software LibreComunicaciones Unificadas con Software Libre
Comunicaciones Unificadas con Software Libre
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - Quobis
 
Kubuntu - Aplicaciones
Kubuntu - AplicacionesKubuntu - Aplicaciones
Kubuntu - Aplicaciones
 
Presentación proyecto fin de carrera
Presentación proyecto fin de carreraPresentación proyecto fin de carrera
Presentación proyecto fin de carrera
 
Presentación multimedia
Presentación multimediaPresentación multimedia
Presentación multimedia
 
LP II clase04 - Reportes
LP II clase04 - ReportesLP II clase04 - Reportes
LP II clase04 - Reportes
 
II Llampageek: Uso corporativo del software libre
II Llampageek: Uso corporativo del software libreII Llampageek: Uso corporativo del software libre
II Llampageek: Uso corporativo del software libre
 
Ginga ncl-lua
Ginga ncl-luaGinga ncl-lua
Ginga ncl-lua
 
Adapactión de contenido web a la lengua de signos desde la perspectiva del so...
Adapactión de contenido web a la lengua de signos desde la perspectiva del so...Adapactión de contenido web a la lengua de signos desde la perspectiva del so...
Adapactión de contenido web a la lengua de signos desde la perspectiva del so...
 
Informe practica1 kiaraescobar
Informe practica1 kiaraescobarInforme practica1 kiaraescobar
Informe practica1 kiaraescobar
 

Mais de Jorge Guerra

Servicio de Nombramiento
Servicio de NombramientoServicio de Nombramiento
Servicio de NombramientoJorge Guerra
 
Implementaciones de Serv. Nombramiento
Implementaciones de Serv. NombramientoImplementaciones de Serv. Nombramiento
Implementaciones de Serv. NombramientoJorge Guerra
 
Tablas del lab 1 Gestion de Datos I
Tablas del lab 1 Gestion de Datos ITablas del lab 1 Gestion de Datos I
Tablas del lab 1 Gestion de Datos IJorge Guerra
 
Cloud Computing , caracteristicas 2011
Cloud Computing , caracteristicas 2011Cloud Computing , caracteristicas 2011
Cloud Computing , caracteristicas 2011Jorge Guerra
 
cloud computing alcances e implementacion
cloud computing alcances e implementacioncloud computing alcances e implementacion
cloud computing alcances e implementacionJorge Guerra
 
Base De Datos Distribuidas
Base De Datos DistribuidasBase De Datos Distribuidas
Base De Datos DistribuidasJorge Guerra
 

Mais de Jorge Guerra (6)

Servicio de Nombramiento
Servicio de NombramientoServicio de Nombramiento
Servicio de Nombramiento
 
Implementaciones de Serv. Nombramiento
Implementaciones de Serv. NombramientoImplementaciones de Serv. Nombramiento
Implementaciones de Serv. Nombramiento
 
Tablas del lab 1 Gestion de Datos I
Tablas del lab 1 Gestion de Datos ITablas del lab 1 Gestion de Datos I
Tablas del lab 1 Gestion de Datos I
 
Cloud Computing , caracteristicas 2011
Cloud Computing , caracteristicas 2011Cloud Computing , caracteristicas 2011
Cloud Computing , caracteristicas 2011
 
cloud computing alcances e implementacion
cloud computing alcances e implementacioncloud computing alcances e implementacion
cloud computing alcances e implementacion
 
Base De Datos Distribuidas
Base De Datos DistribuidasBase De Datos Distribuidas
Base De Datos Distribuidas
 

Último

El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 

Último (20)

El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 

Comunicacion entre procesos SSDD

  • 1. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Comunicacion entre procesos Lic. Jorge Guerra Guerra Mayo 2012
  • 2. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Comunicación entre procesos •Es la cooperación entre procesos para lograr un objetivo global. (Cada proceso hace su labor). •Dos Formas –Procesos locales –Procesos Remotos Lic. Jorge Guerra Guerra 2
  • 3. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Modalidades de interacción entre procesos Comunicación Unicast Comunicación multicast Lic. Jorge Guerra Guerra 3
  • 4. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Comunicación en Sistemas Distribuidos Red de comunicación es elemento fundamental para comunicación entre procesos. Dos modelos de comunicación entre procesos: Memoria compartida. zona común en que los mensajes podrán ser compartidos entre cliente y servidor , la base de datos distribuida es un ejemplo de uso. Lic. Jorge Guerra Guerra 4
  • 5. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 2 Memoria compartida Declaración independiente de variables Proceso A Proceso B Texto Texto Datos var2 Datos var1 2 Pila Segmento Pila de memoria compartida Lic. Jorge Guerra Guerra 5
  • 6. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Modelos de comunicación (cont) Paso de mensajes En este modelo el proceso cliente y el proceso servidor se encuentran en máquinas distintas y no tienen ningún elemento común entre ellos, por lo que solo se servirán del medio de comunicación para intercambiarse mensajes. Lic. Jorge Guerra Guerra 6
  • 7. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Paso de mensajes Permite resolver:  Exclusión mutua  Sincronizar un proceso que recibe un mensaje y otro que lo envía  Comunicación de datos entre espacios de memoria diferentes (mismo computador, diferentes computadores) Primitivas básicas:  send(destino, mensaje) envía un mensaje al proceso destino  receive(destino, mensaje) recibe un mensaje del proceso destino Lic. Jorge Guerra Guerra 7
  • 8. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Paso de mensajes Múltiples soluciones Aspectos de diseño  Tamaño del mensaje  Flujo de datos (unidireccional, bidireccional)  Nombrado  Directo  Indirecto (puertos, colas)  Sincronización (síncrono, asíncrono)  Almacenamiento Lic. Jorge Guerra Guerra 8
  • 9. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Uso de colas y puertos Proceso cliente Proceso cliente send Proceso cliente Proceso cliente receive send Puerto mensaje mensaje Cola de mensajes Comunicación con Comunicación con puertos colas de mensajes Lic. Jorge Guerra Guerra 9
  • 10. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Tipos de paso de mensajes Paso de mensajes puro Llamada a procedimientos remotos Invocación a métodos remotos Lic. Jorge Guerra Guerra 10
  • 11. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Arquitectura de comunicaciones: Modelo Cliente/Servidor Lic. Jorge Guerra Guerra 11
  • 12. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Modelo con proxy o cache Lic. Jorge Guerra Guerra 12
  • 13. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Modelo multicapa Lic. Jorge Guerra Guerra 13
  • 14. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Código móvil Lic. Jorge Guerra Guerra 14
  • 15. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Modelo peer-to-peer Lic. Jorge Guerra Guerra 15
  • 16. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Factores de Comunicación Los diferentes mecanismos de comunicación se caracterizan por los siguientes factores: Rendimiento: Latencia, ratio de transferencia, ancho de banda, ... Escalabilidad: Número de elementos activos. Fiabilidad: Pérdida de mensajes. Seguridad:Cifrado, certificación, ... Movilidad: Equipos móviles. Calidad de Servicio (QoS): Reserva y garantía de anchos de banda. Comunicación en grupo: Multicast. Lic. Jorge Guerra Guerra 16
  • 17. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Fundamentos de la comunicación entre procesos Procesos en diferentes maquinas. Se requiere: Una red de comunicaciones Lenguaje común de comunicaciones Protocolo de transporte Lic. Jorge Guerra Guerra 17
  • 18. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Niveles de Comunicación Lic. Jorge Guerra Guerra 18
  • 19. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Tipos de comunicacion Comunicación asíncrona - el remitente continúa inmediatamente después de enviar el mensaje, el mensaje se almacena en un búfer local. Comunicación Síncrona - el remitente está bloqueado hasta que el mensaje sea almacenado en un búfer del host receptor, o efectivamente sea entregado al receptor Lic. Jorge Guerra Guerra 19
  • 20. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Comunicación Síncrona VS Asíncrona • Una cola está asociado con cada destino del mensaje.  • Los procesos de envío causaran que los mensajes se añadan a colas remotas.  • Los procesos de recepción eliminaran los mensajes de las colas locales. La comunicación entre los procesos de envío y recepción puede ser sincrónica o asincrónica. Lic. Jorge Guerra Guerra 20
  • 21. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Comunicación Sincrona Los procesos de envio y recepcion se sincronizan en cada mensaje. En este caso, El send y receive son operaciones bloqueantes: cuando un send() es ejecutado, el proceso de envío está bloqueado hasta que la recepción correspondiente se emita; cada vez que una receive() es ejecutado,se bloquea el proceso de recepción hasta que llegue un mensaje. Lic. Jorge Guerra Guerra 21
  • 22. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Comunicación Asincrona • La operacion send() es no-bloqueante: ‣ el proceso de envío termina tan pronto como el mensaje ha sido copiado en un buffer local; ‣ la transmisión del mensaje se realiza en paralelo con el proceso de envío. • La operacion receive() puede ser bloqueante o no bloqueante: ‣ [no-bloqueante] El proceso de recepcion se realiza normalmente aun se haya ejecutado la operacion receive(); ‣ [bloqueante] procesos de recepcion se bloquean hasta que un mensaje llegue. Lic. Jorge Guerra Guerra 22
  • 23. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Primitivas de funcion para comunicación entre procesos Lic. Jorge Guerra Guerra 23
  • 24. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Algoritmo: Paso de Mensajes Los modelos de comunicación basados en cliente- servidor con paso de mensajes responden al esqueleto: msg CLIENTE SERVIDOR msg Send(msg) Receive(msg) msg Mensaje msg,reply; Mensaje op,ack; msg=<dato a trasmitir> receive(op); send(msg); if(validOp(op)) receive(reply); ack=<operación OK> if(isOK(reply)) else <operación correcto> ack=<operación ERROR> else send(ack); <error en operación> ... ... Lic. Jorge Guerra Guerra 24
  • 25. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. • Direcciones IP Las direcciones IP son una serie de cuatro cifras 0..255 (4 bytes, 32 bits) separadas por puntos. Existe una dirección IP especial: 127.0.0.1 que referencia siempre nuestra máquina local. Por ello, tiene asociado el nombre "localhost". Rangos reservados: 192.168.0.0 .. 192.168.0.255 192.168.1.0 .. 192.168.1.255 Lic. Jorge Guerra Guerra 25
  • 26. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Puerto Código de identificación que generalmente está asignado de antemano por el fabricante de la aplicación que genera el proceso FTP (21) WWW(80) IMAP(143) POP3(110) SMTP(25) SSH(22) TeInet(23) MysqI(3306) Observación: Los puertos del 1 al 1024 están reservados para el Sistema Operativo, por lo que los demás se pueden usar para cualquier aplicación. Lic. Jorge Guerra Guerra 26
  • 27. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Las capas TCP/IP mail, file transfer, web Application Application tcp, udp Transport Transport ip Internet Internet Internet Internet Media access Media access Media access Media access Lic. Jorge Guerra Guerra 27
  • 28. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Capas, Protocolos y Mensajes Application M M Transport Ht M Ht M Internet Hi Ht M Hi Ht M Media access Hm Hi Ht M Hm Hi Ht M Lic. Jorge Guerra Guerra 28
  • 29. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Representacion del modelo TCP/IP Lic. Jorge Guerra Guerra 29
  • 30. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Protocolos en TCP/IP Lic. Jorge Guerra Guerra 30
  • 31. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Capa de transporte La capa de transporte tiene la misión de establecer la forma de enviar el mensaje producido en la capa de aplicación, para ello establece las siguientes operaciones:  La división del mensaje a enviar en unidades más pequeñas denominadas paquetes. En el proceso emisor estos paquetes serán enviados mediante un criterio de transmisión determinado con destino al proceso receptor. En el proceso receptor la operación consiste en recuperar los paquetes recibidos y mediante un algoritmo de reconstrucción regenerar el mensaje original. Lic. Jorge Guerra Guerra 31
  • 32. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Tipos de servicios en Capa de transporte Servicios orientados a conexión envío de paquetes en forma secuencial camino o ruta de envío predefinida entre cliente/servidor (stream) capacidad de retransmisión es confiable y es poco probable la perdida de paquetes el algoritmo de recuperación del mensaje recibido es sencillo Lic. Jorge Guerra Guerra 32
  • 33. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Tipos de servicios en Capa de transporte Servicios orientados a no conexión No hay camino predeterminado entre cliente y servidor La transmisión de los mensajes es de tipo paralela o simultánea Cada paquete toma su propio camino para llegar a su destino Es poco confiable El algoritmo de recuperación del mensajes es más complejo utilizando para ello un algoritmo de ordenamiento Lic. Jorge Guerra Guerra 33
  • 34. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Datagramas En Internet, la información se transmite mediante datagramas. La información se divide en paquetes, denominados datagramas IP. Cada paquete puede seguir un camino diferente desde el origen hasta el destino, pueden llegar en distinto orden de cuando se enviaron, o no llegar. Lic. Jorge Guerra Guerra 34
  • 35. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. TCP y UDP para Cliente / Servidor request response UDP TCP T/TCP Lic. Jorge Guerra Guerra 35
  • 36. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Socket Se considera como un extremo de una conexión de comunicación entre dos computadoras. Por otro lado, si lo vemos del punto de vista de la programación un socket representa el mecanismo para transferir datos de una computadora a otra Lic. Jorge Guerra Guerra 36
  • 37. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Como funciona el socket Lic. Jorge Guerra Guerra 37
  • 38. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Socket dentro del modelo TCP/IP Lic. Jorge Guerra Guerra 38
  • 39. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Atributos de un socket Dominio: Especifica el medio de comunicación de la red que el socket va a utilizar Tipo: Define las características de la comunicación entre procesos en la que es usado un socket, es decir el tipo de comunicación que se realizara entre cliente y servidor. Protocolo: La capa de transporte proporciona el protocolo necesario para el uso del socket. Lic. Jorge Guerra Guerra 39
  • 40. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Tipos de Socket Socket UDP Socket TCP Socket Raw Socket SeqSocket Lic. Jorge Guerra Guerra 40
  • 41. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Flujograma de sockets UDP Lic. Jorge Guerra Guerra 41
  • 42. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Flujograma de sockets TCP Lic. Jorge Guerra Guerra 42
  • 43. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets en Java  Engloba en objetos cada una de las estructuras de la comunicación. Las funciones se tratan como métodos de dichos objetos:  InetAddress  Socket DatagramSocket ServerSocket  Connection  DatagramPacket  Define un nivel de abstracción mayor, proporcionando constructores que realizan parte del proceso de inicialización de los elementos. Lic. Jorge Guerra Guerra 43
  • 44. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Clases de comunicaciones-paquete java.net Lic. Jorge Guerra Guerra 44
  • 45. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets en Java(Direccionamiento) Las direcciones de Internet se asocian a objetos de la clase InetAddress. Estos objetos se construyen en base a métodos estáticos de la clase: static InetAddress getByName(String host) Obtiene una dirección IP en base al nombre (dominios o números). static InetAddress getLocalHost() Obtiene la dirección IP local. Lic. Jorge Guerra Guerra 45
  • 46. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets en Java (UDP) La información a trasmitir se asocia a un objetos de la clase DatagramPacket. Estos objetos se construyen con un array de bytes a transmitir: Lic. Jorge Guerra Guerra 46
  • 47. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Lic. Jorge Guerra Guerra 47
  • 48. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets en Java (UDP) La comunicación vía UDP se realiza por medio de objetos de la clase DatagramSocket.  DatagramSocket(int puerto,InetAddress dir) Crea un socket UDP con un bind a la dirección y puerto indicados. Dirección y puerto son opcionales (se elige uno libre).  void send(DatagramPacket paquete) Envía el datagrama a la dirección del paquete.  void receive(DatagramPacket paquete) Se bloquea hasta la recepción del datagrama. Lic. Jorge Guerra Guerra 48
  • 49. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets en Java (TCP) Se utilizan dos clases de socket (una para el cliente y otra para socket servidor). Para el cliente:  Socket(InetAddress dir, int puerto) Crea un socket stream para el cliente conectado con la dirección y puerto indicados. Existen otros constructores con diferentes argumentos. Para el servidor:  ServerSocket(int puerto) Crea un socket stream para el servidor. Existen otros constructores con diferentes argumentos.  Socket accept() Prepara la conexión y se bloquea a espera de conexiones. Equivale a listen y accept de BSD Sockets. Devuelve un Socket. Lic. Jorge Guerra Guerra 49
  • 50. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Ejemplo de comunicación TCP Lic. Jorge Guerra Guerra 50
  • 51. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Streams TCP Lic. Jorge Guerra Guerra 51
  • 52. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Transferencias de datos TCP Lic. Jorge Guerra Guerra 52
  • 53. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Usando InputStream y OutputStream en TCP Lic. Jorge Guerra Guerra 53
  • 54. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Cliente-servidor con sockets streams de Java Lic. Jorge Guerra Guerra 54
  • 55. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Clases URL / URLConnection Estas clases tienen la misma funcionalidad que las clases Socket y ServerSocket, pero son más sencillas de utilizar (más alto nivel). Nos permiten establecer una conexión con cualquier recurso de Internet y descargar su contenido, así como conectar dos ordenadores y transferir datos mediante flujos (streams). Lic. Jorge Guerra Guerra 55
  • 56. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Lic. Jorge Guerra Guerra 56
  • 57. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets en .NET Implementación en C#
  • 58. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Absolute Basics All socket services in System.Net.Sockets namespace System.Net provides services for DNS, IP Addresses, HTTP services etc Lic. Jorge Guerra Guerra 58
  • 59. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets TCP (lado servidor) La creación de un servidor TCP no resulta demasiado complicada. En primer lugar, debemos establecer el socket a través del cual el servidor aceptará peticiones, para lo cual nos hace falta una dirección IP (la correspondiente a la máquina en la que se ejecute el servidor) y un número de puerto TCP: // DNS: nombre del host -> dirección IP IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); IPAddress ipAddress = ipHostInfo.AddressList[0]; // Puerto IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000); Lic. Jorge Guerra Guerra 59
  • 60. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Creando un Socket Must specify address family, socket type and protocol type Address Family: InterNetwork (Addr for IP Ver 4).. InterNetworkV6 (ver 6) Socket Type: Stream, Dgram, Raw etc Protocol Type: Tcp, Udp Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Lic. Jorge Guerra Guerra 60
  • 61. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets TCP (lado servidor)  Una vez que tenemos el puerto a través del cual aceptaremos conexiones, creamos físicamente el socket y lo configuramos para que pueda aceptar conexiones:  El método Listen pone el socket en estado de escucha y su parámetro establece la longitud máxima de la cola de conexiones pendientes que puede tener el servidor antes de empezar a rechazar conexiones [backlog, en inglés]. Socket listener = new Socket ( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp ); listener.Bind(localEndPoint); listener.Listen(100); Lic. Jorge Guerra Guerra 61
  • 62. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets TCP (lado servidor)  A continuación, nos quedamos esperando a que un cliente establezca una conexión con nuestro servidor. El método Accept extrae la primera petición de la cola asociada al servidor y devuelve un nuevo socket que podemos utilizar para comunicarnos con el cliente:  Socket handler = listener.Accept();  En este caso hemos utilizado los sockets de la forma tradicional (la misma que originalmente se ideó en la distribución BSD de UNIX): el servidor se queda esperando al llamar a Accept hasta que llegue alguna petición. En Windows, no obstante, también podríamos haber utilizado sockets de forma asíncrona, para evitar que el servidor quede bloqueado indefinidamente. Lic. Jorge Guerra Guerra 62
  • 63. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Next Step..Creating a data pipe What we need… IP address and port number 162.312.324.400:8000 What we have… a more user friendly web address What we need is known in C# as an Endpoint…there is an Endpoint Class for each family, for IP addresses the class is known as IPEndPoint Lic. Jorge Guerra Guerra 63
  • 64. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets TCP (lado servidor)  Cuando la llamada a Accept devuelve un nuevo socket, entonces podemos realizar la tarea para la cual hayamos diseñado nuestro servidor. Por ejemplo, podemos construir un servidor que haga de eco, devolviéndole al cliente lo mismo que éste le envíe: byte[] bytes = new byte[1024]; int count; String data = ""; do { count = handler.Receive(bytes); data += System.Text.Encoding.ASCII.GetString(bytes,0,count); } while ( data.IndexOf("<FIN>") == -1 ); // Eco Console.WriteLine( "Texto recibido received : {0}", data); byte[] msg = System.Text.Encoding.ASCII.GetBytes(data); handler.Send(msg); handler.Shutdown(SocketShutdown.Both); handler.Close(); Lic. Jorge Guerra Guerra 64
  • 65. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Creating the EndPoint...  Give user friendly address to Dns.Resolve  Returns a list of addresses… select one  Use the address to create the EndPoint IPHostEntry iphost= Dns.Resolve (“http://ist.psu.edu”); IPAddress ip=iphost.AddressList[0]; IPEndPoint EndPoint=new IPEndPoint(ip, portnumber); s.Connect(EndPoint) (note that port number must be Int16..use System.Convert.ToInt16) Lic. Jorge Guerra Guerra 65
  • 66. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sending Data The Send method can send data through a CONNECTED socket byte[] msg = System.Text.Encoding.ASCII.GetBytes("This is a test"); int bytesSent = s.Send(msg); Lic. Jorge Guerra Guerra 66
  • 67. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Receiving Data We use the Receive method (similar to Send) byte[] bytes = new byte[1024]; s.Receive(bytes); //Displays to the screen. Console.WriteLine(Encoding.ASCII.GetString(bytes)); Lic. Jorge Guerra Guerra 67
  • 68. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. TCPListener La plataforma .NET incluye una clase auxiliar denominada TcpListener que simplifica algo la creación de servidores TCP, si bien internamente se sigue haciendo lo mismo:  TcpListener listener = new TcpListener(11000);  listener.Start();  TcpClient client = listener.AcceptTcpClient();  ... La única diferencia reseñable es que ahora, en vez de utilizar Send y Receive, el objeto de tipo TcpClient dispone de un stream a través del cual leemos y escribimos datos. Lic. Jorge Guerra Guerra 68
  • 69. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets TCP (lado cliente) string mensaje = "Hola... <FIN>"; string respuesta; Byte[] SendBytes = Encoding.ASCII.GetBytes(mensaje); Byte[] RecvBytes = new Byte[256]; int bytes; // DNS IPAddress address = Dns.Resolve("localhost").AddressList[0]; // EndPoint IPEndPoint EPhost = new IPEndPoint(address, 11000); // Socket Socket socket = new Socket ( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp ); // Conexión try { socket.Connect (EPhost); socket.Send( SendBytes, SendBytes.Length, SocketFlags.None); bytes = socket.Receive ( RecvBytes, RecvBytes.Length, SocketFlags.None); respuesta = Encoding.ASCII.GetString (RecvBytes, 0, bytes); while (bytes > 0) { bytes = socket.Receive ( RecvBytes, RecvBytes.Length, SocketFlags.None); respuesta += Encoding.ASCII.GetString (RecvBytes, 0, bytes); } Console.WriteLine(respuesta); } catch (Exception error) { Console.WriteLine("ERROR - "+error); Jorge Guerra Guerra Lic. 69 }
  • 70. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. TCPClient string mensaje = "Hola... <FIN>"; string respuesta; Byte[] SendBytes = Encoding.ASCII.GetBytes(mensaje); Byte[] RecvBytes = new Byte[256]; int bytes; // Cliente TCP TcpClient client = new TcpClient(); NetworkStream stream; // Conexión try { client.Connect("localhost",11000); stream = client.GetStream(); stream.Write ( SendBytes, 0,SendBytes.Length ); bytes = stream.Read ( RecvBytes, 0, RecvBytes.Length); respuesta = Encoding.ASCII.GetString (RecvBytes, 0, bytes); while (bytes > 0) { bytes = stream.Read ( RecvBytes, 0, RecvBytes.Length ); respuesta += Encoding.ASCII.GetString (RecvBytes, 0, bytes); } Console.WriteLine(respuesta); } catch (Exception error) { Console.WriteLine("ERROR - "+error); } Lic. Jorge Guerra Guerra 70
  • 71. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Sockets UDP (fragmento de codigo) IPAddress broadcastAddress = IPAddress.Parse("150.214.191.255"); string host = Dns.GetHostName(); IPAddress localAddress = Dns.GetHostByName(host).AddressList[0]; int Port = 11000; Thread listener; // Hebra empleada // para recibir mensajes bool fin = false; // Flag empleado para terminar la ejecución de la hebra Arranque private void ChatForm_Load (object sender, System.EventArgs e) { ThreadStart start = new ThreadStart(Listener); listener = new Thread(start); listener.Start(); } private void Listener() { while (!fin) { ... } } // Detención private void ChatForm_Closed (object sender, System.EventArgs e) { fin = true; Send("FIN"); Lic. Jorge Guerra Guerra 71 listener.Join(); }
  • 72. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Envio de mensajes UDP private void Send (string message) { IPEndPoint ep; Socket socket; ep = new IPEndPoint(broadcastAddress, Port); socket = new Socket ( localAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp); byte[] msg = Encoding.Default.GetBytes( message ); try { socket.SendTo ( msg, 0, msg.Length, SocketFlags.None, ep); } catch (Exception e) { MessageBox.Show( e.ToString(), "Error enviando datos"); } } Lic. Jorge Guerra Guerra 72
  • 73. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Recepción Socket UDP private void Listener() { IPEndPoint localEP; Socket socket; localEP = new IPEndPoint(localAddress, Port); socket = new Socket ( localAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp); try{ socket.Bind(localEP); while (!fin) { // Buffer para recibir el mensaje byte[] buffer = new byte[1024]; // IPEndPoint para identificar al emisor IPEndPoint sender = new IPEndPoint(IPAddress.Any,0); EndPoint remoteEP = (EndPoint) sender; // Recepción del mensaje (ojo: bloquea al receptor) socket.ReceiveFrom (buffer, ref remoteEP); string mensaje = Encoding.Default.GetString(buffer); textBoxDialog.AppendText(mensaje); } } catch (Exception e) { MessageBox.Show( e.ToString(), Guerra Guerra Lic. Jorge "Error recibiendo datos"); } } 73
  • 74. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Shutdown sockets The SocketShutdown enumeration defines constants that indicate whether the socket should be closed for sending, for receiving, or for both. Call the Close method to free all managed and unmanaged resources associated with the Socket s.Shutdown(SocketShutdown.Both); s.Close(); Lic. Jorge Guerra Guerra 74