PUERTOS/ SOCKETS TCP/IP
PUERTOS/ SOCKETS TCP/IP
En el contexto de las redes y el modelo
TCP/IP, los puertos y sockets son conceptos
fundamentales para la comunicación entre dispositivos. Aquí tienes una
explicación detallada de cada uno:
Puertos TCP/IP
Concepto
Un puerto es un número que
identifica de manera única una conexión de red específica en un dispositivo.
Los puertos permiten que múltiples servicios o aplicaciones se ejecuten
simultáneamente en un mismo dispositivo, cada uno con su propio puerto.
Tipos de Puertos
- Puertos
Bien Conocidos (0-1023):
Reservados para servicios y aplicaciones estándar. Ejemplos:
- HTTP: Puerto 80
- HTTPS: Puerto 443
- FTP: Puerto 21
- SMTP: Puerto 25
- Puertos
Registrados (1024-49151):
Asignados a aplicaciones y servicios específicos por la IANA (Internet
Assigned Numbers Authority).
- Puertos
Dinámicos o Privados (49152-65535): Utilizados temporalmente por aplicaciones para conexiones
efímeras.
Sockets TCP/IP
Concepto
Un socket es una combinación de
una dirección IP y un número de puerto. Los sockets permiten que las
aplicaciones se comuniquen a través de la red. Un socket se define por:
- Dirección
IP: Identifica el
dispositivo en la red.
- Número
de Puerto: Identifica la
aplicación o servicio en el dispositivo.
Funcionamiento
Cuando una aplicación quiere enviar datos a través de la red,
crea un socket y lo asocia con un puerto específico. El socket se utiliza para
establecer una conexión con otro socket en un dispositivo remoto. Por ejemplo,
una conexión HTTP entre un navegador web y un servidor web utiliza sockets para
enviar y recibir datos.
Ejemplo de Uso
Supongamos que un navegador web quiere conectarse a un servidor
web:
- El
navegador crea un socket con su dirección IP y un puerto dinámico, por
ejemplo, 192.168.1.2:54321.
- El
navegador se conecta al socket del servidor web, que podría ser 203.0.113.5:80 (donde
80 es el puerto estándar para HTTP).
- Los
datos se envían y reciben a través de estos sockets.
Ventajas de Usar Puertos y Sockets
- Multiplexación: Permiten que múltiples conexiones se manejen
simultáneamente en un solo dispositivo.
- Identificación: Facilitan la identificación y gestión de
diferentes servicios y aplicaciones en la red.
- Seguridad: Los puertos pueden ser monitoreados y
controlados para mejorar la seguridad de la red.
Ejemplo de Configuración en Python
Aquí tienes un ejemplo simple de cómo crear un socket en Python
para un servidor y un cliente:
Servidor
Python
import socket # Crear un socketserver_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_socket.bind(('0.0.0.0', 8080))server_socket.listen(5) print("Servidor escuchando en el puerto 8080...") while True: client_socket, address = server_socket.accept() print(f"Conexión desde {address}") client_socket.send(b"Hola desde el servidor!") client_socket.close()
Cliente
import socket # Crear un socketclient_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client_socket.connect(('127.0.0.1', 8080)) # Recibir datos del servidordata = client_socket.recv(1024)print(f"Recibido: {data.decode()}")client_socket.close()
Este ejemplo muestra cómo un servidor puede escuchar en un
puerto específico y cómo un cliente puede conectarse a ese servidor utilizando
sockets.
¿Te gustaría saber más sobre algún aspecto específico de los
puertos o sockets TCP/IP?
: Python Sockets : IANA Port Numbers


Comentarios
Publicar un comentario