# 8. Internet: arquitectura de red. Origen, evolución y estado actual. Principales servicios. Protocolos HTTP, HTTPS y SSL/TLS.

| **Puerto** | **Protocolo** | **Función** |
| --- | --- | --- |
| 80 | HTTP | Navegación web sin cifrado. |
| 443 | HTTPS | Navegación web cifrada. |
| 8080 | HTTP alternativo | Proxies, servidores web secundarios. |

## Organizaciones de internet
- IANA: asigna números de puerto
- ICANN: gestiona nombres de dominio
- IETF: desarrolla protocolos de internet
- W3C: estándares web (World Wide Web Consortium) (HTML, CSS, XML, etc.)
- Internet Society: promoción y educación sobre internet

## Modelo de interconexion entre operadores
- Interconexión de redes: peering, transit
- Tier:
  - Tier 1: proveedores globales (AT&T, Verizon, NTT)
  - Tier 2: proveedores regionales
  - Tier 3: proveedores locales

FQDM: Fully Qualified Domain Name (Nombre de Dominio Completamente Calificado)
- Ejemplo: www.ejemplo.com
- Estructura: subdominio.dominio.tld (top-level domain)
- DNS: sistema de nombres de dominio, traduce nombres a direcciones IP

## Resolvers
Intermediarios que consultan el DNS para resolver nombres de dominio a direcciones IP.

## Dominios de primer nivel (TLD)
- Genéricos (gTLD): .com, .org, .net
- Geográficos (ccTLD): .es, .fr, .uk
- Patrocinados (sTLD): .edu, .gov, .mil

Dominios .es: Gestión por ESNIC, registro de dominios .es, requisitos y proceso de registro.

- Dominio especial: .arpa (Address and Routing Parameter Area), utilizado para infraestructura de red, como DNS inverso.

## Servidores DNS
- Servidores autoritativos: almacenan registros DNS para un dominio específico.
  - Primary (master): fuente principal de datos DNS.
  - Secondary (slave): copia de seguridad del servidor primario.
- Servidores cache: almacenan temporalmente respuestas DNS para acelerar futuras consultas.
- RR: Resource Record, registro de recursos en DNS, contiene información sobre un dominio (A, AAAA, CNAME, MX, etc.)
- Tipos de consulta DNS:
  - Recursive: el resolver consulta a otros servidores DNS hasta obtener una respuesta definitiva.
  - Iterative: el resolver devuelve la mejor respuesta que tiene, sin consultar a otros servidores.

## Servicios de internet
- scp
- ssh: acceso remoto seguro
  - authentication: contraseña, clave pública/privada
  - Clientes: PuTTY, OpenSSH
- Servicios multimedia: streaming de video (YouTube, Netflix), música (Spotify), videoconferencia (Zoom, Skype)
  - Codex: H.264, VP9, AV1
- RTP (Real-time Transport Protocol): protocolo de transporte en tiempo real para multimedia
- SIP (Session Initiation Protocol): protocolo de señalización para establecer sesiones multimedia
- RTSP (Real Time Streaming Protocol): protocolo para controlar la transmisión de multimedia
- UDP (User Datagram Protocol): protocolo de transporte sin conexión, utilizado para aplicaciones en tiempo real como streaming y juegos en línea
- VOIP (Voice over IP): tecnología para transmitir voz a través de internet, utiliza protocolos como SIP y RTP
  - SIP: protocolo de señalización para establecer, modificar y finalizar sesiones multimedia
  - RTP: protocolo de transporte para transmitir audio y video en tiempo real
- HTTP (Hypertext Transfer Protocol): protocolo de transferencia de hipertexto, base de la web
  - Mensajes:
    - 1xx: Informativo
    - 2xx: Éxito
    - 3xx: Redirección
    - 4xx: Error del cliente
    - 5xx: Error del servidor
- HTTPS (HTTP Secure): versión segura de HTTP, utiliza SSL/TLS para cifrado 
  - SSL (Secure Sockets Layer): protocolo de cifrado obsoleto, reemplazado por TLS
  - TLS (Transport Layer Security): protocolo de cifrado actual, proporciona confidencialidad e integridad de datos
    - Handshake: proceso de establecimiento de conexión segura, intercambio de claves y autenticación
    - Certificados digitales: utilizados para verificar la identidad del servidor, emitidos por autoridades certificadoras (CA)
