Saltar al contenido

Diferencia entre número de puerto y socket

Ya no tienes que buscar más por todo internet ya que llegaste al lugar perfecto, poseemos la respuesta que deseas pero sin problemas.

Solución:

(1) ¿Cuál es la diferencia entre estos dos?

Una computadora que ejecuta una red IP siempre tiene una cantidad fija de puertos: 65535 puertos TCP y 65535 puertos UDP. El encabezado de un paquete de red contiene un campo corto sin firmar de 16 bytes que especifica a cuál de esos puertos debe entregarse el paquete.

Los sockets, por otro lado, son asignados por demanda por cada programa. Un socket sirve como identificador/interfaz entre el programa y la pila de red del sistema operativo, y se usa para construir y especificar un contexto para una tarea de red en particular. Un socket puede o no estar vinculado a un puerto, y también es posible (y común) tener más de un socket vinculado a un puerto en particular al mismo tiempo.

(2) ¿Cómo se manipulan internamente los sockets y los puertos? ¿Los sockets son un archivo?

Eso depende totalmente del sistema operativo; y diferentes sistemas operativos lo hacen de diferentes maneras. No está claro qué quiere decir con “un archivo” en esta pregunta, pero en general, los sockets no tienen nada que ver con el sistema de archivos. Por otro lado, una característica de los sistemas operativos de estilo Unix es que los descriptores de socket también se pueden usar de la misma manera que los descriptores de archivos del sistema de archivos, es decir, puede pasarlos a read()/write()/select(), etc. y obtener resultados útiles. Otros sistemas operativos, como Windows, no son compatibles con esa función y para ellos debe usar un conjunto completamente separado de llamadas de función para sockets y archivos.

(3) ¿Cómo se envían los datos cuando los enviamos mediante una aplicación?

La aplicación llama a la función enviar () (o una función similar como enviar a ()), pasa el descriptor de socket relevante junto con un puntero a los datos que desea enviar, y luego depende de la pila de red copiar eso datos en un paquete y entregarlos al dispositivo de red adecuado para su transmisión.

(4) Si hay enchufes, ¿por qué usamos números de puerto?

Porque necesita una forma de comunicarse con programas particulares en otras computadoras, y la computadora A no tiene forma de saber qué sockets están presentes (si los hay) en la computadora B. Pero los números de puerto son fijos, por lo que es posible que los programadores los usen como un punto de encuentro para la comunicación; por ejemplo, su navegador web sabe que es casi seguro que un servidor web estará escuchando las solicitudes HTTP entrantes en el puerto 80 siempre que el servidor se esté ejecutando, por lo que puede enviar sus solicitudes al puerto 80 con una expectativa razonable de obtener una respuesta útil. Si tuviera que especificar un socket como objetivo, ¿qué especificaría? Los números de socket del servidor son arbitrarios y es probable que sean diferentes cada vez que se ejecuta el servidor.

1) ¿Cuál es la diferencia entre estos dos? (2) ¿Cómo se manipulan internamente los sockets y los puertos? ¿Los sockets son un archivo?

Un socket es (IP+Puerto):

  • Un enchufe es como un teléfono (es decir, un dispositivo de extremo a extremo para la comunicación)
  • IP es como su número de teléfono (es decir, la dirección de su enchufe)
  • El puerto es como la persona con la que desea hablar (es decir, el servicio que desea solicitar desde esa dirección)

Un socket es parte de un proceso. Un proceso en Linux es un archivo.

(3) ¿Cómo se envían los datos cuando los enviamos mediante una aplicación?

Los datos se envían convirtiéndolos en bytes. Hay un problema de little/big endian con respecto al orden en bytes, por lo que debe tener esto en cuenta al codificar.

(4) Si hay enchufes, ¿por qué usamos números de puerto?

Un socket es (dirección + puerto), lo que significa que la persona con la que desea hablar (puerto) puede ser accesible desde muchos números de teléfono (IP) y, por lo tanto, desde muchos sockets (eso no significa que la persona en un número de teléfono responderá a usted es el mismo que el del otro número de teléfono porque su trabajo aquí/allí puede ser diferente).

valoraciones y comentarios

Si haces scroll puedes encontrar las observaciones de otros sys admins, tú todavía tienes la opción de insertar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *