¿Qué es el número de puerto y la dirección del puerto?

A medida que las computadoras e Internet se hicieron populares y ofrecieron muchos servicios, se hizo necesario identificar cada servicio de manera única y, por lo tanto, en las redes de computadoras se introdujo el término puerto.
Comprendamos con este ejemplo,

  • una solicitud de un cliente a un servidor en Internet puede solicitar que se sirva un archivo del servidor o proceso del Protocolo de transferencia de archivos (FTP) de ese host. Para pasar su solicitud al proceso FTP en el servidor remoto, la capa de software del Protocolo de Control de Transmisión (TCP) en su computadora identifica el número de puerto 21 (número de puerto FTP) en el número entero de puerto de 16 bits que se adjunta a tu petición. En el servidor, la capa TCP leerá el número de puerto 21 y reenviará su solicitud al programa FTP en el servidor.

Un número de puerto puede oscilar entre 0 y 65535, pero los números de puerto entre 0 y 1023 se denominan puertos conocidos porque la mayoría de los servicios populares se encuentran dentro de este rango, como 21 para FTP, 80 para HTTP, 443 para HTTPS, 23 para TELNET y 22 para SSH

Hay 3 tipos de dirección, dirección IP, dirección MAC y dirección de puerto.

Cada vez que se solicitan datos, por ejemplo: cuando abre una pestaña en su navegador web y solicita alguna página web xyz y una pestaña más solicitando una pestaña abc, se asigna un puerto lógico con un número de puerto a la pestaña que ha abierto. las solicitudes se envían al servidor a través de la red y se enrutan de nuevo por la dirección IP, la dirección MAC ayuda a entregar datos a una PC específica y en la PC hay puertos lógicos y con cada número de puerto de datos existe para que los datos se reciban en consecuencia. Por lo tanto, los datos solicitados para la página web se enviarán a la pestaña xyz solo y no a la pestaña abc.

(DIRECCIÓN IP + NÚMERO DE PUERTO) = SOCKET, IP PF MÁQUINA SOLICITADA Y PUERTO PARA ENTREGA PRECISA, hay un campo llamado PROGRAMACIÓN SOCKET, búsquelo y obtendrá una idea precisa

Gracias.

Los puertos se utilizan para la desmultiplexación.
Puede tratarlo como un número que se utiliza para identificar qué proceso obtiene los datos.
Los servidores son contactados a través de puertos conocidos, recibiendo el proceso “escucha” en un puerto específico.
El puerto de origen es generado por el host local automáticamente y el puerto de destino es el puerto que el proceso de envío especifica hacia el destino.

También hay números de puerto reservados bien conocidos, un buen punto de partida sería: Lista de números de puerto TCP y UDP

Todas las demás respuestas cubrieron la mayor parte de la información. Agregaré una analogía simple que facilitará el concepto.

Digamos,
Un edificio de apartamentos es una computadora
Un apartamento / piso es una aplicación o un proceso en una computadora.

Conduces todo el camino para encontrarte con tu amigo y llegar al edificio de apartamentos. ¿Ahora? Hay 1000 apartamentos allí. ¿Cómo sabrá a qué apartamento ir?
Número de apartamento, ¿verdad? Eso es lo que distingue a cada casa en un edificio.

De manera similar, cuando un paquete de datos llega a su computadora, necesitamos alguna forma de decidir si es la aplicación de destino. ¿Se enviará a utorrent, google chrome o al juego multijugador que estás jugando? ¡Número de puerto!

Un número de puerto es una forma de identificar un proceso específico al que se debe reenviar un mensaje de Internet u otra red cuando llega a un servidor. Para el Protocolo de control de transmisión y el Protocolo de datagramas de usuario, un número de puerto es un entero de 16 bits que se coloca en el encabezado adjunto a una unidad de mensaje.

Cada aplicación puede ejecutarse solo en un socket que es único, es decir, no es utilizado por otra aplicación.

Socket = Dirección IP + Número de puerto

Por lo tanto, los números de puertos le proporcionan tantos sockets para que una aplicación los use.

Hola a todos

Q :: ¿Qué es un número de puerto?

Un número de puerto es parte de la información de direccionamiento utilizada para identificar a los remitentes y receptores de mensajes. Los números de puerto se usan más comúnmente con conexiones TCP / IP. Los enrutadores de red doméstica y el software de computadora funcionan con puertos y, a veces, le permiten configurar los ajustes del número de puerto. Estos números de puerto permiten que diferentes aplicaciones en la misma computadora compartan recursos de red simultáneamente.

P. ¿Cuál es el rango de puertos o cuántos puertos hay?
Los números de puerto pueden variar de 0 a 65535, por lo que en total podemos obtener 65536 puertos

