AQuetto Profile picture
14 Sep, 14 tweets, 4 min read
¿Qué es un socket y un poco más? Conciso para los amigos 🤗

Es un concepto por el cual se intercambian datos en forma de paquetes entre un cliente y un servidor 📦.
Por ejemplo, comparando contra HTTP directamente:

Ejemplo HTTP:
Cliente hace un GET ➡️ el servidor responde

Ejemplo socket (TCP):
Cliente se conecta ➡️ el cliente o el servidor le emite un paquete sin haber sido solicitado necesariamente por el cliente en primera instancia
En conclusión, un socket es la conexión fisica entre dos puntos y la manera en si persiste o no dependerá de su protocolo👇🏻
UDP y TCP son los protocolos que disponemos.

UDP emite paquetes sin certificar que lleguen bien y en orden a destino. No persiste la conexión.

TCP en cambio certifica que lleguen correctamente y en orden a destino. En caso de algún error realizará una retransmisión en orden.
TCP está implementado en muchos lugares que quizá no conocemos... hasta que continúes leyendo.

Por ejemplo HTTP, HTTPS, POP3, SMTP, FTP y SSH entre otros son implementaciones a nivel aplicación de TCP. Es decir, varias caras de una misma moneda pero bien diferenciadas.
Un socket no es exactamente lo mismo a un websocket. Este último corre sobre HTTP, y aunque sí se realiza una conexión por protocolo TCP, se utiliza inicialmente el HTTP.
HTTP también es “stateless”, es decir, no preservan un estado. Cuando haces una petición al servidor y acto seguido mandas otra, este no es capaz de darse cuenta que las dos tienen relación por sí mismo sin recurrir a código, cookies, etc. Por eso TCP dependiendo podría convenir.
Habiendo ya marcado diferencias, volveremos a TCP para hablar más bajo nivel.

Si lo que se envía son 📦, entonces estos deben tener un contenido. Imaginemos esto como “HHHHPPPP”.
Las H la denominamos encabezado y contiene información de control. Suele tener un tamaño de 20 bytes (160 bits), seguidos de hasta 40 bytes (320 bits) de información adicional que es opcional y que no se usa en todos los paquetes.
Las P son el payload (body). Es decir, la información que nosotros emitimos como por ejemplo “un mensaje que escribimos en un chat” o “una acción dentro de un videojuego”. Sí, los videojuegos multijugador son un gran ejemplo de una implementación y comunicación en TCP y UDP.
El resumen del resumen: un socket es una conexión que se mantiene abierta entre dos puntos. UDP emite sin control de recepción y TCP está orientado a la conexión, es fiable por sus mecanismos de control y orden.
HTTP, HTTPS y etc son una implementación a nivel aplicación.
Si bien falta abarcar mucha información, intenté ser lo más conciso posible solo para introducir el tema. Abajo dejo algunos links. Contame si te sirvió 🙂
Por último quería invitarlos a que prueben armar algo en sockets con TCP. Los lenguajes ya suelen tener incorporada alguna librería capaz de levantar un servidor y cliente. Es mucho más fácil de lo que creemos.

En python: wiki.python.org/moin/TcpCommun…

En node: gist.github.com/tedmiston/5935…
Algunos artículos para profundizar:

Sobre sockets: es.m.wikipedia.org/wiki/Socket_de…

HTTP vs. TCP: google.com.ar/amp/s/www.it-s…

Cuando usar TCP o UDP: google.com.ar/amp/s/www.it-s…

Cómo se compone un paquete: zator.com/Internet/A3_1.…

¿UDP o TCP en juegos? laingenieria.info/questions/8043…

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with AQuetto

AQuetto Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @AQuetto

14 Sep
¿Sabes qué son y en qué se diferencian una cookie, local storage y session storage? Si no es así, enjoy👇🏻
Cookies: almacenan poca información y perduran hasta un tiempo de expiración determinado de cuando fueron creadas. Viajan en todas las requests automáticamente, sin necesidad de indicarlo explícitamente.
También pueden tener alcance cross-domain o no.
Session storage: perdura hasta el cierre del navegador o la pestaña. Posee más espacio de almacenamiento que una cookie.
Read 10 tweets
19 Jun
Asincronía con ensaladas🥗. En este hilo les voy a explicar el concepto y cómo puede servirnos.

👉¿Qué es algo asincrónico? 😨
Una acción que se realiza independientemente de que otra haya comenzado y terminado para comenzar. Pueden darse en paralelo.
👉 Ejemplos:
Línea de tiempo sincrónica:
lavar y cortar 🍅 → pelar y cortar 🥑

Línea de tiempo asincrónica:
lavar 🍅 → cortar 🍅
pelar 🥑 → cortar 🥑

👉 ¿De qué nos sirve? Podríamos mejorar nuestro tiempo de preparación siempre y cuando un ingrediente no dependa de otro.
👉 Sincrónico:
lavar 🍅 → cortar 🍅 → pelar 🥑 → cortar 🥑 → pelar 🌽 → hervir 🌽 → cortar 🌽 → mezclar → condimentar → LISTO 🥗

👉 Asincrónico:
pelar 🌽 → hervir 🌽 → lavar 🍅 → pelar 🥑 → quitar del fuego 🌽 → cortar 🥑 🍅 🌽 → mezclar → condimentar → LISTO 🥗
Read 6 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!