¿Un protocolo de red es un programa de computadora? ¿Sí no, Cuál es la diferencia?

Quizás otros modelos de sistemas semánticos pertenecen, pero OOP es una buena metáfora para analizar este tema. Los protocolos que ve hoy en las redes son como interfaces. Lo que falta en esto es la semántica, que es lo que necesita para tener un programa. Como mínimo, para que el protocolo de red sea semántico, los nodos de red deben poder hacer comparaciones entre ellos y luego tomar acciones condicionales basadas en ellos. También es necesario representar el estado, aunque la encapsulación del estado debe usarse para hacer que las implementaciones sean independientes entre sí. Aquí es donde entra en el esquema una noción de objetos transportables en red, que a su vez actúan como servidores virtuales que responden de acuerdo con los protocolos.

Se pueden realizar mejoras adicionales en este esquema organizacional, pero me parece que este es el mínimo necesario para crear un protocolo de red semántica, de modo que pueda programar usando una red. El verdadero desafío con respecto a esto es crear un protocolo que permita escalar las redes semánticas. Ese problema aún no se ha resuelto.

Un protocolo es una especificación de cómo interactuarán las computadoras. Una implementación de ese protocolo es un código de ejecución que se comporta de acuerdo con esa especificación.

Un protocolo de red es una gramática, una estructura de cómo se envían los datos de un lado a otro, más un gráfico de transición de estado que muestra lo que sucede cuando los datos se mueven. Se necesitaría un programa para hacer esto, pero la gramática no es el programa.

En pocas palabras: un protocolo es un conjunto de reglas. Los programas se pueden construir para cumplir con un protocolo. Un protocolo en sí no es un programa, pero los programas se construirán para seguir las reglas de un protocolo: “implementarlo”.