Todos los sistemas operativos tienen "Programas" , "Software" o "Aplicaciones" para que el mismo sistema operativo funcione o bien, para que podamos hacer algo dentro de ese sistema operativo, por ejemplo: Jugar videojuegos, editar videos, editar imágenes, usar un navegador de internet, etc.
Estos "Programas" se puede clasificar dentro de dos tipos principales.
-
Procesos: Un proceso es un programa que se ejecuta en primer plano y con el cual podemos interactuar directamente a nivel usuario. En muchas ocasiones cuenta con una interfaz grafica, con la cual interactuamos visualmente.
-
Servicios: Un servicio es un programa que se ejecuta en segundo plano y no podemos interactuar directamente o bien si podemos, no es del todo necesario para que funcione.
Los sistemas operativos cuentan con "Servicios" que vienen ya con el sistema operativo y estos son pequeños "Programas" que hace una tarea en particular muy específica.
Los servicios pueden conectarse a internet para solicitar información o recursos a un servidor y para hacerlo, necesitan conectarse a dicho servidor a través de una dirección IP.
Los servicios no solo se conectan a internet para solicitar información o recursos, también pueden conectarse a internet para brindar recursos o información a alguien más. Es decir que un servicio (Aplicación) puede conectarse a otro servicio en el cual uno de ellos solicita información y el otro la proporciona.
Estos servicios al poder conectarse a internet, se les conoce como "Servicios de red".
Los servicios de red ofrecen distintas funcionalidades (recuerda que son programas". Estas funcionabilidades son por ejemplo, cuando navegamos en internet a través de nuestro navegador (Chrome, Firefox, Opera, Safari, etc..) y nos conectamos a YouTube para ver un Video. Este proceso es así:
- Tu navegador (Programa), tiene una barra de búsqueda en la cual escribes "Youtube punto com"
- Este navegador al estar en ejecución y activo, se le considera un Procesos, con el cual interactúas visualmente y como mencione te da la opción de escribir un dominio como Youtube punto com
- Cuando escribes youtube punto com y presionar enter, este programa (Proceso) ejecuta otro programa interno del mismo Software general y este programa interno (Servicio), ejecuta en segundo plano lo necesario para solicitar la información de Youtube punto com
- Cuando se solicita la información de Youtube punto com, lo que se está llevando a cabo es una solicitud de información a un programa (servicio) que se está ejecutando en el servidor de youtube punto com. cabe mencionar que este servidor, también es un tipo de computadora que cuenta con un sistema operativo especializado para tomar el rol de servidor.
- Una vez se solicitó la información al servicio del servidor, este te responde y tu navegador procesa la información y te muestra algo bonito visualmente (probablemente también se utilice un servicio para esto)
El servidor en donde se encuentra alojado youtube punto com es considerado un servidor web y un servidor web, cuenta con múltiples servicios para llevar a cabo sus actividades de responder información a los usuarios.
Para ello se utilizan tecnologías como Apache, NGINX, IIS, LightHttp, Lighspeed, etc..
Estas tecnologías con Programas que procesan solicitudes y para procesar solicitudes y responderlas a través de internet, se necesita que estos programas tengan un servicio expuesto a internet. Para poder exponer un servicio a internet o múltiples servicios, se necesitan puertos, de hecho, uno para cada servicio. Estos puertos son algo así como Slots en donde se puede exponer un servicio de red a internet. según el RFC de TCP/IP (rfc1180) los puertos van del 1 al 65535 (esto debido a los bits asignados dentro de las cabeceras TCP para la asignación de puertos). Es decir que contamos con 65535 posibles puertos para exponer un servicio, ya que, al tener múltiples servicios, se necesitarían múltiples puertos para exponerlos.
En un servidor web normalmente están los siguientes puertos:
-
Puerto 21
-
Puerto 22
-
Puerto 80
-
Puerto 443
-
Puerto 995
-
Puerto 993
-
Puerto 3306
Y estos puertos están corriendo un servicio para que se pueden hacer solicitudes.
a continuación, la lista de los puertos mencionados anteriormente con los servicios que comúnmente ejecutan:
- Puerto 21 comúnmente ejecuta el servicio de FTP
- Puerto 22 comúnmente ejecuta el servicio de SSH
- Puerto 80 comúnmente ejecuta el servicio de HTTP
- Puerto 443 comúnmente ejecuta el servicio de HTTPS
- Puerto 993 comúnmente ejecuta IMAP
- Puerto 995 comúnmente ejecuta POP3
- Puerto 3306 comúnmente ejecuta el servicio de MySQL o bien MariaDB (El cual es un fork de MySQL)
Cada uno de esos servicio tiene una tarea en específico y están categorizados como "Protocolos de aplicación" por que trabajan en la capa de aplicación del modelo OSI.