Cómo Funciona El Streaming de Videos de Netflix
Cómo Funciona El Streaming de Videos de Netflix
Cómo Funciona El Streaming de Videos de Netflix
videos de Netflix
Ejemplo de una red distribuida
Datos de Netflix
• Netflix acumula 209 millones de clientes,
de los cuales más de 74 millones
corresponden a Norteamérica.
• Netflix está disponible en más de 200 países.
• Netflix obtiene casi 3.000 millones de dólares en beneficios por trimestre.
• Netflix añade más de 5 millones de nuevos suscriptores por trimestre.
• Netflix reproduce más de mil millones de horas de vídeo cada semana. A modo de
comparación, YouTube transmite mil millones de horas de vídeo todos los días,
mientras que Facebook transmite 110 millones de horas de vídeo a diario.
• Netflix reprodujo 250 millones de horas de vídeo en un solo día en 2017.
• Netflix representa más del 37% del pico de tráfico de Internet en los Estados Unidos.
https://www.businessinsider.es/10-datos-curiosos-netflix-
• Netflix planea gastar 7.000quizas-aun-no-conoces-901231
millones de dólares en nuevo contenido en 2018.
Algo de historia de Nexflix
• Fue un negocio mediante una tienda online donde el cliente tenía que
pagar una tarifa plana al mes y podía quedarse con la copia de la película
el tiempo que quisiera pero para ver otra película debía retornar, en un
sobre prepagado, la copia que ya tenía (Bloomberg, 2015).
Definición:
Sistema en donde el cliente es una máquina que solicita un determinado servicio y se
denomina
servidor a la máquina que lo proporciona. Los servicios pueden ser:
• Ejecución de un determinado programa.
• Acceso a un determinado banco de información.
• Acceso a un dispositivo de hardware.
La presencia de un medio físico de comunicación entre las máquinas, es un elemento
primordial, y
dependerá de la naturaleza de este medio la viabilidad del sistema.
• Servidores de archivos.- Proporciona archivos para clientes. Si los archivos no fueran tan grandes y
los usuarios que comparten esos archivos no fueran muchos, esto sería una gran opción de
almacenamiento y procesamiento de archivos. El cliente solicita los archivos y el servidor los ubica y se
los envía.
• Servidores de Base de Datos.- Son los que almacenan gran cantidad de datos estructurados, se
diferencian de los de archivos pues la información que se envía está ya resumida en la base de
datos. Ejemplo: El Cliente hace una consulta, el servidor recibe esa consulta (SQL) y extrae sólo la
información pertinente y envía esa respuesta al cliente.
• Servidores de Software de Grupo.- El software de grupo es aquel, que permite organizar el trabajo de
un grupo. El servidor gestiona los datos que dan soporte a estas tareas. Por ejemplo: almacenar las
listas de correo electrónico. El Cliente puede indicarle, que se ha terminado una tarea y el servidor se lo
envía al resto del grupo.
• Servidores WEB.
• Servidores de correo.-
• Servidor de objetos.- Permite almacenar objetos que pueden ser activados de manera remota. Los
clientes pueden ser capaces de activar los objetos que se encuentren en el servidor.
• Servidores de impresión.-
• Servidores de aplicación.- En el pasado refería a un servidor que se dedicaba a una única
aplicación. Era básicamente una aplicación a la que podían acceder los clientes. En la actualidad
refiere más a un servidor Web con capacidad de procesamiento, por lo que suele ser a la vez
servidor Web con algunas funciones de lógica de negocio.
PROTOCOLO
Definición:
• Es un conjunto bien conocido de reglas y formatos que se utilizan para la comunicación entre
procesos que realizan una determinada tarea. Se requieren dos partes:
• Especificación de la secuencia de mensajes que se han de intercambiar.
• • Especificación del formato de los datos en los mensajes.
Definición:
Es un término que abarca a todo el software necesario para el soporte de
interacciones entre Clientes y Servidores principalmente en aplicaciones
distribuidas. Se puede considerar como el enlace que permite que un
cliente obtenga un servicio de un servidor. Normalmente se define como
una capa de software cuyo propósito es ocultar la heterogeneidad y
proveer de un modelo de programación conveniente para los
desarrolladores de aplicaciones. Se encuentra representado por procesos
u objetos que actúan en un conjunto de computadoras y que se
comunican con el fin de proporcionar soporte para compartición de
recursos en un sistema distribuido
OPERACIÓN Y CARACTERÍSTICAS DE LOS SISTEMAS DISTRIBUIDOS.
:Heterogeneidad: Se refiere a que se usan diferentes marcas de tecnologías en equipos de comunicaciones de redes de
datos, equipos de cómputo y aplicaciones de software para prestar las mismas funcionalidades y exista intercomunicación
entre estos al realizar un sistema distribuido. Internet es un ejemplo de la gran variedad de hardware y software que se usa
para la red de comunicación y para la implementación de servicios.
- Escalabilidad: Indica la posibilidad de añadir nuevos servicios y ponerlos a disposición de los usuarios para su uso. También
pueden ser escalables a nivel hardware por la inserción de más computadoras o equipo de comunicaciones a la red. Un
sistema que pueden crecer, en el sentido de estar distribuido en diferentes ubicaciones también se dicen que es escalable
incluso es parte de la escalabilidad que este sistema sea administrado de manera ordenada desde varias ubicaciones.
- Seguridad: Entre los recursos de información que se ofrecen y se mantienen en los sistemas distribuidos, muchos tienen un
alto valor intrínseco para su propietario o sus usuarios. Por esto su seguridad es de considerable importancia. La seguridad
de los recursos de información tiene tres componentes: confidencialidad (protección contra el descubrimiento por
individuos no autorizados), integridad (protección contra la alteración o corrupción) y disponibilidad (protección contra la
interferencia de uso de los servicios o recursos). Ponemos dos ejemplos donde se puede apreciar la delicadeza de datos
que circulan por la red de un sistema distribuido por lo que es importante considerar mecanismos de seguridad en sus tres
componentes: a) Un médico puede solicitar acceso a los datos hospitalarios de un paciente o enviar modificaciones sobre
de estos; b) en comercio electrónico y banca, los usuarios envían su número de tarjeta de crédito a través de Internet.
- Extensible: Se refiere más al crecimiento de las capacidades del software, por ejemplo una aplicación que se le puede
insertar más funcionalidades o puede incorporar plug-in para ofrecer otras funcionalidades, se dice que es extensible.
• Tratamiento de Fallos: Los sistemas distribuidos a veces fallan. Cuando aparecen fallos de
hardware o software, los programas pueden producir resultados incorrectos o pudieran
parar antes de haber completado su función, transacción, cálculo, etc. Como característica,
los fallos en los sistemas distribuidos son parciales, es decir, algunos componentes fallan
mientras otros siguen trabajando, para lograr esto, es necesario tener en cuenta que
siempre se debe contar con técnicas para tratar fallos como son:
• Detección de Fallos: Por ejemplo se pueden usar sumas de comprobación (checksum) para
detectar datos corruptos en un mensaje o un archivo. Es difícil detectar algunos otros fallos
como la caída de un servidor remoto en Internet, es más fácil detectarlos de manera local
pero lo importante es entender que si se monitorea un servicio es porque a partir de los
resultados del monitoreo se deben toman acciones.
• Enmascaramiento de fallos: Algunos fallos que han sido detectados se pueden ocultar o
atenuar, por ejemplo, los mensajes se pueden retransmitir cuando falla la recepción; otro
ejemplo, los archivos con datos, pueden escribirse en una pareja de discos de forma que si
uno se llega a dañar se tiene el otro.
• Tolerancia a fallos: la mayoría de los servicios de Internet tienen fallos y muchos veces es
mejor diseñar al cliente de tal forma que los tolere, por ejemplo, si un cliente Web no
puede conectarse con el servidor, no se bloqueara indefinidamente, más bien dará aviso al
usuario para que lo intente posteriormente o que un correo electrónico que no sale del
cliente de correo, el mismo cliente lo encole y lo trate de reenviar posteriormente.
• Recuperación frente a fallos: Se refiere a que ante la presencia de un fallo podamos
recuperarnos posterior al fallo, por ejemplo si hay corrupción en la información o deterioro
en los sistemas de almacenamiento estos se puedan recuperar.
• Redundancia: Esto implica que los sistemas tengan componentes redundantes para que en
caso de un fallo de uno de estos, el otro componente siga ofreciendo el servicio. Por ejemplo,
que existan dos rutas para alcanzar un servidor en Internet; otro ejemplo, el Sistema de
Nombres de Dominio, DNS, tiene sus tablas en dos servidores.
• Transparencia: Es ocultarle al usuario y al programador de aplicaciones, los componentes que
tiene un sistema distribuido de tal forma que vea al sistema como una sola entidad y su
acceso a ella sea lo más homogéneo posible. Por ejemplo el usuario trata los sistemas de
almacenamiento remoto y local de igual forma, imprime de forma local o remota de la misma
forma, para referirse a una cuenta de correo o a una computadora es de la misma forma.
• Concurrencia: Es poder compartir simultáneamente un recurso y/o funcionalidad del sistema
distribuido entre varios usuarios sin que el sistema se colapse o que el recurso al que acceden
los usuarios se corrompa. Por ejemplo, en una subasta por internet, en el momento de cierre
de esta, varios usuarios mandaran sus ofertas, estas se procesaran, se almacenaran en disco y
cuando se consulten deben mostrar veracidad. Hay técnicas que permiten el poder compartir
un recurso como es la técnica de los semáforos.
Un corte en el servicio hizo que Netflix se pasara a AWS
• los ISPs están localizados por todo el mundo y están cerca de los
consumidores. Poniendo los OCAs en los centros de datos de los ISPs
Netflix está por todo el mundo y cerca de sus clientes.
Usar IXPs para crear una red de distribución
• Un punto de
intercambio de
Internet es un centro
de datos donde los
ISPs y las redes de
distribución de
contenidos
intercambian tráfico
de Internet entre sus
redes.
Los vídeos se almacenan en la caché de los OCAs a diario
• Netflix conoce en cada sitio del mundo con un alto nivel de precisión
lo que van a ver sus suscriptores y cuándo lo van a ver. ¿Recuerdas
que habíamos dicho que Netflix era una compañía basada en datos?
• Netflix utiliza los datos de popularidad para predecir qué vídeos van a
ser probablemente vistos mañana en cada localización. En este caso,
localización significa un conglomerado de OCAs situados dentro de un
ISP o de un IXP. Netflix copia los vídeos pronosticados a uno o más
OCAs en cada localización, algo que se conoce como
preposicionamiento.
SERVIDORES CACHE
• ¿Por qué le viene bien a un ISP poner un servidor OCA dentro de su red?
A primeras parece algo demasiado generoso, pero es algo que hacen
por su propio interés.
• Si tu ISP es Total play, entonces es posible que te conectas a la red de
Total play utilizando un cable de fibra óptica. La red de Total play es su
propia red; pero esa red no es Internet.
• Por ejemplo, supongamos que quiero hacer una búsqueda en Google y
tecleo la pregunta en mi navegador y le doy a enter. Mi solicitud a
Google primero pasa por la red de Total play despues mi solicitud tiene
que pasar por la red de Google y ahí es donde interviene Internet.
Alojamiento de OCAs: ¿Qué ganan las ISPs?
• La clave de la transmisión de vídeo es estar tan cerca del usuario como sea posible y en este
caso no utilizar la infraestructura básica de Internet. Las solicitudes se cumplen con una
parte local de la red.
• ¿Por qué es algo bueno? Recuerda que dijimos que Netflix ya consume más del 37% del
tráfico de Internet de los Estados Unidos. Si los ISPs no cooperaran, Netflix usaría aún más
ancho de banda e Internet no podría soportar tanto tráfico de vídeo. Los ISPs tendrían que
añadir mucha más capacidad de red.