Puertos/ Sockets TCP/IP

 PUERTOS/ SOCKETS TCP/IP



El protocolo TCP IP dispone de un total de 130070 puertos, los puertos TCP que van desde el 1 al 65535 y los puertos UDP que igualmente van del puerto 1 al 65535.

En la actualidad, las redes privadas o redes locales y las red pública Internet se basan en el protocolo IP (Internet Protocol)

A grandes rasgos, el protocolo IP define como se define la información en el origen y en el destino y gestiona el direccionamiento y la fragmentación de los paquetes de datos.

Protocolo TCP

El protocolo TCP se refiere al Protocolo de Transmisión de Datos o Transmision Control Protocol y se centra en las conexión, proporcionando seguridad entre los dispositivos que conectan.

El protocolo TCP permite establecer la conexión e intercambio de datos en la red definiendo el proceso integro desde que se envían los datos hasta que son recibidos precisando una conexión y una autorización entre el emisor y el receptor antes de iniciarse la transferencia de datos.

De los puertos 0 al 1023 son establecidos por IANA que es la Autoridad de Asignación de Números de Internet (Internet Assigned Numbers Authority), son puertos de uso muy frecuente.

Del 1024 al 49151 se trata de puertos que pueden ser utilizados por aplicaciones de forma temporal.

Del 49152 al 65535 son puertos dinámicos que pueden ser utilizados para múltiples fines y aplicaciones.






Qué es un Socket y para qué sirve

Cuando dos procesos que están en hosts diferentes necesitan intercambiar información a través de la red, ya sea la red local o Internet, es necesario que abran un socket para establecer la comunicación y también para intercambiar cualquier flujo de datos. Generalmente el flujo de datos se hace de forma fiable y ordenada, no obstante, dependemos de si los procesos están utilizando el protocolo TCP o el protocolo UDP, a continuación, os explicamos brevemente las principales características de ambos protocolos:

El protocolo TCP es un protocolo de la capa de transporte que es orientado a conexión, esto significa que antes de intercambiar los datos reales hay un paso previo para establecer una comunicación.



En el siguiente ejemplo, podemos ver los socket creados en un servidor web, mirando estos socket desde el propio servidor web.

 

Usuario 1

Protocolo: TCP.

IP origen: 77.77.77.77 (el cliente).

IP destino: 88.88.88.88 (nosotros).

Puerto origen o local: 49152 (el cliente).

Puerto destino o remoto: 443 (nosotros, usamos HTTPS).

En el caso del segundo usuario, tendríamos:

 

Usuario 2

Protocolo: TCP.

IP origen: 71.71.71.71 (el cliente).

IP destino: 88.88.88.88 (nosotros).

Puerto origen o local: 49152 (el cliente).

Puerto destino o remoto: 443 (nosotros, usamos HTTPS).

En este caso solamente ha cambiado la IP de origen, pero en cuanto cambia uno de los cuatro parámetros ya tenemos un nuevo socket que permite identificar la conexión de forma unívoca. Ese cliente puede seguir usando el puerto de origen 49152 como el primero, pero la IP de origen será distinta. En cuanto uno de los cuatro parámetros cambia, ya estamos en otro proceso totalmente diferente y no hay ningún problema para identificarlo adecuadamente.


Cómo ver todos los sockets en el sistema

En sistemas operativos Windows podemos ver todos los sockets del sistema que se encuentran abiertos, simplemente ejecutando el siguiente comando en el símbolo del sistema con permisos de administrador:

netstat

En la siguiente imagen podéis ver el protocolo TCP, la dirección local que está formada por IP:PUERTO y también la dirección remota que está formada por IP:PUERTO. Finalmente, también nos indica el estado de la conexión.



Comentarios

Entradas populares de este blog

PROTOCOLOS: (IP, SSH, TELNET, SMTP, POP DNS, DHCP, HTTP, FTP, ARP, ICMP, TCP, UDP, NAT)

COMANDOS CON SUS PARAMETROS DE USOS (GETMAC, PING, NSLOOKUP, NETSTAT, IPCONFIG, TRACERT, PATHPING Y NETSH)