Want to create interactive content? It’s easy in Genially!

Reuse this genially

Infografía

Alonso Dominguez Lopez

Created on April 9, 2024

¿Qué es un socket? ¿Qué es un socket bloqueante? ¿Qué es un socket no bloqueante? ¿Qué es la multidifusión? Ventajas y Desventajas de la multidifusión Comunicación Unicast Comunicación Multicast Comunicación Broadcast

Start designing with a free template

Discover more than 1500 professional designs like these:

Tarot Presentation

Vaporwave presentation

Women's Presentation

Geniaflix Presentation

Shadow Presentation

Newspaper Presentation

Memories Presentation

Transcript

UPIIZ - IPN ingeniería en sistemas computacionales APLICACIONES PARA COMUNICACIones EN RED alonso domínguez lópez 6CM1 2022670196

SOCKETS, DIFUSIÓN, MULTIFIFUSIÓN

START

ÍNDICE

06.

01.

Comunicación Uniscast

Qué es un socket

02.

Qué es un socket bloqueante

06.

Comunicación Multicast

03.

Qué es un socket no bloqueante

07.

Comunicación Broadcast

04.

Qué es la multidifusión

05.

Ventajas y Desventajas de la multidifusión

SOCKETS

'Qué es un socket?

Los sockets de internet son el mecanismo que permite que aplicaciones en diferentes dispositivos se comuniquen entre sí a través de la red, enviando y recibiendo información de manera organizada.Los sockets son utilizados tanto en sistemas cliente-servidor como en comunicaciones entre pares (peer-to-peer). Permiten la transferencia de datos entre aplicaciones de manera bidireccional, es decir, tanto la aplicación cliente como la aplicación servidor pueden enviar y recibir datos.

Socket Bloqueante

Un socket bloqueante es un tipo de socket que opera de manera sincrónica y bloqueante. Esto significa que cuando una aplicación realiza una operación de entrada/salida (E/S) en un socket bloqueante, la ejecución del programa se detiene hasta que la operación se complete. Por lo tanto, si una llamada a una función de lectura (recv() en el caso de sockets TCP/IP, por ejemplo) se realiza en un socket bloqueante y no hay datos disponibles para leer, el programa quedará bloqueado hasta que se reciban datos o se produzca un error.

+INFO

Socket No Bloqueante

Un socket bloqueante es un tipo de socket que opera de manera sincrónica y bloqueante. Esto significa que cuando una aplicación realiza una operación de entrada/salida (E/S) en un socket bloqueante, la ejecución del programa se detiene hasta que la operación se complete. Por lo tanto, si una llamada a una función de lectura (recv() en el caso de sockets TCP/IP, por ejemplo) se realiza en un socket bloqueante y no hay datos disponibles para leer, el programa quedará bloqueado hasta que se reciban datos o se produzca un error.

+INFO

Qué es la Multidifusión

La multidifusión es un proceso de comunicación que tiene lugar en un entorno de red. Básicamente, una multidifusión es un mensaje que se origina en un solo usuario y es recibido por múltiples puntos finales en la red. En cierto sentido, una multidifusión es algo así como enviar un solo correo electrónico a varias direcciones de correo electrónico. Sin embargo, la diferencia clave es que una multidifusión no depende de ningún tipo de dirección de correo electrónico o software, y la transmisión se limita a los usuarios que están conectados a la red única.

Ventajas y Desventejas de la Multidifusión

DESVenTAJAS

VenTAJAS

  • Complejidad: Implementar y configurar la multidifusión puede ser más complejo que la unidifusión, requiriendo configuraciones adicionales en routers y switches.
  • Seguridad: Los protocolos de multidifusión pueden ser más vulnerables a ataques de seguridad, como la falsificación de direcciones IP.
  • Compatibilidad: No todos los dispositivos y aplicaciones son compatibles con la multidifusión.
  • Costo: Implementar la multidifusión puede requerir hardware y software específicos, lo que puede aumentar el costo de la red.
  • Problemas de congestión: La multidifusión puede generar congestión en algunos puntos, especialmente con un gran número de receptores.
  • Eficiencia en el ancho de banda: Solo se envía una copia del flujo de datos a múltiples receptores, lo que reduce significativamente el uso del ancho de banda.
  • Escalabilidad: Ideal para distribuir contenido a un gran número de receptores de forma eficiente, sin consumir recursos excesivos en el servidor.
  • Mejora en la latencia: Solo se necesita una transmisión para llegar a todos.
  • Reducción de la carga del servidor: El servidor solo envía una copia del flujo de datos, lo que reduce la carga de procesamiento y la congestión.

