Hola de nuevo NASeros. Ya estamos de
vuelta. Ya me conocéis, yo soy @macjosan en Twitter y este es el canal de
youtube del blog de la NASeros, o más bien ahora debería decir NASZeros. Eso está
explicado en el vídeo que acabo de publicar. Hoy vamos a ver la quinta clase
o el quinto vídeo del curso de redes. Hoy vamos a ver qué es un socket y que es un
puerto. Hoy es un vídeo muy importante porque es muy importante que entendáis
este concepto de puerto, muchos de vosotros sé que no lo entendéis bien,
muchos problemas cuando os queréis conectar desde fuera de vuestra red
vienen derivados porque no entendemos bien qué es un puerto yo lo que vamos a
ver hoy.
En primer lugar, ¿que es un puerto?. Explicado de una manera muy rápida y muy
a lo bestia un puerto es un número que le damos a una aplicación oa un servicio
que está corriendo dentro de un ordenador o de un servidor o de
cualquier sistema informático. Me voy a explicar. Como ya sabéis dentro de un
ordenador pues hay muchas aplicaciones. Podemos tener el programa de correo,
podemos tener varios navegadores web, podemos tener varios juegos, podemos
tener infinidad aplicaciones dentro de un ordenador o de
un servidor. Que para eso están. Como ya ha explicado más de una vez en estos
vídeos anteriores vamos a hacer la analogía de una red con un servicio
postal un servicio postal tradicional y como ya sabemos cuando queremos enviar
una carta tenemos que poner la dirección completa del destinatario de esa carta
tenemos que poner la calle el número del piso.
Tenemos que poner el código postal,
la ciudad, el país, todos los datos. Al igual que en un ordenador hay muchas
aplicaciones corriendo dentro de una casa hay varias personas viviendo dentro
de una casa podemos tener el papá la mamá el hijo uno el hijo 2 el abuelo. Es
algo muy parecido. Nosotros como ya expliqué en los vídeos anteriores cuando
enviamos un paquete a través de internet porque la información se trocea en
paquetes tenemos que poner la ip pública y a través de esa ip pública a través de
internet y de diferentes sistemas eso va a parar al ordenador de destino
exactamente igual que cuando nosotros enviamos una carta llega a la casa de
destino porque hacemos la analogía de una casa con un ordenador cuando esa
carta le entrega al cartero en una casa luego dentro de esa casa quién coja esa
carta mirará dirá: es para papá, para mamá, para hijo 1, y se lo dará a la
persona que es el destinatario final de esa carta .Cuando el paquete de internet
llega al ordenador hacemos lo mismo se mira para qué aplicación es este paquete
y de es para la aplicación número 80 que es 80 el servidor web porque el servidor
web va en el puerto 80 como vamos a ver más adelante.
Para quién va este paquete
va para la aplicación la que sea 443 pues es el servidor seguro para qué
aplicaciones para él la 22525, pues es tal juego, es decir, nosotros no miramos las aplicaciones numerados los servicios y
cuando llega a ese ordenador a través de ese número que le hemos dado conseguimos
que llegue a la aplicación que en concreto va ese paquete pues para que lo
pueda leer y hacer lo que tenga que hacer con él básicamente eso es un
puerto es un número que le damos a una aplicación para poder identificar dentro
de un ordenador no es lo mismo este este puerto este
número que él PID o el número de aplicaciones otra cosa que no tiene nada
que ver porque las aplicaciones dentro de los procesos de cada ordenador tienen
un número identificador esto es otra cosa distinta.
Entonces, estos puertos
dentro de cada ordenador dentro de cada servidor pueden ir del 0 al 65.000,
bueno es 65535 pero en números redondos hasta el 65.000 por lo cual
podemos tener hasta 65 mil aplicaciones dentro de un ordenador
el servidor de correo o el programa de correo tendrá un número,, el juego x
tendrá otro número el firefox tendrá otro número y así con todas las
aplicaciones. Cómo funcionan estos puertos de una
manera muy sencilla como ya sabemos cuando enviamos información a través de
internet lo que hacemos es creamos un paquete en
ese paquete ponemos la ip origen y la ip de destino es decir la dirección pública
y lo enviamos lo recibe el destinatario hace lo que le hayamos pedido una
búsqueda o lo que sea y lo devuelve porque tiene la ip de origen ahora qué
es lo que hacemos además de poner la ip de origen y la ip de destino creo que
tenemos que poner el puerto de origen y el puerto de destino
vamos a verlo ahora imaginad que por ejemplo queremos conectarnos a amazon
aquí tenemos la ip pública de amazon y la ip pública nuestra aunque realmente
todo el proceso habría que tener en cuenta si estamos con una ip privada y
hacer lo que es el NAT que ya expliqué en el vídeo anterior, nos vamos a olvidar
de IPs privadas y de NAT, vamos a hacerlo todo como si fuera un ip pública
porque ahora lo que me interesa es que lo entendáis.
Aquí tendríamos el
ordenador nuestro y el servidor de amazon y por ejemplo abrimos firefox
abrimos el navegador de firefox y creamos un paquete con un ip origen y
una ip destino con las ips públicas como ya sabemos y como acabo de mencionar
firefox va a tener asociado un puerto va a tener asociado un número que voy a
identificar dentro del ordenador la aplicación de firefox va a tener el
puerto por ejemplo 6.520 en el siguiente vídeo veremos porque es un puerto o es
otro veremos por qué tiene este número o tiene otro número en concreto pero lo
dejamos para el próximo vídeo ahora quiero que entendáis el concept.
Firefox
tendría dentro de mi ordenador el puerto 6520 o el identificador de aplicación
6520 y amazon tendría el puerto 80 porque los servidores tienen el puerto
80 por defecto así que en el paquete aparte de poner la ip origen y la ip
destino pondríamos el puerto origen y el puerto destino y enviaríamos el paquete
amazon recibiría el paquete amazon haría lo que tuviera que hacer por ejemplo el
precio de un producto generaría un nuevo paquete con la ip
origen la suya la ip destino la nuestra y ahora al revés el puerto origen sería
el suyo el 80 y el puerto destino el nuestro porque en el propio paquete
cuando le ha llegado ya ponía el puerto de destino y nos lo envía tan sencillo
como eso una vez que llegue al ordenador como el ordenador sabe que el puerto de
destino 6.520 sabrá que es para la aplicación firefox y le enviará el
paquete con los datos a firefox al navegador y así nosotros podremos ver
por ejemplo el precio de un producto que acabamos de consultar en amazon.
Así que para establecer una conexión en cada punto de la comunicación es decir en mi
ordenador y en el ordenador al que me quiero conectar tenemos una ip y un
puerto y eso es lo que se llama socket un socket es la unión de la ip con el
puerto en este caso tendremos el socket firefox en el pc y el socket servidor de
la web de amazon tendremos dos socket cada equipo tendrá un socket que estará
compuesto por su ip y el puerto que designe a esa aplicación
dentro de ese ordenador o dentro de ese servidor y un socket se escribe así se
escribe la ip dos puntos y el puerto.
Los dos puntos es para separar para que
sepamos dónde acaba la ip y dónde empieza el puerto o donde acaban los
números de la ip y dónde empiezan los números del puerto
y lo mismo ocurriría con el socket de el servidor de amazon tendría ésta forma. Por eso muchas veces los que sois seguidores de NASeros muchas veces
cuando hago configuraciones de equipos pongo una ip dos puntos y otros
numeritos eso sería un socket y una vez que tenemos los dos sockets definidos se
establece la comunicación y como ya sabéis muchas veces en las
comunicaciones tenemos una estructura cliente servidor. ¿Qué es un cliente? Un
cliente es el que inicia la comunicación es decir es el que genera el paquete que
luego se enviará a un destino. ¿Y cuál es el destino? El servidor. Esto tiene unas
implicaciones que vamos a ver en el próximo vídeo porque los servidores y
los clientes tienen unos puertos distintos cada uno de ellos tienen
definidos unos puertos en función de que seas un servidor o que seas un cliente
pero solo veremos para el próximo vídeo y os tienes que quedar con la idea que
el cliente es el que origina la comunicación el que la empieza y el
servidor es el que la recibe y luego nos contesta con información que sea.
Por ejemplo nosotros cuando vamos a una tienda el servidor sería el dependiente
de la tienda él está esperando a que le llegue la gente le está esperando a sus
clientes eso sería un servidor él no nos va a buscar él está esperando en su
tienda a que le entre un cliente y nosotros somos los que hacemos la acción
o los que iniciamos la acción de entrar a la tienda para hacer una compra por
eso hay que diferenciar entre el servidor y el cliente.
En este caso
nosotros somos los que nos conectamos al servidor de amazon pero amazon no se
conecta a nosotros sin previo aviso amazon no inicia nunca la comunicación
la comunicación le iniciamos nosotros. Y ahora imaginaros que nos quisiéramos
conectar a amazon pero desde un smartphone ¿Cuál sería el procedimiento?
Exactamente el mismo. Abriríamos la aplicación de amazon en el smartphone
contando con que estuviéramos dentro de la misma red que estuviéramos dentro de
la wifi de nuestra casa como ya explicado compartiríamos la misma ip
pública. Todos los equipos tienen la misma ip pública, el móvil le daría un
puerto a la aplicación de amazon por ejemplo el 15214 y eso generaría un
qué socket pues la ip con el puerto separado por dos puntos en amazon
tendría el mismo socket lo mantendría porque seguiría siendo la misma ip
pública con el mismo puerto y se establecería la comunicación y el
procedimiento sería exactamente igual tantos le hacemos en firefox para
consultar un precio como si le hacemos con la aplicación de amazon dentro de un
smartphone para consultar un precio también o hacer una compra dentro de
amazon la comunicación y el procedimiento es el mismo.¿Y qué
ocurriría si ahora quisiéramos abrir una segunda pestaña en el ordenador para
conectarnos también a amazon? Porque tened en cuenta que seguiríamos teniendo
la misma ip pública y hemos dicho que cada aplicación tiene su propio puerto,
como es la misma aplicación en teoría tendría el mismo puerto.
¿O que ocurriría
si nos quisiéramos conectar esta vez desde por ejemplo internet explorer
desde otro navegador también a amazon ? Os vais a tener que esperar al próximo
vídeo porque en el próximo vídeo vamos a ver cómo se hace esto y vais a ver que
es muy sencillo. Y por hoy lo vamos a dejar aquí prefiero que entendéis bien
que es un socket, que es un puerto para qué sirven y en el próximo vídeo
vamos a profundizar en los socket y en los puertos vamos a ver por ejemplo en
el caso de que nosotros tengamos dos pestañas abiertas en un navegador y
queramos acceder al mismo servidor web como se hace o al revés cuando tenemos
en un servidor web un puerto al que quieren acceder dos ordenadores vamos a
ver diferentes casuísticas y cómo se soluciona todo eso y como ya sabéis si
queréis más información podéis ir a www.naseros.com Allí está todo
centralizado, los vídeos los podcast el grupo de telegram.
Recordad que ahora
tenéis dos grupos de telegram tenis este de aquí el general el de siempre de
NASeros donde podéis exponer todas vuestras dudas y luego también tenemos
el de NASZeros que es un grupo de telegram nuevo que he creado
precisamente para la gente que está en este curso para gente que tiene dudas
como si dijéramos más sencillas, para gente que a lo mejor le intimida entrar
en un grupo donde es verdad que a veces hay preguntas de de mucho nivel y sería
pues como el grupo de telegram de los principiantes o de los novatos, como lo
queréis decir.
Así que sin más me despido ya aquí como siempre digo yo
el vídeo dale un like y sobre todo si crees que esto le puede interesar a más
gente que crees que alguien puede aprender redes y le puede venir bien
compartirlo pues con gente que creéis que esto le puede servir de ayuda, con
familiares con amigos, con compañeros de trabajo, con quien sea esto ha sido todo
nos vemos en la próxima un saludo y adiós bye bye