Herramientas de usuario

Herramientas del sitio


clase:daw:si:3eval:tema17

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
clase:daw:si:3eval:tema17 [2020/09/08 18:37]
127.0.0.1 editor externo
clase:daw:si:3eval:tema17 [2021/05/10 13:05] (actual)
admin [Ejercicios]
Línea 1: Línea 1:
 ====== 17. El protocolo TCP ====== ====== 17. El protocolo TCP ======
  
-===== Contenidos ===== +===== Protocolo de Transporte =====
-  * Protocolo de Transporte +
-  * Puerto +
-  * Cliente-Servidor +
-  * TCP +
-  * UDP +
-  * QUIC y HTTP/3 +
- +
-===== Material ===== +
- +
-==== Protocolo de Transporte ====+
 Vamos a hacer un resumen de lo visto hasta ahora y de esa forma ver donde encaja el protocolo TCP. Vamos a hacer un resumen de lo visto hasta ahora y de esa forma ver donde encaja el protocolo TCP.
   * Para ordenadores que están conectado directamente , nos podemos conectar mediante Ethernet. Como dirección de los ordenadores usamos la MAC   * Para ordenadores que están conectado directamente , nos podemos conectar mediante Ethernet. Como dirección de los ordenadores usamos la MAC
Línea 38: Línea 28:
   * [[https://openwebinars.net/academia/aprende/tcp-ip/3654/|OpenWebinars: Protocolo de transporte]]   * [[https://openwebinars.net/academia/aprende/tcp-ip/3654/|OpenWebinars: Protocolo de transporte]]
  
-==== Puerto ====+===== Puerto =====
 Hasta ahora para comunicarnos desde un ordenador a otro solo necesitábamos a parte de los propios datos, la IP del ordenador origen y la IP del ordenador destino. Sin embargo con eso no es suficiente. Pensemos en nuestro movil. Cuando nos llegan datos al movil  ¿A que aplicación van? ¿Son para el Whatsapp?¿Para el correo?¿Para el navegador web? etc, etc ,etc. Por lo tanto es necesario especificar también cuando llegan los datos para que aplicación es. Eso se hace con un nuevo número llamado **PUERTO**. Ese número indica a que aplicación de nuestro ordenador se deben entregar los datos. Pero tambien es necesario indicar si van para el puerto por TCP o por UDP. Por lo tanto para establecer la conexión necesitamos lo siguiente: Hasta ahora para comunicarnos desde un ordenador a otro solo necesitábamos a parte de los propios datos, la IP del ordenador origen y la IP del ordenador destino. Sin embargo con eso no es suficiente. Pensemos en nuestro movil. Cuando nos llegan datos al movil  ¿A que aplicación van? ¿Son para el Whatsapp?¿Para el correo?¿Para el navegador web? etc, etc ,etc. Por lo tanto es necesario especificar también cuando llegan los datos para que aplicación es. Eso se hace con un nuevo número llamado **PUERTO**. Ese número indica a que aplicación de nuestro ordenador se deben entregar los datos. Pero tambien es necesario indicar si van para el puerto por TCP o por UDP. Por lo tanto para establecer la conexión necesitamos lo siguiente:
   * Protocolo a usar: TCP o UDP   * Protocolo a usar: TCP o UDP
Línea 104: Línea 94:
  
  
-==== Cliente-Servidor ====+===== Cliente-Servidor =====
 Fijémonos ahora en un detalle. Damos por hecho que cualquier ordenador se puede conectar con cualquier otro ordenador. Pues realmente no es así.  Fijémonos ahora en un detalle. Damos por hecho que cualquier ordenador se puede conectar con cualquier otro ordenador. Pues realmente no es así. 
   * A nivel de Ethernet y de IP, te puedes conectar con cualquier ordenador ya que es el propio sistema operativo el que recibe los datos.    * A nivel de Ethernet y de IP, te puedes conectar con cualquier ordenador ya que es el propio sistema operativo el que recibe los datos. 
Línea 170: Línea 160:
 Una forma mas sencilla de ver lo de cliente y servidor es pensar en la Web. Nuestros navegadores son procesos que son clientes de TCP. Por otro lado los servidores web son procesos que son servidores TCP que escuchan en el puerto 80. El servidor no inicia ninguna conexión con el cliente sino que el servidor está a la espera a que un cliente (nuestro navegador) se conecte. Por lo tanto es nuestor proceso navegador que actua como cliente TCP el que **siempre** inicia la conexión hacia el proceso que actua como servidor TCP. Y una vez establecida la conexión ya pueden cualquiera de los dos enviar datos al otro cuando quiera.  Una forma mas sencilla de ver lo de cliente y servidor es pensar en la Web. Nuestros navegadores son procesos que son clientes de TCP. Por otro lado los servidores web son procesos que son servidores TCP que escuchan en el puerto 80. El servidor no inicia ninguna conexión con el cliente sino que el servidor está a la espera a que un cliente (nuestro navegador) se conecte. Por lo tanto es nuestor proceso navegador que actua como cliente TCP el que **siempre** inicia la conexión hacia el proceso que actua como servidor TCP. Y una vez establecida la conexión ya pueden cualquiera de los dos enviar datos al otro cuando quiera. 
  
-==== Protocolo TCP ====+===== Protocolo TCP =====
 Por fin vamos a explicar el protocolo TCP. Lo vamos a ver de una forma muy muy sencilla ya que es un protocolo muy complejo.  Por fin vamos a explicar el protocolo TCP. Lo vamos a ver de una forma muy muy sencilla ya que es un protocolo muy complejo. 
  
Línea 243: Línea 233:
 Para terminar con TCP, podemos decir que después de muchos protocolos con TCP hemos conseguido que los datos se envíen desde un proceso a otro de una forma fiable sin perdidas o alteraciones de información.</note> Para terminar con TCP, podemos decir que después de muchos protocolos con TCP hemos conseguido que los datos se envíen desde un proceso a otro de una forma fiable sin perdidas o alteraciones de información.</note>
  
-==== Protocolo UDP ====+===== Protocolo UDP =====
 El protocolo UDP es muy similar al protocolo TCP , así que la mayoría de las cosas que hemos explicado de TCP sirven para UDP. Entonces ¿en que se diferencian?  El protocolo UDP es muy similar al protocolo TCP , así que la mayoría de las cosas que hemos explicado de TCP sirven para UDP. Entonces ¿en que se diferencian? 
  
Línea 286: Línea 276:
  
  
-==== Ultimas consideraciones ====+===== Ultimas consideraciones =====
 Vamos ahora hacer uno pequeños comentarios o aclaraciones sobre TCP y UDP. Vamos ahora hacer uno pequeños comentarios o aclaraciones sobre TCP y UDP.
  
Línea 295: Línea 285:
 Hay un riesgo en tener un proceso escuchado en un puerto. Si puede aceptar conexiones de cualquier ordenador del mundo, estamos expuestos a que un Hacker desde su ordenador se conecte por TCP a nuestro servidor y consiga hackearnos debido a cualquier error en nuestro software. Así que nunca es recomendable tener procesos escuchando en nuestro ordenador. Al hablar de los cortafuegos , volveremos a tratar este tema. Hay un riesgo en tener un proceso escuchado en un puerto. Si puede aceptar conexiones de cualquier ordenador del mundo, estamos expuestos a que un Hacker desde su ordenador se conecte por TCP a nuestro servidor y consiga hackearnos debido a cualquier error en nuestro software. Así que nunca es recomendable tener procesos escuchando en nuestro ordenador. Al hablar de los cortafuegos , volveremos a tratar este tema.
  
-==== Nuevos protocolos de transporte ====+===== Nuevos protocolos de transporte =====
  
 Hemos dicho que TCP es un protocolo muy lento mientras que UDP es rápido. El motivo de que TCP sea tan lento es que la comunicación es totalmente fiable aunque las comunicaciones físicas fallen mucho. TCP se creo en una época en que las redes fallaban mucho , así que había que hacer un protocolo muy robusto aunque fuera mas lento. Pero ya han pasado muchísimos años desde que se creo en 1973 y ahora las redes no fallan casi , así que toda esa seguridad que nos ofrece TCP no es necesaria.  Hemos dicho que TCP es un protocolo muy lento mientras que UDP es rápido. El motivo de que TCP sea tan lento es que la comunicación es totalmente fiable aunque las comunicaciones físicas fallen mucho. TCP se creo en una época en que las redes fallaban mucho , así que había que hacer un protocolo muy robusto aunque fuera mas lento. Pero ya han pasado muchísimos años desde que se creo en 1973 y ahora las redes no fallan casi , así que toda esa seguridad que nos ofrece TCP no es necesaria. 
Línea 339: Línea 329:
   - Cuantos puertos tiene como máximo por TCP un Host   - Cuantos puertos tiene como máximo por TCP un Host
   - Cuantos puertos tiene como máximo por UDP un Host   - Cuantos puertos tiene como máximo por UDP un Host
-  - ¿Cual es el número máximo de conexiones TCP que puede tener un Host contra otros Hosts? 
-  - ¿Cuantas conexiones puede como máximo aceptar un proceso servidor de un mismo Host cliente? 
-  - ¿Cuantas conexiones puede como máximo aceptar un proceso servidor?  
   - Si un servidor ya tiene todos sus puertos TCP en uso, ¿puede enviar algo por UDP?   - Si un servidor ya tiene todos sus puertos TCP en uso, ¿puede enviar algo por UDP?
   - ¿Podemos estableces desde 2 procesos de SSH conexión al mismo Host destino? Si la respuesta es afirmativa, indica como no se equivoca el Host destino a que proceso al devolver información cada información.   - ¿Podemos estableces desde 2 procesos de SSH conexión al mismo Host destino? Si la respuesta es afirmativa, indica como no se equivoca el Host destino a que proceso al devolver información cada información.
 +
  
 ==== Ejercicio 5 ==== ==== Ejercicio 5 ====
-Si el proceso A en el Host B es un cliente empieza a establecer conexiones contra un proceso del Host C por TCP, hasta que da error porque ya no se permiten mas.  
-  - ¿Puede otro proceso en el Host B establecer alguna otra conexión por TCP? 
-  - ¿Puede otro proceso en el Host B establecer alguna otra conexión por UDP? 
-  - ¿Puede otro proceso en el Host B escuchar en el puerto 5555 por TCP? 
-  - ¿Puede otro proceso en el Host B escuchar en el puerto 5555 por UDP? 
- 
-==== Ejercicio 6 ==== 
   - Si un proceso está usando el puerto 34567 por TCP, ¿puede otro proceso conectarse al mismo puerto TCP?   - Si un proceso está usando el puerto 34567 por TCP, ¿puede otro proceso conectarse al mismo puerto TCP?
   - Si un proceso está usando el puerto 34567 por TCP, ¿puede otro proceso conectarse al mismo puerto UDP?   - Si un proceso está usando el puerto 34567 por TCP, ¿puede otro proceso conectarse al mismo puerto UDP?
Línea 358: Línea 339:
   - Si un proceso está usando el puerto 34567 por UDP, ¿puede otro proceso conectarse al mismo puerto UDP?   - Si un proceso está usando el puerto 34567 por UDP, ¿puede otro proceso conectarse al mismo puerto UDP?
  
-==== Ejercicio ====+==== Ejercicio ====
   - Si un proceso está usando el puerto 34567 por TCP, ¿puede el mismo proceso conectarse el puerto 12345 TCP?   - Si un proceso está usando el puerto 34567 por TCP, ¿puede el mismo proceso conectarse el puerto 12345 TCP?
   - Si un proceso está usando el puerto 34567 por TCP, ¿puede el mismo proceso conectarse el puerto 12345 UDP?   - Si un proceso está usando el puerto 34567 por TCP, ¿puede el mismo proceso conectarse el puerto 12345 UDP?
Línea 364: Línea 345:
   - Si un proceso está usando el puerto 34567 por UDP, ¿puede el mismo proceso conectarse el puerto 12345 UDP?   - Si un proceso está usando el puerto 34567 por UDP, ¿puede el mismo proceso conectarse el puerto 12345 UDP?
  
-==== Ejercicio ====+==== Ejercicio ====
   - Si un proceso está usando el puerto 34567 por TCP como cliente, ¿puede el mismo proceso conectarse al mismo puerto TCP como servidor?   - Si un proceso está usando el puerto 34567 por TCP como cliente, ¿puede el mismo proceso conectarse al mismo puerto TCP como servidor?
   - Si un proceso está usando el puerto 34567 por TCP como cliente, ¿puede el mismo proceso conectarse al mismo puerto UDP como servidor?   - Si un proceso está usando el puerto 34567 por TCP como cliente, ¿puede el mismo proceso conectarse al mismo puerto UDP como servidor?
Línea 370: Línea 351:
   - Si un proceso está usando el puerto 34567 por UDP como cliente, ¿puede el mismo proceso conectarse el puerto 12345 UDP como servidor?   - Si un proceso está usando el puerto 34567 por UDP como cliente, ¿puede el mismo proceso conectarse el puerto 12345 UDP como servidor?
  
-==== Ejercicio ====+==== Ejercicio ====
   - Si te conectas a MySQL indica como se llama el programa de hace de cliente y como se llama el programa que hace de servidor   - Si te conectas a MySQL indica como se llama el programa de hace de cliente y como se llama el programa que hace de servidor
   - Si te conectas a un servidor Web indica como se llama el programa de hace de cliente y como se llama el programa que hace de servidor   - Si te conectas a un servidor Web indica como se llama el programa de hace de cliente y como se llama el programa que hace de servidor
   - Si te conectas por SSH a Linux indica como se llama el programa de hace de cliente y como se llama el programa que hace de servidor   - Si te conectas por SSH a Linux indica como se llama el programa de hace de cliente y como se llama el programa que hace de servidor
  
-==== Ejercicio 10 ====+==== Ejercicio ====
   - Usando un cliente de MySQL , indica como puedes especificar la IP y el puerto en el que está escuchando el servidor de MySQL.   - Usando un cliente de MySQL , indica como puedes especificar la IP y el puerto en el que está escuchando el servidor de MySQL.
   - Usando un navegador Web, indica como puedes especificar la IP y el puerto en el que está escuchando el servidor Web.   - Usando un navegador Web, indica como puedes especificar la IP y el puerto en el que está escuchando el servidor Web.
-  - Usando putty, indica como puedes especificar la IP y el puerto en el que está escuchando el servidor Web.+  - Usando putty, indica como puedes especificar la IP y el puerto en el que está escuchando el servidor de SSH.
  
-==== Ejercicio 11 ====+==== Ejercicio 10 ====
 **NOTA: Este ejercicio es opcional** **NOTA: Este ejercicio es opcional**
  
clase/daw/si/3eval/tema17.1599583034.txt.gz · Última modificación: 2020/09/08 18:37 por 127.0.0.1