Este es un pequeño artículo dedicado a aclarar un concepto muy importante y que conviene conocer para entender el funcionamiento de las redes de datos: el modelo cliente-servidor.
El modelo cliente-servidor representa la forma en la que se producen las comunicaciones entre dos nodos de una red. En este modelo, uno de los nodos que forma parte de la comunicación tiene el rol de cliente, y otro tiene el rol de servidor.
Sin embargo, en la mayor parte de los casos, los elementos que hacen uso de este modelo son realmente aplicaciones/programas que se ejecutan dentro de los nodos. Por tanto hablaremos realmente de aplicaciones cliente y aplicaciones servidor.
Una aplicación cliente es el elemento de la comunicación que pide o solicita un servicio de red, por ejemplo, el acceso a una página web, o la descarga de un archivo, o el envío de un email.
Una aplicación servidor es el elemento de la comunicación que responde a las peticiones de los clientes, proporcionando el servicio requerido, es decir, enviando la página web o el archivo solicitado o el email.
Es importante destacar que el rol de cliente o de servidor no lo tiene el equipo (nodo) donde esté funcionando la aplicación sino la propia aplicación.
Lo que ocurre es que en muchas ocasiones, cuando las principales aplicaciones que están funcionando en un equipo son aplicaciones de tipo servidor, el propio equipo es llamado servidor. Sin embargo, de forma general, en un equipo, puede haber tanto aplicaciones cliente como aplicaciones servidor funcionando al mismo tiempo.
Vamos a ver algunos ejemplos del modelo cliente-servidor. En la siguiente figura se representa la comunicación más típica en Internet, la conexión a una página web.
Modelo cliente-servidor en el servicio web
Se puede observar como dicha comunicación sigue el modelo cliente-servidor, donde el navegador web (Internet Explorer, Firefox, Chrome…) del usuario que quiere acceder a una página web tiene el rol de cliente en el host A, y el proceso que atiende al cliente y le envía la página web solicitada dentro del host B tiene el rol de servidor. En la actualidad la gran mayoría de comunicaciones en Internet siguen el ejemplo anterior.
Vamos con otro ejemplo. En la siguiente figura, el host A tiene ahora tres aplicaciones en ejecución. Dos de ellas funcionan como aplicaciones cliente (servicio Web y servicio de correo electrónico) y la tercera, que es una aplicación para compartir carpetas en red, funciona como una aplicación servidor. En este caso es una aplicación del host C la que tiene el rol de cliente para acceder a las carpetas compartidas del host A.
Comunicaciones simultáneas en dispositivos con varios procesos en ejecución
Además, se puede ver como las aplicaciones cliente del host A, el navegador web y el cliente de correo, se conectan a las aplicaciones servidor que están funcionando en el host B.
Este sería un ejemplo de un equipo (Host A) que tiene los dos roles, el de cliente y el de servidor.
Por último, en la siguiente figura tenemos un host con el rol de servidor web que atiende a varios clientes. En este caso, al equipo se le podría denominar servidor porque su principal función es ejecutar una aplicación que hace las funciones de servidor (servidor web).
Un servidor web atendiendo varios clientes (navegadores)
Como alternativa al modelo cliente-servidor existe el modelo peer-to-peer (P2P). En este modelo, cada nodo hace funciones tanto de servidor como de cliente y por tanto, el servicio proporcionado no está centralizado en un servidor sino que está distribuido en todos los nodos de la red. Un ejemplo que sigue este modelo es el protocolo torrent utilizado para la compartición de archivos en red.
El modelo cliente-servidor en las redes de datos,