¿Qué es un protocolo de comunicación de red? Por ejemplo, Napster tenía un protocolo definido por el cual intercambiaba datos entre clientes y el servidor host. ¿Podría mostrarme un breve ejemplo de lo que esto significa?

Comunicación de red es un término genérico, no un protocolo en sí mismo. En términos simples, significa un conjunto de reglas para establecer una comunicación entre 2 nodos conectados a través de una red. Podría estar entre 2 o más computadoras, ubicadas hasta los extremos de la conexión a través de Internet o ubicadas una al lado de la otra conectadas a través de un cable Ethernet CAT 5/6.

Si hablamos en términos de OSI 5 Layer Model (o Modelo TCP / IP).

Puede escribir su propio protocolo, que podría residir en la capa de aplicación y puede utilizar un método de transmisión de datos utilizando los protocolos disponibles de la capa de transporte, que podrían ser TCP o UDP.

Este modelo de comunicación podría ser de 2 tipos.

  1. Modelo de servidor de cliente : donde se conecta a un servidor y transfiere datos desde él. Por ejemplo, abres Google en tu navegador. Es solo una forma de comunicación entre su computadora portátil (Cliente) y el Servidor de Google.
  2. Red P2P : donde se almacena un archivo y sus compañeros lo descargan. Por ejemplo: red BitTorrent.

Entonces, lo que hizo Napster fue usar un poco de ambos modelos. El propósito de Napster era permitirte descargar música. Pero el servidor de Napster no guardó el archivo para ellos. Solo tienen la base de datos, de qué máquina (y su dirección IP) tiene qué canción. Entonces, cada vez que un usuario buscaba una canción en Napster, la usaba para proporcionar la dirección IP de esa máquina y luego el usuario podía descargarla.

La parte de búsqueda en el ejemplo anterior, está usando la comunicación modelo Cliente-Servidor y la descarga de archivos usa la red P2P.

Otros ejemplos de interesantes protocolos de comunicación de red que debe leer son:

  1. Protocolo de Skype – Wikipedia
  2. Red Bitcoin P2P (Enlace – https://en.bitcoin.it/wiki/Proto…)

Un nodo de computadora puede enviar datos binarios (los 1 y los 0) utilizando medios cableados o inalámbricos a otro nodo, pero con solo estos 1 y 0 un nodo receptor no puede entender lo que el otro nodo está tratando de decir o hacer. Los protocolos son reglas que ambas computadoras conocen y usan para comunicarse entre sí de manera correcta y eficiente para realizar una tarea en particular.

Entonces, por ejemplo, digamos que ambos nodos saben que una secuencia de inicio “1101” significa que otra computadora quiere enviar un archivo, los siguientes ocho bits representan la longitud del archivo en binario, y luego se envía el contenido binario real del archivo. Luego pueden intercambiar archivos.

Nota: Las reglas anteriores son solo explicativas, las situaciones de la vida real no son ideales y se deben considerar muchos casos antes de desarrollar un protocolo infalible. Las situaciones incluyen, qué sucede si se cambia algún bit durante la transmisión, qué sucede si el nodo receptor no puede procesar datos tan rápido como el remitente está enviando, etc. Entonces, en la vida real, el protocolo de comunicación general es en capas y complejo

Imad Ayad tiene un gran ejemplo. HTTP, SMTP, POP, IMAP y otros se definen de modo que las partes intercambien cadenas de texto que tienen significados predefinidos. Todo lo anterior son ejemplos de protocolos de Capa 7. Modelo OSI – Wikipedia

La idea es que cada capa tiene su propio conjunto de protocolos que no tienen que saber nada sobre las capas superiores o inferiores. Las definiciones de los protocolos anteriores no dicen nada acerca de cómo las cadenas de texto pasan de una máquina a otra. Los protocolos adicionales en cada capa sucesivamente inferior llevan los que están por encima de ellos. En un protocolo de capa 7 podríamos estar hablando sobre el intercambio de cadenas de texto, y en la capa 1 podríamos estar hablando sobre cómo modular una señal eléctrica para representar un patrón de bits.

Un ejemplo más simple es HTTP. El cliente y el servidor se comunicarán de la siguiente manera: