¿Qué algoritmo se usa en WhatsApp?

Los siguientes son los detalles más esenciales y de alto nivel que pueden ser útiles para comprender cómo funciona un servicio como Whatsapp.

  • En primer lugar, Whatsapp es un servicio de chat basado en la nube que significa que necesita un servidor centralizado para proporcionar todos los servicios.
  • Hay tres partes esenciales: remitente, receptor y servidor. El mensaje se envía al servidor, lo almacena y lo envía al receptor (Simple, ¿verdad? ¡NO! Hay muchos problemas, mencionaré algunos cuando sea relevante)
  • El Servidor retiene los mensajes para el Receptor hasta que se conecta, en ese momento el Receptor envía un mensaje al Servidor que dice “Estoy en línea, ¡dame mis mensajes!”, Y el Servidor envía todos los mensajes retenidos con marcas de tiempo.
  • La tarea más esencial del servidor es mantener todos los mensajes sin enviar para miles de millones de usuarios diferentes con la identificación del remitente, por lo que el servidor debe tener una clave única para que cada usuario almacene todos los mensajes y otra información esencial. Así es como se almacenan los mensajes para cada usuario cuando están fuera de línea ( idea central )
  • Del mismo modo, el recibo de lectura ( marca azul ) funciona de la misma manera, se envía un mensaje a través del servidor que el mensaje se lee, ¡cámbielo a azul!
  • Hasta ahora, es posible que haya imaginado un solo servidor en estos escenarios, pero en realidad hay miles de máquinas que se están utilizando para estas tareas para resolver dos problemas principales: (1) Escalabilidad: atender millones de solicitudes no se puede hacer con uno o dos servidores, el La carga se distribuye entre varios grupos de máquinas. (2) Replicación : toda la información se almacena en al menos tres servidores diferentes para que en caso de falla de la máquina no se pierda información.
  • Otra información, como la foto y el estado de su perfil, se almacena en los servidores y todos los dispositivos verifican con el servidor si alguien de su lista de contactos ha actualizado algo, en caso afirmativo, se obtiene nueva información del servidor
  • El servidor también mantiene información para contactos bloqueados e información de grupo para realizar en consecuencia si se debe soltar el mensaje o multicast.

Espero que esto ayude.

Esta es una explicación de muy alto nivel, pero si alguien interesado en un punto o servicio en particular, me encantaría profundizar.

Gracias.

Utiliza muchos algoritmos.

WhatsApp utiliza VoIP y tecnología de mensajería instantánea para la comunicación.

La base del cifrado de extremo a extremo de WhatsApp se denomina Protocolo de señal diseñado por Open Whisper Systems. [1]

Además, WhatsApp tiene que almacenar mensajes, imágenes y cosas diferentes.

Utilizan algoritmos de compresión. Whatsapp parece convertir imágenes a JPEG, que es un algoritmo de compresión con pérdida.

Creo que usan códigos QR. Hay algoritmos de generación de código QR.

Sus bases de datos tienen algoritmos para las funciones hash y el almacenamiento.

Además algoritmos de programación.

Me imagino que hay muchos más algoritmos en los que no estoy pensando. No sé todo lo que hacen.

Notas al pie

[1] WhisperSystems / libsignal-protocol-java

More Interesting

¿Cuáles son algunas de las estructuras de datos / algoritmos de clasificación más interesantes?

¿Cuál es el propósito de construir un árbol de expansión mínimo?

¿Cuál es la explicación de este código?

¿Es necesario codificar todos los datos en estructuras como pilas en C ++, o es un conocimiento práctico suficiente para aclarar entrevistas?

¿Qué debo usar para reducir los atributos en mi conjunto de datos, PCA o algoritmos de selección de características?

¿Cuáles son todos los diferentes tipos de recursividad en la programación?

¿Cuánto estrés se le da a los algoritmos y las estructuras de datos en el curso de pregrado en CMI? ¿Se enseña programación competitiva allí?

En un algoritmo de clasificación de ciencias de la computación, ¿puede lograr un estado ordenado intercambiando continuamente elementos desordenados totalmente al azar, o los elementos fuera de orden deben ser adyacentes en la matriz?

¿Los algoritmos están sesgados inherentemente hacia las opiniones subjetivas de sus creadores humanos?

Si recibe fondos de miles de millones de dólares y tiene la tarea de crear un motor de búsqueda para competir con Google, ¿cómo sería su motor de búsqueda?

¿De qué sirve estudiar algoritmos de clasificación y técnicas de búsqueda? Quiero decir, ¿dónde lo usamos en la programación?

Cómo usar un algoritmo rápido para la detección y el seguimiento del objeto anómalo

¿Qué es el DP?

Dada la matriz a [n + 1] de elementos 1 <= a [i] <= n, ¿de cuántas maneras podemos elegir k de n + 1 sin repetición?

¿Cómo inserta este código un nuevo nodo en un árbol binario?