- ¿Por qué las computadoras tienen 65.535 puertos TCP?
- ¿De dónde viene este número?
- ¿Que representa?
Respuestas:
Las computadoras no tienen puertos. El concepto de "puertos" al que se refiere está estrictamente relacionado con los protocolos TCP y UDP de la pila de red TCP / IP . Desde un punto de vista estrictamente técnico, tanto TCP como UDP están estructurados de tal manera que transportan varios tipos de información (puerto de origen, puerto de destino, número de secuencia, datos, etc.). Como tanto el "Puerto de origen" como el "Puerto de destino" están estructurados (dentro del paquete TCP y UDP) con un "campo" de 16 bits, estos son los límites: los puertos de origen y los puertos de destino pueden asumir todos los valores que se pueden representar con 16 bits (también conocido como: de 0 a 65535);
Ver arriba: los puertos de origen y los puertos de destino pueden asumir valores que van de 0 a 65535 porque ambos están representados con un valor de 16 bits, dentro de los paquetes respectivos
En resumen, tanto el "puerto de origen" como el "puerto de destino" juegan un papel muy importante, ya que permiten que un solo "host" (un "cliente" o un "servidor") "ofrezca" diferentes servicios a los clientes de la red, a pesar de tener una sola dirección IP. En otras palabras, sin "puertos", sería mucho más difícil tener un solo "servidor" que ofrezca un servidor web (en el puerto TCP 80 para HTTP simple; en el puerto TCP 443 para HTTPS), un servidor de correo (en el puerto TCP 25 para SMTP entrante; en el puerto TCP 110 para acceso POP3; en el puerto TCP 143 para acceso IMAP), un servidor DB (en TCP / puerto 3306 para MySQL)) etc.
Los lectores "puristas" pueden estar en desacuerdo conmigo sobre la simplificación excesiva anterior y ... estarán en lo cierto : en realidad, las direcciones IP y los PUERTOS juegan un papel muy importante que, para ser completamente comprendido, requiere una comprensión adecuada del concepto de " encapsulación " (seguro, el concepto más importante entre los presentados en esta misma respuesta). Desafortunadamente, esto generalmente requiere muchas veces para ser "dominado" correctamente y ... por eso, mi sobre simplificación anterior :-)
TCP, UDP y quizás otros servicios IP, utilizan puertos para una comunicación discreta entre los procesos del cliente y el servidor entre los hosts que utilizan una red IP.
Se puede encontrar información más detallada en este artículo wiki.
Desde una perspectiva de arriba hacia abajo, los puertos representan conversaciones distintas entre dos hosts. Por ejemplo, un host realiza varias solicitudes de DNS simultáneamente a su servidor designado, cada una utilizando un puerto de origen diferente al puerto de destino 53. A medida que el servidor obtiene las respuestas y atiende las solicitudes, enviará respuestas específicas al mismo puerto. , donde será recibido por el proceso distinto que espera una respuesta.
Desde una perspectiva ascendente, los puertos son una forma de reservar una línea de comunicación IP de procesos separados por el sistema operativo de un host. Si bien puede haber varios procesos que realizan solicitudes al mismo puerto de un host remoto, cada proceso utilizará un puerto de origen diferente para sus solicitudes. Esto asegura que las respuestas serán recibidas por el proceso apropiado.
Para los protocolos portados, hay 32 bits reservados en los encabezados de paquetes: 16 bits para el puerto de origen y 16 bits para el puerto de destino. Para TCP y UDP, estos son los primeros 32 bits que siguen inmediatamente al encabezado IP; comienzan en el 192 ° bit. Un número de 16 bits tiene valores entre 0 y 65535.
65,536 es un número muy común en informática, porque es 2 a la potencia de 16 (2 ^ 16). 2 ^ 8 es 256, y 65,536 es el cuadrado de 256.
En otras palabras, un número binario de 16 bits puede representar 65.536 enteros diferentes. Entonces, es probable que de allí provenga su rango de 65.535.
Pero espera, ¿crees que debo sacar un dígito porque 65,535 es 65,536 menos 1! Bueno, no si comienzas a contar desde cero. Por ejemplo, una imagen de 8 bits codifica 256 valores, pero normalmente estos comienzan en 0 y llegan a 255. Es por eso que a menudo se ven números como 255 o 65,535 en informática.
Supongo que los puertos TCP se almacenaron originalmente como un número de 16 bits, de ahí su límite superior. No estoy seguro si ese sigue siendo el caso. ¡Espero que eso ayude!