100% encontró este documento útil (6 votos)
9K vistas189 páginas

Bloque 2 y 4 TAI

El documento describe los principales componentes y conceptos de un sistema informático. Explica los diferentes sistemas de numeración como binario, octal y hexadecimal. Luego describe la arquitectura de Von Neumann, incluyendo que los datos e instrucciones se almacenan en la misma memoria principal de forma indistinta. También describe la jerarquía de memoria, incluyendo los registros, la caché y la memoria principal, así como las políticas de reemplazo de caché. Finalmente, resume los componentes clave de la CPU como la ALU y la unidad de control.

Cargado por

epp hidroponia
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (6 votos)
9K vistas189 páginas

Bloque 2 y 4 TAI

El documento describe los principales componentes y conceptos de un sistema informático. Explica los diferentes sistemas de numeración como binario, octal y hexadecimal. Luego describe la arquitectura de Von Neumann, incluyendo que los datos e instrucciones se almacenan en la misma memoria principal de forma indistinta. También describe la jerarquía de memoria, incluyendo los registros, la caché y la memoria principal, así como las políticas de reemplazo de caché. Finalmente, resume los componentes clave de la CPU como la ALU y la unidad de control.

Cargado por

epp hidroponia
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TEMA 1 - REPRESENTACIÓN Y ELEMENTOS DE UN SISTEMA

1. SISTEMAS DE NUMERACION

Los distintos sistemas de numeración que se emplea son el binario, octal, hexadecimal y decimal:

Datos utiles:

• 1 Nibble -> 4 bits


• 8 bits -> 1 Byte (2 Nibble -> 1 Byte)
• 1 024 Bytes -> 1 KiloByte (KB)

Regla memotecnica para múltiplos:

Pues El Zumo Yo Bebo


E X E O R
T A T T O
A T T N
A A T
O
Potencias de 2:

20 21 22 23 24 25 26 27 28 29 210
1 2 4 8 16 32 64 128 256 512 1024

Puerta XOR (1 cuando entradas


• Puerta AND (*) / NAND Puerta OR (+) / NOR distintas) / Puerta XNOR

Complemento a 1: se niegan (complementan) los dígitos (es decir, copia un 0 si aparece un 1, o


un 1 si aparece un 0).

Complemento a 2: comenzar por la derecha (el dígito menos significativo), copiando el número
original (de derecha a izquierda) hasta encontrar el primer 1, después de haber copiado el 1, se
niegan (complementan) los dígitos restantes (es decir, copia un 0 si aparece un 1, o un 1 si aparece
un 0).
2. ARQUITECTURA DE ORDENADORES

2.1. ARQUITECTURA VON NEUMANN


Un programa es una secuencia de pasos, en cada uno
se realiza una operación aritmético-lógica, para cada
paso se necesita un conjunto de señales de control, la
solución consiste en asociar un código especifico a cada
posible conjunto de señales de control, y además tanto
los datos como las instrucciones de este circuito sean
guardados en una misma memoria, el diseño se basa en
tres conceptos clave:
• Los datos y las instrucciones se almacenan en una
sola memoria de lectura-escritura.
• Los contenidos de esta memoria se direccionan indicando su posición, sin considerar el tipo
de dato.
• La ejecución se produce siguiendo una secuencia de instrucción tras instrucción.

2.2. ARQUITECTURA DE BUS


La arquitectura Von Newmann utiliza un único canal de comunicación común y conexión
material por él se envían todo tipo de datos entre las distintas partes del ordenador, son
conexiones materiales que permiten a los componentes comunicarse entre sí e interaccionar,
tres tipos:
• Bus de Control: transporta ordenes de control.
• Bus de Direcciones: transporta direcciones de memoria.
• Bus de Datos: trasporta datos como tales.
El conjunto de estos tres buses forma el Bus del Sistema, se caracteriza por:
• Ancho de bus: cantidad de información que puede manipular simultáneamente.
• Rapidez con la que puede transferir dichos datos.

2.3. FRECUENCIA DE CICLO


En todo ordenador existe un reloj maestro que marca en todo momento uno de los dos posible
sestados en que puede hallarse el voltaje eléctrico en todas las partes de la CPU, la unidad de
control que posee la CPU.

2.4. MEMORIA PRINCIPAL


Es necesario almacenar instrucciones y datos mientras se ejecutan los programas, para este fin
existe la memoria principal, donde se almacenan los datos y las instrucciones, está dividida en
celdas (llamadas palabras de memoria), el “mapa de memoria” se corresponde con el espacio
de memoria direccionable. Las principales características de la memoria principal son:
• Está formada por circuitos eléctricos denominados biestables.
• Acceso aleatorio: la memoria principal se divide en celdas que almacenan bits, pero no se
puede acceder a una celda de manera individual.
• Tiempo de acceso: tiempo transcurrido desde que se solicita una lectura hasta que el dato
está disponible en un registro.
• Ciclo de memoria: tiempo requerido en la ejecución de una operación de memoria y la
solicitud inmediata a la memoria de otra operación idéntica.

2
Clasificación de la memoria desde el punto de vista de la volatilidad:
• ROM (Read Only Memory):
o PROM (Programable ROM): una vez grabadas no se pueden borrar.
o EPROM (Erasable PROM): se puede borrar con rayos ultravioletas y volver a grabar.
o EEPROM (Electrically EPROM): se pueden borrar eléctricamente.
• Memoria principal o RAM (Random Access Memory):
o SRAM (Static Random Access Memory): muy rápida, pero más cara, se usa en los
procesadores y en pequeñas cantidades.
▪ NVRAM (Non-Volatile Random Access Memory): es una memoria de acceso aleatorio
que es capaz de almacenar información y no perderla al retirar la alimentación
eléctrica del componente (BIOS).
o DRAM (Dynamyc Random Access Memory): el termino dinámico indica que para que el
chip de memoria pueda guardar información cada bit debe ser refrescado en un cierto
periodo de tiempo, si se desconecta la energía, la información se pierde.
o SDRAM (Syncronous DRAM): recibe y emite información sincronizada a un reloj externo,
extremada mente más rápidas para leer y escribir.
o RAM-CMOS: es un tipo de memoria que almacena información sobre la configuración
del sistema. Debido a ello suele confundirse con el propio BIOS, pero es una entidad de
memoria diferente, esta solo almacena opciones de la BIOS.

2.5. JERARQUÍAS DE MEMORIA


Aparte de los propios registros de la CPU, que son la
memoria más rápida, es necesario tener una
memoria pequeña pero muy rápida, pero de mayor
tamaño que estos, se denomina cache. En una
jerarquía donde predomine la proximidad a la CPU,
podemos distinguir:
• Registros: memoria local e interna de la propia
CPU, es la más rápida.
• Memoria Cache: intermedia entre CPU y la
Memoria Principal, contiene los datos que más
se usan, suele usarse memoria SRAM para su construcción.
o Principio de localidad temporal: se ubican en la cache los datos más recientemente
utilizados.
o Principio de localidad espacial: se ubican en la cache los datos adyacentes a los utilizados.
• Memoria Principal (RAM): se comunica con la cache por bloques, también se comunica con
dispositivos de memoria secundaria.

2.5.1. MEMORIA CACHE


Memoria auxiliar de acceso aleatorio de baja capacidad y gran velocidad, se clasifican en:
• Cache interna o integrada: incluida en el procesador, puede ser de dos tipos:
o Cache de lectura: cuando la CPU realiza una lectura sobre un dispositivo de memoria
principal o secundaria, antes comprueba si está en cache.
o Cache de escritura: las operaciones de escritura no se apuntan directamente sobre
memoria principal, sino que se escriben en memoria cache.
• Cache externa.
3
Otra distinción:
• Cache de instrucciones (almacena instrucciones).
• Cache de datos (almacena datos).
Se puede organizar de tres formas:
• Correspondencia directa: cada bloque tiene un solo lugar donde puede estar dentro de la
memoria.
• Asociativa por vías: cada bloque se puede colocar en un conjunto restringido de dos o más
bloques dentro de cada cache.
• Completamente asociativa: cada bloque se puede colocar en cualquier lugar.

2.5.2. POLÍTICAS DE REEMPLAZO POR FALLO DE CACHE


Cuando se produce un “fallo de cache” hay que ir a buscar el bloque al nivel inmediatamente
inferior y liberar espacio:
• Aleatorio: escogemos un bloque de forma pseudoaleatoria.
• Menos recientemente utilizado: cogemos el que hace más que no se usa.
• El primero en llegar es el primero en salir: los bloques sustituidos van saliendo en el mismo
orden que llegaron.

2.6. CPU (Control Processing Unit)


La unidad funcional que ejecuta las instrucciones de una determinada arquitectura de propósito
general (monoprocesador o multiprocesador), se encarga de realizar las operaciones de cálculo
y de controlar el flujo de datos entre los diversos elementos que forma un ordenador, se
distinguen básicamente dos partes:
• ALU (Aritmethic Logic Unit): agrupa todos los componentes capaces de manipular datos,
realiza operaciones de:
o Operaciones de Punto fijo (aritmética entera y calculo efectivo de las direcciones).
o Operaciones de Punto flotante (aritmética con mantisa y exponente).
o Operaciones de Longitud variable (aritmética decimal y operaciones sobre conjuntos de
caracteres).
• CU (Control Unit): realiza el control del proceso y genera señales para activar los
componentes. Trabaja en base al reloj maestro que interpreta y coordina la ejecución de
todas las operaciones.
• Registros: unión de varios circuitos lógicos que almacenan un determinado número de bits,
tipos básicos:
o Uso general: puede almacenar el operando para cualquier código de operación.
o Datos: contienen datos y no participan en el cálculo.
o Direcciones: dedicados a modos de direccionamiento específicos (Registros índices,
Punteros de Pila…).
o Flags (Códigos de Condición): son bits fijados mediante hardware, indican si una
operación entrega un resultado positivo, negativo, nulo, si hay overflow…

4
Registros fundamentales que aparecen en todo ordenador:
• PC (Program Counter): contiene la dirección de la siguiente instrucción. La CPU actualiza el
PC después de cada lectura de instrucción de manera que siempre apunta a la siguiente
instrucción a ejecutar.
• INC (Incrementer): sumando su contenido al registro PC, incrementa el contenido de este.
• IR (Instruction Register): contiene la instrucción actual, aquí se analiza el código de
operación.
• MAR (Memory Address Register): contiene la dirección de una posición de memoria, el
intercambio de datos con la memoria se realiza conectado directamente al bus de
direcciones.
• MBR (Memory Buffer Register): contiene cada palabra de datos para escribir en memoria
que ha sido leída más recientemente, el intercambio de datos con la memoria se realiza
conectado directamente al bus de datos.
• Registros E/S: contiene la dirección de memoria cuyo contenido se reserva para almacenar
datos provenientes de algún dispositivo de entrada y salida:
o E/SAR (E/S Address Register): registro de direcciones, a las posiciones de memoria cuyo
contenido se usa para comunicarse con los dispositivos E/S se les denomina “puertos”.
o E/SBR (E/S Buffer Register): intercambiar datos entre un módulo E/S y la CPU.
• Registros D0, D1… Dn (Data Registers): registros genéricos destinados a contener todo tipo
de datos.

2.7 CLASIFICACION DE MICROPROCESADORES


• CISC (Complex Instructions Set Computer): procesa un conjunto de instrucciones complejo.
Interpretan y ejecutan un gran número de instrucciones pro son relativamente lento.
• RISC (Reduced Instructions Set Computer): procesan un conjunto de instrucciones reducido.
Interpretan y ejecutan solo unas pocas instrucciones, pero son mucho mas rápidos que los
CISC.

2.8 PROGRAMACIÓN E/S:


El procesador de E/S puede observar el estado de la CPU inspeccionando un registro de estado
(canal). Por medio de interrupciones, hace que la CPU suspenda la ejecución y transfiera el
control a una posición determinada donde se especifica la dirección de un programa que ha de
entrar en proceso como respuesta a la interrupción.
Hay tres agrupamientos básicos de instrucciones E/S:
• Instrucciones de transferencia: lectura, escritura o verificación de estado de dispositivo.
• Instrucciones de control de dispositivos.
• Instrucciones de bifurcación: transferencia de control dentro del programa de canal.

2.7.1 MECANISMOS DE SINCRONIZACION CPU-PERIFERICOS:


• E/S Programada (por sondeo): la CPU realiza por software la sincronización y transferencia,
con el control absoluto de la operación E/S.
• E/S por INTERRUPCIONES: no existe bucle de espera, sincronización se realiza por hardware.
Cuando un periférico está listo para transmitir se lo indica a la CPU activando la “Línea de
Petición de Interrupción”, la CPU recibe la señal de petición de interrupción, abandona la
ejecución del programa y salta a la RTI (Rutina de Tratamiento de Interrupciones).

5
• E/S por Acceso Directo a Memoria (DMA): permite la transferencia de datos entre un
periférico y la memoria sin la intervención de la CPU. Hay varios tipos:
o DMA modo ráfaga: el DMAc (controlador del DMA) solicita el control del bus a la CPU,
después este no lo libera hasta haber finalizado la transferencia de todo el bloque de
datos completo.
o DMA modo robo de ciclo: el DMAc solicita el control del bus a la CPU (un ciclo), se realiza
la transferencia de una única pabla y después el DMAc libera el bus. Por lo que el DMAc
solicita el control del bus tantas veces como sea necesario.
o DMA transparente: el DMAc accede al bus solo cuando la CPU no lo está utilizando.

3. COMPONENTES INTERNOS

3.1. PLACA BASE


Circuito que conecta diversos elementos que se encuentran sobre ella:
• Microprocesador (insertado en un zócalo ZIF “Zero Insertion Forze”).
• Chipset, reloj y memoria RAM.
• Ranuras de expansión, donde se conectan las tarjetas controladoras.
• Chips de control y almacenamiento (BIOS, ROM, caché externa).
• Conectores externos (USB, comunicaciones, sonido, red local, video…).
Las dimensiones están estandarizadas: ATX, Micro-ATX, Mini-ITX…

3.1.1. COMPONENTES DE LA PLACA BASE


• Socket: lugar donde se inserta el procesador, tipos:
o LGA1156, LGA2011 (Intel Core).
o AM2, AM3, AM4 (Phenom y Ryzen).
• Ranuras de memoria: lugar donde se inserta la RAM, se incorpora un sistema de canal doble
(Dual-Channel) en el que se utilizan dos buses distintos para la transferencia, tipos de
ranuras:
o SIMM (Single In-line Memory Module).
o DIMM: más alargados (168 contactos).
o SO-DIMM.
o RIMM.
• BIOS (Basic Input-Output System): es un programa incorporado en un chip de la placa base
que se encarga de realizar las unciones básicas de control y configuración del ordenador, es
almacenado en un chip de ROM o flash. Al encender es automáticamente cardado a la
memoria principal y es ejecutado por el procesador, realiza una rutina de verificación e
inicialización de los componentes llamada POST (PowerOn Self Test), se encarga de guardar
todas las configuraciones del equipo en una memoria volátil llamada CMOS.
• Chipset: elemento formado por un determinado número de circuitos integrados que
proporciona compatibilidad PC a nivel hardware.
o Northbridge (Memory Controller Hub): es el circuito integrado más importante del
conjunto de chips, controla las funciones de acceso desde y hasta el microprocesador,
RAM, video integrado… Sirve de conexión entre la placa madre y los principales
componentes del PC.

6
o Southbridge (I/O Controller Hub): circuito integrado que coordina los diferentes
dispositivos de entrada y salida. Se comunica con la CPU a través del Northbridge, incluye
soporte para Ethernet, RAID, USB y codec de audio. Integra cada vez mayor número de
dispositivos a conectar con tecnologías como HyperTransport o Ultra V-Link para evitar
efecto botella del PCI.
• Memoria cache: memoria temporal, de existencia oculta para el usuario, proporciona
acceso rápido a los datos de uso más frecuente, está integrada en el procesador.
• Conectores internos:
o Conectores IDE (Integrated Drive Electronics)/PATA (Parallel Advanced Technology
Attachment): conectar discos duros o CD-ROM, transferencia máxima de 166,6 MB/s.
o Conectores SATA (Serial Advanced Technology Attachment): utilizado en discos duros,
sustituye a PATA, mayor velocidad, mejor aprovechamiento cuando se tienen varios
discos, alcanza los 6 Gbits/s.
• Ranuras de expansión:
o PCI: trabajan hasta 132 MB/s suficiente para tarjetas de red y sonido.
o AGP: exclusivo para tarjetas de graficas debido a su auge como aceleradoras 3D en el
pasado, puede soportar desde 1x a 8x.
o PCIe: estándar actual para dispositivos de alto rendimiento.

7
TEMA 2 - PERIFÉRICOS

1. PERIFERICOS

Los periféricos son dispositivos E/S conectados al ordenador, pueden ser de entrada, salida,
entrada/salida (mixtos) y memoria masiva o auxiliar.
La conexión entre las distintas unidades funcionales del ordenador, ser realiza mediante un
conjunto de líneas de conexión, denominadas buses, el bus que permite la conexión “a” o
“desde” los periféricos se denominan buses de entrada y salida paralelos. Los dispositivos
pueden ser:
• Orientados a bloque: se pueden direccionar, escribir o leer cualquier bloque del dispositivo
realizando primero una operación de posicionamiento sobre el mismo (discos duros,
memoria, unidades de cinta…)
• Orientados a carácter: trabajan con secuencias de bytes sin importar su longitud ni ninguna
agrupación en especial, no son dispositivos direccionables (teclado, pantalla, impresoras…)
Los periféricos pueden conectarse directamente al bus de sistema o a través de unos circuitos
denominados interfaces, que han de proveer gran cantidad de posibilidades de interconexión
que cumplan las necesidades de cada periférico. Algunos de los puertos más representativos
son:
• PATA, SATA y eSATA: usados en unidades de disco duro.
• Ethernet: tarjetas de red.
• Firewire (IEEE 1394): interfaz de alta velocidad diseñado por Apple para entrada y salida de
datos en serie a gran velocidad. Suele utilizarse para la interconexión de dispositivos
digitales desde ordenadores hasta discos duros o cámaras digitales, hasta 32Gbps (400
MB/s).
• HDMI/VGA/DVI: interfaces con visualizadores.
• SCSI (Small Computer System Interface) y SAS (Serial Attached SCSI): usados en discos duros
y cintas de backup.
• Puertos específicos: PS/2.
• Puerto paralelo: habitual para impresoras hasta que llego USB.
• Puerto serie: RS232 (periféricos que manejan pocos datos).
• Thunderbolt: hasta 40 Gbit/s.
• USB (Universal Serial Bus): permite adjuntar dispositivos periféricos rápidamente, estándar:
o 1.0: alcanza 1.6 Mbps (200 KB/s)
o 2.0: alcanza hasta 480 Mbps (60 MB/s), dispone de 4 conectores, 2 para datos (half-
duplex) y dos para alimentación.
o 3.0: alcanza hasta 4.8 Gbps (600 MB/s), dispone de 8 conectores, 2 para subida y dos
para bajada (full-duplex).
o 3.1: alcanza 10 Gbps (1.2 GB/s)
o 3.2: alcanza 20 Gbps (2.5 GB/s)
o 4.0: alcanza 40 Gbps (5 GB/s)

8
1.1. PERIFERICOS DE ENTRADA
• Teclado: clasifican según la disposición de teclas, el mayoritario es QWERTY, pueden ser
mecánicos o de membrana.
• Raton: dispositivo de entrada de datos y de control, tipos:
o Mecánico: cuenta con una bola de goma y dos ejes dotados de una rueda dentada.
o Óptico: carece de bola de goma, usa un sensor.
o Inalámbrico: carece de cable
o TrackPoint: protuberancia cilíndrica en el medio del teclado
o Touch Pad: membrana rectangular sensible al tacto bajo el teclado (portátiles).
o TrackBall: ratón que presenta su bola al alcance del dedo pulgar.
• OMR (Optical Mark Reader): aceptan información escrita a mano y la transforman en datos
binarios inteligibles para el ordenador.
• Detectores de código de barras: leen el código formado por la codificación de cada digito
decimal en barras de grosor relativo negras y blancas adyacentes (European Article
Numbering)
• Escaner: exploración de imágenes mediante procedimientos opto electrónicos. Tipos de
escáner:
o Escáner de mesa o plano: tiene una fuente de luz y un sensor de luz.
o Escáner de tambor: escáner de gran tamaño que permite escaneo por modelo de color
CYMK o RGB con gran resolución óptica.
o Escáner de microfilm.
o Escáner para diapositivas.
o Escáner de mano.
o Escáner digitalizador de video.
o Escáner de transferencia.
• Digitalizador o tarjeta gráfica: unidades de entrada que permiten transferir directamente al
computador gráficas, figuras, planos, mapas…

1.2. PERIFERICOS DE SALIDA


• Monitor:
o CRT (Cathode Ray Tube): metal con potencial negativo y fuertemente calentado por un
filamento, de forma que libere electrones. Estos chocaran contra el interior de la
pantalla, recubierta de fosforo, que se iluminará.
o LCD (Liquid Crystal Display): la pantalla está formada por una matriz de puntos, cada uno
recibe una señal para activarse, dos grandes tipos:
▪ Matriz pasiva: cada celda está controlada por un transistor que activa la fila y otro
que activa la columna.
▪ Matriz activa: cada celda está controlada por su propio transistor, permite una
mayor luminosidad, pero también consume más energía.
o TFT (Thin Film Transistor): cada pixel es excitado de forma directa.
o PDP (Plasma): células pequeñas que contienen gases ionizados con carga eléctrica.
o LED (Light Emitting Diode): compuesta por diodos emisores de luz, tipos:
▪ OLED (Organic Light-Emitting Diode).
▪ AMOLED (Active Matrix OLED).
▪ Super AMOLED.

9
• Tarjeta de video: conjunto de circuitos electrónicos que convierten los datos de salida a
video, cronológicamente aparecieron: Tarjeta de video monocromática, CGA (permitía
colores), EGA, VGA, XGA, SVGA, UXGA, WUXGA.
• Impresora: escriben la información de salida sobre papel, cuando el pc se comunica con una
impresora utiliza un lenguaje especial denominado “lenguaje de descripción de página” o
PDL, hay dos PDLs, PCL (Printer Command Language) y PostScript, tipos de impresora:
o Impresoras de impacto: utilizan un sistema mecánico de manera que los caracteres se
forman al golpear una cinta entintada contra el papel:
▪ Impresora de agujas (matriciales): cabezal de agujas al golpear forma los caracteres,
que son impresos sobre el papel.
▪ Impresora de margarita: varillas, una por carácter, alrededor de un disco que puede
girar.
o Impresoras sin impacto: más silenciosas, rápidas y mayor calidad, hacen uso de técnicas
fotográficas, electrónicas, de inyección de tinta y de sublimación de tinta:
▪ Impresoras térmicas: cabezal de agujas, el papel, al calentarse por la aproximación
se oscurece o colorea, dejando impreso el carácter.
▪ Impresoras electrostáticas: usan un cartucho para la proyección de la imagen
formada con iones que se depositan sobre un tambor dieléctrico. Las partículas del
tóner se adhieren al tambor y por presurización en frio la imagen se transfiere al
papel.
▪ Impresora láser: utilizan el haz de un láser para inducir cargas eléctricas sobre un
tambor que está girando, la carga negativa de las partículas del tóner hace que esta
permanezca en el papel.
▪ Impresoras de inyección de tinta: forman los puntos que componen los caracteres y
gráficos al pulverizar pequeñas gotas de tinta.
• Plotter: dibujos sobre papel (planos, mapas, esquemas…).

1.3. PERIFERICOS DE ENTRADA/SALIDA


• Modem: dispositivo que convierte las señales digitales del ordenador ene señales analógicas
que pueden transmitirse a través del canal telefónico.
• NIC (Network Interface Card): permite a un ordenador acceder a una red y compartir
recursos.
• Tarjeta de sonido: transforma datos digitales en analógicos, DAC (Digital-Analogic
Converter)
• Pantallas táctiles: pantallas que pueden detectar coordenadas donde se toca, dos tipos:
o Capacitiva: manejadas mediante un objeto que tenga capacitancia, no requieren presión
sobre el dispositivo (móviles).
o Resistiva: dos capas que al ser pulsadas entran en contacto produciéndose un cambio de
corriente y detectando la pulsación.

1.4. PERIFERICOS DE ALMACENALMIENTO


• Disco electromecánico: contiene un motor que permite la rotación del disco y el
posicionamiento de los cabezales de lectura/escritura, formado por:

10
o Discos de soporte: uno o varios, donde se almacena la información, están recubiertos
por ambas partes del material ferromagnéticos susceptible de almacenar microcampos
magnéticos.
o Motor de rotación: hace girar los discos a velocidades de 5400, 7200 o 15000 rpm.
o Cabezales de lectura/escritura: cada cara de los discos del disco duro lleva asociado un
pequeño cilindro de hierro bobinado que es capaz de detectar variaciones (leer) en el
campo magnético de la superficie, o alterarlo (escribir).
o Controlador: circuitería eléctrica que permite controlar tanto los
aspectos mecánicos del disco como los aspectos lógicos de
transferencia de datos.
▪ Partes de cara a almacenar y localizar la información:
A. Pistas o Tracks: pistas concéntricas invisibles a lo largo de las
cuales se graban los pulsos magnéticos.
B. Sector geométrico.
C. Sector.
D. Cluster: conjunto de sectores en una pista.
• SSD (Solid State Drive): los datos no se almacenan sobre superficies cilíndricas ni platos,
almacenan la información en microchips con memorias flash interconectadas entre sí,
basadas en NAND, incluyen un procesador integrado que se encarga de realizar las
operaciones relacionadas con la lectura y escritura de datos, velocidades de transferencia
entre 200 y 500 MB/s.
• Discos ópticos:
o CD (Compact Disk): almacenamiento de 700 MB, velocidad de transferencia 150KBps.
▪ CD-ROM (Read Only), CD-R (Write Once, Read Many), CD-RW (Write Many, Read
Allways).
o DVD (Digital Versatil Disk): almacena entre 4,5 y 15,5 GB, velocidad de 1350 Kbps.
▪ DVD-ROM, DVD-R y DVD+R, DVD-RW/DVD+RW, DVD-RAM
o Blu-ray Disc: sustituye al DVD, almacena alta resolución, contiene 25 GB por capa.

1.5. GESTION DE ALMACENAMIENTO DE DATOS FIABLE Y REDUNDANTE


RAID (Redundant Arry of Independent Disks): varios discos en un array para formar un volumen
de mayor tamaño tolerante a fallos y mejor rendimiento.
• RAID 0 (Volumen Stripped): datos se distribuyen entre dos o
más discos, sin información de paridad, redundancia o
tolerancia a fallos. El fallo en uno de los discos provoca la
paridad de todos los datos, la utilidad es que aumenta el
rendimiento.
• RAID 1 (Volumen Espejo): copia exacta de los datos en dos o
más discos, aparecen en el sistema como una única entidad, en
caso de error de una unidad, el otro disco duro se puede
desdoblar para que continúe proporcionando acceso completo
a los datos almacenados en la unidad.

11
• RAID 3: divide los datos a nivel de bytes en lugar de a nivel
de bloques, necesita un mínimo de tres discos, utilizando
uno para datos de paridad. En estos se copian los datos en
distribución RAID 0 en los 2 primeros, en el tercer disco, se
crea el byte de paridad.
• RAID 5 (Volumen Distribuido con Paridad): datos repartidos
a nivel de bloque, con paridad distribuida entre varios discos,
se escribe información de paridad para cada sección dentro
de las distintas partes. Si falla un disco, los datos pueden
reconstruirse con la paridad, requiere al menos tres discos.
Proporciona un excelente rendimiento en las operaciones de
lectura, pero es sustancialmente más lento que las restantes opciones.
• RAID 6 (Volumen Distribuido con Doble Paridad): es como
RAID 5, pero los datos de paridad se escriben en dos
unidades. Eso significa que requiere al menos 4 unidades y
puede soportar 2 unidades que mueren simultáneamente.

Bit de Paridad: dígito binario que indica si el número de bits con un valor de 1 en un conjunto de
bits es par o impar.
• En el caso de la paridad PAR, se cuentan el número de unos. Si el total es impar, el bit de
paridad se establece en uno y por tanto la suma del total anterior con este bit de paridad,
daría par. Si el conteo de bits uno es par, entonces el bit de paridad (par) se deja en 0, pues
ya es par.
• En el caso de la paridad IMPAR, la situación es la contraria. Se suman los bits cuyo valor es
uno, si da un número impar de bits, entonces el bit de paridad (impar) es cero. Y si la suma de
los bits cuyo valor es uno es par, entonces el bit de paridad (impar) se establece en uno,
haciendo impar la cuenta total de bits uno.

mdadm: utilidad de Linux utilizada para administrar y monitorear dispositivos RAID por software

12
TEMA 3 - SISTEMAS OPERATIVOS

1. SISTEMAS OPERATIVOS
Es el software básico de un ordenador, conjunto de programas y funciones que gestionan el
funcionamiento del hardware y del software, es el primer programa que se carga en memoria al
encender y el principal administrador de recursos. Pueden ser según el modo en el que este se
comunica con el usuario:
• Línea de comandos: las operaciones del sistema se introducen tecleándolas directamente o
bien ejecutando una colección de estas almacenadas en forma de guion “script”.
• Interfaz gráfica: manipulación de elementos grafios en la pantalla.
Se organizan por capas en torno a un núcleo principal:
• Nivel kernel: controla todo lo que sucede en el ordenador, gestiona los procesos que llegan
para ser ejecutados.
• Nivel ejecutivo: administración de la memoria.
• Nivel supervisor: realiza la comunicación de cada proceso entre el sistema y el usuario,
controla y coordina la gestión de entrada/salida de los diferentes procesos con destino a los
periféricos.
• Nivel usuario: controla los procesos que está utilizando el usuario, simplemente muestra al
usuario el proceso que este quiere ejecutar.

2. COMPONENTES DE UN SISTEMA OPERATIVO


• Núcleo o “kernel”: componente principal del sistema,
modprobe: programa de
responsable de tareas como trasladar el control de un
Linux para gestionar
programa a otro, control y programación de entrada y salida,
modulos del KERNEL de
manejo de interrupciones, gestión de memoria,
Unix.
comunicación entre procesos…
• Programas de control: parte del sistema dedicado a controlar el funcionamiento de todos
los recursos y elementos de un ordenador: procesador, memoria, periféricos…
• Programas de proceso: diseñados para ayudar al programador en la puesta a punto de las
aplicaciones, dos tipos:
o Traductores: toman como entrada un programa fuente y proporcionan con salida un
programa objeto, este necesita cierta preparación que realiza el enlazador, tres tipos de
traductores:
▪ Ensambladores: transforma programas fuente escritos en leguajes simbólicos de
bajo nivel denominados ensambladores en programas objetos escritos en código
maquina y directamente ejecutables.
▪ Compiladores: transforman programas fuente escritos en lenguajes de alto nivel en
programas objetos escritos en leguaje máquina, realiza la traducción completa y
crea el programa objeto cuando no existan errores en la traducción.
▪ Intérpretes: transforman programas fuente escritos en lenguajes de alto nivel en
programas objetos escritos en leguaje máquina, ejecuta las instrucciones según se
va realizando la traducción sin esperar a traducir el programa fuente completo.
o Programas de servicio: programas que realizan funciones apara el sistema usuario
denominadas utilidades:

13
▪ Programas de manipulación de datos: liberan al programador de trabajos rutinarios
como la trasferencia de archivos entre soportes, reorganización de archivos,
ordenación de datos.
▪ Programas de servicio del sistema: generación del sistema operativo completo sobre
el ordenador, preparación de los programa y creación y mantenimiento de las
bibliotecas de programas.
3. PROCESOS
En un sistema multiprogramado la CPU alterna entre programas, ejecutando cada uno de ellos
unos cuantos milisegundos, todo software ejecutable en el ordenador se organiza en procesos,
inclusive el sistema operativo, cada proceso dispone de una CPU virtual, aunque la CPU física lo
que hace es una alternancia muy rápida.
Se puede definir un proceso como un programa en ejecución, puede estar constituido por el
programa y los valores de las variables que intervienen en la ejecución, por lo tanto, es una
entidad dinámica, contiene una parte fija (el programa) y una parte variable (estado del
proceso), cuatro conceptos asociados a la gestión de procesos:
• Necesidad de que cada proceso tenga asignada una prioridad, se encarga el planificador.
• El distribuidor se encarga de activar procesos en función de sus prioridades.
• Estado de proceso, situación con respecto al procesador (activo, esperando el bloqueado…).
• Si no hay espacio suficiente en la memoria principal los programas en espera se llevan a la
memoria secundaria.
Los estados de un proceso pueden ser:
o Activo/ejecución: proceso que se está ejecutando.
o Bloqueado/en espera: se espera la conclusión de un suceso.
o Preparado: proceso que se puede ejecutar pero que está esperando por otro de mayor
prioridad.
o Muerto/terminado: se termina la ejecución del proceso.
PCB (Process Control Block): registro especial donde el sistema operativo agrupa toda la
información que necesita conocer respecto a un proceso particular. Cada vez que se crea un
proceso el sistema operativo crea el BCP correspondiente para que sirva como descripción
en tiempo de ejecución durante toda la vida del proceso.
Las operaciones de E/S son mucho más lentas que los procesos de cómputo, por lo tanto, el
procesador estaría libre la mayor parte del tiempo, porque los procesos en memoria estarían en
espera de esas operaciones. Para solucionar esto, la memoria principal puede expandirse para
almacenar más procesos, a coste de mover parte o todo el proceso de memoria principal al disco
secundario o una partición (swapping). Al hacer uso del swapping, se crea un nuevo estado
llamado “suspendido”: el proceso esta en disco secundario listo para ser cargado a memoria
principal cuando se le llame.

3.1. PLANIFICACION DE PROCESOS


Tiene como objetivo obtener la mayor cantidad de trabajos realizados en una unidad de tiempo,
la planificación es el conjunto de políticas y mecanismo incorporados al sistema operativo por
el que se rige el orden en el que se completa el trabajo, se pretende: justicia en el reparto de la
CPU, evitar la demora indefinida de los procesos, lograr la máxima capacidad de ejecución y el
equilibrio en el uso de los recursos. Se puede planificar en función de los siguientes conceptos:

14
• Alto nivel: a que trabajos se les va a permitir competir activamente por los recursos del
sistema.
• Nivel intermedio: que procesos se les puede permitir por la CPU, intentando siempre
conseguir el mejor rendimiento.
• Bajo nivel: determinar qué proceso de los que están listos se les va a asignar la CPU.

3.1.1. ALGORITMOS DE PLANIFICACION

• Apropiativa (preemtive): interrupciones periódicas en las que el planificador toma el control


y decide si el proceso sigue ejecutándose.
• No apropiativa: un proceso acapara la CPU y no la libera hasta que no finaliza.
Su función consiste en repartir el tiempo disponible de un microprocesador entre todos
los procesos que están disponibles para su ejecución. en principio, cualquier proceso
monopoliza el microprocesador impidiendo que otros procesos se ejecuten, por ello, la primera
misión de un algoritmo de planificación es expulsar el programa en ejecución cuando decida que
es pertinente. El control del microprocesador pasa a manos del planificador gracias a que
el hardware genera una interrupción. En este proceso de expulsión, se guarda el estado de
ejecución del programa (programa y su estado se denomina contexto).
• FIFO (First In First Out): algoritmo NO apropiativo, cuando un proceso llega a la cola de
preparado se agrega su PCB al final de la lista, la CPU se otorga al primero de la lista y una
vez que un proceso empieza a ejecutar no deja de hacerlo hasta que termina, el tiempo de
espera será bastante alto.
• SJF (Shortest Job First): algoritmo NO apropiativo, asocia a cada proceso el tiempo de CPU
que necesitara en el siguiente ciclo y se decide por el más pequeño, el mayor problema
radica en el cálculo del tiempo de CPU, el tiempo de espera para procesos largos puede ser
excesivo.
• Priority Scheduling: asocia a cada proceso una prioridad para a continuación seleccionar el
proceso con mayor valor de esta, hay dos tipos de prioridades, externa (definida a través del
SO) e interna (definida por el tiempo de uso de la CPU). Se implementa un proceso de
aumento de la prioridad con el envejecimiento de cola debido a que existe la posibilidad de
la “muerte por inanición”.
• Round Robin: se basa en el uso del “quantum temporal” (pequeña unidad de tiempo o franja
temporal que mide el tiempo máximo que un proceso puede hacer uso del procesador, al
ocurrir una interrupción del reloj se llama al quantum y este le cede el control de la CPU al
planificador).

3.32. PROBLEMAS DE CONCURRENCIA


Ocurren cuando dos o más procesos acceden a un recurso compartido sin control, de manera
que el resultado combinado de este acceso depende del orden de llegada, hay varios tipos:
• Inanición o aplazamiento indefinido: ocurre cuando un proceso tiene una prioridad tan baja
que nunca llega a ser trasladado a memoria principal
• Condición de no apropiación: si un proceso tiene asignado un recurso, dicho recurso no
puede arrebatársele por ningún motivo, y n estará disponible hasta que le proceso lo suelte
por su voluntad.

15
• Condición de espera ocupada: un proceso pide un recurso que ya este asignado a otro
proceso y la condición de no apropiación se debe cumplir, entonces el proceso estará
gastando el resto de su “time slice” comprobando si el recurso fue liberado
• Condición de exclusión mutua: un proceso realiza operaciones sobre el recurso, después lo
deja de usar. La sección de código que usa ese recurso se le llama región critica, la condición
de exclusión mutua establece que solamente se permite a un único proceso estar dentro de
la misma “región critica”. (se puede lograr entrar en la región critica con el algoritmo de
Dekker y Peterson: algoritmo de programación concurrente para exclusión mutua que
permite a 2 o más procesos compartir un recurso sin conflictos, utilizando tan solo memoria
compartida para la comunicación.)
• Condición de espera circular (deadlock): se produce cuando en un conjunto de procesos,
cada uno de ellos espera a un evento que solo puede generar otro del conjunto. Existen
técnicas para prevenir el deadlock, como mecanismos para evitar que se presente alguna de
las cuatro condiciones necesarias para el deadlock:
o Asignar recursos en orden lineal: si un proceso tiene el recurso con etiqueta menor que
otro, este no puede pedir recursos a uno con etiqueta mayor. Con esto se evita la
condición de espera ocupada.
o Asignar todo o nada: el proceso debe pedir todos los recursos que va a necesitar de
golpe, y se le asignaran solamente si se le pueden dar todos.
o Algoritmo del banquero: se elabora una tabla de recursos existente e información del
máximo de recurso de cada tipo que usa cada proceso y cuando un proceso pide un
recurso se verifica si, asignándoselo, todavía quedan otros del mismo tipo de reserva.

4. GESTION DE MEMORIA
Los programas residen en el disco como ejecutables binarios, el conjunto de programas
residentes en el disco esperando a ser cargados en memoria forman la cola de entrada, los
programas pueden direccionar memoria:
• Direccionamiento en el momento de compilación: generan código absoluto (siempre se
ejecuta en una dirección de memoria de inicio fija).
• Direccionamiento en el momento de la carga: maneja direcciones relativas, genera código
localizable.
• Enlace dinámico: se retarda la edición del enlace hasta el momento de ejecución.
• Overlays: permite ejecutar un programa en un espacio de memoria menor que su tamaño.

4.1. ADMINISTRACION DE MEMORIA REAL


• Asignación contigua de almacenamiento: cada archivo ocupa un conjunto de bloques
contiguos en el disco a los que se les asigna ese espacio fijo en el momento de su creación
(por lo que los archivos no pueden crecer).
• Multiprogramación de partición fija: la memoria se divide en particiones de tamaño fijo, los
compiladores y editores de enlaces generaban código localizable para que un programa
pudiera ejecutarse en cualquier partición de memoria (suficientemente grande).
• Multiprogramación de partición variable: cada programa el usuario emplea tanta memoria
como sea necesaria siempre que quepa en el almacenamiento real, se van generando
huecos en la memoria, estos huecos se pueden solucionar de varias formas:

16
o Combinación: cuando un programa termina su ejecución, el sistema operativo verifica si
hay algún bloque de memoria contigua libre y los combina para genera un único bloque
de memoria libre.
o Compactación: agrupa toda la memoria disponible en un único bloque al final. Como
desventajas genera un alto consumo de CPU y obliga a detener la actividad del sistema.
• Colocación para el almacenamiento: cuando a una petición se le asigna una nueva partición
y sobra memoria el sistema operativo se da cuenta y deja este espacio sobrante como una
nueva partición:
o Best Fit: los bloques de memoria son asignado según las necesidades del programa que
se está ejecutando.
o First Fit: se asigna en la primera partición disponible en la que pueda entrar el programa,
más rápida, pero se desperdicia mucho espacio de memoria.
o Worst Fit: se asigna en la partición en la que sobra más espacio.

4.2. ALMACENAMIENTO EN MEMORIA VIRTUAL


Las direcciones de memoria no están necesariamente contenidas en el almacenamiento real, el
SO se apoya en el almacenamiento secundario para extender la capacidad de la memoria con
direcciones virtuales, estas deben poder transformarse en direcciones reales mientras el
proceso está en ejecución.
La memoria virtual es la separación de la memoria lógica y de la memoria física, esta separación
permite proporcionar a los programadores una gran memoria virtual cuando solo se dispone de
una memoria física más pequeña. La memoria virtual facilita las tareas de programación ya que
el programador no se tiene que preocupar por la cantidad de memoria física disponible.

4.2.1. ESTRATEGIAS DE REEMPLAZO DE MEMORIA VIRTUAL (PAGINACIÓN)


Se denominan paginas a los bloques de memoria de igual tamaño y paginación a la
administración del almacenamiento virtual asociado, si los bloques son de distinto tamaño
hablamos de segmentos. Las paginas se transfieren del almacenamiento primario al secundario
en bloques llamados “page frames”.
La tabla de páginas de cada proceso puede llegar a ser demasiado grande, se buscan
mecanismos que permitan acelerar el tiempo de repuesta como la utilización de un conjunto de
registro dedicados, el “CPU Dispatcher” encargado de cargar y actualizar la información de estos
registros en cada contexto. La solución más común es apoyarse en una cache de acceso muy
rápida llamada TLB (Translation Location Buffer), puede contener algunas entradas de la tabla
de páginas.
Si en el momento de generarse un fallo no hubiera ningún frame disponible se procede a
sustituir una página en memoria, algoritmos de sustitución de página:
• Política óptima: selecciona para reemplazar la página que tiene que esperar una mayor
cantidad de tiempo hasta que se produzca la referencia siguiente. Este algoritmo es
imposible de implementar, ya que requiere que el sistema operativo tenga un conocimiento
exacto de los sucesos futuros. Sin embargo sirve como un estándar para comparar otros
algoritmos.
• FIFO (First In First Out): asocia a cada página el momento en que fue cargada en memoria,
se selección ala que hace más tiempo que está en memoria.
• LRU (Least Recently Used): se selecciona la página que hace más tiempo que no se emplea.
Se necesita almacenar el momento temporal de la última actualización de cada página:

17
o Contadores: se asocia a cada entrada en la tabla de páginas el momento de la última vez
que se usó, cada vez que se accede a una página se actualiza el contador.
o Stack: lleva una pila con los numero de cada página, cada vez que se accede a una página
se coloca en el tope, en la cima de la pila estará la página que fue utilizada por última
vez y en el fondo la que hace más tiempo que no se accede.
• Paginación por demanda: “Swapping”, cuando un proceso va a ser ejecutado, el mismo es
paginado a la memoria, empleando la técnica lazy swapping, se necesita determinar si una
página está en memoria o en disco, se emplea el bit “valido/invalido”.
• Segunda oportunidad: variante de FIFO, cada vez que se selecciona una página se
inspecciona un bit de referencia, si el valor es cero se procede a sustituir la página, si el valor
es uno, se da una segunda oportunidad a la página y se selecciona el siguiente candidato por
criterio FIFO, cada vez que una página recibe una segunda oportunidad se cargar un cero en
el bit de referencia.
• LFU (Least Frequently Used): la página con menos cantidad de referencias debe ser
sustituida.
• MFU (Most Frequently Used): la página con mayor cantidad de referencias es la sustituida.
• Page Buffering: se mantiene una cola de “frames”, cuando ocurre un fallo de página se elige
una víctima empleando alguno de los mecanismos ya vistos, en lugar de hacer el cambio de
frame en una sola operación se carga la página en memoria y el SO descarga la página y la
agrega a la cola de “frames”.
Hiperpaginacion (thrashing): situación en la que se utiliza una creciente cantidad de recursos
para hacer una cantidad de trabajo cada vez menor cuando se cargan y descargan sucesiva y
constantemente partes de la imagen de un proceso desde y hacia la memoria principal y la
memoria virtual. Cuando se produce hiperpaginación, los ciclos del procesador se utilizan en
llevar y traer páginas (o segmentos, según sea el caso) y el rendimiento general del sistema se
degrada notablemente.

SISTEMAS OPERATIVOS EN RED

1. TIPOS DE REDES DE AREA LOCAL


Las redes se dividen en dos categorías dependiendo del tamaño de la organización, nivel de
seguridad requerido, nivel de soporte administrativo, tráfico de la red…
• Redes Workgroup: no hay servidores dedicados ya que implica un pequeño grupo de
personas, máximo diez equipos y no existe una jerarquía entre ellos. Todos los equipos son
iguales (peers), cada equipo actúa como cliente y servidor no hay necesidad de un potente
servidor central ni de software adicional, el usuario de cada equipo determina los datos de
dicho equipo que van a ser compartidos en la red. Los equipos están en las mesas de los
usuarios, estos actúan como sus propios administradores y planifican su propia seguridad,
están conectados por un sistema de cableado simple. La seguridad no es fundamental.
• Redes basadas en Servidor: la mayoría de las redes tienen servidores dedicados, es aquel
que funciona solo como servidor y no se utiliza como cliente o estación, están optimizados
para dar servicio con rapidez a peticiones de los clientes, garantizar la seguridad de los
archivos y directorios, la división de tareas de la red entre varios servidores asegura que
cada tarea será realizada de la forma más eficiente posible. Servidores especializados:
18
o Servidores de archivos e impresión: gestionan el acceso de los usuarios y el uso de
recursos de archivos e impresión, al ejecutar una aplicación de tratamientos de textos,
dicha aplicación se ejecuta en su equipo. El documento de tratamiento de textos
almacenado en el servidor de archivos e impresión se cargar en la memoria de su equipo
de forma local, los servidores de archivos e impresión se utilizan para el almacenamiento
de archivos y datos.
o Servidores de aplicaciones: en un servidor de aplicaciones la base de datos permanece
en el servidor y solo se envían los resultados de la petición al equipo que realiza la misma,
una aplicación cliente que se ejecuta de forma local accede a los datos del servidor de
aplicaciones, solo se pasara el resultado de la consulta desde el servidor a su equipo
local.
o Servidores de correo: funcionan como servidores de aplicaciones, datos encargados de
forma selectiva del servidor al cliente.
o Servidores de fax: gestionan el tráfico de fax hacia el exterior y el interior de la red,
compartiendo una o más tarjetas modem fax.
o Servidor de comunicaciones: gestionan el flujo de datos y mensajes de corro entre las
propias redes de los servidores o usuarios remotos que se conectan a los servidores
utilizando módems y líneas telefónicas.
o Servidores de servicios de directorio: permiten a los usuarios localizar, almacenar y
proteger información en la red.

1.1. PARTES DE UNA RED BASADA EN SERVIDOR


Al igual que un equipo no puede trabajar sin un SO, una red de equipos no puede funcionar sin
un SO de red. Este es el ejemplo más familiar y famoso donde el software de red del equipo
cliente se incorpora en el SO del equipo. El equipo personal necesita ambos SO para gestionar
conjuntamente las funciones de red y las funciones individuales. El SO de un equipo coordina la
interacción entre el equipo y los programas que está ejecutando. Controla la asignación y
utilización de los recursos hardware (memoria, CPU, espacio de disco, periféricos…). En un
entorno de red, los servidores proporcionan recursos a los clientes de la red y el software de red
del cliente permite que estos recursos estén disponibles para los equipos clientes. Elementos
principales:
• Software de cliente: en un sistema autónomo, en un entorno de red, cuando un usuario
inicia una petición para utilizar un recurso que está en un servidor, la petición se tiene que
enviar o redirigir desde el bus local a la red y desde allí al servidor que tiene el recurso
solicitado, este envío es realizado por el “redirector” (se inicia en un equipo cliente cuando
el usuario genera la petición de un recurso o servicio de red). El equipo del usuario se
identifica como cliente, puesto que está realizando una apetición a un servidor, este procesa
la conexión solicitada por los redirectores del cliente y les proporciona acceso a los recursos
solicitados.
• Software de servidor: permite a los usuarios en otras máquinas y a los equipos clientes,
poder compartir los datos y periféricos del servidor incluyendo impresoras, trazadores y
directorios. Si un usuario solicita un listado de directorios de un disco duro remoto
compartido. El redirector envía la petición al servidor de archivos que contiene el directorio
compartido. Se concede la petición y se proporciona el listado de directorios.

19
• Periféricos: los redirectores pueden enviar peticiones a los periféricos, con el redirector
podemos referenciar como LPT1, COM1 o USB1 impresoras de red en lugar de impresoras
locales. El redirector intercepta cualquier trabajo de impresión y lo envía a la impresión de
red especifica. La utilización del redirector permite a los usuarios no preocuparse ni de la
ubicación actual de los datos o periféricos. Para acceder a los datos de un ordenador de red
el usuario solo necesita escribir el designador de la unidad asignado a la localización del
recurso y el redirector determina el encaminamiento actual.
• Gestión de usuarios: los SO permiten al administrador de la red determinar las personas o
grupos de personas que tendrán la posibilidad de acceder a os recursos de la red así como
crear permisos de usuario controlados por el SO de red, asignar o denegar permisos de
usuario de red, eliminar usuarios de la lista de usuario que controla el SO de red… Para
simplificar la tarea de gestión de usuarios el SO permite la creación de grupos de usuarios.
Clasificando los individuos en grupos todos los miembros de un grupo tendrán los mismos
permisos asignados al grupo como una unidad.

Script de inicio de sesión: especifica el nombre de la secuencia de comandos de inicio de


sesión que va a utilizar esta cuenta de usuario. Están almacenadas en el recurso
compartido NETLOGON. Variables de secuencias de comando de inicio de sesión:
• %homedrive%: unidad de disco que contiene el directorio principal del usuario en la
estación de trabajo local.
• %homepath%: directorio principal del usuario.
• %os%: SO del usuario.
• %processor_architecture%: tipo de procesador de la estación de trabajo.
• %processor_level%: nivel de procesador de la estación de trabajo.
• %userdomain%: domino donde está definida la cuenta.
• %username%: nombre del usuario de la cuenta.

• Compartir recursos: termino para describir los recursos que públicamente están disponibles
para cualquier usuario de la red, la mayoría de los SO también pueden determinar el grado
de compartición permitiendo diferentes usuarios con diferentes niveles de acceso a los
recursos y coordinación en el acceso a los recursos asegurando que dos usuarios no utilizan
el mismo recurso en el mismo instante.
• Gestión de la red: algunos SO de red avanzados incluyen herramientas de gestión ayudan a
controlar el comportamiento de la red, estas herramientas de gestión permiten detectar
síntomas del problema y presentar estos síntomas en un gráfico, el administrador de la red
puede tomar la decisión correcta antes de que el problema suponga la caída de la red.

20
UNIX

1. CONCEPTOS BASICOS
La última versión soporta cuatro intérpretes de ordenes (shells):
- Shell Bash: se escribió como proyecto para GNU, para proveerlo de un superconjunto de
funcionalidad con la Shell Bourne.
- Shell Job: incorpora características de control de trabajos al shell estándar.
- Shell Korn: ofrece un superconjunto de las características dl Shell del sistema, incluyendo
historial de órdenes, edición de línea de orden y características ampliadas de programación.
- Shell C: procedente del sistema BSD, comparte capacidad de control de trabajos, historia de
órdenes, capacidad de edición…

LTS (Long Term Support): termino usado para nombrar ediciones diseñadas para tener soporte
durante un período más largo que el normal, unos 5 años. Se aplica particularmente a los
proyectos de software de código abierto, como Linux. En el ámbito de los sistemas basados en
este núcleo, el término se usa en algunas versiones de distribuciones como Debian o Ubuntu,
entre otras.

• Niveles de directorios más importantes:


/: directorio raíz, donde empieza el árbol de directorios.
/bin: directorio donde residen los comandos ejecutables.
/sbin: directorio donde residen los comandos ejecutables reservados para el (root).
/lib: librerías compartidas por los distintos compiladores e intérpretes.
/usr: residen los programas de usuario y aplicaciones instaladas, con los subdirectorios
siguientes:
o /usr/lib: librerías utilizadas por dichas aplicaciones, enlaces simbólicos a las de /lib.
o /usr/bin: ejecutables de las aplicaciones.
o /usr/sbin: ejecutables reservados para la administración del software.
/dev: directorio en el que se alojan los distintos dispositivos (devices), estos ficheros actúan
como interfaces de comunicación entre la shell y el dispositivo físico.
/etc: mayor parte de los programas y fichero de configuración del sistema.
/var: ficheros que varían de tamaño dinámicamente a lo largo de la ejecución de procesos
del sistema, dos subdirectorios importantes:
o /var/spool: colas de procesos
o /var/log: registros de actividad. (auth.log)
/proc: el file system virtual, aloja información como los procesos activos en el sistema.
/home: donde se sitúan los directorios de trabajo e los distintos usuarios.
/root: directorio de trabajo del administrador (root).
/mnt: punto de montaje de dispositivos extraíbles.
/tmp: donde se sitúan los ficheros temporales generados por el sistema.

Saltstack: es un software de código abierto basado en Python para la automatización de IT


impulsada por eventos, la ejecución de tareas remotas y la gestión de la configuración, usa por
defecto el puerto 4505.

21
• Tipos de archivos:
-: fichero ordinario (fichero de texto, binario ejecutable, fichero de datos…).
d: directorio (equivalente en Windows a una carpeta).
l: enlace simbólico (equivalente en Windows a un enlace directo).
b: dispositivo de bloques (interface de conexión de disco duro, unidad de CD…).
c: dispositivo de caracteres (puerto, modem…).
s: dispositivo especial de caracteres.
.(punto): carpeta actual

1.1. SISTEMAS DE FICHEROS


Es la parte más visible del sistema operativo: almacenamiento de la información en el sistema,
define una unidad lógica de almacenamiento: el archivo. Podemos definir un sistema de ficheros
en cada unidad de almacenamiento física o incluso varios sistemas de ficheros creando
particiones con la orden fdisk, dividimos la unidad física en unidades lógicas (particiones), para
así poder administrar el espacio disponible con más precisión, “fdisk” no crea sistemas de
ficheros, para esta tarea utilizaremos la orden “mkfs”.
UNIX se suele dividir en cuatro partes diferenciadas entre sí:
• Bloque boot: contiene el programa para iniciar el sistema operativo.
• Superbloque: contiene información relativa al sistema de ficheros (un indice) como el
espacio disponible, es espacio total, el tipo de sistema…
• Lista de inodos: referencia de los inodos del sistema, información administrativa relativa a
ficheros. El inodo sirve como interface entre el núcleo del SO y la información almacenada
en el dispositivo. Los campos que conforman la estructura del inodo son:
o Dueño del fichero.
o Tipo de fichero.
o Permisos.
o Enlaces del archivo.
o Fecha de la última modificación.
• Área de datos: parte del dispositivo lógico donde vamos a poder almacenar información.

1.2. CREACION E INCORPORACION DE SISTEMAS DE FICHEROS


Una vez creado un sistema de ficheros mediante la orden “mkfs” necesitamos incorporar ese
sistema de ficheros a la estructura jerárquica de nuestro sistema UNIX (llamado montar un
sistema), para ello se usa la orden mount (mount:opciones:dispositivo:punto_montaje). Para
especificar el tipo de File System “-t tipo_fs” (en Linux), “F tipo_fs” (en Solaris) … Otro tipo de
opción es “-o” y especificar “ro” (read only), rw (lectura-escritura), suid (si acepta suid), …
El dispositivo es la entrada de /dev que utilizaremos como interface del dispositivo físico y el
punto_montaje es el directorio del árbol en el que se hará accesible, si no especificamos el tipo
de file system, el comando mount asignará por orden secuencial de aparición en
/proc/filesystems el tipo más adecuado. Si montamos un dispositivo sobre un punto de montaje
ocupado por otro, el sistema oculta automáticamente el directorio antiguo, mostrando el nuevo.
Proceso para desmontar un dispositivo, ejecutar la orden unmount (unmount:punto_montaje)
y para desmontar un file system ninguno de los procesos del sistema puede estar utilizando sus
recursos.

22
Cuando arranca el sistema debe tener por lo menos un sistema de ficheros: el directorio raíz, ya
montado. Los sistemas de ficheros que se montan de modo automático la arrancar el sistema,
se especifican en ficheros del estilo /etc/fstab (en Linux). La organización de estos ficheros son
entradas con la sintaxis (device:punto_montaje:tipo_fs:opciones:freq:passno), device es el
dispositivo que enlaza al sistema de ficheros, punto_montaje es el directorio en el que se hará
accesible, tipo_fs es el tipo de fs que vamos a usar, opciones (la opción “auto” provoca que la
ejecución de los scripts de arranque monte el dispositivo en cuestión durante el proceso de
arranque. Si no está especificada la opción auto solo se preparará al FS para un montaje más
automatizado en ejecución), freq es la frecuencia de volcado y passno orden en que se chequean
los sistemas de archivos con “fsck” al arrancar la máquina.
Puede haber dos entradas especiales:
• swap: no necesita punto de montaje.
• /proc: no está asociado a ningún dispositivo físico de la máquina ya que es un FS virtual que
actúa como interface entre las estructuras de datos del kernel y las aplicaciones.

* BitLocker: provee de cifrado del disco completo, está diseñado para proteger los datos al
proporcionar cifrado para volúmenes enteros. Por defecto se utiliza el algoritmo de cifrado
estándar AES en modo CBC con una clave de 128 bits. Tres mecanismos de autenticación:

• Modo de funcionamiento transparente: Este modo aprovecha las capacidades del módulo
de plataforma de confianza (en inglés, Trusted Platform Module, TPM). La clave utilizada
para el cifrado de disco está cifrada y solo se dará a conocer el código al sistema operativo si
los archivos de inicio a principio del arranque no han sido modificados. Este modo es
vulnerable a un ataque de arranque en frío, ya que permite el apagado de la máquina por un
atacante.
• Modo de autenticación de usuario: Este modo requiere que el usuario proporcione alguna
de autenticación al prearranque. Este modo es vulnerable a un ataque rootkit (conjunto de
software que permite un acceso de privilegio continuo “root” a un ordenador pero que
mantiene su presencia activamente oculta al control de los administradores al corromper el
funcionamiento normal del sistema operativo o de otras aplicaciones).
• Modo en dispositivos USB: El usuario debe insertar un dispositivo USB que contenga una
clave de inicio en el equipo para poder arrancar el sistema operativo protegido. Tenga en
cuenta que esta modalidad requiere que la BIOS de la máquina protegida acepte el arranque
desde dispositivos USB. Este modo también es vulnerable a un ataque rootkit.

1.3. TIPOS DE SISTEMAS DE FICHEROS


• ReFS (Resilient File System): se introdujo con Windows Server 2012, es transaccional, sus
metadatos y archivos se organizan en tablas, de manera similar a una base de datos
relacional.
o Mejora la fiabilidad de las estructuras en disco.
o Capacidad de resiliencia incorporada.
o Compatibilidad con APIs y tecnologías existentes (Bitlocker*, ACLs…)
• EXT4 (Extended Filesystem 4): sistema de archivos transaccional (con jounaling), menor uso
del CPU, mejoras en la velocidad de lectura y escritura,…

23
o Extents: conjunto de bloques físicos contiguos, mejora el rendimiento de ficheros de
gran tamaño y reduce fragmentación.
o Compatibilidad con EXT3 sin necesidad de cambios de disco.
o Asignación persistente de espacio en el disco: permite la reserva de espacio en disco
para un fichero.
o Asignación multibloque: permite asignar los bloques para un fichero en una sola
operación, lo que reduce la fragmentación.
e2fsck: comprueba la integridad de un sistema de ficheros ext3

• ReiserFS (Reiser File System): sistema de propósito general, soportado por Linux y Windows,
soporta journaling y reparticionamiento.
o Tail packing, un esquema para reducir la fragmentación interna.
rsync: herramienta de copia y sincronización de archivos en Unix.

1.4. LOGIC VOLUME MANAGER


• PV: puede ser cualquier tipo de dispositivo de almacén, pasa a llamarse Physical Volume.
o pvcreate dev “disco, partición…”
o pvdisplay (permite ver información del PV)
o pvresice (redimensiona el tamaño del LV)
• VG: agrupa varios PV, funciona como una agrupación de discos que puede expandirse “en
caliente”.
o vgcreate “nombre del vg” disco, partición…
o vgextend “disco a incorporar”
o vgreduce “disco a retirar”
• LV: partición del VG, entendido ya como almacenamiento lógico.
o lvcreate -L “tamaño” “vg al que pertenece”

2. ENLACES DIRECTOS EN UNIX


Un inodo es un bloque especial de disco de 64 bytes que almacena las propiedades de un fichero
(tamaño del fichero, id del usuario, permisos…), existen tantos inodos como ficheros existen en
el sistema. Tipos de enlaces:
• Enlace simbólico: entradas del sistema de ficheros que apuntan a otra entrada (accesos
directo), no conservan el inodo, pero si conserva los permisos del fichero original.
Para crear un enlace simbólico a un inodo se usa “ln -s origen destino” (siendo “origen” el
fichero existente y “destino” el nombre del nuevo enlace).
• Enlaces fuertes: es otra entrada de directorio que referencia al mismo inodo. Solo se pueden
hacer enlaces fuertes entre ficheros del mismo dispositivo de almacenamiento (no se
pueden saltar puntos de montaje).
o -i: averigua el número de inodo de un fichero.
o -l: número de enlaces fuertes a un inodo.

Un enlace fuerte “ln origen destino” (siendo “origen” el fichero existente y “destino” el
nombre del nuevo enlace). Si borramos el fichero original, el enlace simbólico permanece en
el sistema de ficheros, no referenciado (entrada inútil).

24
3. PERMISOS
Solo el propietario y el administrador tienen permiso para modificar el mapa de permisos de un
fichero, para ellos se usa la orden “chmod”:
• r: permiso de lectura.
• w: permiso de escritura o modificación, así como añadir o borrar ficheros de un directorio.
• x: permiso de ejecución.
Se organizan en tres bloques:
• Tres primeros: afectan al propietario (u) del fichero.
• Tres segundos: afectan al grupo (g) principal al que pertenece el usuario.
• Tres últimos: afecta al resto de usuarios (o).
En el momento de su creación los ficheros y los directorios obtienen una serie de permisos por
defecto:
• 666 (rw-rw-rw-): mapa total que afecta a los ficheros
por defecto del sistema.
• 777 (rwxrwxrwx): mapa total que afecta a los
directorios por defecto del sistema.

3.1. PERMISOS ESPECIALES


Para cambiar la contraseña de usuario ejecutamos la instrucción “passwd” esta actualiza el
fichero /etc/passwd o en el /etc/shadow, pero por defecto el usuario no tiene permiso de
escritura en ese fichero, esta situación se resuelve con el uso del bit SUID (peso 4) y GUID (peso
2), su función es asociar al proceso lanzado por el usuario (o el grupo) los permisos y privilegios
del propietario del programa ejecutable, así el sistema entiende que quien está intentando
modificar los fichero sea root, y se le permite realizar la modificación.
Sticky bit (bit de permanencia): es un bloqueador del fichero, protegiéndolo contra agresiones
involuntarias, cualquier usuario puede crear ficheros dentro del directorio con sticky bit, pero
solamente el propietario puede eliminarlos (peso 1).
• Estos permisos valen tanto para aumentar como para disminuir privilegios.
• Para poner o quitar los bits SUID, SGID y Sticky, se usa la formula “chmod u (user) /g (group)
/o (other) ± s (SUID) /t (Sticky)”.

4. PROCESO DE ARRANQUE DE UNIX


1. Chequeo inicial del sistema por las rutinas ROM almacenadas en la máquina.
2. Carga de una boot-prompt (gestor de arranque) que permita localizar el núcleo de un
sistema operativo UNIX (LILO en caso de Linux).
GNU GRUB (GNU GRand Unified Bootloader): es un gestor de arranque multiple usado en
GNU/Linux y Solaris. Alrededor de 2002 investigadores japoneses empezaron a trabajar en PUPA
(siglas de Preliminary Universal Programming Architecture), cuyo objetivo era reescribir el
cuerpo de GRUB para hacerlo más claro, seguro, robusto y poderoso. PUPA fue posteriormente
renombrado a GRUB 2, y la versión original de GRUB fue renombrada a GRUB Legacy.
3. Carga del núcleo del sistema.
4. Carga del proceso “init” padre de todos los procesos, establece el runlevel (conjunto de
servicios referenciados por una letra o número) por defecto, y pone disponibles los servicios
en el sistema.

25
• Sistemas de inicio:
o upstart: desarrollado por Ubuntu, mejora la gestión de los disipativos que se conectan
en caliente.
o systemd: utilizado en Fedora y Mandriva, arranque más rápido al iniciar los servicios en
paralelo.
• Runlevels estándar (En cada uno de estos niveles init lanza servicios que se indican en el
fichero “/etc/inittab”):

0: Maquina apagada o boot-prompt. 4: sin uso especifico. who -r: indica el


1 o “S”: Single-user. 5: apagar la máquina. runlevel actual
2: Multiuser sin NFS (sin red). 6: reinicio del sistema.
3: Multiuser con NFS y con entorno gráfico).

o Sintaxis: son un conjunto de registros con la estructura (ID:runlevels:acción:comando),


uno de los comandos que se ejecutan durante el establecimiento del runlevel es rc,
invoca al directorio del runlevel indicado, se localizan enlaces simbólicos a los scripts de
inicialización de los servicios que se sitúan en /etc/init.d, para cambiar de un runlevel a
otro se usa “init n” (siendo “n” el runlevel al que queremos acceder). Estos enlaces
simbólicos tienen la sintaxis: “KXXfile” o “SXXfile” donde “K” indica para el servicio, “S”
indica levantar el servicio y “XX” un numero de prioridad.
• Una vez finalizado el proceso de arranque se nos presentara una login-prompt donde
podemos lanzar una sesión de usuario.

Xfce: entorno de escritorio libre para sistemas tipo Unix como GNU/Linux, BSD, Solaris y
derivados. Es rápido y ligero, sin dejar de ser visualmente atractivo y fácil de usar.

5. USUARIOS Y GRUPOS
• Cuentas de usuario: cada usuario tiene una cuenta home asociada, con acceso completo a
este directorio, lo que implica que podrá crear, borrar y almacenar ficheros en este
directorio. El usuario está en por lo menos un grupo (grupo principal), puede estar en más
grupos (secundarios), el listado de usuarios y sus asignaciones a grupos se almacenan en
/etc/passwd (listado de usuarios, un registro para cada usuario del sistema con la estructura
de campos: [alias:pw_encript:UDI:GID:datos descriptivos:home_directory:default_shell])
La modificación de cuentas de usuario se efectúa con el comando usermod, este modifica
las características de una cuenta de usuario ya existente, modifica por ejemplo:
o /etc/shadow: fichero adicional donde se almacenan los passwords encriptados y los
datos para la expiración de contraseñas. (también se usa el comando “chage” SIN “N”
para cambiar la fecha de expiración de contraseñas [-e], ver el último cambio de
contraseña [-l (ele)]…)
o /etc/groups: contiene toda la información de pertenencia a grupos.
o /etc/gshadow: similar al fichero shadow de contraseñas, contiene los grupos,
contraseñas y miembros.
o /etc/login.defs: definir valores por defecto para diferentes programas como useradd.
o /etc/shells: contienen un alista de shells válidos.

26
• Cuentas de grupo: proporcionan un método para vincular a usuarios similares, agrupándolos
para agrupar un conjunto de cuentas de usuario de características similares con el propósito
de aplicar directivas de seguridad parecidas a ellas, las cuentas de grupo son similares a las
cuantas de usuario y se definen en un único fichero /etc/groups que contiene una lista con
todos los grupos y sus correspondientes miembros, los grupos también poseen un nombre
y un GID. Cuando un usuario se conecta al sistema Linux lo hace dentro de su grupo primario,
este es el grupo al que el usuario pertenece por defecto, si un usuario quiere acceder a
fichero so ejecutar programas que no están en su grupo primario, debe conmutar de grupo
aquel que este asociado con los ficheros a los que quiere acceder o con los programas que
quiere ejecutar. Solamente el root puede crear y administrar grupos, para crear un nuevo
grupo en Linux se utiliza el comando groupadd, para crear nuevos usuarios el comando
useradd y para modificar grupos ya existentes se usa el comando gpasswd:
o -M: para asignar miembros a un determinado grupo.
o -a nombreUsuario: añadir un usuario al grupo.
o -d nombreUsuario: eliminar un usuario del grupo especificado.
o -r: elimina la contraseña del grupo.
o -R: indica que no se puedan añadir usuarios nuevos el grupo especificado con el
comando newgrp.
o -A nombreUsuario [nombreUsuario]: el usuario root pueda especificar que usuarios
tienen privilegios para añadir o eliminar usuarios de los grupos, especificar las
contraseñas de grupo, este sobrescribe cualquier lista previa. Implica que todos los
nombres de usuario se deben introducir con esta opción.
groups: se utiliza para mostrar los grupos a los que pertenece el usuario en un determinado
momento, “root” es miembro de todos los grupos por defecto.

• Cuenta de root: se crea por defecto durante la instalación del SO, es la cuenta que utiliza el
administrador del sistema para realizar cualquier tarea administrativa en el sistema Linux,
se puede usar:
o Accediendo al sistema con la cuenta “root”: se puede utilizar para acceder al equipo
directamente a través de consola, solamente se puede realizar a través de la consola
principal, una vez logueado, cualquier acción que se realice en el sistema es llevada a
cabo como “root”.
o Comando SU: se puede utilizar para adquirir temporalmente los privilegios de
superusuario para realizar tareas administrativas o para ejecutar programas que
requieran privilegios de superusuario, se solicitara la contraseña de roo y si es correcta
se obtendrán lo privilegios, el comando SU puede utilizarse también para conmutar a
otras cuentas de usuario.
o Comando SUDO: permite a un administrador seleccionar ciertos comandos que pueden
ser tecleados sin ser “root” que de otra forma requerirían los privilegios de
superusuario, esto se hace editando el fichero /etc/sudoers y especificando que usuario
y que comandos podrán ejecutar dichos usuarios sin convertirse en root.
o Ficheros SUID root: es posible seleccionar un fichero que se ejecute como si fuese
lanzado por el “root” pese a que haya sido ejecutado por cualquier otro usuario del
sistema.

27
6. MANEJO DE LA SHELL

Cuando iniciamos sesión en UNIX, se ejecutan una serie de instrucciones contenidas


normalmente en los ficheros .profile (en estos ficheros se personaliza el entorno de usuario,
configurando variables de ambiente y alias. La shell ofrece una prompt, puede ser:
• #: prompt de root.
• $: prompt de usuario en las principales Shell de UNIX (Bourne, Bash, Korn)
• %: prompt de usuario en la C-Shell.
Las órdenes del Shell pueden ser internas o externas, el tratamiento que recibe una orden es el
de una subshell, el proceso padre es la shell.
• Orden interna es aquella cuyo código está integrado en el shell: bg, fg, cd, exec, exit, echo…
• Orden es externa si su código reside en un archivo: more, cat, mkdir, ls, grep…

6.1. ORDENES DE USUARIO EN UNIX


• CONTROL
o CTRL+c: termina un comando.
o CTRL+d: End Of File (fin de fichero).
o CTRL+u: borra la línea de comandos.

7. COMANDOS UNIX
• pwd (print working directory): directorio de trabajo actual.
• who: listado de usuarios conectados a nuestro sistema.
• id user: muestra el UID y el GID del usuario especificado, sin parámetros muestra
información de uno mismo.
• passwd user: permite cambiar la password de usuario user.
• uname: muestra información sobre el sistema actual:
o -a: información en formato largo.
o -s: nombre del sistema operativo.
o -n: nombre de la estación de trabajo
• su user: abre una sesión de user en una subshell de la shell de usuario. Utilizado sin
parámetros abre una sesión de root (pidiendo la password).
• sudo comando: ejecuta un comando con los permisos de root.
• mkdir directorio: crea un directorio.
• rmdir: borra un directorio.
• rm file o rm -r dir: borra un fichero.
• cd: directorio_destino: se desplaza al directorio de destino.
• ls directorio: muestra el contenido de un directorio.
o -a: muestra todos los ficheros.
o -l: listado completo (muestra las propiedades de cada archivo).
o -i: muestra el número de inodo.
• free: muestra datos sobre la memoria del sistema
• df (disk free): detalla el espacio total, ocupado y libre del sistema
• du (disk usage): muestra el uso en disco que realiza un conjunto de archivos en los
directorios existentes.

28
• dd: permite copiar y convertir datos de archivos a bajo nivel
o if (input file): lee desde el archivo indicado como origen
o of (output file): escribe al archivo indicado como destino
o bs: indica el tamaño de bloque en bytes (por defecto)
o count: copia el número indicado de bloques del archivo
• watch: ejecutar cualquier comando arbitrario a intervalos regulares.
• ss: se utiliza para volcar estadísticas de sockets (permite mostrar información similar a
netstat).
• whereis: localiza el archivo binario, el código fuente y la página de manual de un
determinado comando.
• which: comando de búsqueda que lista la ruta completa de un comando.
• touch: crea un fichero vacío desde el terminal de linux, si el fichero existe le cambia la fecha
y hora de modificación.
• nmap: herramienta de exploración de red y escáner de seguridad/puertos.
• top (comando linux): monitoreo de procesos y tareas, varias herramientas dedicadas:
o htop: monitoreo de CPU
o iotop: monitoreo de la información de E/S del disco
o iftop: monitoreo de red
7.1. Comandos de manejo de ficheros:
• cat file1 file2: concatena los ficheros mostrándolos por pantalla.
• pg file: muestra el contenido del fichero file y a continuación la prompt.
• head / tail ± n file: muestra las n (primeras o últimas líneas) del fichero.
• wc file: muestra el número de caracteres (-m), líneas (-l), palabras (-w) o bytes (-c) del
fichero.
• cmp file1 file2: localiza la primera diferencia entre los ficheros.
• file file: informa sobre el tipo de fichero (ASCII, binario, ejecutable…).
• cp / mv fichero_origen fichero_destino: copia / mueve el fichero origen con el nombre y
posición del fichero destino.
• sort file: ordena alfabéticamente las líneas (registros) del fichero.
7.2. Comandos de búsqueda de información:
• Find ruta patrón acción: busca los archivos que coincidan con el patrón en la ruta
especificado y ejecuta la acción indicada.
o ruta: lugar donde empieza la búsqueda
o patrón: criterio de búsqueda (-name, -size, -type, -mtime [mide el tiempo transcurrido
desde hoy hasta el parámetro]…).
o acción: acción a realizar (-print, -exec, -copy, -delete…).
• grep / fgrep (no reconoce metacaracteres) / egrep patrón fichero: busca patrón en ficheros.
o ^: seguido de una letra indica las líneas que empiezan por esa letra.
o $: precedido de una letra indica todas las líneas que acaba por esa letra.
o *: a* equivale a “aa”, a*** equivale a “aaaa”.
7.4. Comandos VI: editor de texto en consola.
w: guardar los cambios pero no sale del editor. less: visualizador de archivos de
wq: guarda los cambios y sale del editor. texto, funciona en intérpretes de
q!: sale del editor sin guardar los datos. comandos UNIX.

29
8. METACARACTERES (caracteres especiales que cumplen funciones dentro de la Shell)
• *: sustituye cualquier cadena de caracteres.
• [rango]: sustituye cualquier carácter descrito en el rango.
• $: obtiene el valor de una variable.
• ?: comodín que sustituye cualquier carácter.
• |: enlaza ordenes (convierte la salida de la primera orden en la entrada de la segunda)
orden1|orden2.
• >: redirecciona la salida. <: redirecciona la entrada.
• ;: enlaza la ejecución de dos órdenes / && (si la primera tiene éxito) / || (si la primera
fracasa).
9. ORDENES DE IMPRESIÓN
/etc/printcap: base de datos de la configuración de las impresoras (spool).
• lp y lpr: encola ficheros de texto para imprimir:
o -d: especifica impresora.
o -n: imprime un número de copias específicas.
• lprm: borra los documentos pendientes de la cola de impresion
• lpstat: monitoriza el estado de la cola de impresión:
o -p: visualiza el estado de las impresoras.
o -d: visualiza la impresora por defecto.
o -s: resumen de información de estado para todas las impresoras.
• cancel id_peticion: cancela una petición de impresión.
• pr: formatea para imprimir.
10. COPIAS DE SEGURIDAD Y ALMACENAMIENTO
• tar: agrupa ficheros pero sin “-z” no comprime. Archiva y extrae ficheros desde y hacia un
fichero de destino u origen.
o c: crea un nuevo fichero tar.
o t: lista los contenidos de un fichero tar.
o x: extrae los contenidos de un fichero tar / z: comprime los ficheros agrupados.
o f: especifica el fichero de destino.
o v: visualiza la extracción o empaquetado de ficheros.
• compress: reducir el tamaño de un fichero: (el fichero resultante tiene la extensión “.Z”)
o -v: indica la progresión de la compresión.
• uncompress: descomprimir ficheros:
o -c: muestra el contenido del fichero sin descomprimirlo.
• cpio (copy in/out): archiva o extrae información de una cita o de un fichero. Realiza un
empaquetamiento más eficiente que tar, permite la recuperación de soportes defectuosos
y posibilita escribir ficheros con distinto formato de cabecera.
o o: crea un nuevo fichero.
o i: extrae el fichero del archivo.
o c: lee la información de cabecera en ASCII (muestra los ficheros comprimidos pero sin
extraerlos).
o t: lista la tabla del contenido de la cinta / v: imprime la lista de los nombres del fichero.
• .jar: comprime y empaqueta en un entorno jvm (java virtual machine).

30
11. GESTION DE PROCESOS
Cada programa que se ejecuta en un entorno UNIX es un proceso, cuando se entra en la shell y
comienza a ejecutarse la sesión, eso es un proceso, a cada proceso se le asigna un PID, usado
por el kernel. El sistema también comienza algunos procesos llamados demonios, son programas
arrancados en tiempo de arranque y son críticos para la funcionalidad del sistema. Para
comenzar un proceso se crea un duplicado del proceso actual al que le llamaremos hijo, la
referencia de este proceso es PPID, dos modos de ejecución:
• Foreground (primer plano): suspende la interactividad de la shell hasta el fin de su ejecución.
• Background (segundo plano): se lanza añadiendo “&” al final del comando, devuelve la
prompt del sistema, el usuario es informado mediante un mensaje de la finalización del
proceso.
fg: trae a primer plano un proceso / bg: envía a background un proceso.

Herramientas para gestionar procesos:


• ps: la salida de la orden “ps” es el PID (identificador del proceso), TTY (identificador de
terminal), TIME (tiempo de ejecución acumulado) y CMD (línea de comando):
o -e: muestra información sobre todos los procesos del sistema.
o -f: genera un listado completo que añade los campos UID (usuario propietario del
proceso), PPID (padre del proceso) y STIME (hora de inicio del proceso).
o -a: lista los procesos que no pertenecen al usuario.
o -x: lista de procesos que no tienen asociada una terminal.
o -u: lista extendida.
• pidof: muestra el ID de un proceso activo.

11.1. SEÑALES
Se usan para controlar los procesos en ejecución en el sistema, se envían a procesos para indicar
que ha corrido un evento y el proceso debe reaccionar (CTRL+c por ejemplo). Cada señal está
asociada a un único número, un nombre y una acción esperada. Su sintaxis es
(kill:señal:PID_proceso), donde la opcion :señal: realiza:
• SIGHUP (1): Hangup (reinicia teniendo en cuenta cambios de configuracion al reiniciar).
• SIGINT (2): Interrupt.
• SIGKILL (9): Kill (finaliza de golpe un proceso, no libera las instancias ocupadas).
• SIGTERM (15): Terminate (finaliza ordenadamente el proceso dando tiempo a cerrar los
buffers accedidos).

12. ADMINISTRACION DE DISPOSITIVOS


UNIX controla los dispositivos, escalando las capas de interacción desde el hardware hasta el
nivel de usuario, Driver es un programa que gestión la interacción entre un hardware
determinado interpretándolo comandos propios del dispositivo a la interface propia del núcleo,
pueden ser tanto parte del kernel como módulos independientes (LKM, Loadable Kernel
Modules). El acceso a nivel de usuario es provisto a través de archivos de dispositivo especiales
que encontraremos en el directorio /dev. El núcleo transforma las operaciones sobre estos
archivos especiales en las llamadas al código del controlador. Los dispositivos son tratados por
UNIX como entradas en el File System.

31
Los archivos de dispositivo se mapean en los correspondientes dispositivos a través del Número
menor / mayor de dispositivo.
• Número mayor: identifica el tipo de driver al que está asociado el archivo.
• Número menor: indica el número de instancia o número d unidad que ocupa el driver en
cuestión, es usado por el controlador para seleccionar características particulares del
dispositivo.
Debemos diferenciar entre dos grandes tipos de archivos de dispositivo:
• Dispositivos de bloques: escribe o lee bloque a bloque (grupos de bytes de tamaño múltiplo
de 512 o 1024 bytes).
• Dispositivos de caracteres: escriben carácter a carácter.
Los drivers de dispositivos presentan una interface estándar del kernel, cada driver tiene rutinas
(open, close, read, reset…). Dentro del núcleo, las funciones para cada controlador se mantienen
en una tabla de saltos (man mkmod), indexadas por el número mayor de dispositivo. Hay dos
tablas para dispositivos una en modo bloque y otra en modo carácter. Cuando un programa
realiza una operación sobre un archivo de dispositivo, el kernel intercepta la referencia
automáticamente, busca la función adecuada en la tabla de saltos y le transfiere el control.
Todos los sistemas proporcionan algún sistema de agregar nuevos drivers de dispositivo al
kernel, ya se modificando tablas y recompilando, o en forma de módulos cargables en tiempo
de ejecución.
12.1 ARCHIVOS DE DISPOSITIVO
Se encuentran en el directorio /dev, en este directorio puede haber cientos de dispositivos, se
crean con el comando “mkmod” (el SO crea y monta al conectar por primera vez), usa la sintaxis
(mkmod:nombre:tipo:major:minor), tipo es “c” para los archivos de caracteres y “b” para los
dispositivos de bloques.
Muchos sistemas proporcionan un script llamado MAKEDEV para aplicar de forma automatizada
los argumentos a “mkmod” para los dispositivos más comunes. En Linux, utilizamos la
abreviatura de disco o dispositivo, seguido del etiquetado del elemento y el número de partición
hda1 para la primera partición del primer disco duro).

13. SCRIPTS DEL SHELL


Una serie de estructuras de control del propio shell que también actúa como intérprete de un
potente lenguaje de programación, se crean scripts para automatizar tareas o ejecutar lotes
largos de órdenes. La almohadilla (#), tiene doble función:
• Marcar como comentario: cualquier línea de código del script, estas serán ignoradas por el
shell en el momento de la ejecución.
• Como excepción, la primera línea de un script suele ser: #!/bin/*shell indicada*. Mediante
esta secuencia indicamos al intérprete de comandos que lo que vienen a continuación es un
script, debe ser interpretado mediante la *shell indicada*.

13.1 CRON Y CRONTAB


CRON es un demonio que se ejecuta desde el arranque del sistema. Comprueba si existe alguna
tarea para ser ejecutada de acuerdo a la hora configurada en el sistema. En función de la
distribución, se inicia utilizando las carpetas /etc/rc.d/ o /etc/init.d y cada minuto comprueba
los ficheros /etc/crontab o /var/spool/cron es busca de posibles ejecuciones.

32
CRONTAB es un archivo de texto que posee una lista con todos los scripts a ejecutar,
generalmente cada usuario del sistema posee su propio fichero Crontab. Se considera que el
ubicado en la carpeta /etc pertenece al usuario “root” (para generar el archivo propio, cada
usuario deberá hacer uso del comando crontab). Para editar el archivo se usa la opción “-e” con
la notación: (* * * * *:comando a ejecutar). Cada asterisco (*) significa, de izquierda a derecha:
• minutos: (0-59)
• horas: (0-23) Se puede usar el metacaracter “/” antes del número para
• día del mes: (1-31) indicar que la acción se haga un número determinado de veces.
• mes: (1-12)
• día de la semana: (0-6), siendo 0=domingo 1=lunes, 2=martes,... 6=sábado

13.2. VARIABLES (almacenamiento temporal en un área de memoria)


• Variables locales: privadas de la shell donde se han creado.
• Variables de entorno: pasadas del proceso padre al hijo, algunas heredadas por la entrada
en la Shell, otras son creadas en los ficheros de inicialización de la Shell del usuario, en scripts
de la shell o en líneas de comando. Variables más frecuentes establecidas por el shell:
o EDITOR: define el editor por defecto de la shell.
o HOME: directorio al que lleva el comando cd sin argumentos.
o LOGNAME: establece el nombre de entrada del usuario.
o PATH: lista de rutas en las cuales el intérprete de comandos debe buscar los programas
a ejecutar.
o PS1: indicador primario del shell (“$” para usuario y “#” para root).
o PS2: indicador secundario del shell, suele ser “>”.
o SHELL: el nombre del shell por defecto.
• Variables especiales: pasan argumentos desde la línea de comandos, cada palabra separada
por un espacio que sigue al nombre del script es llamada argumento. Cuando ejecutamos
(nombre_script:argumento1:argumento2:argumento3:…), el shell almacena el “argumento
1” en $1, el “argumento 2” en $2 y así sucesivamente. Posiciones especiales:
o $0: el propio nombre del script.
o $#: el número total de argumentos de script. read: para el script y
o $@: visualizar cada uno de los argumentos. pide un dato al usuario.
o $?: retoma el valor del ultimo comando ejecutado.

13.3. ORDEN TEST Y EXPR


Se usa para realizar comparación de expresiones, evalúa la expresión y se esta es verdad
devuelve como salida cero, si es falso, devuelve un valor distinto, permite comprar cadenas,
operadores lógicos, valores numéricos…
• Comparación de cadenas:
=: iguales.
!=: distintos.
-n: evaluar la longitud de la cadena.
• Comparación de expresiones lógicas:
!: negar una expresión lógica.
-a: AND.
-o: OR.

33
• EXPR: Realiza operaciones, es una utilidad de cálculo aritmético que admite las siguientes
operaciones básicas (+, -, /*, /, %), solo se admiten valores enteros y deben ir entre acentos.

13.4. SENTENCIAS REPETITIVAS, CONDICIONALES Y BUCLES


• for: implementa un bucle, es decir, que es capaz de repetir un grupo de sentencias un
número determinado de veces. ( for contador in valor / do / sentencias / done )
• while: ejecutara las sentencias mientras se cumpla la condición especifica en las siguientes
sintaxis. ( while expesion / do / sentencias / done )
• if: evalúa una expresión para tomar una decisión según el resultado de ella.
( if expresión / then sentencias / else / sentencias / fi )
• case: ejecuta diferentes sentencias dependiendo de un valor o rango de valores que coincida
con la variable especificada. ( case cadena in / lista de patrones 1 sentencia / … / ;; )
• func: aparte del programa que realiza un proceso concreto. ( func() / { / sentencias / } )

14. UNIX EN RED


Los comandos “ifconfig” o “ip” se utilizan para la configuración de los drivers y de los interfaces
de red, se ejecuta en los scripts de arranque del sistema para poner en marcha los interfaces de
red, sin argumentos ifconfig muestra el estado actual de los interfaces, sus opciones son:
• -a: muestra todas las interfaces disponibles.
• interface: muestra el nombre de la interfaz, suele ser eth0 para la primera y así
sucesivamente, se puede también habilitar o deshabilitar dicha interface, asociar una
dirección ip (adress), una máscara de red (netmask addr), un alias, una dirección de
broadcast,…
• up/down: activa o desactiva la interfaz.
• -promisc: activa o desactiva el modo promiscuo en esa interfaz.

Para ip, algunas de sus opciones son:


• -h (-human): muestra las estadísticas de un modo más legible (equivalente a “-v”).
• -s (-stats): muestra más información (equivalente a “-a”).
• -f (-family): especifica la familia de protocolos (inet [-4], inet6 [-6], bridge [-B], mpls [-M] o
link [-0]).
• -r (-resolve): muestra los nombres DNS en lugar de las direcciones ip.
• -br (-brief): muestra solo información básica en formato de tabla.

El programa “route” se utiliza para definir tablas de enrutamiento, cuando nuestro host necesita
acceder a recursos de más de una red lógica. (opciones: add, del, target, netmask, gw,…)

IP Masquerade: es una capacidad de red de Linux en desarrollo. Si un servidor Linux está


conectado a Internet con IP Masquerade habilitado, los ordenadores conectados a él (bien en la
misma red local, bien por módem) también pueden conectarse a Internet, incluso aunque no
tengan una dirección IP oficial asignada.

Resolución de nombres en UNIX, serie de ficheros encargados de definir y acceder a los


nombres: /etc/hosts.conf y /etc/resolve.conf. [Nombres de las interfaces de red: /dev/eth0 (en
Linux)].

34
14.1. CONFIGURACIÓN DE LOS SERVICIOS DE RED

Servicios basados en red, en sistemas UNIX, se habilitan mediante demonios que corren en los
servidores, un demonio no es más que un programa que se activa en tiempo de arranque del
sistema y permanece a la escucha de recibir una solicitud para ofrecer un servicio, dos modos:
• standalone: un proceso escuchando un único puerto, para responder a las solicitudes.
• inetd (metademonio de red): escucha distintos puertos y reclama el servicio apropiado.
Ficheros implicados en este tipo de servicios:
o /etc/services: se reserva un puerto para cada servicio, hay una serie de puertos
reservados y los no reservados por encima del 1024 son determinados arbitrariamente.
o /etc/inetd.conf: se configuran las llamadas de inetd.

14.2 X WINDOW SYSTEM

Protocolo que permite la interacción grafica en red entre un usuario y una o más computadoras
haciendo transparente la red para este de forma totalmente independiente del SO. Distribuye
el procesamiento de aplicaciones especificando enlaces cliente-servidor*. El servidor provee
servicios para acceder a la pantalla, teclado y ratón, mientras que los clientes son las aplicaciones
que utilizan estos recursos para interacción con el usuario. Debido a este esquema cliente-
servidor, se puede decir que X se comporta como un terminal gráfico virtual.

14.3. SMB vs SAMBA

• Server Message Block (SMB): es un protocolo que permite compartir recursos en una red.
Fue modificado y renombrado, por Microsoft, como CIFS (Common Internet File system).
• Samba: es una implementación libre del protocolo SMB/CIFS que se usa en sistemas
GNU/Linux y Unix en general.

15. IPTABLES

Programa de utilidad de espacio de usuario que permite a un administrador de sistemas


configurar las tablas proporcionadas por el cortafuegos del núcleo Linux (implementado como
diferentes módulos Netfilter) y las cadenas y reglas que almacena. Se utilizan diferentes módulos
del kernel y programas para protocolos diferentes; iptables se aplica a IPv4, ip6tables a IPv6,
arptables a ARP, y ebtables a marcos de Ethernet. Las reglas se guardan en el fichero
“iptables.sh”:

• Cadenas (por donde van a circular los paquetes dentro del sistema):
o PREROUTING: contiene los paquetes que acaban de entrar al sistema,
independientemente de que estén generados por el mismo equipo o un equipo remoto.
o INPUT: contiene los paquetes destinados al equipo local con cualquier origen.
o OUTPUT: contiene los paquetes generados en el equipo local y que van a salir del mismo.
o FORWARD: contiene los paquetes que pasan por el equipo pero que son generados en
equipos remotos y se dirigen a otros equipos diferentes.
o POSTROUTING: contiene los paquetes que van a abandonar el sistema,
independientemente de estén generados en el mismo equipo o en un equipo remoto.

35
• Acciones (especifican qué se va a realizar con el paquete cuando satisface la regla en la que
se encuentra):
o ACCEPT: el paquete se acepta y no continúa atravesando ni la cadena actual ni cualquier
otra cadena de la misma tabla.
o DROP: el paquete se elimina completamente dentro de la cadena actual, y no será
procesado en ninguna de las cadenas principales de ninguna tabla. Tampoco se enviará
ninguna información en ninguna dirección para informar de ello.
o REJECT: el paquete se elimina completamente dentro de la cadena actual, aunque en
este caso sí que se devuelve información al equipo que envió el paquete. Sólo es válido
en las cadenas INPUT, OUTPUT y FORWARD.
o RETURN: el paquete dejará la cadena en la que se encuentre, pero continuará por la
cadena superior a esa, si es que existe.
o REDIRECT: redirige el paquete hacia el mismo equipo local donde se ejecuta Iptables.
Necesita un parámetro opcional para indicar hacia dónde se redirige (--to-ports
puertos).
• Operaciones:
o -L (--list): lista todas las reglas de la cadena.
o -A (–append): añade la regla al final de la cadena.
o -I (–insert): inserta la regla en la posición que indiquemos de la cadena.
o -D (–delete): elimina la regla de la cadena.
o -R (--replace): sustituye la regla en la cadena por la nueva.
o -F (–flush): elimina todas las reglas de la cadena.
o -P (--policy): crea una política por defecto en la cadena.
• Coincidencias (patrones de los paquetes, podremos aplicarles acciones):
o -j accion: realiza la acción (ACCEPT, DROP, QUEUE y RETURN) cuando un paquete
coincide con una regla particular.
o -p protocolo (--protocol): indica el protocolo de conexión que debe poseer el paquete.
o -s ip/máscara (--source): indica la dirección o red de origen del paquete.
o -d ip/máscara (--destination): indica la dirección o red de destino del paquete.
o -i interfaz (--in-interface): indica la interfaz de red del sistema por la que se recibe el
paquete (sólo permitido en las cadenas PREROUTING, INPUT y FORWARD).
o -o interfaz (--out-interface): indica la interfaz de red del sistema por la que se envía el
paquete (sólo permitido en las cadenas OUTPUT, FORWARD y POSTROUTING).
o --sport puerto (--source-port): indica el puerto de origen del paquete (sólo para los
protocolos TCP y UDP).
o --dport puerto (--destination-port): indica el puerto de destino del paquete (sólo para
los protocolos TCP y UDP).

36
* Arquitectura cliente servidor: modelo de diseño de software en el que las tareas se reparten
entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados
clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta
idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque
es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de
computadoras.

En la arquitectura C/S sus características generales son:


• El Cliente y el Servidor pueden actuar como una sola entidad y también pueden actuar como
entidades separadas, realizando actividades o tareas independientes.
• Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma
plataforma.
• Cada plataforma puede ser escalable independientemente. Los cambios realizados en las
plataformas de los Clientes o de los Servidores, ya sean por actualización o por reemplazo
tecnológico, se realizan de una manera transparente para el usuario final.
• La interrelación entre el hardware y el software están basados en una infraestructura
poderosa, de tal forma que el acceso a los recursos de la red no muestra la complejidad de
los diferentes tipos de formatos de datos y de los protocolos.
• Su representación típica es un centro de trabajo (PC), en donde el usuario dispone de sus
propias aplicaciones de oficina y sus propias bases de datos, sin dependencia directa del
sistema central de información de la organización.

Los servidores pueden ser apátridas o stateful. Un servidor apátrida no guarda ninguna
información entre las peticiones. Un servidor stateful puede recordar la información entre las
peticiones. El alcance de esta información puede ser global o sesión-específico. Un servidor
del HTTP para las páginas estáticas del HTML es un ejemplo de un servidor, apátrida mientras
que Apache Tomcat es un ejemplo de un servidor stateful.

La interacción entre el cliente y el servidor se describe a menudo usando diagramas de secuencia.


Los diagramas de secuencia se estandarizan en el UML. Es importante que los clientes no
interactúen entre sí ni que lo hagan clientes de capas bajas hacia otros de capas más altas, por
eso todo tiene que pasar por el servidor.

Para la arquitectura C/S el remitente de una solicitud es conocido como cliente (front-end). Sus
características son:
• Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación
(dispositivo maestro o amo).
• Espera y recibe las respuestas del servidor.
• Por lo general, puede conectarse a varios servidores a la vez.
• Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica
de usuario.

Al receptor de la solicitud enviada por el cliente se conoce como servidor (back-end). Sus
características son:
• Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un
papel pasivo en la comunicación (dispositivo esclavo).
• Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.

Por lo general, acepta las conexiones de un gran número de clientes (en ciertos casos el número
máximo de peticiones puede estar limitado).

37
WINDOWS

Microsoft produce dos líneas separadas de sistemas operativos, una para ordenadores
personales y otra para servidores. Versiones más importantes:
• Windows NT: primera versión, orientada a computadoras personales, necesitaba gran
cantidad de recursos
• Windows 95 y 98.
• Windows 2000: muy útil para los administradores de sistemas y con una gran cantidad de
servicios de red, implementaba la posibilidad del “plug and play”, alguna de las
características más destacables.
o Soporte para FAT32 y NTFS.
o Cifrado de ficheros (EFS).
o Sistema RAID.
o Servicios de acceso remoto (RAS, VPN, RADIUS…).
o Active Directory.
• Windows XP: nueva interfaz, mayores capacidades multimedia, multitarea mejorada,
soporte para redes inalámbricas…
• Windows Server: basada en el núcleo de XP con servicios añadidos.
• Windows 7: mayor compatibilidad con aplicaciones y hardware, mejor interfaz, sistema de
redes domesticas simplificado y fácil de usar denominado “Grupo en el hogar”, mejoras de
rendimiento…
• Windows 10: introdujo una arquitectura de aplicaciones universales, desarrolladas con la
interfaz “modern UI”, orientado al uso con ratón y al uso con pantalla táctil, introduce la
vista de tareas, un sistema de escritorio virtual y el asistente Cortana.

1. WINDOWS XP (Windows XP Home, Windows XP Profesional)


Construido con el código de Windows 2000 con un nuevo interfaz gráfico, introduce mejoras
importantes como “entorno mejorado orientado a tareas”, “asistentes y herramientas”,
“restaurar el sistema”, “nuevas tecnologías (conexión de varios monitores, DVD, dispositivos
inalámbricos, bus USB…)”, “mejoras multimedia (controladores de tarjetas de video y sonido)”…
• Instalación: el proceso de instalación está dirigido por un asistente que se ocupa de todo,
solicitado en cada paso la información que necesita.
o RIS (Remote Installation Services): servicio de los servidores de Microsoft que permite a
ordenadores con BIOS PXE ejecutar parámetros de arranque de forma remota.
• Administración de discos: admite trabajar con “discos básicos” que se dividen en particiones
y “discos dinámicos” que se dividen en volúmenes, facilita dos herramientas, el
administrador de discos y la línea de comandos “diskpart”.
o Los discos básicos pueden dividirse en porciones de almacenamiento más pequeñas
denominadas particiones, dos tipos de particiones en un disco básico: primaria y
extendida y esta a su vez se puede dividir en particiones lógicas.
o Los discos dinámicos dan la posibilidad de administrarlo sin la necesidad de reiniciar,
ampliar un volumen de disco, extender un volumen entre múltiples discos duros,
realizar secciones de un volumen para mejorar su rendimiento, hacer un espejo o
añadirlo a un array RAID 5, todo desde MMC y sin tener que reiniciar, la creación inicial
o conversión de un disco básico a disco dinámico si necesitara reinicio. Se organizan en:

38
▪ Volúmenes simples: contienen el espacio en un único disco.
▪ Volúmenes seccionados (striped): combina espacio libre de dos o
más discos físicos en un único volumen, este proceso de división
de los datos entre varios discos mejora el rendimiento del disco.
▪ Volúmenes distribuidos (spanned): usa dos o más discos físicos
de forma que se rellena el primer disco y después el segundo y
así sucesivamente.

Windows proporciona dos métodos para la desfragmentación del disco y mejorar


el rendimiento: la herramienta grafica “desfragmentador de disco” y la línea de
comandos “defrag”.

1.1. SISTEMA DE ARCHIVOS


Es la estructura en la que se asigna nombres a los archivos, se almacena y se tiene acceso a ellos,
tres tipos de archivos en los discos duros FAT, FAT32 y NTFS, donde el utilizado actualmente es
NTFS (New Technology File System) sistema de archivos implementado en Windows NT, aunque
son posibles tamaños mayores, el máximo recomendado en la práctica para cada volumen es de
2 TB (Terabytes). El tamaño máximo de fichero viene limitado por el tamaño del volumen. A
partir de la versión 3.0, soporta cuotas de disco, cifrado de archivos, archivos dispersos, puntos
de análisis, número de secuencia de actualización (USN) diario, la carpeta $ Extender y sus
archivos. Se reorganizó los descriptores de seguridad de forma que varios archivos utilizando la
misma configuración de seguridad pueden compartir el mismo descriptor. La versión 3.1 amplió
la tabla maestra de archivos (MFT) entradas con número de registro MFT redundante (útil para
la recuperación de archivos dañados MFT).
chkdsk (windows): comprueba la integridad del disco.

1.1.1. PERMISOS NTFS


Los permisos sobre carpetas y archivos en NTFS son: escribir (crear archivos y carpetas y
modificar los atributos), leer (leer los archivos y carpetas, también los atributos), mostrar el
contenido de la carpeta (permite movernos por la carpeta), lectura y ejecución (lectura y
listado), modificar (lectura y ejecución más suprimir la carpeta) y control total (permite cambiar
los permisos y tomar posesión). En un volumen NTFS se pueden establecer permisos a nivel de
archivo, cualquier archivo puede otorgar a los usuarios diferentes tipos de acceso. Se deben
asignar permisos a grupos, no a usuarios individualmente. No hay que establecer permisos
archivo a archivo a menos que sea inevitable. Estos permisos siguen unas reglas:
• El usuario que crea un archivo o carpeta es el propietario de ese objeto.
• Los permisos que le demos a una carpeta se heredan en los niveles inferiores (Herencia).
• Los permios son acumulativos cuando un usuario está en más de un grupo salvo que alguno
tenga marcado “DENEGAR” (Aditivos).
• Si copiamos un archivo a una partición distinta se heredan los permisos de la partición
destino, si movemos un archivo o una carpeta NTFS hacia otra partición esta pierde sus
propiedades de seguridad, se eliminan los permisos y se heredan de la carpeta destino.
• Para determinar los permisos reales de acceso a un recurso, el permiso global efectivo será
el más restrictivo entre el permiso efectivo de compartición (FAT) y el permiso efectivo de
NTFS.

39
1.2. CARPETAS Y RECURSOS COMPARTIDOS
El sistema crea varios recursos compartidos especiales como ADMIN$ (aparece como C$, D$,
E$...), permiten a los administradores conectarse a unidades que en otro caso no estarían
compartidas. Existen como parte de la instalación del SO:
• ADMIN$: se utiliza durante la administración remota de un equipo, solo los administradores,
operadores de copia y operadores de servidores se pueden conectar a este recurso
compartido.
• C$: carpeta raíz de la unidad específica.
• IPC$: utilizado durante la administración remota y cuando se revisan los recursos
compartidos, es esencial en la comunicación y no se debe cambiar, modificar o eliminar.
• NETLOGON: servicio Inicio de sesión de red de un servidor que ejecuta Windows NT Server
cuando procesa los únicos de sesión en el dominio.
• PRINT$: soporta impresoras compartidas.
• REPL$: se crea en un servidor cuando un cliente de fax está enviando el fax.
El objeto principal en una red es compartir archivos entre los distintos equipos, en sistemas
Microsoft vamos a compartir siempre carpetas nunca archivos. La forma más sencilla de crear
carpetas compartidas es utilizar la consola MMC con el complemento de carpetas compartidas,
le asigna un nombre identificativo y se asignan los permisos correspondientes. Se pueden definir
recursos compartidos y una única carpeta puede ser compartida más de una vez, un recurso
compartido podría incluir control total para administradores y otro recurso compartido para
usuarios podría ser más restrictivo.
Los permisos de recursos compartidos se pueden asignar a usuarios individuales, a grupos y a
las entidades especiales “Todos”, SYSTEM, INTERACTIVE, NETWORK y Usuarios autentificados.
Carpetas que comparte el sistema por defecto:
• C$
• IPC$: comunicación entre procesos.
• ADMIN$: ruta %systemroot%.
• Print$: administración de impresoras.
1.3. CONFIGURACION DE RED EN WINDOWS XP
Dos métodos para asignar direcciones IP a un dispositivo de red TCP/IP:
• Direccionamiento estático: se especifica físicamente la dirección IP.
• Direccionamiento dinámico: protocolo DHCP, configurado de forma predeterminada para
obtener una dirección IP automáticamente de un servidor DHCP. Utilidades que permiten
diagnosticar problemas de red:
o arp: muestra y permite modificar las tablas de protocolo arp, convertir direcciones IP de
cada ordenador en direcciones MAC.
o ftp: conectarse a otra maquina a través del protocolo FTP para transferir archivos.
o ipconfig: configuración de todos las interfaces.
▪ /flushdns: purga la cache de resolución de DNS.
o net: administrar usuarios, carpetas compartidas, servicios…
o netstat: listado de todas las conexiones de red que nuestra maquina está realizando.
o nslookup: obtener la dirección IP conociendo el nombre, y viceversa; permite que el
usuario consulte de forma manual los servidores de nombres para resolver un nombre
de host dado.

40
o ping: paquetes IP, comprobar la conexión, informa del tiempo que tarda en contestar la
maquina destino.
o pathping: la ruta que sigue cada paquete para llegar a una IP determinada, tiempo de
respuesta de cada uno de los nodos por los que pasa y las estadísticas de cada uno de
ellos.
o route: ver o modificar las tablas de enrutamiento de red.
Un equipo puede estar configurado en modo:
• Grupo de trabajo: cada máquina se administra de forma independiente, es una
agrupación de equipos en una red que comparte recursos, todos los equipos pueden
compartir recursos como elementos iguales sin servidor dedicado.
• Dominio: todas las maquinas son controladas por un equipo llamado controlador de
dominio.
1.4. USUARIOS Y GRUPOS
El fichero “NTUSER.DAT” se encarga de guardar las configuraciones y preferencias de cada
usuario de Windows. Cada usuario tendrá su propio fichero dentro de su carpeta personal, y
cuando inicia sesión se carga este fichero en el registro para dar forma al perfil de usuario.
• Administradores: pueden acceder a todos los componentes, configuración, instalar
programas, crear nuevos usuarios…
• Usuarios: usar el equipo y almacenar sus archivos en las carpetas del equipo.
• Usuario Avanzado: similar a usuario con más derechos administrativos.
• Cuentas de usuario en red: registradas en el equipo servidor, pueden iniciar sesión en
cualquier equipo de la red, las cuentas de usuario local son el único tipo de cuenta en un
grupo de trabajo que se crea en el equipo que se va a utilizar, pero reside en una base de
datos de cuentas denominada administrador de seguridad SAM.
Los usuarios y contraseñas se almacenan en system32/config y cada usuario tiene un SID
(security identifier) único. La configuración especifica de un usuario queda guardada en su perfil,
en la carpeta %HOMEPATH% (Documents and settings/User), los perfiles existentes son:
• Usuario permanente: base de todos los perfiles de usuario.
• Usuario local: perfiles creados en un equipo cuando un usuario inicia sesión, el perfil es
especifico a un usuario y local al equipo. Se crean en los equipos cuando los usuarios
individuales inician sesión y la primera vez que un usuario inicia sesión en un equipo, se
genera una carpeta de perfil para el usuario y los contenidos de la carpeta Default User se
copian a ella. Si un usuario tiene una cuenta local en el equipo además de una cuenta de
dominio, tendrá dos carpetas de perfil en el equipo local, una para cuando inicie sesión
localmente y otra para cuando inicie sesión en el dominio.
• Usuario móvil: perfiles creados por un administrador y almacenados en un servidor, después
del inicio de sesión del usuario sea autentificado en el servicio de directorio se copia al
equipo local. Se crea una carpeta compartida con los usuarios que tengan perfiles móviles.
Se introduce una ruta de acceso a esa carpeta en la ventana propiedades del perfil de los
usuarios, cuando el usuario cierra la sesión, el perfil se almacena tanto localmente como en
la ubicación de la ruta de acceso al perfil del usuario.
• Usuario obligatorio: lo crea el administrador del sistema con determinada configuración
para uno o varios usuarios, puede convertir perfiles móviles en obligatorio si se cambia el
nombre del archivo de perfil de Ntuser.dat en Ntuser.man

41
1.4.2. ACCESO REMOTO
Remote Desktop Protocol (RDP): es un protocolo que permite la comunicación en la ejecución
de una aplicación entre una terminal (mostrando la información procesada que recibe del
servidor) y un servidor Windows (recibiendo la información dada por el usuario en el terminal
mediante el ratón o el teclado), bajo el puerto TCP 3389. La información gráfica que genera el
servidor es convertida a un formato propio RDP y enviada a través de la red al terminal, que
interpretará la información contenida en el paquete del protocolo para reconstruir la imagen a
mostrar en la pantalla del terminal. Para acceder al cliente del protocolo se ejecuta mstsc
(Microsoft Remote Desktop Connection), en ese momento se tiene acceso a todas las
aplicaciones, archivos y recursos, mientras se utiliza el equipo de forma remota, nadie podrá
usarlo de forma local, provocaría el cierre de la sesión remota.

1.5. SERVICIOS
Son aplicaciones que se ejecutan en segundo plano y que el sistema ejecuta de forma
predeterminada al iniciar o cuando es necesario (como los demonios de UNIX).
• Estado: modo de funcionamiento actual del servicio (Detenido, pausado, iniciado).
• Tipo de inicio:
o Manual: mediante intervención del usuario.
o Automático: cada vez que arranca el SO, arranca el servicio.
o Deshabilitar: no se puede iniciar.
Se puede parar o arrancar servicios desde la línea de comandos con el comando “net”:
• net start: inicializa un servicio / net stop: detiene un servicio que se encuentra en ejecución.
• net continue: inicia de nuevo un servicio interrumpido.
• net user: para la gestión de usuarios
• net name: agrega o elimina un alias.
• net sesión: muestra y gestiona una lista con las sesiones conectadas a un equipo local.
• net accounts: actualiza la base de datos y modifica las directivas de seguridad.
• net computer: agrega o quita equipos en una base de datos de dominios.
• net group: agrega o elimina grupos globales
• net localgroup: agrega elimina grupos locales.
• net share: comparte carpetas o impresoras (recurso compartido) para ser utilizadas en red.
• net config: muestra o modifica los servicios configurables que están en ejecución.
• net file: muestra los nombres de todos los archivos compartidos abiertos en un servidor.
• net help: muestra la ayuda de un comando
• net helpmsg: muestra la ayuda de un error.
• net print: muestra la cola de impresión
• net statistics: muestra estadísticas del servicio local.
• net view: muestra un listado de los recursos compartidos de un equipo.

1.6. IMPRESORAS
• Servidor de impresión: ordenador al que se mandan los documentos para imprimir.
• Impresora: interfaz entre aplicación e impresión.
• Dispositivo de impresión.
• Cola de impresión: lista de documentos que se están imprimiendo.
• Spool de impresión: software que se encarga de administrar la cola de impresión.

42
• Pool de impresoras: dirigir desde una única impresora los documentos hacia varios
dispositivos de impresión.
Puertos:
o Impresoras locales: USB, COM, LPR (compatible con UNIX).
o Impresoras de red: para compartir una impresora local, se comparten los drivers de
dicha impresora con TCP/IP, quedan incluidos en la carpeta PRINT$ con la ruta
%systemroot%/system32/spool/drivers.

2. WINDOWS 7 (Windows Home / Windows 7 Professional / Windows 7 Ultimate)


Windows 7 crea una partición automática utilizando la totalidad del disco duro,
automáticamente crea una partición de 200MB, se denomina partición de sistema y contienen
los archivos para que Windows 7 arranque correctamente, la otra partición se denomina
arranque y contiene el resto de archivos del sistema operativo. Modos de instalación:
• Instalación manual.
o Actualizaciones: conserva los archivos, la configuración y los programas en su ubicación
en el equipo. Es posible realizar un proceso de migración de los perfiles de usuario:
o Windows Easy Transfer (WET): migración de un único ordenador.
o Personalizada: no conserva los archivos, la configuración ni los programas, se la
denomina instalación limpia.
• Mediante imagen estándar (clonación de equipo), pasos:
o Analizar la compatibilidad de las aplicaciones: con ACT (Kit de herramientas de
compatibilidad de aplicaciones).
o Prepara un dispositivo de arranque para capturar imagines: AIK de Windows, prepara
una imagen del entorno de preinstalación de Windows (Windows PE).
o Instalar Windows 7 en el equipo de referencia, las aplicaciones, controladores y
actualizaciones que queramos incluir en la imagen.
o Prepara la imagen en el equipo de referencia con sysprep.
o Capturar la imagen del equipo de referencia: se inicia el equipo de referencia con
Windows PE y se captura una imagen con ImageX, se puede almacenar la imagen en un
recuso compartido de red o disco duro USB local.
o Se crea un archivo de respuestas Unattend.xml que apunte a la imagen anterior.
o Instalar la imagen en el quipo cliente con el archivo de respuesta.
• Implementación con MDT (Microsoft Deployment Toolkit):
o Instalación: debe crearse un servidor de archivos (Windows Server).
o Se instala el MDT 2010, en ese servidor de archivos junto con el resto de componentes.
o Se crea un recurso compartido de distribución que debe contener el sistema operativo,
las aplicaciones, los drivers y la configuración del Windows.
o En MDT 2010 indican las instrucciones para la instalación y configuraron de Windows,
se crea también en el MDT punto de implementación, establecer una conexión a
archivos en el resto de recurso compartido de distribución
o Podemos almacenar las imágenes que ha creado el MDT en dispositivo de
almacenamiento extraíble.
• User State Migration Tool (USMT): automatización de la migración.
• Herramientas externas como “Clonezilla”.

43
2.1. PROCESO DE ARRANQUE
1. La BIOS accede al MBR indicando cual es la partición activa.
2. Se accede al sector de arranque de dicha partición (creando al instalar el SO).
3. Este sector de arranque direcciona al fichero BOOTMGR (en Windows NT, XP y Server
2003 se usa NTLDR “NT Loader”).
4. BOOTMGR accede al fichero BOOTBCD, es un archivo binario, no editable mediante
procesador de textos, se encuentra en la partición de 200MB.
5. Inicio del sistema ejecutamos el kernel y ubicado en el fichero NTOSKRNL.exe

2.2. NOVEDADES
• Se añaden a los tipos de usuarios ya vistos en Windows XP:
o Operadores de copia de seguridad: pueden hacer copias de seguridad y restaurar
archivos de un equipo.
o Replicador: cuenta de usuario de dominio que se usa para iniciar sesión en servicios de
replicador de un controlador de domino.
• Compartición de carpetas: permite compartir archivos de las carpetas públicas con otras
personas con el mismo equipo y con personas que usen otros equipos en la misma red.
• Servicios: se añade un nuevo modo de inicio, Automático (inicio retrasado), retrasa el inicio
del servicio hasta después de completarse el proceso de arranque de Windows.
• Impresoras: se añaden el formato XPS (XML Paper Specification) y Location-Aware Printing,
la impresora por defecto se modifica automáticamente cuando se detecta el cambio de
conexión a una nueva red.
• Además de trabajar con los tipos de discos ya vistos en Windows XP, también soporta el
trabajo con dos nuevos tipos de discos:
o Discos MBR (Master Boot Record): discos tradicionales, en los que se crea una tabla de
particiones con un máximo de cuatro, en el primer sector del disco duro.
o Discos GPT (GUID Partition Table): contiene un array de entradas de particiones que
indican la dirección del bloque inicial y final de cada partición en el disco.

2.6. MEJORAS DE SEGURIDAD EN WINDOWS 7


• User Access Control: permite controlar los privilegios de los usuarios que hacen uso del
sistema cuando se ejecutan tareas administrativas que acceden o modifican archivos críticos
del sistema, se activara cuando identifique la necesidad de tareas adm8insitrativas por parte
de procesos o actualizaciones.
• Supresión de Autoplay: solo los dispositivos ópticos (CD, DVD…) utilizaran la opción de
ejecutar automáticamente archivos al ser insertados (USB deja de utilizarla, pregunta
primero).
• Windows Biometric Framework (WBF): utilización de dispositivos biométricos de lectura de
huellas dactilares.

3. WINDOWS 10 (Windows 10 Home / Windows 10 Pro / Windows 10 Enterprise-Education)


Introduce una arquitectura de aplicaciones universales (Modern UI), diseñadas para ejecutarse
en todas las familias de productos Microsoft. Se introduce la vista de tareas, sistema de
escritorio virtual, soporte para huella digital o reconocimiento facial, DirectX 12, WDDM 2.0. La
edición Pro añade características adicionales de seguridad y red como BitLocker, Device Guard,
Windows Update para empresas y la habilidad de unirse a un dominio.

44
3.1. SISTEMA Y SEGURIDAD
Incorpora FIDO (Fast Identity Online) una tecnología de autenticación en factores múltiples,
incluye soporte mejorado para la autenticación biométrica (Windows Hello), las credenciales se
almacenan localmente y están protegidas mediante cifrado asimétrico.
La plataforma “Passport” permitirá a las redes, software y sitios web verificar la identidad del
usuario mediante un PIN o un inicio de sesión biométrico, los administradores establecen
normativas para el cifrado de datos automático y bloquear selectivamente las solicitudes de
acceso a datos cifrados.
Device Guard, permite a los administradores reforzar la seguridad de un espacio digital,
mediante el bloqueo de la ejecución de software que no está firmado digitalmente por un
proveedor de confianza o Microsoft, también incluye Sensor de almacenamiento, permite al
usuario ver de qué forma la capacidad de almacenamiento de su dispositivo está siendo utilizado
por diferentes tipos de archivos.
SCCM (Microsoft System Center Configuration Manager): solución de software de
administración que permite gestionar de forma centralizada la configuración de todos los
sistemas físicos y virtuales de una organización o grupo de organizaciones permitiendo, entre
otras características, control remoto, gestión de actualizaciones y parches, distribución de
software, despliegue de sistemas operativos, protección, cumplimiento e inventariado de
software y de hardware. Desde la versión 1910, se llama ECM (Microsoft Endpoint Configuration
Manager).

4. WINDOWS SERVER 2008


Active Directory es el nombre utilizado por Microsoft (desde Windows 2000) como almacén
centralizado de información de uno de sus dominios de administración. Un Servicio de Directorio
es un depósito estructurado de la información de los diversos objetos que contiene el Active
Directory, en este caso podrían ser impresoras, usuarios, equipos... Bajo este nombre se
encuentra realmente un esquema (definición de los campos que pueden ser consultados) LDAP
versión 3, lo cual permite integrar otros sistemas que soporten el protocolo. En este LDAP se
almacena información de usuarios, recursos de la red, políticas de seguridad, configuración,
asignación de permisos, etc.
LDAP (Lightweight Directory Access Protocol): protocolo a nivel de aplicación que permite el
acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un
entorno de red. Los despliegues actuales de LDAP tienden a usar DNS para estructurar los niveles
más altos de la jerarquía. Conforme se desciende en el directorio pueden aparecer entradas que
representan personas, unidades organizacionales, impresoras, documentos, grupos de personas
o cualquier cosa que representa una entrada dada en el árbol (o múltiples entradas).
Habitualmente, almacena la información de autenticación (usuario y contraseña) y es utilizado
para autenticarse aunque es posible almacenar otra información (datos de contacto del usuario,
ubicación de diversos recursos de la red, permisos, certificados, etc). A manera de síntesis, LDAP
es un protocolo de acceso unificado a un conjunto de información sobre una red.

Combina el SO del equipo y de red en un mismo sistema, configura un equipo para proporcionar
funciones y recursos de servidor a una red y las funciones de cliente de red. Trabaja sobre una
modelo de dominio, es una colección de equipos y usuarios que comparten unas políticas de
seguridad y una base de datos común (catalogo global).

45
Se debe designar un servidor como controlador principal de domino (PDC, Primary Domain
Controller). Este servidor mantiene los servicios de directorios y autentifica cualquier usuario
que quiera entrar en el sistema. Los servicios de directorios de Windows Server se pueden
implementar de varias formas, existen cuatro modelos de domino:
• Dominio único: un único servidor mantiene la base de datos de seguridad y de las cuentas.
• Maestro único: una red con maestro único puede tener diferentes dominios, pero se designa
uno como el maestro y mantiene la base de datos de las cuentas de usuario. Incluye varios
roles y la capacidad de transferir roles a cualquier controlador de dominio de la empresa.
Dado que un rol de Active Directory no está enlazado a un solo controlador de dominio, se
conoce como un rol FSMO (Flexible Single Master Operations). Actualmente en Windows
hay cinco roles FSMO:
o Maestro de esquema: se encarga de procesar actualizaciones del esquema de directorio.
Una vez completada la actualización de esquema, se replica desde el patrón de esquema
a todos los demás DCs del directorio.
o Patrón de nomenclatura de dominio: se encarga de agregar o quitar un dominio del
directorio. También puede agregar o quitar referencias cruzadas a dominios en
directorios externos.
o Patrón de RID: responsable de quitar un objeto de su dominio y colocarlo en otro
dominio durante un movimiento de objeto. Cuando un controlador de dominio crea un
objeto de entidad de seguridad, como un usuario o grupo, adjunta un identificador de
seguridad (SID, security identifier) único al objeto. Consta de un SID de dominio que es
el mismo para todos los SID creados en un dominio y de un RID (relative identifier) que
es único para cada SID de entidad de seguridad creado en un dominio.
o Emulador PDC: el emulador PDC es necesario para sincronizar el tiempo en una
empresa. Windows incluye el servicio de tiempo W32Time, que requiere el protocolo
de autenticación Kerberos*. Se encarga de los cambios de contraseña realizados por
otros controladores de dominio en el mismo, se replican de forma preferente en el
emulador de PDC, cuando se producen errores de autenticación en un controlador de
dominio determinado debido a una contraseña incorrecta, los errores se reenvían al
emulador de PDC antes de que se informe al usuario de un mensaje de error de
contraseña incorrecto, el bloqueo de cuentas se procesa en el emulador PDC y este
realiza todas las funciones.
* Kerberos: protocolo de autenticación de redes de ordenador, permite a dos
ordenadores en una red insegura demostrar su identidad mutuamente de manera
segura mediante autenticación mutua: tanto cliente como servidor verifican la
identidad uno del otro. Kerberos se basa en criptografía de clave simétrica y requiere
un tercero de confianza. Además, existen extensiones del protocolo para poder utilizar
criptografía de clave asimétrica.

o Maestro de infraestructura: cuando otro objeto de otro dominio hace referencia a un


objeto de un dominio, representa la referencia mediante el GUID, el SID y el DN del
objeto al que se hace referencia. El titular de la función FSMO de infraestructura es el
controlador de dominio responsable de actualizar el SID y el nombre distintivo de un
objeto en una referencia de objeto entre dominios.

46
• Maestro múltiple: incluye diferentes dominios y la base de datos de la cuenta se mantiene
en más de un servidor.
• Confianza completa: existen varios dominios, ninguno esta designado como maestro, sino
que todos confían completamente en el resto.
Sus características principales son:
• Gestión mediante la consola de administración MMC.
• Servicios de distribución de Windows (WDS), evolución de RIS, para la implementación de
los sistemas operativos en múltiples equipos.
• Nuevo entorno de Windows PowerShell que permite programar scripts de administración y
tener acceso a los recursos de las aplicaciones desde la propia interfaz, es un intérprete de
comandos orientado a objetos. La información de entrada y de salida en cada etapa del
proceso (cmdlet, "comándulo") es un conjunto de instancias de objeto, a diferencia de lo
que ocurre con los intérpretes de comandos tradicionales, que devuelven y reciben texto.
o get-item: lista archivos o carpetas
o get-childitem: lista los archivos o carpetas de un sistema de archivos
o get-command: lista todos los comandos
o get-process: lista los procesos activos del equipo local
o remove-item: borra archivos o carpetas
o copy-item: copia archivos o carpetas
o set-location: sitúa el directorio de trabajo en un directorio concreto
o clear-content: borra el contenido de un objeto pero no el propio objeto
o clear-item: limpia el contenido de un objeto pero no el propio objeto
o remove-item: borra un objeto especifico
o get-WmiObject: muestra el listado de software instalado por Windows Installer
o get-history: obtiene el historial de comandos introducidos
o get-service: lista los servicios en el puesto de usuario

• Motor de visualización llamado Hyper-V, utiliza la virtualización por hardware.


• Nuevos servicios de terminal server como el RemoteApp, que permite la ejecución remota
de aplicaciones desde los equipos cliente sin tener que abrir una sesión.
• IPAM (Internet Protocol Address Management): software que puede planificar, hacer
seguimiento y administrar las direcciones IP usadas en una red de computadoras.

Versiones:
• Web Edition: servidores WEB fundamentalmente y servidores de aplicaciones, incluye .NET
Framework, IIS con ASP.NET, servidor de aplicaciones, carece de servicios como Active
Directory y es posible instalar una versión core del mismo. Soportar un máximo de 2 GB de
RAM y dos CPU.
• Standar Edition: proporcionar servicios básicos y recursos a otros sistemas a través de una
red. Soporta hasta 32 GB de memoria en sistemas de 64 bits.
• Enterprise Edition: mayor escalabilidad y disponibilidad, dispone de servicios de clustering y
Active Directory, soporte para el intercambio de RAM en caliente, soporta un máximo de 2
TB de RAM en sistemas de 64 bit.
• Datacenter Edition

47
4.1. CARACTERÍSTICAS
Windows Server trabaja con Active Directory, este se
centra en la administración de los recursos de la red
organizativa, independientemente de la ubicación física
de dichos recursos, y de la topología de las redes
subyacentes. Los objetos de Active Directory representan
usuarios y recursos, como por ejemplo, los ordenadores
y las impresoras. La estructura lógica de Active Directory
se compone de objetos, clases de objetos, unidades
organizativas, dominios, árboles de dominios y bosques:
• Objetos: componentes básicos de la estructura
lógica. Algunos objetos representan entidades
individuales de la red, como un usuario o equipo
(hojas) y no pueden contener otros objetos. Sin
embargo, para facilitar la administración y simplificar la organización del directorio, se
pueden colocar objetos “hoja” dentro de otros objetos denominados objetos contenedor.
Los objetos contenedores también pueden contener otros contenedores de forma anidada,
o jerárquica. Cada objeto puede definirse mediante unas plantillas o modelos definidos por
unos atributos y valores (clases de objetos).
• Unidades organizativas: tipo más común de objeto contenedor y se pueden utilizar para
organizar otros objetos con propósitos administrativos, por ejemplo dividir una empresa en
departamentos. Organizando éstos es más fácil localizar y administrar objetos. También es
posible delegar la autoridad para administrar estas unidades organizativas de manera que
haya administradores de cada una de ellas.
Importación de usuarios con la herramienta de comando CSVDE: permite la
importación/exportación de objetos de AD desde o hacia un archivo de texto (Formato CSV).

• Dominios: se usan para agrupar objetos relacionados con el fin de reflejar la red de una
organización, son colecciones de los objetos administrativos definidos, que comparten en
una base de datos común del directorio, políticas de la seguridad y relaciones de confianza
con otros dominios. Cada dominio que se crea almacena información acerca de los objetos
que contiene. Los dominios proporcionan un límite administrativo para los objetos, medios
de administrar la seguridad para los recursos compartidos y una réplica para los objetos.
• Árbol de dominios: dominios agrupados en estructuras jerárquicas que permiten el uso
compartido de recursos globales. Cuando se agrega un segundo dominio a un árbol, se
convierte en hijo del dominio raíz y este a su vez puede tener sus propios hijos,
combinándose con el nombre de su padre para formar su propio y único.
• Bosque: nivel más alto, pueden agruparse árboles dispares para formar un bosque. Un
bosque permite combinar divisiones diferentes en una organización o, incluso, pueden
agruparse organizaciones distintas. El primer dominio en el bosque se llama Dominio raíz
del bosque y el nombre de ese dominio se refiere al bosque, por ejemplo miempresa.com.
Por defecto, la información en Active Directory se comparte solamente dentro del bosque.
De esta manera, la seguridad del bosque estará contenida en una sola instancia de Active
Directory. Así que la mayoría de las veces nuestra organización será de un sólo dominio
(miempresa.com) dentro de un solo bosque.

48
Grupos de usuario: facilita al administrador las tareas de mantenimiento y gestión de los
usuarios, pueden ser organizados en grupos y aplicar sobre ellos actualizaciones de forma
simultánea, tres tipos de grupos:
• Grupos globales: pueden contener cuentas de usuario y otros grupos globales del mismo
dominio, se usan para las tareas más cotidianas de gestión dentro del mismo domino, no se
propagan a otros dominios del mismo bosque.
• Grupos locales: a los miembros de los grupos locales solo se les pueden asignar permisos
dentro de un mismo dominio, los grupos locales pueden contener dentro de ellos cuentas
de cualquier domino, grupos globales de cualquier domino, grupos universales de cualquier
dominio y grupos locales del mismo dominio.
• Grupos universales: contienen cuentas de cualquier dominio del bosque, grupos globales de
cualquier dominio del bosque y grupos universales de cualquier dominio del bosque, a estos
grupos se le s pueden asignar permisos en cualquier dominio del bosque, son útiles para
consolidar grupos que abarquen varios dominios, debe limitarse su uso a casos
indispensables.

4.1.1. SERVICIOS
Con el tiempo, Microsoft ha agregado servicios adicionales bajo el estandarte de Active
Directory que proporciona un framework para otros servicios similares.
• Certificate Server Active Directory (AD CS): servicios y funcionalidades que permite que un
servidor emita certificados digitales para asegurar los sistemas y las comunicaciones en red.
• Servicios de Domino de Active Directory (AD DS): proporcionar los servicios de directorio en
un dominio, emite certificados digitales para asegurar los sistemas y las comunicaciones en
red.
• Servicios de Federación de Active Directory (AD FS): complementan las características de
autenticación y gestión de acceso que proporciona AD DS, extendiéndolas a la WEB, la
gestión de los accesos a los sistemas y recursos desde el exterior, internet.
• Servicios de directorio activo ligero de Active Directory (AD LDS): almacén de datos a las
aplicaciones de datos a las aplicaciones basadas en la utilización del directorio, puede ser
empleado en grupos de trabajo.
• Active Directory Rights Management Services (AD RMS): capa de seguridad en la protección
de la información de la organización, proteger los accesos no autorizados, establecimiento
de relaciones de confianza.

Las impresoras se publican en el almacén de AD como objetos printQueu, estos contienen un


subconjunto de la información almacenada en el servidor de impresión. Cualquier impresora
compartida se publica en los servicios de AD.
Herramientas de comandos de AD: permiten gestionar los objetos de AD, son:
• dsadd: crea un objeto en el directorio.
• dsget: obtiene atributos de un objeto del directorio.
• dsmod: modifica atributos.
• dsmove: mueve un objeto entre contenedores o OU del directorio.
• dsrm: elimina un objeto o todos los objetos de un subárbol bajo un contexto.
• dsquery: realiza una consulta y devuelve una lista con los objetos que coinciden con los
parámetros de la búsqueda. (“dsquerry:computer”: busca ordenadores en el directorio)

49
4.2. GESTIÓN DE POLÍTICAS DE GRUPO
Ofrecen infraestructura, centralizan las configuraciones que se implementan en los usuarios y/o
equipos. En un entorno administrativo mediante directivas de grupo todas las configuraciones
se realizan a través de objetos de política de grupo (GPO) ejecutando “gpedit.msc”, pueden
afectar a una OU, a un sitio o a un domino. Mediante directivas de grupo se puede configurar
prácticamente todo desde la configuración de seguridad, la implementación de software, las
directivas de contraseñas y auditoría. El método más habitual de delimitar el ámbito de un GPO
es vincularlo a un sitio, dominio o OU a través de GPMC. Las GPO se gestionan a través de la
Group Policy Management Console (GPMC), puede tener tres estados:
• No configurada: el GPO no modificara la configuración existente de esa configuración
particular para el usuario o grupo.
• Habilitada o deshabilitada: se producirá un cambio en la configuración de usuario so equipos
a los que se aplique dicha directiva.
Las configuraciones de directivas se aplican cuando se inicia una sesión de usuario y después
requieren el cierre de sesión, pero es posible forzar la actualización de directivas con comando
“gupdate/target:equipo” o “gupdate/target:usuario”. Las Directivas de Grupo se procesan:
• Sitio: el ordenador procesa todas las políticas de grupo que se aplican al sitio en el que se
encuentra actualmente el equipo.
• Dominio: cualesquiera políticas aplicadas en el nivel de dominio (ámbito de la política por
defecto) se procesan a continuación.
• Unidad organizativa: último grupo de políticas asignado a la unidad organizativa que
contiene la computadora o el usuario que se procesan.
gpresult: muestra información del conjunto de directivas para un usuario y equipo remotos.
gpupdate: actualiza la configuración de directiva de grupo.

4.3. CARPETAS COMPARTIDAS (ofrece dos modos de compartición de archivos):


• Modo estándar: acceso a recursos de red como archivos, carpetas y unidades, la
compartición de una unidad o carpeta se aplica a todas las subcarpetas y archivos
contenidos en dicha carpeta y/o unidad, se puede aplicar a discos con formato FAT32,
NTFS… Para gestionar se usa la herramienta “administración de almacenamiento y recursos
compartidos”, y también con el comando net (net share, net sessions).
• Modelo público: consiste en copiar o trasladar los archivos a una carpeta publica, estarán
accesibles para cualquier usuario que inicie una sesión local en dicha máquina. Si dicha
carpeta publica se comparte, existe la posibilidad de establecer permisos de acceso a esta
carpeta a través de la red. La carpeta publica está ubicada en %SystemDrive%/Users/Public.

4.3. GESTION DE DISPOSITIVOS


El almacenamiento local y de red se ha simplificado para el usuario, proporciona soporte tanto
para almacenamiento remoto como para almacenamiento local y en medios extraíbles, todo de
forma completamente transparente al usuario, el usuario no tiene que preocuparse de sí un
programa o archivo se almacena en disco, en cinta o en cualquier parte de internet, solo de que
esté disponible cuando sea necesario. La interfaz está basada en la consola de administración
(MMC), permite administrar discos locales y discos remotos en otras computadoras.

50
4.4. GESTIÓN DE DISCOS
Windows Server utiliza particiones MBR (Master Boot Record) y GPT (GUID Partition Table) al
igual que Windows 7, la herramienta fundamental para la gestión de discos es “diskpart”, se
pueden configurar tres tipos de discos:
• Básico: pueden dividirse en porciones de almacenamiento más pequeñas denominadas
particiones, dos tipos de particiones en un disco básico: primaria y extendida y esta a su vez
se puede dividir en particiones lógicas.
• Dinámico: da la posibilidad de administrarlo sin la necesidad de reiniciar en la
mayoría de las ocasiones, ampliar un volumen de disco, extender un volumen entre
múltiples discos duros, realizar secciones de un volumen para mejorar su
rendimiento, hacer un espejo o añadirlo a un array RAID 5, todo desde MMC y sin
tener que reiniciar, la creación inicial o conversión de un disco básico a disco
dinámico si necesitara reinicio. Se pueden organizar en simples, stripped y spanned.
• Extraíble: propio de unidades de disco extraíble.
Se dispone de una herramienta grafica “Administrador de cuotas del administrador de recursos
del servidor de archivos”, dos tipos de cuotas:
• Cuotas de disco NTFS: se emplean para administrar la utilización del espacio de disco que
hacen los usuarios. Se configuran por volumen, es posible configurar mensajes de
advertencia, para definir los límites de uso de disco: denegar espacio de disco a usuarios que
excedan el límite de cuota, limitar espacio de disco, establecer el nivel de advertencia.
• Cuotas de disco del administrador de recursos: permiten gestionar el espacio ocupado por
carpetas y volúmenes cuando un usuario se aproxima o exceda la cuota recibirá un aviso.
4.4. GESTION DE IMPRESIÓN EN WINDOWS SERVER
Está diseñado para la impresión en red, las aplicaciones envían los trabajos de impresión a las
impresoras conectadas a un servidor de impresión de Windows Server. Varias configuraciones
básicas de clientes, servidores y dispositivos de impresión, dependiendo de si es remoto o no:
• Dispositivo de impresión local no remoto: esta enchufada a un puerto del ordenador, el
controlador de la impresora y la cola de trabajos están en esa computadora que envía los
datos a directamente al dispositivo de impresión.
• Pequeño grupo de equipos que comparten un dispositivo de impresión en red: una red
donde cada ordenador tienen igual acceso al dispositivo de impresión y no hay un control
central de impresión o de seguridad, cada equipo tiene su propia cola de trabajos y no puede
ver los documentos en la cola en el dispositivo de impresión por otras computadoras.
• Servidor central de impresión: el acceso al dispositivo de impresión es a través del servidor
que está conectado localmente al dispositivo de impresión, la cola de trabajos se encuentra
en el servidor y es visible para cada cliente.
• Varios clientes que comparten un dispositivo de impresión en un dominio: el dispositivo de
impresión se conecta al servidor a través de la red, permitiendo que un servidor de
impresión que administre varios dispositivos de impresión.
Una página de separación es un archivo que contiene órdenes del dispositivo de impresión,
identifica y separar los documentos impresos y cambia entre los modos de impresión (se pueden
utilizar páginas de separación para determinar el lenguaje de descripción de página, PostScript
o PCL).

51
Windows incluye cuatro archivos de páginas de separación de forma predeterminada, pero se
pueden crear páginas de separación personalizadas creando un archivo “.sep”:
• Pcl.sep: cambia el modo de impresión a PCL.
• Pscript.sep: cambia el modo de impresión a PostScript
• Sysprint.sep: imprime una página antes de cada documento, compatible con PostScript.
• Sysprtj.sep: una versión de “Sysprint.sep” que utiliza caracteres japoneses.

Para que un servidor de impresión de Windows server soporte páginas web es necesario instalar
en el servidor de impresión los servicios de información de internet (IIS Internet Information
Services). Se crea un directorio virtual Printers debajo del sitio web predeterminado, este
directorio apunta a la carpeta %systemroot%\web\printers.

Un grupo de impresoras es una impresora que está conectada a múltiples dispositivos de


impresión a través de múltiples puertos de un servidor de impresión, pueden ser dispositivos de
impresión locales o de red. Cuando se crea un grupo de impresoras, los usuarios pueden
imprimir documentos sin tener que averiguar qué dispositivo de impresión está disponible, la
impresora busca un puerto disponible; disminuye el tiempo que esperan los documentos en el
servidor de impresión y simplifica la administración porque se pueden administrar múltiples
dispositivos de impresión desde una sola impresora. Esto hace posible establecer prioridades
entre grupos de documentos que se imprimen en el mismo dispositivo de impresión, los críticos
siempre se imprimen primero.
4.5. GESTIÓN DE LAS ACTUALIZACIONES DE WINDOWS
WSUS (Windows Server Update Services) versión privada del servicio Microsoft Update, desde
el que los equipos pueden desplegar actualizaciones automáticamente, se puede emplear para
distribuir actualizaciones además es posible mantener un control total sobre las actualizaciones
instaladas, supone una conexión del servidor en que está instalado al sitio de Microsoft Update,
se descargar la información de las actualizaciones disponibles y se agrega a una lista que
posteriormente tiene que aceptar el administrador. El servidor WSUS establece conexión HTTP
o HTTPS (80/443) con el sitio web de Windows Update.
4.6. MICROSOFT EXCHANGE SERVER
Microsoft Exchange Server es un software propietario de colaboración entre usuarios,
desarrollado por Microsoft. Es parte de la familia Microsoft Server ya que es una de las
aplicaciones destinadas para el uso de servidores
Exchange ActiveSync: protocolo de sincronización de Exchange, basado en HTTP y XML, permite
a los teléfonos móviles acceder a la información (correo electrónico, calendario…) de la
organización en un servidor que está ejecutando Microsoft Exchange. Se puede configurar
ActiveSync para utilizar cifrado SSL. Puede establecer directivas, iniciar una limpieza remota,
ejecutar informes, controlar los tipos de dispositivos móviles mediante reglas de acceso…
Algunos comandos para su administración son:
• GetBulkRequest: cuando es requerida una larga transmisión de datos, tal como la
recuperación de largas tablas.
• InformRequest: transmite un mensaje de este tipo a otro con las mismas características,
para notificar información sobre objetos administrados.
• Trap: mensajes no solicitados enviados por los agentes al administrador SNMP si ocurre
algún evento inesperado.

52
DAG (Database Availability Group): contiene servidores de buzones de correo que se convierten en
miembros del DAG. Una vez que un servidor de buzones de correo es miembro de un DAG, las bases
de datos de buzones de ese servidor se pueden copiar a otros miembros del DAG. Asumiendo que
no haya problemas de replicación y que las bases se encuentren disponibles, dentro de un DAG de
Exchange estas pueden encontrarse “Mounted (Activa)” o “Healthy (Pasiva)”. En ningún caso una
misma base de datos puede estar activa en más de un servidor a la vez.

5. NOVEDADES EN WINDOWS SERVER 2012 Y 2016


• 2012:
o Powershell incluye mayor cantidad de comandos.
o IPAM (IP Address Management): función de administración de direcciones IP par la
búsqueda, monitoreo, auditoria y administración del espacio de direcciones IP usados
en la red corporativa.
o Mejoras en AD, como un interfaz gráfico.
o Hyper-V: incluye soporte para virtualización de redes y copias de seguridad en la nube.
o ReFS (Resilient File System): mejora NTFS.
o Nueva versión de IIS (IIS 80).
o LAPS (Local Administrator Password Solution)
• 2016:
o Windows Defender.
o Soporte para librerías OpenGL y OpenCL.
o Failover Clustering: clúster de actualización gradual del sistema operativo con soporte
para réplicas de almacenamiento.
o Web Aplication Proxy.
o ISS 10: soporte para HTTP/2.
o Powershell 5.0
o “Reinicio Suave”: reinicia solo el software sin tener que inicializar el hardware.
6. SISTEMAS OPERATIVOS PARA DISPOSITIVOS MOVILES
• Fabricantes de hardware que son los fabricantes de sus propios SO: Apple.
• Fabricantes de dispositivos que utilizan SO de otras compañías: Android, Windows Mobile.
6.1. ANDROID (construido a partir de la versión 2.6 del kernel de Linux en 2008 (v. 1.0)):
• 3.0 Honeycomb (solo para trablets)
• 4.0 Ice Cream Sandwich / 4.1 Jelly Bean / 4.4 KitKat
• 5.0 Lollipop
• 6.0 Marshmallow
• 7.0 Nougat
• 8.0 Oreo
• 9.0 Pie
Basa el funcionamiento de sus aplicaciones en una máquina virtual Java que ejecuta cada
aplicación en un proceso propio, donde se lanza una nueva máquina virtual llamada Dalvik,
sustituida por ART (Android Runtime) en Android 5.0. Las aplicaciones se distribuyen en ficheros
empaquetados “.apk”, posee un navegador integrado basado en WebKit, los gráficos están
optimizados por una librería grafica 2D propia y OpenGL para gráficos 3D, para el
almacenamiento de datos utiliza como gestor de bases de datos SQLite.

53
6.2. IOS
Esta limitado a la instalación en hardware propietario, la versión más actual es IOS 13.2. Deriva
del sistema operativo de ordenadores Mac (OS X), es un sistema UNIX, la pantalla principal
(SpringBoard).
* Swift: lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo
de aplicaciones para iOS y macOS.
* FileVault: tecnología que proporciona capacidades de cifrado para todo el sistema de
almacenamiento principal de un equipo macOS, usando el método de encriptación AES.
* Gatekeeper: es una función de seguridad de macOS. Hace cumplir la firma de código y verifica
las aplicaciones descargadas antes de permitir que se ejecuten.

6.3 TIPOS DE APP MOVILES


• Nativas: se diseñan y desarrollan específicamente para un sistema operativo en particular,
empleando un lenguaje de programación específico, son fluidas, estables y permiten
obtener el máximo provecho de las funcionalidades del dispositivo.
• Web: se desarrollan con lenguajes como es el caso de HTML, CSS o Javascrip. Se accede a
ellas mediante un navegador web por lo que cualquier dispositivo puede entrar en ellas.
PWA “Progressive Web App” páginas web, pero mediante el uso de Service Workers y otras
tecnologías se comportan más como aplicaciones normales que como aplicaciones web, es
decir, pueden seguir ejecutándose en segundo plano.
• Hibridas: combinación de los dos tipos de apps descritos con anterioridad, serán
desarrolladas con lenguajes de programación típicos de una web, pero su estructura externa
estará basada en lenguajes de programación propios del dispositivo móvil.
6.4 TENDENCIAS EN SO
Uso de sistemas operativos en la nube, ahorro de costes en licencias. Plataformas de
virtualización de sistemas operativos y del software de aplicación en las máquinas virtuales.
• Tipos de servicios Cloud:
o IaaS (Infraestructure): el consumidor alquila recursos IT, no controla la infraestructura
cloud, pero tiene control directo sobre el SO, computación, almacenamiento, deploy de
aplicaciones y red. Se realiza a través de virtualización, externalizando todos estos
recursos y lo delegan al proveedor de servicios externo (Amazon Web Services,
Windows Azure, Rackspace, Openstack).
ownCloud: aplicación de software libre del tipo Servicio de alojamiento de archivos, que
permite el almacenamiento en línea y aplicaciones en línea (cloud computing).
ownCloud puede ser instalado dentro de un servidor que disponga de una versión
reciente de PHP (mayor o igual a 5.6) y soporte de SQLite (base de datos por defecto),
MySQL o PostgreSQL.

o PaaS (Platform): ofrece todo lo necesario para soportar el ciclo de vida completo de
desarrollo/construcción y puesta en marcha (deploy) de aplicaciones y servicio web
mediante lenguajes o herramientas soportadas por el proveedor (java, phyton…).
Proporciona control completo sobre las aplicaciones desplegadas y sobre los ajustes de
configuración de estas, es usado principalmente por desarrolladores. (Servicios de
Azure, Google App Engine, OpenShift…)

54
* OpenShift: producto de computación en la nube de plataforma como servicio de Red
Hat. Los desarrolladores pueden usar Git para desplegar sus aplicaciones Web en los
diferentes lenguajes de la plataforma. OpenShift se encarga de mantener los servicios
subyacentes a la aplicación y la escalabilidad de la aplicación como se necesite.
* Origin, la versión de código abierto de Open Shift, utiliza Docker para la gestión de
contenedores y Kubernetes para la gestión de grupos de contenedores. Todo el código
del proyecto está disponible sobre la licencia Apache en GitHub.
* Azure DevOps: anteriormente Team Foundation Server (TFS), es un producto de
Microsoft que proporciona control de versiones, informes, gestión de requisitios,
gestion de proyectos, building automatizado y testing.

o SaaS (Software): las aplicaciones del proveedor son accesibles como servicios, el
consumidor no controla la infraestructura ni las capacidades de las aplicaciones. (Office
365, Suit de Google…)
Git: software de control de versiones, eficiencia, confiabilidad y compatibilidad del
mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de
archivos de código fuente. Comandos GIT:
• init: creará un nuevo repositorio local GIT.
• clone: se usa para copiar un repositorio
• add: agregar archivos al área de preparación.
• commit: creará una instantánea de los cambios y la guardará en el directorio git.
• config: establecer una configuración específica de usuario, como el email, user…
• status: muestra la lista de los archivos que se han cambiado junto con los archivos
que están por ser preparados o confirmados.
• push: se usa para enviar confirmaciones locales a la rama maestra del repositorio
remoto.
• checkout: crea ramas y te ayuda a navegar entre ellas.
• remote: lista los repositorios remotos.
• branch: listar, crear o borrar ramas.
• pull: fusiona todos los cambios que se han hecho en el repositorio local con el
directorio de trabajo local.
• merge: fusionar una rama con otra rama activa.
• diff: hacer una lista de conflictos.
• tag: marca commits específicos.
• log: se usa para ver el historial del repositorio listando ciertos detalles de la
confirmación.
• reset: sirve para resetear el index y el directorio de trabajo al último estado de
confirmación.
• rm: remover archivos del index y del directorio de trabajo.
• stash: guardará momentáneamente los cambios que no están listos para ser
confirmados
• fetch: buscar todos los objetos de un repositorio remoto que actualmente no se
encuentran en el directorio de trabajo local.
• show: mostrar información sobre cualquier objeto git.
• grep: permite al usuario buscar frases y palabras específicas en los árboles de
confirmación, el directorio de trabajo y en el área de preparación.

55
Bitbucket: servicio de alojamiento basado en web, para los proyectos que utilizan el sistema de
control de versiones Mercurial y Git, similar a GitHub.

TIPOS DE SOFTWARE, en función de su proximidad al hardware:


• Software de base: compuesto por programas que interactúan directamente con el hardware
del SO.
• Software de utilidad: utilizado como herramienta básica en tareas de mantenimiento,
soporte y ejecución.
• Software de aplicación: realización de tareas específicas, aplicaciones ofimáticas, software
educativo, editores de música…

* Software MDM (mobile device management): es un tipo de software que permite asegurar,
monitorizar y administrar dispositivos móviles sin importar el operador de telefonía o proveedor
de servicios. La mayoría de las MDM permiten instalar aplicaciones, localizar y rastrear equipos,
sincronizar archivos, reportar datos y acceder a dispositivos, todo esto de manera remota.
* MobileIron: un MDM que permite la seguridad y la gestión de dispositivos móviles como
teléfonos inteligentes y tabletas en un entorno empresarial, así como el acceso móvil seguro a
los datos empresariales.

7. SERVICE-ORIENTED ARCHITECTURES (SOA)


Es un estilo de arquitectura de TI que se apoya en la orientación a servicios. Un servicio es una
representación lógica de una actividad de negocio que tiene un resultado de negocio específico.
SOA se caracteriza por los principios:
• Contrato de servicios estandarizados: los servicios adhieren a un acuerdo de comunicación,
según se define en conjunto con uno o más documentos de descripción de servicios.
• Acoplamiento débil de sistemas: los servicios mantienen una relación que minimiza las
dependencias y sólo requiere que mantengan un conocimiento de uno al otro.
• Abstracción de servicios: más allá de las descripciones del contrato de servicios, los servicios
ocultan la lógica a los demás.
• Reutilización de servicios: lógica se divide en servicios para promover la reutilización.
• Autonomía de servicios: los servicios tienen control sobre la lógica que encapsulan, desde
una perspectiva de diseño y ejecución.
• Servicios sin-estado: los servicios minimizan el consumo de recursos aplazando la gestión de
la información de estado cuando sea necesario.
• Descubrimiento de servicios: los servicios se complementan con los metadatos mediante los
cuales se pueden descubrir e interpretar la eficacia.
• Composición de servicios: servicios están compuestos por partes eficazmente,
independientemente del tamaño y la complejidad de la composición.
• Granularidad de servicios: una consideración de diseño para proporcionar un ámbito óptimo
y un correcto nivel granular de la funcionalidad del negocio en una operación de servicio.
• La normalización de servicios: los servicios se descomponen a un nivel de forma normal para
minimizar la redundancia. En algunos casos, los servicios se desnormalizan para fines
específicos, como la optimización del rendimiento, el acceso y agregación.
• Optimización de servicios: los servicios de alta calidad son preferibles a los de baja calidad.
• Relevancia de servicios: la funcionalidad se presenta en un nivel de granularidad reconocido
por el usuario como un servicio significativo.

56
• Encapsulación de servicios: muchos servicios están consolidados para el uso de SOA. A
menudo, estos servicios no fueron planificados para estar en un SOA.
• Transparencia de ubicación de servicios: se refiere a la capacidad de un consumidor de
servicios para invocar a un servicio independientemente de su ubicación en la red. Esto
también reconoce la propiedad de descubrimiento (uno de los principios fundamentales de
SOA) y el derecho de un consumidor para acceder al servicio. A menudo, la idea de la
virtualización de servicios también se refiere a la transparencia de ubicación. Aquí es donde
el consumidor simplemente llama a un servicio lógico, mientras que un SOA habilita la
ejecución del componente de la infraestructura, normalmente un bus de servicios, que
mapea este servicio lógico y llama al servicio físico.

8. MICRO SERVICES ARCHITECTURE (MSA):


Desarrollo de software que consiste en construir una aplicación como un conjunto de pequeños
servicios, que se ejecutan en su propio proceso y se comunican normalmente con una API de
recursos HTTP. Cada servicio se encarga de implementar una funcionalidad, es desplegado de
forma independiente y puede estar programado en distintos lenguajes y usar diferentes
tecnologías. Características:
• Cada microservicio tiene un nombre único (URL): se usa para resolver su ubicación y debe
ser direccionable en cualquier lugar donde se ejecute (de la misma manera que DNS resuelve
una URL para un equipo en particular, su microservicio debe tener un nombre único para
que su ubicación actual sea reconocible).
• Los servicios son componentes: están separados y se comunican mediante mecanismos
como los servicios web o los RPC en lugar de usar llamadas a funciones en memoria.
• Organizada en torno a las funcionalidades del negocio: el sistema se divide en distintos
servicios donde cada uno está organizado en torno a una capacidad del negocio. Es muy
importante limitar la responsabilidad de cada servicio. Cada servicio implementa toda la
funcionalidad del negocio que agrupa desde la interfaz de usuario, la persistencia en el
almacenamiento y cualquiera de las colaboraciones externas.
• Productos, no proyectos: se sigue la idea de que un equipo debe estar a cargo de un
componente (servicio) durante todo el ciclo de vida del mismo, desde la etapa de diseño y
construcción, la fase de producción y hasta la de mantenimiento. Esta mentalidad se acopla
bien con la vinculación a una capacidad del negocio. En lugar de ver el software como un
conjunto de funcionalidades terminadas se ve como una relación continua, esto es facilitado
por el bajo nivel de granularidad que ofrecen los microservicios.
• Extremos inteligentes, tuberías bobas: las aplicaciones creadas desde microservicios
pretenden ser tan disociadas y cohesivas como sea posible, ellas poseen su propia lógica de
dominio y actúan como filtros en el clásico sentido UNIX: recibe una solicitud, aplica la lógica
apropiada y produce una respuesta. Estos pasos son coreografiados usando protocolos
simples (típicamente HTTP con REST o mensajería liviana como RabbitMQ o ZeroMQ).
• Tener gobierno descentralizado permite usar tecnologías que se adapten mejor a cada
funcionalidad: con el sistema con múltiples servicios colaborativos, podemos decidir utilizar
diferentes lenguajes de programación y tecnologías dentro de cada servicio. De esta forma
podemos elegir la herramienta adecuada para cada tipo de trabajo en lugar de tener una
estandarizada.
• Gestión de datos descentralizada: los microservicios prefieren dejar a cada servicio que
gestione su propia base de datos, sean estas diferentes instancias de la misma tecnología
de base de datos o sistemas de base de datos completamente diferentes.

57
El estilo de microservicios tiene implicaciones en el manejo de las actualizaciones las cuales
tradicionalmente han usado transacciones para garantizar la consistencia. Las transacciones
imponen un acoplamiento temporal lo que se vuelve problemático cuando hay varios
servicios. Como las transacciones distribuidas son mucho más difíciles de implementar, las
arquitecturas de microservicios promueven la coordinación no transaccional entre servicios,
con el reconocimiento explícito que la consistencia puede ser una consistencia eventual y
los problemas son compensados operativamente. El sistema merece la pena siempre y
cuando el costo de solucionar los errores sea menor que el costo de perder negocios por
una mayor consistencia. Los microservicios no obligan a tener distintas tecnologías de
almacenamiento, solo lo permiten.
• Diseño tolerante a fallos: las aplicaciones necesitan ser diseñadas de modo que puedan
tolerar las fallas de los distintos servicios. Cualquier llamada de servicio puede fallar y el
cliente tiene que ser capaz de responder a esto con la mayor facilidad y eficacia posible,
evitando los muy habituales fallos en cascada de las arquitecturas distribuidas.
• Automatización de la infraestructura: la mayoría de los productos y sistemas desarrollados
con el enfoque de microservicios han sido construidos por equipo que usan entrega
continua y su precursor la integración continua.
• Diseño evolutivo: cuando se divide el sistema en servicios hay que tener en cuenta que cada
uno tiene que poder ser reemplazado o actualizado de forma independiente. Es decir, tiene
que permitir una fácil evolución. El diseño del servicio tiene que ser de tal forma que evite
en lo posible que la evolución de los servicios afecte a sus consumidores.
AMQ de Red Hat: es una plataforma de mensajería flexible que permite la integración en
tiempo real y la conexión a Internet de las cosas (IoT).

58
TEMA 4 – ESTRUCTURAS, ALGORITMOS Y FORMATOS DE INFORMACIÓN

1. ESTRUCTURAS DE DATOS (tipos de datos más habituales):


• Estáticos (tamaño de memoria fijo definido en compilación):
o Valores lógicos (boolean): Almacenan “true” o “false”.
o Números enteros: valores numéricos enteros en formato de punto fijo.
o Números reales: valores numéricos reales (que pueden tener parte decimal) en formato
de punto flotante.
o Caracteres: letras, símbolos ASCII.
o Punteros o referencias: números enteros que hacen referencia a direcciones de
memoria, donde se supone que se almacenan otras estructuras.
o Vectores (arrays): conjuntos formados por datos del mismo tipo, estructuras de datos
contiguas, cada dato individual se denomina celda y se identifica mediante un índice.
Destacan los vectores de caracteres llamados “String” se utilizan para representar
textos.
o Registros: conjuntos formados por datos que pueden ser de distintos tipos, cada dato
individual se denominan campo y se identifica mediante un nombre.
• Dinámicos:
o Lista: tipo de datos compuesto que permite
almacenar elementos simples o compuestos
todos del mismo tipo, cada elemento va
seguido de otro del mismo tipo o de ninguno y
sus componentes.
o Pila (LIFO: Last In First Out): almacena datos y
recuperarlos de forma invertida.
o Cola (FIFO: First In First Out): almacena datos de
forma ordenada, se recupera la información
guardada en el orden en que se almacenó.
o Árbol: organiza datos jerárquicamente, cada
dato (llamado nodo) padre tiene asociados un
conjunto de datos (nodos) hijos.
o Grafos: parecidos a los árboles, pero cada nodo
puede estar asociado con cualquier otro nodo o
nodos y consigo mismo.
Todas estas estructuras se utilizan para almacenar información en la memoria principal, para
guardar la información en los discos se utilizan unas estructuras llamadas ficheros y tienen la
misma estructura que la memoria principal.

2. TIPOS ABSTRACTOS DE DATOS


Los tipos de datos abstractos (TDA) son una arquitectura de información compuesta por la
abstracción de datos y procesos (llamado implementación de los mismos). Son una colección de
operaciones definidas sobre un conjunto de datos para el modelo de datos, creadas a partir de
arrays. Estas estructuras se dividen en:

59
• Lista: estructura de datos secuencial, sus datos se ordenan de forma consecutiva. Se
clasifican, por la manera de acceder al siguiente elemento en:
o Lista densa: la propia estructura determina cual es el siguiente elemento de la lista.
o Lista enlazada: la posición del siguiente elemento de la estructura la determina el
elemento actual, es dinámica, su tamaño cambia durante la ejecución del programa. Es,
a su vez, un elemento de información y un enlace hacia una lista (un nodo).
• Pila (LIFO: Last In First Out): estructura de datos secuencial de acceso restrictivo a sus
elementos, la recesividad de simula en un ordenador con la ayuda de una pila.
• Cola (FIFO: First In First Out): estructura de datos secuencia l de acceso restrictivo, el primero
que llegue será el primeo en entrar.
• Arbol: estructura de datos no secuencial, un elemento o clave de información con (nodo)
más un numero finito de estructuras tipo árbol llamadas subárboles, si cada nodo tiene un
número de hijos igual o inferior a 2, será un árbol binario y si las alturas de los dos subárboles
de todo nodo difieren a lo sumo en 1 será un árbol binario balanceado (AVL). Por el contrario
si no tienen ningún nodo se llama árbol vacío o nulo.
o Conceptos sobre arboles:
▪ Raíz: nodo superior de un árbol (no tiene antecesor).
▪ Hijo: nodo conectado directamente con otro superior a través de una rama.
▪ Padre: nodo conectado directamente con otro inferior a través de una rama.
▪ Hoja: nodo que no tiene hijos.
▪ Nodo interno: aquel que tiene al menos un hijo.
▪ Grado de un nodo: número de hijos directos que tiene.
▪ Altura de un nodo: número de ramas en el camino más largo entre ese nodo y una
hoja.
▪ Grado de un árbol: igual al grado del nodo con más hijos.
▪ Altura de un árbol: igual a la altura de su raíz.
▪ Nivel: 1 + (el número de ramas entre el nodo y la raíz).
▪ Anchura: el mayor valor del número de nodos que hay en
un nivel.
o Recorridos en arboles binarios:
▪ Recorrido preorden: procesar primero la raiz, después
procesar el subárbol izquierdo y por último el subárbol
derecho.
▪ Recorrido inorden: procesa el subárbol izquierdo hacia
arriba, con su raiz, y después el subárbol derecho hacia
abajo con su raíz.
▪ Recorrido postorden: primero el subárbol
izquierdo, después el subárbol derecho, y por
último el nodo actual. Permite borrar el árbol
de forma consistente.
• Grafo: conjunto de elementos llamados vértices o nodos que se encuentran unidos entre si
mediante enlaces llamadas aristas. Terminología:
o Camino: lista de vértices en la que dos elementos sucesivos están conectados por una
arista del grafo.
o Grafo conexo: existe un camino desde cualquier nodo del grafo hasta cualquier otro.

60
o Camino simple: camino entre dos nodos en el que ningún nodo ser repite, si tiene como
primer y último nodo el mismo se denomina ciclo.
o Grafo completo: Grafo que cuenta con todas las aristas posibles, si le falta poco para ser
completo será un grafo denso mientras que si tiene pocas aristas será disperso.
o Grafo dirigido: las aristas llevan asociado un sentido de desplazamiento, cuando la arista
se puede recorrer en cualquier sentido, hablamos de grafos no dirigidos.
o Grafo ponderado: las aristas tienen un coste asociado denominado peso.

Árbol recubridor (o árbol de expansión): dado un grafo conexo y no dirigido, es un subgrafo que
tiene que ser un árbol y contener todos los nodos (vertices) del grafo inicial.
* Kruskal: algoritmo de la teoría de grafos para encontrar un árbol recubridor mínimo en un
grafo conexo y ponderado.

3. ORGANIZACIONES DE FICHEROS
3.1. CONCEPTOS Y DEFINICIONES
• Memoria principal: poca capacidad de almacenamiento, volátil y de acceso rápido.
• Memoria secundaria: capacidad de almacenamiento ilimitada, la información esta
almacenada permanentemente y el acceso es lento, ya que la información tiene que ser
transportada desde el dispositivo externo hasta la memoria principal, el área de memoria
principal destinada a recibir esta información se llama “Buffer”.
• Registro lógico: colección de información relativa a una entidad particular va a contener a
todos aquellos campos lógicamente relacionados referentes a una determinada entidad.
• Archivo o fichero: colección de registro relacionad entre si con aspectos en común y
organizados. Los datos en los archivos deben estar organizado de tal forma que puedan ser
recuperado fácilmente actualizaos o borrados.
• Base de datos: colección de archivos a los que puede accederse por un conjunto de
programas y contiene todos ellos datos relacionados.
• Clave: campo o conjunto de campos de dato que identifica al registro y lo diferencia del
resto de registros del fichero.
• Registro activo: registro lógico que va a procesarse en la siguiente operación del fichero.
• Apuntador: marca interna que siempre apunta al registro activo.
• Registro físico o bloque: la cantidad más pequeña de datos que puede transferirse en una
operación de entrada/salida. La adaptación consiste en empaquetar en cada bloque tantos
registros lógicos como se pueda, el empaquetamiento puede ser de tipo fuerte o débil,
según se permita o no aprovechar el sobrante de un bloque, situando registros a caballo
entre dos bloques contiguos.
• Factor de bloqueo: el número de registros lógicos que puede contener un registro físico.

3.2. CLASIFICACION DE FICHEROS


• Ficheros permanentes: contiene datos relevantes para una aplicación.
o Ficheros maestros: estado actual de los datos (fichero de clientes actuales de un banco).
o Ficheros constantes: datos fijos para la aplicación (el fichero de códigos postales).
o Ficheros históricos: datos que fueron actuales en el pasado (fichero de clientes que se
han dado de baja).

61
• Ficheros temporales: datos relevantes para un proceso so programa, se utilizan para
actualizar los ficheros permanentes.
o Ficheros de movimiento: almacenan resultados de un programa que han de ser
utilizados por otro, dentro de una misma tarea.
o Ficheros de maniobras: almacenar datos propios de un programa que este no puede
conservar en memoria principal, por falta de espacio en esta (programas de cálculo,
editores…).
o Ficheros de resultados: almacenar datos elaborados que van a ser transferidos a un
dispositivo de salida.

3.3. ORGANIZACIÓN Y ACCESO


La manera en que los datos son estructurados y almacenados internamente en el fichero se
establece durante la fase de creación del mismo, muy dependiente del soporte físico. Hay dos
tipos de soportes:
• Soportes secuenciales: los registros están dispuestos físicamente uno a continuación de
otro, se necesita pasar por todos los anteriores a él.
• Soportes direccionables: localizan a un registro directamente por su información (clave) sin
tener que pasar por todos los anteriores.
El acceso es el procedimiento necesario que debemos seguir para situarnos sobre un registro,
dos tipos de acceso:
• Acceso secuencial: acceso a un archivo según el orden de almacenamiento.
• Acceso directo: acceso a un registro determinado sin que ello implique la consulta de los
registros precedentes.

3.3.1. TIPOS DE ORGANIZACIONES FUNDAMENTALES


• Organización secuencial: ficheros caracterizados porque los registros que lo forman se
escriben o graban sobre el soporte de almacenamiento en posiciones de memoria
físicamente contiguas, sin dejar huecos o espacio libres entre ellos, el acceso a los datos en
este tipo de ficheros es siempre secuencial. Variantes:
o Organización secuencial encadenada: junto a cada registro se almacena un puntero a la
dirección del registro siguiente.
▪ Desventajas:
- Los ficheros se almacenan secuencialmente según el orden de llegada, sin
ninguna secuencia lógica.
- Eliminaciones de registros se efectúan marcando el registro de manera que sea
ignorando, aunque siga existiendo, lo que deteriora progresivamente el fichero.

o Organización secuencial indexada: la información se gestiona mediante tablas, que


contienen las direcciones de los datos a los que se puede acceder secuencialmente,
formado por tres zonas, denominadas áreas primaria, de índices y de excedentes:
▪ En el área primaria se encuentran los registros ordenados según el valor de su clave.
El acceso a cada registro se realiza en una doble operación que consiste en:
1. Acceder directamente al segmento donde se ubica el registro buscado.
2. Una vez localizado, accedemos secuencialmente a los registros contenidos en
él.

62
▪ El área de índices tiene la misma estructura que un fichero secuencial puto done
cada registro contiene dos campos, el primer campo contiene la clave del último
registro de cada segmento y el segundo campo contiene la dirección de entrada a
cada uno de los segmentos.
▪ El área de excedentes alberga todos aquellos registros que no han tenido cabida en
el área primaria.
El proceso a seguir para realizar una consulta por clave sin necesidad de leer los registros
que le anteceden es:
1. Leer secuencialmente las claves en la zona de índices hasta encontrar una mayor o
igual a la del registro a buscar.
2. Leer secuencialmente el área primaria a partir de la dirección obtenida hasta
encontrar el registro buscado.

▪ Ventajas:
- Especialmente útil cuando se debe combinar consultas a registros concretos y el
procesamiento secuencial de todo el archivo.
▪ Desventajas:
- Imposibilidad de realizar actualizaciones, no permite la inserción de nuevos
registros en el área primaria después de la creación del fichero.

• Organización directa o aleatoria: los registros se sitúan en el fichero y se accede a ellos a


través de un identificativo o clave que indica la posición del registro dentro del fichero y la
posición de memoria donde está ubicado. No necesita área de desbordamiento.
o Ventajas:
▪ Cada posición solamente puede ser ocupada por un registro.
▪ Es muy rápido el acceso a los registros individuales.
o Desventajas:
▪ Gran cantidad de huecos dentro del fichero (desaprovechamiento).
▪ Para la consulta total de un fichero hay que analizar todas las posiciones de memoria,
aunque algunas estén vacías.

3.4. INDICES
Un índice para un archivo funciona como el catálogo de libros de una biblioteca. Donde si se
quiere buscar algún libro se busca por el índice deseado. De este modo, podremos mirar
directamente en ese índice sin necesidad de recorrer completamente todos los libros de la
biblioteca. Tipos básicos de índices:
• Índices ordenados: Estos índices están basados en una disposición ordenada de los valores.
o Índices primarios: todos los archivos están ordenados secuencialmente según el campo
clave (se denominan archivos secuenciales indexados). Estos los empleamos en aquellas
aplicaciones que demandan un procesamiento secuencial del archivo completo, así
como un acceso directo a sus registros.
o Índice denso: en el cual aparece un registro índice para cada valor de la clave búsqueda
en el archivo. El registro índice contiene el valor de la clave y un puntero al primer
registro con ese valor de la clave de búsqueda.

63
o Índice disperso: solo se crea un registro índice para algunos de los valores. Al igual que
en los índices densos, cada registro índice contiene un valor de la clave de búsqueda y
un puntero al primer registro con ese valor de la clave. Para localizar un registro se busca
la entrada del índice con el valor más grande que sea menor o igual que el valor que se
está buscando.
A pesar de ser más rápido localizar un registro si se usa un índice denso, a veces es mejor
utilizar el esquema de índice disperso para utilizar un espacio más reducido y un
mantenimiento adicional menor para las inserciones y borrados.
o Índices multinivel: incluso si se usan índices dispersos, el propio índice podría ser
demasiado grande para un procesamiento eficiente.
• Índices secundarios: un indice secundario sobre una clave candidata es como un indice
denso primario, excepto que los registros apuntados apuntados por los sucesivos valores
del indice no estan almacenados secuencialmente. En este esquema, debemos usar un nivel
adicional de indireccion para implementar los indices secundarios sobre claves de busqueda
que no sean claves candidatas. Los punteros a estos indices no apuntan directamente al
archivo. En vez de eso, cada puntero apunta a un cajon que contiene punteros al archivo.
• Índices asociativos (hash): Estos índices están basados en una distribución uniforme de los
valores a través de una serie de cajones. El valor asignado a cada cajón está determinado
por una función de hashing.

4. ALGORITMOS

Complejidad algorítmica: cantidad de recursos que necesita un algoritmo para resolver un


problema.

• Algoritmos de busqueda: se emplean para la localización de los datos, existe un conjunto de


datos sobre donde nos interesara realizar una consulta o modificación y debemos obtener
la posición. Principales algoritmos de búsqueda:
o Búsqueda secuencial: recorrer y examinar cada uno de los elementos del array hasta
encontrar el elemento buscado.
o Búsqueda binaria o dicotómica: para utilizar este algoritmo el array debe estar
ordenado, la búsqueda consiste en dividir el array por su elemento medio en dos
subarrays más pequeños y comprar el elemento con el del centro, si coinciden la
búsqueda termina, si el elemento es menor debe estar en la mitad izquierda, si es mayor
en la derecha.
o Búsqueda indirecta: búsqueda de otro objeto intermedio que mantenga una relación
espacial con el objeto buscado, demostrando una mayor eficiencia.
o Búsqueda mediante transformación de claves (hashing): aumenta la velocidad de
búsqueda, no requiere que los elemento estén ordenaos, consiste en asignar a cada
elemento un índice mediante una transformación del elemento, ser realiza mediante
una función de conversión llamada hash.
• Algoritmos de ordenación: Organizar ciertos datos (normalmente arrays o ficheros)
mediante una regla prefijada, puede ser:
o Selección: consiste en buscar el elemento más pequeño del array y ponerlo en primera
posición; luego, entre los restantes, sed busca el elemento más pequeño y se coloca en
segundo lugar y así sucesivamente.

64
o Inserción directa: sublista ordenada de elementos del array, insertando el resto en el
lugar adecuado para que la sublista no pierda el orden.
o Inserción binaria: mismo método que la inserción directa, excepto la búsqueda del orden
de un elemento en la sublista ordenad se realiza mediante una búsqueda binaria.
o Shell: mejora del método de inserción directa, utilizando cuando el array tiene un gran
número de elementos. No se compra a cada elemento con el de su izquierda, como en
el de inserción, sino con el que está un cierto número de lugares (llamado salto). Se van
dando pasadas hasta que el salto vale 1.
o Burbuja (Bubblesort): revisando cada elemento de la lista que va a ser ordenada con el
siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario
revisar varias veces toda la lista hasta que no se necesiten más intercambios. También
conocido como método del intercambio directo dado que solo usa comparaciones para
operar elementos, se lo considera un algoritmo de comparación.
o Ordenamiento rápido (Quicksort): el algoritmo elije un elemento del conjunto a ordenar
al que llama pivote, a partir de él resitúa los demás elementos a cada lado del mismo,
de manera que a un lado queden lo menores que él y al otro los mayores, se repite este
proceso de forma recursiva para cada sublista mientras éstas contengan más de un
elemento. Una vez terminado este proceso todos los elementos estarán ordenados.
o Ordenamiento Radix (Radix sort): se basa en la clasificación de los datos que queremos
ordenar por una clave. Dicha clave ha de ser una característica de cada dato que pueda
ser descompuesta en elementos más pequeños que permitan clasificar los elementos
poco a poco (unidades, decenas, centenas…). Para ordenar los elementos tenemos que
crear un número finito de urnas, de forma que en cada urna los elementos estén
relacionados por la clave y que así podamos separarlos.

• Algoritmos de compresión: pueden ser “sin perdida” (procedimiento de codificación


que tenga como objetivo representar cierta cantidad de información utilizando u
ocupando un espacio menor, siendo posible una reconstrucción exacta de los datos
originales) o “con perdida” (procedimiento de codificación que tenga como objetivo
representar cierta cantidad de información utilizando una menor cantidad de la misma,
siendo imposible una reconstrucción exacta de los datos originales).
o TDC (Codificación por transformación): es un tipo de compresión de datos con
pérdida para datos "naturales" como señales de audio o imágenes fotográficas.
o Codificación Huffman: es un algoritmo usado para compresión de datos sin
perdida. El término se refiere al uso de una tabla de códigos de longitud variable
para codificar un determinado símbolo (como puede ser un carácter en un
archivo), donde la tabla ha sido rellenada de una manera específica basándose en
la probabilidad estimada de aparición de cada posible valor de dicho símbolo.
o LZW (Lempel-Ziv-Welch): un algoritmo de compresión sin pérdida, se basa en crear
sobre la marcha, de manera automática y en una única pasada un diccionario de
cadenas que se encuentren dentro del texto a comprimir mientras al mismo
tiempo se procede a su codificación.
o RLE (Run-length encoding): es una forma muy simple de compresión de datos en
la que secuencias de datos con el mismo valor consecutivas son almacenadas como
un único valor más su recuento.

65
5. FORMATOS DE INFORMACION

• Ficheros con información de texto: solo contienen ASCII estándar, no presentan problemas
de presentación, los más notables son los ficheros readme, léame… se incluyen los formatos
de la web (HTML) que son también texto ASCII.
▪ .pfx (Personal Information Exchange): se utiliza en los servidores de Windows para
los archivos que contienen tanto los archivos de clave pública (sus archivos de
certificados SSL) y su clave privada que corresponde a sus certificados (generado por
el servidor).
▪ .csv (comma-separated values): tipo de documento en formato abierto sencillo para
representar datos en forma de tabla, en las que las columnas se separan por comas
y las filas por saltos de línea.
• Texto formateado: el contenido es principalmente ASCII, pero acompañado de múltiples
caracteres específicos de control de formato y presentación (docx, pdf, xls,…).
• Ficheros con información de imagen: ficheros con imágenes estáticas o animadas y formatos
para diseño gráfico, dos formas básicas para almacenar imágenes: ráster y vectorial.
o Ráster: consiste en descomponer la imagen en una serie de puntos y almacenar el color
y brillo de cada uno de estos puntos, más definición cuanto mayor sea el número de
puntos (JPG, PNG, ICO, JNG, MNG…).
▪ JPEG: algoritmo de compresión con perdida, flexibilidad a la hora de ajustar el grado
de compresión. Convierte la imagen desde su modelo de color RGB a otro llamado
YCbCr. Puede reducirse la información cromática a la mitad, 4:2:2 (reducir en un
factor de 2 en dirección horizontal), con lo que el color tiene la mitad de resolución
(en horizontal) y el brillo sigue intacto. Otro método, muy usado, es reducir el color
a la cuarta parte, 4:2:0, en el que el color se reduce en un factor de 2 en ambas
direcciones, horizontal y vertical. Si la imagen de partida estaba en escala de grises
(blanco y negro), puede eliminarse por completo la información de color, quedando
como 4:0:0.
- HSB (Hue, Saturation, Brightness – Matiz, Saturación, Brillo).
- Resolución: La resolución de una imagen es el número de píxeles por pulgada
que contiene. Ésta se expresa en PPP (puntos por pulgada en español) o DPI
(dots per inch en inglés).
- Profundidad de color: o bits por píxel (bpp) es un concepto de la computación
gráfica que se refiere a la cantidad de bits de información necesarios para
representar el color de un píxel en una imagen digital.
▪ PNG: nivel de compresión que casi no presenta perdidas (predicción del valor de
pixel), permite el uso de transparencias.
▪ TIFF: manejar imágenes y datos en un solo archivo, sin pérdidas.
▪ GIF: baja calidad y ofrece una escasa profundidad de colores, permite unir varios
cuadros para formar una animación.
▪ EXIF (Exchangeable Image File Format): es una especificación para formatos de
archivos de imagen usado por las cámaras digitales.
▪ HEIF (High Efficiency Image File Format): es un formato de archivo informático para
almacenar imágenes y secuencias de estas. Realmente es un contenedor flexible de
imágenes con compresión, considerado actualmente uno de los posibles sustitutos
de JPG.

66
o Vectorial: cada elemento es definido por sus propiedades matemáticas, una línea entre
dos puntos puede ser definida como una recta, usadas para dibujo de tipo técnico,
mapas geográficos (DWG, DWF,…).
▪ .swf (Small Web Format): es un formato de archivo de gráficos vectoriales, pueden
ser creados por Flash o por aplicaciones de software libre. Son ejecutados sobre el
navegador mediante el plugin de Flash player.
▪ SVG (Scalable Vector Graphics): es un lenguaje usado para dibujar y representar
gráficos vectoriales escalables, imágenes y logotipos, o sea que son gráficos que
pueden manipularse con CSS y JavaScript.
• Ficheros con información compuesta: documentos que integran texto con imágenes o
gráficos (PostScript, PDF,…).
• Ficheros con información comprimida: se desarrollaron distintos algoritmos de compresión
(ZIP, RAR,…).
• Ficheros de audio: multitud de “códecs” (MP3, MIDI,…).
• Ficheros ejecutables: pueden ser ejecutados directamente en el ordenador, alguno tiene la
sola finalidad de desempaquetar un cierto contenido que vienen incluido en el propio
fichero (EXE, COM,…).
“.ods” extensión del equivalente a Excel en Oracle.

67
TEMA 5 – MODELO CONCEPTUAL, REGLAS DE MODELIZACIÓN Y DFD

1. DIAGRAMAS DE FLUJO DE DATOS Y LENGUAJES DE BASES DE DATOS


1.1 DIAGRAMAS DE FLUJO DE DATOS
Representan gráficamente los límites del sistema y la lógica de los procesos, estableciendo qué
funciones hay que desarrollar. Además, muestra el flujo o movimiento de los datos a través del
sistema y sus transformaciones como resultado de la ejecución de los procesos. El diagrama de
flujo de datos se compone de los siguientes elementos:
• Proceso: representa una funcionalidad que tiene que llevar a cabo el sistema
para transformar o manipular datos. El proceso debe ser capaz de generar los
flujos de datos de salida a partir de los de entrada, más una información
constante o variable al proceso.
El proceso nunca es el origen ni el final de los datos, puede transformar un flujo de datos de
entrada en varios de salida y siempre es necesario como intermediario entre una entidad
externa y un almacén de datos. Un proceso actualiza o consulta un almacen, pero nunca
controla un almacén.
Proceso primitivo: es un proceso que no necesita descomposición, solo se detalla su entrada
y su salida.

• Almacén de datos: representa la información en reposo utilizada por el


sistema, independientemente del sistema de gestión de datos (un fichero,
base de datos, archivador…). Contiene la información necesaria para la
ejecución del proceso.
El almacén no puede crear, transformar o destruir datos, no puede estar comunicado con
otro almacén o entidad externa y aparecerá por primera vez en aquel nivel en que dos o
más procesos accedan a él.
• Entidad externa: representa un ente ajeno al sistema que proporciona o
recibe información del mismo. Puede hacer referencia a departamentos,
personas, máquinas, recursos u otros sistemas. Puede aparecer varias veces
en un mismo diagrama, así ́ como en los distintos niveles del DFD para
mejorar la claridad del diagrama.
• Flujo de datos: representa el movimiento de los datos, y establece la
comunicación entre los procesos y los almacenes de datos o las entidades
externas. Un flujo de datos entre dos procesos solo es posible cuando la información es
síncrona, es decir, el proceso destino comienza cuando el proceso origen finaliza su función.
Los flujos de datos que comunican procesos con almacenes pueden ser de los tipos:
o De consulta: representan la utilización de los valores de uno o más campos de un
almacén o la comprobación de que los valores de los campos seleccionados cumplen
unos criterios determinados.
o De actualización: representan la alteración de los datos de un almacén como
consecuencia de la creación de un nuevo elemento, por eliminación o modificación de
otros ya existentes.
o De diálogo: es un flujo entre un proceso y un almacén que representa una consulta y
una actualización.

68
Existen sistemas que precisan de información orientada al control de datos y requieren flujos y
procesos de control, así ́ como los mecanismos que desencadenan su ejecución. Para que resulte
adecuado el análisis de estos sistemas, se ha ampliado la notación de los diagramas de flujo de
datos incorporando los siguientes elementos:
• Proceso de control: representa procesos que coordinan y sincronizan las actividades de
otros procesos del diagrama de flujo de datos.
• Flujo de control: representa el flujo entre un proceso de control y otro proceso. El flujo de
control que sale de un proceso de control activa al proceso que lo recibe y el que entra le
informa de la situación de un proceso. A diferencia de los flujos tradicionales, que pueden
considerarse como procesadores de datos porque reflejan el movimiento y transformación
de los mismos, los flujos de control no representan datos con valores, sino que en cierto
modo, se trata de eventos que activan los procesos (señales o interrupciones).
La descomposición por niveles se realiza de arriba abajo (top-down), es decir, se comienza en el
nivel más general y se termina en el más detallado, pasando por los niveles intermedios
necesarios. De este modo se dispondrá́ de un conjunto de particiones del sistema que facilitaran
su estudio y su desarrollo.
La explosión de un proceso de un DFD origina otro DFD y es necesario comprobar que se
mantiene la consistencia de información entre ellos, es decir, que la información de entrada y
de salida de un proceso cualquiera se corresponde con la información de entrada y de salida del
diagrama de flujo de datos en el que se descompone, para ello se debe comprobar:
• No falten flujos de datos de entrada o salida que acompañaban al proceso del nivel superior.
• No aparezca algún flujo que no estuviese ya asociado al proceso de nivel superior.
• Todos los elementos del DFD resultante deben estar conectados directa o indirectamente
con los flujos del proceso origen.

1.2. NIVELES DE UN DFD


• Nivel 0 “diagrama de contexto”: se caracterizan todas las interacciones que realiza un
sistema con su entorno (entidades externas), estas pueden ser otros sistemas, sectores
internos a la organización, o factores externos a la misma. Se dibuja un solo proceso que
representa al sistema en cuestión y se escribe su nombre en dicha burbuja como un
sustantivo común más adjetivos. De él solamente parten los flujos de datos que denotan las
interrelaciones entre el sistema y sus agentes externos, no admitiéndose otros procesos ni
almacenamientos en el dibujo, ya que estos son procesos estructurados y ordenados,
además posee una cardinalidad que varía según la función que desempeñe cada diagrama.
• Nivel 1 “diagrama de nivel superior”: se plasman todos los procesos que describen al
proceso principal. En este nivel los procesos no suelen interrelacionarse directamente, sino
que entre ellos debe existir algún almacenamiento o entidad externa que los una. Esta regla
de construcción sirve como ayuda al analista para contemplar que en un nivel tan elevado
de abstracción es altamente probable que la información que se maneja requiera ser
almacenada en el sistema.
• Nivel 2 “diagrama de detalle o expansión”: comienzan a explotarse las excepciones a los
caminos principales de la información dado que aumenta progresivamente el nivel de
detalle. De aquí en adelante se permiten los flujos entre procesos. Puede considerarse el
máximo para ser validado en forma conjunta con el usuario dado que en los niveles
posteriores el alto grado de complejidad del diagrama.
69
1.2. DISEÑO DE UNA BASE DE DATOS / DISEÑO DE UN SGBD
• Diseño de una base de datos:
o Diseño conceptual: se confecciona a partir de la especificación de requerimientos y su
resultado es el esquema conceptual de la base de datos (una descripción de alto nivel
de la estructura de la base de datos, independiente del software que se use para
manipularla).
o Diseño lógico: se confecciona a partir del diseño conceptual y da como resultado una
descripción de la estructura de la base de datos que puede procesar el software DBMS.
o Diseño físico: se confecciona a partir del esquema lógico y da como resultado una
descripción de la implementación de una base de datos en la memoria secundaria,
describe la estructura de almacenamiento y los métodos usados para tener un acceso
efectivo a los datos.
• Diseño de un Sistema Gestor de Bases de Datos (el objetivo de la arquitectura de tres niveles
es separar la vista de los usuarios, y así ocultar la complejidad de la base en tres niveles):
o Nivel interno (Almacenamiento Físico): implica la forma en que la base de datos se
representa físicamente en el sistema informático. En él se describe cómo los datos se
almacenan en la base de datos y en el hardware del equipo.
o Nivel conceptual: forma de describir los datos que se almacenan dentro de la base de
datos y cómo los datos están relacionados entre sí. Describe la estructura de todos los
usuarios y es independiente de hardware y software.
o Nivel externo (Vistas de usuario): describe una parte de la base de datos que es
relevante para un usuario en particular. Excluye datos irrelevantes, así como los datos
que el usuario no está autorizado a acceder.

2. MODELO ENTIDAD/RELACIÓN
Es una herramienta para el modelo de datos, la cual facilita la representación de entidades de
una base de datos y las relaciones entre ellas. Se suele desarrollar en dos fases:
1. Se elabora el diagrama entidad/relación.
2. Se completa el modelo con listas de atributos y una descripción de otras restricciones que
no se pueden reflejar en el diagrama.
El modelo está basado en una colección de objetos básicos (llamados entidades), de relaciones
entre esos objetos y de atributos los mismos.
• Entidad: representa un “objeto” del mundo real con existencia independiente, es decir, se
diferencia únicamente de otro objeto o cosa, incluso siendo del mismo tipo o una misma
entidad (Ejemplo: una persona se diferencia de cualquier otra persona, incluso siendo
gemelos). Todos los valores que toman los atributos de la entidad deben tener las mismas
propiedades. Existen dos clases de entidades:
o Fuertes: tienen existencia por sí mismos. Nombre

o Débiles: su existencia depende de otro tipo de entidad, si desaparece la entidad de la


que dependen, también desaparece la entidad débil. Nombre

• Relación: asociación entre entidades de la misma naturaleza (Ejemplo:


dados los conjuntos de entidades "Habitación" y "Huésped", todas las Relación

relaciones de la forma habitación-huésped, permiten obtener la


información de los huéspedes y sus respectivas habitaciones, es decir, participan en el
conjunto). Las relaciones se caracterizan por tres propiedades:

70
o Grado: número de entidades participantes en la relación. (Si relacionan una entidad
consigo misma se llaman reflexivas).
o Cardinalidad: número de entidades con la cual otra entidad puede asociar mediante una
relación binaria, pueden ser de tres tipos: 1-1, 1-N y N-N.
Además, se dice que una relación es exclusiva cuando la existencia de una relación entre dos
tipos de entidades implica la no existencia de las otras relaciones.
• Atributos: unidad básica de información, características que definen o identifican a una
entidad, cada entidad tiene valores específicos asignados para cada uno de sus atributos, de
esta forma, es posible su identificación unívoca. (Ejemplo: a la colección de entidades
“alumnos”, con el siguiente conjunto de atributos en común, (id, nombre, edad, semestre),
pertenecen las entidades:
o (1, Ana, 15 años, 2), (2, María, 19 años, 5), ... Atributo

Los atributos identificativos permiten diferenciar a una instancia de la entidad de otra


distinta (en el ejemplo, el ID de cada alumno). Para cada atributo, existe un dominio del
mismo, este hace referencia al tipo de datos que será almacenado a restricciones en los
valores que el atributo puede tomar. Tipos de atributos:
o Atributos univaluados: distingue de manera única una ocurrencia de entidad del resto
de ocurrencias de entidad (su nombre aparece subrayado).
o Atributos multivaluados: pueden tomar más de un valor.
o Atributos compuestos: su valor se puede calcular a partir de valores de atributos
relacionados y a su vez puede descomponerse en varios atributos.

3. MODELO RELACIONAL
Un SBDRelacional se caracteriza por presentar sus datos siguiendo las Reglas de Codd:
• Regla 0 (fundacion): Cualquier sistema que se proclame como relacional, debe ser capaz de
gestionar sus bases de datos enteramente mediante sus capacidades relacionales.
• Regla 1 (informacion): la información en la base de datos es representada
unidireccionalmente por valores en posiciones de las columnas dentro de filas de tablas.
Toda la información en una base de datos relacional se representa explícitamente en el nivel
lógico exactamente de una manera: con valores en tablas.
• Regla 2 (acceso garantizado): Todos los datos deben ser accesibles sin ambigüedad. Cada
valor escalar individual en la base de datos debe ser lógicamente direccionable
especificando el nombre de la tabla, la columna que lo contiene y la clave primaria.
• Regla 3 (tratamiento sistematico de valores nulos): el SGBD debe permitir que haya campos
nulos. Debe tener una representación de la «información que falta y de la información
inaplicable» que sea sistemática y distinta de todos los valores regulares.
• Regla 4 (catálogo dinámico): El sistema debe soportar un catálogo en línea, el catálogo
relacional, que da acceso a la estructura de la base de datos y que debe ser accesible a los
usuarios autorizados. El catálogo de sistema es una colección de tablas especiales en una
base de datos que son propiedad, están creadas y son mantenidas por el propio DBMS. Estas
tablas del sistema contienen datos que describen la estructura de la base de datos.
• Regla 5 (sublenguaje global de datos): El sistema debe soportar por lo menos un lenguaje
relacional que tenga una sintaxis lineal, pueda ser utilizado de manera interactiva y tenga
soporte de operaciones de definición de datos, operaciones de manipulación de datos
(actualización así como la recuperación), de control de la seguridad e integridad y
operaciones de administración de transacciones.

71
• Regla 6 (actualización de vistas): Todas las vistas que son teóricamente actualizables deben
poder ser actualizadas por el sistema.
• Regla 7 (alto nivel de inserción, actualización y borrado): los datos no solo se pueden
recuperar de una base de datos relacional a partir de filas múltiples y/o de tablas múltiples,
sino que también pueden realizarse inserciones, actualizaciones y borrados sobre varias
tuplas y/o tablas al mismo tiempo y no solo sobre registros individuales.
• Regla 8 (independencia física de los datos): Los programas de aplicación y actividades del
terminal permanecen inalterados a nivel lógico aunque se realicen cambios en las
representaciones de almacenamiento o métodos de acceso.
• Regla 9 (independencia lógica de los datos): Los programas de aplicación, actividades del
terminal y vistas, permanecen inalterados a nivel lógico aunque se realicen cambios a las
tablas base que preserven la información.
• Regla 10 (independencia de la integridad): Las reglas de integridad* se deben especificar por
separado de los programas de aplicación y almacenarse en la base de datos. Debe ser posible
cambiar esas restricciones sin afectar innecesariamente a las aplicaciones existentes.
• Regla 11 (independencia de la distribución): La distribución de porciones de base de datos
en distintas localizaciones debe ser transparente para los usuarios de la base de datos.
• Regla 12 (no subversion): Si el sistema proporciona una interfaz de bajo nivel de registro,
aparte de una interfaz relacional, esa interfaz de bajo nivel no debe permitir su utilización
para subvertir el sistema. Por ejemplo para sortear las reglas de seguridad relacional o las
restricciones de integridad (no puede tener backdoors).

3.1 CONCEPTOS DEL MODELO RELACIONAL


• Relación: en una BDR, todos los datos se almacenan y se accede a ellos por medio de
relaciones previamente establecidas, las relaciones que almacenan datos son llamadas
relaciones base y su implementación es llamada "tabla", para que una tabla sea considerada
como una relación tiene que cumplir con algunas restricciones:
o Cada tabla debe tener un solo tipo de filas.
o Todos los datos en una columna deben ser del mismo tipo (dominio).
o Nunca habrá valores multivaluados (el valor individual de la intersección de una fila y
una columna será único).
• Dominio: describe un conjunto de posibles valores para cierto atributo.
• Atributo: es una etiqueta de una relación (tabla), deben estar explícitamente relacionados
con un nombre en todas las operaciones.
• Grado: número de atributos de una relación.
• Cardinalidad: número de tuplas (filas) de la relación.

3.2. REGLAS DE INTEGRIDAD


La extensión de las relaciones (es decir, las tuplas que contienen las relaciones) deben tener
valores que reflejen la realidad correctamente (en la relación de esquema EMPLEADOS(DNI,
nombre, apellido, sueldo), una tupla que tiene un valor de –1.000 para el sueldo probablemente
no tiene sentido, porque los sueldos no pueden ser negativos). En general, las condiciones que
garantizan la integridad de los datos pueden ser de dos tipos:
• Restricciones de integridad de usuario: condiciones específicas de una base de datos
concreta; es decir, son las que se deben cumplir en una base de datos particular con unos
usuarios concretos, pero que no son necesariamente relevantes en otra base de datos.
• Reglas de integridad de modelo: son condiciones más generales, propias de un modelo de
datos, y se deben cumplir en toda base de datos que siga dicho modelo.

72
o Regla de integridad de unicidad de la clave primaria: establece que toda clave primaria
que se elija para una relación no debe tener valores repetidos.
o Regla de integridad de entidad de la clave primaria: dispone que los atributos de la clave
primaria de una relación no pueden tener valores nulos.
o Regla de integridad referencial: está relacionada con el concepto de clave foránea.
Concretamente, determina que todos los valores que toma una clave foránea deben ser
valores nulos o valores que existen en la clave primaria que referencia.
o Regla de integridad de dominio: implica que todos los valores no nulos que contiene la
base de datos para un determinado atributo deben ser del dominio declarado para dicho
atributo (enteros, string,...).

Asociado al concepto de integridad, se define el concepto de clave:


o Clasificación de Claves: cada relación puede tener uno o más campos cuyos valores
identifican de forma única cada registro de dicha tabla, es decir, no pueden existir dos o más
registros diferentes cuyos valores en dichos campos sean idénticos. Este conjunto de
campos se llama clave única. Pueden existir varias claves únicas en una determinada tabla,
y a cada una de estas suele llamársele candidata a clave primaria.
o Clave primaria: una clave primaria es una clave única (puede estar conformada por uno
o más campos de la tabla) elegida entre todas las candidatas que define unívocamente
a todos los demás atributos de la tabla para especificar los datos que serán relacionados
con las demás tablas. La forma de hacer esto (relación entre tablas) es por medio de
claves foráneas.
o Clave externa o foránea: una clave foránea es una referencia a una clave en otra tabla,
determina la relación existente en dos tablas. Las claves foráneas no necesitan ser claves
únicas en la tabla donde están (por lo que una de ellas puede ser nula) y sí a donde están
referenciadas.
Por ejemplo, el código de departamento puede ser una clave foránea en la tabla de
empleados. Se permite que haya varios empleados en un mismo departamento, pero
habrá uno y solo un departamento por cada clave distinta de departamento en la tabla
de departamentos.
o Clave índice: las claves índice surgen con la necesidad de tener un acceso más rápido a
los datos. Los índices pueden ser creados con cualquier combinación de campos de una
tabla. Las consultas que filtran registros por medio de estos campos, pueden encontrar
los registros de forma no secuencial usando la clave índice.
Las bases de datos relacionales incluyen múltiples técnicas de ordenamiento, cada una
de ellas es óptima para cierta distribución de datos y tamaño de la relación.
Los índices generalmente no se consideran parte de la base de datos, pues son un detalle
agregado. Sin embargo, las claves índices son desarrolladas por el mismo grupo de
programadores que las otras partes de la base de datos.

4. MODELO ORIENTADO A OBJETOS


Características del modelo de programación orientado a objetos:
• Abstracción: consiste en aislar un elemento en su contexto de sus elementos que lo
acompañan.
• Encapsulamiento: poder separar la interfaz de una clase de su implementación o dicho en
otras palabras no es necesario conocer los detalles de cómo están implementados las
propiedades para poder utilizarlas.
• Herencia: es una propiedad que permite que los objetos sean creados a partir de otros ya
existentes, obteniendo características (métodos y atributos) similares a los ya existentes.

73
• Polimorfismo: hace referencia a un conjunto de métodos con el mismo nombre e igual
número de parámetros y tipos, pero que se encuentran definidos en diferentes clases.
• Sobrecarga: capacidad de un lenguaje de programación, que permite definir dos o más
métodos con el mismo nombre pero parámetros diferentes en cantidad y/o tipo.
• Modularidad: una opción importante para la escalabilidad y comprensión de programas,
además de ahorrar trabajo y tiempo en el desarrollo.
• Relación: una relación o vínculo entre dos o más entidades describe alguna interacción entre
las mismas.
4. NORMALIZACION
La normalización de bases de datos es un proceso que consiste en aplicar una serie de reglas a
las relaciones (tablas) obtenidas tras el paso del modelo entidad-relación al modelo relacional.
Con objeto de minimizar la redundancia de datos, facilitando su gestión posterior para:
• Minimizar la redundancia de los datos.
• Disminuir problemas de actualización de los datos en las tablas.
• Proteger la integridad de datos.
El proceso de normalización se basa en relaciones de dependencia entre los datos:
o Dependencia funcional reflexiva: a partir de cualquier atributo o conjunto de atributos
siempre puede deducirse él mismo (A->B). Si la dirección o el nombre de una persona están
incluidos en el DNI, entonces con el DNI podemos determinar la dirección o su nombre.
o Dependencia funcional aumentativa/completa: si A->B, entonces AC->BC (si con el DNI se
determina el nombre de una persona, entonces con el DNI más la dirección también se
determina el nombre y su dirección).
o Dependencia funcional transitiva: si A->B->C, entonces A->C (entonces entendemos que
FechaDeNacimiento determina a Edad y la Edad determina a Conducir, indirectamente
podemos saber a través de FechaDeNacimiento a Conducir).

4.1. FORMAS NORMALES


• 1FN: una entidad está en 1FN si no tiene grupos repetitivos, es decir, un atributo solo puede
tomar un único valor de un domino simple. Debe cumplir:
o No hay orden de arriba a abajo en las filas.
o No hay orden de izquierda a derecha en las columnas.
o No hay filas duplicadas.
o Cada intersección de fila y columna contiene exactamente un valor del dominio
aplicable (y nada más).
o Todas las columnas son regulares, es decir, las filas no tienen componentes como IDs de
fila, IDs de objeto, o timestamps ocultos.
• 2FN: una entidad está en 2FN si está en 1FN y todos los atributos que no forman parte de
las claves candidatas tienen dependencia funcional completa respecto de estas, es decir,
una tabla 1NF está en 2NF si y solo si, dada una clave primaria y cualquier atributo que no
sea un constituyente de la clave primaria, el atributo no clave depende de toda la clave.
• 3FN: una entidad está en 3FN si está en 2FN y todos sus atributos no principales depende
directamente de la clave primaria, es decir, no hay dependencias funcionales transitivas de
atributos no principales respecto de las claves.
o FN Boyce-Codd: es una versión de la 3FN, está en FNBC si solo existen dependencias
funcionales elementales que dependan de la clave primaria o de cualquier alternativa, es
decir, si la clave primaria está formada por un atributo y ya está en 3FN, también estará en
FNBC.

74
• 4FN: una entidad está en 4FN, si está en 3FN y no tiene dependencias funcionales
multivaluadas no triviales.
• 5FN: una entidad está en 5FN, si está en 4NF y cada dependencia de unión (join) en ella es
implicada por las claves candidatas.

5. TRANSFORMACION DEL MODELO E/R A RELACIONAL


ELEMENTO DEL MODELO E/R TRANSFORMACION AL MODELO RELACIONAL
Entidad Relación (Tabla).
Entidad debil Relacion (Tabla) que tiene todos los atributos
de la entidad débil y los de la clave primaria de
la entidad propietaria en el modelo E/R.
La clave primaria está formada por los
atributos de la cave primara de la entidad
propietaria en el modelo E/R más los atributos
de la clave parcial de la entidad débil.
Relacion 1:1 Clave foránea.
Relacion 1:N Clave foránea en el lado de N.
Relacion N:M Relacion (Tabla), los atributos de la relación
serán las claves primarias de las entidades más
los atributos del propio vinculo.
La clave primaria de la relación será el conjunto
de los atributos que sean claves primarias de
las entidades relacionadas.
Relación recursiva Si es binaria (1:1 o 1:N) será una clave foránea.
Si es n-aria se crea una relación (tabla).
Clave candidata Una clave principal más el resto de claves
candidatas.
Atributos simples Atributos.
Atributos compuestos Se divide en varios atributos simples, uno por
cada atributo que lo forma.
Atributos derivados No se representan.
Atributos multivaluados Para cada atributo multivaluado se crea una
relación (tabla).
Los atributos de la relación serán la clave
primaria de la entidad a la que pertenece el
atributo multivaluado más los atributos
correspondientes al atributo multivaluado.
La clave primaria de la relación será la clave
primaria de la entidad más los atributos
correspondientes al atributo multivaluado.

75
TEMA 6 - DFD, MODELO E/R Y SGBD (RELACIONALES, OBJETOS Y NOSQL)

1. GESTION DE BASES DE DATOS


Una base de datos es una colección de datos relacionados que pueden registrarse y que tienen
un significado implícito (nombres, números de teléfono, direcciones…). Tiene una fuente de la
cual provienen los datos, grado de interacción con los sucesos del mundo real, y audiencia que
esta activamente interesada en el contenido, puede tener cualquier tamaño y complejidad,
puede crearse y mantenerse bien mediante un conjunto de programas de aplicación diseñados
específicamente para dicha tarea o bien mediante un sistema de gestión de base de datos.
1.1 DBMS (DataBase Management System)
Es una colección de programas que permiten a los usuarios crear y mantener una base de datos,
es un software de propósito general que facilita los procesos de definición, construcción y
manipulación de bases de datos. El enfoque de bases de datos, la estructura y organización
detallada de cada fichero se almacena en el catálogo, y el DMBS extrae del catálogo los detalles
de la organización cuando estos son requeridos por el software DBMS.
La característica que permite la independencia de programas-datos y de programas-operaciones
se llama abstracción de datos, un DBMS ofrece a los usuario una representación conceptual de
los datos, un modelo de datos es un tipo de abstracción de datos que se utiliza para proporcionar
esta representación conceptual, el modelo de datos utiliza conceptos lógicos como las
propiedades e interrelaciones de objetos, el modelo de datos oculta los detalles de
almacenamiento e implementación que no interesan a la mayoría de usuario de la base de datos.
El objetivo de esta abstracción es separar las aplicaciones del usuario y la base de datos física:
• Nivel interno: esquema interno que describe la estructura física de almacenamiento de la
base de datos, emplea un modelo de datos físico y describe todos los detalles para su
almacenamiento, así como los camios de acceso para la base de datos.
• Nivel conceptual: esquema conceptual que describe la estructura de datos completa para
una comunidad de usuarios, oculta los detalles de las estructuras físicas de almacenamiento
y se concentra en describir detalles entidades, tipos de datos, vínculos, operaciones de los
usuarios y restricciones.
• Nivel externo: “de visitas”, varios esquemas externos o vistas de usuario. Cada esquema
externo describe la parte de la base de datos que interesa a un grupo de usuarios y oculta a
ese grupo el resto de la base de datos, modelo de datos de alto nivel o uno de
implementación.
Los tres esquemas no son más que descripciones de los datos, que existen realmente y están en
el nivel físico, el DBMS debe transformar una solicitud expresada en términos de un esquema
externo en una solicitud expresada en términos del esquema conceptual y luego en una solicitud
en el esquema interno. El proceso de trasformar solicitudes y resultados de un nivel a otros
denomina correspondencia o transformación (mapping).

1.2. COMPARTIMIENTO DE DATOS Y PROCESAMIENTO DE TRANSACCIONES MULTIUSUARIOS


Todo DBMS debe permitir a varios usuarios tener acceso simultaneo a la base de datos, el DBMS
debe incluir software de control de concurrencia para asegurar que cuando varios usuarios
intenten actualizar los mismos datos lo hagan de manera controlada, los DBMS deben asegurar
que todas las transacciones que se hagan sobre los datos, una vez finalizadas, tengan:

76
• Atomicity: asegurar que la transacción realizada este completa sin que exista la posibilidad
de que haya quedado a media debido al algún fallo.
• Consistency: si la base de datos estaba en un estado correcto antes del inicio de la
transacción debe acabar la transacción en un estado correcto.
• Isolation: si se están ejecutando varias transacciones simultáneamente, el sistema debe
asegurar que se realizan de manera independiente unas de otras.
• Durability: terminada la transacción, se debe asegurar que los resultados quedan registrados
en la base de datos.

1.3. CARACTERISTICAS Y COMPONENTES


Los actuales paquetes de DBMS tienen un diseño modular, arquitectura cliente-servidor, en una
arquitectura cliente-servidor básica la funcionalidad del sistema se distribuye entre dos tipos de
módulos, el módulo cliente se suele ejecutar sobre una estación de trabajo del usuario, el
módulo servidor maneja el almacenamiento, acceso, búsqueda de datos y otras funciones. La
capacidad para modificar el esquema en un nivel del sistema de base de datos sin tener que
modificar el esquema del nivel inmediato superior se denomina:
• Independencia lógica: capacidad de modificar el esquema conceptual sin tener que alterar
los esquemas externos ni los programas de aplicación. Podemos modificar el esquema
conceptual para ampliar la base de datos o para reducir la base de datos, la modificación no
deberá afectar a los esquemas externos que solo se refiera a los datos restantes. Si el DBMS
se cuenta con independencia lógica de datos, solo será preciso modificar la definición de la
vista y las correspondencias.
• Independencia física: es la capacidad de modificar el esquema interno sin tener que alterar
el esquema conceptual (o los externos). Si la base de datos aun contiene los mismos datos,
no será necesario modificar el esquema conceptual.
Todo DBMS incluye información sobre como establecer la correspondencia entre las solicitudes
y los datos entre los diversos niveles, el DBMS utiliza software adiciónales para realizar
correspondencias haciendo referencia a la información de correspondencia que se encuentra en
el catálogo.

1.4. LENGUAJES E INTERFACES DE BASES DE DATOS


Una vez que se ha completado el diseño de una base de datos y se ha elegido un DBMS para su
implementación, el primer paso será especificar los esquemas conceptual e interno de la base
de datos y cualquier correspondencia existente entre ambos:
• Leguaje de definición de datos (LDD): El DBMS contará con un compilador de LDD cuya
función será procesar las sentencias para identificar las descripciones de los elementos de
los esquemas y almacenar la descripción del esquema en el catálogo del DMBS, también
sirve para definir ambos esquemas en DBMS donde no se separen claramente los niveles.
• Lenguaje de definición de almacenamiento (LDA): En sistemas que separan claramente los
niveles para especificar el esquema interno se utiliza este lenguaje.
• Lenguaje de definición de vistas (LDV): sirve para especificar las vistas del usuario y sus
correspondencias con el esquema conceptual.
• Lenguaje de manipulación de datos (LMD): los usuarios requerirán algún mecanismo para
manipularla, las operaciones de manipulación más comunes son la recuperación, la
inserción, la eliminación y la modificación de los datos.

77
o LMD de alto nivel: se pueden utilizar de manera independiente para especificar
operaciones complejas de base de datos en forma concisa, como SQL, pueden
especificar y recuperar muchos registros con una sola instrucción de LMD, suelen
especificar qué datos hay que obtener y no como obtenerlos, se denominan también
declarativos.
o LMD de bajo nivel: deben estar embebidos en un lenguaje de programación de propósito
general, recupera registros u objetos individuales de la base de datos y los procesa por
separado, necesita utilizar elementos de lenguajes de programación, como los bucles,
para recuperar y procesar cada registro individual de un conjunto de registros.
• Lenguaje de datos relacionales SQL: en los actuales DBMS se utiliza un amplio lenguaje
integrado que cuenta con elementos para definir esquemas conceptuales, definir vistas,
manipular datos y definir su almacenamiento, representa una combinación de LDD, LDV y
LMD, así como sentencias para especificación de restricciones y evolución del esquema.

1.5 HERRAMIENTAS
• CASE (Computer Aided Software Engineering): aplicaciones informáticas o programas
informáticos destinadas a aumentar el balance en el desarrollo de software reduciendo el
costo de las mismas en términos de tiempo y de dinero.
• Powerbuilder: entorno para desarrollar aplicaciones de gestión de bases de datos. Puede
trabajar con las bases de datos más utilizadas (Oracle, MySQL, MS SQL Server…). Además,
dispone de un lenguaje propio que permite programar en la propia BD llamado Powerscript.

2. CLASIFICACION DE LOS SISTEMAS DE GESTION DE BASE DE DATOS


Toda base de datos soportada por un SGBD debe tener unos esquemas modelados
adecuadamente. Coincidiendo con la evolución histórica de las bases de datos, estas han
utilizado distintos modelos. Los SGBD esperan un modelo determinado para poder acceder de
forma simple a la base de datos. Estos modelos son:
• Jerárquicos: usada en los SGBD de los primeros mainframes. Las relaciones entre registros
forman una estructura en árbol. Esta estructura es simple e inflexible, permite representar
relaciones “padre/hijo” donde cada padre puede tener varios hijos, pero cada hijo ha de
venir de solo un padre (las conocidas como relaciones 1:N).
• En red: contiene relaciones más complejas que las jerárquicas. Admite relaciones de cada
registro con varios que se pueden seguir por distintos caminos. En otras palabras, el modelo
permite relaciones N:N. Está concebido como un modo flexible de representar objetos y sus
relaciones.
• Relacionales: cumple con el modelo relacional, es la más extendida hoy en día. Se usa en
mainframes, computadoras medias y microcomputadoras. Almacena los datos en filas
(tuplas) y columnas (atributos). Estas tablas pueden estar conectadas entre sí por claves
comunes. Todos los sistemas de bases de datos relacionales utilizan SQL (Structured Query
Language) para consultar y mantener la base de datos.
o Características comunes:
▪ Se compone de varias tablas, denominadas relaciones.
▪ La relación entre una tabla padre y un hijo se lleva a cabo por medio de las llaves
primarias y llaves foráneas (o ajenas).

78
▪ Las llaves primarias son la clave principal de un registro dentro de una tabla y estas
deben cumplir con la integridad de datos.
▪ Las llaves ajenas se colocan en la tabla hija, contienen el mismo valor que la llave
primaria del registro padre; por medio de estas se hacen las formas relacionales.
o Ejemplos de bases de datos relacionales: SQL Server, Oracle, Ingres, MySQL, MariaDB
(evolución de MySQL), PostgreSQL, DB2, Heidi, SQLite, Firebird…
• Orientado a Objetos: diseñada siguiendo el paradigma de los lenguajes orientados a objetos.
De este modo soporta los tipos de datos gráficos, imágenes, voz y texto de manera natural.
Un Sistema de Gestión de Bases de Datos Orientado a Objetos debe cumplir las siguientes
características:
o Persistencia: los datos deben mantenerse después de que la aplicación que los creo haya
finalizado el proceso que los creó.
o Concurrencia: debe controlar la interacción entre las transacciones concurrentes para
evitar que se destruya la consistencia.
o Recuperación: proveer mecanismos de recuperación de la información como mínimo al
nivel de los SGBD relacionales.
o Independencia lógica y física: debe evitar que los programadores tengan que escribir
programa para mantener índices y asignar almacenamiento en disco.
o Identidad del objeto: los objetos deben tener un identificador independiente de los
valores de sus atributos.
o Soporta objetos complejos: debe ser posible construir objetos complejos aplicando
constructores a objetos básicos.
o Encapsulamiento: los programadores solo tienen acceso a la especificación de interfaz
de los métodos, los datos de implementación de estos métodos están ocultos en los
objetos.
o Tipos o clases: esquema de una BDOO contiene un conjunto de clases o tipos y deben
ser capaz de heredar de sus supertipos o superclases los atributos y métodos (estos
soportan sobrecarga ,es decir, deben poder aplicarse a diferentes tipos).
▪ Clase: es una plantilla para la creación de objetos de datos según un modelo
predefinido. Las clases se utilizan para representar entidades o conceptos, como los
sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de
variables y métodos apropiados para operar con dichos datos. Cada objeto creado
a partir de la clase se denomina instancia de la clase.
- Superclases y subclases: las clases pueden derivar desde otras clases. La clase
derivada (la clase que proviene de otra clase) se llama subclase. La clase de la
que está derivada se denomina superclase.
- Clase abstracta: funcionan como una clase que declara la existencia de métodos
pero no su implementación. No puede tener métodos privados, y uno de sus
métodos debe ser abstracto, pero no todos.
▪ Métodos: procedimientos y funciones que se invocan para actuar sobre los objetos
y especifican cómo se ejecuta un mensaje. Los campos y métodos de una clase
pueden definirse de tipo public, protected y private, por defecto son públicos.
▪ Interfaces: definen un comportamiento, son clases completamente abstractas que
contiene sólo una colección de métodos abstractos y propiedades constantes. Si se
desea utilizar un método que no ha implementado el usuario se utiliza una interfaz.

79
➢ Lenguajes de datos:
▪ ODL (Object Description Language): es empleado para facilitar la portabilidad de los
esquemas de las bases de datos, no es un lenguaje de programación completo,
define las propiedades y lo prototipo de las operaciones de los tipos, pero no los
métodos que implementan esas operaciones, intentan definir tipos que puedan
implementarse en diversos lenguajes, no está ligado a la sintaxis concreta de un
lenguaje de programación particular, es una extensión de IDL (Interface Definition
Languaje).
▪ OML (Object Manipulation Language): es empleado para la elaboración de
programas que permitan crear, modificar y borrar datos que constituyen la base de
datos.
▪ OQL (Object Query Language): es el equivalente a SQL, presenta las siguientes
características:
- Las consultas pueden invocar métodos: los métodos escritos en cualquier
lenguaje de programación pueden incluir consultas.
- Sintaxis abstracta.
- Semántica formal puede definirse fácilmente.
- Acceso declarativo a los objetos.
- Sintaxis concreta al estilo SQL.
- No proporciona operadores explícitos para la modificación.
- Proporciona primitivas de alto nivel para tratar con conjuntos de objetos

o Ventajas de las BDOO:


▪ Flexibilidad y soporte para el manejo de tipos de datos complejos.
Zope▪ Object
PuedeDatabase (ZODB):
ajustarse a usarbase de datos
siempre orientada
el espacio dea los
objetos para que
campos almacenar de forma
son necesarios:
transparente y persistente objetos en el lenguaje de programación Python.
eliminando espacio desperdiciado en registros con campos que nunca se usan.
▪ Rendimiento: permiten que los objetos hagan referencia directamente a otro
mediante apuntadores, colocando cerca las estructuras relacionadas entre sí en el
espacio de almacenamiento en disco, lo que hace que pasen más rápido del objeto A
al objeto B que las Bases de Datos Relacionales, las cuales deben usar comandos
“JOIN” para logar esto.
o Desventajas:
▪ No están tan avanzadas como la relacionales: no tienen la abundancia de
herramientas, fiabilidad de administración y rendimiento de estas últimas.
▪ Son incompatibles entre sí mismas: esto hace imposible migrar una aplicación desde
una base de datos orientada a objetos a otra (obliga a depender de un único
proveedor).
▪ Falta de estándares en la industria orientada a objetos.

o Ejemplos de bases de datos orientadas a objetos: ObjectDB, Zope, DB40, Gemstone…


• NoSQL: surgen por problemas debidos a la cantidad masiva de información (Big Data) que
supone la generalización de internet, que experimentan los DBMS tradicionales: lentitud de
accesos, problemas de bloqueos, dificultad para mantener bases de datos distribuidas
geográficamente. Los datos almacenados no requieren estructuras fijas como tablas,
normalmente no soportan operaciones JOIN, ni garantizan completamente ACID y
habitualmente escalan bien horizontalmente.

80
A menudo, las bases de datos NoSQL se clasifican según su forma de almacenar los datos:
o Clave-valor: funcionan con una clave indexada asociada a un valor, que desde el punto
de vista de la base de datos es información opaca (asociada a la clave) que simplemente
almacena y recupera. Están diseñadas para escalar masivamente manteniendo un
tiempo de respuesta muy rápido y disponibilidad total. Se suelen usar para almacenar
información de sesión, preferencias o perfiles de usuario, carritos de la compra y en
general como cachés de cualquier conjunto de información que se pueda recuperar por
una clave.
▪ Ejemplos: Cassandra, DynamoDB, Redis, Riak o Aerospike
o Orientadas a documentos: el concepto principal es el de documento, mayoritariamente
en formato JSON para almacenar y consultar información, cada base de datos puede
utilizar distintas codificaciones para los documentos, el direccionamiento de los
documentos se realizará a través de una clave que identificará de forma única al mismo.
Permiten gestionar información con complejas estructuras jerárquicas, y ofrecen índices
secundarios y completos lenguajes de consulta y agregación de datos.
▪ Ejemplos: MongoDB (puerto 27017), CouchDB o CouchBase
o Orientadas a grafos: la información se almacena en los nodos de un grafo (entidades),
representando las relaciones mediante las aristas. Tanto las entidades (nodos del grado)
como las relaciones (aristas) pueden además tener atributos. Recorrer las uniones entre
entidades a través de estas relaciones es el fuerte de las bases de datos orientadas a
grafos, y permiten hacerlo con gran velocidad, independientemente del volumen de
datos (caso de uso más conocido de este tipo de bases de datos son las redes sociales).
▪ Ejemplos: Neo4j (cypher: lenguaje de consulta para BD Neo4j), OrientDB o Titan
o Orientadas a columnas: similares a una tabla en las bases de datos relacionales, se
definen familias de columnas antes de cargar los datos, la estructura de estos datos
debe ser conocida con anterioridad. Organizan los datos de una forma distinta al modelo
relacional, los datos están organizados penando en operaciones de columna para
ejecutar operaciones de agregación o realizar búsquedas de registro a través de
múltiples columnas, cada registro no requiere un único valor por columna, en su lugar,
se pueden modelar familias de columnas. No requiere que los campos siempre estén
presentes, aunque almacene valores nulos, si es información que no existe, no se
incluye.
▪ Ejemplos: Hbase

• Las bases de datos NoSQL no cumplen el modelo ACID, en su caso, se cumple el modelo BASE,
un enfoque similar pero perdiendo la consistencia y el aislamiento a favor de la disponibilidad
la degradación y el rendimiento:
o Basic Availability: sistema funciona incluso cuando alguna parte falla debido a que el
almacenamiento sigue los principios de distribución y replicación.
o Soft State: los nodos no tienen por qué ser consistentes.
o Eventual Consistency: la consistencia se produce de forma eventual.

81
2.1. TEOREMA DE CAP (BREWER)
En un sistema distribuido no se puede garantizar de forma
simultánea la consistencia, la disponibilidad y la tolerancia
al particionado, solo una combinación de dos de ellas:
o Consistency: garantizar que la información
almacenada en los nodos sea la misma.
o Availability: garantizar que la información almacenada
en los nodos este siempre disponible.
o Partition tolerance: garantizar que el sistema
distribuido sigue funcionando, aunque algún nodo
falle.

3. SGBD (SISTEMA GESTOR DE BASE DE DATOS)


El sistema gestor de base de datos actúa de interfaz entre el usuario y la información
almacenada, el usuario nunca accede a los datos directamente, siempre lo hace a través del
gestor. La mayoría de operaciones sobre una base de dato se puede realizar mediante consultas.
El usuario podrá realizar determinadas consultas en función de la autorización que el
administrador de bases de datos le proporcione. Se pueden definir las consultas como
operaciones que se efectúan sobre los datos de una base de datos.
3.1. SQL
Las consultas se hacen en un lenguaje definido para el acceso a la base de datos llamado SQL
(Standard Query Language): es un lenguaje de dominio específico utilizado en programación,
diseñado para administrar, y recuperar información de sistemas de gestión de bases de datos
relacionales. Efectúa consultas con el fin de recuperar, de forma sencilla, información de bases
de datos, así como realizar cambios en ellas. SQL usa los siguientes “dialectos”:
• DDL (Data Definition Language): además, proporciona comandos para la definición de
esquemas de relación, borrado de relaciones, modificaciones de los esquemas de relación,
comandos para especificar las restricciones de integridad que deben cumplir los datos
almacenados y comandos para la definición de vistas, también incluye comandos para
especificar los derechos de acceso a las relaciones y a las vistas.
o CREATE: crear una base de datos, tabla, vistas…
o ALTER: modificar la estructura, añadir o borrar columnas.
o DROP: eliminar objetos de la estructura. (CASCADE: borra el usuario y todos los objetos
que tenga creados).
• DML (Data Manipulation Language): permite a los usuarios introducir datos para
posteriormente realizar tareas de consultas o modificación de los datos.
o SELECT: realizar consultas sobre tuplas / DISTINCT: devuelve solo valores distintos.
o INSERT: insertar los valores / UPDATE: modificar valores.
o DELETE: eliminar filas de una tabla.
o GROUP BY: agrupa las filas de mismos valores en filas de resumen.
o WHERE: condición que debe cumplirse para que los datos sean devueltos.
o LIKE: se usa junto a un WHERE para buscar un patrón específico en una columna.
o HAVING: condición que debe cumplirse para que los datos sean devueltos. Su
funcionamiento es similar al de “WHERE” pero aplicado al conjunto de resultados
devueltos por la consulta. Debe aplicarse siempre junto a “GROUP BY” y la condición
debe estar referida a los campos contenidos en ella.

82
o COUNT(): cuenta el número de filas que coincide con un criterio específico.
o AVG () / SUM (): devuelve el valor promedio / suma total de una columna numérica.
• DCL (Data Control Language): controlar el acceso a usuarios mediante la asignación de
permisos o roles para realizar determinadas tareas.
o GRANT: otorga permisos.
o REVOKE: eliminar permisos.
• TCL (Transaction Control Language): una transacción es una unidad en la ejecución de un
programa, un conjunto de sentencias de acceso a la BD. En la práctica suele consistir en la
agrupación de consultas SQL y su ejecución como parte de una transacción. Los pasos para
realizar una transacción en MySQL son:
o Indicar que vamos a realizar una transacción con la sentencia START TRANSACTION,
BEGIN o BEGIN WORK.
o Realizar operaciones de manipulación de datos sobre la base datos (insertar, borrar...)
o Si las operaciones se han realizado correctamente y queremos que los cambios se
apliquen de forma permanente sobre la base de datos usaremos la sentencia COMMIT.
Sin embargo, si durante las operaciones ocurre algún error y no queremos aplicar los
cambios realizados podemos deshacerlos con la sentencia ROLLBACK.
El proceso de definición de tablas implica indicarlas columnas y el tipo de datos de cada una,
algunos de los tipos de datos básicos de SQL son:
• “varchar”: cadena de palabras compuestas de letras, números y caracteres especiales.
• “int”: principal tipo de datos de valores enteros de SQL Server. Números enteros con o sin
signo.
• “date”: una fecha de calendario que contiene el año (de cuatro cifras), el mes y el día.
• “time”: La hora del día en horas minutos segundos (el valor predeterminado es 0).
3.1.1. CONSTRAINTS (Restricciones)
Se utilizan para especificar reglas para los datos en una tabla como limitar el tipo de datos que
pueden incluirse en una tabla. Si hay alguna violación entre la restricción y la acción de datos, la
acción se cancela, son:
• NOT NULL: asegura que una columna no pueda tener un valor NULL.
• UNIQUE: asegura que todos los valores en una columna sean diferentes.
• PRIMARY KEY: una combinación de una NOT NULL y UNIQUE. Identifica de forma única cada
fila en una tabla.
• FOREIGN KEY: evita acciones que destruirían enlaces entre tablas.
• CHECK: asegura que los valores en una columna satisfagan una condición específica.
• DEFAULT: establece un valor predeterminado para una columna si no se especifica ninguno.
• CREATE INDEX: se utiliza para crear y recuperar datos de la base de datos muy rápidamente.

3.1.2. Wildcards (Carácter Comodín)


• * : representa un conjunto de caracteres (se usa para seleccionar “todos los valores de”).
• ? : representa un único carácter. (m?no busca mano, mono,…)
• [] : representa cualquier valor dentro de los Brackets.
• ! / ^: representa cualquier valor que no sea el que va después de la exclamación.
• - : representa el rango de valores entre los dos extremos del guión.
• # : representa un valor numérico.
• % : completa la palabra (a% busca a, alba, antonio,…)
• _ : representa un carácter.

83
3.2. JOIN
Uno de los operadores más usados en SQL es la cláusula JOIN: sirve para combinar filas de dos
o más tablas basándose en un campo común entre ellas, devolviendo por tanto datos de
diferentes tablas. Los tipos más importantes son:
• INNER JOIN: devuelve todas las filas cuando hay al menos una coincidencia
en ambas tablas.
• LEFT JOIN: devuelve todas las filas de la tabla de la izquierda, y las filas
coincidentes de la tabla de la derecha.
• RIGHT JOIN: devuelve todas las filas de la tabla de la derecha, y las filas
coincidentes de la tabla de la izquierda.
• FULL OUTER JOIN: devuelve todas las filas de las dos tablas, la izquierda y la
derecha.
• CROSS JOIN: devuelve el producto cartesiano de los registros de las dos tablas
Mediante el uso de “WHERE” se puede excluir el campo común en un JOIN pidiendo que la
sentencia devuelva solo los valores nulos comunes, resultando:

• LEFT JOIN + WHERE B.Key IS NULL OUTER JOIN + WHERE B.Key IS NULL

• RIGHT JOIN + WHERE B.Key IS NULL

3.3. INTEGRIDAD EN UN SGBD


Una vez definidas las tablas se procederá a definir las relaciones entre ellas y las restricciones de
integridad derivadas de estas relaciones (“integridad” significa que la clave externa de una tabla
de referencia siempre debe aludir a una fila válida de la tabla a la que se haga referencia. La
integridad referencial garantiza que la relación entre dos tablas permanezca sincronizada
durante las operaciones de actualización y eliminación), se puede indicar como se desea que
actúe el gestor ante una violación la integridad:
o Exigir integridad referencial: el SGBD impedirá que se introduzcan datos que violen la regla
de integridad. (Ejemplo: no permitirá la introducción de una compra si no existe un DNI de
cliente en las tablas de cliente).
o Actualizar en salto o en caída: si se modifica un atributo referenciado en otra tabla, también
cambia en todas las tablas relacionadas.
o Borrado en salto o en caída: en caso de que se borre una fila de una tabla, elimina también
todas la relacionadas con ella.
3.3.2. ANOMALÍAS EN UNA BASE DE DATOS
Son resultados generados que parecen incorrectos cuando se observan desde el ámbito de una
sola transacción, pero que son correctos cuando se observan desde el ámbito de todas las
transacciones. A continuación se describen los diversos tipos de anomalías de base de datos:
o Lecturas erróneas (dirtyreads): transacción lee datos que han sido escritos por otra
transacción que aún no ha sido confirmada (con COMMIT).

84
o Doble lectura (non-repeattablereads): transacción lee datos que ya había leído, pero entre
lecturas, los datos han sido modificados o borrados por una transacción ya confirmada.
o Lectura fantasma (phantomread): transacción reejecuta una consulta encontrando que el
conjunto de filas resultantes ha sido ampliado por otra transacción que inserto nuevas filas
y que ya ha realizado su COMMIT.
Para dar una solución a estos problemas, los SGBD proporcionan 4 niveles de aislamiento que
controlan el grado de bloqueo durante el acceso a los datos. Para la mayor parte de aplicaciones,
el acceso a los datos se puede realizar de modo que se eviten altos niveles de aislamiento
reduciendo así la sobrecarga debida a la necesidad de bloqueos por el sistema. Si se usan altos
niveles de aislamiento la posibilidad de bloqueo aumenta. Los niveles de aislamiento son:
o Serializable: es el que más se acomoda a lo que significa la definición de ACID, pero no
permite una alta escalabilidad, queda garantizado es que dos instrucciones “select” en la
misma transacción con nivel serializable van a devolver el mismo conjunto de datos. Implica
bloquear registros que incluso no existen todavía evitando el problema de los registros
fantasma.
o Repeatable Reads: evita el problema de las lecturas no repetibles, no soluciona el problema
de los datos fantasmas (registros que aparecen y desaparecen dentro de nuestra
transacción).
o Read Commited: proporciona un nivel de concurrencia muy bueno y previene del problema
de las lecturas sucias, pero no previene lecturas no repetibles y datos fantasma. Las lecturas
no repetibles implican que varias instrucciones “select” dentro de la misma transacción
devuelve datos diferentes.
o Read Uncommited: nivel más bajo de aislamiento, protege de lecturas de datos físicamente
dañados, mayor nivel de concurrencia (nunca hay un bloqueo), no garantiza la coherencia
de los datos.

3.3.3. BLOQUEOS
Para garantizar que no haya problemas entre transacciones el scheduler emplea una tabla de
bloqueo de manera que sea seguro ejecutar toda transacción. La consistencia de transacciones
se basa en que una transacción solo puede leer y escribir un elemento si se solicito un bloqueo
y este no se ha liberado, y que si una transacción bloquea un elemento debe liberarlo
posteriormente. Si un scheduler cumple las condiciones anteriores se dice que es “legal”.
Se trabaja con el llamado bloqueo de dos fases (2PL) cuando en la transacción todos los bloqueos
preceden a desbloqueos pero este sistema tiene el problema de caer en un “deadlock” (una
transacción B no puede continuar hasta que otra transacción A libere un recurso, pero a su vez,
la transacción A también está esperando a que B libere el recurso). Por lo general el DBMS
detecta aquellas transacciones que caen en un abrazo mortal y lo soluciona haciendo ROLLBACK
considerando primero aquellas transacciones en las que tenga que “deshacer menos”.

3.4. BACKUP DE UNA BD


Los BackUp se pueden clasificar en físicos y lógicos. Los físicos se realizan cuando se copian los
ficheros que soportan la base de datos, estos se dividen en:
• BackUP del SO: es el más sencillo de ejecutar, consume mucho tiempo y hace inaccesible al
sistema mientras se lleva a cabo, aprovecha el backup del SO para almacenar también todos
los ficheros de la base de datos.

85
• BackUP de la BD en frio: implican parar la BD en modo normal y copiar todos los ficheros
sobre los que se asienta.
• BackUP de la BD en caliente: se realiza mientras la BD está abierta y funcionando en modo
“archivelog”, se realiza cuando la carga es pequeña. Consiste en copiar todos los ficheros
correspondientes a un tablespace, los ficheros redo log archivados y los ficheros de control.

Los BackUp lógicos solo extraen los datos de las tablas utilizando comandos SQL: solo extraen
los datos de las tablas utilizando comandos SQL, las utilidades Export/Import permiten hacer
copias de determinados objetos de la BD, restaurarlos o moverlos de una BD a otra.
3.4.1. ARCHIVELOG
El administrador debe decidir si arrancar la base de datos en modo “archivelog” (mecanismo de
protección ante fallos de disco. Protegerá la base de datos ante posibles fallos físicos de disco y
también ante eliminaciones o modificaciones no deseadas de los datos).
Presenta las siguientes ventajas:
• Se puede recuperar la BD con una copia antigua de los ficheros de datos y los ficheros de
“redo log” (archivo que guarda todas las transacciones que se van realizando).
• Es posible realizar BackUPs en caliente.
Desventajas:
• Necesitará más espacio en disco.
• El trabajo del administrador se incrementa al tener que determinar el destino del archivado
de los “redo log”.
3.5. RECUPERACION DE UNA BD
El administrador debe estar preparado ante la posibilidad de que se produzca un fallo, recuperar
la BD en el menor tiempo posible, los procesos de recuperación dependen del tipo de error y de
las estructuras afectadas. Existen diferentes modos de recuperar un fallo en la BD:
o Recuperación de Bloques: mecanismo de recuperación más simple, cuando un proceso
muere justo cuando está cambiando un bloque, se utilizan los registros redo log en línea
para reconstruir el bloque y escribirlo en disco.
o Recuperación de threads: cuando se descubre que una instancia muere dejando abierto un
thread, se restauran los bloques de datos modificados que estaban en el caché de la
instancia muerta y cerrando el thread que estaba abierto.
o Recuperación física: respuesta a un comando “recover”, convertir los ficheros backup en
actuales, restaurar los cambios que fueron perdidos cuando un fichero de datos fue puesto
offline sin un checkpoint aplicando los ficheros “redo log” archivados en línea.
RMAN (Recovery Manager): gestor de copia de seguridad y recuperación suministrado para
bases de datos Oracle.

86
4. MySQL

SGBD Relacional de código abierto comercializado bajo licencia dual: Licencia pública
general/Licencia comercial por Oracle, usa el puerto 3306. Es muy rápida en la lectura cuando
utiliza el motor no transaccional MyISAM (el mecanismo de almacenamiento de datos usado por
defecto por el sistema administrador de bases de datos relacionales MySQL), pero puede
provocar problemas de integridad en entornos de alta concurrencia en la modificación. En
aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es
intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones.
Existen varias interfaces de programación de aplicaciones que permiten, a aplicaciones escritas
en diversos lenguajes de programación, acceder a las bases de datos MySQL. También existe una
interfaz ODBC (Open DataBase Connectivity), llamado MyODBC que permite a cualquier
lenguaje de programación que soporte ODBC comunicarse con las bases de datos MySQL.
Interfaces Graficas de Usuario (GUI): tipo de interfaz que permite a los usuarios interactuar con
dispositivos o programas electrónicos mediante iconos gráficos e indicadores visuales. Se
dispone de aplicaciones de administración gráfica de propiedad de terceros y gratuitas que se
integran con MySQL y permiten a los usuarios trabajar con la estructura y los datos de la base
de datos de forma visual:
• MySQL Workbench: entorno integrado oficial de MySQL, permite a los usuarios administrar
gráficamente las bases de datos MySQL y diseñar visualmente las estructuras de las bases
de datos. Es considerado como el front-end autorizado de MySQL, permite a los usuarios
administrar el diseño y modelado de bases de datos, el desarrollo de SQL (reemplazando al
MySQL Query Browser) y la administración de bases de datos (reemplazando al MySQL
Administrator).
• Adminer (antes conocido como phpMinAdmin): front-end gratuito de MySQL para gestionar
el contenido de las bases de datos MySQL. El administrador se distribuye bajo la licencia
Apache (o GPL v2) en forma de un único archivo PHP y es capaz de gestionar múltiples bases
de datos, con muchas capas CSS disponibles.
• ClusterControl: sistema de administración de MySQL de extremo a extremo que provee la
habilidad de desplegar, monitorear, administrar y escalar instancias de MySQL desde una
sola interfaz.
• Database Workbench: aplicación de software para el desarrollo y la administración de
múltiples bases de datos relacionales utilizando SQL, con interoperatividad entre diferentes
sistemas de bases de datos, proporciona la misma interfaz e incluye también herramientas
de bases de datos cruzadas.
• DBeaver: cliente SQL y una herramienta de administración de base de datos.
• DBEdit: editor de base de datos, que puede conectarse a cualquier base de datos que
proporcione un controlador JDBC (Java Database Connectivity, es la especificación JavaSoft
de una API (interfaz de programación de aplicaciones) estándar que permite que los
programas Java accedan a sistemas de gestión de bases de datos), es un software libre y de
código abierto y se distribuye bajo la Licencia Pública General GNU.
• HeidiSQL: anteriormente conocido como MySQL-Front, es un cliente libre y de código
abierto, actúa como front-end para MySQL (y para sus bifurcaciones como MariaDB y
Percona Server). Su conjunto de características es suficiente para las operaciones más
comunes y avanzadas de bases de datos, tablas y registros de datos.

87
• LibreOffice Base: creación y gestión de bases de datos, la preparación de formularios e
informes que proporcionan a los usuarios finales un fácil acceso a los datos, también puede
utilizarse como interfaz para diversos SGBD.
• Navicat: software multiplataforma de gestión y desarrollo de bases de datos, concretamente
es una interfaz gráfica de usuario y admite múltiples conexiones de bases de datos locales y
remotas.
• OpenOffice.org: es de libre acceso y puede manejar bases de datos MySQL.
• phpMyAdmin: herramienta gratuita y de código abierto escrita en PHP destinada a manejar
la administración de MySQL con el uso de un navegador web. Puede importar datos de CSV
y SQL, y transformar los datos almacenados en cualquier formato utilizando un conjunto de
funciones predefinidas.
• SequelPro: aplicación MacOS gratuita y de código abierto para trabajar con bases de datos
MySQL de forma local o remota.
• SQLBuddy: aplicación de código abierto basada en la web y escrita en PHP, destinada a
manejar la administración de MySQL y SQLite con el uso de un navegador web.
• SQLyog: herramienta GUI para la manipulación de datos, pueden realizarse desde una
interfaz similar a una hoja de cálculo.
• Toad for MySQL: aplicación de software para la administración de bases de datos
relacionales y no relacionales utilizando SQL.
• Webmin: herramienta de configuración de sistemas basada en la web para sistemas de tipo
Unix. Está construido alrededor de módulos, esto hace que sea fácil añadir nuevas
funcionalidades.
Interfaz de línea de comandos: MySQL se envía con muchas herramientas de línea de comandos,
de las cuales la interfaz principal es el cliente mysql. Las utilidades de MySQL son un conjunto
de utilidades diseñadas para realizar tareas comunes de mantenimiento y administración.
Incluidas originalmente como parte del Banco de Trabajo de MySQL, las utilidades son una
descarga independiente disponible en Oracle.
Percona Toolkit es un kit de herramientas multiplataforma para MySQL, puede ser usado para
probar que la replicación funciona correctamente, arreglar datos corruptos, automatizar tareas
repetitivas y acelerar los servidores.
El shell de MySQL es una herramienta para el uso interactivo y la administración de la base de
datos MySQL. Soporta los modos JavaScript, Python o SQL y puede ser utilizado para la
administración y el acceso. Los clientes en línea de comandos de MySQL son:
• mysql: shell SQL simple con capacidades de edición de línea de entrada.
• mysqladmin: permite realizar las operaciones más comunes que un administrador de este
motor de base de datos necesita realizar con comandos más cortos.
• mysqlcheck: realiza el mantenimiento de las tablas: comprueba, repara, optimiza o analiza
las tablas.
• mysqldump: puede ser utilizado para generar respaldos de bases de datos y ser usados o
incluso para ser transferidos a otro servidor de base datos SQL (No estrictamente tiene que
ser un servidor MySQL.
• mysqlimport: El cliente mysqlimport proporciona una interfaz de línea de comandos para el
comando LOAD DATA INFILE (carga tablas de archivos de texto en varios formatos).

88
• mysqlpump: realiza copias de seguridad lógicas , produciendo un conjunto de declaraciones
SQL que se pueden ejecutar para reproducir las definiciones de objetos de la base de datos
original y los datos de la tabla.
• mysqlshow: se puede utilizar para ver rápidamente qué bases de datos existen, sus tablas o
las columnas o índices de una tabla.
• mysqlslap: programa de diagnóstico diseñado para emular la carga del cliente para un
servidor MySQL y para informar el tiempo de cada etapa.

Interfaces de programación de aplicaciones: muchos lenguajes de programación con APIs de


lenguaje específico incluyen bibliotecas para acceder a bases de datos MySQL. Una interfaz
ODBC llamada MySQL Connector/ODBC permite que los lenguajes de programación adicionales
que soportan la interfaz ODBC se comuniquen con una base de datos MySQL. El método de
consulta basado en HTSQL (Hyperthreaded Structured Query Language Database, sistema
gestor de bases de datos libre escrito en Java) también se envía con un adaptador MySQL,
permitiendo la interacción directa entre una base de datos MySQL y cualquier cliente web a
través de URLs estructuradas.
En ingeniería de software se considera un fork (bifurcación) al desarrollo de un proyecto
informático tomando como base un código fuente que ya existe o a la ramificación de un
proyecto madre en varios proyectos que son independientes entre sí y que cuentan con
objetivos o desarrolladores diferentes. Actualmente existen dos fork de MySQL:
• MariaDB: fork desarrollado por la comunidad del sistema de gestión de bases de datos
relacionales MySQL, notable por estar liderado por los desarrolladores originales de MySQL,
que lo bifurcaron debido a las preocupaciones sobre su adquisición por Oracle. MariaDB
pretende mantener una alta compatibilidad con MySQL, asegurando una capacidad de
sustitución "drop-in" con equivalencia binaria de la biblioteca y una coincidencia exacta con
las API's y comandos de MySQL. Incluye el motor de almacenamiento XtraDB para
reemplazar a InnoDB.
• Percona Server for MySQL: fork que mantiene compatibilidad con las versiones oficiales de
MySQL, se centra en el rendimiento y el aumento de la visibilidad de las operaciones del
servidor. Percona incluye características de escalabilidad, disponibilidad, seguridad y
respaldo que solo están disponibles en la edición comercial Enterprise de MySQL.
• Drizzle y WebScaleSQL (actualmente abandonados).

89
5. PostgreSQL

DBMS relacional orientado a objetos y de código abierto, es un descendiente de Berkeley y


compatible con una gran parte del estándar SQL, usa por defecto el puerto 5432. Ofrece las
siguientes características:
• Consultas complejas: hay ocasiones en las que tipos específicos de datos, como datos de
diferentes tablas, deben obtenerse de la base de datos mediante una consulta más larga o
compleja.
• Claves foráneas: una de las alternativas que PostgreSQL ofrece para asegurar la integridad
de datos es el uso de restricciones (constraints), que se establecen en tablas y campos
asegurando que los datos sean válidos y que las relaciones entre las tablas se mantengan.
• Vistas e Integridad transaccional: Soporta cualquier tipo de transacciones como establece el
estándar ACID.
• Triggers: cualquier evento que establece un curso de acción en un movimiento. En
PostgreSQL, si desea tomar medidas sobre eventos específicos de la base de datos, como
INSERT, UPDATE, DELETE o TRUNCATE, la funcionalidad de activación puede ser útil ya que
invocará la función requerida en eventos definidos.
El disparador se asociará con la tabla, vista o tabla externa especificada y ejecutará la función
especificada cuando se realicen ciertas operaciones en esa tabla. Dependiendo del
requerimiento podemos crear un disparador ANTES, DESPUÉS o EN LUGAR de los eventos /
operación.
• Alta concurrencia: mediante MVCC (MultiVersion Concurrency Control), permite que
mientras un proceso escribe en una tabla, otros accedan a la misma sin necesidad de
bloqueos y de manera consistente.
• Amplia variedad de tipos nativos: números de precisión arbitraria, texto de largo ilimitado,
figuras geométricas (con una variedad de funciones asociadas), direcciones IP (IPv4 e IPv6),
bloques de direcciones estilo CIDR, direcciones MAC, arrays,...

5.1. Aplicaciones cliente de PostgreSQL


Son interfaces graficas o de comandos para gestión, implementación, respaldo,… de PostgreSQL.
La característica común de estas aplicaciones es que se pueden ejecutar en cualquier host,
independientemente de dónde resida el servidor de la base de datos, algunas de ellas son:
• clusterdb: agrupa una base de datos PostgreSQL.
• createdb: crea una nueva base de datos PostgreSQL.
• createlang: instala un lenguaje de procedimiento PostgreSQL.
• createuser: define una nuevacuenta de usuario de PostgreSQL.
• dropdb: eliminar una base de datos PostgreSQL.
• droplang: elimina un lenguaje de procedimiento PostgreSQL.
• dropuser: eliminar una cuenta de usuario de PostgreSQL.
• ecpg: preprocesador SQL con C incorporado.
• pgadmin: plataforma de desarrollo y administración de código abierto para PostgreSQL.
• pg_basebackup: realiza una copia de seguridad básica de un clúster de PostgreSQL.
• pg_config: recupera información sobre la versión instalada de PostgreSQL.
• pg_dump: extrae una base de datos PostgreSQL en un archivo de secuencia de comandos u
otro archivo de almacenamiento, (pg_dumpall: extrae un clúster de base de datos
PostgreSQL en un archivo de secuencia de comandos).
• pg_receivexlog: transmite registros de transacciones desde un clúster de PostgreSQL.

90
• pg_restore: restaure una base de datos PostgreSQL a partir de un archivo de
almacenamiento creado por pg_dump (utilizando la opción “-d:nombrebasededatos”).
• psql: Terminal interactivo de PostgreSQL, front-end basado en terminales, le permite
escribir consultas de forma interactiva, enviarlas a PostgreSQL y ver los resultados de la
consulta. Alternativamente, la entrada puede ser de un archivo. Además, proporciona una
serie de metacomandos y varias funciones similares a shell para facilitar la escritura de
scripts y automatizar una amplia variedad de tareas. Por ejemplo:
o \l (\list): lista todas las bases de datos disponibles, luego sale. Se ignoran otras opciones
sin conexión. Similar al metacomando \list
o \?: muestra información de ayuda sobre los meta-comandos, opciones y variables.
o \h (\help): muestra la ayuda de la sintaxis del comando SQL especificado.
o \H (\html): activa o desactiva el formato de salida de consulta HTML.
o \c (\connect): establece una nueva conexión con el servidor PostgreSQL.
o \i: lee un archivo, lo toma como input y ejecuta su contenido.
o \x: activa o desactiva el formato de tabla expandido en el resultado de cada instrucción
SQL.
o \q (\quit): cierra psql
o \o (\out): guarda los resultados de futuras consultas en un archivo.
o \d “pattern”: describe la relación cuyo nombre coincida con el patron asignado.
o \d t/i/s/u/n/: muestra una lista de tablas/índices/secuencias/roles/esquemas.
o \dv: muestra una lista de vistas (\dm: muestra una lista de vistas materializadas).
o \df: muestra una lista de las funciones con el tipo de datos de resultado y los tipos de
datos de los argumentos.
• reindexdb: reindexar una base de datos PostgreSQL.
• vacuumdb: recolecta basura y analiza una base de datos PostgreSQL.

91
6. SQLite

SGBD relacional compatible con ACID, contenida en una pequeña biblioteca escrita en C, es un
proyecto de dominio público. El motor de SQLite no es un proceso independiente con el que el
programa principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con el programa
pasando a ser parte integral del mismo. El programa utiliza la funcionalidad de SQLite a través
de llamadas simples a subrutinas y funciones. Esto reduce la latencia en el acceso a la base de
datos, debido a que las llamadas a funciones son más eficientes que la comunicación entre
procesos. El conjunto de la base de datos (definiciones, tablas, índices, y los propios datos), son
guardados como un solo fichero estándar en la máquina host. Este diseño simple se logra
bloqueando todo el fichero de base de datos al principio de cada transacción.
La biblioteca implementa la mayor parte del estándar SQL-92, incluyendo transacciones de base
de datos atómicas, consistencia de base de datos, aislamiento, y durabilidad (ACID), triggers y la
mayor parte de las consultas complejas.
Existe un programa independiente de nombre “sqlite3” que puede ser utilizado para consultar
y gestionar los ficheros de base de datos SQLite. La mayoría de las veces, sqlite3 solo lee líneas
de entrada y las pasa a la biblioteca SQLite para su ejecución. Pero las líneas de entrada que
comienzan con un punto (".") Son interceptadas e interpretadas por el propio programa sqlite3.
Estos "comandos de puntos" se utilizan normalmente para cambiar el formato de salida de las
consultas o para ejecutar determinadas declaraciones de consulta preempaquetadas:
• .backup: realiza una copia de seguridad.
• .clone: clona los datos de una base de datos en una nueva base de datos.
• .databases: lista los nombres y archivos adjuntos de las bases de datos existentes.
• .dump: vuelca la base de datos en un fichero de datos externo.
• .exit: sale del cliente y muestra un código de retorno.
• .explain: obtiene una descripción de alto nivel de una implementación de una consulta SQL.
• .headers: muestra la cabecera de la consulta SQL.
• .import: importa información de un archivo a una tabla.
• .indices: muestra los índices de una tabla.
• .load: carga una extensión de una librería.
• .log: activa o desactiva el inicio de sesión.
• .once: redirige la salida del siguiente comando a un archivo.
• .open: cierra la base de datos actual y abre la base de datos indicada.
• .print: imprime un string.
• .quit: sale del cliente.
• .read: toma un archivo como input.
• .restore: recupera contenido desde un archivo.
• .save: guarda la base de datos en el archivo indicado.
• .schema: muestra las sentencias CREATE que coincidan con el patrón indicado (PATTERN).
• .separator: cambiar los separadores de filas y columnas.
• .show: muestra valores de las opciones indicadas.
• .tables: lista el nombre de las tablas especificadas.
• .trace: muestra cada declaración SQL a medida que se ejecuta.

92
7. SQL Server

SGBD relacional desarrollado por Microsoft, soporta transacciones (conjunto de órdenes que se
ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica),
procedimientos almacenados (procesos almacenados físicamente en el propio servidor, por lo
cual al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el
motor de bases de datos), incluye entorno gráfico, permite trabajar en modo cliente-servidor (la
información y datos se alojan en el servidor y los terminales o clientes de la red solo acceden a
la información).

El lenguaje de desarrollo utilizado (por línea de comandos o mediante la interfaz gráfica de


Management Studio) es Transact-SQL (TSQL), una implementación del estándar ANSI del
lenguaje SQL (usa las mismas sentencias y comandos: CREATE, ALTER, DROP,…), utilizado para
manipular y recuperar datos (DML), crear tablas y definir relaciones entre ellas (DDL). Incluye
características que permiten definir la lógica necesaria para el tratamiento de la información:
• Tipos de datos.
• Definición de variables.
• Estructuras de control de flujo.
• Gestión de excepciones.
• Funciones predefinidas.

93
TEMA 1 – ADMINISTRACIÓN, MANTENIMIENTO Y REPARACIÓN DEL SO.

1. TAREAS DEL ADMINSTRADOR


Instalación y gestión de servidores (después de la instalación, el administrador debe comprobar
que funciona correctamente, realiza estadísticas sobre el funcionamiento tanto en situaciones
normales como en situaciones críticas), mantenimiento y configuración de estaciones de trabajo
(además de la red y de los servidores, también debe instalar y configurar las estaciones de
trabajo), instalación y mantenimiento de la red (las redes de datos incrementan su tamaño,
interconexiones de delegaciones lejanas de una misma empresa, autenticación centralizada,
VoIP…), gestionar usuarios (responsable de asignar cuentas, gestionar las existentes, asignarle
un nombre, localización en el sistema de ficheros, determinar el grupo de trabajo, asignar
privilegios… Cuando un usuario deja de estar activo hay que desactivar su cuenta por razones
de seguridad), realizar copias de seguridad (también debe verificar su seguridad, identificar los
medios utilizados, planificar la estrategia de backups, la LOPD puede obligar a mantener un
número de copias en un plazo de tiempo determinado), monitorizar el sistema (comprobar
diariamente que el web, proxy, mail y otros servicios funcionan correctamente, en los ficheros
“log” se anota el funcionamiento del sistema)*, mantenimiento de documentación (cuando se
modifica el sistema, la documentación debe ser actualizada, abarca la configuración de SO,
software, cableado, registros, copias de respaldo,…)**, enseñar y ayudar a los usuarios,…

2. RESPONSABILIDADES DEL ADMINISTRADOR


• Responsabilidad de Hardware: responsable de la configuración y mantenimiento general del
sistema con tareas como la creación y manutención de un diagrama o esquema de hardware
del sistema, verificar que los periféricos estén instalados correctamente y probados,
monitorización, reparar el sistema en caso de fallo de hardware, diseñar, mantener y
monitorizar la red, realizar informes de administración del sistema, control del
mantenimiento preventivo,…
• Responsabilidad de software: instalar y configurar el SO, crear los sistemas de archivos y
monitorizar el uso de recursos, diseñar e implementar rutinas de copia de seguridad y
recuperación de información, configurar y mantener el software de impresión (spooler),
instalar y mantener el software para comunicaciones y redes, actualizar el SO y realizar
informes de la administración del sistema,…
• Responsabilidades con los usuarios: permitir el acceso a los usuarios de acuerdo a sus
necesidades, eliminar a usuarios ya no autorizados, evaluar los requerimientos de los
usuarios, planear el futuro crecimiento/cambio del sistema,…
• Responsabilidades de documentación: “que, quien, cuando y como se ha hecho”, problemas
que aparecieran (pitfalls), parámetros utilizados, informes de mantenimiento…

3. GESTION DE INCIDENCIAS
Las incidencias son comportamientos anormales del sistema, pueden deberse a
comportamientos anómalos del software, un problema en la red, incompatibles entre diferentes
arquitecturas y SO, etc. Este comportamiento acaba generando incidencias en los servicios que
proporciona el sistema como pérdidas de tiempo, decrementos de la funcionalidad,…

94
Service Level Agreement (SLA): contrato en el que se estipulan los niveles de un servicio en
función de una serie de parámetros objetivos, establecidos de mutuo acuerdo entre ambas
partes y que refleja contractualmente el nivel de operativo de funcionamiento, penalizaciones
por caída de servicio, limitación de responsabilidad por no servicio… Es decir, es el
mantenimiento de la disponibilidad de un determinado servicio basado en un compromiso,
medible y demostrable, del nivel de cumplimiento en su ejecución. Un SLA debe cubrir como
mínimo: soporte a clientes y asistencia, provisiones para seguridad y datos, garantías del sistema
y tiempos de respuesta como MTBF (Medium Time Between Fails) y MTTR (Medium Time To
Recover) tras una caída.
RPO (Recovery Point Objective): es la cantidad de datos que una empresa puede permitirse
perder y aun así seguir funcionando si sufre un tiempo de inactividad.
RTO (Recovery Time Objective): es el tiempo maximo que un negocio necesita para recuperar
sus sistemas después de inactividad producida por un incidente

Service Level Management (SLM): metodología y procedimientos necesarios para la gestión de


los SLA y para asegurar que todos los clientes de un departamento de TI reciben unos niveles de
servicio acordados responsable de asegurar que todos los Acuerdos de Nivel Operacional (OLA)
y Contratos de Apoyo (UC) sean apropiados.

4. ACTUALIZACION, REPARACIÓN Y MANTENIMINETO DEL SO


Los mecanismos de actualización de los sistemas operativos son específicos de cada SO, para
Windows la actualización se realiza a través de Windows Update (desde Windows 98), además,
a partir de Windows XP SP3, se introduce BITS (Background Inteligent Transfer Service). En 2002,
se introduce WSUS (Windows Server Update Services) que en Windows Server 2012 pasa a ser
un ROL que se puede tener habilitado en el servidor nativamente. Por otra parte, dependiendo
de la distribución de Linux, las herramientas más conocidas son:
• YUM (Yellow dog Update Modified): gestión de paquetes para sistemas Linux basados en
RPM “Red Hat Packet Manager” (RedHat, Fedora, CentOS…), es una herramienta para
instalar, actualizar y eliminar paquetes, es una herramienta en modo comando (“yum-
updatesd”, “yum-updateonboot”), YUM es usado por herramientas como YAST (Yet Another
Setup Tool) de SUSE y OpenSUSE.
• APT (Advanced Packaging Tool): herramienta de gestión de paquetes creada por Debian,
implantado también en Ubuntu. Se puede usar en comando (“apt-get”), o con interfaz
gráfica (SYNAPTIC), ofrecen un mecanismo de gestión de paquetes del SO con sintaxis
(sudo:apt-get:opciones), siendo las opciones más habituales:
- update: se encarga de actualizar la lista de paquetes disponibles, pero no instala o
actualiza ningún paquete.
- upgrade: se ocupa de actualizar las versiones previamente descargadas.
- apt:install (o apt-get:install): instala los paquetes

“apt-cache”: puede realizar búsquedas de paquete basándose en palabras clave con la


sintaxis (apt-cache:search:palabra_clave). También puede mostrar las cabeceras de las
versiones disponibles de un paquete con “apt-cache:show:paquete”.
“apt-remove”: borra los archivos binarios de un paquete instalado únicamente.
“apt-purge”: borra los archivos binarios de un paquete instalado y además los ficheros
de configuración del mismo.

95
4.2. MECANISMOS DE REPARACIÓN
• Bootrec: herramienta utilizada para las reparaciones pertinentes del sector de arranque del
sistema (MBR), tiene habilitados comandos como:
o /FixMBR: permite arreglar y/o recuperar el MBR, sector de arranque de un disco duro.
No sobrescribe la tabla de partición existente.
o /FixBoot: Esta opción escribe un nuevo sector de arranque en la partición del sistema
utilizando un sector de arranque compatible, es recomendable utilizar si el sector de
arranque está dañado o si el sector de arranque se sustituyó.
o /RebuildBCD: reconstruir por completo el almacén BCD (Boot Configuration Data) que
constituye el menú de arranque.
o /ScanOS: escanea todos los discos en busca de instalaciones compatibles con Windows,
es útil cuando hay instalaciones que no aparecen en el menú.
• SFC: ofrece la posibilidad de examinar todos los archivos protegidos para comprobar sus
versiones, descubre un archivo protegido se ha sobrescrito, recupera la versión correcta
desde la carpeta caché o los archivos origen de la instalación de Windows.

4.3. TIPOS DE MANTENIMINETO


En función de donde se encuentra el técnico:
• Mantenimiento “in site”: situación en la que se desplaza un técnico a la oficina en la que
manifiesta el problema.
• Mantenimiento “on site”: el técnico no se desplaza, ya está ubicado en dicha oficina.
• Mantenimiento remoto: problemas Software que se pueden solucionar mediante el uso de
aplicaciones de control remoto.
En función del tipo de acciones realizadas:
• Mantenimiento correctivo: ciertos cambios que buscan corregir errores precisos.
• Mantenimiento evolutivo: incorporaciones, modificaciones y eliminaciones para cubrir la
expansión o cambio de las necesidades.
• Mantenimiento adaptativo: modificaciones que afectan a los entornos de configuración de
hardware, software de base…
• Mantenimiento perfectivo: revisión constante del software para detectar posibles focos de
problemas que puedan surgir.
Periodicidad del mantenimiento:
• Tiempo de respuesta: tiempo que transcurre desde el aviso de avería hasta que el equipo
técnico se dispone a resolver dicha avería.
• Mean Time To Repair (MTTR): tiempo que transcurre desde la notificación de la incidencia
y la restitución del elemento.
• Mean Time Between Failures (MTBF): periodo medio comprendido entre dos fallos
consecutivos, es usado como medida de calidad de los equipos.
• Tiempo mínimo garantizado de disponibilidad.

* TPM (Third Party Maintenance): empresas de servicios de mantenimiento.


* Remedy Service Desk: es una aplicación de software para implementar una mesa de ayuda a
nivel enterprise compatible con los procesos de ITIL que incluye manejo de indicentes, manejo
de problemas, niveles de servicio y muchas facilidades más ya que forman parte de la suite BMC
Remedy ITSM.

96
TEMA 2 – ALMACENAMIENTO, VIRTUALIZACION Y CONTENEDORES

1. SISTEMAS DE ALMACENAMIENTO Y SU VIRTUALIZACION


El almacenamiento de datos es el proceso por el cual se archiva, organiza y comparten los datos
que componen los archivos que se utilizan en el día a día como documentos de texto, imágenes,
configuraciones, vídeos, sonidos y cualquier otra información en formato digital.
El almacenamiento de datos se realiza en dispositivos de hardware que disponen de unas
características que los definen y que los hacen más adecuados para guardar copias de seguridad,
dar acceso a los datos, transportar la información y otras funciones. Los principales dispositivos
de almacenamiento de datos, son:
• Cabinas de discos: entornos de almacenamiento de discos organizados en bandeajas, que
incluyen los elementos de conectividad a los servidores, los controladores (protocolos de
acceso, RAID, caché, mecanismos de copia…) y los discos individuales. Las partes más
importantes, son:
o Front-end: se encargan de proporcionar conectividad e implementar las distintas
interfaces de la cabina (FC, SAS, iSCSI, FICON…), es muy importante el número de puertos
que presentan para cada uno de los protocolos que soportan, así como la velocidad de
los mismos.
o Back-end: se encarga de la conectividad a bajo nivel a los discos y sus componentes (FC,
SAS, SATA…). Su elemento principal es la controladora, basada en garantizar la
redundancia, esta puede ser proporcionada mediante varias controladoras activas o
mediante una controladora activa y otra de respaldo. La memoria caché de las
controladoras puede estar dotada de configuraciones en espejo para garantizar la
máxima disponibilidad.
Grupo de almacenamiento (pool): bloque de almacenamiento creado a partir de uno o
más discos físicos y que nos permiten agregar la capacidad de una forma flexible, se carga
un disco físico a la cabina y se asigna al grupo de almacenamiento para ampliar su
capacidad.

o Cintas: orientada principalmente a proporcionar gran capacidad de almacenamiento a un


coste inferior al de los discos, a costa de perder rendimiento en la grabación y el acceso a
los datos. Presentan un modo secuencial de acceso a los datos renta frente al modo
aleatorio de los discos, la tecnología de cintas es más lenta que la del disco, dos modelos de
trabajo de las cintas:
o Cintas orientadas a trabajo “on-line”: la cinta se utiliza directamente por el servidor
como un dispositivo de almacenamiento convencional.
o Cintas orientadas a backups: la cinta se utiliza solamente para almacenar backups.
La principal diferencia entre ambos modos es que en las orientadas a backups funcionan de
forma continua, sin necesidad de parar, rearrancar la cinta ni rebobinar en una misma sesión
de escritura. El uso online impone requisitos mecánicos en las cintas mucho más restrictivos
que en el caso de las cintas destinadas a backup, es casi exclusivo del entrono mainframe,
en sistemas abiertos las cintas se utilizan principalmente para backup.
Existen dos tipos de cintas: de “grabación helicoidal” y las de “grabación longitudinal” con
menor capacidad que las de grabación helicoidal, pero más rápidas.

97
Tecnología de cintas más conocidas:
o Cintas DAT (Digital Audio Tape): surgieron como cintas de grabación de audio digital,
posteriormente pasaron a estándar para grabación de datos. Utilizan cinta de 4mm y
grabación helicoidal. Actualmente se dispone de cintas DAT de hasta 80GB y velocidades
de acceso de hasta 12MBps, las cintas deben renovarse tras unas 2000 pasadas.
o Cintas de 8mm: inicialmente se trataba de un estándar para grabación de video, se
transformó para grabación de datos, la tecnología es similar a las cintas DAT, pero con
mayor capacidad y mayor velocidad de acceso. Tienen memoria interna que almacena
datos sobre índices en la cinta, estado de la misma… acelera los tiempos de búsqueda y
el mantenimiento.
o Cintas QIC (Quarter-Inch Cartridge): grabación lineal con hasta 4GB de almacenamiento
y 1MBps de velocidad, deben renovarse tras 5000 pasadas.
o Cintas TRAVAN: surgen a partir de las QIC, con capacidad para 20GB y 4 MBps.
o Cintas DLT (Digital Line Tape): grabación lineal, capacidad para 300GB y 36MBps.
o Cintas LTO (Linear Tape-Open): grabación lineal, los cartuchos tienen memoria interna
que almacena información de estado de la cinta que permite a las unidades detectar un
cartucho degradado antes de que se produzca el fallo. Presenta una duración superior
al millón de pasadas, la generación 6 presenta capacidades de 6GB y 400MBps.
Las unidades de cinta pueden estar agrupadas en librerías, pueden ser manuales, en las que
deben ser operadores los que introduzcan cintas en las unidades. Están en desuso, siendo
sustituidas por librerías automáticas en las que un brazo mecánico selecciona las cintas y las
introduce o saca de las unidades de cinta.
Existen dos tipos de productos de automatización, los cargadores automáticos que
contienen una o dos unidades de cinta y un número limitado de cartuchos normalmente no
más de 30, y las librerías automáticas, que disponen de varias unidades y varios cientos o
miles.

2. ARQUITECTURA DE ALMACENAMIENTO DE DATOS


Las arquitecturas de almacenamiento podemos clasificarlas en dos tipos atendiendo al acceso
requerido, ya sea directamente a disco o a fichero:
o Acceso a nivel de disco (dentro de las tramas del protocolo de capa 2 [SAS, FC, iSCSI…] se
transportan, a nivel de bloque, los datos):
o Con discos internos, por medio de una cabina dedicada (DAS)
o Mediante una red especifica de almacenamiento (SAN)
o Acceso a nivel de fichero:
o Sistema de ficheros creado y gestionado por el sistema operativo del servidor (NAS),
tendrá asociado un determinado espacio en discos. El cliente o aplicación hará las
peticiones de los mismos al NAS de forma transparente para el usuario.

2.1. DISCOS INTERNOS


El modo más básico de conectividad, los discos están conectados a un bus interno del servidor,
presenta dos variantes: conectividad basada en el bus SCSI (más avanzado y caro) para sistemas
empresariales o conectividad basada en el bus ATA para sistemas domésticos. Ambos buses son
de tipo paralelo, lo que conlleva limitaciones que produjeron la aparición de SAS como evolución
de SCSI y SATA como evolución de ATA, ambas modifican las capas bajas de los protocolos
pasando a un protocolo serie en lugar de paralelo.

98
Los datos de aplicaciones con un mínimo de criticidad no deberían ubicarse en los discos
internos del servidor, quedando estos relegado a alojar la instalación del SO y de la aplicación
(actualmente debido al auge de la virtualización de servidores también la instalación reside en
una red separada de almacenamiento en forma de máquina virtual que puede ubicarse en un
servidor y otro de manera rápida).
2.2. DIRECT ATTACHED STORAGE (DAS)
La conectividad más común entre servidores y almacenamiento está basada
en SCSI o en FC, el protocolo SAS sustituye la capa física paralela de SCSI por
un protocolo serie y puede ser utilizado para conectar las cabinas de
almacenamiento directamente a los servidores, el almacenamiento externo
es utilizado igual que el interno, sin que las capas de SO distingan entre
ambos, el uso del almacenamiento externo dedicado resuelve los problemas
de escalabilidad y seguridad del almacenamiento interno, ya que las cabinas
de discos son ampliables y tienen una capacidad máxima muy superior,
además presentan características de alta disponibilidad como redundancia de
componentes, niveles de RAID, en espejo o con paridad para recuperarse de
fallos de disco, software de copia de datos en tiempo real que permite
replicar datos en tiempo real en otra cabina…
La interfaz gráfica de usuario con el servidor o con la estación de trabajo está hecha por medio
de un HBA (Host Bus Adapter): hardware que conecta un servidor a una red de computadoras y
dispositivos o unidades de almacenamiento. Normalmente, se refieren a dispositivos a los que
se conecta otros dispositivos (IDE, SCSI, FC, eSATA), pero también se suele utilizar el mismo
término para los dispositivos que se conectan a sistemas Ethernet, FireWire y USB.
Recientemente, la llegada del iSCSI ha dado lugar a los HBA vía Ethernet, que se diferencian de
las tarjetas de red en que incluyen hardware dedicado para iSCSI.
Un típico sistema DAS provee controladores embebidos. El manejo del RAID es off-load, o
simplemente sin RAID. Los HBA pueden ser usados reduciendo costos. Los controladores DAS
también habilitan acceso compartido al almacenamiento, que permite servidores múltiples (no
más de cuatro) para acceder a la misma unidad lógica, una característica que es simplemente
usada para clustering. En este punto, los sistemas DAS de alto rango comparten similitudes con
los sistemas SAN de nivel básico.
2.3. STORAGE AREA NETWORK (SAN)
Red dedicada al almacenamiento, conectada a las redes de comunicación de una organización,
los equipos con acceso a las SAN tienen una interfaz de red especifica que se conecta a la SAN.
Es una arquitectura de acceso a bloques en la que los protocolos de acceso son los mismos que
en discos o cabinas dedicadas. Los discos no están conectados internamente al servidor. Al
tratarse de un acceso por bloques, el sistema de ficheros es creado por el servidor, este tipo de
almacenamiento no permite el acceso de varios servidores a los mismos datos a no ser que estos
formen parte de un clúster de servidores y se coordinen para el acceso a los datos.
La unidad de almacenamiento que provee una red SAN se denomina LUN (Logical Unit Number)
y es un disco virtual proporcionado por la SAN, las SAN se componen de tres capas:

99
o Capa Cliente: servidores, dispositivos o componentes (interfaz de red, de
fibra…) y software (SO).
o Capa Red: los cables (FO) así como los SAN Hubs y los SAN Switches como
punto central de conexión para SAN.
o Capa Disco: agrupaciones de discos (Disk Arrays, Memoria Caché, RAIDs) y
cintas, empleados para almacenar datos.

Posibles protocolos de transporte de datos en una SAN:


o SAN-FC: un conjunto de switches que conmutan las tramas FC.
o iSCSI (Internet SCSI): estándar que permite el uso del protocolo SCSI sobre
redes TCP/IP, permiten el intercambio de tramas SCSI sobre TCP/IP, en
lugar de sobare FC. El objetivo es utilizar la infraestructura LAN existente, a
igualdad de ancho de banda para el transporte, las redes iSCSI son menos
eficientes que las redes FC.
o FCoE (Fiber Channel sobre Ethernet): está diseñado sin capa IP, por lo que
no es posible enrutar directamente paquetes IP.

2.3.1. VIRTUALIZACIÓN DE SISTEMAS DE ALMACENAMIENTO DE DATOS (VSAN)


Permite unificar el almacenamiento local de todos los servidores de un clúster y gestionarlo
como si se tratase de un almacenamiento compartido SAN tradicional. Una red de área de
almacenamiento virtual es una colección de puertos de un conjunto de conmutadores
conectado que forma un tejido virtual, en el acceso a bloques, la relación entre el servidor y la
cabina física de almacenamiento de forma que sea posible cambiar la cabina o mover los datos
de una cabina a otra, VSAN se puede implementar de tres formas:
o En el servidor: se debe instalar un software de virtualización que oculta al resto del SO la
cabina física en la que residen los datos. El SO se encarga de acceder a los dispositivos
virtuales que luego la capa inferior se encarga de transformar en los dispositivos reales. El
inconveniente de este tipo de virtualización es que requiere instalación en los servidores.
VRRP (Virtual Router Redundancy Protocol): protocolo de comunicaciones no propietario
definido en el RFC 3768 diseñado para aumentar la disponibilidad de la puerta de enlace por
defecto dando servicio a máquinas en la misma subred. El aumento de fiabilidad se consigue
mediante el anuncio de un router virtual como una puerta de enlace por defecto en lugar de
un router físico. Dos o más routers físicos se configuran representando al router virtual, con
sólo uno de ellos realizando realmente el enrutamiento. Si el router físico actual que está
realizando el enrutamiento falla, el otro router físico negocia para sustituirlo. Se denomina
router maestro al router físico que realiza realmente el enrutamiento y routers de respaldo
a los que están en espera de que el maestro falle.
o En red: la propia red SAN, mediante conmutadores inteligentes, proporciona la
virtualización, el servidor accede a los discos utilizando direcciones de cabina virtuales, es
posible cambiar el repositorio físico de los datos sin que los servidores sean conscientes de
ello ya que siguen solicitando los datos a las cabinas virtuales.
o En cabina: una cabina con capacidades avanzadas se encarga de reenviar las peticiones de
los servidores a las cabinas en las que realmente residen los datos. La cabina virtualizadora
como destino de sus peticiones, luego el dispositivo de virtualización envía los datos a la
cabina que corresponda en cada caso.

100
2.4. NETWORK ATTACHED STORAGE (NAS)
Se realiza acceso a ficheros directamente contra el servidor de ficheros o la cabina
de almacenamiento con capacidad NAS donde se gestiona el sistema de ficheros.
El SO del servidor monta un sistema de ficheros externo a través de alguno de los
protocolos destinados a ese fin (NFS, CIFS…) y delega la transformación de fichero
a bloque de bits en la red de almacenamiento. La conexión de red que permite el
acceso al sistema de ficheros puede ser:
o Conexión a través de LAN: solventa el problema del acceso a los datos desde
diferentes orígenes, montan los sistemas de ficheros exportados que son
utilizados por las aplicaciones como si fuesen discos locales. Los sistemas que
actúan de servidores de ficheros pueden ser servidores de propósito general
o puede tratarse de dispositivos especiales, NAS, dedicados en exclusiva a
servir fichero y diseñados especialmente para ello, tiene como principales
funciones la implementación de los protocolos que permiten compartir los
ficheros y la gestión de la estructura de ficheros. El almacenamiento final de
los datos se realiza lógicamente mediante bloques de bits que pueden residir
tanto internamente en el servidor de ficheros como extremamente en una
cabina de la red SAN.
o Conexión a través de WAN: donde el ancho de banda es menor y especialmente la latencia
mayor presenta problemas pueden hacer inviable la compartición de fichero a grades
distancias. Para evitar estos problemas está surgiendo el concepto de WAFS (Wide Area File
Services) basado en la compresión de las tramas de datos de los protocolos CIFS y NFS, para
evitar un excesivo número de mensajes y el uso de cache local en las oficinas remotas.
4. POLITICAS, SISTEMAS Y PROCEDIMIENTOS DE BACKUP Y RECUPERACION
La conservación de la información se basa en la autenticidad, confidencialidad, integridad y
disponibilidad de la información, su finalidad es mantener la información para que sea utilizada
en el momento preciso. La salvaguarda y recuperación de la información en un sistema de
información, para ser capaces de mantener la disponibilidad de los servicios, no solo es
importante replicar las redes, sistema de comunicaciones, servidores, estaciones sistemas
críticos, sino que además es necesario mantener la capacidad de acceso a los datos puesto que
estos constituyen la esencia de información. Se construyen los dispositivos y sistemas de
almacenamiento con la calidad suficiente para garantizar un tiempo de fallo mínimo, hace uso
de la redundancia en la forma de replicación de la información.
Los métodos de recuperación de datos son aquellos procesos llevados a cabo con el objetivo de
restablecer el acceso a la información que sigue estando almacenada en los dispositivos pero
que no está disponible por alguna causa:
o Métodos de recuperación lógica: cuando todos los componentes del dispositivo funcionan
correctamente y por tanto se puede acceder a todos los sectores donde se almacena la
información.
o Métodos de recuperación física: algún componente físico del dispositivo se encuentra
dañado, se podrá abordar una recuperación física reparando o sustituyendo el componente
dañado y accediendo nuevamente a la información guardada.

101
4.1. ESTRATEGIAS Y POLÍTICAS DE BACKUP
Para construir una estrategia asegurando que cualquier caída pueda ser recuperada
rápidamente es indispensable contar con una plataforma de BackUp regida por un Plan de
Contingencia probado y actualizado, los procesos de Copias de Resguardo consumen tiempo y
recursos del sistema es necesario programar bien su plazo de ejecución para que no interfiera
con el buen funcionamiento de los sistemas. Los tipos de copias de seguridad que se pueden
realizar son:
o Copias Completas: copia completa de todos los archivos, solo requiere una cinta para
recuperar todos los datos necesarios, la alternativa más rápida a la hora de realizar la
recuperación.
o Copia Incremental: el BackUp empieza por una copia
completa de todos los datos, la siguiente copia se
hace solo sobre los archivos que se hayan modificado,
al día siguiente se realiza el mismo proceso. Raciona
y optimiza los medios de BackUp por encima de la
velocidad de recuperación de los mismos.
o Copia Diferencial: compra cada copia diaria con la
última copia completa disponible, la primera copia
Incremental el igual a la primera copia diferencial,
pero al segundo día, el incrementa solo conserva los
datos modificados desde la copia anterior, el
diferencial lo hace desde la copia completa.Es más
exigente en cuanto al consumo de medios, pero es
mucho más cómodo a la hora de realizar la recuperación de archivos ya que como máximo
requiere 2 medios, cada día acumula la copia del día anterior, consume más recursos.
Archive Bit: marca que llevan todos los archivos del sistema la cual se habilita si el archivo
ha sido resguardado mediante un programa de BackUp, de este modo analizan dicho bit y
hacen copia solo de los archivos que lo tienen desactivado, lo que significa que han sufrido
algún cambio desde el ultimo BackUp.

Estrategias de rotación de soportes:


o Hijo: método más simple, consiste en contar con un grupo de soportes (cintas) donde
usamos un soporte por día durante una semana, es posible recuperar los archivos que
tengan por lo menos una semana de antigüedad. Cada BackUp diario es completo y las cintas
se van rotando. Es un esquema adecuado para ambientes con problemas a la hora de
acceder a los medio o ambientes con cambios muy dinámicos de sus archivos.
o Padre e Hijo: funciona como el anterior pero además de asegurar datos de la última semana
incorpora 5 medios más para conservar una semana adicional, se realizan BackUp
diferenciales o incrementales de lunes a jueves y se realiza un acopia completa el viernes
que se guarda en una ubicación externa.
o Padre, Hijo y Abuelo: medio más común de BackUp, se mantienen copias diferenciales e
incrementales durante 4 semanas con una copia completa semanal. De las copias completas
semanales la última del mes se conserva como copia completa mensual, y es reemplazada
por la siguiente de un grupo de 12 que nos permiten conservar la información durante un
año.

102
4.2. DIFERENCIA ENTRE BACKUP DE SISTEMAS FISICOS Y VIRTUALES
En el BackUp de sistemas físicos, las maquinas físicas necesitan de un software específico
mediante el cual sea posible realizar copia, se puede realizar locamente mediante un sistema de
arrays de discos o remotamente en un entorno NAS o SAN. En un entorno tradicional de
múltiples servidores físicos, las copias de seguridad se realizan instalando un agente en cada
servidor y añadiendo una tarea a la programación de copias de manera que u servidor especifico
de backup se conecta a cada uno de los agentes para iniciar la copia de los datos que sean
necesarios.
Los BackUp de sistemas virtuales dan facilidades para el despliegue en otro servidor de VMs en
mucho menos tiempo, proporcionando soluciones para copias completas como:
o Copias completas en caliente: de una VM alojada en un host ESXi en un segundo servidor de
máquinas virtuales sin que las VM alojadas en el primer servidor deje de estar funcionando,
se llama replicación de VMs.
O Snapshots: BackUp de la VM en frio (apagando la VM), pero reduciendo la duración que
tarda en hacer la copia, puede ser completo o solo de ficheros concretos. Muchos sistemas
(VMWare) ofrecen plugins que permiten realizar copias en caliente de VMs completas sin
pérdida de continuidad de negocio.

6. VIRTUALIZACIÓN DE SISTEMAS Y VIRTUALIZACIÓN DE PUESTOS DE USUARIO


Es la combinación de hardware y software, permite a un conjunto de recursos físicos funcionar
como si fueran múltiples recursos lógicos. Consiste en añadir una capa de abstracción que
separa el hardware físico del software que lo usa permitiendo flexibilidad y una mejor utilización
de los recursos de los servidores. Es necesario multiplexar el acceso físico a los recursos
mediante una interfaz que encapsule los detalles de la arquitectura subyacente, es posible
virtualizar servidores, almacenamiento, redes e incluso puestos de trabajo. Las máquinas
virtuales se pueden gestionar, actualizar y manipular fácilmente como si fuesen ficheros, por lo
que proporcionar una máquina virtual es un proceso rápido y simple.
El software que se ocupa de implementar dicha capa de abstracción y de encapsular es el SO
anfitrión (host), se encarga de gestionar los accesos al os recursos físicos por parte de los SO
huésped (guests). Un sistema anfitrión suele albergar varios sistemas invitados, dentro de los
recursos existentes se puede lograr la virtualización de procesador (se logra coordinar el acceso
al procesador por parte de las distintas VMs), memoria (debe ser gestionada cuidadosamente
para posibilitar que múltiples sistemas alojados compartan memoria física impidiendo que los
sistemas sobrescriban datos de otros), red (garantiza que las VM enviarán y recibirán el tráfico
de red apropiado) y almacenamiento (se asegura que cada una de las máquinas virtuales tienen
su propio almacenamiento de datos y que está aislado del resto).

Un caso particular de virtualización es la Java VM, lo que se virtualiza es un proceso, se ejecuta


como proceso en el SO y soporta solo un proceso, cuando se lanza este se ejecuta la VM
automáticamente y se le proporciona al proceso un entorno de ejecución independiente de
la plataforma hardware y del SO, permitiéndole que se ejecute sobre cualquier plataforma.

103
6.1 VENTAJAS DE LA VIRTUALIZACION DE SERVIDORES
El modelo tradicional del uso de un servidor dedicado es extremadamente costoso debido al:
o Coste del hardware: los servidores crecen en capacidad y en potencia de procesamiento,
dedicar un servidor para cada aplicación con objeto de garantizar un control total sobre las
mismas no es rentable.
o Coste del software: cada servidor requiere licencias.
o Coste de energía e infraestructura: la conexión y el suministro de energía para los servidores
pueden ser extremadamente caros.
o Costes de gestión: los costes de gestión suponen la mayor parte, el personal de TI tiene que
actualizar, mantener cuentas, hacer copias…
El modelo de virtualización de servidores presenta unas ventajas que motivan a una
organización a llevar a cabo un proceso de consolidación de servidores mediante virtualización:
o Optimización en el uso de hardware: la mayoría de servidores físicos están trabajando a un
10% o 15% de su capacidad total de proceso, se desaprovecha casi la totalidad de su
capacidad, aplicando la virtualización las organizaciones pueden mejorar la ratio de
utilización de sus recursos y obtener grandes ahorros energéticos.
o Aislamiento entre máquinas virtuales: las VMs se ejecutan en un entorno seguro, aislado e
independiente del resto de VMs, facilitando la instalación de un único servido por máquina,
algo que a nivel de hardware es bastante costosos.
o Alta disponibilidad: en caso de alguna contingencia tiene un coste mucho mayor que en el
caso de servidores, suele implicar la instalación de tarjetas de memoria y/o procesador
además de la instalación del SO y la instalación del servicio en cuestión, en el caso de VM se
puede tener la maquina duplicada preparada y en caso de contingencia poder restaurar el
servicio en cuestión de minutos perdiendo el servicio únicamente durante el reincido de la
VM.
o Evaluación de nuevos sistemas operativos o actualizaciones: con un entorno virtual se
pueden realizar pruebas de nuevos SO manteniendo independiente la maquina con el
servicio en producción.
o Mejor aprovisionamiento y administración del entorno: es posible realizar copias de
seguridad del sistema al completo permitiendo mover maquinas completas entre los
servidores físicos, la gestión de la carga de trabajo se simplifica, es posible la toma de
snapshots (imágenes concretas del sistema en el momento que se toma, de forma que se
pueda restaurar al momento del snapshot en caso de error del sistema).

6.2. TIPOS DE VIRTUALIZACIÓN DE SERVIDORES


El objetivo es ofrecer múltiples servidores virtuales mediante un único equipamiento físico. El
software encargado de realizar la abstracción de los recursos físico y de gestionar el acceso se
denomina Hypervisor o VMM (Virtual Machine Monitor), existen dos tipos:
o Tipo 1, Hypervisor nativo (bare-metal): también denominado unhosted, permiten
desplegarse directamente sobre el hardware y se trata de sistemas que en sí mismos ya son
un pequeño SO con un núcleo que ya incorpora un hypervisor integrado que permite crear
y administrar los accesos de los SO invitados a los recursos hardware, no se requiere contar
con un SO anfitrión, es el propio Hypervisor el SO (VMWare ESXi, Hyper-V, Citrix,
XenServer…). Ofrecen prestaciones como mayor capacidad de procesamiento, posibilidad
de migración de VM en caliente, balanceo de carga entre servidores,…

104
o Tipo 2, Hypervisor alojado (hosted): se necesita de un sistema operativo host en la máquina
en la que se alojan, no se pueden desplegar directamente sobre el hardware necesitando
de un SO en el host (Windows, Linux…) y sobre este se ejecuta el Hypervisor (VMWare
Workstation, Oracle VirtualBox, QEMU…).
Dentro de la virtualización de servidores destacan las técnicas:
• Virtualización de hardware/servidor: la técnica más usada permite ejecutar múltiples SO en
las distintas máquinas virtuales que sean compatibles con la arquitectura hardware
subyacente. EL Hypervisor es el que administra los recursos traduciendo las peticiones de
los sistemas invitados a solicitudes al sistema anfitrión, debe contar con los drivers
necesarios para el acceso a los recursos físicos. La virtualización de los recursos hardware
por separado, creando un driver específico para cada recurso y por otro lado la creación de
un micro kernel sobre el que funciona igualmente tanto el SO como las VMs. Gracias al
encapsulamiento e independencia de la VMs estas son gestionadas como ficheros dentro d
la estructura de ficheros del SO, es posible mover y copiar una máquina virtual de un lugar
a otro o guardarla en un USB hasta una SAN de una empresa.
Proxmox VE: entorno de virtualización de servidores de código abierto. Está en
distribuciones GNU/Linux basadas en Debian con una versión modificada del Kernel RHEL y
permite el despliegue y la gestión de máquinas virtuales y contenedores.

• Virtualización parcial o paravirtualización: Hypervisor ofrece a los SO invitados una interfaz


especial, pueden acceder a los recursos físicos a través de llamadas al sistema denominadas
hypercalls, lo que hace que tenga mejor rendimiento comparado con la virtualización
completa. Es necesario realizar una modificación en el SO invitado, permitiendo al sistema
invitado realizar llamadas a los recursos de manera directa, acelerando el rendimiento de
ejecución (esta modificación solo es posible en sistemas de software abierto como Solaris,
Linux…). A nivel interno, los SO se encuentran estructurados en capas o anillos (rings) donde
el ring 0 es el más privilegiado y done se ejecuta el núcleo del SO como proceso más
importante, dejando el ring 3, el menos privilegiado, para la ejecución de las aplicaciones.
Al virtualizar un SO, su núcleo no puede ejecutarse en el ring =, por lo que se utiliza una
técnica denominada “ring deprivileging” donde el SO es modificado para poder ejecutarse
en el ring 1 dejando el ring 0 para el Hypervisor. Este tiene que recompilar continuamente
el SO invitado para obligar a tosa las instrucciones a ejecutarse fuera del ring 0, lo que
ralentiza la ejecución de las VMs. La alternativa es la emulación del ring 0 completo, pero es
una solución muy lenta. Para solucionar esto, Intel (Intel VT-x Vanderpool) y AMD (AMD-V)
proporcionan ayuda por hardware, requiere la activación en BIOS e incrementa
notablemente el rendimiento de la virtualización completa del hardware. (Ej: Xen, UML,
OpenVZ…)
• Virtualización de puestos de usuario: se refiere a la virtualización del escritorio y aplicaciones
de cada usuario. Separa el escritorio que utiliza un usuario respecto del equipo que manipula
físicamente, el equipo del usuario conectará con un servidor centralizado de la organización
donde se ejecutar su escritorio “VDI (Virtual Desktop Infrastructure)”. Todas las
aplicaciones, procesos y datos del usuario se almacenarán de forma centralizada, pudiendo
acceder al escritorio desde cualquier dispositivo y cualquier lugar siempre que cuente con
el cliente adecuado para conectar con el servidor, los componentes principales de este tipo
de virtualización son:

105
o Servidor de escritorios y aplicaciones: ejecutan los distintos escritorios y/o aplicaciones
de los usuarios, garantizando seguridad y aislamiento, se suele configurar un servidor de
aplicaciones adicional que se ocupara de la ejecución de las distintas aplicaciones
ofrecidas a los usuarios. En ambos casos se basan en sistemas operativos multiusuarios.
o Equipo de acceso del usuario: conecta con el servidor de escritorios y comunica cualquier
cambio de pantalla que realice el usuario.
o Red de comunicaciones: garantiza la comunicación correcta entre los equipos de acceso
del usuario y los servidores del escritorio.
o Protocolos de comunicación: según el tipo de escritorio a utilizar, protocolo “RDP”
(Windows), protocolo “X Windows” (Linux), protocolos ICA, NX, VNC…
En función de la complejidad de la infraestructura puede haber un servidor que actúe de
“bróker” siendo el intermediario entre el usuario y el servidor de escritorio, ejemplos:
VMWare Horizon, XEN Desktop, Quindel…
Dependiendo de donde se lleve a cabo la ejecución del escritorio:
o Modo centralizado: los escritorios se ejecutan en un servidor centralizado, dos tipos:
▪ Persistentes o estáticos: asignado directamente a un usuario y que mantiene su
configuración una vez cierra la sesión.
▪ No persistentes o dinámicos: una imagen maestra para todos los usuarios a la que
se realiza un clon y se le asigna al usuario en el momento de iniciar sesión.
o Modo alojado: proveedor externo es el que ofrece el servicio de escritorio virtualizado
con el requisito d contar con una conexión de red entre le equipo de usuario y el servidor
alojado.
o Modo remoto: trabajar sin conexión de red al servidor de escritorios, se basa en realizar
una copia del escritorio al equipo de usuario y este lo ejecuta sin necesidad de conexión
a la red (principal inconveniente es la seguridad, una pérdida del equipo del usuario
implica una pérdida de los datos almacenados).
• Virtualización de software: El SO anfitrión virtualiza el hardware a nivel del SO, permitiendo
que varios sistemas invitados se ejecuten de manera autónoma en el mismo servidor físico
accediendo por igual a todos los recursos del sistema. Los servidores se virtualizan en la capa
del SO (kernel) sin necesidad de un Hypervisor, se crean entornos virtuales (EV) asilados en
un único servidor físico. Existe una capa que se carga directamente en el servidor base, la
siguiente capa superior muestra cada recurso hardware que debe virtualizarse. A
continuación, se encuentra la capa de virtualización (con un sistema de archivos propietario
y una capa de abstracción de servidor de kernel) esta capa hace que cada uno de los
contenedores aparezca como servidor autónomo, estos contenedores utilizan el mismo SO
que el sistema anfitrión, mismas librerías, binarios y drivers, pero disponen de una
estructura de directorios propia. (Ej: Virtuozzo)
Veeam Backup & Replication: software de gestión de backup, recuperación ante desastres y
gestión inteligente de datos para infraestructuras virtuales (VMWare), físicas y multicloud.

Acronis Cyber Backup: solución de copia de seguridad para máquinas virtuales y hosts de
Oracle VM Server.

106
6.4. VIRTUALIZACION DE SOFTWARE USANDO CONTENEDORES
Este método permite la fácil creación de contenedores para la ejecución de aplicaciones, la idea
central es crear un contenedor (un proceso para el SO) con aquellas librerías, archivos y
configuraciones necesarias para la aplicación concreta, sin tener que instalar un SO completo de
forma subyacente, se diferencia de una máquina virtual en que esta necesita contener todo el
SO, mientras que un contenedor aprovecha el SO sobre el que se ejecuta. Las ventajas del uso
de contenedores son:
o Portabilidad: se puede desplegar en cualquier otro sistema que soporte esta tecnología (que
tenga instalado el software virtualizador).
o Flexibilidad: arranque de un contenedor supone el mismo tiempo que arrancar un proceso
en el sistema, mientras que arrancar una máquina virtual implica más tiempo.
o Ligereza: al contener únicamente las dependencias necesarias para la ejecución de la
aplicación ocupa mucho menos espacio.
6.4.1. DOCKER
Proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de
contenedores de software, proporcionando una capa adicional de abstracción y automatización
de virtualización de aplicaciones en múltiples sistemas operativos.
Docker utiliza características de aislamiento de recursos
del kernel Linux, tales como cgroups (control groups:
característica del kernel de Linux que limita, explica y aísla
el uso de recursos de una colección de procesos) y
namespaces (característica del kernel de Linux que divide
los recursos del kernel de modo que un conjunto de
procesos ve un conjunto de recursos mientras que otro
conjunto de procesos ve un conjunto diferente de
recursos) para permitir que "contenedores"
independientes se ejecuten dentro de una sola instancia
de Linux, evitando la sobrecarga de iniciar y mantener
máquinas virtuales. El soporte del kernel Linux para los namespaces aísla la vista que tiene una
aplicación de su entorno operativo, incluyendo árboles de proceso, red, ID de usuario y sistemas
de archivos montados, mientras que los cgroups del kernel proporcionan aislamiento de
recursos, incluyendo la CPU, la memoria, el bloque de E/S y de la red.
Docker incluye la biblioteca “libcontainer” como su propia manera de utilizar directamente las
facilidades de virtualización que ofrece el kernel Linux, además de utilizar las interfaces
abstraídas de virtualización mediante libvirt, LXC (Linux Containers) y systemd-nspawn. Docker
implementa una API de alto nivel para proporcionar contenedores livianos que ejecutan
procesos de manera aislada. Usar Docker para crear y gestionar contenedores puede simplificar
la creación de sistemas altamente distribuidos, permitiendo que múltiples aplicaciones, las
tareas de los trabajadores y otros procesos funcionen de forma autónoma en una única máquina
física o en varias máquinas virtuales. Esto permite que el despliegue de nodos se realice a
medida que se dispone de recursos o cuando se necesiten más nodos, lo que permite una
plataforma como servicio (PaaS) de estilo de despliegue y ampliación de los sistemas como
Apache Cassandra, MongoDB o Riak. Docker también simplifica la creación y el funcionamiento
de las tareas de carga de trabajo o las colas y otros sistemas distribuidos. Docker puede
integrarse con Amazon Web Services, Microsoft Azure, Ansible, Jenkins…

107
Comandos útiles en Docker:
• ps: lista todos los contenedores en ejecucion
• stop: detiene la ejecucion de un contenedor
• search: busca una imagen contenda en Docker
• builder: gestiona builds
• config: gestiona Docker configs
• container: gestiona containers
• context: gestiona contexts
• images: lista y gestiona imagenes de sistema
• network: gestiona networks
• swarm: gestiona Swarm (permite agrupar una serie de hosts de Docker en un clúster y
gestionar los clústeresde forma centralizada).
• node: gestiona Swarm nodes
• plugin: gestiona plugins
• secret: gestiona Docker secrets
• service: gestiona services
• stack: gestiona Docker stacks
• system: gestiona Docker
• trust: gestiona trust on Docker images
• volume: gestiona volumenes

108
6.4.2. KUBERNETES
Sistema de código libre para la automatización del despliegue, ajuste de escala y manejo de
aplicaciones en contenedores, define un conjunto de bloques de construcción (primitivas) que
conjuntamente proveen los mecanismos para el despliegue, mantenimiento y escalado de
aplicaciones. Los componentes que forman Kubernetes están diseñados para estar débilmente
acoplados pero a la vez ser extensibles para que puedan soportar una gran variedad de flujos de
trabajo. La extensibilidad es provista en gran parte por la API de Kubernetes, que es utilizada
por componentes internos así como extensiones y contenedores ejecutados sobre el mismo.
• Capsulas (Pods): la unidad básica de planificación, esta agrega un nivel de abstracción más
elevado a los componentes en contenedores. Consta de uno o más contenedores en los que
se garantiza su ubicación en el mismo equipo anfitrión y pueden compartir recursos. Cada
pod en Kubernetes es asignado a una única dirección.
• Etiquetas y selectores: permite a los clientes (usuarios o componentes internos) vincular
pares clave-valor (label) a cualquier objeto API en el sistema, como pods o nodos. Las
etiquetas y los selectores son el mecanismo principal de agrupamiento en Kubernetes, y son
utilizados para determinar los componentes sobre los cuales aplica una operación.
• Controladores: un controlador es un bucle de reconciliación que lleva al estado real del
clúster hacia el estado deseado.
o Replication Controller: se encarga de la replicación y escala mediante la ejecución de un
número especificado de copias de un pod a través de un clúster. También se encarga de
crear pods de reemplazo si un nodo subyacente falla.
o DaemonSet Controller: se encarga de asegurar la ejecución de exactamente un pod en
cada máquina (o algún subconjunto de máquinas).
• Servicios: conjunto de pods definidos por el selector de etiquetas. Kubernetes provee de un
servicio de descubrimiento y enrutamiento de pedidos mediante la asignación de una
dirección IP estable y un nombre DNS al servicio, y balancea la carga de tráfico en un estilo
round-robin hacia las conexiones de red de las direcciones IP entre los pods que verifican el
selector (incluso cuando fallas causan que los pods se muevan de máquina en máquina).
Por defecto un servicio es expuesto dentro de un cluster (por ejemplo, pods de un back end
pueden ser agrupados en un servicio, con las peticiones de los pods de front end siendo
balanceadas entre ellos), un servicio también puede ser expuesto hacia afuera del clúster.

6.4.2.1. ARQUITECTURA Y MODULOS


Kubernetes sigue una arquitectura maestro-esclavo. Los componentes de Kubernetes pueden
ser divididos en aquellos que administran un nodo individual y aquellos que son partes de un
panel de control:
• etcd: almacén de datos persistente, liviano, distribuido de clave-valor desarrollado por
CoreOS que almacena de manera confiable los datos de configuración del clúster,
representando el estado general del cluster en un punto del tiempo dado.
• Servidor de API: componente central que sirve a la API de Kubernetes, utiliza JSON sobre
HTTP, que provee la interfaz interna y externa de Kubernetes. El servidor API procesa y valida
las peticiones REST y actualiza el estado de los objetos API en etcd, permitiendo a los clientes
configurar flujos de trabajos y contenedores a través de los nodos esclavos.
• Planificador: selecciona sobre qué nodo deberá correr un pod sin planificar (la unidad básica
de manejo del planificador) basado en la disponibilidad de recursos; lleva la cuenta de la
utilización de recursos en cada nodo para asegurar que un flujo de trabajo no es planificado
en exceso de la disponibilidad de los recursos. En esencia, el rol del planificador es el de
emparejar la oferta de un recurso con la demanda de un flujo de trabajos.

109
• Administrador del controlador: proceso sobre el cual el núcleo de los controladores
Kubernetes como DaemonSet y Replication se ejecuta. Los controladores se comunican con
el servidor API para crear, actualizar y eliminar recursos que ellos manejan (pods, servicios…)
• Nodo Kubernetes: el nodo, también conocido como esclavo o worker, es la máquina física o
virtual donde los contenedores (flujos de trabajos) son desplegados. Cada nodo en el clúster
debe ejecutar la rutina de tiempo de ejecución (como Docker), para comunicarse con el
maestro para la configuración en red de estos contenedores.
• Kubelet: es responsable del estado de ejecución de cada nodo (es decir, asegurarse que
todos los contenedores en el nodo se encuentran saludables). Se encarga del inicio, la
detención y el mantenimiento de los contenedores de aplicaciones (organizados como pods)
como es indicado por el panel de control. Monitorea el estado de un pod y, si no se
encuentra en el estado deseado, el pod será desplegado nuevamente al mismo nodo. El
estado del nodo es comunicado al maestro cada pocos segundos mediante una señal
periódica (heartbeat). Una vez que el nodo detecta la falla de un nodo, el Replication
Controller observa este cambio de estado y lanza pods en otros nodos sanos.
• Kube-Proxy: implementación de un proxy de red y balanceador de carga soportando la
abstracción del servicio junto con otras operaciones de red. Responsable del enrutamiento
de tráfico hacia el contenedor correcto basado en la dirección IP y el número de puerto.
• cAdvisor: es un agente que monitorea y recoge métricas de utilización de recursos y
rendimiento como CPU, memoria, uso de archivos y red de los contenedores en cada nodo.

Módulos básicos de Kubernetes: en forma práctica y general se describe a continuación la


creación y administración de cápsulas (Pods).
• Cluster de Kubernetes: coordina un grupo de computadoras de alta disponibilidad que están
conectadas para funcionar como una sola unidad. Las abstracciones en Kubernetes le
permiten implementar aplicaciones en contenedores en un clúster sin vincularlas
específicamente a máquinas individuales.
• Despliegue de una aplicación: se puede crear y administrar una implementación utilizando
la interfaz de línea de comandos “Kubectl”, que utiliza la API de Kubernetes para interactuar
con el clúster. Cuando se crea una implementación, se deberá especificar la imagen del
contenedor para su aplicación y el número de réplicas que se desean ejecutar. Se puede
cambiar esa información más adelante actualizando su implementación.
• Exploración de aplicaciones: al crear una implementación, Kubernetes crea un Pod para
alojar su instancia de aplicación. Un Pod es una abstracción de Kubernetes que representa
un grupo de uno o más contenedores de aplicaciones (como Docker o rkt), y algunos
recursos compartidos para esos contenedores.
• Mantenimiento de los Pods: los pods tienen un ciclo de vida. Cuando un nodo trabajador
"muere", los pods que se ejecutan en el nodo también se pierden. Luego, un controlador de
replicación puede hacer que el clúster regrese dinámicamente al estado deseado mediante
la creación de nuevos pods para mantener su aplicación en ejecución.
• Ampliación de aplicaciones: al crear un despliegue se expone públicamente a través de un
servicio. La implementación creó solo un pod para ejecutar nuestra aplicación. Cuando el
tráfico aumenta, se debe escalar (aumentar en recursos y número) la aplicación para
satisfacer la demanda de los usuarios.
• Actualización de aplicaciones: las actualizaciones continuas permiten que la actualización de
implementaciones tenga lugar sin tiempo de inactividad al actualizar incrementalmente las
instancias de pods con otras nuevas. Los nuevos Pods serán programados en Nodos con
recursos disponibles.

110
TEMA 3 – MODELOS OSI/TCP-IP, PROTOCOLOS Y ACCESIBILIDAD

1. ARQUITECTURA DE INTERNET
Organizaciones y comités que supervisan el funcionamiento de internet:
• Internet Engineeiring Task Force (IETF): comunidad de diseñadores de red, operadores,
vendedores e investigadores interesados en la evolución de la arquitectura de internet, así
como en su adecuado funcionamiento, es quien crea grupos de trabajo para desarrollar
nuevas especificaciones.
• Internet Engineering Steering Group (IESG): encargado de hacer avanzar una propuesta por
las diferentes fases de aprobación, hasta llegar al estado de “estándar de internet”.
• Internet Architecture Board (IAB): grupo de supervisión técnica de la ISOC, se encarga de la
publicación de documentos RFCs entre otros.
• Internet Society (ISOC): organización no gubernamental internacional que promociona la
cooperación global y la coordinación para Internet de las tecnologías de red y las
aplicaciones
• Internet Research Task Force (IRTF): grupos que se centran en la realización de investigación
en protocolos, aplicaciones, arquitectura y tecnologías de Internet.
Asignación de direcciones IP y servicios de registro de dominios:
• Assigned Numbers Authority (IANA): fue autorizada por la ISOC para coordinar la asignación
de los identificadores en Internet, como nombres de domino, números de sistema
autónomo, direcciones IP, números de protocolo y de puerto.
Coordino la creación del Internet Network Information Center (InterNIC) responsable de
gestionar los nombres de dominio de Internet de máximo nivel (“.com”, “.org”, “.net”).
• Internet Corporation for Assigned Names and Numbers (ICANN): tomo la responsabilidad de
las funciones que previamente tenía IANA, también coordina el sistema de servidores rais
de Internet y mantiene la estabilidad operativa en Internet.
Tomar responsabilidad global de la asignación del espacio de direcciones IP, de los
parámetros de protocolo, la administración de los DNS y la gestión de los sistemas
servidores raíz. Distribuye espacio de direccionamiento de forma jerárquica y delega la
responsabilidad de la asignación local en organizaciones regionales denominadas Regional
Internet Registries (RIR): ARIN, RIPE, APNIC (AFRINIC, LACNIC)
(“Red.es” es una entidad pública empresarial adscrita al ministerio de Industria, Energía y
Turismo encargada de impulsar el desarrollo de la sociedad de la información en España).

2. MODELO OSI (Open Systems Interconnection)


En lugar de implementar toda la lógica necesaria para llevar a cabo la comunicación entre dos
dispositivos en un único modulo, el problema se divide en funciones, cada una de las cuales se
realiza por separado. En una arquitectura de protocolos, los distintos módulos se disponen en
forma de “pila”. Cada capa de la pila realiza un conjunto de tareas relacionadas entre sí, cada
capa proporciona un conjunto de servicios a la capa inmediatamente superior y utiliza los
servicios de la inmediatamente inferior.

111
Es un modelo de referencia para los protocolos de la red
que tiene por objetivo conseguir interconectar sistemas
de procedencia distinta para que estos pudieran
intercambiar información sin ningún tipo de
impedimentos debido a los protocolos con los que estos
operaban de forma propia según su fabricante. El modelo
OSI está conformado por 7 capas o niveles de abstracción.
Cada uno de estos niveles tendrá sus propias funciones
para que en conjunto sean capaces de poder alcanzar su
objetivo final. Precisamente esta separación en niveles
hace posible la intercomunicación de protocolos distintos
al concentrar funciones específicas en cada nivel de
operación. Lo que realmente hace OSI es definir la
funcionalidad de ellos para conseguir un estándar.
Entre cada par de capas adyacentes dentro de la misma
entidad, existe una interfaz que define cuales son las
operaciones y servicios que la capa ofrece a la capa superior, dichas capas se comunican
intercambiando bloques de datos, denominados PDU (Protocol Data Unit). Deben ser
fragmentadas y envidas en varias PDU de nivel N-1 en el origen, dichos fragmentos recibidos por
la capa N-1 en el destino deben ser reensamblados antes de pasarlos a la capa N.

El modelo se basa en la distribución de la


funcionalidad de las comunicaciones en
capas, cada capa realiza un subconjunto de
tareas, relacionadas entre sí, cada capa hace
uso de las funciones “primitivas”
proporcionadas por su capa inmediatamente
inferior y proporciona servicios a su capa
inmediatamente superior. Las capas
permiten que un cambio en un protocolo de
una capa no afecte a los protocolos del resto,
OSI consta de 7 capas:
• CAPA FISICA: La capa física define las especificaciones eléctricas, mecánicas, de
procedimiento y funcionales para activar, mantener y desactivar el enlace físico entre
sistemas finales. Son estándares de capa física:
o EIA/TIA-232 (norma para el intercambio de datos binarios serie entre un DTE [Data
Terminal Equipment] como por ejemplo un equipo de usuario, y un DCE [Data
Communication Equipment], por ejemplo un módem).
o V.35 (estándar de ITU-T para comunicaciones síncronas entre un dispositivo de acceso
a la red y una red de paquetes).
o Ethernet (opera en las dos capas inferiores del modelo OSI, la capa de enlace de datos
y la capa física. En la Capa 1 implica señales, streams de bits que se transportan en los
medios, que transmiten las señales a los medios y distintas topologías).
o Bluetooth (especificación industrial para redes inalámbricas de área personal
“WPAN”)…

112
➢ Medios de transmisión: componen el canal por el cual enviamos datos, puede ser medio
guiado, la señal puede ser eléctrica (cable coaxial y par trenzado) u óptica (fibra óptica), o
medio no guiado, se utilizan señales radioeléctricas, se propagan por el espacio. Cuando se
transmite una señal sobre un medio de transmisión, se observan distintos efectos negativos
sobre la señal:
• Atenuación: cualquier señal al propagarse por un medio de transmisión pierde potencia
y se atenúa con la distancia (en el caso del cable de cobre se debe fundamentalmente a
la resistencia del cable que provoca perdida en forma de calor; en el caso de la fibra
óptica se debe a la absorción de luz por parte del medio físico).
• Interferencia: algunos medios son susceptibles de recibir interferencias
electromagnéticas, la diafonía es un tipo particular de interferencia, se produce entre
señales que discurren por medios paralelos, los pares trenzados, por ejemplo, entre las
señales de ida y vuelta o entre las señales de distintos abonados.
• Ruido: es una perturbación en la señal analógica o digital que puede distorsionar la
información
• Desfase: una onda electromagnética se propaga a una velocidad, si no es exactamente
la misma en todas las frecuencias se da el desfase.
• Dispersión: la señal tiende a descomponerse
Dentro de los medios guiados hay cuatro tipos principales de medios de transmisión: par
trenzado no blindado (UTP), par trenzado blindado/apantallado (STP), cable coaxial y fibra
óptica.
• Cable coaxial: presentan unas características comunes, núcleo de cobre, aislamiento
plástico, blindaje de malla de cobre (evita que los datos generen interferencias en el
exterior), revestimiento exterior.
○ RG-58 (thinnet): cable coaxial de 50 ohmios utilizado en redes 10-BASE-2.
○ RG-59: cable coaxial de 75 ohmios utilizado en sistemas de TV por cable.
○ RG-6U: cable coaxial de 75 ohmios instalado en viviendas, capaz de transmitir
frecuencias de satélite, HD TV o cable-modem.
• Cable de par trenzado: más ampliamente utilizado debido al menor coste del cable y la
facilidad de instalación.
o UTP: presenta la mejor relación Cat. 5 100 Mbps 100 MHz
calidad/precio, la instalación es muy Cat. 5e 1 Gbps 100 MHz
sencilla y su rendimiento se incrementa Cat. 6 1 Gbps 250 MHz
continuamente, tiene habitualmente una
Cat. 6a 10 Gbps 500 MHz
cubierta externa de material aislante,
Cat. 7 10 Gbps 600 MHz
contiene cuatro pares de hilos de cobre,
Cat. 7a 10 Gbps 1000 MHz
recubiertos (cada hilo) de material aislante.
o STP: son sustancialmente más caros que UTP, su principal ventaja es su menor
susceptibilidad a interferencias electromagnéticas
• Fibra óptica: 2 hebras de vidrio o plástico (una de transmisión y otra de recepción),
existen dos variantes:
○ Monomodo: utilizada por los proveedores de servicios de
comunicaciones en sus enlaces intercontinentales y en redes de
campus o área local. El haz de luz no rebota en el “cladding”, las
longitudes de onda típicas son 1.310 y 1.550 nanómetros.
113
○ Multimodo: es utilizada en tecnologías como
FDDI, Gigabit y 10 Gigabit Ethernet, 10-BASE-FL
Y 100-BASE-F (habitualmente dentro de un edificio)
permite la transmisión de más de un nodo de luz a
través del cable. Las longitudes de onda típicas van
de 850 a los 1.300 nanómetros.
➢ Medidas reflectométricas: permiten detectar causas de problemas de comunicación
posteriores debidas a un mal diseño o instalación. Pruebas en el cableado de cobre:
• Reflectometría en el Dominio del Tiempo: se basa en transmitir una señal por un cable
y analizar su reflejo.
• Longitud del cable: permite detectar pares abiertos, cortocircuitos o roturas en el cable.
• Mapeo de hilos (Wire Mapping): consiste en verificar que cada hilo individual del cable
está conectado al pin del conector adecuado. (problemas típicos: cortocircuito de par,
par invertido, par cruzado…)
Rendimiento (las pruebas relatadas en los apartados anteriores son las pruebas básicas
mínimas que permiten garantizar que la red funciones, para categorizar y certificar, se llevan
a cabo las siguientes):
• Impedancia:
o Perdida de retorno estructural (Structural Return los, SRL)
o Perdida de retorno (Return Loss, RL)
• Atenuación: mide la degradación de la señal que atraviesa el cable, se mide en dB.
• Diafonía próxima (Near-End Crosstalk, NEXT): se mide emitiendo una señal sobre un par
del cable y midiendo la señal generada (señal de crosstalk) en el resto de pares del cable,
en dB.
• Atenuación/NEXT (Attenuation to near Crosstalk Ratio, ACR): mide la relación
señal/ruido en dB
• Diafonía lejana (Far-End Crosstalk, FEXT): se mide emitiendo una señal sobre un par del
cable y midiendo la señal generada (señal de crosstalk o diafonía) en el resto de pares
del cable en el extremo del cable alejado del transmisor.
• Ruido: interferencias electromagnéticas (EMI).
Pruebas en Fibra Óptica: en inmune a las interferencias generadas por el “crosstalk”, EMI y
RFI. Suelen llevarse a cabo dos pruebas, utilizando un Reflectómetro en el Dominio del
Tiempo Óptico (OTDR):
• Potencia Óptica: prueba fundamental, determina la fortaleza de la señal que atraviesa
el cable, base para medir la pérdida o atenuación de la señal. En fibra multimodo se
realizan con longitud de onda de 850 y 1300 nm, mientras que en monomodo
habitualmente solo se utiliza la de 1300 nm.
• Perdida o atenuación: es el decremento de fortaleza de la luz que atraviesa una fibra
óptica. La atenuación esta mas relaz8ionado con empalmes y conexiones que con la
longitud del cable, verifica que los cables y los conectores se han instalado
correctamente. Consiste en medir la potencia óptica de una fuente de luz calibrada que
genera un pulso y medir cuata señal (potencia óptica también) llega al otro extremo del
cable. La combinación del generador de luz y el medidor de potencia se denomina
“Optical Loss Test Set (OLTS)”.

114
• Reflectómetros en el Dominio del Tiempo Ópticos: dispositivo que transmite un pulso
calibrado sobre el cable que va a ser probado y monitoriza la señal que retorna, mide la
señal retornada por el efeto de “dispersión de retorno” (blackscatter).
➢ Medios de transmisión no guiados:
Radiofrecuencia (RF): se consideran las ondas electromagnéticas con frecuencias en el rango
de 3KHz hasta 300 GHz, utilizadas para las comunicaciones en televisión, radio, telefónico
móvil… Una antena se coloca en una zona en la que se percibe un cierto campo
electromagnético genera como respuesta a esta una corriente eléctrica, los parámetros de
una antena que más influyen son: la longitud de onda, potencia de la antena en transmisión,
calidad de receptor, tamaño y altura de la antena, modo de transmisión, ruido y señales de
interferencia. Algunas de las tecnologías inalámbricas más utilizadas son:
• Microondas: están constituidas por radiación electromagnética con longitudes de onda
que varían de un metro a un milímetro, sus frecuencias oscilan entre 300 MHz y 300
GHz, una banda inmensa en la que se incluyen entre otras tecnologías y bandas de UHF
a EHF: WiFI, WIMAX, Bluetooth… En telefonía móvil en España se emplean las bandas
de microondas:
o 900 MHz y 1800 MHz para 2G
o 900 MHz y 2100 MHz para 3G
o 800 MHz y 1800 MHz para 4G
o 700 MHz, 1500-3600 MHz y 2600 MHz para 5G
• Infrarrojos: la radiación IR es una forma de radiación electromagnética, su banda de
frecuencias va desde 430 THz hasta los 300 GHz, se utiliza fundamentalmente en
telecomunicaciones para transmisiones de corto alcance entre periféricos, se utiliza el
estándar IrDA (Infrared Data Association), utiliza diodos emisores de luz infrarroja (LED)
para emitir radiación infrarroja, el haz se modula para evitar la interferencia de otras
fuentes de infrarrojos como la luz solar o la iluminación artificial. Son útiles para uso en
interiores en áreas de alta densidad de población, IR no penetra las paredes. También
se utiliza para proporcionar la luz para sistema de comulaciones de fibra óptica. La luz
infrarroja con una longitud de onda de alrededor de 1330 nm o 1550 nm son las mejores
opciones para fibra óptica.

• CAPA ENLACE DE DATOS: La tarea principal


de la capa de enlace de datos es tomar una
transmisión de datos y transformarla en
una extracción libre de errores de
transmisión para la capa de red. Logra esta función dividiendo los datos de entrada en
marcos de datos (de unos cuantos cientos de bytes), transmite los marcos en forma
secuencial y procesa los marcos de estado que envía el nodo destino. Proporciona un
servicio de transmisión de datos fiable a través del enlace físico, envía los datos en forma de
bloques de bits (tramas), se ocupa del direccionamiento físico, la topología de red, el acceso
a la red, la notificación de errores, entrega ordenada de tramas y control de flujo. El
dispositivo que usa la capa de enlace es el Switch que se encarga de recibir los datos del
enrutador y enviar cada uno de estos a sus respectivos destinatarios. Esta capa se divide en
dos subcapas:

115
o MAC: constituye la subcapa inferior de la capa de enlace de datos. La MAC se
implementa mediante hardware, por lo general, en la NIC de la PC.
o LLC: se ocupa de la comunicación entre las capas superiores y las capas inferiores.
Generalmente, esta comunicación se produce entre el software de red y el hardware
del dispositivo. La subcapa LLC toma los datos del protocolo de la red, que generalmente
son un paquete IPv4, y agrega información de control para ayudar a entregar el paquete
al nodo de destino. En un PC, el LLC se puede considerar el controlador de la NIC. El
controlador de la NIC es un programa que interactúa directamente con el hardware de
la NIC para transmitir los datos entre la subcapa MAC y los medios físicos.

La CAPA DE ENLACE DE DATOS proporciona control de errores en el envío de tramas


entre computadoras, y provee el control de la capa física, se realiza mediante diversos
tipos de códigos como:
o CRC (Cyclic Redundancy Check): código de detección de errores usado
frecuentemente en redes digitales y en dispositivos de almacenamiento para
detectar cambios accidentales en los datos. Los bloques de datos ingresados en
estos sistemas contienen un valor de verificación adjunto, basado en el residuo de
una división de polinomios; el cálculo es repetido, y la acción de corrección puede
tomarse en contra de los datos presuntamente corruptos en caso de que el valor de
verificación no concuerde.
o Checksum: función de redundancia que tiene como propósito principal detectar
cambios accidentales en una secuencia de datos para proteger la integridad de
estos, verificando que no haya discrepancias entre los valores obtenidos al hacer
una comprobación inicial y otra final tras la transmisión.
o Paridad: comprueba que el dato ha llegado correctamente mediante el uso de un
“bit de paridad”.

Son estándares de capa de enlace de datos:


o HDLC (High-Level Data Link Control): protocolo de comunicaciones de propósito general
punto a punto. Proporciona recuperación de errores en caso de pérdida de paquetes de
datos, fallos de secuencia y otros, por lo que ofrece una comunicación confiable entre
el transmisor y el receptor.
o PPP (Point-to-Point Protocol): establecer una conexión directa entre dos nodos de una
red. Conecta dos enrutadores directamente sin ningún equipo u otro dispositivo de red
entre medias de ambos. Puede proporcionar autenticación, cifrado de la transmisión1 y
compresión.
o Frame Relay: técnica de comunicación mediante retransmisión de tramas para redes de
circuito virtual, consiste en una forma simplificada de tecnología de conmutación de
paquetes que transmite una variedad de tamaños de tramas o frames para datos,
perfecto para la transmisión de grandes cantidades de datos. Permite la interconexión
de redes de área local separadas geográficamente a un coste menor.
o Token Ring (IEEE 802.5): arquitectura de red con topología lógica en anillo y técnica de
acceso de paso de testigo. Define una red de área local LAN en configuración de anillo
(Ring), con método de paso de testigo como control de acceso al medio. El testigo es
una trama que circula por el anillo en su único sentido de circulación. Cuando una
estación desea transmitir y el testigo pasa por ella, lo toma. Este sólo puede permanecer
en su poder un tiempo determinado (10 ms).

116
Tienen una longitud de 3 bytes y consiste en un delimitador de inicio, un byte de control
de acceso y un delimitador de fin. En cuanto a las tramas de comandos y de datos
pueden variar en tamaño, dependiendo del tamaño del campo de información. Las
tramas de datos tienen información para protocolos mayores, mientras que las tramas
de comandos contienen información de control.
o FDDI (Fiber Distributed Data Interface): conjunto de estándares ISO y ANSI para la
transmisión de datos en redes de computadoras de área extendida (WAN) o de área
local (LAN), mediante cables de fibra óptica. Se basa en la arquitectura Token Ring y
permite una comunicación tipo dúplex (completo).
o Ethernet (IEEE 802.3): estándar de redes de área local para computadoras, define las
características de cableado y señalización; de nivel físico y los formatos de tramas de
datos del nivel de enlace de datos del modelo OSI. A continuación se especifican los
anteriores conceptos en las tecnologías más importantes:
10BaseT 10 Mbits/s 100 m / Par Trenzado
10Base2 10 Mbits/s 185 m / Coaxial Delgado
10Base5 10 Mbits/s 500 m / Coaxial Grueso
10BaseF 10 Mbits/s 2000 m / Fibra Óptica
100BaseT4 100 Mbits/s 100 m / Par trenzado (Cat. 3)
100BaseTX 100 Mbits/s 100 m / Par trenzado (Cat. 5)
100BaseFX 100 Mbits/s 2000 m / Fibra Óptica
1000BaseT 1000 Mbits/s 100 m / Par trenzado (Cat. 5e o 6)
1000BaseTX 1000 Mbits/s 100 m / Par trenzado (Cat. 6)
1000BaseSX 1000 Mbits/s 550 m / Fibra Óptica (multimodo)
1000BaseLX 1000 Mbits/s 5000 m / Fibra Óptica (monomodo)
10000BaseT 10000 Mbits/s 100 m / Par trenzado (Cat. 6ª o 7)
10000BaseSR 10000 Mbits/s 300 m / Fibra Óptica (multimodo)
10000BaseLR 10000 Mbits/s 10000 m / Fibra Óptica (monomodo)
o ATM (Asynchronous Transfer Mode): protocolo para el transporte de una gama
completa de tráfico de usuarios, incluidas las señales de voz, datos y video. Proporciona
una funcionalidad similar tanto a la conmutación de circuitos como a las redes de
conmutación de paquetes: ATM utiliza multiplexación por división de tiempo
asincrónica y codifica datos en paquetes pequeños de tamaño fijo llamados celdas.
o ARP (Address Resolution Protocol): responsable de encontrar la dirección de hardware
(Ethernet MAC) que corresponde a una determinada dirección IP. Para ello se envía un
paquete (ARP request) a la dirección de difusión de la red que contiene la dirección IP
por la que se pregunta, y se espera a que esa máquina (u otra) responda (ARP reply) con
la dirección Ethernet que le corresponde. En Ethernet, la capa de enlace trabaja con
direcciones físicas. El protocolo ARP se encarga de traducir las direcciones IP a
direcciones MAC (direcciones físicas). Para realizar esta conversión, el nivel de enlace
utiliza las tablas ARP, cada interfaz tiene tanto una dirección IP como una dirección física
MAC.

117
RARP es un protocolo para obtener la dirección IP perteneciente a un determinado
hardware electrónico que se encuentra en la mayoría de las veces en una red Ethernet.
RARP utiliza el mismo mecanismo que ARP. La respuesta que se devuelve de una
solicitud es la dirección de protocolo de la estación origen, no la dirección de la estación
destino de la solicitud. Para poder usar RARP, todas las direcciones MAC deben estar
configuradas en un servidor central para que transfiera una dirección IP. El RARP
además de encontrarlo en las redes Ethernet, está disponible en otras redes de área
local como lo son la Interfaz de Fibra de Distribución de Datos y las redes LAN Token
Ring.

o STP (Spanning Tree Protocol): en algunos puentes pueden realizarse mapeos estáticos
“Dirección MAC - Puerto”, el mecanismo habitual para crear la tabla de conmutaciones
el aprendizaje dinámico. En una red con caminos físico redundante se producen
fenómenos como las tormentas de difusión, inestabilidad en las tablas de conmutación
y la generación de tráfico únicas residual que degradan el rendimiento de la misma hasta
bloquearla completamente. Con el objetivo de definir la arquitectura de protocolos para
puentes basados en MAC, se desarrolla el estándar IEEE 802.1D, en él se define el uso
del algoritmo de árbol de expansión (Spanning-tree protocol, STP) como mecanismo
necesario para la selección de caminos lógicos únicos. Y evitar así los efectos negativos
de la redundancia. El algoritmo transforma una red física con forma de malla, en la que
existen bucles, por una red lógica en forma de árbol (libre de bucles). Los puentes se
comunican mediante mensajes de configuración llamados Bridge Protocol Data
Units (BPDU).
o LACP (Link Aggregation Control Protocol): La agregación virtual de enlaces, también
llamada trunking, es una característica de nivel 2, que une puertos físicos de la red en
un único enlace de datos de gran ancho de banda; de este modo se aumenta la
capacidad de ancho de banda y se crean enlaces redundantes y de alta disponibilidad.
Si falla un enlace, la carga se redistribuye entre los enlaces restantes, con lo que el
funcionamiento es continuo. Gracias a la capacidad de “Distributed Multilink Trunking”,
el fallo o la eliminación de una unidad de la pila no causará la caída de todo un trunk.
• CAPA DE RED: proporciona conectividad y selección de ruta entre dos sistemas de hosts que
pueden estar ubicados en redes geográficamente distintas, su misión es conseguir que los
datos lleguen desde el origen al destino y para la consecución de su tarea, puede asignar
direcciones de red únicas, interconectar subredes distintas, encaminar paquetes, utilizar un
control de congestión y control de errores. Su PDU son los “paquetes” Hay dos formas en
las que el nivel de red puede funcionar internamente:
o Datagramas: cada paquete se encamina independientemente, sin que el origen y el
destino tengan que pasar por un establecimiento de comunicación previo.
o Circuitos virtuales: dos equipos que quieran comunicarse tienen que empezar por
establecer una conexión. Durante este establecimiento de conexión, todos los routers
que haya por el camino elegido reservarán recursos para ese circuito virtual específico.
Los dispositivos que facilitan tal tarea se denominan routers, trabajan en esta capa, aunque
pueden actuar como switch de nivel 2 en determinados casos, dependiendo de la función
que se le asigne. Los firewalls actúan sobre esta capa principalmente, para descartar
direcciones de determinadas máquinas o limitar el acceso a ciertas de ellas.

118
En este nivel se realiza el direccionamiento lógico y la determinación de la ruta de los datos
hasta su receptor final mediante los protocolos de capa de red, que se pueden clasificar en:
o Protocolos de enrutamiento (permiten la selección de rutas):
Pueden ser orientados a vector-distancia (calculan las rutas utilizando el algoritmo de
Bellman-Ford. En los protocolos de este tipo, ningún enrutador tiene información
completa sobre la topología de red. En lugar de ello, se comunica con los demás routers,
enviando y recibiendo información sobre las distancias entre ellos):
▪ RIP (Routing Information Protocol): protocolo de puerta de IGP (Interior Gateway
Protocol), utilizado por los routers o encaminadores para intercambiar información
acerca de redes del Internet Protocol (IP) a las que se encuentran conectados. Está
basado en el vector de distancia, ya que calcula la métrica o ruta más corta posible
hasta el destino a partir del número de "saltos" o equipos intermedios que los
paquetes IP deben atravesar. El límite máximo de saltos en RIP es de 15, de forma
que al llegar a 16 se considera una ruta como inalcanzable o no deseable. RIP es un
protocolo libre, fácil de configurar y simple.
RIPng: para el enrutamiento IPv6, use RIPng (next gen). El RIPng usa el puerto UDP
521 para enviar actualizaciones a las tablas de enrutamiento.

▪ IGRP (Interior Gateway Routing Protocol): protocolo propietario de Cisco, basado en


la tecnología vector-distancia. Utiliza una métrica compuesta para determinar la
mejor ruta basándose en el ancho de banda, el retardo, la confiabilidad y la carga
del enlace. El concepto es que cada router no necesita saber todas las relaciones de
ruta/enlace para la red entera, este publica destinos con una distancia
correspondiente y el router que recibe la información, ajusta la distancia y la
propaga a los routers vecinos. La información de la distancia en IGRP se manifiesta
de acuerdo a la métrica. Esto permite configurar adecuadamente el equipo para
alcanzar las trayectorias óptimas. IGRP es un protocolo con clase, lo que significa
que no pueden manipularse las máscaras de red (utiliza las máscaras por defecto de
cada clase). Actualmente se usa EIGRP.
▪ EIGRP (Enhanced Interior Gateway Routing Protocol): protocolo de encaminamiento
de vector distancia, propiedad de Cisco. Se considera un protocolo avanzado que se
basa en las características normalmente asociadas con los protocolos del estado de
enlace. Algunas de las mejores funciones de OSPF, como las actualizaciones
parciales y la detección de vecinos, se usan de forma similar con EIGRP. Aunque no
garantiza el uso de la mejor ruta, es bastante usado porque mejora las propiedades
de convergencia y opera con mayor eficiencia que IGRP. Esto permite que una red
tenga una arquitectura mejorada y pueda mantener las inversiones actuales en
IGRP.
▪ BGP (Border Gateway Protocol): protocolo mediante el cual se intercambia
información de encaminamiento entre sistemas autónomos. Entre los sistemas
autónomos de los ISP se intercambian sus tablas de rutas a través del protocolo BGP.
Este intercambio de información de encaminamiento se hace entre los routers
externos de cada sistema autónomo, los cuales deben ser compatibles con BGP. Se
trata del protocolo más utilizado para redes con intención de configurar un EGP
(Exterior Gateway Protocol).

119
Pueden ser orientados a enlace-estado (cada nodo posee información acerca de la
totalidad de la topología de red. De esta manera, cada uno puede calcular el siguiente
salto a cada posible nodo destino de acuerdo a su conocimiento sobre cómo está
compuesta la red):
▪ OSPF (Open Shortest Path First): protocolo de red para encaminamiento jerárquico
de IGP que usa el algoritmo Dijkstra, para calcular la ruta más corta entre dos nodos.
Construye una base de datos enlace-estado idéntica en todos los routers de la zona,
puede operar con seguridad usando MD5 para autenticar sus puntos antes de
realizar nuevas rutas y antes de aceptar avisos de enlace-estado. OSPF puede usar
tanto multidifusiones (multicast) como unidifusiones (unicast) para enviar paquetes
de bienvenida y actualizaciones de enlace-estado. Las direcciones de multidifusión
usadas son 224.0.0.5 y 224.0.0.6. Al contrario que RIP o BGP, OSPF no usa ni TCP ni
UDP, sino que se encapsula directamente sobre el protocolo IP. Una red OSPF se
puede descomponer en regiones (áreas) más pequeñas. Hay un área especial
llamada área backbone que forma la parte central de la red a la que se encuentran
conectadas el resto de áreas de la misma. Las rutas entre las diferentes áreas
circulan siempre por el backbone, por lo tanto todas las áreas deben conectar con
el backbone. Si no es posible hacer una conexión directa con el backbone, se puede
hacer un enlace virtual entre redes.
▪ IS-IS (Intermediate System to intermediate System): protocolo de estado de enlace
que maneja un mapa para enrutar paquetes mediante la convergencia de la red.
Permite a sistemas intermedios (IS’s)dentro de un mismo dominio cambiar su
configuración e información de ruteo para facilitar la información de
encaminamiento y funciones de transmisión de la capa de red. El protocolo de
encaminamiento IS-IS está pensado para soportar encaminamiento en grandes
dominios consistentes en combinaciones de muchos tipos de subredes. Esto incluye
enlaces punto a punto, enlaces multipunto, subredes X.25, subredes broadcast…

X.25 es un estándar ITU-T para redes WAN de conmutación de paquetes. Su


protocolo de enlace es LAPB (Link Access Procedure, Balanced), establece
mecanismos de direccionamiento entre usuarios, negociación de características de
comunicación, técnicas de recuperación de errores. X.25 está orientado a conexión
y trabaja con circuitos virtuales tanto conmutados como permanentes. En la
actualidad se trata de una norma obsoleta.
o Protocolos para el control e intercambio de información entre router:
▪ IGMP (Internet Group Management Protocol): se utiliza para intercambiar
información acerca del estado de pertenencia entre enrutadores IP que admiten la
multidifusión y miembros de grupos de multidifusión. Los hosts miembros
individuales informan acerca de la pertenencia de hosts al grupo de multidifusión y
los enrutadores de multidifusión sondean periódicamente el estado de la
pertenencia. Su objetivo que tiene es describir las principales funcionalidades de
gestión de grupos en Internet, así como el formato de sus mensajes. Es usado
principalmente para optimizar el rendimiento de la red y en los que sea necesaria
las transmisiones de multidifusión en redes IPv4.

120
▪ ICMP (Internet Control Message Protocol): utilizado para enviar mensajes de error
e información operativa indicando, por ejemplo, que un host no puede ser
localizado o que un servicio que se ha solicitado no está disponible. Estos mensajes
del protocolo ICMP se envían a la dirección IP de origen del paquete. Siendo un
protocolo de la "Capa de Red" ICMP difiere de los protocolos de la "Capa de
Transporte" (tales como TCP y UDP), en que no es generalmente usado para
intercambiar información entre sistemas, ni tampoco por las aplicaciones de usuario
(con excepción de algunas herramientas como ping y traceroute, que emplean
mensajes ICMP con fines de diagnóstico). Muchas de las utilidades de red comunes
están basadas en los mensajes ICMP. El comando traceroute puede implementarse
transmitiendo datagramas con valores especiales de TTL en la cabecera, y
analizando luego los mensajes de "Destino inalcanzable" y "Tiempo excedido" (tipos
3 y 11) generados como respuesta. La herramienta ping está implementada
utilizando los mensajes "Echo request" y "Echo reply" de ICMP. Mensajes de control:
- Echo Request: mensaje de control que se envía a un host con la expectativa de
recibir de él un Echo Reply (Respuesta eco). Esto es conocido como Ping y es
una utilidad del protocolo ICMP, subprotocolo de IP. Todo host debe responder
a un Echo Request con un Echo Reply que contenga exactamente los mismos
datos que el primero.
- Echo Reply: mensaje generado como respuesta a un mensaje Echo Request
(petición de Eco).
- Destination Unreachable: transportar un mensaje que es generado por un
enrutador, y se envía al host de origen, que recibe el mensaje emitido por el
enrutador. El mensaje en sí significa que este router considera inalcanzable el
destino al que quiere llegar el host. Si se recibe de parte del host de destino,
significa que el protocolo que se intentó acceder no está activo en aquel
momento.
- Time Exceded: se crea por una puerta de enlace para informar a la fuente de un
datagrama debido al tiempo de vida de campo al llegar a cero. Un mensaje
sobrepasando el tiempo también puede ser enviado por un host si no logra
volver a montar una fragmentación de datagramas dentro de su límite de
tiempo. Los mensajes del tiempo excedido son utilizados por la Ruta de
Seguimiento de utilidad para identificar las puertas de enlace en el cambio de
los anfitriones.
- Mask Request: se envía normalmente por un host a un router con el fin de
obtener una adecuada Máscara de Subred. Los remitentes deben responder
este mensaje con una Solicitud de Dirección de Máscara.
o Protocolo IP (Internet Protocol):
Protocolo de comunicación de datos digitales clasificado funcionalmente en la capa de
red según el modelo internacional OSI, su función principal es el uso bidireccional en
origen o destino de comunicación para transmitir datos mediante un protocolo no
orientado a conexión que transfiere paquetes conmutados a través de distintas redes
físicas previamente enlazadas según la norma OSI de enlace de datos.

121
El diseño del protocolo IP se realizó presuponiendo que la entrega de los paquetes de
datos sería no confiable. Por ello, IP tratará de realizarla del mejor modo posible,
mediante técnicas de enrutamiento, sin garantías de alcanzar el destino final pero
tratando de buscar la mejor ruta entre las conocidas por la máquina que esté usando IP.
Los datos en una red basada en IP son enviados en bloques conocidos como paquetes o
datagramas (en el protocolo IP estos términos se suelen usar indistintamente). En
particular, en IP no se necesita ningún intercambio de información de control previa a
la carga útil (datos), como sí que ocurre, por ejemplo, con TCP y únicamente proporciona
seguridad (mediante checksums o sumas de comprobación) de sus cabeceras y no de
los datos transmitidos.
▪ Direccionamiento IP: es el identificador de cada equipo dentro de su red de redes.
Cada equipo conectado a una red tiene una dirección IP asignada, la cual debe ser
distinta a todas las demás direcciones que estén vigentes en ese momento en el
conjunto de redes visibles por el equipo. Una dirección IP es un número binario de
32 bits. La dirección IP de un dispositivo está estructurada en dos partes, el
identificador de red a la que está
conectado el dispositivo, host u ordenador
y el identificador del dispositivo, host u
ordenador dentro de la red.
Para definir el prefijo de la dirección IP, es decir, lo que se conoce como identificador
de red, se utiliza la denominada máscara de red que es un número binario de 32 bits
que define en las posiciones a “1” el prefijo o identificador de red y en las posiciones
a “0” el sufijo o identificador de host. Es muy importante tener en cuenta que dentro
de una LAN un host únicamente se puede comunicar con aquellos otros que tengan
su mismo prefijo de red, por lo que utilizando las direcciones IP y sus
correspondientes máscaras de red podemos crear redes virtuales.
▪ Mascara, clases y subredes: para poder realizar el correspondiente encaminamiento
en Internet a través de las diferentes redes, y subredes creadas por las distintas
organizaciones; se introduce el concepto de máscara, es un número de 32 bits que
contiene unos en los bits que identifican tanto a una red (máscara de red), como a
una subred (máscara de subred) y al host. Mediante la máscara un ordenador sabe
si otro ordenador se encuentra en su misma subred o en otra distinta. Si pertenece
a su misma subred, el mensaje se entregará directamente, si se encuentra en otra
red diferente, el mensaje se enviará a la puerta de salida o router de la red.
ARIN (American Register Internet Number) es quien a través de los ISP (Internet
Service Provider) se encarga de gestionar, asignar y en su momento crear las
direcciones IP. Para facilitar la administración, los diseñadores del esquema de
direccionamiento IP determinaron la existencia de cinco únicas clases:
- Clase A (0): utilizan solamente los 8 primeros bits para identificar la parte de red
de la dirección, el resto (tres octetos) se utilizan para especificar la parte de host
de la dirección, es decir, 24
bits se reservan para
identificar cada una de las
conexiones dentro de la red.

122
- Clase B (10): sus dos primeros bits (los que se encuentran más a la izquierda)
tomarán siempre el valor binario 10, es decir, el primer octeto tendrá un valor
decimal entre 128 y 191, además las direcciones clase B utilizan los dos primeros
octetos para el identificador de red, por lo que restan los dos últimos octetos
para el identificador de host.
- Clase C (110): sus tres primeros bits (los que se encuentran más a la izquierda)
tomarán siempre el valor binario 110, es decir, el primer octeto tendrá un valor
decimal entre 192 y 223, además las direcciones clase C utilizan los tres
primeros octetos para el identificador de red, por lo que únicamente queda el
último octeto para el identificador de host.
- Clase D (1110): direcciones de multicast, consisten en que un datagrama sea
entregado a varios hosts dentro de la red en lugar de todos (broadcast) o uno
sólo (unicast).Se puede decir que una dirección de clase D o multicast identifica
un grupo de host dentro de la red. Lo que caracteriza a las direcciones clase D
es que sus cuatro primeros bits (los que se encuentran más a la izquierda)
tomarán siempre el valor binario 1110, es decir, el primer octeto tendrá un valor
decimal entre 224 y 239, además las direcciones clase D utilizan únicamente el
primer octeto como identificativo de red y los tres octetos restantes se utilizan
como identificativo de grupo de host.
- Clase E (1111): reservadas para uso experimental en proyectos de investigación
en la red.
Direcciones Públicas y Privadas: una dirección IP pública es aquella que identifica de
forma única una conexión a Internet. De todas las direcciones posibles existentes en
Internet han sido excluidas algunas para ser utilizadas como direcciones IP privadas,
es decir, direcciones IP para utilizar única y exclusivamente en redes de área local
que no pueden salir a navegar por Internet. Cuando desde una red local se sale a
navegar por Internet deberemos utilizar un router con tecnología NAT (Network
Address Translation), hará que sea el router el encargado de almacenar la dirección
privada en una tabla, asignarle un identificador y sustituir la dirección de origen por
la pública del router, de tal manera, que se podrá navegar por Internet con la
dirección del router y cuando se le conteste, al llegar nuevamente al router, no
tendrá más que consultar en su tabla el valor de la dirección privada
correspondiente al identificador y mandarle a ella el datagrama de respuesta. Las
direcciones IP reservadas como privadas son:

123
Las direcciones IP también se pueden clasificar en:
- Estáticas: un host que se conecte a la red con una dirección IP estática, siempre
lo hará con la misma IP. Las direcciones IP públicas estáticas son las que utilizan
los servidores de internet con objeto de que estén siempre localizables por los
usuarios de internet. Estas direcciones hay que contratarlas.
- Dinámicas: un equipo que se conecte a la red mediante una dirección IP
dinámica, cada vez lo hará con una dirección IP distinta. Las direcciones IP
públicas dinámicas, son las que se utilizan en las conexiones de internet
mediante un módem. Los provedores de internet (ISP) utilizan direcciones IP
dinámicas porque tienen más clientes que direcciones IP (es muy improbable
que todos se conecten a la vez).
Otras direcciones IPv4 de Propósito Especial: bloques de direcciones IPv4 globales y
de propósito especial que han sido asignados por IANA, no se asignan a los
operadores y usuarios y tampoco para uso interno de los Regional Internet
Registries (RIR):
- 0.0.0.0/8: hace referencia a los equipos origen al concepto “esta red” o “este
dispositivo”
- 0.0.0.0/32: hace referencia a la dirección IP de origen de “este host” en “esta
red”.
- 127.0.0.1/8: se ha asignado para el uso como dirección de “loopback”. Un
datagrama enviado por un protocolo de capa superior a cualquier dirección de
este bloque regresa al propio host.
- 169.254.0.0/16: bloque de direcciones de enlace local (local link), se reserva
para la comunicación entre hosts en un solo enlace de datos, equipos que están
conectado en el mismo “domino de difusión”.
- 192.0.2.0/24: uso en documentación y código de ejemplo “TEST-NET-1”
- 224.0.0.0/4: conocido formalmente con direcciones de clase D, se reserva para
el tráfico multicast en IPv4
- 240.0.0.0/4: denominado formalmente como direcciones de clase E, reservada
para usos futuros por la IANA, la única excepción existente es 255.255.255.255
usada para “broadcast inundado” los paquetes dirigidos a esta dirección no se
enrutan.
CIDR (Classless Inter-Domain Routing): reemplaza la sintaxis previa para nombrar
direcciones IP, las clases de redes. En vez de asignar bloques de direcciones en los límites
de los octetos, que implicaban prefijos «naturales» de 8, 16 y 24 bits, CIDR usa la técnica
VLSM (variable length subnet mask, en español «máscara de subred de longitud
variable»), para hacer posible la asignación de prefijos de longitud arbitraria.

124
Subneting: a medida que las redes de datos iban aumentando su tamaño, se planteaban
dos problemas relacionados con la escalabilidad, el control del tráfico de broadcast (en
las redes IP se utiliza en situaciones muy habituales el tráfico de broadcast, dirigido a
todos los equipos de la red y que es procesado por todos ellos. Cuando el tamaño de la
red crece en número de equipos, el porcentaje de trafico de broadcast se va incremento,
hasta que provoca que le ancho de banda quede prácticamente consumido por este tipo
de paquetes) y la creación de redes lógicas diferentes dentro de una sola organización
(cuando las redes de comunicaciones dan servicio a diferentes departamentos es
recomendable separar el tráfico de cada departamento en redes lógicas diferentes,
dentro de una organización pueden utilizarse diferentes tipos de tecnologías de red, lo
que genera la necesidad de identificar de forma individual cada una de ellas.
Se define una subred como un subconjunto de una red, dividiendo la parte local o
dirección del equipo en 2 partes, la dirección de subred y la dirección de host.
Existen dos métodos:
- FLSM (Fixed Length Subnet Mask): para solucionar los problemas descritos se
realiza la división en subredes de la siguiente forma:
1. Se toman prestados los bits que necesitemos de la parte de host: (2^número
de bits robados = número de subredes posibles)

* Se divide 256 entre el numero de subredes elegidas (256/2 = 128) para


saber dónde hacer el corte al crear las subredes.

2. Calcular el rango de direcciones de cada subred:


Rango de direcciones para 192.168.1.0/25 Rango de direcciones para 192.168.1.1/25

125
3. Cálculo de hosts: (2^número de bits no robados – 2 = número de hosts
posibles)

- VLSM (Variable Length Subnet Mask): da soporte a subredes con máscaras de


diferente longitud. Este estándar permite un direccionamiento IP más flexible.
Se toma una red y se divide en subredes fijas, luego se toma una de esas
subredes y se vuelve a dividir en otras subredes tomando más bits del
identificador de máquina, ajustándose a la cantidad de equipos requeridos por
cada segmento de la red.
1. Se toman prestados los bits que necesitemos de la parte de host: (2^número
de bits robados = número de subredes posibles), que debe ser el siguiente
mayor al numero de hosts que se necesitan.
(Si se piden 80 hosts, se necesitan 7 bits para la parte de host “128-2 = 126”)
2. Calcular el rango de direcciones de las subredes:
Rango de direcciones para 192.168.1.0/25 Rango de direcciones para 192.168.1.1/25

3. Calcular el resto de redes VLSM:


(Si se piden 30 hosts, se necesitan 5 bits para la parte de host “32-2 = 30”)
Dirección de red: 192.168.1.128
Primera dirección de host: 192.168.1.129
Ultima dirección de host: 192.168.1.159
Dirección de broadcast: 192.168.1.160

126
▪ Cabecera IP:

- Versión (4 bits): versión de protocolo.


- Longitud de cabecera: longitud de la cabecera IP en palabras de 32 bits
- Tipo de servicio: característica de calidad de servicio dentro del esquema de
calidad de servicio diferenciados.
- Longitud total del paquete (16 bits): longitud total del datagrama en bytes,
implica que un paquete o datagramas IP puede tener una longitud de entre 20
y 65535 bytes.
- Identificación: número de secuencia que, junto con la dirección de origen,
dirección de destino y protocolo, se utiliza para identificar de forma única el
datagrama.
- Indicadores (3 bits):
❖ Mas fragmentos: el paquete ha sido fragmentado y restan más fragmentos
por recibirse.
❖ No fragmentación: el paquete no puede ser fragmentado.
- Desplazamiento del fragmento: el lugar en que se sitúa el fragmento dentro del
datagrama.
- Tiempo de vida: tiempo de vida que le queda al paquete en su tránsito.
- Protocolo: protocolo de comunicaciones de la capa inmediatamente superior
que va encapsulad en el propio paquete. Permite determinar cuál es la siguiente
cabecera que va a ser procesada.
- Suma de comprobación de la cabecera: código de detección de errores.
- Dirección de origen: identificador de 32 bits del dispositivo origen.
- Dirección de destino: identificador de 32 bits del dispositivo destino.
- Opciones.
- Relleno: la longitud de la cabecera debe ser múltiplo de 32, es necesario utilizar
bytes de relleno.

127
▪ IPv6: especifica un nuevo formato de paquete, diseñado para minimizar el
procesamiento del encabezado de paquetes. Debido a que las cabeceras de los
paquetes IPv4 e IPv6 son significativamente distintas, los dos protocolos no son
interoperables. Las direcciones IPv6 tienen un tamaño de 128 bits que se escriben
en ocho grupos de cuatro dígitos hexadecimales, se puede comprimir un grupo de
cuatro dígitos si este es nulo (es decir, toma el valor "0000"), si la dirección tiene
más de una serie de grupos nulos consecutivos la compresión permite en solo uno:
2001:0DB8:0000:0000:0000:0000:1428:57ab = 2001:0DB8::1428:57ab
La dirección IPv6 del tipo IPv4-mapeada ::ffff:c000:280 se puede representar como
::ffff:192.0.2.128, mostrando claramente la dirección IPv4 mapeada dentro de la IPv6.
Se clasifican en:
a) Unicast: identifica un único interfaz de red. El protocolo de Internet entrega los
paquetes enviados a una dirección unicast al interfaz específico.
b) Anycast: es asignada a un grupo de interfaces, normalmente de nodos
diferentes. Un paquete enviado a una dirección anycast se entrega únicamente
a uno de los miembros, típicamente el host con “menos coste”.

Tanto los Unicast como los Anycast, los primeros 64bits identifican el prefijo de
red, y son usados para encaminamiento; los últimos 64 bits identifican la
interface de red del host.

BITS 48 (o más) 16 (o menos) 64

CAMPO Prefijo de Red Prefijo de Subred Identificador del Interfaz de Host

Los 64 bits de identificador de la interface (interface identifier) son generados


automáticamente con la dirección MAC de la interface y el algoritmo EUI-64
modificado, obtenidos de un servidor DHCPv6, establecidos aleatoriamente o
asignados manualmente.

c) Multicast: es usada por múltiples interfaces, que consiguen la dirección


multicast participando en el protocolo de multidifusión (multicast) entre los
routers de red. Un paquete enviado a una dirección multicast es entregado a
todos los interfaces que se hayan unido al grupo multicast correspondiente.
(IPv6 no implementa direcciones broadcast. El mismo efecto puede lograrse
enviando un paquete al grupo de multicast de enlace-local “todos los nodos”
ff02::1). los primeros dos dígitos hexadecimales son FF, esto es lo que
caracteriza a las direcciones multidifusión en IPv6.

BITS 8 4 4 112

CAMPO Prefijo (11111111) Flags (0RPT) Scope (XXXX) Group ID

128
Identificación de los tipos de direcciones: pueden identificarse tomando en cuenta los
rangos definidos por los primeros bits de cada dirección.
○ ::/128 Se usa para indicar ausencia de dirección
○ ::1/128 La dirección de loopback es una dirección que puede usar un nodo para
enviarse paquetes a sí mismo (corresponde con 127.0.0.1 de IPv4). No
puede asignarse a ninguna interfaz física.
○ fe80::/10 El prefijo local link, específica que la dirección solamente es válida en el
enlace físico local.
○ ff00::/8 El prefijo de multicast.
○ 2002::/16 Esquema de direccionamiento 6to4 (permite enviar paquetes IPv6 sobre
redes IPv4 obviando la necesidad de configurar túneles manualmente).

Un paquete en IPv6 está compuesto principalmente de dos partes: header (que tiene
una parte fija y otra con las opciones) y payload (los datos).
- Cabecera fija: Los primeros 40 bytes (320 bits) son la cabecera del paquete y
contiene los siguientes campos

○ Version (4 bits): representa la versión del Protocolo IPv6 (0110)


○ Traffic Class (6+2 bits): 6 bits se utilizan para señalar el tipo de campo “DS field”
(arquitectura que especifica un mecanismo escalable y simple para clasificar y
gestionar el tráfico de red, paquetes de datos y proporcionar QoS). Los 2 bits
menos significativos se utilizan para Notificación de Congestión Explícita (ECN).
○ Flow Label (20 bits): esta etiqueta se usa para mantener el flujo secuencial de
los paquetes pertenecientes a la comunicación ayudar al router a identificar que
un paquete en particular que pertenece a un determinado flujo de información.
○ Payload Length (16 bits): indica el tamaño del payload en octetos, incluyendo
las cabeceras de extensión (extension headers)
○ Next Header (8 bits): especifica el tipo de cabecera siguiente y especifica el tipo
de cabecera de extensión si esta presente en el paquete.
○ Hop Limit (8 bits): reemplaza el TTL de IPv4.
○ Source Address (128 bits)
○ Destination Address (128 bits)

129
En IPv6 las opciones se manejan por medio de las llamadas Cabeceras de Extensión
(Extension Headers). Estas cabeceras se insertan en el paquete solo si las opciones son
necesarias:
o Hop-by-Hop Options: la información de esta cabecera debe ser examinada Salto-a-
Salto, es decir, en cada uno de los nodos de la ruta que ha de seguir el paquete.
o Routing Header: se utiliza para dar una lista de uno o más nodos que deben estar
en la ruta seguida por un paquete.
o Fragment Header: un host IPv6 que quiere enviar un paquete a un destino IPv6
utiliza el llamado “Path MTU discovery” para determinar el tamaño máximo de
paquete que se puede utilizar en el path hasta ese destino. Si el paquete que hay
que enviar es más grande que el MTU soportado, el host origen fragmenta el
paquete. Gracias a esta forma de actuar, la fragmentación se gestiona de extremo
a extremo, liberando a los routers del path de este trabajo.
o Destination Options: estas cabeceras llevan información que será procesada,
exclusivamente, por el nodo de destino.
o Authentication Header: proporciona integridad y autenticación (que no
confidencialidad) para todos los paquetes de datos IP.
o Encapsulation Security Payload Header: proporciona integridad, confidencialidad,
autenticación de datos y otras funciones para todos los paquetes de datos IP.

▪ Protocolo NAT: una posible solución


al problema de la escasez de
direcciones IP públicas es la
utilización de direcciones privadas
en la red de área local de la
organización y hacer uso de una
única dirección IP pública para el
acceso de Internet de todos los
equipos de la red local. Debido a
que en Internet sólo son válidas las
direcciones públicas, para que un
dispositivo con una dirección privada pueda acceder a Internet se debe enmascarar su
dirección privada con una dirección pública. Este enmascaramiento de direcciones IP
privadas se realiza utilizando el protocolo NAT, su trabajo consiste en sustituir la
dirección IP local de la cabecera por la IP global cuando el paquete se dirige de la red
interna a la externa, y en sustituir la dirección IP global por la IP local cuando el paquete
va desde la red global a la local, este mecanismo solamente era válido cuando un
conjunto muy reducido de estaciones de las redes locales necesitaba acceder a Internet,
puesto que si todos los equipos de la red interna pretendían acceder de forma
simultánea a internet, se precisaban tantas direcciones globales (IP públicas) como
dispositivo locales (IP privadas).
Para abordar este problema nace: PAT (Port Address Translation) incluyendo un nuevo
tipo de traducciones que se basaba en la sustitución tanto de direcciones IP como de
puertos TCP/UDP.

130
• CAPA DE TRANSPORTE: encargada de efectuar el transporte de los datos (que se encuentran
dentro del paquete) de la máquina origen a la de destino de forma confiable,
independientemente del tipo de red física que esté utilizando, así como de mantener el flujo
de la red. La PDU se llama Segmento o Datagrama, dependiendo de si corresponde a TCP o
UDP, el primero orientado a conexión (transmisión verificada, eventualmente
retransmitida) y el otro sin conexión (pueden perderse algunos datos por el camino).
Internet tiene dos protocolos principales en la capa de transporte, uno no orientado a la
conexión, UDP, y otro orientado a la conexión, el TCP:
○ UDP (User Datagram Protocol): protocolo del
nivel de transporte basado en el intercambio
de datagramas (Encapsulado de capa 4 o de
Transporte del Modelo OSI). Permite el envío
de datagramas a través de la red sin que se
haya establecido previamente una conexión, ya que el propio datagrama incorpora
suficiente información de direccionamiento en su cabecera. Tampoco tiene
confirmación ni control de flujo, por lo que los paquetes pueden adelantarse unos a
otros; y tampoco se sabe si ha llegado correctamente, ya que no hay confirmación de
entrega o recepción. Su uso principal es para protocolos como DHCP, BOOTP, DNS.
○ TCP (Transmission Control Protocol): garantiza que los datos serán entregados en su
destino sin errores y en el mismo orden en que se transmitieron. También proporciona
un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a
través del concepto de puerto. Las aplicaciones pueden comunicarse en forma segura
(gracias al acuse de recibo “ACK” del protocolo TCP) independientemente de las capas
inferiores. Permite colocar los segmentos nuevamente en orden cuando vienen del
protocolo IP, monitoreo del flujo de los datos para evitar la saturación de la red, permite
que los datos se formen en segmentos de longitud variada para "entregarlos" al
protocolo IP y permite multiplexar los datos, es decir, que la información que viene de
diferentes fuentes (por ejemplo, aplicaciones) en la misma línea pueda circular
simultáneamente. Las conexiones TCP se componen de tres etapas:
1. Establecimiento de conexión (3-way handshake): una entidad abre un socket en un
determinado puerto TCP, enviando un paquete SYN inicial al servidor, en el lado del
servidor se comprueba si el puerto está abierto, es decir, si existe algún proceso
escuchando en ese puerto. En caso de no estarlo, se envía al cliente un paquete de
respuesta con el bit RST activado, lo que significa el rechazo del intento de conexión.
En caso de que sí se encuentre abierto el puerto, el lado servidor respondería con
un paquete SYN/ACK. Finalmente, el cliente debería responderle al servidor con un
ACK, completando así la negociación en tres pasos (SYN, SYN/ACK y ACK) y la fase
de establecimiento de conexión.
2. Transferencia de datos: una serie de mecanismos claves determinan la fiabilidad y
robustez del protocolo. Entre ellos están incluidos el uso del número de secuencia
para ordenar los segmentos TCP recibidos y detectar paquetes duplicados,
checksums para detectar errores, asentimientos y temporizadores para detectar
pérdidas o retrasos y ventanas deslizantes para el control de flujo de datos.
- Números iniciales de secuencia: son usados para identificar los datos dentro del
flujo de bytes, y poder identificar (y contar) los bytes de los datos de la
aplicación. Siempre hay un par de números de secuencia incluidos en todo
segmento TCP, referidos al número de secuencia y al número de asentimiento.

131
Para mantener la fiabilidad, un receptor asiente los segmentos TCP indicando
que ha recibido una parte del flujo continuo de bytes. Una mejora de TCP,
llamada asentimiento selectivo (Selective Acknowledgement, SACK) permite a
un receptor TCP asentir los datos que se han recibido de tal forma que el
remitente solo retransmita los segmentos de datos que faltan.
- Checksum: consistente en el complemento a uno de la suma en complemento
a uno del contenido de la cabecera y datos del segmento TCP, agrupados en
intervalos de 16 bits, es calculado por el emisor, e incluido en la transmisión del
segmento.
- Ventanas deslizantes: TCP usa control de flujo para evitar que un emisor envíe
datos de forma más rápida de la que el receptor puede recibirlos y procesarlos.

En cada segmento TCP, el receptor especifica en el campo receive window la


cantidad de bytes que puede almacenar en el búfer para esa conexión. El emisor
puede enviar datos hasta esa cantidad. Para poder enviar más datos debe
esperar que el receptor le envíe un ACK con un nuevo valor de ventana.
3. Fin de la conexión: utiliza una negociación en cuatro pasos (four-way handshake),
tipo FIN-ACK / FIN-ACK, terminando la conexión desde cada lado
independientemente.

▪ Puertos: cada lado de la conexión TCP o UDP tiene asociado un número de puerto asignado
por la aplicación emisora o receptora. Los puertos son clasificados en tres categorías:
○ Well Known: son asignados por la Internet Assigned Numbers Authority (IANA), van del
0 al 1023 y son usados normalmente por el sistema o por procesos con privilegios. Las
aplicaciones que usan este tipo de puertos son ejecutadas como servidores y se quedan
a la escucha de conexiones. Algunos ejemplos son:
FTP / TFTP / SFTP 20-21 / 69 / 989-990 TCP / UDP / TCP
SSH 22 TCP
Telnet 23 TCP
SMTP 25 TCP
DNS 53 UDP
DHCP 67-68 UDP
HTTP / HTTPS 80 / 443 TCP
POP3 / POP3oTLS-SSL 110 / 995 TCP
NTP 123 UDP
NetBIOS 137 / 138 / 139 TCP
IMAP4 / IMAP4oTLS-SSL 143 /993 TCP
SNMP 161 / 162 TCP
BGP 179 TCP
LDAP / LDAPS 389 / 989 - 990 TCP
syslog 514 UDP

132
○ Registered: normalmente empleados por las aplicaciones de usuario de forma temporal
cuando conectan con los servidores, pero también pueden representar servicios que
hayan sido registrados por un tercero (rango de puertos registrados: 1024 al 49151).
○ Dinámicos/Privados: también pueden ser usados por las aplicaciones de usuario, pero
este caso es menos común. Los puertos dinámicos/privados no tienen significado fuera
de la conexión TCP en la que fueron usados (rango de puertos dinámicos/privados:
49152 al 65535)
Keep alive (mecanismos de mantenimiento de conexiones TCP) se refiere generalmente
a las conexiones de comunicación en una red que no están terminadas pero que se
mantienen hasta que el cliente o servidor interrumpe la conexión. La característica clave
de mantener las keep alive es el envío de un mensaje sin contenido entre un servidor y
un cliente. Con este mensaje, uno de los usuarios de la red (cliente o servidor) puede
comprobar si la conexión esta activa.

• CAPA DE SESION: se encarga de mantener y controlar el enlace establecido entre dos


computadores que están transmitiendo datos, proporciona control del diálogo,
agrupamiento y recuperación. Algunos protocolos que operan en la capa de sesión:
o RPC (Remote Procedure Call): protocolo que utiliza una computadora para ejecutar
código en otra máquina remota sin tener que preocuparse por las comunicaciones entre
ambas, de forma que parezca que se ejecuta en local, es una herramienta básica para
establecer estructuras colaborativas y operativas en redes y arquitecturas cliente-
servidor. El proceso de comunicación con RPC consta del envío de parámetros y el
retorno de un valor de función, las llamadas a procedimiento remoto siempre se
ejecutan siguiendo un patrón determinado, por ejemplo, un cliente contacta con un
servidor de base de datos central para buscar una pieza de repuesto. El servidor remoto
revisa entonces la base de datos y envía el resultado al cliente. Este último procesa los
datos recibidos y muestra, por ejemplo, una lista con los datos del inventario en un
software de gestión. En la implementación de una Remote Procedure Call, en el lado del
emisor y del receptor participan unas instancias especiales llamadas “stub”. El “stub”
del cliente actúa como sustituto del procedimiento del servidor remoto en el lado del
cliente, mientras que el “stub” del servidor sustituye al código del cliente que realiza la
llamada en el lado del servidor. Disfrazando el “alejamiento” del código en el otro lado,
los “stubs” simulan operar como una unidad local funcional. Al mismo tiempo, actúan
como interfaces de procedimiento.
o SCP (Simple Communication Protocol): medio de transferencia segura de archivos
informáticos entre un host local y otro remoto o entre dos hosts remotos, usando el
protocolo Secure Shell (SSH). Los datos son cifrados durante su transferencia, para evitar
que potenciales packet sniffers extraigan información útil de los paquetes de datos. Sin
embargo, el protocolo mismo no provee autenticación y seguridad; sino que espera que
el protocolo subyacente, SSH, lo asegure.
o ASP (AppleTalk Session Protocol): establecimiento de la sesión, mantenimiento y
desmontaje, así como la secuencia petición. Proporciona servicios básicos para solicitar
respuestas a las arbitrarias órdenes y llevar a cabo fuera de la banda de consultas de
estado. También permite al servidor enviar mensajes asíncronos de atención al cliente.
o ONC RPC (Open Network Computing Remote Procedure Call): protocolo de llamada a
procedimiento remoto (RPC) desarrollado como parte del proyecto de su sistema de
archivos de Red NFS.

133
o NetBIOS (Network Basic Input/Output System): permite a las aplicaciones 'hablar' con
la red. Su intención es conseguir aislar los programas de aplicación de cualquier tipo de
dependencia del hardware. También evita que los desarrolladores de software tengan
que desarrollar rutinas de recuperación ante errores o de enrutamiento o
direccionamiento de mensajes a bajo nivel. En una red local con soporte NetBIOS, las
computadoras son conocidas e identificadas con un nombre. Cada computador de la red
tiene un único nombre. Cada PC de una red local NetBIOS se comunica con los otros
bien sea estableciendo una conexión (sesión), usando datagramas NetBIOS o mediante
broadcast. Las sesiones permiten, como en el protocolo TCP, mandar mensajes más
largos y gestionar el control y recuperación de errores. La comunicación será punto a
punto. Por otro lado, los métodos de datagramas y broadcast permiten a un ordenador
comunicarse con otros cuantos al mismo tiempo, pero estando limitados en el tamaño
del mensaje. Además, no hay control ni recuperación de errores (al igual que ocurre en
UDP). A cambio, se consigue una mayor eficiencia con mensajes cortos, al no tener que
establecer una conexión.
• CAPA DE PRESENTACIÓN: se encarga de la representación de la información, de manera que
aunque distintos equipos puedan tener diferentes representaciones internas de caracteres,
números, sonido, imagen… Podemos resumir definiendo a esta capa como la encargada de
manejar las estructuras de datos abstractas y realizar las conversiones de representación de
datos necesarias para la correcta interpretación de los mismos. Esta capa actúa como
traductor y cumple 3 funciones principales: formateo de datos, cifrado de datos y
compresión de datos.
o SSL (Secure Sockets Layer): protocolo criptográfico, que proporciona comunicaciones
seguras por una red. Se usan certificados X.509 y por lo tanto criptografía asimétrica
para autentificar a la contraparte con quien se están comunicando,2 y para intercambiar
una llave simétrica. Esta sesión es luego usada para cifrar el flujo de datos entre las
partes. Esto permite la confidencialidad del dato/mensaje, códigos de autenticación de
mensajes para integridad y como un producto lateral, autenticación del mensaje. SSL
proporciona autenticación y privacidad de la información entre extremos sobre Internet
mediante el uso de criptografía e implica 3 fases básicas: negociación entre las partes,
intercambio de claves publicas y autenticación basada en certificados y por ultimo el
cifrado del trafico basado en cifrado simétrico. Durante el proceso de comunicación
segura SSL existen dos estados fundamentales, el estado de sesión y el estado de
conexión. A cada sesión se le asigna un número de identificación elegido por el servidor,
un método de compresión de datos, una serie de algoritmos de encriptación y funciones
hash, una clave secreta maestra de 48 bytes y una etiqueta de conexiones.
- Certificado digital X.509: propuesta por el ITU-T, fue la primera propuesta a nivel
internacional para una infraestructura de clave publica, Public Key Infraestructure
(PKI). Es un estándar importante debido a que la estructura del certificado y los
protocolos de autenticación que en él se definen son utilizados en muchos
contextos como SSL, TLS o S/MIME.
- OCSP (Online Certificate Status Protocol): método para determinar el estado de
vigencia de un certificado digital X.509 usando otros medios que no sean el uso de
CRL (Listas de Revocación de Certificados).

134
o TLS: el protocolo intercambia registros que encapsulan los datos que se intercambian,
cada registro puede ser comprimido, cifrado y empaquetado con un código de MAC
(Código de Autenticación del Mensaje), todo dependiendo del estado de la conexión.
Cada registro tiene un “campo de tipo de contenido” que designa el tipo de datos
encapsulados, “campo de longitud” y un “campo de versión TLS”. Funciona mediante
los protocolos TLS Record Protocol y el protocolo de la capa de mutuo acuerdo que
consiste en un conjunto de tres subprotocolos que permiten a las entidades
participantes en la comunicación TLS intercambiar los parámetros de seguridad
necesarios en la capa de registro, autenticarse entre ellas, instanciar los parámetros de
seguridad e informar de las condiciones de error producidas:
- El protocolo Change Chiper Spec (CCSP): consiste en indicar los cambios de
estrategias de cifrado.
- Alert Protocolo (AP): utilizado para que una entidad emita a la entidad para
cualquier tipo de error que se produzca en el ámbito de TLS.
- Handshake Protocol (HP): cuando se inicia la conexión, el registro encapsula un
protocolo de "control" (el protocolo de mensajería de handshake). Este protocolo
se utiliza para el intercambio de toda la información requerida por las dos partes
para el intercambio de los datos de las aplicaciones reales por TLS. En él se definen
los mensajes de formato o que contengan esta información y el orden de su
intercambio. Este intercambio inicial resulta en una conexión exitosa TLS (ambas
partes listas para transferir datos de la aplicación con TLS) o un mensaje de alerta.
A continuación, un ejemplo simple de conexión, que ilustra un handshake en el que
el servidor (pero no el cliente) es autenticado por su certificado:
a) Fase de negociación:
1º. Un cliente envía un mensaje ClientHello especificando la versión más alta
de protocolo TLS que soporta, un número al azar, una lista de conjuntos de
cifrado sugeridas y métodos de compresión sugeridos.
2º. El servidor responde con un mensaje ServerHello, que contiene la versión
del protocolo elegido, un número aleatorio, CipherSuite y método de
compresión de las opciones ofrecidas por el cliente.
3º. El servidor envía su mensaje de certificado y a continuación el
ServerKeyExchange y por ultimo el servidor envía un mensaje
ServerHelloDone, lo que indica que terminó con la negociación del
handshake.
4º. El cliente responde con un mensaje ClientKeyExchange, que puede
contener una PreMasterSecret (se cifra utilizando la clave pública del
certificado del servidor), la clave pública, o nada.
5º. El cliente y el servidor a continuación utilizan los números aleatorios y
PreMasterSecret para calcular un secreto común, llamado el "secreto
principal" (master secret). Todos los demás datos clave para esta conexión
se deriva de este secreto principal (y los valores aleatorios generados tanto
por cliente y por servidor), que se pasan a través de una función
pseudoaleatoria cuidadosamente diseñado.
b) El cliente envia un registro ChangeCipherSpec, informando de que todo será
autenticado (y cifrado si los parámetros de cifrado estaban presentes en el
certificado del servidor) desde este momento, por último, el cliente envía un
mensaje autenticado y cifrado de Finished (terminado), que contiene un hash y
MAC sobre los mensajes de handshake anteriores.

135
El servidor intentará descifrar el mensaje Finished del cliente y verificar el hash
y MAC. Si el descifrado o verificación falla, el handshake se considera que ha
fracasado y la conexión debe ser derribada.
c) El servidor responde con otro ChangeCipherSpec, diciéndole al cliente, "Todo lo
que yo te diga de ahora en adelante será autenticado (y cifrado, si el cifrado se
negoció)." El servidor envía su mensaje Finished autenticado y cifrado. El cliente
realiza el mismo descifrado y verificación.
d) Fase de aplicación: en este punto, el "handshake" está completado y el
protocolo de aplicación está activada. Los mensajes de aplicación
intercambiados entre el cliente y el servidor también serán autenticados y
opcionalmente cifrados exactamente igual que en su mensaje final.
TLS 1.3: proporciona autenticación y privacidad de la información entre extremos
sobre Internet mediante el uso de criptografía. Para poder iniciar una sesión de conexión, el
protocolo handshake o de negociación inicia una fase de negociación siguen el siguiente orden:
• El cliente envía un mensaje ClientHello, especificando la información de cifrado y la versión
del protocolo, la lista de algoritmos y los métodos de compresión que soporta.
• El servidor responde al cliente con un mensaje ServerHello indicando el cifrado, método de
compresión y protocolo TLS elegidos y una cadena de 32 bytes aleatorios.
• El servidor ofrece su mensaje de certificado para ser verificado por el cliente, de esta
manera el cliente puede verificar la integridad del servidor.
• El servidor envía su mensaje ServerKeyExchange, el cual incluye la calve publica y la clave
del certificado y posteriormente solicita mediante el mensaje Certificate Request el
certificado del cliente para que la conexión pueda ser mutuamente autenticada.
• El servidor envía un mensaje ServerHelloDone dando por concluida la fase de negociación
asimétrica.
• El cliente responde con un mensaje con su certificado.
• LE cliente una vez ha comprobado y validad el certificad responde con un mensaje
ClientKeyExchange que contienen la PreMasterSecret cifrada con la clave pública del
servidor.
Cliente y servidor usan las cadenas de números aleatoria y la PreMasterSecret para generar la
clave de sesión secreta con la ambos cifraran y descifraran la informa enviada.
o Códecs de audio y video: H.323 es uno de los estándares más antiguos que
generalmente se utilizan para la telefonía VoIP y videoconferencia. Es un sistema de
varios protocolos y elementos que permite la transferencia de datos de medios
sobre redes de paquetes. Esta estructura de recomendación estándar abre
diferentes opciones de comunicación multimedia, incluyendo telefonía,
videoconferencia y transferencia de medios. Por defecto, H.323 utiliza el código
G.711 con una alta velocidad de ancho de banda. Sin embargo, se considera que
G.711 está desactualizado. Los códecs de baja frecuencia como G.723 y G.729 se
usaron inicialmente para las conexiones a Internet. En cuanto a los códecs de video,
todos los puntos finales modernos H.323 deben ser compatibles con H.264, que se
convierten en un estándar.
o XDR (eXternal Data Representation): permite la transferencia de datos entre
máquinas de diferentes arquitecturas y sistemas operativos. Trabaja al nivel de
ordenamiento de byte, códigos de caracteres y sintaxis de estructura de datos.

136
• CAPA DE APLICACIÓN: Ofrece a las aplicaciones (de usuario o no) la posibilidad de acceder
a los servicios de las demás capas y define los protocolos que utilizan las aplicaciones para
intercambiar datos, como correo electrónico (POP y SMTP), gestores de bases de datos y
protocolos de transferencia de archivos (FTP). En esta capa aparecen diferentes protocolos
y servicios:
o NFS (Network File System): posibilita que distintos sistemas conectados a una misma
red accedan a ficheros remotos como si se tratara de locales y está implementado sobre
los protocolos XDR (presentación) y ONC RPC (sesión). El protocolo NFS está incluido por
defecto en los Sistemas Operativos UNIX y la mayoría de distribuciones Linux. Un
servidor y uno o más clientes. Los clientes acceden de forma remota a los datos que se
encuentran almacenados en el servidor, Las estaciones de trabajo locales utilizan menos
espacio de disco debido a que los datos se encuentran centralizados en un único lugar
pero pueden ser accedidos y modificados por varios usuarios, de tal forma que no es
necesario replicar la información. Los usuarios no necesitan disponer de un directorio
“home” en cada una de las máquinas de la organización. Los directorios “home” pueden
crearse en el servidor de NFS para posteriormente poder acceder a ellos desde cualquier
máquina a través de la infraestructura de red. También se pueden compartir a través de
la red dispositivos de almacenamiento.
El servidor también ofrece servicios de montaje, de control de autenticación y acceso y
una caché a través del uso del comando “rpc”:
▪ rpc.mountd: demonio que se encarga del montaje remoto. Recibe la petición desde
el cliente NFS y comprueba que el sistema de archivos este exportado y si está
disponible permite las solicitudes de acceso de NFS y proporciona información sobre
ello (showmount).
▪ rpc.nfsd: demonio para servir archivos. Se pueden arrancar varias copias de este
demonio. Utiliza el puerto TCP/UDP 2049.
▪ rpc.portmap: se encarga de indicar a los clientes donde se encuentra el servicio real
en el servidor. Los servicios basados en RPC usan portmap para atender las
peticiones de los clientes por lo cual este servicio debe estar disponible el primero.
▪ rpc.lockd: encargado de proporcionar el servicio de bloqueo de archivos para
asegurar su consistencia ya que pueden ser accedidos de forma concurrente. Se
ejecuta tanto en el servidor como en el cliente.
▪ rpc.statd: demonio que trabaja conjuntamente con lockd para recuperar en caída
de sistemas. Mantiene información sobre los procesos en los clientes que poseen
locks de archivos de determinado servidor. Cuando el servidor NFS se recupera statd
informa a los otros de los clientes, que el servidor se ha recuperado y así ellos
resuelven los locks que tenían.
o FTP (File Transfer Protocol): protocolo utilizado para la transferencia de archivos entre
dos equipos que estén conectados a una red TCP/IP. El modelo usado en FTP es el de
una aplicación cliente-servidor, envía comandos oportunos para iniciar sesión, una vez
iniciada, puede efectuar algunos comandos de manipulación o envío/recepción de
ficheros y después desconecta la sesión. El servidor se limita a recibir conexiones de los
clientes, interpretar los comandos y comprobar si las operaciones se pueden efectuar
sobre los ficheros. Dependiendo de factores como los cortafuegos que existan entre el
cliente y el servidor, si se usa NAT o no… Se puede usar:

137
▪ Modo activo: el cliente se conecta al puerto 21 del servidor, y pone un puerto TCP
aleatorio por envían del 1023 en escucha, envía ese número de puerto al servidor
mediante la conexión establecida, y el servidor se conecta al cliente para enviar los
datos.
▪ Modo pasivo: el cliente se conecta al puerto 21 del servidor, el servidor entonces
pone un puerto aleatorio por encima del 1023 en escucha, y envía ese número de
puerto al cliente, para que inicie otra conexión al servidor e intercambiar los datos
por ella.
Estos dos modos consiguen que la comunicación se pueda realizar, aunque uno de los
extremos tena un firewall que le impida recibir conexiones.
Dependiendo del tipo de datos que se envían:
▪ Type ASCII: solo se utilizará el juego de caracteres ASCII para enviar los datos, es
decir, que transmitiremos únicamente texto.
▪ Type Binary: podemos enviar el tipo de archivos que queramos, sin importar la
codificación.
Comandos FTP:
- open “dirección”: inicia una conexión con un servidor FTP.
- close o disconnect: finaliza una conexión FTP.
- bye: finaliza una conexión FTP y la sesión de trabajo con el programa cliente.
- cd: cambia el directorio de trabajo en el servidor.
- delete “archivo”: borra un archivo en el servidor.
- dir: muestra el contenido del directorio de trabajo en el que estamos en el servidor.
- !dir: muestra el contenido del directorio de trabajo en el que estamos en la maquina
local.
- get “archivo”: solicita el envío de un archivo del servidor.
- put “archivo”: envía un archivo al servidor.
- pwd: muestra el directorio activo en el servidor.
- bin: activa el modo de transferencia binario.
- ascii: activa el modo de transferencia en modo texto ASCII.
o DHCP (Dynamic Host Configuration Protocol): protocolo de red de
tipo cliente/servidor mediante el cual un servidor DHCP asigna
dinámicamente una dirección IP y otros parámetros de configuración
de red a cada dispositivo en una red para que puedan comunicarse
con otras redes IP. Este servidor posee una lista de direcciones IP
dinámicas y las va asignando a los clientes conforme estas van
quedando libres, sabiendo en todo momento quién ha estado en
posesión de esa IP, cuánto tiempo la ha tenido y a quién se la ha
asignado después. El DHCP le permite al administrador supervisar y
distribuir de forma centralizada las direcciones IP necesarias y,
automáticamente, asignar y enviar una nueva IP si fuera el caso en
que el dispositivo es conectado en un lugar diferente de la red. El
protocolo DHCP incluye tres métodos de asignación de direcciones IP:

138
▪ Asignación manual o estática: asigna una dirección IP a una máquina determinada.
Se suele utilizar cuando se quiere controlar la asignación de dirección IP a cada
cliente, y evitar, también, que se conecten clientes no identificados.
▪ Asignación automática: asigna una dirección IP a una máquina cliente la primera vez
que hace la solicitud al servidor DHCP y hasta que el cliente la libera. Se suele utilizar
cuando el número de clientes no varía demasiado.
▪ Asignación dinámica: el único método que permite la reutilización dinámica de las
direcciones IP. El administrador de la red determina un rango de direcciones IP y
cada dispositivo conectado a la red está configurado para solicitar su dirección IP al
servidor cuando la tarjeta de interfaz de red se inicializa. El procedimiento usa un
concepto muy simple en un intervalo de tiempo controlable. Esto facilita la
instalación de nuevas máquinas clientes.
o HTTP (HyperText Transfer Protocol): protocolo de comunicaciones de aplicación que
permite la transmisión de datos en forma de texto, hipertexto, audio, imágenes o
cualquier tipo de información multimedia. Es un protocolo cliente/servidor orientado a
transacciones, un protocolo sin estados donde cada “transacción” de información
requiere el establecimiento, mantenimiento y cierre de la conexión entre el cliente y el
servidor. El funcionamiento de HTTP es: un cliente HTTP (navegador web) establece una
conexión directa con el servidor, donde se ubica el recurso. El cliente establece una
conexión TCP con el servidor y emite una solicitud HTTP. Esta solicitud consta de una
sentencia concreta (método), una URL y un mensaje MIME que contiene los parámetros
de la solicitud. Cuando el servidor recibe la solicitud, intenta llevar a cabo la acción
solicitada y después devuelve una respuesta HTTP. La respuesta incluye información de
estado, un código de éxito/error y un mensaje MIME que contiene información sobre el
servidor sobre la propia respuesta y finalmente el cuerpo de la propia respuesta.
Métodos HTTP:
- GET: El método GET se emplea para leer una representación de un resource. En caso
de respuesta positiva (200 OK), GET devuelve la representación en un formato
concreto: HTML, XML, JSON o imágenes, JavaScript, CSS, etc.
- HEAD: Es idéntido a GET, pero el servidor no devuelve el contenido en el HTTP
response. Cuando se envía un HEAD request, significa que sólo se está interesado
en el código de respuesta y los headers HTTP, no en el propio documento
- POST: se utiliza para enviar una entidad a un recurso en específico, causando a
menudo un cambio en el estado o efectos secundarios en el servidor, aunque se
envía en el mismo formato que con el método GET. Si se quiere enviar texto largo o
cualquier tipo de archivo este es el método apropiado.
- PUT: Utilizado normalmente para actualizar contenidos, pero también pueden
crearlos.
- DELETE: elimina un recurso especifico identificado en la URI.
- CONNECT: establece un túnel hacia el servidor identificado por el recurso.
- OPTIONS: es utilizado para describir las opciones de comunicación para el recurso
de destino.
- TRACE: realiza una prueba de bucle de retorno de mensaje a lo largo de la ruta al
recurso de destino.
- PATCH: es utilizado para aplicar modificaciones parciales a un recurso.

139
Mensajes de respuesta:
▪ Respuestas informativas (100-Continue, 101-switch protocols,…)
▪ Respuestas satisfactorias (200-OK, 202-Accepted, 204-no content,…)
▪ Redirecciones (300-multiple choices, 301-moved pertmanently, 305-Use Proxy,…)
▪ Errores de los clientes (400-Bad request, 401-Unauthorized, 403-forbidden,…)
▪ Errores de los servidores (500-Internal Server Error, 502-Bad Gateway, 503-Service
Unavailable,…)
HTTP/2 no modifica la semántica de aplicación de HTTP. Todos los conceptos básicos,
tales como los métodos HTTP, códigos de estado, URI, y campos de cabecera, se
mantienen sin cambios; sin embargo, HTTP 2.0 introduce innumerables mejoras como
el uso de una única conexión, la compresión de cabeceras o el servicio ‘server push’.
Características:
• Una única conexión para descargar todos los elementos de la web.
• Multiplexación: permite enviar y recibir varios mensajes al mismo tiempo
optimizando la comunicación.
• HTTP 2.0 es un protocolo binario: tiene el uso de un protocolo binario es la facilidad
para encontrar el comienzo y el final de cada frame.
• Servicio “server push”: estimaciones para que el servidor sea capaz de enviar
información al usuario antes de que éste la solicite para que la información esté
disponible de forma inmediata.
• Comprensión de cabeceras para transmitir menos información: las cabeceras
experimentan compresiones, con lo que se obtienen mejores tiempos de respuesta
y también se mejora la eficiencia.
• Priorización de flujos: Para poder ‘controlar’ la prioridad que tienen las tramas, HTTP
2.0 permite asignar a cada flujo un peso (entre 1 y 256) y una dependencia.
• No requiere TLS: el uso de cifrado TLS (Transport Layer Security) es opcional pero
los principales navegadores hacen uso de este.

HTTP Strict Transport Security (HSTS): es una política de seguridad web establecida para
evitar ataques que puedan interceptar comunicaciones, cookies, etc. Según este
mecanismo un servidor web declara que los agentes de usuario compatibles (es decir,
los navegadores), solamente pueden interactuar con ellos mediante conexiones HTTP
seguras (es decir, en HTTP sobre TLS/SSL1). HSTS es un estándar del IETF y se especifica
en el RFC 6797.

o HTTPS (HyperText Transfer Protocol Secure): existe una variante de HTTP utilizada para
comunicaciones seguras llamada HTTPS, es una conexión HTTP que se realiza con la
ayuda del protocolo SSL (Secure Socket Layer) o TLS (Transport Layer Security) y que usa
el puerto por defecto TCP 443 en vez del 80. Lo que proporciona una medida efectiva
de cifrado y autenticación tanto del servidor como del cliente, para las transacciones de
comercio o banca electrónica.
Un servidor HTTP espera recibir del cliente como primeros datos una “Request-Line”.
Sin embargo, los primeros datos que espera recibir un servidor TLS es un mensaje del
tipo “ClientHelp”.

140
▪ Identidad del servidor: si el nombre del servidor es conocido por el cliente, dicho
cliente debe comprobar la identidad del servidor cuando se muestre el mensaje del
certificado del servidor, si el nombre del servidor no coincide con la identidad
indicada en el certificado, el cliente debe notificárselo al usuario o terminal la
conexión con un mensaje de “error de certificado”.
▪ Identidad del cliente: el servidor no tiene conocimiento sobre la identidad del
cliente.
o SSH (Secure Shell): nombre de un protocolo y del programa que lo implementa cuya
principal función es el acceso remoto a un servidor por medio de un canal seguro en el
que toda la información está cifrada. Además de la conexión a otros dispositivos, SSH
permite copiar datos de forma segura (tanto archivos sueltos como simular sesiones FTP
cifradas), gestionar claves RSA para no escribir contraseñas al conectar a los dispositivos
y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante
SSH y también puede redirigir el tráfico del (Sistema de Ventanas X) para poder ejecutar
programas gráficos remotamente. El puerto TCP asignado es el 22.
SSH trabaja de forma similar a como se hace con telnet. La diferencia principal es que
SSH usa técnicas de cifrado que hacen que la información que viaja por el medio de
comunicación vaya de manera no legible, evitando que terceras personas puedan
descubrir el usuario y contraseña de la conexión ni lo que se escribe durante toda la
sesión; aunque es posible atacar este tipo de sistemas por medio de ataques de
reinyección/reproducción y manipular así la información entre destinos.
o TELNET: protocolo de comunicaciones de capa de aplicación, permite la ejecución de
sesiones de terminal remoto, utilizando para ello conexiones TCP. Tienen una
arquitectura cliente/servidor (puerto 23). No proporciona ningún mecanismo de
seguridad, la recomendación actual es utilizarlo solamente en redes privadas seguras o
sino utilizar en su lugar el protocolo Secure Shell (SSH). Estos servidores escuchan las
solicitudes de conexión en el puerto TCP 22.
o DNS (Domain Name System): sistema de nomenclatura jerárquica par ordenadores,
servicio o cualquier recurso conectado a TCP/IP. Permite asociar información de
diferente tipo con el nombre de domino asignado, su función más importante es
traducir (resolver) nombres de sistemas, a direcciones IP. Los servidores DNS utilizan
una base de datos distribuida y jerárquica que almacena información asociada a
nombres de dominio. Los usos más comunes son la asignación de nombres de domino
a direcciones IP y la localización de los servidores de correo electrónico de cada dominio.
La red de DNS se conforma de:
▪ Clientes DNS: genera peticiones DNS de resolución de nombres a un servidor DNS
▪ Servidores DNS: contestan a las peticiones de los clientes.
▪ Zonas de autoridad: parte del espacio de nombres de domino que almacena los
datos.
▪ Servidor autoritativo de Zona: cada dominio DNS tienen al menos uno, es aquel
legitimado para almacenar los registros d host o de servicios asociados a este
dominio. Cada servidor de zona tiene información explicita sobre que servidor es el
autoritativo para cada uno de sus subdominios. Cualquier nombre de domino pueda
ser rastreado a partir de una consulta de un cliente por cualquier servidor DNS
conociendo la dirección de los servidores Raiz (aquellos que conocen las direcciones
IP de los servidores autoritativos de los dominios del primer nivel).

141
- Nombres de dominio: usualmente consiste en dos o más cadenas de texto (etiquetas)
separadas por puntos, a la etiqueta ubicada más a la derecha se le llama dominio de
nivel superior (Top Level Domain, TLD). Cada etiqueta a la izquierda especifica una
subdivisión o subdominio. Finalmente, a la izquierda del dominio se coloca el nombre
de la maquina a la que se hace referencia.
- Estructura: DNS conjunto jerárquico de servidores, cada dominio o sub dominio tienen
una o más zonas de autoridad. Al inicio de esa jerarquía se encuentran los servidores
raíz, que responden cuando se busca resolver un dominio de primer y segundo nivel.
- El espacio de nombres de dominio tiene una estructura arborescente. Un nombre de
dominio completo de un objeto consiste en la concatenación de todas las etiquetas de
un camino. Las etiquetas individuales están separadas por puntos. Los objetos de un
dominio DNS se registran en un archivo de zona, ubicado en uno o más servidores de
nombres, los DNS pueden ser del tipo:
○ Preferidos o primarios: servidores autoritativos de al menos un domino que guardan
los datos de un espacio de nombres en sus ficheros. Permiten lectura y escritura.
○ Alternativos o secundarios: servidores autoritativos de dominio, son de solo lectura
y obtienen y actualizan los datos de los servidores primarios a través de una
transferencia de zona.
○ Locales o caché: no son autoritativos de ningún dominio, no contienen la base de
datos para la resolución de nombres. Cuando se les realiza una consulta, obtienen
la información requerida de los servidores autoritativos, almacenando la respuesta
en su base de datos (caché) para agilizar la repetición de estas peticiones.
Consultas que un servicio cliente DNS puede hacer a un servidor DNS:
○ Recursiva: realiza un cliente en las que solicita al servidor una respuesta final
autoritativa ante una consulta. El servidor consultado debe enviar cuantas consultas
intermedias (no autoritativas) se requieran hasta localizar al servidor autoritativo
del FQDN (Fully Qualified Domain Name) de la consulta inicial y obtener la respuesta
autoritativa, es el tipo de consulta que realizan los equipos cliente.
○ Iterativa: consulta enviada a un servidor DNS permite a este responder con una
respuesta no autoritativa, permite al servidor responder a su solicitante con la
dirección de otro servidor DNS. Suelen enviar unos servidores a otros para localizar
al autoritativo de dominio al que pertenece el FQDN.
Respuestas que puede proporcionar un servidor DNS:
○ Autoritativa: proviene del servidor que posee autoridad sobre el dominio que está
solicitando la resolución. Siempre es una respuesta final, ya sea satisfactoria o no.
○ No autoritativa: un servidor es preguntado por un FQDN para cuyo dominio no es
autoritativo y responde con la dirección de otro servidor DNS distinto.
Tipos de registros DNS:
- A (Address): este registro se usa para traducir nombres de hosts a direcciones IPv4.
- AAAA (Address): se usa en IPv6 para traducir nombres.
- CNAME (Canonical Name): crear nombres de servidores de alojamiento adicionales,
cuando se están ejecutando múltiples servicios (como ftp y web) en un servidor con
una sola dirección IP cada servicio tiene su propia entrada de DNS.

142
- NS (Name Server): asociación que existe entre un nombre de dominio y los
servidores de nombres autoritativos que almacenan la información del dominio.
- MX (Mail Exchange): asocia un nombre de dominio a un servidor de intercambio de
correo para ese dominio.
- PTR (Pointer): “registro inverso” traduce IPs en nombres de host o de dominio.
- SOA (Start of Authtority): proporciona información sobre el servidor DNS primario
de zona.
- HINFO (Host Information): permite que la gente conozca el tipo de maquina y SO al
que corresponde un dominio.
- TXT (Text): permite a los dominios identificarse de modos arbitrarios.
- LOC (Localization): permite indicar las coordenadas del dominio.
- SRV (Services): ofrece el dominio asociándolos a un nombre.
- SPF (Sender Policy Framework): protección contra la falsificación de direcciones en
el envío de correo electrónico. Identifica, a través de los registros de nombres de
dominio (DNS), a los servidores de correo SMTP autorizados para el transporte de
los mensajes.

3. MODELO TCP/IP
El modelo TCP/IP es usado para comunicaciones en
redes y, como todo protocolo, describe un conjunto de
guías generales de operación para permitir que un
equipo pueda comunicarse en una red. TCP/IP provee
conectividad de extremo a extremo especificando
cómo los datos deberían ser formateados,
direccionados, transmitidos, enrutados y recibidos por
el destinatario. TCP/IP es un conjunto de protocolos
que permiten la comunicación entre los ordenadores
pertenecientes a una red. La sigla TCP/IP significa
Protocolo de control de transmisión/Protocolo de
Internet. Proviene de los nombres de dos protocolos
importantes incluidos en el conjunto TCP/IP, es decir,
del protocolo TCP y del protocolo IP.
El modelo incluye cuatro capas:
• Capa de acceso al medio: maneja las partes físicas del envío y recepción de datos mediante
el cable Ethernet, la red inalámbrica, la tarjeta de interfaz de red, el controlador del
dispositivo en el equipo, etcétera.
• Capa de internet: controla el movimiento de los paquetes alrededor de la red.
• Capa de transporte: proporciona una conexión de datos fiable entre dos dispositivos. Divide
los datos en paquetes, hace acuse de recibo de los paquetes que recibe del otro dispositivo
y se asegura de que el otro dispositivo haga acuse de recibo de los paquetes que recibe a su
vez.
• Capa de aplicación: grupo de aplicaciones que requiere comunicación de red. Es con lo que
el usuario suele interactuar, como el correo electrónico y la mensajería. Como la capa
inferior gestiona los detalles de la comunicación, las aplicaciones no tienen que preocuparse
por ello.

143
4. W3C, ATAG, WCAG
WCAG (Web Content Accessibility Guidelines): son una parte de las directrices de accesibilidad
web publicadas por la WAI (Web Accessibility Initiative ) parte del World Wide Web
Consortium (W3C), la principal organización de estándares de internet. Consiste en 12
directrices organizados en cuatro principios. Los sitios web deben
ser perceptibles, operables, entendibles y robustos:
• Perceptible: a información y los componentes de la interfaz de usuario deben ser
presentados al usuario de tal forma que sean perceptibles.
o Alternativas textuales: provea textos alternativos para contenido no textual
o Medios tempodependientes: provea alternativas para Time Based Media.
o Adaptable: contenido que pueda ser presentado de diferentes formas
o Distinguible: más fácil para los usuarios el ver y escuchar el contenido
• Operable: los componentes de la interfaz y navegación deben ser operables.
o Accesible por teclado: Proporcionar acceso a toda la funcionalidad mediante el teclado
o Tiempo suficiente: Proporcionar a los usuarios el tiempo suficiente para leer y usar el
contenido.
o Convulsiones: No diseñar contenido de un modo que se sepa podría provocar ataques,
espasmos o convulsiones.
o Navegable: Proporcionar medios para ayudar a los usuarios a navegar, encontrar
contenido y determinar dónde se encuentran.
o Formas de entrada de datos (Input Modalities): Facilitar a los usuarios operar la
funcionalidad mediante varias formas de entrada de datos, más allá del teclado.
• Comprensible: la información y la operación de la interfaz de usuarios deben ser
entendibles.
o Legible: Hacer que los contenidos textuales resulten legibles y comprensibles.
o Predecible: Hacer que las páginas web aparezcan y operen de manera predecible.
o Entrada de datos asistida: Ayudar a los usuarios a evitar y corregir los errores.
• Robusto: el contenido debe ser suficientemente robusto de tal forma que pueda ser
interpretado de forma confiable.
o Compatible: Maximizar la compatibilidad con las aplicaciones de usuario actuales y
futuras, incluyendo las ayudas técnicas

ATAG (Authoring Tool Accessibility Guidelines): parte de una serie de pautas de accesibilidad,
incluidas las Pautas de accesibilidad al contenido web (WCAG) y las Pautas de accesibilidad del
agente de usuario (UAAG). Las herramientas de autor son software y servicios que los “autores”
(desarrolladores web, diseñadores, escritores, etc.) utilizan para producir contenido web
(páginas web estáticas, aplicaciones web dinámicas, etc.). Los documentos de las ATAG explican
cómo:
• Hacer que las herramientas de creación sean accesibles, de modo que las personas con
discapacidad puedan crear contenido web.
• Ayudar a los autores a crear contenido web más accesible, específicamente: habilitar,
respaldar y promover la producción de contenido que se ajuste a las Pautas de accesibilidad
al contenido web (WCAG).

144
- RDF (Resource Description Framework): es una familia de especificaciones de la World Wide
Web Consortium (W3C) originalmente diseñado como un modelo de datos para metadatos.

- SPARQL: un lenguaje estandarizado para la consulta de grafos RDF, normalizado por el RDF
Data Access Working Group (DAWG) del World Wide Web Consortium (W3C). Es una
tecnología clave en el desarrollo de la web semántica. Al igual que sucede con SQL, es
necesario distinguir entre el lenguaje de consulta y el motor para el almacenamiento y
recuperación de los datos. Por este motivo, existen múltiples implementaciones de SPARQL,
generalmente ligados a entornos de desarrollo y plataforma tecnológicas.

- NVDA (Non-Visual Desktop Access): lector de pantalla portátil gratuito, de código abierto
para Microsoft Windows.

- JAWS (Job Access With Speech): es un software lector de pantalla para ciegos o personas con
visión reducida.

145
TEMA 4 – SERVIDORES DE MENSAJERIA

1. ADMINISTRACION DE SERVIDORES DE CORREO ELECTRONICO


Inicialmente el correo se sustentaba sobre un conjunto pequeño de recomendaciones y
especificaciones para el intercambio de mensajes entre “hosts” TCP/IP llamado X.400 (estándar
conforme al modelo OSI, para el intercambio de correo electrónico), como le pasó a la mayor
parte de los estándares OSI del nivel de aplicación no soportó la competencia con el protocolo
similar de Internet, en este caso el SMTP. La tendencia actual es la de proveer una solución
unificada de mensajería para una organización que integre también mensajería móvil,
mensajería instantánea, groupware… la frontera entre servidores puros de correo y servidores
generales de mensajería o entrono colaborativo se diluye. Un servidor más estándar resulta
interesante, con alternativas como sendmail (Linux). Es más habitual contar con dispositivos de
almacenamiento dedicados como soluciones NAS o SAN con conexiones rápidas de fibra óptica
y que además facilitan el uso de clústeres al permitir que un servidor asuma los buzones
gestionados por otro en caso de caída. Los modelos de acceso más habituales, son:
• Sin conexión: el cliente se conecta periódicamente al servidor y descarga los mensajes
nuevos del mismo procediendo a continuación a su borrado, el correo se procesa y almacena
localmente en el cliente (POP3).
• Conectado: los clientes realizan cambios en el servidor, es decir, el correo se almacena en el
servidor, pero es procesado por software en el cliente, los cambios suelen realizarse por
medio de algún protocolo de acceso remoto (NFS).
• Desconectado: mezcla de los anteriores, el cliente en primer lugar recupera los datos del
servidor, trabaja con ellos localmente y posteriormente se envían al servidor.
Tipos de clientes:
• Cliente tradicional: presente en los primeros sistemas Unix. Accesible desde la interfaz de
comandos mediante una cuenta en la misma máquina del servidor de correo, actualmente
obsoleto.
• Clientes pesados: se instalan en el PC del usuario y gestionan todo el ciclo de vida de
creación, envió y recepción de mensajes, se conectan a los servidores correspondientes con
POP3 o IMAP4 para la recuperación de los mensajes y el envío se centraliza también en los
servidores con SMTP.
• Clientes ligeros o web: el usuario accede al sistema de correo a través de una interfaz web
con un navegador.
• Clientes en dispositivos móviles: clientes nativos para móviles que utilizan IMAP4 como
protocolo de recuperación para permitir que posteriormente, los mensajes procesados sean
visibles también desde el PC u otros clientes.
* Postfix: servidor de correo de software libre / código abierto, un programa informático para
el enrutamiento y envío de correo electrónico, creado con la intención de que sea una
alternativa más rápida, fácil de administrar y segura al ampliamente utilizado Sendmail.

* Exim: agente de transporte de correo desarrollado por la Universidad de Cambridge y puede


ser utilizado en la mayoría de los sistemas Unix.

146
2. ARQUITECTURA DEL PROTOCOLO DE CORREO ELECTRONICO EN INTERNET
Actualmente, el correo electrónico proporciona funciones para el envío y recepción de mensaje
de forma asíncrona con la posibilidad de adjuntar todo tipo de ficheros y múltiples opciones de
formato. Admite diversas extensiones de funcionalidad como notificación de entrega, firma
electrónica de los mensajes, establecimiento de prioridad, listas de correo, envío y reenvío de
copias… El correo constituye una aplicación en si misma que proporciona conectividad asíncrona
extremo a extremo, pero también puede considerarse una herramienta o canal de
comunicación. Actualmente puede establecerse una arquitectura genérica para los sistemas de
correo basados en Internet:

• MUA (Mail User Agent): sistema que se encarga de recibir y enviar emails usando los
protocolos STMP (para el envío) y POP3 o IMAP (para la recepción). (Ejemplos: evolution,
kmail, sylpheed, squirrelmail, Mozilla Thunderbird, Microsoft Outlook, webmails como
Gmail o outlook…).
• MSA (Mail Submission Agent): programa del servidor que recibe correo de un MUA,
comprueba si hay errores y lo transfiere (con SMTP) al MTA alojado en el mismo servidor.
• MTA (Mail Transfer Agent): sistema que se encarga de tomar el email de un MUA o de otro
MTA y entregarlo a otro MTA o a un MDA, en caso de que el email pertenezca al dominio
propio del MTA. (Ejemplos: postfix, qmail, exim, Cyrus, courier…).
• MDA (Mail Delivery Agent): sistema que se encarga de la recepción del email por parte de
un MTA, y lo almacena de la forma que tenga configurada. Los MDA pueden almacenar en
disco, base de datos o llamar a otro programa para hacer el procesado de emails (listas de
correo, sistemas de control de incidencias…). (Ejemplos: procmail, maildrop…).
• MAA: (Mail Access Agent, Agente de Acceso de Correo), es el sistema que se encarga del
acceso al correo almacenado. Sería como la oficina de correos, y por ello su protocolo más
usado es POP3 (Post-Office Protocol version 3). Se encarga de hacer accesible lo buzones a
equipos remotos. (Ejemplos: dovecot, uw, qpopper…).

ZCS (Zimbra Collaboration Suite): programa informático colaborativo o Groupware que consta
de un servicio de correo electrónico, posee tanto el componente de servidor como su respectivo
cliente.

2.1 PROTOCOLOS DE CORREO ELECTRONICO


La arquitectura de correo en Internet se fundamenta en un conjunto combinado de protocolos
básicos en redes TCP/IP, el conjunto de protocolos básico que han adquirido el carácter de
estándares esta descrito en tres RFC publicados por la IETF:

147
• SMTP: protocolo de comunicación estándar de Internet para la transmisión de correo
electrónico bajo redes TCP/IP.
• MAIL: estándar que versa sobre el formato de los mensajes de correo y que describe la
sintaxis de cabeceras de un mensaje y los posibles campos a utilizar en la misma, y como
deben interpretarse.
• DNS-MX: estándar para describir el procedimiento de enrutado de los mensajes que se basa
en el Sistema de Nombres de Dominio (DNS). Cuando un usuario especifica una dirección de
correo (un buzón) al que se desea enviar un mensaje, tras el símbolo “@” se encuentra el
nombre de domino del “host” destino. Para establecer una conexión TCP con el mismo, el
emisor SMTP deberá en primer lugar realizar una consulta al servidor de nombres
correspondiente para determinar la dirección IP del equipo remoto, el nombre que figura
tras la “@” en la dirección de correo no es un nombre de domino completo, los servidores
DNS almacenan entradas mensajes MX RR* específicas para la entrega de. Estas entradas
mapean el nombre de domino a un valor de preferencia ya que pueden existir múltiples
entradas MX RR para un nombre y se asigna prioridad a cada una de ellas, y al nombre de
dominio completo del “host”, deberá utilizarse para establecer la conexión TCP/IP y deberá
resolverse nuevamente en el DNS.

* Un registro MX (Mail eXchange record) es un tipo de registro, un recurso DNS que especifica
cómo debe ser encaminado un correo electrónico en internet. Los registros MX apuntan a los
servidores a los cuales envían un correo electrónico, y a cuál de ellos debería ser enviado en
primer lugar, por prioridad.
Cuando un mensaje de correo electrónico es enviado a través de internet, el remitente (MTA)
hace una petición al DNS solicitando el registro MX para los nombres de dominio de destino. El
nombre de dominio es la parte de la dirección de correo que va a continuación de la "@". Esta
consulta devuelve una lista de nombres de dominios de servidores de intercambio de correo que
aceptan correo entrante para dicho dominio, junto con un número de preferencia. Entonces el
agente emisor (o remitente) intenta establecer una conexión SMTP (Simple Mail Transfer
Protocol) hacia uno de estos servidores, comenzando con el que tiene el número de preferencia
más pequeño, y enviando el mensaje al primer servidor con el cual puede establecer una
conexión. Si no hay registros MX disponibles, una segunda petición es solicitada al registro A (A
Record) del dominio en su lugar.

2.1.1. SMTP (SIMPLE MAIL TRANSFER PROTOCOL)


El RFC 5321 define SMTP como un protocolo cliente/servidor, el cliente SMTP es el equipo que
inicia una sesión (el que envía el mensaje) y el servidor es el equipo que responde a la petición
de sesión (y recibe el mensaje). Se fundamenta sobre el principio de una entrega extremo a
extremo, un cliente SMTP que desee enviar un mensaje a otro equipo o servidor en una red
TCP/IP se conectara directamente a dicha máquina para transmitir el mensaje sin el empleo de
nodos intermedios (una clara diferencia con respecto a X.400). Se contempla la posibilidad de
envíar correo a través de una puerta de enlace de correo con otro tipo de redes, pero en tal caso
SMTP solo garantiza el envío hasta la puerta de enlace, el envío no corresponde al usuario, sino
que se centraliza en un equipo que recibe el nombre de servidor de correo. La estructura del
mensaje transmitido sigue:

148
• SMTP ENVELOPE:
o HELLO: el cliente envía este comando al servidor SMTP para identificarse e iniciar la
conversación SMTP y el nombre de dominio o la dirección IP del cliente SMTP
generalmente se envía como un argumento junto con el comando.
o MAIL TO: especifica la dirección de correo electrónico del remitente. Este comando
también le dice al servidor SMTP que se está iniciando una nueva transacción de correo
y hace que el servidor restablezca todas sus tablas de estado y búferes, etc.
o RCPT TO: Especifica la dirección de correo electrónico del destinatario. Este comando se
puede repetir varias veces para un mensaje de correo electrónico determinado con el
fin de entregar un solo mensaje de correo electrónico a varios destinatarios.
• MESSAGE HEADER: portador de una gran cantidad de información interesante relativa al
mensaje y el remitente, incluyendo las direcciones y los servidores de email por los que ha
pasado. La importancia de la cabecera radica en los metadatos que aporta sobre el propio
mensaje que permiten tanto su entrega correcta como su interpretación por parte del
servidor. Delimitada por una línea nula (en blanco) generalmente seguido de un carácter de
retorno de carro <CRLF>. Los campos que contiene son:
o FROM: emisor del mensaje.
o SUBJECT: asunto del mensaje.
o DATE: fecha y hora en la que el mensaje fue enviado.
o TO: destinatarios principales del mensaje.
o CC: destinatarios secundarios del mensaje (copia).
o CCO: destinatarios ocultos del mensaje.
o RETURN-PATH: dirección y ruta del destino.
o ENVELOPE-TO: muestra que el correo fue enviado al buzón de correo del destinatario.
o RECIVED: muestra una lista de todos los equipos por los que el correo ha viajado para
llegar al destinatario. La primera linea RECIVED el equipo del destinatario.
• MESSAGE BODY: datos que siguen a la cabecera, secuencias de líneas con caracteres
codificados en ASCII.
Para hacer frente a las limitaciones impuestas por SMTP en la codificación se han empleado dos
mecanismos de extensión al protocolo:
• MIME (Multipourpose Internet Mail Extensions): especifica un mecanismo para la
codificación de texto y datos binarios sobre una codificación base en ASCII de 7 bits.
• Extensiones de servicio SMTP: mecanismo para extender las posibilidades de SMTP, estas
extensiones permiten que dos “hosts” TCP/IP negocien un tipo de codificación distinta antes
del envío de los mensajes, el equipo receptor indique que puede utilizar codificación ASCII
en 8 bits, también permite al receptor especificar el tamaño máximo de mensaje que puede
recibir, sobrepasando la limitación de 1000 caracteres.

SMTP se fundamenta sobre un modelo de comunicación actuando a partir de una petición de


usuario, el emisor de SMTP (componente lógico) establece una conexión TCP/IP bidireccional
con el SMTP receptor, que puede ser o bien el destinatario final o un nodo intermedio que
implemente una puerta de enlace de correo (esto no debe confundirse con la existencia de
elementos de encaminamiento de nivel 3 en la red IP). El emisor genera comandos según el
protocolo SMTP junto con el envío del mensaje, mientras que el receptor responde a su vez con
los comandos pertinentes. El flujo básico de un envío de mensaje se resume en:

149
1. El emisor SMTP establece una conexión TCP con el servidor destino y espera a recibir un
mensaje “220 Serviceready”, junto con el nombre de domino del servidor o bien un mensaje
“421 Servicenotaviable”, la conexión TCP ha de establecerse en el puerto asignado para
SMTP (puerto 25), el servidor destinatario está esperando recibir conexiones SMTP para
intercambio de mensajes.
2. Se envía el comando HELO y el receptor se identifica con su nombre de dominio, así el emisor
puede comprobar si esta efectivamente contactando con el servidor correcto. Si el emisor
soporta extensiones de servicio SMTP y quiere comprobar si el servidor acepta, sustituye el
comando HELO por EHLO.
3. El emisor inicia la transacción de un mensaje enviando un comando MAIL al receptor,
contendrá el camino inverso por el que se informará de errores (puede ser un buzón,
generalmente el del emisor del mensaje, o una dirección IP) si se acepta el servidor responde
con un 250 OK.
4. Envío de los buzones de correo destino del mensaje, se envían tantos comandos RCPT TO
como sea necesario con la indicación de los nombres de los buzones, para cada uno se
recibirá un comando 250 OK si el servidor conoce dicho buzón o un “550 Notsuchuser” si el
buzón no existe en el servidor.
5. Cuando se han enviado todos los comandos RCPT el emisor está listo para enviar el propio
mensaje y para ello envía el comando DATA para notificarlo. El servidor responde “354 Start
mail input, endwith <CRLF>-<CRLF>”. La secuencia <CRLF>-<CRLF> es la que tiene que enviar
el emisor para indicar el final del mensaje.
6. El cliente envía los datos a continuación, línea por línea, incluyendo las cabeceras del
mensaje. Se indica el final con la secuencia <CRLF>-<CRLF> y el servidor responde con 250
OK o con un mensaje de error.
7. Finalmente, si:
- No hay más mensajes: el emisor termina la conexión con un QUIT y el código 221.
- Hay más mensajes de otra parte: se envía el comando TURN y ambos equipos
intercambian sus papeles.
- Hay más mensajes y el emisor es el mismo: el emisor envía un nuevo comando MAIL.

2.1.2. LMTP (Local Mail Transfer Protocol)


Es un derivado de SMTP para situaciones donde el lado receptor no dispone de cola de correo
(el verbo EHLO es reemplazado por LHLO), requiere una respuesta por cada comando RCPT
previamente aceptado. La mayor diferencia es que LMTP rechazara un mensaje si no es derivado
de inmediato a su destino final. Elimina la necesidad de una cola de correo y evita tener
habilitado el puerto 25 (TCP).

2.1.3. POP3 (Post Office Protocol)


En la arquitectura SMTP el usuario de correo electrónico debe poder interactuar directamente
con el equipo físico que alberga el repositorio de mensajes y actúa como emisor/receptor SMTP.
Con la evolución pareja de internet y los PC resultaba inviable este modelo para la recepción de
mensajes puesto que carecía de lógica implementar un buzón junto con el emisor/receptor
SMTP en cada PC de usuario. Como solución SMTP adopto en cierto modo la arquitectura
definida por X.400, mediante el uso de los agentes de transferencia de mensajes (MTA) y los
agentes de usuario (UA) separándolos en máquinas físicamente distintas, así nace POP.

150
POP es un protocolo usado en clientes locales de correo para obtener los mensajes de correo
electrónico almacenados en un servidor remoto, denominado Servidor POP. Es un protocolo de
nivel de aplicación en el Modelo OSI. Cuenta con funcionalidades tanto de cliente (para la
recepción de mensajes) como servidor (para el almacenamiento de los mismos) soporta
funciones básicas para la consulta y obtención de mensajes de un servidor desde un cliente.
Un cliente POP3 establece una conexión TCP con un servidor de correo SMTP (donde se
almacena el buzón y se ejecutan las funciones de emisor/receptor SMTP) a través del puerto
110. El servidor POP3 envía un mensaje de bienvenida al cliente y la sesión entra en un modo
autenticación. El cliente debe enviar al servidor sus credenciales de autenticación. La sesión
entra en modo de transacción, el cliente tiene acceso a su buzón de correo en el servidor y puede
recuperar todos los mensajes allí almacenados, estos mensajes se almacenarán a su vez en el
sistema de ficheros local del usuario que utilice el cliente. Lo que se está logrando con OPO3 es
implementar de forma eficiente la asincronía en la recepción de mensajes para un usuario y la
posibilidad de recuperar los mensajes de un buzón a posteriori sin necesidad de mantener una
conexión permanente con la red.
POP3 funciona mediante un modelo de comandos en modo carácter, consisten en una pablara
clave y uno o más argumentos que la siguen. El servidor envía una respuesta al comando emitido
por el cliente, y debe comenzar con un indicador de estado que puede ser (+OK) o (-ERR) para
indicar el éxito o no de la operación El protocolo distingue tres estados:
• Estado de autenticación: el cliente envía información de autenticación al usuario mediante
los comandos USER y PASS o bien con el comando APOP.
• Estado de transacción: el cliente es capaz de enviar comandos para listar, recuperar y borrar
mensajes en su buzón de correo (STAT, LIST, RETR y DELE). Las opciones de edición requieren
entrar en el siguiente estado mediante el comando QUIT.
• Estado de actualización: el servidor actualiza el contenido del buzón.

2.4. IMAP4
Protocolo de aplicación que permite el acceso a mensajes almacenados en un servidor de
Internet que funciona bajo TCP en los puertos 143 (modo seguro bajo 993). Presenta mejoras y
funciones avanzadas respecto a POP3, al igual que este funciona bajo el paradigma
cliente/servidor, el servidor IMAP4 es capaz de almacenar mensajes para múltiples usuarios de
forma que estos pueden recuperarlos a posteriori. La diferencia fundamental con POP3 es que
IMAP4 presenta un modelo de sincronización de mensajes entre el cliente y el servidor frente al
modelo de recuperación de mensajes de POP3, IMAP4 siempre almacena los mensajes de un
usuario en el servidor y replica la copia de los mismos al usuario, este puede a su vez trabajar
sobre la réplica del buzón en modo desconectado y al volver a conectarse scon el servidor se
sincronizaran los cambios, IMAP4 es capaz de trabajar: sin conexión, conectado o desconectado.
Otra ventaja de IMAP4 es su capacidad de interpretar el contenido MIME. Cuando un cliente
IMAP4 establece una conexión TCP con el servidor, este envía también un mensaje de
bienvenida y a partir de entonces, cliente y servidor intercambian datos de forma interactiva.
Para cada comando enviado por el cliente, el servidor responde con el resultado de la operación.
Todos los comandos se formatean como líneas terminadas en <CRLF>. Cada respuesta del
servidor incluye la marca identificativa, seguida de un código de estado que puede ser OK, NO o
BAD.

151
TEMA 5 – MONITORIZACION, ADAMINISTRACION DE REDES Y HARDWARE

1. MONITORIZACION Y CONTROL DE TRAFICO


El método de inventario cada vez más frecuente consiste en recoger información empleando la
propia red a la que están conectados los dispositivos, los inventarios basados en red reducen
significativamente el tiempo y el coste de las auditorias, permiten realizar inventario
programados de forma regular y con ellos se dispone de información más actualizada. Hay
aplicaciones que permiten la distribución de software en ambientes multiplataforma a todo tipo
de clientes como Microsoft Systems Management Server, herramientas de cliente de acceso
remoto para conectarse a servidores que ejecuten servicios o programas como VNC, Team
Viewer, Citrix…
• Nagios: sistema de monitorización de código abierto, vigila los equipos (hardware) y
servicios (software) que se especifiquen, alertando cuando el comportamiento de los
mismos no sea el deseado. Entre sus características principales figuran la monitorización de
servicios de red (SMTP, POP3, HTTP, SNMP...), la monitorización de recursos de sistemas
hardware (carga del procesador, uso de los discos, memoria, estado de los puertos...),
independencia de sistemas operativos, monitorización remota mediante túneles SSL
cifrados o SSH, y posibilidad de programar plugins específicos para nuevos sistemas.
• RADIUS (Remote Authentication Dial-In User Service): protocolo de autenticación y
autorización para aplicaciones de acceso a la red o movilidad IP. Utiliza el puerto 1812 UDP.
Una de las características más importantes del protocolo RADIUS es su capacidad de
manejar sesiones, notificando cuándo comienza y termina una conexión, así que al usuario
se le podrá determinar su consumo y facturar en consecuencia; los datos se pueden utilizar
con propósitos estadísticos. Las prestaciones pueden variar, pero la mayoría pueden
gestionar los usuarios en archivos de texto, servidores LDAP, bases de datos varias, etc. A
menudo se utiliza SNMP para monitorear remotamente el servicio. Los servidores Proxy
RADIUS se utilizan para una administración centralizada.
Surge la necesidad de una gestión de integridad y monitorización desde un solo sistema que
presenta sus interconexiones en un mapa de la red a través de plataformas como:
• Apache Chukwa es un sistema de recopilación de datos de código abierto para monitorear
grandes sistemas distribuidos.
• HCL AppScan (IBM Appscan): familia de herramientas de monitoreo y prueba de seguridad
web y de escritorio, diseñado para probar aplicaciones web y locales en busca de
vulnerabilidades de seguridad durante el proceso de desarrollo, cuando es menos costoso
solucionar dichos problemas.
• OpenView: gestión de redes y sistemas a gran escala de la infraestructura de TI de una
organización. El producto fundamental de OpenView fue Network Node Manager (NNM),
software de monitoreo de red basado en SNMP. NNM se usó para administrar redes y podría
usarse junto con otro software de administración, como CiscoWorks (familia de
herramientas integrales para la gestión de redes que permiten y facilitan el acceso de los
administradores de red a las capacidades avanzadas de voz, video y datos), entre ellas se
encuentra CiscoView, un software de gestión de dispositivos de red, configuración y
monitorización de dispositivos, aplicación basada en web.

152
• SunNet Manager: sistema de gestión de red principal de Sun Microsystems. Se utiliza para
monitorear y mejorar el desempeño en redes multiprotocolo.
• BayNetworks Optivity: sistema escalable para configurar redes complejas. Introduce
NETarchitect, el paquete de administración a nivel del sistema de la compañía que
automatiza la configuración de redes ATM sofisticadas.
• 3Com’s Transcend: gestionar toda la red como un único sistema integrado más que como
una serie de unidades independientes, incluye soluciones de hardware y software para
aumentar las prestaciones de las redes corporativas, ampliar su alcance y gestionar su
crecimiento.
La metodología de análisis y gestión más utilizado en la administración española es Magerit
(Metodología de Análisis y Gestión de Riesgos de los Sistemas de Información): está elaborada
por el Consejo Superior de Administración Electrónica del Gobierno de España para minimizar
los riesgos de la implantación y uso de las Tecnologías de la Información. Ofrece una aplicación
para el análisis y gestión de riesgos de un Sistema de la Información.
Herramientas comerciales de Magerit:
o GxSGSI: Herramienta de Análisis y Gestión de Riesgo basada en Magerit y homologada por
la Agencia Europea de Seguridad de la Información.
o R-Box: Herramienta de Análisis y Gestión de Riesgo basada en Magerit.
o SECITOR: Herramienta de Análisis y Gestión de Riesgos de alto nivel que permite la gestión
integral de la Seguridad de la Información siendo un sistema multimarco (ISO 27001,
Protección de datos, ENS, ISO 19001, etc), además de una monitorización en tiempo real de
la seguridad de la organización.
o EAR / PILAR: Entorno de análisis de riesgos.

1.1. ADMINISTRACION DE RED


Son estándares y protocolos de gestión de red que siguen modelos de gestión integrada,
permiten la interconexión abierta entre los recursos de telecomunicación y las aplicaciones de
gestión de red:
• SNMP: protocolo de la capa de aplicación que facilita el intercambio de información de
administración entre dispositivos de red usando pocos recursos y de forma simple, emplea
como protocolo de capa de transporte tanto TCP como UDP en los puertos 161 y 162
(cuando se usa con TLS funciona en los puertos 10161 y 10162). Los dispositivos que
normalmente soportan SNMP incluyen routers, switches, servidores, estaciones de trabajo,
impresoras… Una red administrada a través de SNMP está organizada en jerarquías, las
cuales junto con otros metadatos (tales como el tipo y la descripción de la variable), se
describen por Bases de Información de Gestión (MIB). El protocolo SNMP consta de tres
componentes clave:
o Sistemas administradores de red (Network Management Systems, NMS): ejecuta
aplicaciones que supervisan y controlan a los dispositivos administrados, proporcionan
el volumen de recursos de procesamiento y memoria requeridos para la administración
de la red.
o Dispositivos administrados: recogen y almacenan información de administración a
través de un agente, la cual es puesta a disposición de los NMS’s.

153
o Agentes: módulo de software de administración de red que reside en un dispositivo
administrado. Un agente posee un conocimiento local de información de administración
(memoria libre, número de paquetes IP recibidos, rutas…), la cual es traducida a un
formato compatible con SNMP y organizada en jerarquías.

MIB (Management Information Base): colección de información que está organizada


jerárquicamente. Las MIB son accedidas usando un protocolo de administración de red,
como por ejemplo, SNMP. Un objeto administrado (algunas veces llamado objeto MIB,
objeto, o MIB) es uno de cualquier número de características específicas de un dispositivo
administrado. Los objetos administrados están compuestos de una o más instancias de
objeto, que son esencialmente variables.

Para realizar las operaciones básicas de administración el protocolo SNMP utiliza un servicio
no orientado a la conexión (UDP) para enviar un pequeño grupo de mensajes (PDUs) entre
los administradores y agentes, se utilizan varios tipos de mensajes SNMP:
o GetRequest: solicita al agente retornar el valor de un objeto de interés mediante su
nombre. En respuesta el agente envía una respuesta indicando el éxito o fracaso de la
petición. Este mensaje puede ser usado para recoger un valor de un objeto, o varios
valores de varios objetos, a través del uso de listas.
o GetNextRequest: usado para repetir la operación con el siguiente objeto de la tabla, es
decir, es usado para recorrer una tabla de objetos.
o SetRequest: solicitar a un agente modificar valores de objetos.
o GetResponse: usado por el agente para responder un mensaje GetRequest,
GetNextRequest, o SetRequest.

• CMIP (Common Management Information Protocol): protocolo de gestión de red que se


implementa sobre el modelo de interconexión de redes abiertas OSI. Provee un modo de
que la información de control y de mantenimiento pueda ser intercambiada entre un gestor
(manager) y un elemento remoto de red pero requiere 10 veces más recursos que SNMP.
Los managers residen en las estaciones de gestión mientras que los procesos agentes
residen en los elementos de red. CMIP define una relación igual a igual entre el gestor y el
agente en lo referido al establecimiento y cierre de conexión y a la dirección de la
información de gestión, las operaciones CMIS (Common Management Information Services)
y CMISE (Common Management Information Service Element), se pueden originar tanto en
gestores como en agentes. Para comunicarse entre sí dos entidades de aplicación pares del
gestor y del agente se utilizan APDUs (Application Protocol Data Units). CMIP se implementa
en asociación con los protocolos ACSE y ROSE.
o ACSE (Association Control Service Element): establece y libera asociaciones entre
entidades de aplicación, el establecimiento lo puede realizar el agente o el gestor.
o ROSE (Remote Operation Service Element): equivalente OSI a una llamada de un
procedimiento remoto, permite la invocación de una operación en un sistema remoto.
CMIP usa los servicios orientados a conexión para todas las peticiones, respuestas y
respuestas de error.
CMOT (CMIP over TCP/IP): arquitectura de gestión de red usando los protocolos
CMIS/CMIP del modelo OSI sobre la familia de protocolos de internet (TCP/IP).

154
• DMI (Desktop Management Interface): framework estándar para gestión y seguimiento de
componentes en un ordenador de sobremesa, portátil o servidor, creando una abstracción
de esos componentes desde el software que los gestiona. DMI puede coexistir con SNMP y
otros protocolos de gestión. Una estación de trabajo aislada o un servidor pueden actuar
como agente proxy y contener el módulo SNMP de un segmento de la red local (LAN) con
equipos dotados de DMI.
• RMON (Remote Network Monitoring): especificación de monitoreo estándar que permite
que varios monitores de red y sistemas de consola intercambien datos de monitoreo de red.
RMON brinda a los administradores de red más libertad para seleccionar sondas de
monitoreo de red y consolas con características que satisfacen sus necesidades particulares
de red. Los dispositivos de monitoreo (comúnmente llamados "sondas" en este contexto)
contienen agentes de software RMON que recopilan información y analizan paquetes. Estas
sondas actúan como servidores y las aplicaciones de administración de red que se
comunican con ellas actúan como clientes. Si bien tanto la configuración del agente como la
recopilación de datos utilizan SNMP.
En resumen, RMON está diseñado para la supervisión "basada en el flujo", mientras que
SNMP se utiliza a menudo para la gestión "basada en el dispositivo".

1. EQUIPOS TERMINALES Y EQUIPOS DE INTERCONEXIÓN Y CONMUTACIÓN


• Dispositivos finales (hosts): su función principal es permitir que determinadas aplicaciones
y/o usuarios intercambien información entre sí, utilizando para ello servicios
proporcionados por la red, son generadores y/o consumidores de información,
implementan las siete capas del modelo OSI, utilizan los servicios de las capas inferiores para
acceder finalmente a la capa física de la red (estaciones de trabajo, servidores, impresoras…)
• Dispositivos intermedios (elementos de interconexión de redes): su función principal es
servir de intermediarios entre los dispositivos finales, su objetivo fundamental es hacer
llegar la información desde el origen hasta el destino.
Los activos de red se clasifican según la capa del modelo OSI en el que desempeñan sus
funciones:
- Capa 1 o capa física: repetidores y concentradores (o hubs).
○ Repetidores: es un dispositivo intermedio de capa física cuyo objetivo es regenerar y
resincronizar los bits de las señales de transmisión de datos, surge de la necesidad de
llevar la información las allá de los limites físico impuestos por los medios de transmisión
pasivos (cables de cobre, fibra óptica…) por el efecto de la atenuación. Un repetidor
clásico tiene dos interfaces, recibe la señar por una y la regenera, resincroniza y
transmite por la otras, no utiliza ningún tipo de lógica a la hora de retransmitir la señal.

Se define como dominio de colisión el conjunto de dispositivos que compite por utilizar
un mismo medio físico para transmitir datos, este concepto se utiliza habitualmente en
las tecnologías basadas en acceso al medio múltiple por detección de portadora (Carrier
Sense Multiple Access). La adición de repetidores hace que el dominio de colisión sea
mayor, permite que más dispositivos compartan el mismo medio físico, se puede
afirmar que los repetidores amplían el domino de colisión, al existir un mismo medio
físico con un ancho de banda constante, el ancho de banda disponible para cada uno de
los elementos finales de la red será menor.

155
Los repetidores eran típicos en las redes Ethernet antiguas, utilizaban topologías físicas
y lógicas en bus, como 10-BASE-2 o 10-BASE-5. En la actualidad se utilizan en las grandes
redes WAN de transporte basadas en fibra óptica y en las redes inalámbricas.
○ Concentradores (hub): dispositivo activo de red que, además de actuar como repetidor,
permite concentrar la conectividad de la red, facilitando la transición de una topología
física en bus a una topología física en estrella o en estrella extendida, recibe una señal
por una interfaz o puerto, la regenera, resincroniza y transmite por las demás interfaces.
Esto provoca que, a pesar de que la topología física de la red sea una estrella, su
funcionamiento lógico sea el de un bus. Al igual que los repetidores, un hub amplia el
domino de colisión de una red, es decir, cuando se añade un concentrador a la red existe
la posibilidad de incorporar más dispositivos que compiten por el mismo medio físico,
obliga a compartir el ancho de banda disponible entre todos los equipos conectados.
- Capa 2 o capa de enlace de datos: puentes (bridges) y conmutadores (switches).
○ Puentes (bridge): dispositivo de interconexión de redes que funciona en la capa 2.
Surgieron de la necesidad de reducir el tamaño de los dominios de colisión y del hecho
de que la mayor parte de las comunicaciones en una red de área local se realizaba con
equipo próximos dentro de la misma red física. Un puente dispone de una tabla de
conmutación en la que a cada dirección MAC conocidas se le asigna el puerto o interfaz
que permiten alcanzar el dispositivo en cuestión, cuando un puente recibe una trama,
examina la dirección de capa 2 de destino de dicha trama, la dirección MAC de destino
y la envía por el puerto que tiene asociado. SI la MAC de destino no se encuentra en la
tabla de conmutación, la rama es enviada por todos los puertos del puente, excepto el
que tiene asociado. El puente antes de retransmitir la trama comprueba si el medio
físico esta libre, en caso de que este ocupado, el puente almacena temporalmente hasta
que el medio físico se libere, un puente puede almacenar temporalmente múltiples
tramas. Se puede decir que un puente rompe un domino de colisión único en dos
dominios de colisión, en este caso los dispositivos finales del segmento A y el puerto del
puente competirán por le medio físico correspondiente a la LAN A y los dispositivos del
segmento B junto con el puerto 2 del puente competirán por le medio físico de la LAN
B.
○ Conmutadores (switch): es un dispositivo de interconexión de red de capa dos que
además de actuar como un puente, permite concentrar la conectividad de la red. La
diferencia fundamental entre un conmutador y puente multipuerto es que el
conmutador realiza todas las funciones de aprendizaje de direcciones, determinación
de puerto y conmutación de trama por hardware. Además, los switches suelen
presentar una densidad de puertos mucho mayor que los puentes. Los conmutadores
presentan diferentes modos de envío de tramas, permiten optimizar su rendimiento,
los dos modos de envió principales son:
▪ Modo de almacenamiento y envió (store and forward): el conmutador recibe la
trama completa, la almacena en un búfer de memoria RAM, calcula el “checksum”
de capa 2, y si el cálculo es correcto, la trama se reenvía por el puerto o puertos
indicados. En caso contrario, la trama no se envía y simplemente ese elimina de la
memoria del switch (se descarta), presenta como ventaja que las tramas erróneas
no se propagan de un segmento a otro. Tiene como principal inconveniente una alta
latencia.

156
▪ Modo de conmutación rápida: la trama comienza a enviarse hacia el destino una vez
que se ha leído la dirección MAC destino de la misma (la trama Ethernet comienza
con una cabecera de 8 bytes de preámbulo, 6 bytes de MAC origen y 6 bytes de MAC
destino). Este método presenta como ventaja una latencia baja y constante, pero
adolece de mecanismos para evitar la retrajimos de tramas erróneas.
Un switch es un dispositivo de naturaleza “full-duplex”, gestiona de forma
independiente las tramas entrante y las salientes, y puede almacenarlas de forma
temporal en caso de congestión, algunos incorporan un software que facilita la creación
de grupos de puertos que se comportan como LANs separadas, se las denomina VLAN,
con el fin de extender esta funcionalidad a través de múltiples switches, es necesario
utilizar enlaces que puedan transportar tramas de múltiples VLANs, se les denomina
“enlaces troncales”, es necesario identificar a que VLAN pertenece cada una de las
tramas, antes de transmitir la trama por dicho troncal, para ello se desarrolló el IEEE
802.1Q que permite etiquetar las tramas Ethernet, añadiendo un campo de 4 bytes a
dicha cabecera que identifica la VLAN.
- Capa 3 o capa de red: encaminadores (routers)
○ Encaminadores (router): dispositivo de interconexión de redes de capa 3, cuyo objetivo
es conectar redes lógicas diferentes, determinado la ruta (enrutamiento) y trasmitiendo
el paquete por la interfaz adecuada. Un router determina la interfaz de salida o ruta en
función de la dirección IP de destino, para ello el router construye una tabla en memoria
denominada tabla de enrutamiento donde se almacena información de todas las redes
conocidas, indicando que interfaces se deben utilizar para alcanzarlas. Se puede generar
de forma estáticas (rutas configuradas manualmente por un administrador), los
encaminadores utilizan protocolos de enrutamiento, como pueden ser RIP, OSPF, EIGRP,
IS-IS, o BGP, la necesidad de enrutadores se debe a dos causas fundamentales:
▪ Interconectar redes con diferentes tecnologías y distantes fiscalmente.
▪ Acotar los tamaños de los dominios de difusión (broadcast): en Ethernet se utilizan
un tipo de tramas/paquetes especiales denominados de difusión (broadcast)
inundado, dichos paquetes se caracterizan por tener como dirección IP de destino
255.255.255.255 y las tramas tienen la dirección FF-FF-FF-FF-FF-FF. Estas tramas y
paquetes son recibido y procesado por todos los dispositivos de la red en cuestión,
además este tráfico es necesario para el funcionamiento de la propia red, y por
tanto no puede ser eliminado (el protocolo ARP que permite obtener una MAC
asociada a una determinada IP se basa en transmisión de tráfico broadcast). Es
necesario mantener el tamaño de los dominios de broadcast restringido (si la
dirección IP de destino del paquete pertenece a la misma red lógica que el propio
equipo, se busca la dirección MAC del destino mediante una petición ARP, si la
dirección destino del paquete pertenece a una red lógica diferente se utiliza la
dirección MAC del encaminador de salida preferido del equipo para dicha red), se
entiende que cuando dos equipos se ubican en dominios de broadcast diferentes,
será necesario un router para pasar el paquete de un domino de difusión a otro.

Los “hubs” y “switches” hacen crecer el domino de difusión o de broadcast mientras


que un router cera tantos dominios de difusión como interfaces tiene operativas.

157
GLBP (Gateway Load Balancing Protocol): protocolo propietario de Cisco que intenta
superar las limitaciones de los protocolos de router redundantes existentes
añadiendo la funcionalidad de balanceo de carga.

- Capa 7 o capa de aplicación: pasarelas de aplicación (ALG) y proxies.


○ Pasarelas (gateway): es cualquier tipo de dispositivo que sea capaz de enrutar paquetes
IP, en ellas se debe definir una dirección IP para cada equipo, una macara y la dirección
IP de la “pasarela” que es el router, se encarga de enviar hacia el destino los paquetes
dirigidos a direcciones de red remota, también existen nuevos términos que se asocian
con el concepto pasarela:
▪ Application Level Gateway (ALG): agentes de traducción de la capa de aplicación que
permiten a una aplicación específica, comunicarse con su “peer” ubicado en otro
dominio de direccionamiento transparente para ambas aplicaciones. Los ALG son
los encargados de que dos aplicaciones de este tipo puedan comunicarse entre sí de
forma transparente sin tener que considerar las traducciones de dirección IP y
puertos que haya que realizar en la capa de aplicación. Los ALG pueden interactuar
con NAT para configurar el estado de la conexión, son similares a los “proxies”,
ambos facilitan la comunicación de aplicaciones específicas entre cliente y servidor.
A diferencia de los “proxies”, los ALG no necesitan cambiar ningún tipo de
configuración en los clientes de aplicación. Esta se realiza de forma transparente
para dichos clientes.
○ Un “proxy” es un servidor que escucha las peticiones de un determinado servicio o
conjunto de servicios de sus clientes y reenvía dichas peticiones a otros servidores,
recoge también las respuestas de los servidores y las reenvía a los clientes originales,
puede modificar la petición del cliente o la respuesta del servidor, e incluso proporcionar
el recurso al cliente sin contactar con el poseedor del recurso original lo cual acelera el
proceso de respuesta. A los “proxy servers” que reenvían todas sus peticiones y
respuestas sin ningún tipo de modificación se les denomina “túneles proxy o pasarelas”.

2. REDES DE COMUNICACIONES, DIFUSIÓN Y CONMUTACIÓN


En los inicios de las comunicaciones los dispositivos electrónicos transmitían información entre
si directamente mediante conexiones punto a punto, este planteamiento dejo de ser válido
debido tanto a las grandes distancias como la naturaleza multipunto de las comunicaciones. La
solución fueron las redes de comunicaciones, es un conjunto de dispositivos, finales e
intermedios conectados entre sí de formal que pueden intercambiar información. Las redes de
comunicaciones se pueden clasificar en base a diferentes criterios:
En cuanto a la tecnología de transmisión:
• Redes de difusión: utilizan un solo canal de comunicación compartido por todas las
máquinas de la red, el dispositivo origen envía mensajes cortos (denominados datagramas)
recibidos por todos los dispositivos de la red, las maquinas comprueban si la dirección de
destino de dicho paquete es la suya propia, en ese caso, procesan el paquete en caso
contrario lo ignoran (tráfico unicast).
• Redes punto a punto: se construyen a partir del establecimiento de múltiples
interconexiones entre pares individuales de dispositivos, para ir desde el origen al destino
puede que un paquete tenga que atravesar diferentes dispositivos intermedio. Es posible

158
que existan múltiples rutas o caminos con diferentes distancias hacia el destino. El
enrutamiento determina cual es el mejor camino para alcanzar el destino desde un
determinado punto.
En cuanto al ámbito geográfico o escala:
• Red de área local (LAN): redes privadas cuyo ámbito está restringido habitualmente a un
edificio o conjunto de edificios próximos. La privacidad es una característica calve de este
tipo de redes, no es necesario contar con los servicios de una empresa y organización
externa para implementar este tipo de redes, se utilizan habitualmente para conectar
dispositivos que pertenecen a una misma organización. Las LAN utilizan tecnologías que
permiten velocidades de transmisión entre los 10 Mbps y los 100 Gbps siendo las variantes
derivadas de la tecnología Ethernet. Su topología puede ser tanto bus (Ethernet o IEEE
802.3) como anillo (Token Ring o IEEE 802.5), la incorporación de las comunicaciones “full-
duplex” en la tecnología Ethernet (802.3x) ha permitido que las LAN pasen a ser punto a
punto, utilizando las topologías de estrella y estrella extendida.
• Redes de Área Metropolitana (MAN): es una red que abarca el área geográfica de una
ciudad, puede ser publica (acceso proporcionado por un proveedor de servicios), como
privada. La definición, desarrollo e implantación de la tecnología WIMAX, basada en el
estándar IEEE 802.16 ha provocado que las redes MAN sea una buena solución para
proporcionar fundamentalmente acceso a internet en área de baja densidad de población.
• Redes de Área Extensa (WAN): áreas geográficas extensas, la infraestructura proporcionada
habitualmente por empresas u organizaciones denominadas Proveedores de Servicios de
Comunicaciones. La interconexión entre los diferentes dispositivos intermedios de una WAN
se realiza fundamentalmente utilizado tecnologías de red punto a punto con lo que las
topologías son: estrella extendida, anillo, árbol, malla parcial y malla completa. Se clasifican
por el modo de conmutar los datos entre los dispositivos origen y destino:
○ Conmutación de circuitos: intercambiar datos entre dos equipos finales es necesario que
se establezca previamente un camino dedicado a través de los nodos intermedios una
secuencia de enlaces físicos entre los nodos origen y destino, donde existe un canal
lógico dedicado para la conexión. Ejemplo: redes basadas en Red Telefonía Básica (RTB)
y Red Digital de Servicios Integrados (RDSI).
○ Conmutación de paquetes: no es necesario asignar recursos “a priori” para construir un
camino para los datos, se envían en unidades de datos pequeñas denominadas
datagramas, se pasa de un nodo al siguiente tomándose las decisiones de envío en cada
dispositivo en el momento previo a la transmisión Ejemplo: X.25
○ Conmutación de tramas: mientras en la conmutación de paquetes las decisiones de
envió se realizan en función de cabeceras y direcciones de capa 3, en la conmutación de
tramas estas decisiones se toman en función de direcciones y cabeceras de capa 2.
Ejemplo: Frame Relay.
○ Conmutación de celdas: evolución de la conmutación de tramas, la mayor diferencia que
este tipo de redes presenta es que se utilizan tramas de tamaño fijo y pequeño
denominadas celdas. Ejemplo: Asynchronous Transfer Mode (ATM).
En cuanto a topologías: disposición de los dispositivos que forman parte de una red de
comunicaciones en relación con el medio de transmisión utilizado.
Redes de difusión:

159
• Bus: estaciones de trabajo se distribuyen linealmente a lo largo del medio de transmisión
abierto. El mensaje enviado se envía en ambos sentidos del medio físico por lo que dicho
mensaje será recibido por todos los dispositivos. Ejemplo: 10-BASE-5, 10-BASE-2, …
• Anillo: estaciones de trabajo se distribuyen a lo largo de un medio de transmisión cerrado,
el mensaje enviado es enviado en un único sentido por lo que termina llegando de nuevo a
la estación origen que lo retira del medio físico.
Redes punto a punto:
• Estrella: todas las estaciones se conectan a un dispositivo central, se encarga de enviar los
mensajes recibidos al destino adecuado. Se establecen tantas conexiones punto a punto
como dispositivos están conectados al dispositivo de interconexión.
• Estrella extendida: un dispositivo de interconexión para comunicar diferentes redes en
topología de estrella.
• Anillo: las estaciones de trabajo se distribuyen a lo largo de un medio de transmisión
cerrado. El mensaje enviado por una estación es enviado en un único sentido por lo que
termina llegado de nuevo a la estación origen que lo retira del medio físico.
• Árbol: cuando la estrella extendida tiene un único punto central o raíz, se dice que tiene
estructura de árbol.
• Malla parcial: se conectan entre sí, sin seguir un patrón, pero ningún nodo puede
permanecer aislado.
• Mall completa: todos los dispositivos de la red se conectan directamente con todos los
demás dispositivos de dicha red.

3. REDES INALÁMBRICAS
Son aquellas que posibilitan la interconexión de dos o más equipos entre si sin que intervengan
cables. Se basan en un enlace que utiliza ondas electromagnéticas.
Dependiendo del tamaño:
• WPAN: redes de corto alcance generalmente para conectar dispositivos periféricos.
Ejemplos: Bluetooth (802.15.1), Zigbee (802.15.4), HomeRF
• WLAN: redes de área local basadas en tecnologías como HiperLAN o Wi-Fi (IEEE 802.11)
• WMAN: redes de área metropolitana basadas en IEEE 802.16 o WIMAX, así como en LMDS
(Local Multipoint Distribution Service)
• WWAN: redes inalámbricas de área extensa (LTE, UMTS, GPRS)
3.1. REDES WIFI
Redes inalámbricas que se rigen por los estándares IEEE 802.11, siguen en líneas generales lo
dispuesto en el 802.3 genérico. Así, se emplean un mecanismo de acceso al medio basado en
CSMA (Carrier Sense Medium Access) pero necesitan una capa física (PHY) y de acceso al medio
(MAC) específicas para poder utilizar el espectro radioeléctrico.
3.1.1. CAPA FÍSICA
Utilizan dos banas, 2.4GHz (en este rango actúan también tecnologías como Bluetooth,
HomeRF…) y 5GHz. Hay tres aspectos fundamentales relacionados con la capa física:
• Velocidad de transmisión: la tasa de transmisión dependerá del estándar del dispositivo para
801.11b el límite superior estará en los 11 Mbps, para 802.11ª y 802.11b en 54 Mbps;
802.11n en los 600 Mbps y 802.11ac en 1,3 Gbps.

160
• Potencia de transmisión: a mayor potencia el punto de acceso tendrá un mayor rango de
cobertura, en España el máximo límite legal es 100nW en el rango de 2,4 GHz y 200nW en 5
GHz.
• Numero de canales: identifica el subrango de frecuencias de trabajo específicos, en la banda
de 2,4 GHz canales del 1 a 13, se trata de canales separados 5 MHz pero que tienen un ancho
de banda analógico de 22 MHz de modo que los canales contiguos se solapan creando
interferencias. Las técnicas de modulación usadas (OFDM) en el caso de 802.11g y DSSS en
el caso de 802.11b hacen que la señal sea muy robusta frente a tales interferencias, por
tanto, los canales óptimos a usar en punto de acceso adyacentes para eliminar el
solapamiento son 1, 7 y 13.
Respecto a las técnicas empleadas por IEEE 802.11 para realizar la trasmisión por
radiofrecuencia destaca la utilización de técnicas de modulación por espectro ensanchado
(spread spectrum) se basan en la transmisión de una señal con un ancho de banda mucho mayor
del ancho de banda del mensaje original mediante la aplicación al mismo de una señal adicional
conocida como código mensaje original mediante la aplicación al mismo de una señal adiciona
conocida como código ensanchado (spreading code).
Los sistemas de espectro ensanchado presentan dos grandes etapas:
• Empleo de baja densidad de potencia: la energía transmitida por un ancho de banda mucho
mayor, la cantidad de energía aplicada a cada frecuencia es muy baja, la señal no interferirá
con otros receptores.
• Incorporación de redundancia: el mensaje está presente sobre diferentes frecuencias de las
que se puede recuperar en caso de error, alta resistencia a interferencias y ruido.
Las técnicas de espectro ensanchado se componen de dos procesos de modulación consecutivos
a ejecutar sobre la señal portadora: un primer proceso ejecutado por el código ensanchado y un
segundo proceso ejecutado sobre el mensaje, podemos distinguir entre do técnicas
fundamentales:
• FHSS (Frecuency Hopping Spread Spectrum): la frecuencia portadora a utilizar se modifica
periódicamente, el mensaje se modula sobre la portadora utilizando FSK, genera una señal
de banda estrecha durante el periodo de salto, pero de banda ancha si se observa el canal
en intervalos de tiempo de varios segundos.
• DSSS (Direct Sequence Spread Spectrum): la señal a transmitir utiliza todo el ancho de banda
del canal asignado, modula mediante PSK siguiendo una secuencia de bits especifica.
• El número de códigos ortogonales existentes para un sistema CDMA depende d la longitud
en bits del chip.
Las técnicas de espectro ensanchado tienen como inconveniente principal la complejidad
añadida en los emisores y receptores para el ensanchado y desenganchado del espectro, incide
en la velocidad de transmisión que se puede conseguir.
OFDM (Ortogonal Frequency Division Multiplexing): el ancho de banda asignado se divide en
canales y la señal a enviar se divide en tramas, cada una de ellas es modulada por la frecuencia
subportadora de cada canal. Esta técnica busca optimizar el canal de comunicaciones.

161
6.1.2. SUBCAPA DE ACCESO AL MEDIO
En las redes cableadas basadas en 802.3, los terminales utilizan un método de acceso al medio
compartido conocido como:
• CSMA/CD (Carrier Sense Medium Access/Collision Detection) en el que el emisor, durante
el tiempo de transmisión de una trama, está escuchando el medio para comprobar si se ha
producido una colisión con otro emisor que hubiese comenzado a transmitir al mismo
tiempo, de detectarse esta circunstancia, el emisor detiene la transmisión en curso y espera
un tiempo aleatorio para volver a retransmitir la trama dañada. Este mecanismo tiene unas
buenas prestaciones en medios guiados como el par trenzado, sin embargo, para medios no
guiados como el aire, no es posible aplicar el mecanismo de detección de colisiones al no
poder el terminal realizar escuchas simultaneas durante la transmisión, IEEE 802.11 ha
adoptado en su capa MAC el protocolo DCF (Distributed Control Function) una variante de
CSMA conocida como CSMA/CA (Carrier Sense Medium Access/Collision Avoidance) con
ACK.
• CSMA/CA: define dos modos de operación
○ Detección de canal físico: al utilizar CSMA/CA un emisor que desee transmitir una trama
realiza una verificación previa del estado del radio canal, si detecta que dicho canal se
encuentra inactivo, transmitirá inmediatamente, en caso contrario quedara a la espera
y transmitirá cuando detecte que el medio queda liberado, requiere confirmación
expresa (ACK) del receptor de que la trama le ha llegado correctamente. Si se produce
colisión, ambas esperan un breve tiempo aleatorio para volver a transmitir. Este
mecanismo presenta problemas cuando se presenta la situación conocida como el
“nodo oculto”: no todas las estaciones se encuentran dentro del alcance del resto, las
transmisiones pueden no ser detectadas por el resto de los equipos conectados a dicha
red, para evitar dicho problema, CSMA implementa el mecanismo de detección de canal
virtual conocido como RTS/CTS.
○ Detección de canal virtual: cuando una estación quiere transmitir a otra, A envía
previamente una trama RTS con información sobre la identidad del emisor y la longitud
de datos que pretende enviar, B, si está preparada para recibir dichos datos, responde
con una trama CTS en la que especifica el emisor al que se le concede el canal y la
longitud de datos que espera recibir. Esto se conoce como Network Allocation Vector
(NAV). La estación A comienza entonces la transmisión y queda a la espera del ACK de B
confirmación la recepción de los datos transmitidos. El mayor inconveniente del
esquema CTS/RTS es la cantidad de información de control que se tiene que
intercambiar. DFC otorga un control distribuido de la red a todos los nodos que la
componen, el estándar 802.11 permite también efectuar control centralizado a través
del protocolo PCF (Point Coordinator Function) en el modo PCF, una estación base
consulta a las demás si tienen tramas que emitir mediante un sistema de sondeo o
polling. El mecanismo para establecer el sondeo se basa en la transmisión de una trama
baliza (beacon frame) de manera periódica entre 10 y 100 veces por segundo, se indican
las características del servicio de polling e invita a nuevas estaciones a conectarse al
mismo, se le garantiza una fracción del ancho de banda total de la estación base.
DCF y PCF pueden convivir dentro de una misma red con lo que algunas estaciones
recibirían calidad de servicio mientras que el resto competiría por le medio compartido.

162
3.2. ARQUITECTURA DE RED
Se pueden establecer redes de área local inalámbricas de dos modos:
• Red Ad-Hoc (Peer-to-peer): grupo de ordenadores que se comunican cada uno directamente
con los otros a través de las señales de radio sin usar un punto de acceso, pueden ser útiles
para establecer una red inalámbrica cuyo objetivo no es permanecer invariable en el tiempo,
se crean y deshacen para cubrir necesidades puntuales de comunicación.
• Red Modo Infraestructura: las redes inalámbricas se configuran como una extensión de las
redes LAN cableadas ya existentes, la red inalámbrica se configura mediante la utilización
de:
- Terminales de usuario (clientes): disponer de una tarjeta interfaz de red (NIC) y un
transceptor radio.
- Punto de acceso (AP, Access Point): controlador central de la red inalámbrica. Coordina
la transmisión y recepción de múltiples dispositivos inalámbricos dentro de una
extensión especifica. La forma habitual pasa por conectar los puntos de acceso de la red
inalámbrica a un switch ethernet y este a un encaminador router IP.
- Controlador de acceso (AC, Access Controller): se proporciona servicio mediante un AP,
conectar los AP a un controlador de acceso, el AC es un dispositivo IP que se encarga de
asignar direcciones IP a los terminales de la WLAN. Para aumentar la capacidad de la red
inalámbrica, se puede disponer más de un AP iluminado la misma zona con distintos
canales de frecuencia, todo esto provoca que para redes que trabajen en la bandera de
2,4 GHz solo puedan operar sin interferencias 3 AP concurrentes, mientras que en la
banda de 5 GHz se puede disponer de 8 AP.
7. COMUNICACIONES MÓVILES INALÁMBRICAS
Cualquier enlace de radiocomunicación entre dos terminales, al menos uno está en movimiento
o detenido, pero en localizaciones indeterminadas. El servicio de Telefonía Móvil Automática
(TMA) permite a sus abonados móviles establecer comunicación de voz y datos con otros
móviles o con abonados a las redes fijas, el móvil debe encontrarse dentro del área de cobertura
radioeléctrica de la red, los sistemas TMA se denominan sistemas celulares, su cobertura
radioeléctrica total la consiguen mediante células o celdas proporcionadas por estaciones base
de radio.
Se denomina célula a cada una de las unidades básicas de cobertura que contiene un equipo
transceptor (transmisor-receptor) un conjunto de frecuencias limitado se lleva a cabo la
reutilización de frecuencias mediante la división del terreno en celdas continuas
La reutilización de frecuencias no es posible en células contiguas, ya que se producirían
interferencias, pero si entre otras alejadas entre sí.
“Cluster” designa un conjunto de células adyacentes de manera que, entre todas, agrupan la
práctica totalidad de las frecuencias disponibles por la red celular. La cobertura final del sistema
se alcanza sumando tantos clústeres como sea necesario reutilizándose las mismas frecuencias
en todos ellos.
• Conmutación de llamadas en curso (Hand-over): procedimiento mediante el cual se
consigue que una conexión se mantenga cuando el móvil cambia de celda dependiente
de la misma central de conmutación.

163
• Seguimiento automático de abonados (Roaming): permite el mantenimiento
automático de una comunicación, cuando el móvil pasa a una celda dependiente de otra
central de conmutación. La cobertura total de una red está dividida en áreas geográficas,
cada área tiene asociada una central de conmutación que le da servicio y esta a su vez
una base de datos asociada que contiene información de los móviles registrados en
dicha área mediante el “Roaming”, la red puede dar servicio a un abonado que se
encuentre desplazado en un área distinta a la que se ha registrado.
• Telefonía móvil analógica y digital:
o Sistemas analógicos: el servicio de voz se presta utilizando técnicas de transmisión
analógica de señales.
o Sistemas digitales: se realiza una digitalización previa de la voz que luego es
transmitida utilizando diversos mecanismos de transmisión digital de la señal.
Las distintas familias de sistemas TMA se agrupan bajo la denominación de generaciones, cada
una marcada por un salto fundamental:
• 1G (Telefonía móvil analógica): utilización de señales analógicas para la transmisión de voz,
modulación en frecuencia (FM), era imposible la comunicación entre países. Estándares
englobados en esta generación:
○ AMPS: primer sistema celular, americano de la banda 800 MHz
○ NMT-450: europeo, banda 450 MHz
○ NMT-900: evolución del NMT-450 sobre la banda de 900 MHz
○ TACS: versión europea del AMPS en la banda de 900 MHz
• 2G (Telefonía móvil digital): alternativa para incrementar la cantidad de usuario simultáneos
en los sistemas, surgió TDMA (Time Division Multiple Access) y CDMA (Code Division
Multiple Access) como tecnologías predominantes de esta segunda generación. En CDMA
se usa un espectro de 1.25 MHz donde cada usuario tenía con un código para diferenciarse
del resto de los usuarios, ofrecía capacidades de seguridad y privacidad al incorporar un
sistema criptográfico de autenticación. Esta generación se caracteriza por ser digital, en
lugar de analógica, esto facilito el despliegue de nuevo servicios como el identificador de
llamada, envío de mensaje cortos (SMS), mensajes de voz y llamada a tres. Los estándares
europeos son GSM y DCS-1800.
• 2.5G: Telefonía móvil multimedia (Banda Estrecha): despliegue de la tercera generación que
ofrecía servicios multimedia avanzados sobre las redes móvil, para tratar de minimizar el
efecto de dicha interrupción e ir preparando a los usuarios para la utilización de este tiempo
de servicios se definió esta generación, con la evolución de GPRS a EDGE.
• 3G: Telefonía móvil multimedia (Banda Ancha): estándar internacional de la ITU (IMT-2000),
en Europa es estándar es UMTS, proporciona servicios de voz y dato avanzados, así como
acceso a los nuevos servicios.
• 3.5G (Enlace descendente de alta velocidad):
○ HSDPA eleva la capacidad del enlace descendente hasta los 14,4 Mbps. En esta
generación nace LTE (Long Term Evolution), se define un nuevo interfaz aire basado en
la aplicación de OFDM (Orthogonal Frequiency Division Multiplexing) y antenas MIMO
(Multiple Input Multiple Output) para conseguir hasta 42 Mbps en el enlace
descendente.

164
○ UTRAN LTE (Universal Terrestrial Radio Access Network – LTE): se pretende conseguir
una cobertura a nivel mundial mediante la modificación de las redes 3G actuales para
permitir picos de transmisión de hasta 100 Mbps de bajada y 50 Mbps de subida.
• 4G (LTE de cuarta generación): capacidad para proporcionar velocidades de acceso mayores
de 100 Mbps en movimiento y 1Gbps en reposo, manteniendo QoS y alta seguirá. Es una
fusión de tecnologías y protocolos, no un solo único estándar, WiMax y LTE pueden ser
consideradas 4G, pero LTE Advanced y WiMax2 son auténticamente 4G. Uso de SDR
(Software Defined Radios) para optimizar el acceso radio. Red completa prevista es todo IP.
Tasas de pico máximas previstas son de 100 Mbps en enlace descendente y 50 Mbps en
enlace ascendente.

3.3. GRUPOS DE TRABAJO IEEE 802: Su misión se centra en desarrollar estándares de redes de
área local (LAN) y redes de área metropolitana (MAN), principalmente en las dos capas inferiores
del modelo OSI.
802.1 Normalización de la interfaz.
802.1d STP (Spanning Tree Protocol): protocolo de red de capa 2 del modelo OSI (capa de
enlace de datos). Su función es la de gestionar la presencia de bucles en topologías
de red debido a la existencia de enlaces redundantes (necesarios en muchos casos
para garantizar la disponibilidad de las conexiones). El protocolo permite a los
dispositivos de interconexión activar o desactivar automáticamente los enlaces de
conexión, de forma que se garantice la eliminación de bucles. STP es transparente
a las estaciones de usuario.
802.1q VLAN (Virtual Local Area Networks): mecanismo que permita a múltiples redes
compartir de forma transparente el mismo medio físico, sin problemas de
interferencia entre ellas (Trunking). Varias VLAN pueden coexistir en un único
conmutador físico o en una única red física. Son útiles para reducir el dominio de
difusión y ayudan en la administración de la red, separando segmentos lógicos de
una red de área local. Una VLAN consiste en dos o más redes de computadoras que
se comportan como si estuviesen conectados al mismo computador, aunque se
encuentren físicamente conectados a diferentes segmentos de una red de área
local (Local).
802.1x Autenticación en redes LAN: norma para el control de acceso a red basada en
puertos. Permite la autenticación de dispositivos conectados a un puerto LAN,
estableciendo una conexión punto a punto o previniendo el acceso por ese puerto
si la autenticación falla.
802.1aq SPB (Shortest Path Bridging): tecnología de red que posibilita el Multipath routing,
surgió como reemplazo de los antiguos protocolos spanning tree, que sirvieron
para evitar caminos redundantes que pudiesen tener swtiching loop y evitar así
tormentas de tramas. Mientras que SPB permite tener activas todas las rutas con
caminos de igual coste, lo que conlleva una mayor escalabilidad a nivel 2 aportando
una mayor velocidad de convergencia y mejorando la eficiencia gracias a un
incremento del ancho de banda y permitiendo al tráfico un reparto de carga a
través de todos los caminos de una topología en malla. Está diseñado para eliminar
el error humano durante la configuración, preservando así la naturaleza plug-and-
play que estableció Ethernet como protocolo por defecto de nivel 2.

165
802.2 LLC (Control de enlace lógico): se ocupa de la comunicación entre las capas
superiores y las capas inferiores. Generalmente, esta comunicación se produce
entre el software de red y el hardware del dispositivo. La subcapa LLC toma los
datos del protocolo de la red, que generalmente son un paquete IPv4, y agrega
información de control para ayudar a entregar el paquete al nodo de destino. En
un PC, el LLC se puede considerar el controlador de la NIC. El controlador de la NIC
es un programa que interactúa directamente con el hardware de la NIC para
transmitir los datos entre la subcapa MAC y los medios físicos.
802.3 CSMA / CD (Carrier Sense Medium Access/Collision Detection): el que el emisor,
durante el tiempo de transmisión de una trama, está escuchando el medio para
comprobar si se ha producido una colisión con otro emisor que hubiese comenzado
a transmitir al mismo tiempo, de detectarse esta circunstancia, el emisor detiene
la transmisión en curso y espera un tiempo aleatorio para volver a retransmitir la
trama dañada. Este mecanismo tiene unas buenas prestaciones en medios guiados
como el par trenzado, sin embargo, para medios no guiados como el aire, no es
posible aplicar el mecanismo de detección de colisiones al no poder el terminal
realizar escuchas simultaneas durante la transmisión.
802.4 Token Bus: protocolo de la subcapa MAC de Enlace de Datos que implementa una
red lógica en anillo con paso de testigo sobre una red física de cable coaxial.
802.5 Token Ring: arquitectura de red con topología lógica en anillo y técnica de acceso
de paso de testigo, usando una trama de 3 bytes llamado testigo (en inglés token)
que viaja alrededor del anillo.
802.11 802.11b utilizan DSSS para alcanzar velocidades máximas de 11 Mbps
compartidos por todos los usuarios del canal por la utilización del
mecanismo RTC/CTS el alcance de estas redes se encuentra en torno a
los 100 metros.
802.11a (no llego a implantarse en España) velocidad máxima de 54 Mbps por
canal usa OFDM, frecuencias más altas en la banda de 5 GHz, con
espacio para más canales y menos propensa a interferencias que la
banda de 2,4 GHz pero reduce el alcance comparándolo con IEEE
802.11b.
802.11g misma velocidad máxima que IEEE 802.11ª usando la banda de 2,4 GHz
con dos opciones: OFDM o DSSS mejorado para garantizar la
interoperabilidad con equipos IEEE 802.11b. El alcance es mayor debido
a combinar las ventajas de OFDM en cuanto a multitrayecto con la
menor absorción de la banda de 2.4 GHz.

(IEEE 802.11a, b y g tienen como principal inconveniente la débil


seguridad y carencia de calidad de servicio)
802.11n ha definido una especificación WLAN que, sobre las bandas de los 2,4
GHz y 5 GHz, ofrece una velocidad máxima de 600 Mbps, utilizan
canales de 44 MHz y tecnología MIMO.
802.11ac permite alcanzar tasas de 1,3 Gbps y opera en la banda de 5 GHz,
(WI-FI 5) dispone de hasta 8 canales con un ancho de banda de 80-160 MHz cada
uno. Incorpora cifrado de información con AES (Advanced Encryption
Standard) conocido como WPA2.
802.11ax Diseñado para operar en los espectros ya existentes de 2.4 GHz y 5 GHz.
(WI-FI 6) Introduce OFDMA para mejorar la eficiencia espectral global, con
velocidad máxima de 11 Gbps.

166
802.15 WPAN (Bluetooth): redes inalámbricas de área personal, define la capa física (PHY)
y de control de acceso al medio (MAC) para la conectividad inalámbrica tanto de
dispositivos estacionarios como móviles dentro de un área personal.
802.16 WIMAX (Worldwide Interoperability for Microwave Access): tecnología dentro de
las conocidas como tecnologías de última milla, también conocidas como bucle
local que permite la recepción de datos por microondas y retransmisión por ondas
de radio. Una de sus ventajas es dar servicios de banda ancha en zonas donde el
despliegue de cable o fibra por la baja densidad de población presenta unos costos
por usuario muy elevados (zonas rurales).

TEMA 6 – SEGURIDAD INFORMATICA: VIRUS, FIREWALL, VPN

1. DEFINICIÓNES DE SEGURIDAD INFORMÁTICA


Protección física del ordenador como componentes hardware, de su entorno, hasta la
protección de la información que contiene o de las redes que lo comunican con el exterior, es
un conjunto de reglas, planes y acciones que permiten asegurar la información contenida en un
sistema computacional, un conjunto de soluciones técnicas a problemas no técnicos. Debe
cubrir las características de confidencialidad, integridad y disponibilidad.
- Confidencialidad: asegura que la información no pueda estar disponible o ser descubierta
por o para personas, entidades o procesos no autorizados, se refiere a la capacidad del
sistema para evitar que personas no autorizadas puedan acceder a la información
almacenada en él.
- Integridad: el servicio de seguridad que garantiza que la información es modificada,
incluyendo su creación y borrado solo por el personal autorizado, el concepto de integridad
significa que el sistema no debe modificar o corromper la información o permitir que alguien
no autorizado lo haga, permite asegurar que no se ha falseado la información.
- Disponibilidad: el grado en que un dato está en el lugar, momento y forma en que es
requerido por el usuario autorizado, el sistema, tanto hardware como software se mantiene
funcionando eficientemente y es capaz de recuperarse en caso de fallo.
- Autenticidad: permite asegurar el origen de la información, la identidad del emisor puede
ser validada, se evita que un usuario se haga pasar por otro.
- No-Repudio: permite asegura que cualquier entidad que envía o recibe información, no
puede alegar ante terceros que no la envió o la recibió.
- Consistencia: asegurar que el sistema se comporta como se supone que debe hacerlo.
- Prevención: conocer los registros de actividad de los usuarios.
- Vulnerabilidad: potencialidad o posibilidad de ocurrencia de la materialización de una
amenaza sobre el activo, o defecto o debilidad en el diseño, implementación, operación y
mantenimiento de un sistema que podía ser explotado para violar la directiva o política de
seguridad de dicho sistema.
- Amenaza: eventos que pueden desencadenar un incidente en la organización, produciendo
daños materiales o perdidas inmateriales en sus activos, o una posibilidad de violación de la
seguridad, que existe cuando se da una circunstancia, capacidad, acción o evento que
pudiera romper la seguridad y causar prejuicio, es decir, una amenaza es un peligro posible
que podría explotar una vulnerabilidad.

167
- Impacto: consecuencia sobre el activo de la materialización de una amenaza.
- Riesgo: posibilidad de que se produzca un impacto determinado en un activo, en un domino
o en la organización, o probabilidad de que ocurra una amenaza, ponderándola con la
magnitud del daño que pueda ocasionar, actos naturales, errores u omisiones humanas o
actos intencionados.
- Activos: recursos del sistema de información o relacionados con este, necesarios para que
la organización funcione correctamente.
- Política de seguridad: conjunto de reglas que dirige como un sistema proporciona servicios
de seguridad para proteger recursos del sistema sensible y críticos.

• Vulnerabilidades que afectan a todos los sistemas: instalaciones por defecto de sistemas y
aplicaciones, cuentas sin contraseña o débiles, BackUps incompletos o inexistentes, gran
número de puertos abiertos, insuficiente filtrado de los paquetes con direcciones de inicio y
destino inadecuadas, registro de eventos (logging) incompleto o inexistente, programas CGI
(Common Gateway Interface) vulnerables,…
• Vulnerabilidades que afectan a sistemas Windows: vulnerabilidad Unicode, desbordamiento de
buffer en extensiones ISAPI (Internet Server Application Programming Interface), exploit para
RDS del IIS (Servicios de información remota Microsoft), recursos compartidos en red no
protegidos, fuga de información a través de conexiones de tipo “null sesión”, hashing débil en
SAM (Security Account Manager).
• Vulnerabilidades que afectan a sistemas UNIX: desbordamiento de Buffer en los servicios RPC
(Remote Procedure Call, vulnerabilidades en sendmail, debilidades en BIND (Berkeley Internet
Name Domain), comandos “r.”, desbordamiento de buffer en LPD (Line Printer Daemon),
“sadmind” y “mountd”, bajo control de cifrado en SNMP,…
• Vulnerabilidades que afectan a servidores web: parámetros no validos en peticiones HTTP,
control de acceso violado, ruptura en el manejo de control de cuentas y sesiones,
desbordamiento de buffer, errores por inyección de código y comandos, problemas con el
manejo de errores, uso inseguro de la criptografía, errores de implementaciones de
administración remota, fallos en sistemas con scripts, falta de configuración correcta en los
servidores,…

2. ATAQUES Y AMENAZAS
Tipos de ataques y amenazas: todas aquellas acciones que supongan una violación de la
seguridad de nuestro sistema (autentificación, confidencialidad, integridad o disponibilidad), se
pueden clasificar en:
• Interrupción: un recurso del sistema es destruido o se vuelve no disponible, es un ataque
contra la disponibilidad (Nukes: causan que los equipos queden fuera de servicio).
• Intercepción: una entidad no autorizada consigue acceso a un recurso, ataque contra la
confidencialidad (Troyanos: copia ilícita de archivos o programas o bien la lectura de las
cabeceras de paquetes de datos para desvelar la identidad, Spoofing…)
• Modificación: una entidad no autorizada no solo consigue acceder a un recurso, sino que es
capaz de manipularlo. Virus y troyanos poseen esa capacidad, es un ataca contra la
integridad. Modificación de cualquier tipo en archivos de datos, alterar un programa,
modificar el contenido de información que este siendo trasferida por la red…

168
• Fabricación: una entidad no autorizada inserta objetos falsificados en el sistema, es un
ataque contra la autenticidad (Inserción de mensajes falsos en una red o añadir datos a un
archivo), pueden clasificarse en:
o Ataques activos: algún tipo de modificación de los datos o la creación de falsos datos
(suplantación de identidad, modificación de mensajes, web spoofing…)
o Ataques pasivos: el atacante no altera la comunicación si no que únicamente la escucha
o monitoriza para obtener la información que está siendo transmitida, son muy difíciles
de detectar ya que no provocan ninguna alteración de los datos, es posible evitar su
éxito mediante el cifrado de la información.
2.1. CLASIFICACIÓN DE LOS ATAQUES POR SU “MODUS OPERANDI”
• Escaneo de puertos: buscar puertos abiertos y fijarse en los que puedan ser receptivos o de
utilidad para el ataque.
• Ataques de autenticación: suplantación de una persona con autorización por parte del
atacante mediante la obtención del nombre y contraseña del atacado o suplantando a la
víctima una vez está ya ha iniciado una sesión en su sistema. Se utilizan varias técnicas:
o Simulación de identidad: el atacante instala un programa que recrea la pantalla de
entrada al sistema para capturar su login y clave.
o Spoofing: ataques (sobre protocolos) que consisten en sustituir la fuente de origen de
una serie de datos adoptando una identidad falsa para engaña a un firewall o filtro de
red, los más conocidos son:
▪ IP Spoofing: sustituye una IP, el atacante logra identificarse con una IP que no es la
suya, con lo que a ojos del atacado el agresor es una tercera persona en vez del
atacante real (a través de nmap, por ejemplo).
▪ DNS Spoofing: aprovecha de la capacidad de un servidor DNS de resolver una
petición de dirección IP a partir de un nombre que no figura en su base de datos
(sustituye un servidor DNS).
▪ Web Spoofing: el atacante crea un sitio web (falso) similar al que la víctima desea
entrar, los accesos a este sitio están dirigidos por el atacante permitiéndole
monitorizar todas las acciones de la víctima.
▪ Fake-mail: envío de emails con remitente falso, el atacante envía email en nombre
de otra persona.
o Eavesdropping: ataque de capa de red, captura pequeños paquetes de la red y lee el
contenido de datos.
o Looping: el intruso utiliza algún sistema para obtener información e ingresar en otro,
que luego utiliza para entrar en otro y así sucesivamente, tiene como finalidad hacer
imposible localizar la identificación y la ubicación del atacante.
o IP Splicing-Hijacking: el atacante espera a que la víctima entre en una red usado su
nombre, contraseña y demás y una vez que la víctima ha superado los controles de
identificación y ha sido autorizada, la expulsa del sistema y se hace pasar por ella.
o Sinkholing: técnica para manipular el flujo de datos en una red; redirige el tráfico desde
su destino previsto al servidor de su elección. Se puede utilizar de forma maliciosa para
desviar el tráfico legítimo de su destinatario previsto.

169
o Backdoors (puertas traseras): trozos de código en un programa que permite a quien los
conocen saltarse los métodos usuales de autentificación para realizar ciertas tareas, son
insertados por los programadores para agilizar la tarea de probar código durante la fase
de desarrollo, son fallos de seguridad que se mantienen voluntariamente o no una vez
terminado el producto.
o Exploit: ingresar a un sistema aprovechándose de agujeros en los algoritmos de
encriptación utilizados.
o Obtención de contraseñas: obtención por “fuerza bruta” de nombres de usuarios y
calves de acceso. Suele realizar este tipo de ataques usando una clase de programas
llamados diccionarios (programas que en su base de datos contienen millones de
palabras, van probando con millones de combinaciones de letras y números
encriptados, hasta descubrir la combinación correcta).
o Man in the middled: el atacante se ubica en el medio de una comunicación entre dos
entidades legitimas para leer o modificar los datos que pasan entre las dos partes. Se
basa en capturar todo el tráfico de red de un usuario objetivo.
• Denial of Service (DoS): ataque de negación de servicio, produce la imposibilidad por parte
de la victima de acceder y/o permitir el acceso a un recurso determinado, la imposibilidad
de un servidor de prestar sus servicios. Es más fácil corromper un sistema que acceder
clandestinamente al mismo, estos ataques intentan corromper o saturar los recursos de la
víctima por medio de peticiones de conexión para lograr desactivarla por medio de
saturación, ataques más usuales:
o Jamming o Flooding: ataques que saturan los recursos del sistema de la víctima
dejándola sin memoria, sin espacio libre en su disco duro o saturando sus recursos en
red.
o Syn Flood: inundación con paquetes SYN, cuando se establece una comunicación a
través de TCP, el servidor envía un paquete que si el cliente no contesta entra en un
estado denominado semiabierto, no se ha atendido el saludo inicial. El servidor
permanecerá a la escucha un determinado tiempo hasta cancelar la llamada, si se envían
muchos saludos incompletos se consigue que el servidor se paralice.
o Land Attack: consiste en un bug en la implementación de la pila TCP/IP en Windows, el
ataque envía a algún puerto abierto de un servidor un paquete, maliciosamente
construido con la IP y puerto origen igual que la IP y puerto destino termine por
colapsarse.
o Supernuke o Winnuke: “Nuke” es el ataque más común de los equipos Windows, hace
que los equipos que escuchan por el puerto UDP 137/138/139 (utilizando NetBios),
queden fuera de servicio o disminuyan su rendimiento al enviarle paquetes UDP
manipulados, se envían fragmentos de paquetes que la maquina victima detecta como
erróneos pasando a un estado inestable.
o Teardrop: afectan a fragmentos de paquetes, algunas implementaciones de colas IP no
vuelve a recomponer correctamente los fragmentos ya que se superponen haciendo
que el sistema se cuelgue.
o Mail bombing / Mail Spamming: envío indiscriminado y masivo de un mensaje idéntico
a una misma dirección, saturando así buzón el de correo del destinatario.

170
• Ataques de modificación / daño:
o Tampering o Data Diddling: modificación no autorizada de datos o software instalado
en el sistema víctima.
o Ataques usando Java Applets: son ejecutados desde otra aplicación, como un navegador
de internet, los navegadores actuales implementan JVM para poder ejecutarlos, no son
más que código ejecutable y como tal puede ser manipulado por intrusos.
o Ataques usando JavaScript y VBScript: son dos lenguajes usados por los diseñadores de
sitios web evitando el uso de java, los programas son interpretados por el navegador.
o Ataques usando ACTIVEX: tecnología de Microsoft cuya seguridad se basa en
certificados y firmas digitales, el problema es que los usuarios aceptan los certificados
sin pararse a leerlos, y estos se basan en que le programador del control ActiveX asegura
que su control no es nocivo, lo cual es falso en bastantes ocasiones.
o Cookies: solo representan una amenaza para la privacidad ya que pueden cumplir la
función de espiar. No son capaces de causar daño al sistema, se utilizan para reconocer
al usuario al entrar en determinados sitios web.
o Ataques usando vulnerabilidades de los navegadores: fallos del navegador, los más
comunes son los “buffer overflow” debido a una debilidad de los buffers de algunos
navegadores para el procesamiento de las entradas de usuario, se puede llegar a
manipular datos como URL almacenadas.
• Explotación de errores:
o Errores de diseño, implementación y operación: sistemas están expuestos a agujeros de
seguridad que son explotados para acceder a archivos, obtener privilegios o realizar
sabotaje. Ocurren por varias razones como puertas traseras, bugs…

3. CONCEPTOS BÁSICOS SOBRE VIRUS


Es un programa que tiene la capacidad de causar daño y puede replicarse a sí mismo y
propagarse a otras computadoras. Infecta “entidades ejecutables”, archivos o sectores de las
unidades de almacenamiento, se programa en lenguaje de bajo nivel, requiere conocimientos
del funcionamiento interno del pc, tienen tres características principales:
• Dañino: siempre causa daños en el sistema que infecta, se busca destruir o alterar la
información o pueden ser situaciones con efectos negativos para la computadora, consumo
de memoria principal, tiempo de procesador, disminución de rendimiento…
• Autorreproductor: crear copias de sí mismo, cosa que ningún otro programa convencional.
• Subrepticio: utilizara técnicas para evitar que el usuario se dé cuenta de su presencia (se
oculta). Tener un tamaño reducido para poder disimularse a primera vista, la peligrosidad
de un virus está dada por lo critico del sistema que este infectando, no pueden causar daño
directo sobre el hardware, pero si pueden hacer ejecutar operaciones que reduzcan la vida
útil de estos. Por lo general prefieren atacar los archivos y no meterse con la parte física.
Este tipo de programas se pega a alguna entidad ejecutable que le facilitara la subida a memoria
principal y la posterior ejecución, como entidades ejecutables reconocen los sectores de
arranque de los discos de almacenamiento (MBR), los archivos ejecutables (.exe), librerías,
módulos de programas (.dll, .lib,…). El virus puede tener control total de la maquina al igual que
el SO si logra cargarse antes que nadie, es decir, si cada vez que se inicie el sistema el virus lograr
cargarse antes que el SO y luego, respetando su dese por permanecer oculto hacer ejecutar las
intrusiones del MBR. Un virus puede contener tres módulos principales:

171
• Módulo de reproducción: encargado de manejar las rutinas para infectar entidades
ejecutables que aseguraran la subsistencia del virus. Cuando toma el control del sistema
puede infectar otras entidades ejecutables.
• Módulo de ataque: contiene las rutinas de daño adicional o implícito. Puede ser disparado
por distintos eventos del sistema: fecha, hora, encontrar un archivo o sector especifico, una
determinada cantidad de arranques desde que ingreso al sistema…
• Módulo de defensa: principal objetivo es proteger el cuerpo del virus, incluye rutinas que
disminuyen los síntomas que delatan su presencia para que permanezca invisible, muy
sofisticadas logrando dar información falsa al SO y localizándose en lugares poco comunes
para el registro de los antivirus, como la memoria flash/ROM.
Métodos de infección:
• Añadidura o empalme: el código del virus se agrega al final del archivo ejecutable a infectar,
modificando las estructuras de arranque del archivo anfitrión. La principal desventaja es el
tamaño del archivo infectado es mayor al original, lo que permite una fácil detección.
• Inserción: se aloja en zonas de código no utilizadas o en segmentos de datos dentro de los
archivos que contagian, la longitud total del archivo infectado no varía.
• Reorientación: se introducen centrales virósicas en zonas físicas del disco rígido marcadas
como defectuosas o en archivos ocultos del sistema. El cuerpo del virus, al no estar insertado
en el archivo infectado, sino en otro sitio oculto, puede tener un tamaño bastante grande,
aumentando así su funcionalidad.
• Polimorfismo: método más avanzado de contagio logrado por los programadores, la técnica
básica usada es la de inserción de código viral en un archivo ejecutable, pero para evitar el
aumento de tamaño del arco infectado, el virus compacta parte de su código y del código
del archivo anfitrión de manera que la suma de ambos sea igual al tamaño original del
archivo.
• Sustitución: sustituye el código completo del archivo original por el código del virus, al
ejecutar el programa infectado el único que actúa es el virus, que cumple con sus tareas de
contagiar otros archivos y luego termina la ejecución del programa reportando algún tipo
de error.
• Tunneling: los virus utilizan el tunneling para protegerse de los módulos residentes de los
antivirus que monitorean todo lo que sucede en la máquina para interceptar todas las
actividades “típicas” de los virus.
Clasificación de los virus:
• Según su comportamiento:
o Caballos de Troya: no tienen la capacidad de autorreproducirse. Se esconden dentro del
código de archivos ejecutables y no ejecutables. Su objetivo es robar las contraseñas
que el usuario tenga en sus archivos o las contraseñas para el acceso a redes y enviarlas
por correo a la dirección registrada como la de la persona que lo envió a realizar la tarea.
o Troyanos: programas Remote adminstration Tool, deben estar instalados en ambos pc
y su comunicación se produce vía internet o vía red. Tiene un carácter malicioso como
el aprovechamiento de bugs y backdoors, el desconocimiento de la victima de que el
troyano esta instalado en su PC, se oculta intentando pasar desapercibido,…
▪ Camaleones: variedad de los troyanos, actúan como otros programas comerciales,
en los que el usuario confía pero en realidad están haciendo algún tipo de daño.

172
o Virus polimorfos o mutantes: poseen la capacidad de cifrar el cuerpo del virus para que
no pueda ser detectado fácilmente, deja disponibles unas cuantas rutinas que se
encargaran de descifrar el virus para poder propagarse, una vez descifrado el virus
intentara alojarse en algún archivo de la computadora. Para esto incluye un generador
de códigos al que se conoce como motor de mutación.
o Virus sigilosos: posee un módulo de defensa bastante sofisticado, intentara permanecer
oculto tapando todas las modificaciones que haga. Subvirtiendo algunas líneas de
código el virus logra apuntar el flujo de ejecución hacia donde se encuentra la zona
infectada. La técnica stealth de ocultamiento de tamaño captura las interrupciones del
SO que solicitan ver los atributos del archivo y, el virus le devuelve la información que
poseía el archivo antes de ser infectado.
o Virus lentos: infectan solamente los archivos que el usuario hace ejecutar por el SO,
simplemente siguen la corriente y aprovechan cada una de las cosas que se ejecutan.
o Retro-virus: intenta como método de defensa atacar directamente al programa
antivirus, lo programadores de virus esta no es una información difícil de obtener ya que
pueden conseguir cualquier copia de antivirus que hay en el mercado, descubrir cuales
son los puntos débiles del programa y buscar una buena forma de aprovecharse de ellos.
o Virus voraces: alteran el contenido de los archivos de forma indiscriminada, sustituirá el
programa ejecutable por su propio código, se dedican a destruir completamente los
datos que puedan encontrar.
o Bombas de tiempo: virus convencionales con la diferencia de que el trigger de su módulo
de ataque se disparara en una fecha determinada, muestran mensajes en la pantalla en
alguna fecha.
o Macro-virus: son completamente independientes del SO o de la plataforma, ni siquiera
son programas ejecutables, son pequeños programas escritos en el lenguaje propio de
un programa (editores de texto, hojas de cálculo, utilidades especializadas…), se pueden
propagar a otros ordenadores siempre que los usuarios intercambien documentos del
tipo del virus. Alteran de tal forma la información de los documentos infectados que su
recuperación resulta imposible, solo se ejecutan en aquellas plataformas que tengan la
aplicación para la que fueron creados.
o Gusanos: un conjunto de programas, que tiene la capacidad de desparramar un
segmento de él o su propio cuerpo a otras computadoras conectadas a una red, hay dos
tipos de gusanos:
▪ Host Computer Worm: contenidos totalmente en una computadora, se ejecutan y
se copian a si mismo vía conexión de una red, originalmente terminan cuando
hicieron una copia de ellos mismo en otro host, también existen los que hacen la
copia e infectan otras redes, es decir que cada máquina guarda una copia de ese
gusano.
▪ Network Worm: conjunto de partes (segmentos), cada una corre en una máquina
distinta y usando la red para distintos propósitos de comunicación propagan un
segmento de una maquina a otra, tienen un segmento principal que coordina el
trabajo de los otros segmentos.

173
4. SEGURIDAD PERIMETRAL Y PROTECCION EN REDES DE COMUNICACIONES
Cuando surgieron los primeros virus y comenzaron a producirse los primeros ataques de DoS
(Denial of Service). Para satisfacer las necesidades de comunicación segura de los usuarios, fue
necesario desarrollar estándares, protocolos y técnicas para implementar mecanismos de
seguridad en las redes.
4.1. TIPOS DE MEDIDAS DE SEGURIDAD
Diseñar sistemas mediante criterios de seguridad es más complejo, pues las amenazas con poco
cuantificables y muy variadas, las medidas de seguridad llevan un costo aparejado, a mayores y
más restrictivas medidas de seguridad, menos amigable es el sistema, las medidas de seguridad
que pueden establecerse en un sistema informático son:
• Medidas físicas: mecanismos para impedir el acceso directo o físico no autorizado, también
protege de desastres naturales y se encarga de establecer un perímetro de seguridad.
• Medidas lógicas: incluye las medidas de acceso a los recursos, el uso correcto de los mismos,
distribución de las responsabilidades entre los usuarios, protección de la información
almacenada.
• Medidas humanas: definir las funciones, relaciones y responsabilidades de distintos usuarios
potenciales del sistema.
• Medidas administrativas: aquellas que deben ser tomadas por las personas encargadas de
definir la política de seguridad como la documentación y publicación de la política de
seguridad y el establecimiento de un plan de formación del personal
• Medidas legales: aplicación de medidas legales para disuadir al posible atacante o para
aplicarle algún tipo de castigo a posteriori. Normalmente son fijadas por instituciones
gubernamentales e incluso instituciones internacionales como LOPD (Ley Orgánica de
Protección de Datos)
5. IDENTIFICACION Y AUTENTIFICACION
Las herramientas y aplicaciones forman la base técnica de la política de seguridad, pero la
política de uso aceptable debe considerar otros aspectos (quien tiene permisos, acceso,
responsabilidades…). Para poder entrar en un recinto será necesario saber de quien se trata y si
el sujeto está autorizado, será preciso identificar al sujeto (identificación) de forma totalmente
fiable (autenticación o verificación) y consultar un archivo, base de datos y/o algoritmo que nos
diga si el sujeto tiene o no autorización para realizar la acción demandada (autorización). Esto
implica que antes se haya establecido un sistema para identificar a los sujetos (gestión de la
identificación), se haya definido un sistema para autentificar al usuario (Autentificador), y que
para cada usuario se haya definido una tabla de permisos. Cuando el usuario intente entrar en
el sistema, deberá dar su identificación, que el sistema verificará (Comprobación del
identificador), realizar la operación pertinente para demostrar que es quien dice ser
(contraseña) y el sistema lo comprobará (Autentificación).

174
5.1. CONTROL DE ACCESO

Seleccionar o filtrar los usuarios que pueden acceder a recursos informáticos, en redes
telemáticas se puede hacer la selección del acceso según:
• En el servidor: el ordenador que almacena la información instala los filtros en el SO, esto
permite realizar la selección también para los usuarios que acceden físicamente al
ordenador, el problema es gestionar el acceso de una lista en muchos servidores, para
solucionar esto hay sistema que centralizan la gestión como Kerberos (protocolo de
autenticación de redes de ordenador creado por el MIT que permite a dos ordenadores en
una red insegura demostrar su identidad mutuamente de manera segura. Se basa en
criptografía de clave simétrica y requiere un tercero de confianza) o Radius ([Remote
Authentication Dial-In User Service]: protocolo de autenticación y autorización para
aplicaciones de acceso a la red o movilidad IP. Utiliza el puerto 1812 UDP para establecer
sus conexiones.).
• En la red: se instalan filtros en la red que controlan los accesos desde maquinas remotas,
estos se pueden implementar en Switchs LAN, Routers o Firewalls. Permite controlar zonas
y grupos.

Podemos definir seguridad perimetral como el conjunto de técnicas, elementos y sistema tanto
hardware como software que permiten la protección del perímetro delimitante entre las redes
LAN de una organización y el conjunto de las redes externas a dicha organización. Los ataques a
través de las redes de comunicaciones potencialmente pueden ocasionar perdidas de
información. El empleo de sistemas de protección perimetral que permitan realizar un robusto
control de accesos y protección los servicios informáticos garantizan un correcto
aprovechamiento de la infraestructura y garantiza la integridad y confidencialidad de la
información. Los diferentes segmentos de red se organizan en base a zonas de seguridad:
• Zona interna: se sitúan los usuarios de la propia organización.
• Zona externa: se encuentran los dispositivos cuya gestión esta fuera del alcance de la
organización.
• DMZ (De-Militarized Zone): se suelen situar a los servidores corporativos que proporcionan
servicios a los puestos de la red interna y a clientes situados en la red externa, quedando
protegidos por las diferentes reglas de seguridad configuradas en el firewall. La DMZ está
separada de la red interna y la red externa a través de un dispositivo de control y filtrado del
tráfico. El Firewall podría ser también un router que ejerciese, además de las funciones
propias, funciones específicas de un firewall.
5.2. FIREWALLS
Es un sistema o grupo de sistemas que hace cumplir una política de control de acceso entre
varias redes, se puede definir como cualquier sistema (desde un simple router hasta varias redes
en serie) utilizado para separar en cuanto a seguridad se refiere, una maquina o subred del resto,
protegiendo así servicios y protocolos que desde el exterior puedan suponer una amenaza a la
seguridad. Son dispositivos hardware o sistemas software que controlan el flujo de tráfico entre
dos o más redes empleando ciertas políticas de seguridad, son dispositivos cuya funcionalidad
se limita a permitir o bloquear el tráfico entre dos redes basándose en una serie de reglas. Su
complejidad reside en las reglas que admiten y en como realizan la toma de decisiones
basándose en dichas reglas.

175
El nivel de protección depende de las necesidades de la organización, los firewalls se configuran
para proteger la red contra cualquier intento de acceso desautorizado desde el exterior hacia el
interior de la red o viceversa, adicionalmente, es un punto único e ineludible de acceso a la red
donde se pueden centralizar las medidas de seguridad y auditoría sobre esta. Un firewall no
puede proteger la red contra amenazas que no pasan a través de él. Los firewalls no pueden
proteger contra clientes o servicios que se admiten como validos pero que son vulnerables.
Tampoco pueden proteger contra mecanismos de “tunneling” criptográfico para HTTP, SMTP u
otros protocolos (comunicaciones cifradas sobre SSL para los protocolos citados). Algunos
proporcionan mecanismos de detección y eliminación básicos. Los cortafuegos no pueden ni
deben sustituir otros mecanismos de seguridad que reconozcan la naturaleza y efectos de los
datos y aplicaciones que se estén manejando y actúen en consecuencia. Se dividen en:
• Firewall a nivel de red o de filtrado de paquetes (capas 2, 3 y/o 4 del modelo OSI): cuanto
más bajas sean las capas en las que el firewall trabaja, su evaluación será más rápida y
transparente pero su capacidad de acción ante ataques complejos es menor. Los firewalls
de filtrado de paquetes utilizan información de las cabeceras de capa 2, 3 y 4 para tomar
decisiones de bloque o envió. Existen dos clases principales dentro de esta categoría, los
firewalls de filtrado de paquetes estático y filtrado de paquetes dinámico, la diferencia
fundamental entre ellos es que los segundos tienen en cuenta información sobre el estado
de la conexión a la hora de evaluar las reglas. Los firewalls de filtrado estático de paquetes
analizan cada paquete individualmente, los firewalls de filtrado dinámico analizan cada
paquete en el contexto de su contexto.
Aparte de Aceptar o Rechazar, los firewalls de este tipo poseen un tercer tipo de acción:
Descartar. Cuando un paquete es procesado por una regla que define esta acción, este se
elimina “silenciosamente” sin devolverse error ninguno a lo originario de este creando un
efecto de “agujero negro” y evitando así que el firewall revele su presencia. Las principales
ventajas de este tipo de firewalls son su rapidez, transparencia y flexibilidad. Proporcionan
un alto rendimiento, escalabilidad y bajo coste y son muy útiles para bloquear la mayoría de
los ataques de DoS, se siguen implementando como servicios integrados en algunos routers
y dispositivos hardware de balanceo de carga.
Los firewalls con inspección de estado o filtrado dinámico de paquetes (Stateful Inspection
Firewalls) son firewalls de filtrado de paquetes en los que, además, se valida a la hora de
aceptar o rechazar el paquete, el hecho de que este sea una petición de nueva conexión o
pertenencia a una sesión ya establecen entre un host externo y otro interno. Los firewalls
de este tipo examinan de forma estricta el establecimiento de cada conexión (en capa 4 del
modelo OSI), mantiene una tabla de conexiones validas y deja pasar los paquetes que
contienen información correspondiente a una entrada valida en dicha tabla de circuitos
virtuales. También proporcionan los mecanismos efectivos de seguridad sobre el tráfico
UDP, creando información de sesión a partir d los puertos origen y destino utilizados.
• Firewall a nivel de aplicación (capas 5, 6, y/o 7 del modelo OSI): mantienen información del
contexto de cada conexión, teniendo en cuenta información de capa de aplicación antes de
permitir una conexión, manteniendo un riguroso control del estado de todas las conexiones
y el número de secuencia de los paquetes. Suelen ser servicios de filtrado para los protocolos
de capa 7 más habituales (HTTP, FTP, DNS, HTTPS, SMTP) proporcionando un control de
acceso adicional y un detallado registro de sucesos respecto a este.

176
Proxys: aplicación o dispositivo hardware que hace de intermediario entre los usuarios,
normalmente de una red local e internet. Lo que hace realmente es recibir peticiones de usuario
y redirigirlas a internet, la ventaja que presenta es que con una única conexión a internet
podemos conectar varios usuarios. Un proxy es a su vez un servidor de cache, almacena las
páginas web a las que se accede más asiduamente en una memoria, un usuario quiere acceder
a internet, accede a través del proxy. Se aceleran en gran medida los accesos a internet. El proxy
el transparente al usuario, porque tendrá que configurar su navegador diciéndole que accede a
internet a través de este. Los últimos proxies que han aparecido en el mercado realizan además
funciones de filtrado, dejar que un usuario determinado acceda a unas determinadas páginas
de internet o que no acceda a ninguna, podemos configurar una red local en la que haya usuario
a los que se les permita salir a internet, otros a los que les permita enviar correo, pero no salir
a Internet…

2.3. ARQUITECTURAS DE SEGUIRDAD PERIMETRAL


• Dual-Homed Host: basada en el uso de “proxy” (sin firewall), habitualmente en máquinas
Linux/Unix con “Squid (servidor proxy para web con caché para entornos Linux)” equipadas
con dos o más tarjetas de red y denominadas anfitriones de dos bases (Dual-Homed Host) o
multibase (Multi-Homed Host). Una de las tarjetas se suele conectar a la red interna a
proteger y la otra a la red externa a la organización. Esta configuración se basa en el uso de
un host bastión.
Host bastión (gate): un sistema especialmente asegurado, expuesto a todo tipo de ataques
por estar accesible desde Internet, función principal es ser el punto de contacto de los
usuarios de la red interna o de algún servicio de la DMZ de una organización con otro tipo
de redes. El host bastión filtra tráfico de entrada y salida, y también oculta la configuración
de la red hacia fuera.

El sistema ha de ejecutar al menos un servidor “proxy” para cada uno de los servicios que
se desee permitir y es necesario que le servicio “IP Forwarding” este deshabilitado, para que
la maquina con varias tarjetas de red no pueda actuar como router, aislando el tráfico entre
la red interna y la externa. Los sistemas externos verán al host a través d una de las tarjetas
y lo internos a través de la otra. Entre las dos partes no puede existir ningún tipo de tráfico
que no pase por el proxy: todo el intercambio de datos entre las redes se ha de realizar a
través de servidores “proxy” situados en el host bastión. La utilización de proxies es muy
recomendable, pero puede ser problemática al configurar cierto tipo de servicios o
protocolos que no se diseñaron tenido en cuenta la existencia de un proxy entre los dos
extremos de una conexión.
• Screened Host: un paso en términos de seguridad perimetral es la arquitectura “screened
host” o “choke gate”, que combina un router (configurado como firewall de filtrado de
paquetes estático), con un host bastión. El principal nivel de seguridad proviene del filtrado
de paquetes (el router es la primera y más importante línea de defensa). En la maquina
bastión, único sistema accesible desde el exterior, se ejecutan los proxies de las aplicaciones,
mientras que el choke o router de filtrado de paquetes, se encarga de filtrar los paquetes
que se puedan considerar peligrosos para la seguridad de la red interna, permitiendo
únicamente la comunicación con un reducido número de servicios.

177
La recomendación es situar el router entre la red exterior y el host bastión, pero situar el
bastión en la red exterior no provoca aparentemente degradación de la seguridad. La “no
degradación” de la seguridad mediante esta aproximación es más que discutible, ya que
habitualmente es más fácil de proteger un router que una maquina con un operativo de
propósito general. Así cuando una máquina de la red interna desea comunicarse con el
exterior existen dos posibilidades:
o El “choke” permite la salida de algunos servicios a todas o parte de las maquinas internas
a través de un simple filtrado de paquetes.
o El “choke” prohíbe todo el tráfico entre máquinas de la red interna y el exterior,
permitiendo solo la salida de ciertos servicios que provienen de la maquina bastión que
han sido autorizados por la política de seguridad de la organización. Así, se obliga a los
usuarios a que las conexiones con el exterior se realicen a través de los servidores proxy
situados en el bastión.
• Screened subnet (DMZ): es con diferencia la más utilizada, añade un nivel de seguridad en
las arquitecturas de firewall situando una subred (DMZ) entre las redes externa e interna,
de forma que, si la seguridad del mismo se veía comprometida, la amenaza se extendía
automáticamente al resto de la red. Como la maquina bastión es un objetivo interesante
para muchos atacantes, la arquitectura DMZ intenta aislarla en una red perimétrica de forma
que un intruso que accede a esta máquina no consiga un acceso total a la subred protegida.
Es una arquitectura más segura, pero también más compleja. Se utilizan dos firewalls,
denominados exterior e interior, conectados ambos a la DMZ, donde se puede ubicar el host
bastión y también se podrían incluir sistemas que requieran un acceso controlado como el
servidor de correo. El firewall exterior tiene como misión bloquear el tráfico no deseado en
ambos sentidos, mientras que el interior hace lo mismo, pero con el tráfico entre la red
interna y la perimétrica. De este modo un atacante había de romper la seguridad de ambos
routers para acceder a la red protegida. Incluso es posible implementa una zona
desmilitarizada con único router que posea tres o más interfaces de red, pero en este caso
si se compromete este único elemento se rompe toda nuestra seguridad.
2.4. SISTEMAS DETECTORES Y PREVENTORES DE INTRUSIONES (IDS)
IDS (Intrusion Detection Systems) es un sistema de seguridad complementario al firewall y
proxy. Los IDS no garantizan la seguridad, pero proporciona información adicional sobre los
eventos que se están produciendo en un sistema o en un segmento de red. Una buena estrategia
de seguridad debe incluir, además, autenticación de usuarios, control de acceso, cifrado de
datos y análisis de vulnerabilidades. Los sistemas de detección de intrusos proporcionan
monitorización (recibe y analiza el tráfico en busca de cualquier actividad que pueda ser
potencialmente peligrosa o que no cumpla la política de seguridad de la organización), detección
(usan políticas para definir los actos sospechosos de todo ese tráfico) y respuesta (pueden
proporcionar un conjunto de respuestas limitados, finalización de sesiones TCP sospechosas o
la interacción con firewalls mediante comandos SNMP). Los sistemas de detección son un
elemento integral y necesario en una infraestructura de información seguirá, representando el
complemento ideal a los firewalls en las redes. Permiten un completa supervisión de las redes,
independientemente de la acción tomada, esa información siempre estará ahí y será necesaria
para determinar la naturaleza del incidente y su fuente. Existen dos grandes enfoques a la hora
de clasificar a los sistemas de detección de intrusos en función de que sistemas vigilan:

178
• IDS basados en maquina: sistemas que analizan actividades de una única maquina en busca
de posibles ataques. Realizan su función protegiendo un único sistema, es un proceso que
trabaja en background buscando patrones de eventos y alertando o tomando las medidas
oportunas en caso de que uno de estos intentos sea detectado.
• IDS basados en red: sistemas que analizan una subred (generalmente en un mismo dominio
de difusión) en busca de posibles ataques. Monitoriza los paquetes que circulan por un
segmento de red, puede situarse en cualquier de los hosts o en un elemento que analice
todo el tráfico (como un switch o un router). Monitorizara todo el tráfico del segmento, es
necesario que le puerto del switch al que se conecta el IDS sea configurado con la
funcionalidad de “port mirroring”.
Sistemas de decepción (honeypots): mecanismos encargados de simular servicios con
problemas de seguridad de forma que un atacante piense que realmente es problema se
puede aprovechar para acceder a un sistema cuando realmente se está aprovechado para
registrar todas sus actividades, es un mecanismo útil para conseguir entretener al atacante
mientras se localiza su conexión. El objetivo fundamental es obtener información del
atacante.

2.2 VIRTUAL PRIVATE NETWORK


Técnica que permite crear una red privada sobre una infraestructura de red pública,
manteniendo sus características de seguridad. Se utilizan protocolos de “tunneling”
criptográfico para proporcionar los servicios de autenticación de origen, integridad del mensaje
y confidencialidad, La clave de la tecnología VPN es la seguridad, que se consigue mediante el
encapsulamiento (tunneling) cifrado y mecanismos de autenticación. Se pueden clasificar en
overlay VPNs y peer-to-peer VPN:
• Overlay VPN: los proveedores de servicios proporcionan comunicaciones seguras a través
de su backbone. Dichos circuitos son establecidos antes de que se puedan enviar datos. Este
tipo de VPN puede presentar una serie de inconvenientes como su diseño complejo desde
el punto de vista del cliente o la problemática al incrementar el número de clientes. Se
pueden crear VPN de este tipo a nivel de capa 2, 3 o 5 de la pila TCP/IP:
o L2 Overlay VPN (capa enlace de datos): circuitos virtuales de ATM y Frame Relay
o L3 Overlay VPN (capa de red): encapsulamiento de paquetes IP en paquetes IP
o L5 Overlay VPN (capa de aplicacion): WebVPN o VPN over SSL
• Peer-to-peer VPN: utiliza MPLS que permite combinar las ventajas de Overlay VPN con las
de enrutamiento simplificado entre los peers de la VPN, enrutamiento sencillo para el
cliente, variedad de tipologías…
MPLS (Multiprotocol Label Switching): opera entre la capa de enlace de datos y la capa de red
del modelo OSI. Fue diseñado para unificar el servicio de transporte de datos para las redes
basadas en circuitos y las basadas en paquetes. Puede ser utilizado para transportar diferentes
tipos de tráfico, incluyendo tráfico de voz y de paquetes IP. Reemplazó a Frame Relay y ATM
como la tecnología preferida para llevar datos de alta velocidad y voz digital en una sola conexión.

179
3.2. IPSEC
Es un “framework” de seguridad que define como crear VPN sobre redes IP, se basa en la
utilización de protocolos de encapsulamiento (ESP, AH), algoritmos de cifrado (DES, 3DES, AES),
algoritmos de autenticación (MD-5, SHA-1), mecanismos de gestión de claves y dominios de
interpretación. Proporciona servicios de seguridad en la capa IP, permitiendo que los sistemas
elijan los protocolos necesarios, determinen que algoritmos se van a utilizar en cada servicio y
facilite la gestión de las claves criptografía asociadas con cada servicio proporcionado. IPSec
puede funcionar en dos modos:
• Modo de transporte: proporción protección de los protocolos de capa superior, protege la
carga útil (payload), se utiliza este modo cuando la VPN se establece de extremo a extremo
entre dos dispositivos finales.
• Modo túnel: proporciona protección al paquete IP completo, después de haber añadido la
cabecera AH o ESP al paquete IP original, se le añade una nueva cabecera IP dando lugar a
un nuevo paquete IP cuyo payload es el paquete IP original encapsulado en ESP o AH. La
cabecera del paquete original queda por lo tanto también protegida. El modo túnel suele
utilizarse cuando al menos uno de los extremos de la VPN es una pasarela VPN (router,
cortafuegos, concentrador).

GRE (Generic Routing Encapsulation): protocolo para el establecimiento de túneles a través


de Internet.

3.3. PROTOCOLOS DE VPN


• Authentication Header (AH): proporciona soporte para la integridad y la autenticación de
paquetes IP. La autenticación puede estar relacionada tanto con el control de acceso de un
usuario o aplicación como con la verificación del origen de los paquetes, para evitar ataques
basados en “IP Spoofing”. También proporciona protección frente a ataques de repetición
de mensajes. La autenticación se basa en la utilización MAC lo que implica que los dos
extremos de la VPN deben compartir una clave secreta para utilizar esta técnica. La cabecera
AH se compone de:
○ Next Header: identifica el tipo d cabecera que encapsula AH.
○ Payload Length: longitud de la carga útil.
○ Reservado.
○ SPI: índice de parámetros de seguridad, identifica la SA con la que está vinculando el
mensaje.
○ Sequence Number: permite implementar servicios de defensa frente a ataques de
repetición.
○ Authentication Data: campo de longitud variable que contiene el valor de comprobación
de integridad (Integrity Check Value, ICV) o el Message Autheticacion Code (MAC).
• Encapsulamiento de seguridad de la carga útil (Encapsulation Payload Security): es un
protocolo que encapsula la carga útil (payload) del paquete original, pudiendo proporcionar
servicios de confidencialidad y autenticación (opcionalmente). La cabecera ESP consta de:
o Índice de Parámetros de Seguridad (SPI): identifica la SA
o Numero de secuencia (Sequence Number): este campo permite implementar servicios
de defensa frente a ataques de repetición.

180
o Carga útil: es la PDU de capa de transporte (modo transporte) o el paquete IP (modo
túnel) protegido mediante cifrado.
o Relleno.
o Longitud de relleno.
o Siguiente cabecera (Next Header): identifica el tipo de cabecera que encapsula ESP.
o Datos de Autenticacion (Authentication Data): longitud variable que contiene el valor
de comprobación de integridad.
El protocolo de gestión de claves automático predeterminado para IPSec se conoce como
ISAKMP/Oalkey y está formado por:
• Protocolo de Determinación de Claves Oakley: es un protocolo de intercambio de claves
basado en el algoritmo Diffie-Hellman.
• ISAKMP (Intertet Security Asociation Key Management Protocol): es un “framework” de
gestión de claves y el soporte de un protocolo especifico, incluyendo formatos para la
negociación de los atributos de seguridad. ISAKMP define los procedimientos y los formatos
de los paquetes para establecer, negociar, modificar y eliminar las asociaciones de
seguridad. Como parte del establecimiento de la SA, ISAKMP define las cargas útiles para
intercambiar durante la generación de calves, así como los datos de autenticación.
OpenVPN: es un “framework” para el establecimiento de VPN basado en software libre.
Ofrece conectividad punto a punto con validación jerárquica de usuarios y host conectados
remotamente. Es una solución multiplataforma que pretende simplificar la configuración de
VPN frente a otras soluciones más difíciles de configurar como IPSec. OpenVPN tiene dos
modos seguros, uno basado en calves estáticas precompartidas y otro en SSL/TLS usando
certificados y claves RSA.

181
TEMA 7 – CIFRADO, FIRMA DIGITAL Y CERTIFICADOS DIGITALES

1. TECNICAS CRIPTOGRAFICAS Y PROTOCLOS SEGUROS. MECANISMO DE FIRMA DIGITAL


• Criptografía: se define como el arte de escribir con clave secreta o de un modo enigmático.
• Criptología: ciencia que estudia la ocultación, disimulación o cifrado de la información.
Abarca por tanto a la criptografía, la criptofonía y el criptoanálisis, ciencia que estudia los
pasos y operaciones orientados a transformar un criptograma en el texto claro original pro
sin conocer inicialmente el sistema de cifrado utilizado y/o la clave. La finalidad de esta
técnica ha sido siempre enviar menajes confidenciales con la garantía de que solo el
destinatario de los mismo pudiera acceder a la información contenida en el mensaje.
• Criptografía: desarrolla métodos que consisten en la aplicación de una transformación al
mensaje conocida como cifrado, con el objetivo de que las personas que desconozcan la
transformación realizada sean incapaces de acceder a la información contenida en el
mensaje.
• Criptoanálisis: su finalidad es descubrir la clave de cifrado, un algoritmo de cifrado es más o
menos vulnerable en función de la dificultad de la tarea de descubrimiento de la clave.
• Esteganografía: lo que busca es ocultar un mensaje ante un posible atacante, pero la
diferencia estaba en como oculta la información ambas técnicas: mientras que la
criptografía pretende que la información no sea descifrada, la esteganografía lo que
pretende es que la información pase desapercibida.
1.1. TÉCNICAS CRIPTOGRÁFICAS
• Técnicas criptográficas clásicas: realizan el cifrado en base a la sustitución y transposición de
los caracteres del mensaje, es crucial ocultar el algoritmo a los atacantes ya que si un
atacante lo descubre será capaz de interpretar todos los mensajes cifrados que capture,
como el algoritmo Cesar, cifrado Vigenere…
• Técnicas criptográficas modernas: utilizan claves de cifrado, la seguridad del método debe
depende únicamente de la clave de cifrado, esta premisa hace que estas técnicas resulten
mucho más segura y efectivas ya que resulta más sencillo mantener el secreto de la clave y
además cambiar la clave de cifrado siempre será menos costoso que idear un nuevo
algoritmo resultando frecuente que la clave de cifrado se genere de forma automática, se
pueden clasificar atendiendo a las claves que utilizan o al modo en que procesan la
información. Tipo de claves que utilizan.
o Cifrado simétrico o de clave privada: utiliza una clave secreta para cifrar y descifrar un
mensaje, deben cumplirse dos requisitos fundamentales, que el algoritmo que se utiliza
debe ser robusto, si una tercera persona no autorizada está en posesión del mensaje,
no debería ser capaz de descifrar el
texto ni de obtener la clave con la que
fue cifrado. Además, la selección,
envío, almacenamiento y utilización de
las calves debe ser totalmente segura,
de forma que las entidades no
autorizadas no puedan acceder a ellas.

182
Los cifradores de bloques son los algoritmos de cifrado simétrico más utilizados, dividen
el mensaje original en bloque de igual tamaño que después serán cifrado con la misma
clave. Los algoritmos de este tipo más importantes en la actualidad son:
▪ DES (Data Encryption Standard): diseñado para cifrar y descifrar bloques de datos
de 64 bits con una clave secreta de 56 bits. Un bloque que va a ser cifrado debe
someterse primero a una permutación inicial, posteriormente a un computación
compleja y dependiente de la clave y finalmente, a una permutación inversa a la
permutación inicial.
▪ 3DES (Triple DES): utiliza tres claves y tres ejecuciones del algoritmo, de esta forma
el tamaño efectivo de la clave pasa a ser 168 bits, con tres veces más etapas que
DES utiliza un tamaño de bloque de 64 bits.
▪ AES (Advanced Encryption Standard): capaz de soportar longitudes de clave de 128,
192 y 256 bits y longitud de bloque 128 bits.
▪ IDEA (International Data Encryption Algorithm): algoritmo propuesto como
reemplazo del DES (Data Encryption Standard). Opera con bloques de 64 bits usando
una clave de 128 bits y consiste de ocho transformaciones idénticas (cada una
llamada una ronda) y una transformación de salida (llamada media ronda).
▪ RC5 (Cifrado de Rivest v.5): unidad de cifrado por bloques notable por su
simplicidad. A diferencia de muchos esquemas, RC5 tiene tamaño variable de
bloques (32, 64 o 128 bits), con tamaño de clave (entre 0 y 2040 bits) y número de
vueltas (entre 0 y 255). La combinación sugerida originalmente era: bloques de 64
bits, claves de 128 bits y 12 vueltas.
o Sistemas de cifrado asimétrico o de clave publica:
basada en el uso de dos calves, una clave privada
y otra publica, una de ellas sirve para descifrar los
mensajes que han sido cifrado únicamente con la
otras. Los algoritmos utilizados para cifrar y
descifrar no utilizan operaciones sobre los
patrones de bits, sino que se apoyan en
problemas matemáticos difíciles de resolver. Este
tipo de criptosistemas puede ser utilizado, para
cifrar y descifrar mensajes, intercambiar claves de
sesión y para firmar digitalmente los mensajes.
Ejemplos de sistemas de criptografía publica:
▪ Diffie-Hellman: mecanismo que permite que dos partes se pongan de acuerdo de
forma segura sobre una clave secreta utilizando un canal inseguro, el algoritmo se
basa en la dificultad de calcular logaritmos discretos y se usa generalmente como
medio para acordar calves simétricas que será empleadas para el cifrado de una
sesión.
▪ RSA: es el algoritmo más utilizado en la historia de la criptografía de clave pública.
La clave publica está formada por un numero n, calculando como producto de dos
factores primos muy grandes y un exponente. La clave privada es otro exponente
de tal forma que el cifrado y el descifrado se puede realizar inversamente, la clave
pública y la privada son intercambiables: si se usa cualquier de ellas para cifrar se
deberá utilizar la otra para descifrar.

183
▪ DSA (Digital Signature Algorithm): este algoritmo como su nombre lo indica, sirve
para firmar (autenticar), pero no para cifrar información.
Para asegurar que la clave pública del destinatario es realmente de quien dice ser,
surgen las autoridades de certificación. “Trusted Third Parties”, entidades que
merecen la confianza de otros actores en un escenario de seguridad donde no existe
confianza directa entre las partes involucradas en una cierta transacción. Es
necesaria aun infraestructura de clave publica para cerrar el círculo de confianza.
Esta infraestructura de clave publica consta de una serie de autoridades que se
especializan en papeles concretos:
• Autoridades de certificación (CA o certificación authorities): vinculan la clave
publica a la entidad registrada proporcionado un servicio de identificación.
• Autoridades de registro (RA o registration authorities): ligan entes registrados a
figuras jurídicas, extendiendo la accesibilidad de las CA.
• Autoridades de fechado digital (TSA o time stamping authorities): vinculan un
instante de tiempo a un documento electrónico avalando con su firma la
existencia del documento en el instante referenciado (exactitud temporal de los
documentos electrónicos).

○ Funciones HASH: operación que se aplica sobre un conjunto de datos de cualquier


tamaño para obtener una “huella” o “resumen” del mismo. Una función hash debe
producir una salida de tamaño fijo, independiente del tamaño del conjunto de datos de
entrada relativamente fácil de computar para cualquier conjunto de datos, asociada
unívocamente a los datos de la entrada, haciendo prácticamente imposible encontrar
dos mensajes distintos que tengan igual resumen (resistencia fuerte a las colisiones) y
unidireccional en el sentido de que es imposible obtener le conjunto de dato inicial a
partir del valor de resumen.
▪ MD5: este algoritmo de resumen de mensaje procesa los mensajes de entidad en
bloques de 512 bits y produce un resumen de 128 bits. Comienza rellenando el
mensaje original hasta una longitud 64 bits inferior a un múltiplo de 512. Antes de
procesar el primer bloque del mensaje se inicializa con un valor fijo un buffer de 128
bits. Durante varias rondas de procesamiento el algoritmo toma bloques de 512 bits
de la entrada y los mezcla con los 128 bits del buffer. Este proceso es repetido hasta
que todos los bloques de entrada han sido consumidos. El valor resultante en el
buffer es el resumen del mensaje.
▪ SHA-1: el procesamiento del algoritmo es similar al de MD5. Se toma como entrada
un mensaje con longitud máxima menor que 2^64 bits y produce en la salida un
resumen de 160 bits. La entrada se procesa en bloques de 512 bits. SHA-2 lo
sustituye debido a debilidades matemáticas que fueron solucionadas usando una
función hash más fuerte. Mas tarde se libera SHA-3.

184
2. FIRMA DIGITAL Y CERTIFICADOS DIGITALES
2.1 FIRMA DIGITAL
Es una de las aplicaciones más importantes que posibilita la utilización de la criptografía de clave
pública, es un bloque de caracteres que acompaña a un documento (o fichero) acreditando
quien es su autor (autenticación) y que no ha existido ninguna manipulación posterior de los
datos (integridad) para firmar un documento digital, su autoría queda vinculado al documento
de la firma, dicha firma podrá ser comprobada por cualquier persona que disponga de la clave
pública del autor. La firma se realiza de modo que el software del firmante aplica un algoritmo
hash sobre el texto a firmar (unidireccional, lo cifrado no se puede descifrar), extracto de
longitud ficha y absolutamente específico para ese mensaje. Los algoritmos has más utilizados
para esta función son el MD5 o SHA-1. El extracto conseguido cuya longitud oscila entre 128 y
1690 bits, se somete a continuación al cifrado mediante la clave secreta del autor. El algoritmo
más utilizado en el procedimiento de encriptación asimétrica es el RSA, obtenemos un extracto
final cifrado con la clave privada del autor el cual se añadirá al final del texto o mensaje para que
se pueda verificar la autoría e integridad del documento por aquella persona interesada que
disponga de la calve pública del autor. La firma digital aporta la identificación del firmante,
integridad del contenido firmado y no repudio del firmante.
2.2 CERTIFICADOS DIGITALES
Es un documento que permite vincular una clave pública a una entidad ya sea un usuario, una
organización… Dos entidades que no se conocen previamente pueden intercambiar sus claves
públicas. Al comienzo de una comunicación, el emisor envía su clave publica dentro de un
certificado digital al receptor, que al recibir el certificado debería verificar su validez, que la clave
publica pertenece realmente a la entidad con la que está vinculada.
Public Key Infrastructure (PKI): conjunto de componentes y políticas necearías para crear,
gestionar y revocar certificados digitales que pueden ser utilizados para autenticar cualquier
aplicación, persona, proceso u organización de una red de empresa, extranet o Internet. Está
formada por cinco actores principales:
• Autoridades de Certificación (CA): responsables de emitir y revocar certificados digitales.
• Autoridades de Registro (RA): verifican la unión entre las claves públicas y la identidad de
los propietarios mediante un “proceso de registro”.
• Usuarios certificados o “suscriptores”: personas, organización o cualquier entidad que
utilice el certificado proporcionado por un CA
• Clientes: poseen un documento firmado de un usuario certificado y desean comprobar su
validez.
• Repositorio: directorio central donde se almacenan los certificados.

185
TEMA 8 – CPD, CERES Y CCN-CERT

1. CPD (Centro de Proceso de Datos):


Ubicación donde se concentran todos los recursos necesarios para el almacenamiento,
procesado y transmisión de la información de una organización, buscando garantiza la
continuidad y disponibilidad de los servicios basados en dicha información; realiza funciones de
servicios para las toras operaciones de la organización, el objetivo principal es concentrar el
procesado de los datos y la información de formal sistematizada y automática de formal que
fluyan y organice sin importar el volumen. Sigue el estándar TIA-942 que define directrices de
planificación y construcción d CPD, la norma trabaja con cobre y fibra óptica como medios de
transmisión, especifica las necesidades para aplicaciones y procedimientos como la arquitectura
de red, diseño eléctrico, almacenamiento de archivos, backup y archivo… La norma TIA-942
recomienda las siguientes áreas funcionales clave:
• Uno o más cuartos de entrada: alberga el equipo de los operadores de telefonía y el punto
de demarcación.
• Un Área de Distribución Principal (MDA): alberga el punto de conexión cruzada central para
el sistema de cableado estructurado dl centro de datos. Ubicada en una zona central, racks
separados para los cables de fibra, UTP y coaxial.
• Una o más Áreas de Distribución Horizontal (HDA): ubicación de las interconexiones
horizontales, el punto de distribución para el cableado hacia las áreas de distribución de los
equipos, máximo 2000 cables UTP de 4 pares.
• Un Área de Distribución de Zona (ZDA): cableado estructurado para los equipos que van en
el suelo y no pueden aceptar paneles de parcheo, computadoras centrales y servidores.
• Un Área de Distribución de Equipos: ubicación de los gabinetes y racks de equipos, colocar
en una configuración “hot aisle/cold aisle” (pasillos) que disipen de manera eficaz el calor
de los equipos.
El sistema de cableado de un CPD debe deseñarse teniendo en mente que tiene que ser
permanente y genérico, debe seguir las normas EIA/TIA-568, que garantizan que los sistemas
que se ejecuten de acuerdo a ella soportaran todas las aplicaciones de telecomunicaciones
presentes y futuras por un lapso de al menos diez años.
Para refrigeración se emplean unidades CRAC (Computer Room Air Conditioner) con ciclo de
refrigeración autónomo para extraer el calor de la sala y alejarlo del CPD, intercambiadores de
calor basados en el principio de equilibrio térmico y expansión directa de un fluido refrigerante;
o CRAH (Computer Room Air Handling): que utilizan agua fría en circulación para extraer el calor.
Para favorecer la circulación de aire se usan diferentes arquitecturas de refrigeración en salas
(método tradicional utilizado para refrigerar un CPD donde uno o más equipos de aire
acondicionado que suministran aire frio sin ningún tipo de restricción), filas (las unidades de
CRAC están asociadas y dedicada a una fila, las vías de circulación de aire son más cortas y están
definida scon mayor claridad que en la refrigeración por salas), pasillos (eliminan los puntos
calientes típicos de los centros de datos tradicionales gracias a la disposición de pasillos fríos
(CACS, Cold Aisle Containment System) / pasillos calientes (HACS, Hot Aisle Containment
System)) o racks (las unidades de CRAC están asociadas y dedicadas a un único rack, se montan
directamente al lado o dentro de los racks).

186
Las medidas a tomar dependerán del nivel de fiabilidad requerido y de los costos, mantener un
equilibrio sopesando el coste que tendría para la empresa un “apagón”. Para ayudar a estimar
el nivel de fiabilidad de un CPD, la norma TIA-492 desarrolla cuatro niveles denominados Tier: el
nivel I brinda la menor fiabilidad y el IV, la mayor. Se crearon para describir consistentemente la
infraestructura requerida para mantener las operaciones de los centros de datos, no las
características de sistemas individuales o subsistemas. El grado de la topología Tier para un sitio
está limitado por el grado del subsistema más débil que afectara a las operaciones del sitio.
• Tier I (CPD Básico): un CPD Tier I puede admitir interrupciones tanto planeadas como no
planeadas. Cuenta con sistemas de aire acondicionado y distribución de energía, pero puede
no tener piso técnico, UPS o generador eléctrico. La carga máxima de los sistemas en
situaciones críticas puede llegar al 100%, el CPD deberá estar fuera de servicio al menos una
vez al año por razones de mantenimiento y o reparaciones. Errores de operación fo fallas en
los componentes de su infraestructura causaran la interrupción del CPD.
• Tier II (Componentes Redundantes): un CPD con componentes redundantes son ligeramente
menos susceptibles a interrupciones, tanto planeadas como las no planeadas. Cuentan con
suelo técnico, UPS y generadores eléctricos, conectado a una sola línea de distribución
eléctrica, existe al menos un duplicado de cada componente de la infraestructura. La carga
máxima de los sistemas en situaciones críticas es del 100%. El mantenimiento en la línea de
distribución eléctrica o en otros componentes, pueden causar una interrupción del servicio.
• Tier III (Mantenimiento Concurrente): permiten realizar cualquier actividad planeada sobre
cualquier componente de la infraestructura sin interrupciones en la operación, incluyen
mantenimiento preventivo, reparaciones o reemplazo de componentes, agregar o eliminar
componentes, realizar pruebas de sistemas o subsistemas, entre otros. Suficiente capacidad
y doble línea de distribución de los componentes, actividades no planeadas como errores
de operación o fallos espontaneas den la infraestructura pueden todavía causar una
interrupción del CPD. La carga máxima en los sistemas en situaciones críticas es de 90%.
• Tier IV (Tolerante a Fallos): provee capacidad para realizar cualquier actividad planeada sin
interrupciones en el servicio, la funcionalidad tolerante a fallos le permite a la
infraestructura continúa operando aun ante un evento critico no planeado. Esto requiere
dos líneas de distribución simultáneamente activas (UPS independientes). La carga máxima
de los sistemas de situaciones críticas des de 90%. Persiste un nivel de exposición a fallos,
por el inicio una alarma de incendio o porque una persona inicie un procedimiento de
apagado de emergencia (EPO).
CSIRT (Computer Security Incident Response Team): está formado por las personas que cuentan
con la experiencia y la formación para actuar y gestionar las incidencia y desastres que pudieran
afectar a la seguridad informática de una organización. Definen una guía de actuación con los
procedimientos y acciones necesarios para restauración rápida, eficiente y segura de la
capacidad de procesamiento informático y de comunicaciones de la organización, así como para
la recuperación de los datos dañados o destruidos. Debe proporcionar una respuesta
sistemática ante los incidentes de seguridad, permitirá minimizar los daos ocasionados y facilitar
la recuperación del sistema afectado. El “Plan de Respuesta a Incidentes” debe definir cómo se
ha producido el incidente (el tipo de ataque, que métodos ha empleado…), utilizando una matriz
de diagnóstico, realiza una valoración inicio de los daños y de sus posibles consecuencias,
establecer un orden de prioridades en las actividades que lleva a cabo el equipo de respuesta.

187
2. SISTEMAS ALIMENTACION ININTERRUMPIDA
Es un dispositivo que puede proporcionar energía eléctrica a todos los dispositivos que tenga
conectados, tras un corte en la red de alimentación. Se basa en el uso de baterías recargables,
el tiempo de interrupción es limitado, proporcional a la capacidad de las baterías, permiten un
apagado “ordenado” de los dispositivos para evitar daños en discos os sistemas de ficheros,
tienen filtro de subidas y picos de tensión y pueden eliminar problemas de frecuencia. Existirán
SAIs centralizadas en el CPD para dar alimentación eléctrica durante un periodo corto de tiempo,
equipos siguen funcionando más allá de este tiempo de paradas, será necesario utilizar “grupos
electrógenos”, existen 3 tipos de SAI:
• SAI Offline: son económicos (equipos no críticos), no disponen de estabilizador de corriente,
solamente generan tensión en caso de corte en el suministro eléctrico…
• SAI Inline: incorporan un estabilizador de corriente, solamente generan tensión en caso de
corte…
• SAI Online: diseñado para proteger sistemas críticos, siempre generan tensión eléctrica,
independientemente de la entrada…

7.5. CCN-CERT
Dentro de las funciones del Centro Criptológico Nacional se encuentra la coordinación,
promoción y desarrollo de soluciones que garanticen la seguridad de los sistemas y contribuyan
a una mejor gestión de la ciberseguridad en cualquier organización y permitan una mejor
defensa frente a los ciberataques. Entre estas soluciones se encuentran las siguientes:
• AMPARO (Asistente de Implantación de Seguridad y Conformidad): Actúa como punto de
encuentro entre los actores participantes en el proceso de implantación de seguridad y
conformidad: organismos, entidades de certificación, organismos de auditoría y entidades
supervisoras de seguridad.
• ANA (Automatización y Normalización de Auditorías): sistema de auditoría continua.
• CARMEN (Defensa de ataques avanzados/APT): solución desarrollada con el objetivo de
identificar el compromiso de la red de una organización por parte de amenazas persistentes
avanzadas (APT).
• CCNDroid: Herramientas de seguridad desarrolladas por el CCN-CERT para dispositivos con
sistema operativo Android.
• CLARA (Auditoría de Cumplimiento ENS/STIC en Sistemas Windows): Herramienta para
analizar las características de seguridad técnicas por el que se regula el Esquema Nacional
de Seguridad.
• CLAUDIA (Herramienta para la detección de amenazas complejas en el puesto de
usuario): es una solución de endpoint integrada con la herramienta “Carmen” que permite
tener una visión más completa de lo que ocurre dentro de una red, siendo su objetivo
principal la detección de malware complejo y movimiento lateral relacionado con APT.
• MicroCLAUDIA (Protección contra Ransomware): proporciona protección contra código
dañino de tipo ransomware a los equipos de un organismo.
• EMMA (Visibilidad y control sobre la red): proporciona control de acceso a las
infraestructuras de red, es desarrollada para agilizar la visualización de activos en una red,
su autenticación y segregación, así como la automatización de auditorías de seguridad de la
infraestructura.

188
• GLORIA (Gestor de logs para responder ante incidentes y amenazas): plataforma para la
gestión de incidentes y amenazas de ciberseguridad a través de técnicas de correlación
compleja de eventos.
• INES (Informe de Estado de Seguridad en el ENS): plataforma telemática, a la que puede
acceder las distintas Administraciones Públicas un conocimiento más rápido e intuitivo de
su nivel de adecuación al ENS y del estado de seguridad de sus sistemas.
• LORETO (almacenamiento en la nube): Herramienta de uso compartido en la nube para el
almacenamiento virtual de información que permite el intercambio de los mismos.
• LUCIA ((Listado Unificado de Coordinación de Incidentes y Amenazas): con ella se pretende
mejorar la coordinación entre el CERT y los distintos organismos y organizaciones con las
que colabora mediante un sistema de ticketing para la gestión de ciberincidentes.
• MARIA (plataforma multiantivirus en tiempo real): Herramienta de detección desarrollada
para el análisis estático de código dañino a través de múltiples motores antivirus y, permite
analizar en tiempo real cualquier tipo de fichero, obteniendo la detección de virus, gusanos,
troyanos y todo tipo de código dañino.
• MARTA (Sistema para el análisis dinámico de código dañino): plataforma avanzada de multi-
sandboxing dedicada al análisis automatizado de múltiples tipos de ficheros que pudieran
tener un comportamiento malicioso. A partir de la información que Marta recoge, un
analista podrá determinar qué tipo de funcionalidad y qué implicaciones tiene para su
organización.
• MONICA (Gestión de eventos e información de seguridad): es un sistema automatizado de
gestión de información y eventos de seguridad que recoge en una única plataforma toda la
información existente sobre amenazas potenciales, permitiendo no solo reaccionar ante los
ataques, sino adelantarse a ellos para remediarlos antes de que sucedan.
• PILAR (Análisis y Gestión de Riesgos): conjunto de herramientas EAR (Entorno de Análisis
de Riesgos) cuya función es el análisis y la gestión de riesgos de un sistema de
información siguiendo la metodología Magerit (Metodología de Análisis y Gestión de
Riesgos de los Sistemas de Información).
• REYES (Intercambio de Información de Ciberamenazas): agilizar la labor de análisis de
ciberincidentes y compartir información de ciberamenazas, puede realizarse cualquier
investigación de forma rápida y sencilla, accediendo a la información más valiosa sobre
ciberincidentes, con información contextualizada y correlada con las principales fuentes de
información.
• ROCIO (Auditoría de configuraciones de dispositivos de red): solución para la automatización
de la verificacion del nivel de seguridad y las tareas básicas realizadas por un auditor de
seguridad sobre equipos de comunicaciones: enrutadores, conmutadores y cortafuegos.
• VANESA (Grabaciones y emisiones de vídeo en streaming): solución para facilitar la tarea de
formación y sensibilización, a través de esta, se pretende reducir los desplazamientos, tanto
en los cursos de formación, como en las reuniones de seguimiento de cualquier proyecto.

CERES: iniciativa puesta en marcha por la Administración, consiste en establecer una entidad
pública de certificación que permita autentificar y garantizar la confidencialidad de las
comunicaciones entre ciudadanos, empresas u otras instituciones ya administración públicas a
través de las redes abiertas de comunicación.

189

TEMA 1 - REPRESENTACIÓN Y ELEMENTOS DE UN SISTEMA 
 
1.  SISTEMAS DE NUMERACION 
Los distintos sistemas de numeración que se
2 
 
 
2. ARQUITECTURA DE ORDENADORES 
2.1. ARQUITECTURA VON NEUMANN 
Un programa es una secuencia de pasos, en cada uno 
se
3 
 
 
Clasificación de la memoria desde el punto de vista de la volatilidad: 
• 
ROM (Read Only Memory): 
o PROM (Programabl
4 
 
 
Otra distinción: 
• 
Cache de instrucciones (almacena instrucciones). 
• 
Cache de datos (almacena datos). 
Se puede o
5 
 
 
 
2.7 CLASIFICACION DE MICROPROCESADORES 
• 
CISC (Complex Instructions Set Computer): procesa un conjunto de instrucc
6 
 
 
• 
E/S por Acceso Directo a Memoria (DMA): permite la transferencia de datos entre un 
periférico y la memoria sin la
7 
 
 
o Southbridge (I/O Controller Hub): circuito integrado que coordina los diferentes 
dispositivos de entrada y salida.
8 
 
 
TEMA 2 - PERIFÉRICOS 
 
1. PERIFERICOS 
Los periféricos son dispositivos E/S conectados al ordenador, pueden ser de en
9 
 
 
1.1. PERIFERICOS DE ENTRADA 
• 
Teclado: clasifican según la disposición de teclas, el mayoritario es QWERTY, pueden s
10 
 
 
• 
Tarjeta de video: conjunto de circuitos electrónicos que convierten los datos de salida a 
video, cronológicamente

También podría gustarte