If you're seeing this message, it means we're having trouble loading external resources on our website.

Si estás detrás de un filtro de páginas web, por favor asegúrate de que los dominios *.kastatic.org y *.kasandbox.org estén desbloqueados.

Contenido principal

Desarrollo de protocolos abiertos

La mayoría de los protocolos de Internet están estandarizados y son abiertos. Pero ¿qué significa esto en realidad, y por qué es tan importante?

La necesidad de estandarizar

Los protocolos de redes describen cómo pueden comunicarse las computadoras entre sí.
Imaginemos un mundo antes de que existieran los protocolos de Internet, donde una computadora quiere enviar un mensaje a otra computadora.
La computadora A envía este mensaje de 2 bytes:
01001000 01101001
Ese mensaje representa las dos letras "Hi" codificadas en binario usando el estándar UTF-8.
Desafortunadamente, la computadora B piensa que está recibiendo un número e interpreta el mensaje como el número decimal 18537.
Una ilustración de dos computadoras tratando de comunicarse entre sí; la primera computadora se muestra con "Hi" dentro de una burbuja de pensamiento encima de ella. Una flecha va de la primera computadora a la segunda y está etiquetada con la cadena binaria "01001000 01101001". La segunda computadora se muestra con "18537" dentro de una burbuja de pensamiento encima de ella.
Cada una de las computadoras puede estar siguiendo un protocolo sobre cómo comunicarse, pero no están siguiendo el mismo protocolo, así que su intento de comunicación falla. 🙁
Es por eso que la estandarización es tan importante para las tecnologías que impulsan Internet. Cuando las computadoras se ponen de acuerdo sobre la forma en que se enviarán mensajes unas a otras, pueden entonces entender los mensajes que reciben.
Por ejemplo, las dos computadoras podrían acordar seguir un protocolo sencillo donde el primer byte indica el tipo de datos que se transmite. Un primer byte 00000000 indica un número y un primer byte 00000001 indica una cadena de letras.
La computadora A ahora puede enviar este mensaje:
00000001 01001000 01101001
La computadora B recibe el mensaje, comprueba el primer byte para descubrir qué tipo de datos está en el mensaje, y luego decodifica con éxito el resto del mensaje.
¡Las computadoras se comunican con éxito! 😀
Una ilustración de dos computadoras tratando de comunicarse entre sí; la primera computadora se muestra con "Hi" dentro de una burbuja de pensamiento encima de ella. Una flecha etiquetada con la cadena binaria "00000001 01001000 01101001" va de la primera computadora a la segunda . La segunda computadora se muestra con "Hi" dentro de una burbuja de pensamiento encima de ella.
Una vez que este protocolo se escribe en un documento y otros administradores de red están de acuerdo en que es un protocolo sensato, ese protocolo es considerado un estándar. Cualesquiera dos computadoras podrían seguir ese estándar para comunicarse entre sí, no sólo las dos computadoras originales.
Los protocolos de Internet son bastante más complicados que ese simple protocolo, por supuesto, ya que hay muchos detalles que documentar sobre el proceso complejo de comunicación entre diferentes tipos de dispositivos.

La importancia de ser abierto

Un protocolo abierto (no propietario) es uno que no es propiedad de una empresa en particular y que no se limita a los productos de una empresa en específico.
Los protocolos en la pila de Internet son abiertos para que cualquier dispositivo de cómputo pueda seguir el protocolo para conectarse a la red global. No necesitas pedir permiso para seguir los protocolos ni tienes que comprar ningún hardware en particular, y no necesitas pagar dinero a la empresa que creó el protocolo. Simplemente necesitas leer el estándar y asegurarte de que el dispositivo de cómputo sigue ese estándar correctamente.
Por el contrario, algunos protocolos de comunicación son propietarios. Por ejemplo, Skype es una aplicación de llamadas de voz que usa su propio protocolo propietario para enviar y recibir llamadas de voz. El protocolo de Skype no está descrito públicamente en ningún lado y la aplicación Skype es de código cerrado. Eso hace muy difícil para cualquiera que no sea Microsoft (el propietario de Skype) desarrollar aplicaciones que puedan enviar o recibir llamadas de Skype. 1
Los creadores de Internet abrieron los protocolos a propósito. Vint Cerf, coautor de los protocolos TCP/IP, dijo esto sobre su desarrollo:
"La teoría que teníamos es que si simplemente especificabamos cómo serían los protocolos y qué software habia que escribir, entonces cualquiera que quisiera construir un componente de Internet lo haría y encontraría a alguien que estuviera dispuesto a conectarse. Entonces el sistema crecería orgánicamente al no tener ningún control central. Y eso es exactamente lo que pasó." 2

Especificaciones estándar abiertas

Para cada protocolo que es estandarizado y abierto, hay un documento público que describe el protocolo (a menudo llamado su "especificación").
🔍 Visita esta especificación HTTP de 88 páginas de larga y ojea algunas de sus secciones.
¿Esa especificación fue tan abrumadora para ti como para mí? Las especificaciones no están escritas para el usuario promedio de web. Ni siquiera están escritas para el desarrollador promedio de software. Son para ingenieros que desarrollan nuevas aplicaciones construidas sobre el protocolo, y que necesitan un entendimiento profundo de cómo deben funcionar las cosas.
Las especificaciones pueden cambiar con el tiempo. A veces hay errores menores por corregir, pero otras veces, se necesitan actualizaciones importantes para aclarar aún más cierto comportamiento o describir una nueva característica. La especificación TCP oficial se escribió en 1981, y desde entonces ha acumulado 39 correcciones y 4 especificaciones de varias páginas que aclaran el protocolo.
Hoy dia, las especificaciones de los protocolos de Internet son mantenidas por el Internet Engineering Task Force (IETF). El IETF es un comité de estándares abiertos que propone refinamientos a los protocolos existentes y propone protocolos completamente nuevos. El comité está compuesto por representantes de toda la industria de Internet y está abierto a la participación de todo aquel que tiene opiniones sobre cómo debería funcionar Internet.
Los lenguajes de World Wide Web también son estándares abiertos con especificaciones en línea. El estándar vivo HTML es mantenido por la comunidad WhatWG. CSS tiene muchas especificaciones y lo mantiene el W3C. JavaScript se basa en el estándar ECMAScript.
Las comunidades de estándares de Internet aspiran a crear estándares que reflejan las diversas necesidades de las aplicaciones que corren sobre Internet y documentan dichos estándares en especificaciones claras que permiten a cualquier dispositivo de cómputo comunicarse y colaborar en línea.
🤔 Si has desarrollado páginas web en HTML/CSS/JavaScript, ¿qué te resulta difícil hacer? Si pudieras proponer una extensión a aquellos lenguajes que haría más fácil el desarrollo web, ¿cuál sería?

🙋🏽🙋🏻‍♀️🙋🏿‍♂️¿TIenes alguna pregunta sobre este tema? ¡Nos encantaría responderte; tan solo pregunta en el área de preguntas más abajo!

¿Quieres unirte a la conversación?

¿Sabes inglés? Haz clic aquí para ver más discusiones en el sitio en inglés de Khan Academy.