Colección de citas famosas - Colección de máximas - Qué son los clientes y los puertos. ¡Explicación detallada! ¡Gracias!

Qué son los clientes y los puertos. ¡Explicación detallada! ¡Gracias!

Comprender la relación entre Cliente y Servidor. En el mundo de la informática, la parte que proporciona los servicios se llama servidor y la otra parte que recibe el servicio se llama cliente. El ejemplo con el que más a menudo entramos en contacto es el servicio de impresión proporcionado por el servidor de impresión en la red de área local: se puede decir que la computadora que proporciona el servicio de impresión es el servidor de impresión y la otra parte que utiliza el servidor de impresión para; Proporcionar servicios de impresión se llama cliente. Sin embargo, no es absoluto quién es el cliente y quién es el servidor. Por ejemplo, si el servidor que proporcionó originalmente el servicio quiere utilizar los servicios proporcionados por otras máquinas, su función cambiará a la de cliente.

En Internet, esta relación se convierte en la relación entre los usuarios y los sitios web. Los usuarios acceden a Internet a través de dispositivos como módems, ingresan la URL en el navegador y realizan solicitudes (Solicitudes) al sitio web para navegar por páginas web a través del protocolo de comunicación HTTP. Después de recibir la solicitud del usuario, el sitio web transmite los datos de la página web que el usuario desea navegar. Esta acción se llama respuesta. El sitio web proporciona servicios de datos web y el usuario acepta el servicio de datos proporcionado por el sitio web, por lo que el usuario aquí es el cliente y el sitio web que responde a la solicitud del usuario se denomina servidor.

Sin embargo, la relación entre el cliente y el servidor no necesariamente tiene que establecerse en dos máquinas separadas. Esta relación maestro-esclavo también existe en la misma máquina. El servidor que proporciona el servicio y el cliente que recibe el servicio también pueden estar en la misma máquina. Por ejemplo, ejecutamos el navegador en el servidor que proporciona la página web para navegar por la página web proporcionada por esta máquina, de modo que lo mismo. la máquina actúa como servidor y cliente al mismo tiempo.

¿Qué es un "puerto"?

"Puerto" de computadora es la traducción del inglés puerto, que puede considerarse como la salida de comunicación entre la computadora y el mundo exterior. Los puertos en el campo del hardware también se denominan interfaces, como puertos USB, puertos serie, etc. Los puertos en el campo del software generalmente se refieren a puertos de protocolo de comunicación en la red para servicios de conexión y servicios sin conexión. Es una estructura de software abstracta, que incluye algunas estructuras de datos y buffers de E/S (entrada y salida básica).

En tecnología de redes, puerto tiene varios significados. Los puertos de concentradores, conmutadores y enrutadores se refieren a las interfaces conectadas a otros dispositivos de red, como puertos RJ-45, puertos serie, etc. El puerto al que nos referimos aquí no se refiere al puerto en el sentido físico, sino que se refiere específicamente al puerto en el protocolo TCP/IP, que es el puerto en el sentido lógico.

Entonces, ¿a qué se refiere el puerto en el protocolo TCP/IP? Si se compara la dirección IP con una casa, el puerto es la puerta de entrada y salida de la casa. Una casa real sólo tiene unas pocas puertas, ¡pero una dirección IP puede tener hasta 65536 (es decir: 256×256) puertos! Los puertos están marcados por números de puerto, que son solo números enteros que van de 0 a 65535 (256×256).

En Internet, cada host envía y recibe paquetes de datos a través del protocolo TCP/IP. Cada paquete de datos se enruta en Internet en función de la dirección IP de su host de destino. Se puede ver que no hay ningún problema en transmitir con éxito el paquete de datos al host de destino. ¿Dónde radica el problema? Sabemos que la mayoría de los sistemas operativos admiten múltiples programas (procesos) ejecutándose al mismo tiempo, entonces, ¿a cuál de los muchos procesos que se ejecutan al mismo tiempo debería el host de destino transferir el paquete de datos recibido? Obviamente es necesario resolver este problema e introducir el mecanismo de puerto.

El sistema operativo local asignará puertos de protocolo (protocal ports, que a menudo llamamos puertos) a aquellos procesos que los requieran. Cada puerto de protocolo se identifica mediante un número entero positivo, como por ejemplo: 80, 139, 445. , etc. Cuando el host de destino recibe el paquete de datos, enviará los datos al puerto correspondiente según el número de puerto de destino en el encabezado del mensaje, y el proceso correspondiente a este puerto recibirá los datos y esperará la llegada del siguiente. conjunto de datos. En este punto, el concepto de puertos todavía parece abstracto, así que sígueme y no te alejes.

Los puertos son en realidad colas. El sistema operativo asigna diferentes colas a cada proceso. Los paquetes de datos se envían a las colas correspondientes según el puerto de destino, esperando ser tomados por el proceso. También es posible que una cola se desborde, pero el sistema operativo permite que cada proceso especifique y ajuste el tamaño de su propia cola.

No solo el proceso que recibe el paquete de datos necesita abrir su propio puerto, sino que el proceso que envía el paquete de datos también necesita abrir el puerto. De esta forma, se identificará el puerto activo. el paquete de datos para que el destinatario pueda devolverlo sin problemas a este puerto.