P. ¿Por qué los números de puerto son solo 65536?
Esto se debe a la limitación en las pilas TCP / IP donde el campo del puerto tiene un tamaño de solo 16 bits. Entonces obtenemos solo 2 ^ 16 puertos que es igual a 65536 puertos

Los números de puerto tienen un rango de 0 … 65535 (aunque a menudo 0 tiene un significado especial). En la implementación original de BSD TCP, solo la raíz puede unirse a los puertos 1 … 1023, y los puertos asignados dinámicamente se asignaron del rango 1024 … 5000; los otros estaban disponibles para asignación estática sin privilegios. En estos días 1024 … 5000 a menudo no son suficientes puertos dinámicos, y la IANA ahora ha designado oficialmente el rango 49152..65535 para la asignación dinámica de puertos. Sin embargo, incluso eso no es suficiente puertos dinámicos para algunos servidores ocupados, por lo que el rango suele ser configurable (por un administrador). En los sistemas modernos de Linux y Solaris (a menudo utilizados como servidores), el rango dinámico predeterminado ahora comienza en 32768. Mac OS X y Windows Vista predeterminan 49152..65535.

[ [correo electrónico protegido] ~] # cat / proc / sys / net / ipv4 / ip_local_port_range

32768 61000

solaris $ / usr / sbin / ndd / dev / tcp tcp_smallest_anon_port tcp_largest_anon_port

32768

65535

macosx $ sysctl net.inet.ip.portrange.first net.inet.ip.portrange.last

net.inet.ip.portrange.first: 49152

net.inet.ip.portrange.last: 65535

vista> netsh int ipv4 show dynamicport tcp

Protocolo tcp Rango de puerto dinámico

Puerto de inicio: 49152

Número de puertos: 16384

P. ¿Cuáles son los puertos conocidos?
Los puertos conocidos son de 0 a 1023 (total 2 ^ 10 = 1024 puertos)

P. ¿Cuáles son los puertos registrados y (Rango: 1024 a 49151)

Usado por un servicio específico en aplicaciones como Oracle Database listener (1521), MySql (3306), Microsoft Terminal Server (3389), etc.

P. ¿Cuáles son los puertos dinámicos y / o privados? (Rango: 49152 a 65535)

IANA no puede registrar estos puertos. Esto se utiliza para fines personalizados o temporales y para la asignación automática de puertos efímeros (o efímeros) que se utilizan internamente por aplicaciones / procesos. Puede ver estos puertos ejecutando el comando ‘netstat’ en la columna “Dirección local”.

P. ¿Qué quiere decir con puerto predeterminado? El puerto predeterminado es un puerto designado para un servidor particular conocido.

P. ¿Podemos cambiar el puerto predeterminado para un servicio (por ejemplo, Apache, squid)?
Si podemos cambiar

P. ¿Cuáles son los números de protocolo para TCP y UDP?
Número de protocolo TCP: 6
Número de protocolo UDP: 17

P. ¿Cómo encontrar qué puertos están abiertos?
Puede encontrar los puertos en su servidor Linux con el comando nmap

#netstat -ntlp
aquí n -> muestra el host por números
t -> muestra los protocolos tcp
u -> para verificar los protocolos udp
l -> puertos de escucha
p -> muestra qué proceso controla el puerto
P. ¿Cómo encontrar los puertos abiertos de la impresora?

[ [correo electrónico protegido] Escritorio] # netstat -ntlp | grep cups
tcp 0 0 127.0.0.1:631 0.0.0.0:* ESCUCHE 1525 / cupsd
tcp 0 0 :: 1: 631 ::: * ESCUCHE 1525 / cupsd P. ¿Cómo detectar los puertos abiertos del servidor remoto?
[ [correo electrónico protegido] Escritorio] # nmap -sT 192.168.0.250
se mostrará así
SERVICIO DEL ESTADO DEL PUERTO
21 / tcp ftp abierto
22 / tcp abrir ssh
25 / tcp smtp abierto
80 / tcp http abierto
Q. ¿Cómo cambiar el número de puerto SSH?

[ [correo electrónico protegido] Escritorio] # netstat -ntlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* ESCUCHE 1646 / sshd
tcp 0 0 ::: 22 ::: * ESCUCHE 1646 / sshd

ir al archivo de configuración

[ [correo electrónico protegido] Escritorio] # vim / etc / ssh / sshd_config

puerto = 2200

guardar y Salir

[ [correo electrónico protegido] Escritorio] # service sshd restart

Deteniendo sshd: [OK]
Iniciando sshd: [OK]

[ [correo electrónico protegido] Escritorio] # netstat -ntlp | grep ssh
tcp 0 0 0.0.0.0:2200 0.0.0.0:* ESCUCHE 11904 / sshd
tcp 0 0 ::: 2200 ::: * ESCUCHE 11904 / sshd

