10. Capa de Transporte (TCP y UDP)

10.1. ¿De qué va este tema?

Conocer los protocolos TCP y UDP y los conceptos principales de los protocolos de transporte. Entender el concepto de socket como interfaz de programación y comunicación de red.

10.2. Clases

Son unas 12 sesiones de clase.

10.2.1. La Capa de Transporte

https://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/OSI_Model_v1.svg/653px-OSI_Model_v1.svg.png
  1. Funciones:

    1. direccionamiento

    2. establecimiento (liberación y mantenimiento) de una conexión

    3. control de flujo

    4. multiplexado

  2. Servicios:

    1. OC (handshake + datos + fin)

    2. NOC (datos)

  3. Primitivas Transporte:

    1. listen

    2. connect

    3. send

    4. receive

    5. disconnect

  4. Protocolos (Internet) de Transporte:

    1. UDP. no fiable (pero muy rápido).

    2. TCP. fiable (pero más lento).

Actividad. Leer Documentación

Estudiar al Documentación

10.2.2. Sockets

  1. Concepto: source ip address:source port <–> destination ip address:destination port

  2. Pueden ser orientados a conexión (OC -> TCP) o no (NOC -> UDP)

  3. Arquitectura C/S (pero no exclusivamente)

  4. IPC Sockets vs Network Sockets : programación de servicios cliente/Servidor de/en red (local o no)

  5. Conceptos de Sockets (para programación)

  6. Puertos ( IANA Assigned Ports ):

    1. Privilegiados (0 - 1023). System / Well Known Ports

    2. Registrados (1024 - 49151). User / Registered Ports

    3. Efímeros (49152 - 65355). Dynamic / Ephemeral / Private Ports

Actividad.

Haz una captura de tráfico de al menos 1.000 tramas (Repasa Herramientas de Análisis de Tráfico y Protocolos)

  1. ¿Cuántos sockets hay?

  2. ¿Cual es el puerto origen en la trama 150?

  3. ¿Cual es el puerto destino?

  4. ¿Cual es la IP origen?

  5. ¿Y la IP destino?

  6. ¿Cual es el socket en la trama 150?

  7. ¿Cual es el socket en la trama 50?

  8. ¿Cual es el puerto del servidor DNS (si hay tráfico?

  9. ¿Cual es el puerto del servidor HTTP (si hay tráfico)?

  10. ¿Cual son los puertos que usan los clientes en esas tramas?

10.2.3. El Protocolo UDP

  1. Características (RFC 768):

    1. Sencillo y Ligero

    2. No fiable y sin conexión (pero sí usa sockets)

  2. Datagrama UDP

../_images/datagrama_udp.png
  1. Aplicaciones que lo usan: DHCP , RIP , RTP , VoIP , TFTP , DNS y alguno más.

Actividad. Análisis Tráfico UDP

Comprobar UDP con Wireshark (Uso de Wireshark (Avanzado))

10.2.4. El Protocolo TCP

  1. Funciones (RFC 793 y varios más):

    1. Transferencia de Datos (SYN, SYN/ACK y ACK usando segmentos)

    2. Fiabilidad (seq + ack)

    3. Control de flujo (ventana deslizante)

    4. Multiplexado Aplicaciones (puertos)

    5. Conexión (sockets= ip + puerto)

    6. Seguridad y Precedencia

  2. El Segmento TCP :

    1. ¿Porqué necesitamos segmentos?

    2. MSS = Cabecera TCP + Cabecera IP + MTU

    3. Diferentes Campos

    https://upload.wikimedia.org/wikipedia/commons/a/a9/CabeceraTCP.png

Actividad. Estudiar Documentación

Repasa los videos y la documentación

10.2.5. El proceso de conexión y control de flujo

  1. Uso de flags de Control de la conexión:

    1. Inicio: 3-Way HandShake: SYN, SYN/ACK y ACK

      https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Tcp-handshake.svg/1146px-Tcp-handshake.svg.png
    2. Transferencia (de datos)

    3. Cierre: 4-Way HandShake: FIN, ACK, FIN, ACK ( Why ?)

      https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Fin_de_conexi%C3%B3n_TCP.svg/1280px-Fin_de_conexi%C3%B3n_TCP.svg.png
  2. El control de flujo (varias estrategias):

    1. Checksum (con ACK)

    2. usando protocolo de Ventana Deslizante (varios a la vez)

    3. Temporizadores (varios escenarios)

    https://upload.wikimedia.org/wikipedia/commons/thumb/9/9d/Ventana_deslizante_2.JPG/1264px-Ventana_deslizante_2.JPG

Actividad. Estudiar Documentación

Repasa los videos y la documentación

10.2.6. Recapitulando

Protocolos de Transporte:

Control de la Conexión

Actividad. Análizar Tráfico TCP

Analizar Tráfico TCP (Básico)az: Uso de Wireshark (Avanzado)

10.2.7. Detalles avanzados de un segmento TCP

  1. Opciones TCP

    1. Longitud de Cabecera (Data Offset en palabras 32b) = 20 (mínimo) + Opciones (múltiplos de 4)

    2. Tipo de Opción, Longitud y Datos (4B)

    3. Ejemplos de Opciones:

      1. EOL (End Of List)

      2. NOP (No OPeration)

      3. Maximum Segment Size

      4. Window Scaling (Escalado de Ventana)

      5. SACK (Selective ACK)

      6. Timestamp

    4. Tamaño de la Ventana

    5. Números de Secuencia (absolutos y relativos). En Bytes ( Understanding TCP Sequence Number )

  2. TCP Flags

Actividad. Análizar Tráfico TCP

Analizar Tráfico TCP (Avanzado): Uso de Wireshark (Avanzado)

10.2.8. Analizando el estado de la red (sockets)

  1. Conocer Estados TCP

  2. TCP States

  3. Comando netstat

  4. Analizando una red

Actividad. Diagnóstico de Red (Sockets)

Diagnóstico de Red

10.2.9. Guías Completas TCP

  1. Guía Ionos

  2. Videos NetGeeks

  3. TCP Enterprise Tutorial