domingo, 15 de octubre de 2017

Scokets y Datagrama

Introducción
Son mecanismos de comunicación entre procesos que permiten que un proceso emita o reciba información con otro proceso incluso estando en distintas máquinas. Es decir, un canal de comunicación entre dos programas que están en distintos ordenadores.


Surgen a principios de los 80 con el sistema Unix de Berkeley, para proporcionar un medio de comunicación entre procesos.

Funcionamiento del Socket
Queda definido por un par de direcciones IP local y remota, un protocolo de transporte y un par de números de puerto local y remoto.

Tres recursos que utiliza son:
  • Un protocolo de comunicaciones, que permite el intercambio de octetos.
  • Un par de direcciones del Protocolo de Red (Dirección IP, si se utiliza el Protocolo TCP/IP), que identifica la computadora de origen y la remota.
  • Un par de números de puerto, que identifica a un programa dentro de cada computadora.

A los sockets también se les puede implementar la arquitectura cliente-servidor, ya que la comunicación debe ser iniciada por una computadora (Cliente) y la otra espera a que inicie la comunicación (Servidor).

Tipos de Sockets
  • Los orientados a conexión:
    • SOCK_STREAM: está asociado al protocolo TCP, este brinda seguridad en la transmisión de datos, seguridad en la recepción, en la integridad y en la secuencia.
  • Los no orientados a conexión:
    • SOCK_DGRAM: está asociado al protocolo UDP, e indica que los paquetes viajarán en tipo datagramas.

Características de los Sockets

Características de los orientados a conexión

  • Es necesario establecer correctamente una conexión, donde es necesario la dirección IP del servidor y el servicio que se utilizara.
  • Ninguno de los dos puede transmitir datos.
  • Se usa el protocolo TCP/IP.
  • Garantiza que todos los datos lleguen al otro programa correctamente.
  • No se pierden datos.
  • No importa que un programa se quede bloqueado, puede estar esperando o transmitiendo datos.

Características de los no orientados a conexión
  • Es un protocolo UDP.
  • No es necesario que los programas se conecten.
  • Pueden transmitir datos sin que el otro programa este recibiendo o no.
  • Garantiza que los datos que lleguen sean correctos, mas no que lleguen todos.
  • Se pierden datos.
  • Evita que el programa se quede bloqueado.

Datagramas
Un datagrama es un fragmento de paquete que es enviado con la suficiente información para que la red pueda encaminar el fragmento hacia el equipo receptor, de manera independiente a los fragmentos restantes. Que puede provocar una recomposición desordenada o incompleta del paquete en el programa destino.
Los datagramas IP son las unidades principales de información de Internet y la más básica. Algunos protocolos basados en datagramas son IPX, UDP (Servidores de red no orientados a conexión). 

Conclusión
Los sockets son importantes para la comunicación entre dos programas abiertos en distintas computadoras, sin ellos no podrían comunicarse, y también es importante que existan los dos distintos tipos de sockets, ya que uno es para información importante que debe estar completa, y la otra es para el simple hecho de recibir mensajes, sin importar si se pierde información o no. Este último es el que utiliza los datagramas, que es como un mensaje en dividido en particiones, que se van enviando de uno en uno y que podrían afectar el orden del mensaje en la recepción de este. 
Que hacen que el envió del mensaje llegue incompleto o no en el tipo de socket no orientado a conexión.


Referencias
EcuRed (recuperado el 15 de octubre de 2017), Socket,  https://www.ecured.cu/Socket
TecnologiaHechaPalabra (recuperado el 15 de octubre de 2017), Datagrama,  http://www.tecnologiahechapalabra.com/datos/eventos/articulo.asp?i=6473
Ulpgc (recuperado el 15 de octubre de 2017), Sockets,  http://sopa.dis.ulpgc.es/ii-dso/leclinux/ipc/sockets/sockets.pdf



No hay comentarios:

Publicar un comentario