ahora el número de puerto cambió con éxito

P. ¿rempte loggin con número de puerto?

ssh -p 22 [correo electrónico protegido]

Algunos números de puerto importantes:

20-FTP Data (para transferir datos FTP)

Control 21-FTP (para iniciar la conexión FTP)

22-SSH (para una administración remota segura que utiliza SSL para cifrar la transmisión)

23-Telnet (para administración remota insegura

25-SMTP (Agente de transferencia de correo para servidor de correo electrónico como ENVIAR correo)

53- DNS (Servicio especial que utiliza TCP y UDP)

68-DHCP

69-TFTP (el protocolo de transferencia de archivos trivial utiliza el protocolo udp para la conexión menos transmisión de datos)

80 -HTTP / WWW (apache)

88-Kerberos

110-POP3 (Agente de entrega de correo)

123-NTP (el protocolo de tiempo de red utilizado para la sincronización de tiempo utiliza el protocolo UDP)

137-NetBIOS (nmbd)

139,138,445-SMB-Samba (smbd)

143-IMAP

161-SNMP (para monitoreo de red)

389-LDAP (para administración centralizada)

443-HTTPS (HTTP + SSL para acceso web seguro)

514-Syslogd (puerto udp)

995-POP3s

3260-ISCSI

Proxy 3128-calamar

631-Impresoras (tazas)

2049-NFS (nfsd, rpc.nfsd, rpc, portmap)

* Si no se menciona el protocolo, el puerto anterior es únicamente para TCP. Algunos servicios usan UDP como se menciona en la lista anterior.

Cada segmento tiene campos especiales que indican el socket al que se entregará el segmento. Estos campos son campos de número de puerto. Los números de puertos ayudan a diferentes procesos en el mismo sistema a compartir recursos de red simultáneamente.

En las redes cuando el segmento llega al host final, se demultiplexa con la ayuda de números de puerto y el mensaje se envía al socket correspondiente. Los datos del segmento luego pasan a través del socket al proceso correspondiente. Un proceso puede tener uno o más sockets.

Como las direcciones IP se usan para identificar todos y cada uno de los nodos en Internet, los números de puerto se usan para identificar el socket al que se entrega el segmento en el host final.

Cada número de puerto es un número de 16 bits, que va de 0 a 65535. Los números de puerto que van de 0 a 1023 son números de puerto bien conocidos y están restringidos, lo que significa que están reservados para su uso por protocolos de aplicación conocidos como HTTP ( usa el puerto 80).

Un número de puerto es básicamente un número entero único de 16 bits dado para cada socket en su computadora con la ayuda de un servidor externo que puede entregar solicitudes a todos y cada uno de los procesos.

Ahora, hay muchas aplicaciones ejecutándose en la computadora. Cada uno se ejecuta con un número de puerto en la computadora, este número de puerto es decidido por el núcleo del sistema operativo, este número de puerto se llama dirección de puerto.

Otro uso simple es que cada aplicación puede ejecutarse solo en un socket que no es utilizado por otra aplicación.

Socket = ipAddress + Portnumber

Por lo tanto, los números de puertos le proporcionan tantos sockets para que su aplicación los use.

Un ejemplo simple es

supongamos que instaló wmp y xamp en la misma máquina, tiene que cambiar el puerto predeterminado de uno de los servidores para permitir que funcionen simultáneamente.

En un contexto TCP / IP, un puerto es una abstracción de nivel de transporte para un punto final de comunicación. Por ejemplo, una aplicación puede usar un puerto TCP para proporcionar un servicio específico a sus corresponsales. HTTP, el protocolo para la web, generalmente se ejecuta en el puerto TCP 80.

Esos son nombres diferentes para la misma cosa. Son la parte específica del host de cualquier dirección IP, que se utiliza para llevar los datos al proceso correcto en el host de destino. Internet sabe cómo encontrar el host de destino, y una vez que se entrega un paquete de datos allí, depende de la pila de la red en el sistema operativo para finalizar la entrega al proceso adecuado.

Puede pensar en el número de puerto como análogo al número de suite en un hotel o apartamento. La oficina de correos sabe cómo enviar el correo a la dirección y deposita el correo en un buzón de correo allí. Después de eso, depende de un mecanismo interno (el personal del hotel, o usted como el habitante del apartamento) hacer que el correo llegue a la suite o persona correcta.

El número de puerto es un número de 2 bytes que se usa para identificar un socket de forma exclusiva.
Deberíamos usar un nuevo número de puerto para cada nuevo socket. Del mismo modo, deberíamos asignar un nuevo número de puerto dependiendo del servicio provisto en un socket. A cada nuevo servicio en la red se le debe asignar un nuevo número de puerto.