Comunicación Unicast

En la comunicación unificada, un solo remitente envía datos a un solo destinatario. Es la forma más común de comunicarse en redes de computadoras. Cada mensaje enviado a través de una comunicación unificada se dirige a una dirección de destino específica, ya sea una dirección IP o una dirección física (como la dirección MAC de las redes Ethernet). La comunicación unificada es útil para enviar datos a un solo destino, pero no es adecuada para enviar datos a múltiples destinos al mismo tiempo.

Comunicación Multicast

En la comunicación multicast, un emisor envía datos a un grupo de receptores que están interesados en recibirlos. En lugar de enviar varias copias de datos a cada receptor individualmente, el emisor envía una sola copia de datos al grupo multicast, y luego los enrutadores y conmutadores de la red distribuyen automáticamente la copia de datos a todos los receptores del grupo. Para aplicaciones que deben enviar la misma información a varios destinatarios, como transmisión de video o audio en tiempo real, distribución de archivos, actualizaciones de software, entre otros, la comunicación multicast es útil.

Comunicación Broadcast

En la comunicación transmitida, un emisor envía datos a todos los dispositivos de la red. Los datos enviados por el emisor se copian en cada dispositivo de la red. En algunos casos, la comunicación broadcast puede ser útil; esto incluye enviar mensajes de configuración o anuncios a todos los dispositivos de la red local. Sin embargo, si se usa demasiado, puede sobrecargar la red porque todos los dispositivos en la red deben procesar y responder a los mensajes de difusión, incluso si no son relevantes para ellos. Por esta razón, la comunicación transmitida se usa con moderación en las redes actuales.

¡Recuerda publicar!

Socket Bloqueante

Ejemplo en Python

import socket # Configuración del servidor HOST = '127.0.0.1' # La dirección IP en la que el servidor estará escuchando PORT = 65432 # El puerto en el que el servidor estará escuchando # Crear un socket TCP/IP with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket: # Enlazar el socket a la dirección y puerto especificados server_socket.bind((HOST, PORT)) # Escuchar conexiones entrantes server_socket.listen() print('Servidor escuchando en {}:{}'.format(HOST, PORT)) # Aceptar la conexión entrante connection, address = server_socket.accept() with connection: print('Conexión establecida desde:', address) # Recibir datos del cliente while True: data = connection.recv(1024) if not data: break print('Mensaje recibido:', data.decode())

Socket No Bloqueante

Ejemplo de un socket no Bloqueante usando Python

print('Conexión establecida desde:', address) # Configurar el socket de la conexión en modo no bloqueante connection.setblocking(False) # Agregar la conexión a la lista de conexiones connections.append(connection) except BlockingIOError: # No hay conexiones nuevas por aceptar pass # Revisar las conexiones existentes para recibir datos for connection in connections: try: # Recibir datos de forma no bloqueante data = connection.recv(1024) if data: print('Mensaje recibido:', data.decode()) else: # La conexión fue cerrada por el cliente print('Conexión cerrada por el cliente') # Eliminar la conexión de la lista de conexiones connections.remove(connection) except BlockingIOError: # No hay datos para recibir en esta conexión pass

import socket # Configuración del servidor HOST = '127.0.0.1' # La dirección IP en la que el servidor estará escuchando PORT = 65432 # El puerto en el que el servidor estará escuchando # Crear un socket TCP/IP server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Enlazar el socket a la dirección y puerto especificados server_socket.bind((HOST, PORT)) # Escuchar conexiones entrantes server_socket.listen() print('Servidor escuchando en {}:{}'.format(HOST, PORT)) # Establecer el socket en modo no bloqueante server_socket.setblocking(False) # Lista para almacenar las conexiones entrantes connections = [] while True: try: # Aceptar la conexión entrante de forma no bloqueante connection, address = server_socket.accept()

Definir mensajes secundarios con interactividad.

Planificar la estructurade tu comunicación.

Jerarquizarla y darle peso visual a lo principal.

Establecer un flujo a través del contenido.

Medir los resultados.