- HSTS (HTTP Strict Transport Security): política de seguridad que obliga a los navegadores a usar HTTPS en lugar de HTTP para un dominio específico.
  - Man-in-the-middle (MITM): ataque donde el atacante intercepta y posiblemente altera la comunicación entre dos partes sin que estas lo sepan. HSTS ayuda a prevenir este tipo de ataques al forzar el uso de HTTPS.
    - Integridad: 
      1. MAC (Message Authentication Code): código de autenticación de mensaje, utilizado para verificar la integridad y autenticidad de los datos.
      2. AEAD (Authenticated Encryption with Associated Data): cifrado que proporciona confidencialidad e integridad en un solo paso, utilizado en TLS 1.3.
   - Man-in-the-middle (MITM): ataque donde el atacante intercepta y posiblemente altera la comunicación entre dos partes sin que estas lo sepan. HSTS ayuda a prevenir este tipo de ataques al forzar el uso de HTTPS.

  Master secret: secreto compartido derivado durante el handshake de TLS, utilizado para generar claves de cifrado y autenticación.

  Claves de sesión: claves temporales generadas a partir del master secret, utilizadas para cifrar la comunicación durante una sesión TLS.

  Activar cifrado: se activa durante el handshake de TLS, después de que se han intercambiado las claves y se ha verificado la identidad del servidor.

  Versiones de HTTP:
    - HTTP/1.0: versión inicial, sin soporte para conexiones persistentes
    - HTTP/1.1: versión tradicional, utiliza conexiones persistentes y pipelining
    - HTTP/2: versión moderna, utiliza multiplexación y compresión de encabezados
    - HTTP/3: versión más reciente, utiliza QUIC como protocolo de transporte en lugar de TCP, mejora la latencia y la seguridad

Protocolo LDPA (Lightweight Directory Access Protocol): protocolo para acceder a servicios de directorio, utilizado para gestionar información sobre usuarios, grupos y recursos en una red.

Identificadores de recursos:
- URI (Uniform Resource Identifier): identificador genérico para recursos, puede ser un URL o un URN. 
- URL (Uniform Resource Locator): tipo de URI que especifica la ubicación de un recurso en la red, incluye el esquema (http, https), el host y la ruta.
  - Protocol: http, https, ftp, etc.
  - Host: dominio o dirección IP del servidor
  - Path: ruta específica del recurso en el servidor
- URI (Uniform Resource Identifier): identificador genérico para recursos, puede ser un URL o un URN.
- URN (Uniform Resource Name): tipo de URI que identifica un recurso por su nombre, sin especificar su ubicación. Ejemplo: urn:isbn:0451450523

SoC (System on a Chip): integración de todos los componentes de un sistema informático en un solo chip, utilizado en dispositivos móviles y embebidos.

IoT (Internet of Things): red de dispositivos físicos conectados a internet, que pueden recopilar y compartir datos. Ejemplos: hogares inteligentes, ciudades inteligentes, salud conectada.

Servicios de transferencia de archivos:
- FTP (File Transfer Protocol): protocolo de transferencia de archivos tradicional, utiliza puertos 20 y 21, no cifrado.
  - Codigos de respuesta FTP:
    - 1xx: Informativo
    - 2xx: Éxito
    - 3xx: Redirección
    - 4xx: Error del cliente
    - 5xx: Error del servidor 
- SFTP (SSH File Transfer Protocol): protocolo de transferencia de archivos seguro, utiliza SSH para cifrado y autenticación, puerto 22.
- FTPS (FTP Secure): extensión de FTP que utiliza SSL/TLS para cifrado,puertos 990 (control) y 989 (datos).
- TFTP (Trivial File Transfer Protocol): protocolo de transferencia de archivos simple, sin autenticación ni cifrado, utiliza UDP puerto 69.
- GET: método HTTP para solicitar un recurso del servidor.
- POST: método HTTP para enviar datos al servidor, utilizado en formularios y APIs.
- PUT: método HTTP para actualizar o crear un recurso en el servidor.
- DELETE: método HTTP para eliminar un recurso del servidor.
- SCP (Secure Copy Protocol): protocolo de transferencia de archivos seguro, utiliza SSH para cifrado y autenticación, puerto 22.
  - Modo activo: el cliente abre un puerto para recibir datos del servidor.
  - Modo pasivo: el servidor abre un puerto para enviar datos al cliente, utilizado para evitar problemas de firewall.
- Telnet: protocolo de acceso remoto sin cifrado, utiliza puerto 23, no recomendado por razones de seguridad.
