Documentos de Académico
Documentos de Profesional
Documentos de Cultura
S_GRND
Fundamentos de Redes
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Introducción a los Fundamentos de Redes
1.1. SISTEMAS DE COMUNICACIÓN Y REDES
Un sistema de comunicación es una infraestructura (hardware y software) que permite el intercambio de
información. Es el conjunto de elementos y dispositivos involucrados en la transmisión de información entre do
puntos remotos (fuente/emisor, destino, canal, transmisor y receptor).
La información es un conjunto de datos con significado. La señal que sirve como soporte de esta se denomina
continente.
Una red (de computadores, de móviles, de dispositivos…) es un sistema de comunicación con sistemas finales
(terminales) autónomos (con capacidad de procesar información) e interconectados que facilita el intercambio
eficaz y transparente de información
DNS (Servicio de Dominio de Nombres): Servicio al que le pasas un nombre de dominio y el sistema te devuelve
la IP. Es como una consulta a una base de datos distribuida en el que el campo clave es el nombre del dominio y
el sistema te devuelve la IP. El DNS es un ejemplo de escalable. Es una tecnología que se especificó en los 80
cuando internet era 10³ redes. El DNS se especificó para ese tamaño. Sin haber cambiado esencialmente nada, el
DNS sigue funcionando en la actualidad cuando el número de redes se ha multiplicado por 10⁶ (ahora hay 10⁹) y
sigue funcionando de forma escalable → tarda lo mismo ahora que hace 20 años. Esto es porque los servidores
de DNS están en red, que hace que las cosas sean escalables.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105765
CLASIFICACIÓN:
• Por escala (o cobertura)
◦ LAN (Local Área Network): Redes que abarcan unos pocos kilómetros.
◦ MAN (Metropolitan Área Network) (en desuso): Entre 10 y 30 km. Por ejemplo, la UGR tiene una.
◦ WAN (Wide Área Network): Redes móviles, redes de fibra/ADSL domésticos.
• Por tecnología de transmisión o uso del canal de comunicación
◦ Difusión o canal compartido (Wifi, Redes de Datos Móviles, Bluetooth, etc.): El medio de transmisión
se usa de forma simultánea/concurrente por todos los dispositivos/terminales.
◦ Punto a punto (Fibra, ADSL, etc.): Tecnologías que solo tienen un terminal de origen y otro de destino.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
No todos los equipos involucrados en la comunicación son equipos de usuario, es decir, nodos finales, ya que
intervienen otros cuya única finalidad es posibilitar las comunicaciones entre dichos nodos finales, dando lugar
a la subred (que definiremos ahora). Por otro lado, como resultado de la existencia de estos equipos intermediarios,
la comunicación se producirá entre los nodos terminales como resultad de una secuencia de comunicaciones entre
las parejas de equipos involucrados. Así, podemos diferenciar entre:
• Comunicación salto a salto: tienen lugar de forma directa entre cada par de nodos involucrados en la
comunicación entre dos nodos terminales
• Comunicación extremo a extremo: comunicaciones entre los nodos terminales y, habitualmente implican
la participación de nodos que actúan de intermediarios.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
servidor sea transparente, alguien tiene que detectar y
corregir errores. Si no, el cliente tendría que comprobar bit a bit que la información recibida es correcta.
Esto sería muy ineficaz. Se hace por bloques de bits. La información se manda bit a bit, pero la
corrección de errores se procesa como unidades de información más grandes (bloques) llamadas
TRAMAS. Asociado a los errores hay un problema de delimitación. Estas tramas tengo que decidir
donde empiezan y donde acaban → esto es delimitar.
La red es un enjambre de routers interconectados -> más de una posibilidad para ir de un lado a otro
• Control de encaminamiento (enrutamiento)
◦ El cliente quiere que la red se encargue de llevar la información y traerla al sitio adecuado. Se hará
minimizando alguna métrica/coste. Se trata de escoger la mejor ruta para llegar al destino; es decir,
coger el menor camino o el de menor retardo. → Problema de eficacia. Queremos hacerlo siempre de
forma eficaz para que al final el cliente disfrute máximo pronto mínimo retardo.
• Entrega ordenada de los mensajes: Los mensajes se transmiten como paquetes y estos pueden llegar
desordenados. Hay que garantizar el orden.
• Gestión del diálogo o turno de palabra: Como en una conversación. Regulación del turno.
• Representación (sintaxis) de los datos: Cómo se representan los datos internamente (la información)
• Significado (semántica) de los datos: Qué significa la información, qué estoy enviando, a quién estoy
enviando…
ESTÁNDARES INTERNACIONALES
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• MODELO OSI (Open System Interconnection) propuesto por la ISO.
Definir un modelo de referencia formalmente con los dos principios de
diseño dividido en siete capas.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Esta capa permite resolver las heterogeneidades respecto de la representación interna de la
información en cada uno de los hosts exremos.
o SEMÁNTICA (=APLICACIÓN): Servicios finales que se ofrecen al usuario: correo electrónico,
transferencia de ficheros…
Los routers, por tanto, solo tienen 3 capas: las tres capas inferiores, que son salto a salto.
El modelo OSI es útil para explicar las funciones que deben llevarse a cabo en la implementación de una red de
ordenadores. Pero algunas capas están vacías de contenido o desiquilibradas. Por esto, surgió:
La interfaz entre la capa de red y la inferior (la que asumimos que existe) es un “driver”. Por esto se dice que
TCP/IP es una red software, de modo que puede implementarse sobre cualquier tecnología de red sin ser
dependiente de ella.
Las funciones hasta la capa de red se implementan tanto en los dispositivos de la subred como en las estaciones
finales (salto a salto), siendo exclusivas de los hosts (extremo a extremo) las funciones relacionadas con las capas
superiores
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105765
Para comenzar diremos que, dadas dos capas adyacentes N y N+1, la capa inferior se denomina proveedora de
servicios y la superior usuaria de servicios por cuanto que la capa N ofrece una serie de funciones o prestaciones
(servicios) transparentes para la superior.
• Protocolo: Conjunto de reglas que regulan el intercambio de información virtual entre entidades.
o Habrá un protocolo de información que defina cómo son los mensajes…
o Habrá un protocolo de transporte que defina cómo es la cabecera, qué significa, etc…
• Interfaz: Abstracción que modela la interacción entre capas. Es el punto a través del cual podemos hacer
el intercambio de información real. La comunicación entre dos capas adyacentes se realiza a través de
esta. (Concretamente se hace sobre los llamados puntos de acceso al servicio <SAP>)
o Interfaz socket: Aplicación de intercambio de información con la capa de transporte.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Conjunto de llamadas al sistema y métodos que dan el control al SO y que invocan la funcionalidad
de la capa de transporte (inferior).
• Unidad de datos de servicio <SDU>: Datos manejados por la entidad y que proceden de la capa
inmediatamente superior
• Unidad de datos de protocolo <PDU>: SDU recibida de la capa superior más la cabecera añadida a efectos
de llevar a cabo la función especifica.
• Entidades pares. Aquellas que interaccionan entre si con las reglas que define el protocolo. Es decir, son
las entidades del nivel N en el emisor y en el receptor.
• Entidad de nivel N (N en OSI del 1 = físico al 7 =aplicación): Elemento activo, hardware o software,
existente en la capa N. Cada número de entidad hace referencia al nivel de jerarquía en los esquemas
anteriores.
• Comunicación real: Comunicación vertical entre capas que están al lado. Flujo de información entre
Problemas del acceso al medio compartido también implican un retardo. El acceso al medio puede estar en
cualquier salto.
Llegamos al primer router
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• Procesamiento nodal: Mirar las cabeceras, IP, tomar una decisión de encaminamiento, reenviar…
• Transmisión: Los paquetes tienen una longitud (L) que se mide en bits y
las líneas tienen un ancho de banda/velocidad de transmisión que se
miden en bps (bits por segundo) -> Tengo que transmitir L bits en una
velocidad de transmisión.
El tiempo que va desde que sale el primer bit hasta el último, es el tiempo de transmisión. Este está
relacionado con la Velocidad de transmisión xq el paquete tiene una longitud. Es el TIEMPO en
TRANSMITIR.
El modelo OSI tiene más retardo que el TCP/IP porque tiene más capas. Esto implica tener más cabeceras y por
tanto, mas procesamiento. Ya dijimos que TCP/IP era más simple que OSI.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• No orientado a conexión (SNOC): Directamente las entidades pueden intercambiar datos sin necesidad
de dialogar o negociar. Se envían de forma directa los datos sin tener en cuenta que el otro esté disponible.
(Por ejemplo: buzones físicos de correo).
Esta clasificación está presente en todos los niveles/capas.
Primitiva de servicio: cada uno de los procesos elementales en que se desarrolla un servicio. Existen cuatro,
empleándose todas ellas en el desarrollo de un SOC y solo las dos primeras en uno SNOC:
• Solicitud: Requerimiento de servicio por parte de un solicitante (emisor). Por ejemplo: marcar el número
de teléfono.
• Indicación: Recepción de la solicitud en el destino. Por ejemplo: el ring del teléfono.
• Respuesta: si el destino acepta el servicio, responde a la solicitud. Por ejemplo: descolgar el teléfono por
parte del receptor
• Confirmación: De forma análoga a la Indicación, es la recepción de la respuesta en el emisor. Por ejemplo:
el hecho de que el emisor se percate de que el terminal ha sido descolgado en el otro extremo.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
(son tan grandes) que pueden acceder a cualquier IP
del mundo por su propia infraestructura o por acuerdo
de peering (sin pagar).
• Tier 2: Empresas muy grandes que para ir a algunas
IPs utilizan peering pero para otras necesitan tránsito
(pagar)
• Tier 3: Operadores que para alcanzar cualquier IP
tienen que usar tránsito.
Puntos neutros: Infraestructuras que se despliegan por el planeta y son puntos de intercambio de tránsito -> para
que los operadores intercambien tráfico entre sí. También se llaman PoP (Point of Presence) ó IXP (Internet
eXchange Point)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105765
DIRECCIONAMIENTO
Direccionar es dotar de una metodología para
identificar entidades. En cada capa hay un esquema
de direccionamiento. En cada capa tendré que ver de
quién viene o a quién va la información.
¿Cómo identificamos de quién viene o a quién van las unidades de datos? Con los esquemas de direccionamiento
de cada capa.
• Capa de aplicación: URL. http://www.du-ac.in/index.html (nombrede dominio: du-ac.in)
• Capa de transporte: Puertos. Son números que identifican el proceso origen y el proceso destino.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
o Hay puertos origen y puertos destino.
o Hay servicios que tienen su puerto
▪ HTTP -> 80
▪ DNS -> 53
• Capa de red: Dirección IP: 32 bits que identifica a los hosts.
Origen: 192.168.1.10
Destino: 69.162.68.236
S_GRND
Fundamentos de Redes
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Capa de Red
2.1. INTRODUCCIÓN
Antes de nada recordemos el esquema de TCP/IP:
2.2. CONMUTACIÓN
Recordemos: la red está formada por una serie de líneas de comunicación y los distintos nodos (routers).
La conmutación es la acción de cursar tráfico para establecer o determinar un camino que permita transmitir
información extremo a extremo. Existen diferentes tecnologías de conmutación:
Conmutación de Circuitos
Conmutación de paquetes: datagramas o circuitos virtuales.
CONMUTACIÓN DE CIRCUITOS
Se establece una conexión previa a la transferencia de la información entre las estaciones finales origen y destino.
Una vez establecida la conexión, todos los datos que forman el mensaje se transmiten de forma secuencial
siguiendo la misma ruta o circuito. Una vez concluida la comunicación, se cierra la conexión.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105767
o Está vinculada a la telefonía/voz.
o Es un servicio orientado a conexión. Exige un establecimiento de conexión previo a la transmisión.
o Se hacía de forma manual: Los operadores conmutaban manualmente. Fue evolucionando hasta
digitalizarse.
o Pasos:
1. Conexión: elección de la ruta origen-destino a seguir por el mensaje, lo que implica reservar los
recursos necesarios.
2. Transmisión: intercambio de datos entre las estaciones finales de origen y destino, de forma secuencial
y siguiendo la ruta fijada en el paso previo.
3. Desconexión: Liberación de los recursos de la subred asociados a la conexión utilizada.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
o Ventajas:
✓ La transmisión se realiza en tiempo real una vez hecha la conmutación. No hay retardo, solo se
tarda el tiempo de propagación, pero no el modal ni el de procesamiento.
✓ Recursos dedicados: Asignación permanente de los recursos, el circuito se mantiene durante toda
la sesión.
✓ No hay contención: no hay contienda para acceder al medio
✓ El circuito es fijo: No hay decisiones de encaminamiento una vez establecido. Es decir, las
decisiones de encaminamiento son solo al principio, después no.
✓ Simplicidad en la gestión de los nodos intermedios
o Desventajas:
Retraso en el inicio de la comunicación. Es decir, en el establecimiento de la llamada.
CONMUTACIÓN DE PAQUETES
En este esquema el mensaje no se transfiere secuencialmente como
una sola unidad sino en trozos llamados “paquetes”, los cuales se
retransmiten nodo a noso hasta llegar al destino.
2.3. EL PROTOCOLO IP
El protocolo IP es el especificado en Internet para operar entre las entidades de la capa de red.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Recordemos: Los mensajes de la aplicación se van a encapsular en segmentos utilizando TCP -> a su vez se
encapsulan en paquetes con el protocolo IP -> a su vez se encapsulan salto a salto a más bajo nivel.
IPv4.
• Es un protocolo para la interconexión de redes (también llamadas subredes). Su objetivo es la
interconexión de redes con independencia de la tecnología subyacente y sin exigirle nada.
• Resuelve el encaminamiento en Internet: encontrar la ruta para llegar al destino. Gracias a las cabeceras
se va determinando salto a salto y paquete a paquete por donde se envían de forma independiente
(normalmente la ruta de ida y de vuelta son distintas).
• El espacio de direcciones no era suficientemente grande. Por eso surgió IPv6, pero mayoritariamente, por
razones de coste, se suele utilizar IPv4.
Así, cuando llega un paquete, se consulta, se toma el destino y se elige el salto siguiente en base a ello.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Internet adopta un direccionamiento jerárquico que simplifica las tablas de routing (enroutamiento).
Jerárquico porque este esquema de direccionamiento nos permite jerarquizar las tablas de encaminamiento y
simplificarla. (con identificar como destino a la red, con una única entrada, identifico todos los hosts que están
en esa red)
Cada subred tiene un identificador (prefijo) único en la intranet (para direcciones privadas) o en internet (para
públicas).
Intranets: Infraestructura de red, subred y routers que usan direccionamiento privado. Una intranet puede ser más
compleja (no solo el wifi de casa). Cada prefijo de red es único en la intranet.
Internet: igual pero direccionamiento público.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
La máscara de red es un patrón de 1s que determina qué bits pertenecen al identificador de subred. Cada dirección
IP tiene asociada una. Me indica qué bits pertenecen al prefijo de red y qué bits al host.
• Dirección IP → 200.47.4.112 = 11001000.00011011.0000100.01110000
• Máscara → 255.255.255.0 = 11111111.11111111.11111111.00000000
La máscara se puede representar de forma compacta, por ejemplo 200.27.4.112/24 (24 unos)
Dada una IP, para obtener la dirección o identificador de la subred, se realiza una operación lógica &. Con una
operación AND puedo hallar la dirección de la subred → Las subredes se identifican con la parte de los hosts
todo a 0s.
200.27.4.112 = 11001000.00011011.00000100.01110000
& &
SUBRED
Podemos considerar Internet como un conjunto de subredes
interconectadas.
¿Qué es una subred? Líneas de transmisión e
infraestructuras que permiten la conexión directa de
dispositivos IP sin intermediarios (router). Es decir, entre
ellos no hay un router.
SWITCH VS ROUTER
¿Qué es un switch? Es un hardware de propósito específico que
permite interconectar dispositivos en capa 2, la capa de enlace. (del
modelo OSI). Es decir, basan su decisión de reenvío en valores
almacenados en los campos de la trama de la capa de enlace. →
interconecta dispositivos sin asignarles IP
Unir o conectar dispositivos en red. No proporciona por si solo
conectividad con otras redes ni con Internet.
¿Qué es un router? Es un hardware de propósito específico que permite interconectar dispositivos en capa 3, la
capa de red (del modelo OSI). Basan su decisión de reenvío en los valores almacenados en los campos de la
cabecera del datagrama de la capa de red.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105767
Para determinar las subredes corto las líneas que entran y salen de los dispositivos host y del router. Es decir,
hay que separar cada interfaz de los hosts y routers, creando redes aisladas. Dichas redes aisladas se
corresponden con las subredes.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
¿Quién tiene direcciones IP? Los hosts y los routers tienen 1 dirección IP por cada interfaz. Los switches operan
en cada 2 → No tienen direcciones IP
#ceros
# dispositivos = 2 – 2 → ej. 8 ceros (/24) permite 254 dispositivos.
➢ El -2 viene de que la primera (000…0) y la última (111…1) están reservadas.
Por ejemplo en la subred 200.27.4.0/24 no se pueden asignar como id de dispositivo:
o 200.27.4.0 = 11001000.00011011.00000100.00000000 → Reservada (subred)
o 200.27.4.255 = 11001000.00011011.00000100.11111111 → Reservada (difusión → enviar
paquetes que vayan a todos)
En cambio todos estos si:
o 200.27.4.1 = 11001000.00011011.00000100.00000001 → Dispositivo 1
o …
o 200.27.4.254 = 11001000.00011011.00000100.11111110 → Dispositivo 254
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Direcciones privadas (identificador único en la intranet).
➢ Solo sirven para tráfico dentro de las intranets
➢ Se pueden repetir en distintas intranets.
➢ Las asigna el usuario según su criterio.
➢ No están gestionadas de forma centralizada
Recordemos: La IP tiene 32 bits. Una parte es el prefijo de red que identifica unívocamente a la red y otra parte
Clase A: mask \8 → Redes muy grandes. 0.0.0.0 – 127.255.255.255 → 128 redes * 16.777.216 hosts.
Clase B: mask \16 → 128.0.0.0 – 191.255.255.255 → 16.384 redes * 65.536 hosts
Clase C: mask \24 → 192.0.0.0 – 223.255.255.255 → 2.097.152 redes * 256 hosts
Clase D: Es especial. Es un espacio reservado para redes multicast. → 224.0.0.0 – 239.255.255.255
Multicast: Funcionalidad que permite hacer direccionamiento a muchos.
Con unicast un frame de vídeo (por ejemplo) tendría que duplicarse (el mismo paquete) tantas veces como
usuarios lo necesiten.
Hemos visto clases con un montón de hosts. Esto era muy rígido y se ha ido abandonando (se sigue utilizando la
nomenclatura) y ahora es algo móvil/flexible.
La UGR, por ejemplo, tiene 15000 hosts. → Es muy pequeño para B y muy grande para C.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reglas especiales:
#ceros
o Número de dispositivos en cada red: # dispositivos = 2 –2
o Recordemos que el -2 es porque hay dos combinaciones que no se pueden usar → están reservados:
▪ Host = 00…0 → identifica a una red, no es una dirección origen, no se usa para dispositivos.
▪ Host = 11…1 → difusión en la red especificada, es una dirección destino, no se usa para
dispositivos.
▪ Además, como recordatorio, también está reservada la dirección 127.0.0.0 → autobucle
(loopback): para que la pila de protocolos arranque tenga ¿pila? o no.
¿Cómo desde direcciones privadas puedo acceder a direcciones públicas? En la conexión entre el intranet y el
internet, hay al menos un router de acceso, el cual realiza NAT.
NAT es un método para reasignar un espacio de direcciones IP (típicamente privadas) a otro (públicas)
modificando la dirección IP de los paquetes mientras se retransmiten a través de un router
Se trata de transmitir la dirección privada en la pública: para que cuando conteste el servidor destino sepa a donde
enviar. Luego, cuando vuelve, tiene que deshacer la IP destino y modificarla.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Para ello, el NAT usa una “Tabla de Traducciones”, que con la ayuda de una reasignación de puertos, permite
deshacer los cambios en el tráfico entrante. Esto de forma dinámica y automática.
RECORDEMOS.
Puertos: Cómo se identifican los procesos a nivel de transporte. Sirven para identificar de quién viene y a quién
va la información en capa de transporte. Se usan para el NAT también.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105767
Whatsapp despliega el servicio de directorio.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Cada vez que mando un whatsapp, se manda el mensaje al servicio de directorio, que tiene:
Teléfono IP Puerto
630808080 145.30.30.30
220202020 210.150.150.150
1º Hay un mensaje registro: cuando arrancas whatsapp mandas un mensaje a un servidor en la IP Pública.
Se lo envío desde mi IP privada. Pasa al NAT, (dentro-fuera). Mapea el puerto (P:1000 IP: 192.168.1.33 mapeo
a P:30000 IP:210.150.150.150)
Cuando mi amigo hace algo similar, antes de enviarme el mensaje pregunta al servicio de directorio la IP y el
puerto de mi teléfono (destino) → El NAT se encargará de traducirlo de nuevo.
Una de las tareas del administrador de red es asignar direcciones. La ICCAM o red.es es la que da al administrador
un espacio de direcciones y él tiene que gestionarlo y asignarlas.
Longitud de la máscara óptima: Tiene que estar ajustada al máximo tal que se desperdicie el menor número de
direcciones. Cuando decides el número de amplitud de la máscara, estás predeterminando el número de hosts que
habrá: el administrador tendrá que hacer una predicción
El segundo criterio es simplificar las tablas de encaminamiento. (El primero es minimizar las IPs no utilizadas)
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
TABLAS DE ENCAMINAMIENTO
Modos de encaminamiento:
• Directo: Aquellas que implican que no hay un intermediario. Rutas entre hosts que están directamente
conectados a la misma red. Por ejemplo: H1-R1 o H1-H2
• No directo: Rutas que implican el uso de uno o más intermediarios. Por ejemplo H1-H5
En el siguiente dibujo vemos 4 subredes → cada una tiene su propio prefijo de red
o 192.100.13
o 192.100.12
o 192.100.15
o 150.100.0
_______________
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105767
Tabla de encaminamiento de H1
Destino Gateway Mask IP
127.0.0.1 * 32 lo
192.100.13.0 * 24 eth0
default 192.100.13.129 0 eth0
Las IPs (destino y origen), una vez que envío un paquete, router a router no cambien. Lo que cambian son las
direcciones físicas (MAC). Cuando por ejemplo va de H1 a H5 en cada salto se cambia la MAC origen y destino,
pero las IP origen y destino NO CAMBIAN.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Si no hay fragmentación y no hay “traducción de direcciones” (NAT), el datagrama (salvo el TTL, las opciones
y el campo de comprobación) no se modifica en el camino.
Proceso de encaminamiento en los nodos IP (salto a salto) por cada datagrama:
• Se extrae la dirección destino: IP_DESTINO del datagrama
• Por cada entrada i de la tabal de encaminamiento con i=1,…,N, se calcula
o IPi = IP_DESTINO AND(&) MÁSCARA_i
AND de IP Destino con la máscara y comparo. Me quedo con la que coincida y sea más específico.
• Si IPi==Di (campo destino de la tabla de encaminamiento) y si es routing directo (*) → reenviar el
datagrama al destino final por la interfaz I_i
• Si hay varias coincidencias, se elige el destino Di con la máscara más larga
• Si se ha barrido toda la tabla y no hay coincidencia con ninguna fila → error (posible mensaje ICMP)
• Para encapsular el datagrama en la trama física correspondiente, se debe consultar la tabla ARP (más
180.180.180.1
EJERCICIO 7. Imagine una situación donde
hay cinco routers RA-RE. RA, RB y RC se
.1
conectan cada uno a una red local A, B y C,
siendo cada router única puerta de enlace de
cada red. RA, RB y RD están conectados .3 .2
entre sí a través de un switch. RC, RD y RE
están conectados entre sí a través de un
switch. RE se conecta a Internet a través de
la puerta de acceso especificada por el ISP.
Especifique tablas de encaminamiento en los
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
routers. Asigne a voluntad las direcciones IP
e interfaces necesarias
Como podemos observar, las tres usan el mismo camino topológico (RD). Podemos agregar/hacer agregación de
ruta en lugar de poner todas las entradas. Por tanto, cambio la máscara a /22.
Podría poner en el destino “192.168.0.0” porque todas en sus 22 primeros bits es la misma.
Hay dos 192.168.0.0 → una con /24 y otra con /22.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Hemos agregado las 4. Al agregar /21 hay que tener cuidado porque estoy suponiendo al agregarlas que las otras
Si tuviésemos esta subred, ya no podría agregar /21 porque tengo esa IP (192.168.5.0) → A la hora de asignar
IPs tenemos que adaptarnos al tamaño e intentar que sean agregables.
Siempre empezaremos asignando la red más gorda. (con la máscara más corta)
Tenemos que tener en cuenta que no todas las IPs van a tener la misma máscara.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
sistema autónomo es un conjunto de redes y routers administrados conjuntamente por una única autoridad que
define cómo es el intercambio de tablas (routing interno) dentro del SA. → Su routing y sus tablas de
encaminamiento las voy a gestionar/administrar de forma unificada.
En cada SA existe un router, denominado router exterior, responsable de informar a los otros SAs sobre las redes
accesibles a través del SA.
Cada SA se identifica por un entero de 16 bits (desde 2007 son 32 bits). Por ejemplo Rediris = AS766
La UGR no es un SA. Rediris SÍ es un SA. Google (todos sus servidores por el mundo) SÍ es un SA.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105767
RIP (ROUTING INFORMATION PROTOCOL)
Es un protocolo dentro del SA. Es un protocolo de la capa de aplicación (opera sobre UDP puerto 520) → Los
datos se encapsulan en UDP (protocolo de la capa de transporte), que a su vez se encapsula en IP.
IP UDP RIP
Puerto = 520
224.0.0.9
Clase D → multicast
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
RIP utiliza como IP destino 224.0.0.9 (IP reservada) con un puerto destino 520 (reservado) de tal forma que los
routers pueden intercambiar información entre ellos para configurar las tablas.
En RIP es fundamental #saltos → se pretende minimizar el número de saltos. Para esto se utiliza la
técnica/algoritmo del vector distancia (métrica basada en número de saltos). Periódicamente (por defecto cada 30
segundos) cada router envía a todos sus vecinos (dirección multicast 224.0.0.9) todos los destinos y a cuánto
coste están. A su vez recibe de todos sus vecinos el coste de todos los destinos.
De entre ellos, para un destino dado en la tabla de encaminamiento, se selecciona como salto siguiente (gateway)
el vecino que anuncie el menor coste a ese destino, actualizando la métrica para ese destino, sumando 1 al coste
anunciado. Es decir: A partir de ahí, si soy R para ir a x escojo el de menor coste (+1 por el salto adicional desde
R hasta el vecino).
RIP tarda en propagar la información cuando hay muchos routers. Problema: las malas noticias tardan en Reservados todos los derechos.
propagarse.
Otro problema: Cuenta de la convergencia lenta y la cuenta al infinito.
Imaginemos un Sistema Autónomo con 3 routers
(RED 1,0), (RED 1,1), (RED 1,2)
Imaginemos que la interfaz entre Red 1 y R1 se rompe. R1 ha aprende que aunque se le ha roto el enlace, tiene
un camino por R2 para ir a la red 1 de coste 2. R2 aprende de R3 que tiene un camino por R3 de coste 3, etc.
Pasa esto constantemente hasta el infinito. Puede haber bucles. Esto no lo hace aconsejable.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• Hold down: Ignorar cuando he detectado un error/rotura de enlace, durante un tiempo (2 o 3 minutos)
ignoro todos los anuncios que me lleguen relativos a destinos que yo conociera a través de esa línea que
se ha roto.
• Poison reverse: Cuando detecto una rotura, meter un mensaje explícito que diga: Lo que hayas aprendido
de mi relativo a ese destino, olvídalo.
Para ver más detalles de la implementación en Linux: man routed (routed es un demonio)
Por tanto, vemos que RIP tiene problemas que nos obligan a ver una alternativa:
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Formato de datagrama
La cabecera puede ser de longitud variable (opciones y relleno no se suelen usar) → Lo normal es que sea 20Bytes.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Comprobación: Dotarse de un mecanismo para detectar cuando haya problemas.
Cojo los bits de la cabecera y los pongo en grupos de 16 en 16. Hago una operación lógica de paridad → XOR
El campo de comprobación, por tanto, permite detectar cualquier número impar de errores → Si pasa, lo
descartamos.
El destino hace una operación igual de lo que recibe y lo compara con ese campo (que se calculó en el destino).
Si no es igual, hay algún error.
El datagrama se encapsula salto a salto en función de la tecnología (ADSL, fibra…). La arquitectura TCP/IP es
agnóstica a lo que haya por debajo → Pero tengo que tomar algunas decisiones.
Cada salto se caracteriza por una magnitud física → MTU (Maximum Transfer Unit). El tamaño máximo del
datagrama es 216 -1 Bytes
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105767
El origen pone el tamaño según la MTU del primer salto → pero de repente se encuentra un MTU distinto en otro
salto (disminución de MTU). Para ello se usa la fragmentación IPv4:
• Tamaño máximo del datagrama 216-1 = 65.535bytes
• Es necesario adaptarse a la MTU (Maximum Transfer Unit) de cada subred
• El ensamblado solo se puede hacer en el destino final → ahí es donde sabemos que van a llegar todos los
fragmentos.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Llega un datagrama con MTU 4200 Bytes (20+4180) y se encuentra con un Ehernet
Tras consultar la tabla de encaminamiento → enviar el datagrama a la dirección Medium Access Control (MAC)
del siguiente nodo. Se usan en redes Ehernet (cableadas) y WiFi.
Formato de las direcciones MAC → 6 bytes: HH-HH-HH-HH-HH-HH → (p.e 00-24-21-A8-F7-6A)
Las direcciones MAC son únicas (identifican unívocamente a las tarjetas de red o a cada host), asignadas por
IEEE en lotes de 224 para cada fabricante. El prefijo (24 primeros bits) es del fabricante y cada uno va asignando
los otros 24bits.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Las MAC origen y destino van cambiando.
Existe definida una dirección de difusión (broadcast) FF-FF-FF-FF-FF-FF. De esta forma podemos
mandar/enviar trama a todos los destinos de la red.
IP MAC Timer
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
2.5. EL PROTOCOLO ICMP (Internet Control Message Protocol)
Se transporta en IP. Informa sobre situaciones de error en IP → es un protocolo de señalización.
Sirve, por tanto, para informar/enviar información de señalización → datos que tienen que ver
con el control de lo que está pasando (diagnósticos, errores, eventos que ayudan a funciona…).
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
o Solicitud de eco: Detectar la alcanzabilidad de
diferentes datos (“ping {IP}”)
o Tiempo de vida excedido (TTL): Si TTL = 0, se
descarta.
o Destino inalcanzable: Tabla de encaminamiento
sin entrada para un destino
? IP UDP DHCP
Entro en una WiFi. Habrá una máquina escuchando el puerto 67 y respondiendo a las
necesidades.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105767
El servidor mira la tabla y responde con la oferta → mensaje “DHC Offer”
o IP origen: la del servidor
o IP destino: 255.255.255.255 (broadcast)
o Su dirección IP: la que sea
o Tiempo de vida: “Te la presto durante este tiempo”. La que sea.
Luego el cliente solicita una dirección IP con mensaje DHCPRequest y el servidor le envía la
dirección IP con el mensaje DHCP ack.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
De esta forma el cliente se autoconfigura.
S_GRND
Fundamentos de Redes
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Capa de Transporte
3.1. INTRODUCCIÓN
En la capa de transporte hay dos alternativas. Ciertas aplicaciones usarán un protocolo de los dos siguiente y
harán la elección basándose en criterios de diseño:
• UDP: Es un protocolo sencillo. Tiene dificultades en el envío y en la recepción de mensajes
• TCP: Es un protocolo con gran complejidad. Tiene más retardos.
Protocolo UDP:
Realiza la multiplexación/demultiplexación de aplicaciones.
Ofrece un servicio
o no orientado a conexión. Parecido a correo por buzón.
o no fiable (sin recuperación de errores). Es decir, hay muchos problemas y no tiene código/recursos
para mitigar los problemas que más abajo puede tener IP.
Protocolo TCP
Realiza la multiplexación/demultiplexación de aplicaciones.
Ofrece un servicio
o orientado a conexión. Parecido a la comunicación por teléfono,
o fiable
o que incluye
▪ control de errores y flujo
▪ control de la conexión
▪ control de la congestión
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105771
3.2. PROTOCOLO UDP
UDP = User Datagram Protocol. Se especificó en los años 70.
Ofrece un servicio/funcionalidad best-effort (de buena voluntad) (igual que IP). Hace lo que puede. No tiene
mecanismos explícitos para detectar errores, controlar el flujo, ordenar paquetes…
Recordemos que IP es vulnerable estas eventualidades. UDP no añade mucho más. UDP empieza a enviar la
información sin comprobar nada. Cada unidad de datos de UDP se envía de forma independiente.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• No hay garantías de entrega ordenada
• No hay control de congestión, No hay control de flujo: entrega tan rápida como se pueda.
¿Cómo lo hace? Una posibilidad es usar como metodología para identificar a las aplicaciones el PID.
Problema: no es universal. En cada máquina es distinto. No sirve. Es algo muy local. El SO es el que da el PID a
Utilizamos por tanto el puerto para identificar de quién viene a quién va la información.
Cabecera:
➢ 16 bits de quién viene (puerto origen)
➢ 16 bits a quién va (puerto destino)
➢ 16 bits: cuántos bytes ocupa (cabecera + datos). 216 B= 64KBytes → Podemos tener hasta unidades de
datos de 216 B/64KB
➢ 16 bits de comprobación: checksum. Ponemos todas las palabras de 16 bits y se realiza una operación de
paridad (XOR, p.e). El resultado de esta operación por columnas se escribe en ese campo. Cuando llega
al destino, hace una operación similar y compara por si hay alguna diferencia con el campo checksum.
En el cómputo de checksum se incluye una pseudocabecera. En esta se incluye la IP origen y la IP destino
y otros campos. Esto se hace para detectar errores en el NAT → Las IPs destinos y origen no cambian
salvo que haya NAT (se pasa de IP privada a pública o al revés). Es decir, esto se realiza para tener un
nivel de control. Puede haber errores/inconsistencias en la tabla de traducción de NAT. Así, detecta estos
errores.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
A partir del 1024, los puertos están libres para el desarrollador.
¿Para qué sirve entonces UDP si solo añade esto? Para aplicaciones tolerantes a errores y exigentes respecto al
retardo. Solo implementa checksum para esto. UDP no tiene mecanismos de retroalimentación
Por tanto, UDP se usa frecuentemente para aplicaciones multimedia que son tolerantes a fallos y muy sensibles a
los retardos (no admiten recuperaciones de errores). No hay tiempo para detectar errores. Puede perderse un
A la unidad de datos de UDP se le llama datagrama de usuario. Es parecido a IP si nos fijamos, hereda la palabra
datagrama porque añade muy poco a IP.
• Opera en transmisión full-duplex. Se puede enviar en ambos sentidos y simultáneamente (se puede enviar
y recibir a la vez).
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• Incluye mecanismos de detección y recuperación de errores (ARQ) con confirmaciones positivas ACKs
(acumulativas) y “timeouts” adaptables. Detecta y recupera errores de la siguiente forma:
SEGMENTO
(en UDP se llamaba datagrama de usuario)
Si está bien, el otro extremo envía un segmento de confirmación (ACK). Arrancamos un timer → confianza de
que transcurrido un tiempo me llegue el ACK.
Puede ocurrir que se pierda/descarte. El temporizador alcanzará un valor preestablecido, generando un mensaje:
TIMEOUT. Este mensaje indica que ha habido un problema y reenvía el mensaje.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
estoy perdiendo muchos recursos → poco eficaz. Si el timeout es pequeño, puedo hacer retransmisiones
innecesarias.
El timeout, por tanto, es crítico para la eficacia del protocolo. ¿Cuál es el timeout óptimo? Es una situación
variable/impredecible. Solución adaptable: TCP se va adaptando a la red. El timeout saltará de forma adaptable.
ACK también se llaman acumulativos → puedo hacer ACK que pueda ---- más de un segmento para ----
• Ofrece un servicio fiable → control de congestión y control de flujo con ventanas deslizantes con tamaño
máximo adaptable
• Usa la técnica de Incorporación de confirmaciones (“piggybacking”)
• Para mejorar su eficacia TCP se ADAPTA a las condiciones de la red DINÁMICAMENTE. Es todo muy
adaptable, dependiendo de la dinámica o de las condiciones de la red. No es fijo.
Las TDPUs de TCP se denominan segmentos TCP. Cada segmento TCP se encapsula en un paquete IP
(denominado datagrama)
CABECERA DE TCP:
Cada segmento TCP tiene una cabecera de 20 Bytes por lo menos. Me ayuda a implementar las funcionalidades.
o Puerto origen y puerto destino para identificar de quien viene y a quién va la información.
o Número de secuencia: Numera los segmentos para asegurarme que vaya ordenado (IP lo mandaba de
forma desordenada).
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105771
La app genera mensajes → numera los segmentos como una cuenta creciente de Bytes.
Como envío datos en un sentido, aprovecho la cabecera para confirmar en el otro sentido. Así es eficaz.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Bits:
U: Urgentes. Se pone ON cuando quiere forzar que la entrega no sea ordenada. Hay situaciones en las que es
necesario un mecanismo que permita enviar datos de forma ordenada y romper con la disciplina de entrega
ordenada de los datos. 3 o 4 bytes del puntero de datos urgentes mándalos saltándole.
A: ACK. No siempre tenemos cosas que confirmar. Para determinar si el segmento confirma en sentido contrario
(ON) o no (OFF)
P: PUSH. Mecanismo para que algún extremo de la tubería vacíe el buffer que implica TCP
R: RESET. Cuando hay algún tipo de problema, para evitar dificultades o bloqueos, se utiliza RESET para volver
al estado inicial
MULTIPLEXACIÓN/DEMULTIPLEXACIÓN
La multiplexación/demultiplexación de aplicaciones tiene como objetivo transportar las TPDUs (segmentos TCP)
al proceso correcto. Para ello se usan los puertos → números enteros de 2 bytes que identifican al proceso origen
y al proceso destino.
¿Es posible garantizar un establecimiento/cierre fiable de la conexión sobre un servicio (IP) no fiable? Es decir,
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
¿es posible que establezcan esa llamada sin fisuras a través de un servicio que no resuelve las fisuras como IP?
NO
No hay forma de sincronizar dos procesos utilizando TCP. TCP hace esto arriesgándose.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Estas ventanas tienen que estar sincronizadas en el servidor tal que cuando envío un segmento el número de
secuencia debe ser el que espera → con el receptor se ordenan a partir de este.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
CASO CON SYN RETRASADOS Y DUPLICADOS
Puede ocurrir que un mensaje se retrase → Para ello está el timeout
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105771
CIERRE DE LA CONEXIÓN: CASO NORMAL
En algún momento tienen que cerrar la conexión
y liberar los recursos.
Quien haya terminado primero, envía una
solicitud de cierre con el flag FIN a 1. Si el otro
ha terminado también, enviará un paquete con
FIN a 1.
- Solicito Cierre
- Confirmo y solicito cierre
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
- Confirmo.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
La imagen de la izquierda representa la evolución normal.
Pero todo el tiempo (desde que sale el ultimo bit de A hasta que
Para solucionar esto, se envían más de un paquete para que sea eficaz → por eso los
segmentos tienen que ir numerados. Y por eso también tenemos una ventana que los
almacena.
El timeout por tanto, es un punto clave para la eficacia. ¿Cuál es el timeout adecuado? Debe ser mayor que el
tiempo de ida y vuelta (RTT) pero, ¿cuánto?
• TIMEOUT GRANDE: Reacción lenta a pérdida de segmentos → Baja eficacia. El emisor tarda en
descubrir pérdida/retraso.
• TIMEOUT PEQUEÑO: Timeouts prematuros → Retransmisiones innecesarias. Puede haber reenvíos
innecesarios.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
1º Evento: Llega un evento que implica que llega un segmento ordenado.
• TCP debería confirmarlo → Espera hasta 500msg para confirmar de dos en dos.
• El segmento coincide con el límite inferior y llega ordenadamente.
Receptor:
2º Llega un evento ordenado pero tiene pendiente un ACK retrasado. Se envía un único ACK acumulativo y de
esta forma todo lo recibido hasta ahí queda confirmado. Así cuando va todo bien, TCP va confirmando de dos
en dos eventos: Llega, espera, llega, confirma y así sucesivamente.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105771
3º Evento: Llega un segmento desordenado. Se almacena temporalmente y se confirma lo que puede. Se con-
firma duplicadamente lo que se puede. → ACK duplicado
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
4º Evento: Llega un segmento que completa una discontinuidad → Se confirma ese y el siguiente y se desplaza
la ventana de congestión.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Se escoge siempre α=0.875
Solución: Algoritmo de Karn, actualizar el RTT sólo para los no ambiguos, pero si hay que repetir un segmento
duplicar el timeout:
¿Qué pasa cuando hay un timeout? Puede ser que el ACK corresponda a un segmento u a otro. Lo que hacemos
es multiplicar por dos el timeout actual para evitar una posible mala interpretación.
CONTROL DE FLUJO
Procedimiento para evitar que el emisor sature al receptor con el envío de demasiada información y/o demasiado
rápido. Es un mecanismo de regulación.
El problema del flujo es: Si el emisor escribe muy rápido y el receptor va leyendo más lento, el buffer se llena y
se perderá información. Para evitar saturar el servidor, se utiliza el esquema crediticio.
El control de flujo es un esquema crediticio: el receptor informa al emisor sobre los bytes autorizados a emitir sin
esperar respuesta. El receptor manda la disponibilidad (“puedo 4K, 1K, 0K…) → Da permiso según la
disponibilidad.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Si envío más de lo que puede, bloqueo y quedo esperando lo que falta por enviar (lo demás si se envía).
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• Es un problema debido a la insuficiencia de recursos (la capacidad o velocidad de transmisión de las líneas
y el buffer en routers y hosts no son infinitos).
o Recursos:
▪ Capacidad ≡ VT ≡ BW (bps) < ∞ (es finito)
▪ Capacidad de almacenamiento en routers ≡ Buffer < ∞ (es finito)
• Es un problema diferente al control del flujo: el control de congestión es para proteger a la red debido a
sus limitaciones Se trata de regular el tráfico. La red tiene capacidades finitas. Necesitamos un mecanismo
que regule el tráfico. La congestión es un mecanismo para proteger los recursos de la red. Pero queremos
que sea eficaz (que maximice los recursos), imparcial (justo) y estable (que no oscile).
• ¿Cómo regula información TCP para proteger los recursos de la red? Con la ventana de congestión
(cantidad/tamaño máximo de bytes que el emisor puede generar). El control de congestión se realiza
limitando la ventana de congestión (CongWin). → En un momento dado los bytes que se pueden enviar
es el mínimo de la ventana de congestión y de recepción. TCP hace prueba error. Empieza poco a poco
para ver cómo va la cosa). (La ventana de congestión empieza permitiendo un segmento.)
Podemos enviar el mínimo de la ventana del control de flujo (del receptor) y de la de congestión.
MMS → Maximum Segment Size (en Bytes)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105771
Dos formas de comportarse:
• Mientras TAM ventana < umbral
o Zona de inicio lento
o Envía un segmento y nos paramos (congwin=1).
o Por cada ACK recibido aumento la ventana de congestión en un MSS.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Va creciendo exponencialmente
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
El TCP se sintoniza con syscontrol (sysctl). Hay una ventana de congestión por cada conexión TCP.
Recordemos que en la ventana de control de flujo el crédito máximo que me pueden dar es 2 16 Bytes =
64KBytes. Antes esto era suficientemente grande, pero la cosa cambia ahora con tanta velocidad de
transmisión y el mismo tamaño de ventana.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• Estimación RTT: Recordemos que cada vez que enviamos un segmento ponemos en marcha el reloj.
Podemos negociar un time-stamp (sello de tiempo) en la cabecera del segmento y cuando vuelve el ACK
no hace falta consultar el reloj sino comparar los tiempos
• PAWS (“Protect Against Wrapped Sequence numbers”). Sello de tiempo y rechazo de segmentos
duplicados.
• SACKS (“ACKs selectivos”).
S_GRND
Fundamentos de Redes
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Seguridad en Redes
4.1. INTRODUCCIÓN
Recordemos: tenemos una arquitectura en capas donde la
app se encapsula en tramas, las tramas en IPs, etc.
Cuando podemos garantizar todo esto, el sistema parece seguro. NUNCA AL 100%
¿En qué nivel se debe situar la seguridad? En TODOS… Hay que poner seguridad en todos los lados de la
arquitectura por capas. El grado/nivel de seguridad lo fija el punto más débil.
Ataque de seguridad: Cualquier acción intencionada o no (errores) que menoscaba o pone en entredicho
cualquiera de los aspectos de seguridad mencionados anteriormente.
Tipos de ataques:
• Sniffing: Ataques/vulneración de la confidencialidad. Escuchas a la información (husmear).
• Spoofing: Suplantación de la identidad de entidades. Ataques a la autenticación.
o Pishing: Captura de información una vez hecho spoofing
• Man in the middle: hombre en medio. Ataques de interceptación
• Distributed Denial Of Service (DDoS): Denegación de servicio distribuido. Ataques a la disponibilidad.
Por ejemplo, el Flooding (inundación)
• Malware: Software malintencionado: Troyanos, gusanos, spyware, backdoors, rookits, ransomware,
keyloggers…
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105785
MECANISMOS DE SEGURIDAD
• De prevención: anticiparnos al ataque (intencionado o no). Nos centraremos en estos
o Mecanismos de autenticación e identificación
o Mecanismos de control de acceso.
o Mecanismos de separación (física, temporal, lógica, criptográfica y fragmentación).
o Mecanismos de seguridad en las comunicaciones (cifrado de la información).
• De detección: Poner herramientas de inspección
o IDS (Intruder Detection System): Software de análisis. Hace monitorización del tráfico y detecta
anomalías yeventos sospechosos.
• De recuperación: Una vez que hemos sufrido el ataque.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
o Copias de seguridad (backups)
o Mecanismos de análisis forense: averiguar alcance, las actividades del intruso en el sistema y cómo
entró.
El descrifrado se trata de, utilizando una clave recuperamos la información inicial. DK’(C)=P donde K’ es la clave
y D el algoritmo.
Tipos de cifrado:
Cifrado simétrico o con clave secreta: K=K’.
o Computacionalmente son más fáciles (menos costosos)
Cifrado asimétrico o con clave pública/privada. KPUB/KPRIV.
o Más complicados (más costosos).
o Más robustos/fuertes/difíciles de “vulnerar”.
Cuando se encuentra alguna metodología que reduzca el espacio de búsqueda por fuerza bruta en cualquier orden
de magnitud, es no seguro. P.e 56 bits → 256 claves → voy probando una a una. Si alguien ve la forma de reducir
de 256 a 245, es no seguro.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
DES coje el texto plano. Los agrupa en bloques de 64 bits. Hace operaciones con la clave. Sale una cadena de 64
bits.
Para descifrar, DES aplica la clave al revés. Se cogen los subconjuntos de la clave en orden inverso. Por eso se
llama cifrado simétrico.
¿Cómo se reduce la complejidad para reducir el espacio de opciones posibles? Adopto la hipótesis de que es
castellano.
La letra más posible por estadística es la “e” en el castellano. Cojo el texto cifrado y veo el que más se repite. Por
ejemplo la “c”. Tengo ese conocimiento a priori. Ahora son 25!. Porque supongo que esa letra es la “e”
Podríamos aplicar la misma hipótesis con la segunda más utilizada y así sucesivamente.
DES Triple: 168 BITS. Cifrado, descifrado y cifrado con tres claves.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
IDEA (“International Data Encryption Algorithm”)
Simétrico: misma clave para cifrar y para descifrar. Claves de 128 bits. Opera en tiempo real
Si A quiere enviarle un texto a B cifrado, A lo cifra con la clave pública del destino (B), Como la pública es
conocida por todo el mundo, no hay problema. B es el único que conoce la clave privada que aplicada a la
información cifrada con la clave pública, recupera la información sin cifrar (la descifra). Solo lo puede hacer B.
A→B
KPUB-B(P) → KPRIV-B(KPUB-B(P)) = P
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
KPRIV-A → KPUB-A(KPRIV-A(P)) = P
De esta forma podemos autenticar al origen Sabemos que A es A
Para ello tenemos que garantizar de forma feaciente que A está asociado a su clave pública (A→ KPUB-A) →
CERTIFICADO DIGITAL (asociación feaciente de tu identidad con tu clave pública)
A <-----> KPUB_A (A está vinculada con su clave pública) → Certificado digital (lo veremos más adelante).
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105785
Aquí no hay repetición. Está protegida porque hay un rango de tiempo.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
¿Esto es vulnerable a un ataque por Reflexión? Si.
Solución: Usar espacios de retos disjuntos. Es decir, que los random sean disjuntos.
Recomendación: Usar nonces: Solo se puede usar una vez → Información de un solo uso.
Si introduzco en mis intercambios los nonces, evito ataques por repetición.
Debilidad: Nos permite establecer una clave secreta con el otro extremo, pero es susceptible a “Ataques man-in-
the-middle:
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Alguien se interpone en medio → Posible ataque de spoofing.
Solución: Funciona bien si tenemos autenticado al otro extremo. Si no hay autenticación previa, este intercambio
se ve comprometido
Para autenticar hemos visto que necesitamos una clave secreta por reto-respuesta, pero para ella necesitamos
Diffie-Hellman. Pero además para Diffie-Hellman necesitamos autenticación. Entramos en un bucle pero
veremos que hay alternativas.
Integridad: Si tengo un texto, el sistema me garantiza que cualquier alteración al transmitirse se notifique.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Hash Message Authentication Code (HMAC): M+H(K|M) pero para evitar ataques de extensión se usa M+H(K
| H(K|M)).: Se les concatenan más cosas para evitar ataques de extensión
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Relleno de 100..0 de longitud máxima 448 bits
Adición de campo de longitud de 64 bits
División del mensaje en bloques de 512 bits
Procesamiento secuencial por bloques
Firma digital con clave secreta. Hipótesis: existe una entidad de confianza,
responsable, no vulnerable: Big brother:
Cada entidad tiene una Ksecreta con el big brother y el big brother tiene una clave
secreta que sólo él conoce.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105785
¿El emisor tiene garantía de que se envía la información de forma segura? ¿Se garantizan los 3 objetivos? Sí
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
CON CLAVE ASIMÉTRICA. DOBLE CIFRADO:
Uno para proporcionar privacidad, con KPUB_B
Otro, previo, para autenticación, con KPRIV_A
Para firmar, enviar KPUB_B (KPRIV_A (T)) →
En el receptor KPUB_A (KPRIV_B (KPUB_B (KPRIV_A (T)))) = T
Pero hay una vulnerabilidad: No impide/No tiene mecanismos para el ataque de denuncia falsa de robo de clave.
Es decir, digo que alguien me ha robado la clave. La seguridad llega hasta aquí. Estas denuncias son imposibles
de vencer.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
KPUB_AUT ( KPRIV_AUT ( A,KPUB_A )
CERTIFICADO DIGITAL
En la administración hay una serie de estándares/formato de certificados. En concreto, la norma x509, reconocida
en la administración española.
AC reconocidas:
• ACE
• CAMERFIRMA
• CERES
• VeriSign
• Seguridad perimetral: Limitar el tráfico para entrar o salir a través de las premisas fijadas. Se hace con:
o Firewall: una serie de reglas que se activan
o Sistema de detección de intrusiones (IDS) y de respuesta (IRS): Mecanismo que inspecciona el
tráfico y en base a un repertorio de reglas o a un mecanismo de entrenamiento, son capaces de
detectar anomalías o patrones extraños en el tráfico y reaccionar/responder a estos.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• Seguridad en Protocolos (¿Dónde poner la seguridad?):
¿En qué parte de la arquitectura debemos poner la seguridad? En todas las capas.
o CAPA DE APLICACIÓN:
➢ Pretty Good Privacy (PGP): Framework/Estándar/Iniciativa para enviar y recibir correo seguro.
Ahora es opensource.
Cogemos el mensaje original y se hace un hash con MD5. Eso se cifra con la clave privada. El hash
cifrado junto con el texto plano original se comprime. A esto se le cifra con un algoritmo de clave
secreta (IDEA). Envía la clave secreta cifrada con la clave pública del destino al propio destino (Esto
es porque la KPUB/PRIV se usan para cifrar cosas pequeñas <p.e la clave secreta>). Todo esto lo cifra en
base 64.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
o Alguien tiene que garantizarme esto → certificado digital. Se trata de cifrar por una autoridad
(policía) la asociación. → KPRIV_POLICIA (A -----> KPUB_A)
✓ ¿No repudio de A? Si. Si A niega que lo ha firmado, el destinatario coge lo recibido y lo lleva a la policía.
B descifra KPUB_B y mira KPRIV_A(T) → prueba de que A ha firmado ese texto porque B no lo puede hacer.
✓ Integridad: Si alguien ha cambiado el texto en el otro lado, voy a la policía y le piden al otro extremo lo
que le ha llegado y mira. KPRIV_A(T) → prueba de que A ha firmado ese texto.
o CAPA DE TRANSPORTE:
➢ Transport Secure Layer (TSL) (antes SSL) → Versión segura de TCP.
El SSL Record Protocol encapsula los protocolos y ofrece un canal seguro con privacidad, autenticación e
integridad.
Antes, en toda sesión que vaya a usar TLS, se usa SSL HandShake protocol,
• Para que extremo a extremo hagan una negociación del algoritmo del cifrado (para dar
flexibilidad), de la función hash….
• Autentica al servidor usando su certificado. El cliente
autentifica al servidor enviando todo con el certificado. El
cliente autentica al servidor con X.509
o KPRIV_AUT(Server, KPUB_SERVER)
• El cliente genera claves de sesión:
o Aleatorias cifrada con KPUB_S ERVER (como en PGP)
o Diffie-Hellman
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105785
SSL RECORD PROTOCOL
Los mensajes de la aplicación se trocean. Cada trozo se comprime. Se genera un hash (HMAC) y el compendio
se combina con el mensaje. Se encripta. Se transmite.
Con SSL se autentica al servidor, no al cliente.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
mediante Diffie-Hellman. Establecer un vínculo entre dos entidades mediante una clave de
sesión.
• Antes se necesita autenticación previa con el certificado digital del cliente y servidor. Esto
es para evitar el ataque de persona en medio (Man in the middle).
• Es simplex: La asociación de seguridad tiene un único sentido. Permite establecer una
clave secreta en una dirección → asociación en un sentido (por ejemplo del cliente al
servidor sólo, o al revés).
• Se identifica con la IP origen + Security Parameter Index (32 bits).
• Vulnera el carácter NO orientado a conexión de IP.
2. Garantizar la autenticación e integridad de los datos:
• Protocolo de “Cabeceras de autenticación”. Es como una versión ligera del IPSec. Parte de
que ya tenemos la clave secreta del 1º.
Modo túnel: La asociación se hace entre dos routers intermediarios. La parte segura es la de Internet. Se
crea una nueva cabecera, se mete la cabecera de ese IPSEC para integridad y ¿autenticación?
S_GRND
Fundamentos de Redes
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Servicios y Protocolos de Aplicación en Internet
5.1. INTRODUCCIÓN A LAS APLICACIONES DE RED
Estamos en la primera capa de TCP/IP
Servidor
• Siempre en funcionamiento (standlone) → proceso que está escuchando en un
puerto de forma pasiva.
• Los servicios se montan en IP públicas y permanentes.
• Agrupados en granjas (actualmente).
o Cloud computing → Los servicios se montan en granjas que se instancian a
demanda.
Clientes:
• Funcionando de forma intermitente: Los usuarios los crean o los matan
cuando vean.
• Pueden tener IP dinámica y privada
• Se comunican con el servidor pero no entre sí
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105787
¿Cómo las aplicaciones (del cliente o del servidor) hacen uso de los servicios del sistema operativo? A través de
la interfaz socket. Esta interfaz es básicamente una API → conjunto de métodos/llamadas al sistema que permite
a las apps hacer uso de los servicios de transporte.
El proceso envía/recibe mensajes a/desde su socket. Para recibir mensajes un proceso debe tener un identificador
(IP + puerto).
Por ejemplo: Servidor web Gaia.cs.umass.edu
Dirección IP: 128.110.245.12
Puerto: 80
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
El precedente del socket: Gestión I/O del SO → Utiliza el paradigma Open/Read/Write/Close
Necesitamos un mecanismo que permita que la aplicación pueda abrir, cerrar, leer, escribir una conexión a un
proceso remoto. Eso hace la API → Incorporando un nuevo elemento: el socket.
El socket es un descriptor de una transmisión a través del cual la aplicación puede enviar y/o recibir información
hacia/o desde otro proceso de aplicación. Es una puerta de acceso (metafóricamente) entre la aplicación y los
servicios de transporte. A partir de este concepto se procede de la misma forma: abro descriptor, escribo y leo, y
cierro el descriptor. Generalizamos el concepto de I/O del SO con el concepto socket. Es como leer/escribir al
proceso remoto.
• IP Local
• IP Remota Así identifico la transmisión
• Puerto local
• Puerto Remoto
El campo servicio indica si el socket va a usar TCP, UDP, directamente al datagrama, directamente a la capa
subyacente…
Para estimar los retardos (tiempos) en cola de un servidor, se usa la teoría de colas. (no entraremos en esto).
Antes de la segunda clasificación, tenemos que aclarar que la información que se intercambian se clasifica en:
o Información de control: si hablamos del teléfono, es el número del destino. Si hablamos de HTTP, son las
cabeceras. Es la información necesaria para configurar/usar el servicio.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
o Información de datos: si hablamos del teléfono, es la propia voz. Si hablamos de HTTP, es la página web,
el contenido. Son los propios datos.
In-band: Usan un único canal/conexión para enviar tanto la información de control como de datos. Por
ejemplo, el teléfono (tanto la voz como el número de destino) y HTTP (tanto la cabecera como el
contenido).
Out-band: Usan una conexión para información de control y otra para datos. Por ejemplo, FTP usa el
puerto 21 para la información de control y el 20 para los datos
♠ Stateless: no implican una vinculación (estado en común entre el cliente y servidor). El servidor ni tiene
que saber la traza del cliente (por donde ha pasado su histórico). En cualquier momento se puede generar
cualquier solicitud/respuesta. El conjunto de solicitudes/respuestas no dependen de un estado. Por
Los trozos pueden incluir una cabecera específica más una serie de datos en forma de parámetros:
▪ Parámetros fijos: en orden
▪ Parámetros de longitud variable u opcionales.
▪ Para los parámetros se usa Formato TLV (Type-Length-Variable).
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
autenticación, no repudio, integridad...)
• Conclusión: las distintas aplicaciones tienen requisitos HETEROGÉNEOS
Servicio UDP:
• No orientado a conexión
• Transporte no fiable
• Sin control de flujo
• Sin control de congestión
• ¿Para qué existe UDP?
TCP y UDP (capa de transporte) al ser usuarios del protocolo IP (capa de red) no garantizan Calidad de Servicio
(QoS), es decir:
• El retardo NO está acotado
• Las fluctuaciones en el retardo NO están acotadas
• No hay una velocidad de transmisión mínima garantizada
• No hay una probabilidad de pérdidas acotada
Tampoco hay garantías de seguridad.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
“nombres de dominio” (hay más de 300*106). Domain Name System (DNS) es un servicio que ofrece un servicio
fundamental: básicamente realiza la traducción de nombres de dominio a direcciones IP (resolución de nombres).
www.ugr.es <-------> 150.214.204.25
Esta traducción la hace el DNS. Es un protocolo de cliente-servidor que permite resolver los nombres.
El espacio de nombres de dominio tiene una estructura jerárquica en forma de árbol centrada en el dominio raíz
(root) “.”:
Parte_local.dominio_niveln. … .dominio_nivel2.dominio_nivel1
A los dominios del nivel 1 se les denomina Top Level Domians (TLD) (.com .es .edu etc)
El dominio raíz (“.”) está gestionado centralizadamente por el ICANN (Internet Corporation for Assigned Names
and Numbers; www.ican.org). ICANN delega la gestión de algunos dominios TLD a centros regionales.
DNS es un protocolo de aplicación para el acceso a una base de datos distribuida con una gestión distribuida. El
objetivo es resolver los nombres mediante el acceso a una base de datos distribuida. La base de datos está
gestionada por 3 niveles de servidores, asociados al árbol de nombres de dominio:
♠ Servidores raíz “.” (root servers)
♠ Top-Level Domain (TLD servers)
♠ Servidores Locales (Local servers)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105787
Todo equipo (toda entidad en internet/IP) tiene un proceso local llamado “Internet Resolver”. Este gestiona una
caché local. Si en jcp.ugr.es nos preguntamos: ¿IP de www.google.com?
1. Consulta al “resolver” local (caché). Lo primero que hacemos al realizar una resolución es preguntar al
Internet Resolver → si lo tengo localmente, mejor. Me ahorro el proceso siguiente.
2. Lo normal es que no lo tenga. Si no hay respuesta, se le pregunta a su Local Server.
¿Cómo se conoce su IP? Por configuración, toda entidad IP sabe su
DNS.
o Configuración manual
o Configuración automática → DHCP
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
3. El server local puede:
• Saber la respuesta: si es responsable de ese nombre de dominio o si la sabe por caché (se va anotando
lo aprendido)
• No saber la respuesta: interviene la estructura de directorios para ayudar
a resolver. → El Local Server lo traslada al raíz (servidor asociado al
nombre raíz del árbol de nombres de dominio).
o Si lo sabe, lo devuelve
o Si no lo sabe, hace análisis → translada la
pregunta al TLD (en nuestro caso, es .com así
que se lo pregunta a .com).
4. Puede ocurrir que .com:
Así sucesivamente
Resolución iterativa:
o X pregunta a A.
o A dice: ¡NO! Pregúntale a B.
o X pregunta a B.
Inconveniente: Las cachés no se pueden actualizar
Ventaja: Menos consumo de los servidores
La función anterior es una llamada al sistema. Le damos el control al Sistema Operativo. El resolver empieza a
mirar en la caché. Si no lo tiene, consulta al local server… y sigue sucesivamente como hemos explicado
anteriormente.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
Las consultas y respuestas entre el host local y el DNS las define el protocolo DNS.
Se trata de una relación cliente-servidor con repertorio/sintaxis/semántica de mensajes.
Todo esto tiene un punto débil: cuello de botella en el root. Todas las resoluciones que no conozcan los local
servers pasan por él. Luego veremos la solución de escalabilidad.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
o secundarios (obtienen la base de datos por transferencia). Servidores que obtienen la copia de la
base de datos por transferencia. Consulta por DNS toda la BD al primario.
Ambos son autoridad
Volvamos al cuello de botella. Parece que el raíz está en todas las resoluciones del mundo. El raíz tiene delegada
la autoridad a cada Top Level Domain. Cada vez que se crea uno, lo delega. Translada la pregunta al Top Level
Domain solamente. Pero sigue siendo un cuello de botella.
• Además, existe un servicio de cache para mejorar prestaciones.
• Para garantizar escalabilidad existen 13 servidores raíz (Root Servers) (identificados de A a M) múltiples
instancias (réplicas con la misma IP) repartidas por el mundo. El root-server F (y otros) tiene un servidor
en Madrid (Espanix: punto neutro)
• Cuando un cliente (a través de un resolver local ) solicita una resolución de nombres a su servidor, puede
ocurrir:
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
DUSKEY → Clave pública
RRSIG → Registro de firma. Firma con la clave privada del servidor.
Existe una base de datos asociada de resolución inversa para traducir direcciones IP en nombres de dominio. (in-
addr.arpa). Los registros PTR son aquellos donde se guarda la info al revés. Dada una IP, ¿cuál es su nombre de
dominio? Las direcciones IP se pueden ver también como un árbol.
En los registros PTR se almacena en el campo valor el nombre de dominio asociado a una IP.
Cuando un cliente DNS quiere obtener el nombre de dominio correspondiente a una IP por ejemplo 1.2.3.4, hace
una resolución inversa, preguntando el RR tipo PTR asociado a 4.3.2.1.in-addr.arpa.
DNS es un protocolo cliente-servidor. Los servers siempre están en el puerto 54. Pueden ir encapsulados con
UDP (normalmente) o con TCP (para respuestas grandes > 512 bytes).
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105787
Las webs se sirven con una relación cliente (navegador) – servidor. El protocolo con el que se responden las
solicitudes es HTTP. Es decir, las páginas webs se sirven con el protocolo HTTP (Hyper Text Transfer Protocol)
en el que se adopta el modelo cliente-servidor.
• Cliente: browser que solicita, recibe y muestra objetos webs
• Servidor: envía objetos web en respuesta a peticiones
Las páginas son un conjunto de recursos/objetos. Este contenido puede ser estático o dinámico. Por eso, las
páginas web pueden ser:
• Estáticas: contenido fijo/invariable
• Dinámicas: contenido variable
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Las páginas dinámicas pueden proporcionar contenido variable:
Usando lenguajes de scripting en el cliente: JavaScript, Flash, etc.
Usando lenguajes de scripting en el servidor: PHP, Perl, Ruby, Python… Se utilizan incrustando etiquetas
dentro de la página web. Cuando el cliente solicita esa página web, el servidor web interpreta estas
etiquetas para realizar acciones en el servidor generando contenido dinámico. Por ejemplo, insertando
información de una base de datos.
CARACTERÍSTICAS DEL PROTOCOLO HTTP
Usa los servicios de TCP (S.O.C.) en el puerto 80. La lógica del cliente y servidor son muy sencillos.
Todo lo resuelve/soluciona TCP.
o Implica el inicio de una conexión TCP, envío de mensajes HTTP y cierra de la conexión TCP.
HTTP es stateless → El protocolo no define estados. No hay acoplamiento entre cliente y servidor. para
simplificar la interacción del usuario usa Cookies, las cuales modelan una historia de estados. Así se emula
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
para el objeto
3. El servidor HTTP devuelve la respuesta
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• 1xx indican mensajes exclusivamente informativos
• 2xx indican algún tipo de éxito
• 3xx redirección al cliente a otra URL
• 4xx indican un error
• 5xx indican un error
CABECERAS (47 request headers y 49 respnse headers)
From: , User-Agent: , Content-Type: , Content-Length: , …
Variables predefinidas en las que se puede personalizar/configurar las solicitudes y respuestas.
Las cabeceras más comunes para peticiones y respuestas son:
Content-Type: descripción MIME de la información contenida en este mensaje. Identifica el
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
refiere esta respuesta. En definitiva, son los comandos que el servidor soporta. Por ejemplo, Allow:
GET, POST…
♠ Expires: Fecha de expiración del objeto enviado. Los sistemas de caché deben descartar las posibles
copias del objeto pasada esta fecha. Por ejemplo, Expires: Thu, 12 Jan 97 00:00:00 GMT+1. No todos
los sistemas lo envían
♠ Last-modified: fecha local de modificación del objeto devuelto. Se puede corresponder con la fecha
de modificación de un fichero en disco, o, para información generada dinámicamente desde una base
de datos, con la fecha de modificación del registro de datos correspondiente.
WEB CACHÉ
Objetivo: reducir el tráfico generado sin implicar servir contenido desactualizado.
El usuario configura el navegador para que todas las solicitudes se
cursen por el proxy/cache
La cache puede residir en el propio ordenador del usuario
Cliente 1 hace una petición. Pasa la solicitud por el proxy. El proxy consulta su caché. En primer lugar, estará
vacía y hace la petición al servidor. Cuando responde el servidor, la respuesta pasará por esa caché.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105787
El objeto se guarda en la caché con esos atributos. El cliente lo que hace es solicitar el mismo recurso. El get pasa
por el proxy y ve que en su caché tiene ese → con los atributos marcados en rojo. Para mejorar/reducir el tráfico,
realiza una consulta condicional
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
caché y lo devuelve al cliente.
• Ha cambiado: Hace la solicitud condicional y cuando le devuelven el objeto lo almacena en la caché y lo
devuelve al cliente.
COOKIES
Son pequeños ficheros de texto que se intercambian los clientes y servidores HTTP, para solucionar una de las
principales deficiencias del protocolo: la falta de información de estado entre dos transacciones. Fueron
introducidas por Netscape y ahora han sido estandarizadas. Se utilizan para solucionar/paliar el carácter state-less
del protocolo (sería horrible si fuese stateless realmente). El estado está local en el cliente.
• La primera vez que un usuario accede a un determinado documento de un servidor, éste proporciona una
cookie que contiene datos que relacionarán posteriores operaciones.
• El cliente almacena la cookie en su sistema para usarla después. En los futuros accesos a este servidor, el
navegador podrá proporcionar la cookie original, que servirá de nexo entre este acceso y los anteriores.
• Todo este proceso se realiza automáticamente, sin intervención del usuario.
Una cookie es simplemente una serie de líneas de texto, con pares variables/valor. Existe un conjunto predefinido
de nombres de variable, necesarias para el correcto funcionamiento de las cookies. Las variables predefinidas
son:
➢ Cookies: Conjunto de direcciones Internet para el que es válida la cookie. Ámbito donde se aplica la
cookie (conjunto de direcciones válidas para una cookie). Se puede dar una dirección única
(www.mitienda.es) o un rango (.netscape.com).
➢ Path: Fija el subconjunto de URLs para las que sirve esta cookie.
➢ Version: Permite seleccionar entre diferentes versiones del modelo de cookies.
➢ Expires: Fecha de expiración de la información. Si no se incluye, los datos son descartados al finalizar la
sesión con el cliente Web.
Cuando se accede a una URL que verifica el par dominio/path registrado, el cliente enviará automáticamente la
información de los diferentes campos de la cookie con la nueva cabecera HTTP Cookie:
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Cuando el cliente hace el GET, el server responde con OK y con las cookies (una cabecera con unas variables).
ACCESO RESTRINGIDO
HTTP no es seguro (habría que utilizar TLS para que lo fuese), pero incluye cabeceras (WWW-Authenticate y
Authorization) para restringir el acceso a recursos.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
o Protocolos de descarga (o lectura):
▪ POP3, IMAP, HTTP
➢ Agente de usuario (MUA):
o Server que se ejecuta en la infraestructura del usuario. Se
ejecuta a demanda del usuario.
o Compone, crea, edita, administra y lee mensajes de correo
del buzón. Es la interfaz con el sistema Ej. Outlook,
Thunderbird, etc. El navegador también, pero no se
recomienda porque la funcionalidad no es tan buena.
➢ Servidor de correo (MTA)
o Reenvía mensajes salientes y almacena en buzones los
mensajes entrantes de cada usuario. Permite desacoplar
POP3/IMAP: Se descargará la información con uno de esos protocolos → para la lectura (interactuar con mi
buzón).
Se trata de desacoplar temporalmente al remitente del destinatario. Es decir, que no tengan que estar
simultáneamente disponibles.
SMTP
Es un protocolo para el envío.
➢ Desde MUA hasta MTA
➢ Desde MTA hasta MTA.
“sendmail” es un popular agente de transporte de correo (MTA) en Internet, cuya tarea es encaminar los mensajes
o correos de forma que estos lleguen a su destino. Soporta muchos tipos de métodos de entrega, incluyendo SMTP.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
o Cliente SMTP: se ejecuta en el mail server (MTA) que está enviando correo
o Servidor SMTP: se ejecuta en el mail server (MTA) que está recibiendo correo.
➢ Usa TCP, por tanto, es fiable. El server siempre está en el puerto 25.
➢ Es un protocolo orientado a texto.
➢ SMTP es un protocolo orientado a conexión.
➢ Es In-Band (todo va por la misma conexión. Por la misma conexión vamos a leer y escribir todos los datos
del correo y también toda la información de control
➢ Es state-full: Los servidores si se acuerdan del cliente. Define estados. Depende de un estado.
➢ Implica 3 fases:
o Handshaking (“saludo”)
o Transferencia de mensajes
o Cierre
➢ La interacción entre el cliente y el servidor SMTP se realiza mediante comandos/respuesta:
o Solicitudes/comandos: texto ASCII
Inicialmente los mensajes estaban codificados en ASCII de 7 bits. Con la definición posterior de las extensiones
MIME se puede enviar ASCII de 8 bits y formatos enriquecidos.
MUA abre una conexión TCP al puerto 25 y comienza el diálogo con SMTP. La MUA sabe la IP de su MTA por
configuración manual (Se lo pongo a mano cuando configuro la MUA: “Oye, tu server es X”). El correo se
almacena en el spool (cola de salida) del MTA. Entonces el MTA se convierte en cliente. ¿Cómo sabe cuál es el
server destino? Con una consulta DNS → ¿Qué hay a la derecha del @? Por ejemplo: pepe@ugr.es → ugr.es.
Consulta del DNS: RR (type=MX). Tras la consulta, se obtiene el nombre de dominio del servidor.
3) El cliente SMTP abre una conexión TCP con el servidor de correo (MTA) (obtenido por DNS) del usuario
destino.
4) El cliente SMTP envía el mensaje sobre la conexión TCP
5) El servidor de correo del usuario destino ubica el mensaje en el mailbox del usuario destino
6) El usuario destino invoca su Agente de Usuario (MUA) para leer el mensaje utilizando POP3, IMAP ó HTTP
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105787
En cuanto a la sintáxis de SMTP, es tipo texto.
Los mensajes del cliente al servidor se pueden emular lanzando un telnet
al servidor con puerto 25
Statefull: el protocolo exige una serie de estados y hasta que no los defines no te deja enviar ciertos mensajes
como DATA.
S: 220 smtp1.ugr.es
C: HELO ugr.es
S: 250 smtp1.ugr.es
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
C: MAIL FROM: uno@ugr.es
S: 250 Ok
C: RCPT TO: dos@ugr.es
S: 250 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: Subject: Correo estúpido
C: Tengo ganas de enviarte un correo...
C: ¿Te importa si lo hago?
C: .
S: 250 Ok: queued as KJSADHFFWDF
C: QUIT
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
EXTENSIONES MIME
¿Cómo usamos SMTP para enviar texto enriquecido? Con las cabeceras MIME. Nada cambia respecto a la
arquitectura de correo anterior.
Son una mejora para sportar, no solo ASCI de 7 bits, sino el envío de binario, audio, vídeo, etc por correo.
Las extensiones de MIME van encaminadas a soportar:
• Texto en conjuntos de caracteres distintos de US-ASCII
• Adjuntos que no son de tipo texto
• Cuerpos de mensajes con múltiples partes (multi-part)
• Información de encabezados con conjuntos de caracteres distintos de ASCII
¿Cómo se almacena un correo en el spool/buzón? En ASCII. No confundir los mensajes del protocolo con el
formato de almacenamiento de los mensajes.
Las líneas de cabecera me indica de quien y a quién va la información, el asunto del correo, etc… Los saca por
protocolo (los mensajes que hemos visto anteriormente entre S y C).
Por ejemplo, un fichero en JPEG lo haría como en la imagen. Content-Transfer-Encoding: base 64 para enviar
el jpeg en binario.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
CONTENT-TYPE: TIPOS Y SUBTIPOS
La lista inicial de tipos y subtipos es:
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
comienzo y el fin de cada parte claramente delimitados.
• Mixed consiste en enviar distintos objetos separados por una cadena de texto. Permite que cada parte sea
diferente.
• Alternative: cada parte contiene el mismo mensaje, pero expresado en un medio o codificación diferente.
• Parallel: se usa cuando todas las partes deben “verse” simultáneamente. Por ejemplo, en los canales de
audio y video de las películas
• Digest: se usa cuando se juntan muchos mensajes en un mensaje compuesto
Ejemplo Multipart/Mixed
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6105787
o Fase de transacción
▪ Comandos del cliente
• List: lista mensajes por número. Tantas líneas como tengamos.
• Retr: obtiene mensajes por número
• Dele: borra
• Quit
o Fase de actualización del servidor (tras desconexión)
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
Es un protocolo muy básico. Se utiliza relativamente poco.
COMANDOS:
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
gestionar el estado de los correos.
➢ POP cuando cierra la sesión borra todo lo descargado o leído para liberar recursos. IMAP no, permite
acceder desde varios clientes al buzón porque se guardan en el servidor. (POP también lo permite pero en
modo descargar y guardar)
➢ Permite la descarga de parte de los mensajes
Ventajas de WebMAIL:
▪ Organización total en el servidor y accesible desde cualquier cliente con HTTP
▪ Seguridad: uso extendido de HTTPS.
*ejemplos en transparencias*´
IP es una tecnología de convergencia. Se está convirtiendo en una tecnología que sirve para enviar cualquier tipo
de tráfico, incluso el contenido con requisitos estrictos. Muchos servicios están migrando a IP (teléfono, por
ejemplo, que tiene requisitos para los
que IP no estuvo diseñado)
IP ha mejorado para garantizar extremo a extremo los requisitos que exigen las aplicaciones.
Tipos de aplicaciones:
• Flujo de audio y vídeo (streaming) almacenado → por ejemplo, Youtube
• Flujo de audio y vídeo en vivo → por ejemplo, emisoras de radio o IPTV
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• Audio y vídeo interactivo → por ejemplo, Skype
Características fundamentales:
• Elevado ancho de banda
• Tolerantes relativamente a la pérdida de datos
• Exigen Delay (retardo) acotado.
• Exigen Jitter (fluctuación de retardo) acotado
• Se pueden beneficiar de usar direcciones multicast (direcciones destino de grupo).