Categoría:Sockets

De ChuWiki


Qué es un socket[editar]

Un socket es un canal de comunicación en red entre dos aplicaciones de ordenador. A través de un socket estas aplicaciones pueden intercambiar datos a través de una red ethernet.

Qué tipos de sockets hay[editar]

Hay dos tipos de socket

  • TCP u orientados a conexión.
  • UDP o no orientados a conexión.

Socket TCP[editar]

En un socket TCP ambas aplicaciones deben establecer conexión antes de enviarse datos. Una de las aplicaciones hace de servidor poniéndose a la escucha de clientes que quieran establecer la conexión. La otras aplicaciones hacen de clientes, siendo ellas las que inician el establecimiento de la conexión con el servidor.

Al haber una conexión establecida, se garantiza que los datos llegan correctamente y en orden de una aplicación a la otra. El protocolo de conexión es más costoso, pero se garantiza la entrega de los datos.

Socket UDP[editar]

En un socket UDP las aplicaciones no tienen por qué establecer conexión. Pueden enviar e intentar recibir datos aunque la otra aplicación no esté arrancada.

Al no establecerse conexión, los datos pueden perderse. Una aplicación puede enviar datos mientras la otra no está arrancada o simplemente no está a la escucha. Y una aplicación puede ponerse a la escucha aunque no haya nadie emitiendo datos.

Dentro de los socket UDP tenemos tres variantes

  • UDP Unicast. La aplicación que envía un dato ponde un destinatario único (una IP) para el dato. Esa aplicación destinataria que debe correr en un ordenador con esa IP destinataria, será la única que reciba el mensaje.
  • UDP Broadcast. La aplicación que envía un dato lo envía para que lo escuche quien quiera dentro de la red. Cualquier aplicación a la escucha en cualquier ordenador de la red recibirá el mensaje.
  • UDP Multicast. Similar a UDP Broadcast, pero puede salir fuera de la red hacia otras redes. El emisor envía el dato y cualquiera en la misma red o en otra red, simpre que los router estén adecuadamente configurados, pueden recibir el mensaje.

Cuándo usar cada tipo de socket[editar]

Los sockets TCP son adecuados para mensajes importantes, que no deben perderse.

Los sockets UDP unicast son adecuados para envío de mucha información pero que no es importante si se pierde algún mensaje. Por ejemplo, imagina que envías datos de velocidad del viento de un anemómetro a razón de 100 datos por segundo. La aplciación que lo recibe lo usa para pintar alguna gráfica o alamcenarlo en alguna base de datos. No suele ser muy grave si perdemos algunos de estos datos.

Los sockets UDP Broadcast son usados sólo para usos muy específicos. Normalmente suelen usarse para que las aplicaciones sepan una de la existencia de la otra. Una aplicación puede mandar un mensaje UDP broadcast a la red como un indicador de "estoy aquí". Otras aplicaciones similares pueden entonces contastarle o tratar de establecer conexión con ella por otro tipo de socket.

Los socket UDP Multicast son adecuados cuando un flujo de datos es de interés para varios clientes a la vez. Si usamos UDP Unicast, debemo enviar el dato por la red una vez por cada cliente. Si lo hacemos con UDP Multicast, podemos enviar el dato una sola vez y lo podrán recibir varias aplicaciones que estén en escucha a la vez. Un ejemplo típico son flujos de audio o vídeo que quieran oir o ver simultáneamente varios clientes.

Páginas en la categoría «Sockets»

Las siguientes 6 páginas pertenecen a esta categoría, de un total de 6.