Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INGENIERIA DE SISTEMAS
9.- NETWORKING
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 2006
Comisión de Reglamentos Técnicos y Comerciales-INDECOPI
Calle de La Prosa 138, San Borja (Lima 41) Apartado 145 Lima, Perú
(ISO/IEC 12207:1995 Amd 1:2002, Amd 2: 2005 INFORMATION TECHNOLOGY. Software life cycle
processes.)
2006-07-13
2ª Edición
página
ÍNDICE i
PREFACIO ii
INTRODUCCIÓN iv
2. REFERENCIAS NORMATIVAS 4
3. DEFINICIONES 6
4. APLICACIÓN 12
8. ANTECEDENTE 77
ANEXO A 78
ANEXO B 80
ANEXO C 87
ANEXO D 92
ANEXO E 93
ANEXO F 97
ANEXO G 144
ANEXO H 169
i
PREFACIO
A. RESEÑA HISTÓRICA
A.1 La presente Norma Técnica Peruana fue elaborada por el Comité Técnico
de Normalización de Ingeniería de Software y Sistemas de Información, mediante el
Sistema 1 ó de Adopción, durante los meses de enero a marzo del 2006, utilizando como
antecedente a la Norma ISO/IEC 12207:1995/Amd 1:2002/Amd 2:2005 Information
technology. Software life cycle processes.
ENTIDAD REPRESENTANTE
Pontificia Universidad Católica del Perú José Antonio Pow Sang Portillo
Karin Ana Melendez Llave
iii
INTRODUCCIÓN
Este marco de referencia cubre el ciclo de vida del software desde la conceptualización
de ideas hasta su retirada y consta de procesos para adquirir y suministrar productos y
servicios software. Cubre además el control y la mejora de estos procesos.
Los procesos que hay en esta Norma Técnica Peruana forman un conjunto completo. Una
organización, dependiendo de sus necesidades, puede seleccionar un sub-conjunto
apropiado para satisfacer dichas necesidades. Esta Norma Técnica Peruana está, así pues,
diseñada para ser adaptada a una organización, proyecto o aplicación concreta. Está
también diseñada para ser usada cuando el software es una entidad independiente, está
integrado o es parte integral del sistema total.
---oooOooo---
iv
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 1 de 189
1.1 Objeto
Esta Norma Técnica Peruana establece un marco de referencia común para los procesos del
ciclo de vida del software, con una terminología bien definida a la que puede hacer
referencia la industria del software. Contiene procesos, actividades y tareas para aplicar
durante la adquisición de un sistema que contiene software, un producto software puro o
un servicio software y durante el suministro, desarrollo, operación y mantenimiento de
productos software. El software incluye la parte software del firmware.
Esta NTP incluye también un proceso que se puede emplear para definir, controlar y mejorar
los procesos del ciclo de vida del software.
NOTA: Es necesario que los procesos utilizados durante el ciclo de vida del software sean compatibles
con los procesos usados durante el ciclo de vida del sistema.
Esta NTP está orientada para ser usada en situaciones en las que haya dos partes incluido el
caso en que estas dos partes pertenezcan a la misma organización. La situación puede ir desde
un acuerdo informal, hasta un contrato con responsabilidades legales. Esta NTP puede ser
usada por una sola parte como una autoimposición.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 2 de 189
Esta NTP está escrita para adquirientes de sistemas y productos y servicios software y para
proveedores, desarrolladores, operadores, responsables de mantenimiento, administradores,
responsables de aseguramiento de calidad y usuarios de productos software.
Esta NTP contiene un conjunto de procesos, actividades y tareas diseñadas para ser adaptadas
a los proyectos software. El proceso de adaptación consiste en la eliminación de los procesos,
actividades y tareas no aplicables.
NOTA: Los contratos pueden contemplar la adición de procesos, actividades o tareas únicas o
especiales.
1.4 Conformidad
Se define como conformidad de esta NTP la ejecución de todos los procesos, actividades y
tareas seleccionadas de esta NTP para el proyecto software, mediante el proceso de
adaptación (Anexo A). La ejecución de un proceso o una actividad es completa cuando todas
las tareas requeridas por el proceso o actividad se llevan a cabo de acuerdo con los criterios
preestablecidos y los requerimientos que han sido especificados como aplicables dentro del
contrato.
Cualquier organización (nacional, asociación industrial, compañía, etc.) que imponga esta
NTP como condición para tener relaciones comerciales es responsable de especificar y hacer
público el conjunto mínimo de procesos, actividades y tareas que constituyen la conformidad
de esta NTP por parte del proveedor.
El Anexo F provee una forma alternativa de conformidad útil en situaciones donde los
procesos implementados son concebidos para alcanzar las mismas metas de aquellos
descritos en esta NTP, pero que podrían no implementar las especificaciones detalladas
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 3 de 189
prescritas en el cuerpo de esta NTP. Para dar conformidad, será demostrado que, para
cualquier proceso del conjunto de procesos declarados por la organización, la
implementación de los resultados de los procesos en la realización del propósito y
resultados correspondientes proporcionados en el anexo F. Cualquier organización definirá
el conjunto de procesos que le son aplicables, considerando el conjunto propuesto de
procesos descritos en el anexo F y sus propios parámetros de entorno. La aplicación del
estándar permite la creación de resultados adicionales.
1.5 Limitaciones
Esta NTP describe la arquitectura de los procesos del ciclo de vida del software, pero no
especifica los detalles de cómo implementar o llevar a cabo las actividades y tareas
incluidas en los procesos.
Esta NTP no establece un modelo de ciclo de vida concreto para el desarrollo del software. En
esta NTP las partes son las responsables de seleccionar un modelo de ciclo de vida para el
proyecto software y de elaborar una correspondencia entre los procesos, actividades y tareas
de esta NTP y los de dicho modelo. Las partes son también responsables de seleccionar y
aplicar los métodos de desarrollo de software y de llevar a cabo las actividades y tareas
adecuadas para el proyecto software.
Esta NTP no pretende entrar en conflicto con las políticas, normas o procedimientos
actualmente en vigor en ninguna organización. Sin embargo, es necesario resolver
cualquier conflicto que surja, documentando por escrito en forma de excepción cualquier
incumplimiento de esta NTP autorizado por las partes.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 4 de 189
A lo largo de esta NTP, “deberá” se usa para expresar una disposición obligatoria entre dos o
más partes, otros verbos en futuro para expresar una declaración de propósitos o intenciones
por una de las partes. “Debería” o “conviene que” se emplea para expresar una
recomendación habiendo otras posibilidades y “puede” o “podría” para expresar algo
permisible dentro de los límites de esta NTP.
En esta NTP, hay listas de tareas; no se pretende que sean completas, sino que se dan como
ejemplos, a menos que las listas sean precedidas por la palabra “deberá”.
2. REFERENCIAS NORMATIVAS
Las siguientes normas contienen disposiciones que al ser citadas en este texto, constituyen
requisitos de esta NTP. Las ediciones indicadas estaban en vigencia en el momento de esta
publicación. Como toda norma está sujeta a revisión, se recomienda a aquellos que realicen
acuerdos en base a ellas, que analicen la conveniencia de usar las ediciones recientes de las
normas citadas seguidamente. El Organismo Peruano de Normalización posee, en todo
momento, la información de las Normas Técnicas Peruanas en vigencia.
3. DEFINICIONES
Para los propósitos de esta NTP se aplican las definiciones dadas en la NTP-ISO 9000,
ISO/IEC 2382-1 y la ISO/IEC 2382-20 y las siguientes:
NOTA: Cuando aplique, se puede interpretar “producto” como una parte de un sistema.
NOTA: Las auditorías internas, denominadas en algunos casos como auditorías de primera parte, se
realizan por, o en nombre, de la propia organización para fines internos y puede constituir la base
para la auto-declaración de conformidad de una organización.
Las auditorías externas incluyen lo que se denomina generalmente “auditorías de segunda o tercera
parte”.
Las auditorías de segunda parte se llevan a cabo por partes que tienen un interés en la organización,
tal como los clientes, o por otras personas en su nombre.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 7 de 189
Las auditorías de tercera parte se llevan a cabo por organizaciones independientes externas. Tales
organizaciones proporcionan la certificación o el registro de conformidad con requisitos como los de
las Normas NTP-ISO 9001 e ISO 14001.
Cuando dos o más organizaciones auditoras cooperan para auditar a un único auditado, se denomina
“auditoría conjunta”.
NOTAS:
3.7 cobertura de las pruebas: Grado en que los casos de prueba prueban los
requerimientos del sistema o producto software.
3.16 modelo del ciclo de vida: Marco de referencia que contiene los procesos,
actividades y tareas involucradas en el desarrollo, operación y mantenimiento de un
producto software y que abarca toda la vida del sistema desde la definición de sus
requerimientos hasta el final de su uso.
NOTAS:
3.21 propósito del proceso: El objetivo de alto nivel de realizar el proceso y los
probables resultados de la implementación eficaz del proceso. La implementación del
proceso debe proveer beneficios tangibles a los involucrados.
NOTAS:
3.27 resultado del proceso (salidas): Un resultado observable del logro exitoso
del propósito del proceso.
NOTAS:
- Producción de un artefacto;
- Un cambio significativo en el estado;
- Conocimiento de las restricciones especificadas. Por ejemplo, requerimientos, metas, etc.
2. Una lis ta de los resultados de los procesos principales forma parte de la descripción de cada
proceso en el modelo referencial.
3.28 retirada: Cese del soporte activo por parte de la organización de operación
y mantenimiento, sustitución parcial o total por un nuevo sistema, o instalación de un
sistema mejorado.
NOTA: El usuario puede llevar a cabo otros papeles, tales como el de adquiriente, desarrollador, o
responsable de mantenimiento.
NOTAS:
NOTAS:
NOTA: Modificar una versión de un producto software dando como resultado una nueva versión,
requiere una acción de gestión de configuración.
4. APLICACIÓN
Este capítulo presenta los procesos del ciclo de vida que se pueden emplear para adquirir,
suministrar, desarrollar, operar y mantener productos software. El objetivo es proporcionar
un mapa para que los usuarios de esta NTP puedan orientarse en ella y aplicarla
adecuadamente.
4.1 Organización
Esta NTP agrupa las actividades que se pueden llevar a cabo durante el ciclo de vida del
software en cinco procesos principales, ocho procesos de apoyo y cuatro procesos
organizativos. Cada proceso del ciclo de vida está divido en un conjunto de actividades;
cada actividad se sub-divide a su vez en un conjunto de tareas. Los apartados numerados
a.b identifican procesos, los numerados a.b.c actividades y los numerados a.b.c.d tareas. A
continuación se hace una introducción de cada proceso, representado en la Figura 1.
Los procesos principales del ciclo de vida (capítulo 5) son cinco, que dan servicio a las
partes principales durante el ciclo de vida del software. Una parte principal es aquella que
inicia o lleva a cabo el desarrollo, operación, o mantenimiento de los productos software.
Estas partes principales son el adquiriente, el proveedor, el desarrollador, el operador y el
responsable de mantenimiento de productos software. Los procesos principales son:
6.4 Verificación
5.4 Operación
6.5 Validación
5.3
Desarrollo
6.6 Revisión Conjunta
5.5
Mantenimiento 6.7 Auditoría
7.4 Recursos
7.3 Mejora Humanos
Figura 1 - de
FIGURA 1 – Estructura Estructura de la norma
la norma técnica peruana
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 14 de 189
Hay ocho procesos de apoyo del ciclo de vida (capítulo 6). Un proceso de apoyo es el que
apoya a otro proceso como parte esencial del mismo, con un propósito bien definido y
contribuye al éxito y calidad del proyecto software. Un proceso de apoyo se emplea y
ejecuta por otro proceso, según sus necesidades.
4.1.1.3 Procesos organizativos del ciclo de vida: Los procesos organizativos del
ciclo de vida (capítulo 7) son cuatro. Se emplean por una organización para establecer e
implementar una infraestructura constituida por procesos y personal asociado al ciclo de
vida y para mejorar continuamente esta infraestructura. Se usan habitualmente fuera del
ámbito de proyectos y contratos específicos; sin embargo, la experiencia adquirida
mediante dichos proyectos y contratos contribuye a la mejora de la organización. Los
procesos organizativos son:
4.1.3 Relación entre los procesos y las organizaciones. Esta NTP contiene
varios procesos que se aplican a lo largo del ciclo de vida del software por varias
organizaciones dependiendo de sus necesidades y metas. Para facilitar la comprensión, el
anexo C presenta las relaciones entre los procesos del ciclo de vida y las partes
relacionadas.
NOTAS:
1. El término “modelo referencial del proceso” es utilizado con el mismo significado que la
revisión prevista de la ISO/IEC 15504-2.
2. El MRP está concebido para desarrollar modelo(s) de evaluación para evaluar procesos
usando la ISO/IEC 15504-2.
3. Los procesos descritos en el anexo F contienen las extensiones, elaboraciones y algunos
nuevos procesos donde no hay el correspondiente desarrollo de actividades y tareas en la ISO/IEC
12207. Esto será rectificado durante la revisión completa de la ISO/IEC 12207. Mientras tanto, los
nuevos apartados 6.9, 7.1.6 y 7.4 a la 7.7 proveen de actividades y tareas para los "nuevos" procesos
del anexo F.
Este capítulo define los siguientes procesos principales del ciclo de vida:
1. Proceso de adquisición.
2. Proceso de suministro.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 17 de 189
3. Proceso de desarrollo.
4. Proceso de operación.
5. Proceso de mantenimiento.
El proceso de adquisición contiene las actividades y las tareas del adquiriente. El proceso
comienza con la identificación de la necesidad de adquirir un sistema, un producto
software o un servicio software. El proceso continúa con la preparación y publicación de
una solicitud de propuestas, la selección de un proveedor y la gestión del proceso de
adquisición hasta la aceptación del sistema, del producto software o del servicio software.
a) Inicio.
e) Aceptación y finalización.
5.1.1.5 Conviene que se use el proceso del desarrollo (5.3) para llevar a cabo las
tareas de los apartados 5.1.1.2 y 5.1.1.4. El adquiriente puede usar los sub-procesos de
obtención de requerimientos descritos en el Anexo F para establecer los requerimientos del
cliente.
d) Una combinación de a, b y c.
e) Términos y condiciones.
5.1.3.3 Con el fin de adaptar esta NTP al proyecto, el adquiriente puede involucrar
a otras partes, incluso proveedores potenciales, antes de otorgar el contrato. En cualquier
caso el adquiriente tendrá la última palabra en las adaptaciones. El adquiriente incluirá o
hará referencia en el contrato a la norma adaptada.
5.1.3.5 Una vez que el contrato está en curso, el adquiriente controlará las
modificaciones del contrato por la vía de la negociación con el proveedor, como parte del
mecanismo de control de cambios. Las modificaciones al contrato serán investigadas con
relación al posible impacto en los planes, costo, beneficios, calidad y plazos del proyecto.
5.1.4 Seguimiento del proveedor: Esta actividad consta de las siguientes tareas:
NOTA: El adquiriente puede instalar el producto software o llevar a cabo el servicio software de
acuerdo con las instrucciones definidas por el proveedor.
a) Inicio.
b) Preparación de la respuesta.
c) Contrato.
d) Planificación.
e) Ejecución y control.
f) Revisión y evaluación.
g) Entrega y finalización.
Conviene que el proveedor defina y prepare una oferta como respuesta a la solicitud de
propuestas, incluyendo su adaptación a las recomendaciones de esta NTP.
5.2.4.4 Una vez que se hayan establecido los requerimientos para los planes, el
proveedor deberá considerar las opciones para desarrollar el producto software o
proporcionar el servicio software, considerando el análisis de los riesgos asociados con
cada opción. Las posibles opciones son:
d) Una combinación de a, b y c.
i) Involucramiento del adquiriente; esto puede hacerse por medios tales como
revisiones conjuntas (véase 6.6), auditorías (véase 6.7), reuniones informales,
informes, modificaciones y cambios; implementación, aprobación, aceptación y
acceso a instalaciones.
k) Gestión de riesgo; esto es, gestión de las áreas del proyecto que conllevan
riesgos potenciales relacionados con aspectos técnicos, costos y plazos.
l) Política de seguridad de acceso; esto es, reglas para lo que necesita saber y
la información que puede acceder cada nivel de la organización del proyecto.
5.2.5.6 El proveedor deberá relacionarse con otras partes tal como se especifique en
el contrato y en los planes del proyecto.
5.2.6.1 Conviene que el proveedor coordine las actividades de revisión del contrato,
de interfaces y de comunicación con la organización adquiriente.
5.2.6.2 El proveedor deberá llevar a cabo o dar soporte a las reuniones informales,
las revisiones de aceptación, las pruebas de aceptación, las revisiones conjuntas y las
auditorías con el adquiriente, tal como se especifique en el contrato y en los planes del
proyecto. Las revisiones conjuntas se deberán llevar a cabo de acuerdo con el apartado 6.6
y las auditorías de acuerdo con el apartado 6.7.
5.3.1 Implementación del proceso: Esta actividad consta de las siguientes tareas:
NOTA: Estas actividades y tareas pueden solaparse o interaccionar y pueden ser llevadas a cabo
iterativamente o recursivamente.
e) Establecer una línea base para cada elemento de la configuración con los
elementos apropiados, como los determinados por el adquiriente y el proveedor.
5.3.1.4 El desarrollador deberá preparar planes para realizar las actividades del
proceso de desarrollo. Los planes deberían incluir normas específicas, métodos,
herramientas, acciones y responsabilidades asociadas con el desarrollo y calificación de
todos los requerimientos, incluyendo los de seguridad física y de acceso. Si fuese
necesario, se pueden preparar planes separados. Se deberán documentar y ejecutar estos
planes.
5.3.2 Análisis de los requerimientos del sistema: Esta actividad consta de las
siguientes tareas, que el desarrollador deberá llevar a cabo o proporcionar apoyo, según
requiera el contrato:
5.3.2.1 Se deberá analizar el uso específico previsto del sistema a ser desarrollado
para especificar los requerimientos del sistema. La especificación de los requerimientos del
sistema deberá describir funciones y capacidades del sistema; requerimientos de negocio,
organizativos y de usuario; requerimientos de seguridad física y de acceso; requerimientos
de ingeniería de factores humanos (ergonomía), interfaces y requerimientos de operación y
mantenimiento; limitaciones de diseño y requerimientos de calificación. Se deberá
documentar la especificación de los requerimientos del sistema.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 31 de 189
5.3.2.2 Se deberán evaluar los requerimientos del sistema teniendo en cuenta los
criterios enumerados a continuación. Se deberán documentar los resultados de las
evaluaciones.
5.3.3.2 Se deberá evaluar la arquitectura del sistema y los requerimientos para los
elementos teniendo en cuenta los criterios enumerados a continuación. Se deberán
documentar los resultados de las evaluaciones.
c) Requerimientos de calificación.
i) Documentación de usuario.
c) Consistencia interna.
5.3.6 Diseño detallado del software: Para cada elemento software (o para cada
elemento de configuración software, si se ha identificado), esta actividad consta de las
siguientes tareas:
asignados desde los componentes software hacia las unidades software. Se deberá
documentar el diseño detallado.
5.3.7 Codificación y pruebas del software: Para cada elemento software (o para
cada elemento de configuración software, si se ha identificado), esta actividad consta de las
siguientes tareas:
5.3.8 Integración del software: Para cada elemento software (o para cada
elemento de configuración de software, si se ha identificado), esta actividad consta de las
siguientes tareas:
c) Consistencia interna.
5.3.9 Pruebas de calificación del software: Para cada elemento software (o para
cada elemento de configuración software, si se ha identificado), esta actividad consta de las
siguientes tareas:
NOTA: Las pruebas de calificación del software se pueden usar en el proceso de verificación (6.4)
o en el proceso de validación (6.5).
5.3.10 Integración del sistema: Esta actividad consta de las siguientes tareas, que
el desarrollador deberá llevar a cabo o proporcionar apoyo, tal como requiere el contrato.
5.3.11 Pruebas de calificación del sistema. Esta actividad consta de las siguientes
tareas que el desarrollador deberá llevar a cabo o proporcionar apoyo, tal como requiere el
contrato.
5.3.11.1 Las pruebas de calificación del sistema se deberá llevar a cabo de acuerdo
con los requerimientos de calificación especificados para el sistema. Se deberá asegurar
que se prueba la conformidad de la implementación de cada requerimiento del sistema y
que el sistema está listo para su entrega. Se deberán documentar los resultados de las
pruebas de calificación.
NOTA: Este apartado no es aplicable a aquellos elementos de configuración que hubieran sido
auditados previamente.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 41 de 189
5.3.11.4 Tras la terminación con éxito de las auditorías, si se han llevado a cabo, el
desarrollador deberá:
NOTA: Se pueden usar las pruebas de calificación del sistema en el proceso de verificación(6.4) o
en el proceso de validación (6.5).
5.3.12 Instalación del software: Esta actividad consta de las siguientes tareas:
El desarrollador deberá ayudar al adquiriente con las actividades de puesta en marcha tal
como se especifique en el contrato. En los casos en que el software instalado reemplace a
un sistema existente, el desarrollador deberá proporcionar apoyo a cualquier actividad
realizada en paralelo que sea requerida por el contrato. Se deberá documentar el plan de
instalación.
5.3.13 Apoyo a la aceptación del software: Esta actividad consta de las siguientes
tareas:
El proceso de operación contiene las actividades y tareas del operador. El proceso cubre la
operación del producto software y el apoyo a la operación de los usuarios. Ya que la
operación del producto software está integrada a la operación del sistema, las actividades y
tareas de este proceso hacen referencia al sistema.
b) Pruebas de operación.
d) Soporte al usuario.
5.4.1 Implementación del proceso: Esta actividad consta de las siguientes tareas:
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 43 de 189
5.4.2.1 Para cada release del producto software, el operador deberá llevar a cabo
pruebas de operación y tras satisfacerse los criterios especificados, liberar el software para
uso en operación.
5.4.2.2 El operador deberá asegurar que el código software y las bases de datos se
inicializan, ejecutan y terminan tal como se describe en el plan.
5.4.4.2 El operador deberá pasar las peticiones del usuario, cuando sea necesario, al
proceso de mantenimiento (apartado 5.5) para su solución. Estas peticiones se deberán
tramitar y el originador de la petición deberá ser informado de las acciones que se
planifiquen y se tomen. Se deberá hacer un seguimiento de todas las decisiones hasta su
conclusión.
Las actividades proporcionadas por esta área son específicas del proceso de
mantenimiento; sin embargo, el proceso puede utilizar otros procesos de esta NTP. Si se
usa el proceso de desarrollo (5.3), el término desarrollador se deberá interpretar en él como
el responsable de mantenimiento.
e) Migración.
5.5.1 lmplementación del proceso: Esta actividad consta de las siguientes tareas:
d) Ejecución de la migración.
e) Verificación de la migración.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 48 de 189
5.5.5.4 Para hacer más fluida la transición al nuevo entorno, se puede llevar a cabo
la operación en paralelo del antiguo y del nuevo entorno. Durante este periodo se deberá
proporcionar la formación necesaria tal como se especifica en el contrato.
5.5.5.6 Se deberá llevar a cabo una revisión post-operación para evaluar el impacto
del cambio al nuevo entorno. Los resultados de la revisión se deberán enviar a las
autoridades apropiadas para su conocimiento, guía y actuación.
5.5.5.7 Los datos usados por o asociados al antiguo entorno deberán ser accesibles
de acuerdo con los requerimientos del contrato sobre protección de datos y auditorías
aplicables.
5.5.6 Retirada del software: Esta actividad consta de las siguientes tareas:
5.5.6.1 Se deberá preparar y documentar un plan de retirada para el cese del soporte
activo por parte de las organizaciones de operación y mantenimiento. Las actividades de
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 49 de 189
planificación deberán incluir a los usuarios. El plan deberá considerar los elementos
enumerados a continuación. El plan deberá ser ejecutado.
5.5.6.3 Para facilitar la transición al nuevo sistema, conviene que se lleve a cabo la
operación en paralelo del sistema a retirar y del nuevo producto software. Durante este
período, se deberá proporcionar formación a los usuarios, tal como se especifica en el
contrato.
5.5.6.4 Cuando llegue la fecha prevista de retirada, se deberá notificar a todos los
afectados. Toda la documentación de desarrollo asociada, registros y código se deberá
archivar en el momento oportuno.
5.5.6.5 Los datos usados o asociados al producto software retirado deberán ser
accesibles de acuerdo con los requerimientos del contrato sobre protección de datos y
auditorías aplicables.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 50 de 189
Este capítulo define los siguientes procesos de apoyo del ciclo de vida:
a) Proceso de documentación.
d) Proceso de verificación.
e) Proceso de validación.
g) Proceso de auditoría.
documentos que necesitan todos los involucrados tales como gerentes, ingenieros y
usuarios del sistema o producto software.
b) Diseño y desarrollo.
c) Producción.
d) Mantenimiento.
Se deberá preparar, documentar e implementar un plan que identifique los documentos que
se van a producir durante el ciclo de vida del producto software. Para cada documento
identificado, se deberá considerar lo siguiente:
a) Título o nombre.
b) Propósito.
6.1.2.1 Cada documento identificado se deberá diseñar de acuerdo con las normas
de documentación aplicables para el formato, descripción del contenido, numeración de
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 52 de 189
6.1.2.2 Se deberá confirmar la fuente y adecuación de los datos de entrada para los
documentos. Se pueden usar herramientas automáticas de documentación.
6.1.4.1 Se deberán llevar a cabo las tareas que se requieran cuando se realice la
modificación de la documentación (véase apartado 5.5). Para aquellos documentos que
están bajo la gestión de la configuración, las modificaciones se deberán administrar de
acuerdo con el proceso de gestión de la configuración (6.2).
NOTA: Cuando este proceso se emplea sobre otros productos o entidades de software, el término
"elemento software" se deberá interpretar de acuerdo con ello.
b) Identificación de la configuración.
c) Control de la configuración.
e) Evaluación de la configuración.
NOTA: El plan puede ser parte del plan de gestión de la configuración del sistema.
para cada elemento software y sus versiones: la documentación que establece la línea de
referencia, las referencias a las versiones y otros detalles de identificación.
6.3.1 Implementación del proceso: Esta actividad consta de las siguientes tareas:
6.3.1.5 Se deberá poner a disposición del adquiriente los registros de las actividades
y tareas de aseguramiento de la calidad, tal como se especifique en el contrato.
6.3.2.1 Se deberá asegurar que todos los planes requeridos por el contrato se
documenten, cumplan con el contrato, son mutuamente consistentes y se ejecuten tal como
se requiere.
6.3.3 Aseguramiento del proceso: Esta actividad consta de las siguientes tareas:
6.3.3.1 Se deberá asegurar que aquellos procesos del ciclo de vida del software
(suministro, desarrollo, operación, mantenimiento y procesos de apoyo incluyendo el
aseguramiento de la calidad) empleados para el proyecto, cumplen con el contrato y se
adhieren a los planes.
6.3.3.2 Se deberá asegurar que las prácticas internas de ingeniería software, entorno
de desarrollo, entorno de pruebas y librerías cumplen con el contrato.
6.3.3.5 Se deberá asegurar que las mediciones del producto software y del proceso
software están de acuerdo con las normas y procedimientos establecidos.
b) Verificación.
6.4.1 Implementación del proceso: Esta actividad consta de las siguientes tareas:
NOTA: Esta actividad se puede usar en las revisiones del contrato (6.3.1.3 b).
c) Las normas, procedimientos y entornos para los procesos del proyecto son
adecuados.
variable. En el caso en que el proceso se ejecute por una organización independiente del
proveedor, desarrollador, operador o responsable de mantenimiento, se llama proceso de
validación independiente.
b) Validación.
6.5.1 Implementación del proceso: Esta actividad consta de las siguientes tareas:
6.5.2.3 Llevar a cabo las pruebas de los apartados 6.5.2.1 y 6.5.2.2, incluyendo:
c) Pruebas de usuarios representativos que pueden llevar a cabo con éxito sus
tareas previstas usando el producto software.
El proceso de revisión conjunta es un proceso para evaluar el estado y los productos de una
actvidad de un proyecto, según sea adecuado. Las revisiones conjuntas están a nivel tanto
de gestión del proyecto como técnico y se mantienen a lo largo de la vida del contrato. Este
proceso puede ser empleada por cualesquiera de las dos partes, donde una de ellas (la
revisora) revisa a la otra parte (la revisada).
c) Revisiones técnicas.
6.6.1 Implementación del proceso: Esta actividad consta de las siguientes tareas:
6.6.1.2 Las partes deberán acordar todos los recursos necesarios para llevar a cabo
las revisiones. Estos recursos incluyen personal, ubicación, instalaciones, hardware,
software y herramientas.
6.6.1.3 Las partes deberán acordar para cada revisión los siguientes elementos:
agenda de la reunión, productos software (y resultados de una actividad) y problemas a
revisar; alcance y procedimientos y criterios de entrada y salida para la revisión.
6.6.1.6 Las partes deberán ponerse de acuerdo sobre los resultados de la revisión y
en la responsabilidad sobre cualquier punto de acción y sus criterios de finalización.
Se deberá evaluar el estado del proyecto con relación a los planes, plazos, normas y guías
del proyecto aplicables.
El resultado de la revisión deberá discutirse entre las dos partes y deberá conseguir lo
siguiente:
Se deberán mantener revisiones técnicas para evaluar los productos o servicios software
bajo consideración y proporcionar evidencia de que:
a) Son completos.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 67 de 189
b) Auditoría.
6.7.1 Implementación del proceso: Esta actividad consta de las siguientes tareas:
6.7.1.3 Las partes deberán acordar todos los recursos necesarios para llevar a cabo
las auditorías. Estos recursos incluyen personal, ubicación, instalaciones, hardware,
software y herramientas.
6.7.1.4 Las partes deberán acordar para cada auditoría los siguientes elementos:
agenda; productos software (y resultados de una actividad) a revisar; alcance y
procedimientos y criterios de entrada y salida para la auditoría.
6.7.1.7 Las partes deberán ponerse de acuerdo sobre los resultados de la auditoría y
en la responsabilidad sobre cualquier punto de acción y sus criterios de finalización.
a) Los productos software tal como están codificados (tales como un elemento
software) reflejan la documentación de diseño.
b) Solución de problemas.
d) Se deberán evaluar las soluciones y las disposiciones para evaluar que los
problemas han sido resueltos, las tendencias adversas han sido invertidas y los
cambios han sido implementados correctamente en los productos y actividades
software apropiados; y determinar si se han introducido problemas adicionales.
Este capítulo define los siguientes procesos organizativos del ciclo de vida:
1. Proceso de gestión.
2. Proceso de infraestructura.
3. Proceso de mejora.
El proceso de gestión contiene las actividades genéricas y tareas que pueden ser empleadas
por cualquier parte que tenga que gestionar sus respectivos procesos. El gerente es
responsable de la gestión del producto, gestión del proyecto y gestión de las tareas de los
procesos aplicables, tales como el de adquisición (5.1), suministro (5.2), desarrollo (5.3),
operación (5.4), mantenimiento (5.5) o soporte.
b) Planificación.
c) Ejecución y control.
d) Revisión y evaluación.
e) Finalización.
7.1.1 Inicio y definición del alcance: Esta actividad consta de las siguientes
tareas:
7.1.1.2 Una vez que se han establecido los requerimientos, el gerente deberá
establecer la viabilidad del proceso comprobando que los recursos (personal, materiales,
tecnología y entorno) requeridos para ejecutar y gestionar el proceso están disponibles, son
adecuados y apropiados, y que los plazos para su finalización son alcanzables.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 72 de 189
7.1.1.3 Tal como sea necesario y por acuerdo de todas las partes interesadas, los
requerimientos del proceso pueden ser modificados en este momento para alcanzar los
criterios de finalización.
7.1.2.1 El gerente deberá preparar los planes para la ejecución del proceso. Los
planes asociados con la ejecución del proceso deberán contener descripciones de las
actividades y tareas asociadas y la identificación de los productos software que serán
proporcionados. Estos planes deberán incluir, sin estar limitados a ello, lo siguiente:
d) Asignación de tareas.
e) Asignación de responsabilidades.
7.1.3.1 El gerente deberá iniciar la implementación del plan para satisfacer los
objetivos y criterios establecidos, ejerciendo control sobre el proceso.
7.1.4.1 El gerente deberá asegurar que los productos software y los planes se
evalúan con relación a la satisfacción de los requerimientos.
7.1.5.2 El gerente deberá comprobar que los resultados y registros de los productos
software, actividades y tareas empleadas se han completado. Se deberán archivar estos
resultados y registros en un entorno adecuado, tal como se especifica en el contrato.
b) Establecimiento de la infraestructura.
c) Mantenimiento de la infraestructura.
7.2.1 Implementación del proceso: Esta actividad consta de las siguientes tareas:
7.3.2 Evaluación del proceso: Esta actividad consta de las siguientes tareas:
7.3.3 Mejora del proceso de mejora: Esta actividad consta de las siguientes
tareas:
8. ANTECEDENTE
ANEXO A
(INFORMATIVO)
PROCESO DE ADAPTACIÓN
El proceso de adaptación es un proceso para llevar a cabo las adaptaciones básicas de esta
NTP a un proyecto software. Este Anexo proporciona requerimientos para adaptar esta
NTP.
b) Solicitud de entradas.
A.1.1 Se deberán identificar las características del entorno del proyecto que van a
influir en la adaptación. Algunas de estas características pueden ser: modelo del ciclo de
vida; actividad actual del ciclo de vida del sistema; requerimientos del sistema y
requerimientos software; políticas, procedimientos y estrategias de la organización:
tamaño, aspectos críticos y tipo del sistema, producto o servicio software; número de
personal y partes involucradas.
Se deberán solicitar entradas de las organizaciones que se verán afectadas por las
decisiones de la adaptación. Se puede involucrar a los usuarios, personal de soporte,
responsables de la contratación y potenciales ofertantes.
A.3.3 En esta NTP, los requerimientos se indican mediante tareas con ‘deberá’ u
otros verbos en futuro. Conviene que estas tareas se consideren cuidadosamente por si se
deben mantener o eliminar en un proyecto dado o sector de negocios. Factores a tener en
consideración sin limitarse a ellos son: riesgo, costo, plazos, rendimiento, tamaño, aspectos
críticos e interfaz humana.
A.4.1 Se deberán documentar todas las decisiones de adaptación, junto con las
razones de las decisiones.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 80 de 189
ANEXO B
(INFORMATIVO)
No hay dos proyectos iguales. Las variaciones en los procedimientos y políticas de las
organizaciones, en los métodos y estrategias de adquisición, en el tamaño y complejidad de
los proyectos, en los requerimientos del sistema y métodos de desarrollo, entre otras cosas,
influyen en cómo un sistema se adquiere, desarrolla, opera o mantiene. Esta NTP se ha
escrito para que un proyecto genérico se adapte a tales variaciones tanto como sea posible.
Así pues, en interés de la reducción de costos y mejora de la calidad, conviene que esta
NTP sea adaptada a proyectos concretos. Se deberían incluir en la adaptación todas las
partes involucradas en el proyecto.
Este apartado proporciona guías para la adaptación de esta NTP y no es exhaustivo. Este
apartado se puede usar para llevar a cabo una adaptación a primer nivel de esta NTP para
un área de negocio dada; por ejemplo aviación, nuclear, médica, militar, país u
organización. La adaptación a segundo nivel se debería llevar a cabo para un proyecto o
contrato específico.
El proceso de desarrollo (5.3) necesita una especial atención ya que este proceso se puede
usar por diferentes partes con diferentes objetivos. Para una adaptación a primer nivel de
este proceso se recomienda lo siguiente:
b) Para un producto software 100% las actividades del sistema (5.3.2, 5.3.3,
5.3.10 y 5.3.11) puede que no se requieran, aunque se deberían considerar.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 81 de 189
Las personas que están involucradas en alguna de las actividades del ciclo de vida de un
proyecto o de un proceso, llevan a cabo evaluaciones ya sea sobre sus productos o
actividades software o sobre los de otros. Esta NTP agrupa estas evaluaciones en cinco
categorías, que se enumeran más adelante. Las primeras cuatro categorías de evaluación
son al nivel de proyecto; la última es a nivel de organización. Conviene que se seleccionen
y adapten estas categorías en proporción al alcance, magnitud, complejidad y aspectos
críticos del proyecto o de la organización. Los informes sobre problemas, no
conformidades y mejoras provenientes de las evaluaciones alimentan el proceso de
solución de problemas (6.8).
e) Mejora de Proceso (7.3): Se lleva a cabo por una organización para una
gestión eficiente y auto mejora de sus procesos. Se lleva a cabo independientemente
de los requerimientos del proyecto o contrato.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 82 de 189
Los párrafos de este apartado esbozan diversas consideraciones sobre adaptación y aplicación
para características clave del proyecto. Ni las consideraciones ni las características son
exhaustivas y representan sólo el pensamiento actual. La figura B.1 proporciona un ejemplo
de aplicación de esta NTP.
Concepto de soporte: Determina qué conceptos de soporte son relevantes y aplicables, tales
como la duración esperada del soporte, grado de cambio y si será soportado por el
adquiriente o por el proveedor. Si el producto software va a tener soporte durante un largo
tiempo, o si se espera que cambie significativamente, se deberían considerar todos los
requerimientos de documentación. Es recomendable tener automatizada la documentación.
Modelos de ciclo de vida: Determina qué modelo o modelos de ciclo de vida son
relevantes y aplicables al proyecto, tales como en cascada, evolutivo, incremental, mejoras
sucesivas planeadas del producto, o espiral. Todos estos modelos prescriben ciertos
procesos y actividades que se pueden llevar a cabo secuencialmente, repetidamente y
combinadamente; en estos modelos, las actividades del ciclo de vida de esta NTP deberían
estar correlacionadas con el modelo o modelos seleccionados. Para el evolutivo,
incremental o mejoras sucesivas, las salidas de una actividad del proyecto alimentan la
siguiente. En estos casos, la documentación se debería completar al final de cada actividad
o tarea.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 83 de 189
MODELOS Y MÉTODOS
OTRAS ENTRADAS
SEGURIDAD DE DE LA COMPAÑIA
ACCESO
ENTORNO
SEGURIDAD
FÍSICA
ADAPTACIÓN DE LA
APLICACIÓN, PRUEBAS
DE EVALUACIÓN, ETC
CREDENCIALES
MATRIZ DE RESPONSABILIDAD
(ISO 9001, ...)
QUE
CAPACIDAD DE LA ADQ SU DES OP MNT
ORGANIZACIÓN QUIÉN
ADQ
MANUAL DE LA SU
CALIDAD
DES
OP
PROCEDIMIENTOS CONTRATO
MNT
PLAN DE LA
CALIDAD
PLAN DEL
PROYECTO
Actividad del ciclo de vida del sistema: Determina qué actividades del ciclo de vida del
sistema actual son relevantes y aplicables tales como el inicio del proyecto por parte del
adquiriente, el desarrollo por parte del proveedor y el mantenimiento. Algunos escenarios:
El adquiriente inicia o define los requerimientos del sistema. Se pueden llevar a cabo
estudios de viabilidad y el desarrollo prototipo para los requerimientos y el diseño. Se
puede desarrollar código software para los prototipos y este código puede o no ser usado
posteriormente en el desarrollo de los productos software a desarrollar bajo contrato. Se
pueden desarrollar los requerimientos del sistema y los requerimientos preliminares. En
estos casos se puede usar el proceso de desarrollo (5.3) más como guía que como
requerimiento; puede que no se necesite el rigor de una calificación ni de una evaluación;
puede que no se necesiten revisiones conjuntas ni auditorías.
Determina qué tipos de productos software están involucrados ya que diferentes tipos de
productos software pueden requerir diferentes decisiones de adaptación. Algunos ejemplos:
adquiriente decide adquirir alguna parte de tal producto software para futura
operación y mantenimiento, entonces este producto software se debería tratar como
en b o c.
Otras consideraciones.
Cuanto más dependiente sea el sistema en que el producto software opere correctamente y
esté terminado a tiempo, más control de gestión debería imponerse a través de pruebas,
revisiones, auditorías, verificación, validación, etc. Por otra parte, demasiado control de
gestión sobre productos software pequeños o no críticos, puede no ser efectiva en costo.
El desarrollo del producto software puede tener riesgos técnicos. Si la tecnología software
usada no es madura, el producto software que se desarrolla no tiene precedentes o es
complejo, o contiene requerimientos de seguridad física o de acceso u otros requerimientos
críticos, entonces pueden ser necesarias unas especificaciones, diseño, pruebas y
evaluaciones rigurosas. Puede ser importante una verificación y validación independiente.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 87 de 189
ANEXO C
(INFORMATIVO)
Para facilitar la comprensión, este anexo, presenta una discusión sobre procesos,
organizaciones y sus relaciones bajo puntos de vista clave.
Esta NTP contiene los procesos que son aplicables a lo largo del ciclo de vida del software.
Sin embargo estos procesos se pueden usar de diferentes maneras por diferentes
organizaciones y partes con distintas visiones y objetivos. Este apartado presenta los
procesos y sus relaciones bajo puntos de vista clave, véase el apartado 4.1.1 para una
sinopsis de los procesos.
La Figura C.1 representa los procesos del ciclo de vida y sus relaciones bajo distintos
puntos de vista del uso de esta NTP. Los puntos de vista básicos mostrados son: contrato,
gestión, operación, ingeniería y apoyo. Bajo el punto de vista del contrato, las partes
adquiriente y proveedor negocian y se someten a un contrato empleando el proceso de
adquisición y el proceso de suministro, respectivamente. Bajo el punto de vista de gestión,
el adquiriente, proveedor, desarrollador, operador, responsable de mantenimiento u otras
partes gestionan sus respectivos procesos. Bajo el punto de vista de operación, el operador
proporciona el servicio de operación del software para sus usuarios. Bajo el punto de vista
de ingeniería, el desarrollador o responsable de mantenimiento llevan a cabo sus
respectivas tareas de ingeniería para producir o modificar los productos software. Bajo el
punto de vista del apoyo, las partes (tales como la gestión de la configuración o
aseguramiento de la calidad) proporcionan servicios de apoyo a otros para completar tareas
únicas y específicas. También se muestran (véase el recuadro de la parte interior) los
procesos organizativos; éstos se emplean por la organización a nivel corporativo, para
establecer e implementar la estructura subyacente compuesta por los procesos y el personal
asociados al ciclo de vida y mejorarlos continuamente.
El punto de vista del contrato tiene dos procesos del ciclo de vida (véase el recuadro
superior sombreado en los procesos principales del ciclo de vida): Un proceso de
adquisición para el adquiriente y un proceso de suministro para el proveedor. Cada proceso
muestra sus actividades constituyentes. Estos procesos definen las tareas para el
adquiriente y proveedor respectivamente, desde el punto de vista contractual.
El punto de vista de ingeniería tiene dos procesos del ciclo de vida (véase el recuadro
inferior izquierdo sombreado en los procesos principales del ciclo de vida): un proceso de
desarrollo y un proceso de mantenimiento. Cada proceso muestra sus actividades
constituyentes. El proceso de desarrollo se emplea por los ingenieros de desarrollo para
producir los productos software. El proceso de mantenimiento se emplea por los ingenieros
de mantenimiento para modificar el software y mantenerlo actualizado.
El punto de vista operativo tiene un proceso del ciclo de vida (véase el recuadro inferior
derecho sombreado en los procesos principales del ciclo de vida): el proceso de operación
y sus actividades constituyentes. El proceso de operación se emplea para operar el software
para sus usuarios.
El punto de vista de la gestión de la calidad tiene seis procesos del ciclo de vida (véase el
recuadro sombreado de los procesos de apoyo del ciclo de vida): proceso de aseguramiento
de la calidad, proceso de verificación, proceso de validación, proceso de revisión conjunta,
y proceso de auditorías. No se muestran sus actividades constituyentes. Estos procesos
relacionados con la calidad se emplean para gestionar la calidad a lo largo del ciclo de vida
del software. Los procesos de verificación, validación, revisiones conjuntas y de auditorías
se pueden emplear por diferentes partes separadamente o como técnicas del proceso de
aseguramiento de la calidad.
En esta NTP, los términos "organización" y "parte" son casi sinónimos. Una organización
es una agrupación de personas organizadas para un propósito específico, como un club,
sindicato, corporación o sociedad. Cuando una organización ya sea como un todo o en
parte, entra en un contrato, es una parte. Las organizaciones son entidades separadas, pero
las partes pueden ser de la misma organización o de organizaciones distintas.
Una organización o una parte toman el nombre del proceso que llevan a cabo; por ejemplo
se le llama adquiriente cuando lleva a cabo el proceso de adquisición.
Una organización puede llevar a cabo uno o varios procesos; un proceso puede ser llevado
a cabo por una o varias organizaciones. Bajo un contrato o aplicación de esta NTP, una
parte no debería llevar a cabo simultáneamente el proceso de adquisición y el proceso de
suministro, pero puede llevar a cabo otros procesos.
En esta misma NTP, las relaciones entre procesos son sólo estáticas. Las relaciones
dinámicas más importantes de la vida real, entre procesos, entre partes y entre procesos y
partes se establecen automáticamente cuando esta NTP se aplica en proyectos software.
Cada proceso (y la parte que lo lleva a cabo) contribuye al proyecto software de una
manera propia y única. El proceso de adquisición (y el adquiriente), contribuye definiendo
el sistema, el cual contendrá el producto software. El proceso de suministro (y el
proveedor) contribuye proporcionando el producto o servicio software del cual dependerá
el sistema. El proceso de desarrollo (y el desarrollador) contribuye "mirando" en el sistema
para derivar y definir correctamente el producto software, soportando la integración
adecuada del producto software dentro del sistema y desarrollando el producto software
entre ellos. El proceso de operación (y el operador) contribuye operando el producto
software en el entorno del sistema para el beneficio de los usuarios, el negocio y la misión.
El proceso de mantenimiento (y el responsable de mantenimiento) contribuye manteniendo
y preservando el producto software en buen estado de operación y proporcionando soporte
y consejo a la comunidad de usuarios. Cada proceso de apoyo u organizativo contribuye
proporcionando funciones únicas y especializadas a otros procesos según se necesite.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 90 de 189
VISIÓN CONTRACTUAL
emplea Proceso de Proceso de • Adquiriente
Adquisición contrato Suministro • Proveedor
emplea
VISIÓN OPERATIVA
• Proceso de • Operador
Operación Usuario
emplea
emplea
VISIÓN DE LA • Desarrollador
emplea Proceso de Proceso de INGENIERÍA • Responsable de
•
Mantenimiento Desarrollo mantenimiento
Procesos de Apoyo
PUNTO DE VISTA DEL • Usuario de
• Documentación • Verificación APOYO
los procesos
• Gestión de la Configuración • Validación de apoyo
• Solución de Problemas • Revisión Conjunta
• Aseguramiento de la Calidad • Auditoría
Procesos Organizativos
FIGURA C.1. – Procesos del ciclo de vida del software – roles y relaciones
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 91 de 189
Inicio y definición
Planificación
del alcance
7.3 Proceso de Mejora de Procesos
Ejecución y Revisión y
Terminación
control evaluación
Establecimiento Evaluación del Mejora del
del proceso proceso proceso
FIGURA C.2 – Procesos del ciclo de vida del software - visiones y actividades
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 92 de 189
ANEXO D
(INFORMATIVO)
BIBLIOGRAFIA
ANEXO E
(INFORMATIVO)
El Anexo F agrupa los propósitos y resultados en tres categorías del proceso del ciclo de vida
de la ISO/IEC 12207, por ejemplo: organizativos, apoyo y principales. Dentro de cada una de
las categorías los procesos son descritos en términos de una declaración de propósito, el cual
abarca únicamente los objetivos funcionales de un ambiente en particular. La declaración de
propósito incluye material adicional identificando las salidas de una implementación exitosa.
La tabla E.1 proporciona un mapeo detallado del contenido del anexo F a lo existente en la
Norma Técnica Peruana, NTP-ISO/IEC 12207, la fuente de información, la estructura del
contenido y tipo de contenido. La relación de la estructura de procesos del Anexo F a la
ISO/IEC 12207 está definido por tipos de proceso como sigue:
12207 12207 Procesos y Actividades Fuente de Anexo F Estructura de Proceso Anexo F Tipo de Proceso
5.3.11 Pruebas de calificación del sistema ISO/IEC/TR 15504-2 Prueba del Sistema componente
5.3.12 Instalación del software ISO/IEC 12207 Instalación del Software básico
5.3.13 Apoyo en la aceptación del software ISO/IEC 12207 Proceso de Suministro básico
ANEXO F
(NORMATIVO)
PROPÓSITO Y RESULTADOS
Los propósitos y resultados del modelo de referencia son indicadores que demuestran si los
procesos de la organización se están alcanzando. Estos indicadores son útiles para planear
y determinar la capacidad del proceso implementado para la organización y proporcionar el
material necesario para el plan de mejoramiento del proceso organizativo. El modelo de
referencia se alinea fuertemente con la ISO/IEC 12207, proporciona expectativas de
proceso detalladas e incluye los procesos adicionales determinados como esenciales para
permitir un análisis confiable de las organizaciones de software.
NOTA Liberación de los derecho de autor: Los usuarios pueden reproducir libremente la
descripción detallada de los propósitos y resultados del proceso descrito en el presente anexo, como
parte de un Modelo de Evaluación basado en el Modelo de Referencia de Procesos, o como parte de
una demostración de compatibilidad con el Modelo de Referencia de Procesos; de esta manera, éste
puede ser usado para un propósito específico.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 98 de 189
Propósito:
El propósito del proceso de adquisición es obtener el producto y/o servicio que satisface la
necesidad expresada por el cliente. El proceso comienza con la identificación de una
necesidad del cliente y finaliza con la aceptación del producto y/o servicio necesitado por
el cliente.
NOTA: El Anexo H proporciona una extensión del proceso de adquisición que se puede utilizar en
lugar del proceso de adquisición proporcionado en el anexo F.
Resultados:
- Preparación de la adquisición.
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
Resultados:
3. Se desarrolla, por parte del proveedor, un producto y/o servicio que cumple
con los requerimientos acordados;
Propósito:
Resultados:
2. Se evalúan las solicitudes del cliente sobre las propuestas según criterios
definidos para determinar si se presenta o no una propuesta;
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
El propósito del proceso de soporte de aceptación del producto es lograr que el cliente
confie que el producto cumple con los requerimientos.
Resultados:
Propósito:
Resultados:
El proceso del desarrollo incluye propósitos y los resultados para los sub-procesos
siguientes:
− Obtención de requerimientos.
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
El propósito del diseño de al arquitectura del sistema es identificar qué requerimientos del
sistema deben ser asignados a cada elemento del sistema.
Resultados:
Propósito
Resultados:
7. Se evalúan los cambios de los requerimientos del software por costo, plazo
y el impacto técnico; y
Propósito:
El propósito del diseño del software es proporcionar un diseño que implemente el software
y pueda ser verificado contra los requerimientos.
Resultados:
Propósito:
Resultados:
1. Se definen los criterios de verificación para todas las unidades del software
de acuerdo con sus requerimientos;
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
El propósito de la integración del sistema es integrar los elementos del sistema (incluyendo
los elementos del software, hardware, las operaciones manuales y otros sistemas,
necesarios) para producir un sistema completo que satisface el diseño del sistema y las
expectativas de los clientes que se expresaron en los requerimientos del sistema.
Resultados:
Propósito:
Resultados:
Propósito:
El propósito de la instalación del software es instalar el producto del software que reúne
los requerimientos convenidos en el ambiente designado.
Resultados:
4. Se asegura que el producto del software está listo para el uso en su ambiente
proyectado.
Propósito:
Resultados:
− El uso operacional.
− Apoyo al cliente.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 117 de 189
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
NOTA: El objetivo es modificar y/o retirar productos existentes del sistema/software en tanto se
conserve la integridad de las operaciones de la organización.
Resultados:
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
El propósito del proceso de verificación es confirmar que cada producto y/o servicio
software de un proceso o proyecto refleja propiamente los requerimientos especificados.
Resultados:
Propósito:
El propósito del proceso de validación es confirmar que los requerimientos para un uso
específico del producto son completamente cumplidos.
Resultados:
Propósito:
El propósito del proceso de revisión conjunta es mantener una comprensión común con los
involucrados del proceso contra los objetivos del acuerdo y lo que deberá hacerse para
ayudar a asegurar el desarrollo de un producto que satisface a los involucrados. Las
revisiones conjuntas están en los niveles de gestión del proyecto y técnicos y se sostienen a
lo largo de la vida del proyecto.
Resultados:
Propósito:
Resultados:
Propósito:
El propósito del proceso de gestión de solución de problemas es asegurar que todos los
problemas descubiertos son identificados, analizados, gestionados y controlados para su
solución.
Resultados:
NOTA: La gestión de solución de problemas puede iniciar una solicitud de camb io.
Propósito:
Resultados:
Propósito:
Resultados:
Nota: los requerimientos para realizar las evaluaciones del producto se encuentran en la ISO/IEC
14598; evaluación de producto de software. Las evaluaciones pueden ser realizadas por el
adquiriente, el desarrollador, o un tercero evaluador.
Propósito:
Resultados:
Propósito:
Resultados:
3. Se evalúa la viabilidad de lograr las metas del proceso con los recursos
disponibles y las restricciones;
− Alineamiento organizativo.
− Gestión de la organización.
− Gestión de proyecto.
− Gestión de la calidad.
− Gestión de riesgos.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 129 de 189
− Medición
Propósito:
Resultados:
Propósito:
NOTA: A pesar de que las operaciones de la organización en general tienen un alcance mucho mayor
que del proceso de software, estos se llevan a cabo en un contexto y su eficiencia requiere un
ambiente apropiado.
Resultados:
Propósito:
Resultados:
2. Se evalúa la viabilidad de lograr las metas del proyecto con los recursos
disponibles y las restricciones;
7. Se toman decisiones para corregir las desviaciones del plan y para prevenir
la repetición de problemas identificados en el proyecto, cuando los objetivos del
proyecto no son alcanzados.
Propósito:
Resultados:
Propósito:
Resultados:
F.3.1.6 Medición
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
Resultados:
El proceso de mejora de proceso contiene propósito y resultados para los siguientes sub-
procesos:
− Proceso de evaluación.
− Proceso de mejora.
Propósito:
Propósito:
El propósito del proceso de evaluación es determinar hasta qué punto los procesos
estándares de la organización contribuyen al logro de sus metas del negocio y ayudan a la
organización a enfocarse en la necesidad de la mejora continua del proceso.
Resultados:
Propósito:
Resultados:
NOTA 1 Las fuentes de información que proporcionan la entrada para el cambio puede incluir: el
proceso de evaluación, auditorías, reportes de satisfacción del cliente, efectividad/eficiencia
organizacional, costo de calidad.
NOTA 2 Los estados actuales de los procesos pueden ser determinados por la evaluación del
proceso.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 138 de 189
Propósito:
Resultados:
− Entrenamiento.
Propósito:
Resultados:
F.3.4.2 Entrenamiento
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
El propósito del proceso de gestión del recurso es manejar la vida de recursos reutilizables
desde la concepción hasta el retiro.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 141 de 189
Resultados:
Propósito:
El propósito del proceso de gestión del programa de reuso es planear, establecer, manejar,
controlar y monitorear el programa de reuso en la organización y sistemáticamente
aprovechar las oportunidades de reuso.
Resultados:
5. Se evalúa las propuestas de reuso para asegurar que el reuso del producto es
adecuada para la aplicación propuesta;
NOTA: Las partes afectadas pueden incluir administradores de programas de reuso, gestores de
evaluación, ingenieros de dominio, desarrolladores, operadores y responsables de mantenimiento.
Propósito:
Resultados:
1
Espacio físico o abstracto en donde se presenta el problema y/o la solución de un sistema (problema,
contexto y solución).
Un dominio usualmente consta de estructuras de datos, flujos de información, funciones, restricciones y
controles entre otros elementos.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 143 de 189
2. Se establecen los límites del dominio y sus relaciones con otros dominios;
ANEXO G
(INFORMATIVO)
La ISO/IEC 12207 define las categorías de los procesos, por ejemplo, organizativo,
principal y apoyo, que se pueden realizar durante el ciclo de vida de software. Dentro de
cada categoría de procesos, los procesos que son expresados en términos de actividades y
tareas. Las actividades dentro de un proceso proporcionan la descomposición estructural
del proceso y describen las acciones que son realizadas durante la ejecución del proceso.
Las tareas dentro del ciclo de vida del software proporcionan lo que va a ser realizado
durante la implementación del proceso.
a) Proceso de usabilidad
a. Implementación de procesos.
6.9.1.1 Plan y manejo de los procesos DCH. Especifica cómo las actividades
centradas en lo humano encajan en los procesos del ciclo de vida del sistema y la empresa.
d) El entrenamiento al usuario.
a) Implementar el proceso
f) Gestionar el conocimiento
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 151 de 189
7.4.4 Evaluar el desempeño del personal: Esta actividad consta de las siguientes
tareas.
7.4.4.1 Definir criterios objetivos que se puedan usar para evaluar la actuación del
personal.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 152 de 189
7.4.4.2 Evaluar el desempeño del personal con respeto a sus contribuciones a las
metas de la organización o proyecto.
7.4.5 Establecer los requerimientos del equipo: Esta actividad consta de las
siguientes tareas:
7.4.5.2 Potenciar los equipos para realizar su rol, asegurando que los equipos
tengan:
Sin tener en cuenta su calidad global y potencial para ser reusados, los activos tienen un
pequeño valor para la organización a menos que los potenciales reusadores sepan de su
existencia y puedan rápidamente localizarlos y entenderlos.
Este proceso contiene las actividades y tareas del gestor del activo. La gestión de activos es
el proceso de aplicar los procedimientos administrativos y técnicos a lo largo de la vida de
un activo con el propósito de identificar, definir, certificar, clasificar y delinear el activo;
rastrear las modificaciones, migraciones y versiones del activo; registrar e informar el
estado del activo y establecer y controlar el almacenamiento y manipuleo del activo, la
entrega del activo a sus reusadores y el retiro del mismo.
7.5.3 Administración y control del activo: Para cada activo, esta actividad
consiste en las siguientes tareas:
7.5.3.1 Para cada activo remitido al administrador de activo, se hará una evaluación
basada en los criterios de aceptación y certificación del activo.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 156 de 189
7.5.3.2 Cada activo aceptado se pondrá a disposición para ser reusado utilizando el
mecanismo de almacenamiento y recuperación de activos.
7.5.3.5 El gestor del activo guardará la historia de cada reuso del activo y reportará
al ingeniero de dominio sobre el actual reuso del activo. La información de reuso del activo
deberá incluir el nombre del reusador, el nombre del proyecto, el desarrollador original o
dueño del activo, el costo de reuso del activo, así como el ahorro o beneficios derivados del
reuso del activo.
a) Iniciación;
d) Planeamiento;
e) Ejecución y control;
f) Revisión y evaluación.
7.6.1.3 Los participantes del programa de reuso deben ser identificados y sus roles
asignados.
7.6.1.4 Una función de conducción del reuso será establecida para asumir la
autoridad y responsabilidad del programa de reuso de la organización. Sus funciones
deberán incluir lo siguiente:
NOTA: Los miembros de la función de gestión del reuso incluyen al promotor del reuso, el
administrador de desarrollo de software, el administrador de operaciones, el administrador de
mantenimiento de software y un experto en reuso.
7.6.3 Valuación del reuso: La valorización del reuso proporciona una base
contra la cual la práctica de reuso en la organización puede ser medida. Sin esta
evaluación, los beneficios que resulten de la práctica de reuso en la organización serán
difíciles de medir. Los propósitos de esta actividad son:
a) Integridad;
7.6.5.1 Las actividades del plan de implementación del programa de reuso serán
ejecutadas de acuerdo con el plan.
NOTA
2. Estas actividades y tareas pueden traslaparse o interactuar y pueden ser realizadas iterativa
o recursivamente. Asimismo el procesos de ingeniería de dominio puede traslaparse con los
procesos de desarrollo y mantenimiento que usan activos producidos por el dominio.
7.7.2.1 El ingeniero de dominio define los límites del dominio y las relaciones entre
éste y otros dominios.
7.7.2.6 El ingeniero del dominio evaluará los modelos y el vocabulario del dominio
de acuerdo con las provisiones de la técnica de modelamiento seleccionada y de acuerdo
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 166 de 189
7.7.3.3 Para cada entidad seleccionada a ser diseñada para el reuso, el ingeniero de
dominio desarrollará y documentará una especificación del activo.
ANEXO H
(INFORMATIVO)
El Anexo H provee una extensión de las definiciones que se indican en el ISO/IEC TR 15504-
2 referido al proceso de adquisición y se centra en su actual falta de granularidad asociada al
Proceso de Adquisición de la ISO/IEC TR 15504-2. Este anexo amplía las definiciones del
proceso de adquisición establecidas en la TR 15504-2 y provee la granularidad necesaria con
el propósito de la evaluación y mejora del proceso de adquisición. Estos procesos extendidos
proveen una sólida base para la evaluación del proceso de adquisición y la capacidad de
identificar de una mejor manera los riesgos en el aprovisionamiento del software. Las
definiciones del proceso de adquisición establecidas en el presente anexo están incluidas en
esta enmienda para formar las bases del modelo de referencia de procesos a ser usado con la
ISO 15504 .
Los propósitos y resultados del proceso proveído en este anexo pueden ser usados en lugar de
los propósitos y resultados del F.1.1 proceso de adquisición. Adicionalmente a los propósitos
y resultados del proceso de adquisición, este anexo provee la extensión de la definición del
proceso en el formato de las actividades y tareas de la ISO/IEC 12207.
NOTA Liberación de los derecho de autor: Los usuarios pueden reproducir libremente la
descripción detall de los propósitos y resultados del proceso descrito en el presente anexo como parte
de un modelo de evaluación basado en el modelo de referencia de procesos, o como parte de una
demostración de compatibilidad con el modelo de referencia de procesos; de esta manera éste puede
ser usado para un propósito específico.
Lo siguiente proporciona una alternativa a ser usada en lugar del Anexo F.1.1 Propósitos y
resultados del proceso de adquisición.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 170 de 189
Propósito:
El propósito del proceso de adquisición es obtener el producto y/o servicio que satisfaga
las necesidades expresadas del cliente. El proceso empieza con la identificación de la
necesidad del cliente y termina con la aceptación del producto y/o servicio solicitado por el
cliente.
Resultados:
1. Política de adquisición
2. Estrategia de adquisición
3. Análisis de beneficios
4. Requerimientos técnicos
6. Requerimientos financieros
8. Solicitud de la propuesta
13. Aceptación
Propósito:
Resultados:
Propósito:
El propósito del proceso de la estrategia de adquisición es asegurar que los productos y/o
servicios a ser adquiridos cumplan con la misión, metas y objetivos del negocio, así como
proveer las bases para el planeamiento de todos los aspectos del proyecto de adquisición.
Este proceso involucra una combinación de infraestructura de negocio (presupuesto,
inversión financiera), métodos de adquisición (preelaborados, personalizados) y políticas
comunes (estrategias de adquisición, determinación de inventarios)
Resultados:
Propósito:
Resultados:
Propósito:
Resultados:
NOTA: La NTP-ISO 9126 puede ser un modelo muy útil para obtener requerimientos técnicos.
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 175 de 189
Propósito:
Resultados:
1. Se definirá un enfoque contractual, el mismo que estará acorde con las leyes
reguladoras nacionales e internacionales, reglamentos y políticas;
Propósito:
Resultados:
Propósito:
El propósito del proceso de requerimientos del proyecto es especificar los requerimientos para
asegurar que el proyecto de adquisición sea desarrollado con una adecuada planeación,
personal, gestión, organización y control sobre todas las actividades y tareas del proyecto.
Resultados:
6. Se identificarán riesgos asociados con el ciclo de vida del proyecto y con los
proveedores;
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
Resultados:
Propósito:
Resultados
H.1.13 Aceptación
Propósito:
Resultados:
NOTA: La ISO/IEC 14598 puede ser una base adecuada para evaluación de productos.
Propósito:
El propósito del proceso de cierre del contrato es asegurar que toda la información detallada
relacionada a la ejecución y finalización del proyecto sea recopilada y coordinada a través de
todos los grupos involucrados.
Resultados:
Propósito:
Resultados:
1. Se establecerán las relaciones con proveedores que son relevantes para las
actuales y futuras necesidades;
Propósito:
Resultados:
Propósito:
Resultados:
b) Política de adquisición
e) Administración financiera
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 186 de 189
5.1.6 Cierre del contrato: Esta actividad consiste en las siguientes tareas:
d) Los resultados generales del contrato, del proyecto, los aspectos técnicos y
financieros del proyecto de adquisición serán evaluados en base a los objetivos y/o
requerimientos originales.
5.1.7.2 Para definir una efectiva política de adquisición, lo siguiente deberá ser
considerado:
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 187 de 189
5.1.8.3 Como parte de la definición de una política, lo siguiente debe ser considerado:
5.1.9.2 Como parte de la definición de una política, lo siguiente debe ser considerado:
5.1.10.1 La organización debe asegurar una administración financiera sana por sobre
todo proyecto de adquisición. El objetivo general es asegurar que los costos y presupuestos
para adquisiciones son identificados y gestionados alineados con los acuerdos y objetivos
acordados. La administración financiera generalmente divide las responsabilidades entre las
diferentes funciones de la organización.
5.1.10.2 Para conseguir una administración financiera sana, lo siguiente se debe llevar a
cabo:
NORMA TÉCNICA NTP-ISO/IEC 12207
PERUANA 189 de 189
Las decisiones deben ser tomadas para asegurar que los objetivos financieros sean
cumplidos.
NORMA TÉCNICA NTP-ISO/IEC 27001
PERUANA 2008
Comisión de Normalización y de Fiscalización de Barreras Comerciales No Arancelarias - INDECOPI
Calle De La Prosa 138, San Borja (Lima 41) Apartado 145 Lima, Perú
2008-12-12
1ª Edición
página
ÍNDICE i
PREFACIO ii
INTRODUCCIÓN iv
1. ALCANCE 1
2. REFERENCIAS NORMATIVAS 2
3. TÉRMINOS Y DEFINICIONES 3
5. RESPONSABILIDAD DE LA GERENCIA 14
9. ANTECEDENTES 21
ANEXO
ANEXO A 22
ANEXO B 43
ANEXO C 45
BIBLIOGRAFÍA 49
i
PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL
PREFACIO
A. RESEÑA HISTÓRICA
ii
PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL
ENTIDAD REPRESENTANTE
iii
PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL
INTRODUCCIÓN
Esta Norma Técnica Peruana puede usarse en el ámbito interno y externo de las
organizaciones.
Esta Norma Técnica Peruana promueve la adopción de un enfoque del proceso para
establecer, implementar, operar, monitorear, mantener y mejorar la efectividad de un
ISMS en la organización.
iv
PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL
b) implementar y operar controles en el contexto de administrar el riesgo
total del negocio de una organización;
La adopción del modelo PDCA también reflejará los principios como se establecieron
en la pautas de OECD (2002)1 para la gobernabilidad de los sistemas y redes de la
seguridad de información. Esta Norma Técnica Peruana provee un modelo para
implementar los principios en las pautas que gobiernan la evaluación del riesgo, el
diseño e implementación de la seguridad, la gestión de seguridad y la reevaluación.
EJEMPLO 1
EJEMPLO 2
Una expectativa podría ser que si ocurriera un incidente serio – que afecte el web site
del negocio de una organización – debe existir personal capacitado en procedimientos
adecuados para minimizar el impacto.
1
OECD Guía para la seguridad de los Sistemas de Información y Redes – Hacia una cultura de seguridad.
Paris: OECD, Julio 2002. www.oecd.org
v
PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL
Planear
Establecer el
ISMS
Monitorear
Requisito y y revisar el
expectativas de ISMS Gestión de la
seguridad de Seguridad de la
Verificar
información Información
vi
PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL
0.3 Compatibilidad con otros sistemas de gestión
Esta Norma Técnica Peruana está alineada con la ISO 9001:2000 y la ISO 14001:2004
con el fin de respaldar una implementación y operación consistente e integrada con las
normas de gestión afines. Un sistema de gestión convenientemente diseñado puede
satisfacer así los requisitos de todos estos estándares. Tabla C.1, ilustra la relación entre
los capítulos de esta norma, ISO 9001:2000 y la ISO 14001:2004.
Esta Norma Técnica Peruana está diseñada para hacer posible que una organización se
alinee o integre su ISMS con los requisitos de los sistemas de gestión relacionados.
---oooOooo---
vii
PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL
NORMA TÉCNICA NTP-ISO/IEC 27001
PERUANA 1 de 49
IMPORTANTE: Esta Norma Técnica Peruana no pretende incluir todos los términos necesarios para un
contrato. Los usuarios son responsables de su correcta aplicación. Cumplir con una norma no confiere en sí
mismo inmunidad de las obligaciones legales.
1. ALCANCE
Esta Norma Técnica Peruana cubre todo los tipos de organizaciones (como por ejemplo:
empresas comerciales, agencias de gobierno y organizaciones sin fines de lucro). Esta NTP
especifica los requisitos para establecer, implementar, operar, monitorear, revisar, mantener
y mejorar un ISMS documentado dentro del contexto de los riesgos de negocio de la
organización. Especifica los requisitos para implementar los controles de seguridad
adaptado a las necesidades individuales de las organizaciones o partes de las mismas.
NOTA 1: Las referencias de “negocio” en esta Norma Técnica Peruana deben ser interpretadas
ampliamente para representar las actividades que son base para los propósitos de la existencia de la
organización.
NOTA 2: La ISO/IEC 17799 provee pautas de implementación que pueden ser utilizadas cuando se
designen controles.
1.2 Aplicación
Los requisitos establecidos en esta NTP son generales y tienen la intención de aplicarse a
todas las organizaciones, sin tomar en cuenta el tipo, tamaño y naturaleza del negocio.
Cuando una organización reclama conformidad con esta norma, no es aceptable excluir
cualquiera de los requisitos especificados en los capítulos 4, 5, 6, 7 y 8.
NOTA: Si una organización ya posee un sistema operativo de gestión de procesos de negocio (por
ejemplo en relación con la ISO 9001 o ISO 14001), es preferible, en la mayoría de los casos, satisfacer
los requisitos de esta NTP dentro de los sistemas de gestión existentes.
2. REFERENCIAS NORMATIVAS
Las siguientes normas contienen disposiciones que al ser citadas en este texto, constituyen
requisitos de esta Norma Técnica Peruana. Las ediciones indicadas estaban en vigencia en
el momento de esta publicación. Como toda Norma está sujeta a revisión, se recomienda a
aquellos que realicen acuerdos en base a ellas, que analicen la conveniencia de usar las
ediciones recientes de las normas citadas seguidamente. El Organismo Peruano de
Normalización posee la información de las Normas Técnicas Peruanas en vigencia en todo
momento.
3. TÉRMINOS Y DEFINICIONES
Para los fines de esta Norma Técnica Peruana, se aplican los siguientes términos y
definiciones:
3.12 estimación del riesgo: Proceso total de análisis y evaluación del riesgo.
[ISO/IEC Guide 73:2002]
3.13 evaluación del riesgo: Proceso de comparación del riesgo estimado frente
al criterio de riesgo para determinar el significado del riesgo.
[ISO/IEC Guide 73:2002]
3.14 gestión del riesgo: Actividades coordinadas para dirigir y controlar el riesgo
en una organización.
[ISO/IEC Guide 73:2002]
NOTA: los objetivos y controles están basados en los resultados y conclusiones de los procesos de
evaluación del riesgo y tratamiento del riesgo, requisitos legales o regulatorios, obligaciones
contractuales y los requisitos de negocio de la información de seguridad de la organización.
NOTA: Para propósitos de esta Norma Técnica Peruana, la política de ISMS es considerada como un
conjunto de la política de la seguridad de información. Estas políticas pueden ser descritas en otro
documento.
NOTA: Existen diferentes metodologías para una evaluación de riesgos. Los ejemplos de
metodologías de evaluación de riesgos son discutidas en la ISO/IEC TR 13335-3.
1) Identificar los activos dentro del alcance del ISMS y los propietarios2 de
estos activos.
2) Identificar las amenazas a esos activos.
3) Identificar las vulnerabilidades que podrían explotarse mediante estas
amenazas.
4) Identificar los impactos de pérdidas de confidencialidad, integridad y
disponibilidad sobre los activos.
2
El termino “propietario” identifica a un individuo o entidad que aprueba la responsabilidad por la gestión
por controlar la producción, desarrollo, mantenimiento, uso y seguridad de los activos. El término
“propietario” no significa que la persona tiene algún derecho de propiedad realmente sobre el activo.
Los objetivos de control y controles del Anexo A deben ser seleccionados como parte
del proceso así como adecuados para cubrir los requisitos identificados.
NOTA: El Anexo A contiene una lista comprensible de objetivos de control que han sido encontrados
como relevantes para las organizaciones. Los usuarios de esta NTP son dirigidos a este Anexo A como
un punto de partida para la selección de controles con el fin de asegurar que no se hayan obviado
opciones de control importantes.
NOTA: Medir la efectividad de los controles permite a los gerentes y al personal determinar que tan
bien los controles logran los objetivos de control planeados.
1) la organización;
2) la tecnología;
3) los objetivos y procesos del negocio;
4) amenazas identificadas;
5) efectividad de los controles implementados; y
6) eventos externos, tales como cambios en el ambiente legal o regulatorio,
cambios en obligaciones contractuales y en el clima social;
NOTA: Las auditorías internas son conducidas por, o a favor de, la misma organización, para
propósitos internos.
Es importante ser capaz de demostrar la relación de los controles seleccionados con los
resultados de la evaluación de riesgos y el proceso de tratamiento de riesgos así como
subsecuentemente a las políticas y objetivos de ISMS.
i) declaración de aplicabilidad.
NOTA 1: Cuando aparece el término “procedimiento documentado” dentro de esta norma, significa
que el procedimiento está establecido, documentado, implementado y mantenido.
NOTA 2: La extensión de la documentación del ISMS puede diferir de una organización a otra
dependiendo de:
- El tamaño de la organización y el tipo de actividades; y
- El alcance y complejidad de los requisitos de seguridad y del sistema a ser administrado.
NOTA 3: Los documentos y registros pueden tener cualquier forma y tipo de medio.
d) asegurar que las versiones más recientes de los documentos pertinentes estén
disponibles en los puntos de uso;
Se mantendrán los registros del rendimiento del proceso como se señala en 4.2 y de todos
los incidentes de seguridad relacionados con el ISMS.
EJEMPLO:
5. RESPONSABILIDAD DE LA GERENCIA
g) asegurar que las auditorías internas del ISMS sean realizadas (véase capitulo
6); y
a) determinando las aptitudes necesarias del personal que lleva a cabo labores
vinculadas al ISMS;
La organización también debe garantizar que todo el personal pertinente tome conciencia
de la relevancia e importancia de las actividades de seguridad de la información y cómo
estas contribuyen al logro de los objetivos del ISMS.
La gerencia responsable del área que está bajo auditoría garantizará que las acciones se
ejecuten sin retrasos indebidos, con el fin de eliminar las no conformidades detectadas y
sus causas. Las actividades de mejora incluyen la verificación de las acciones tomadas y el
reporte de los resultados de verificación (véase capítulo 8).
NOTA: ISO 19011:2002, Guía para la calidad y/o gestión de sistemas de auditoría del medio
ambiente, pueden proveer una guía útil para llevar a cabo una auditoría ISMS interna.
1) requisitos de negocio;
2) requisitos de seguridad;
3) procesos de negocio que afectan los requisitos de negocio existentes;
4) marco regulatorio o legal;
5) obligaciones contractuales; y
6) niveles de riesgo y/o criterios de aceptación de riesgos.
d) Necesidades de recursos.
NOTA: Las acciones para prevenir no conformidades con frecuencia son más económicas que las
acciones correctivas.
9. ANTECEDENTES
ANEXO A
(NORMATIVO)
Los objetivos de control y los controles que figuran en la tabla A.1 se derivan y alinean
directamente con los que figuran en NTP-ISO/IEC 17799:2007, capítulos 5 a 15. Las listas
en estas tablas no son exhaustivas y la organización puede considerar que son necesarios
objetivos de control y controles adicionales. Los objetivos de control y los controles de
estas tablas deben seleccionarse como parte del proceso ISMS especificado en 4.2.1.
3
El termino “propietario” identifica a un individuo o entidad que aprueba la responsabilidad por la gestión
por controlar la producción, desarrollo, mantenimiento, uso y seguridad de los activos. El término
“propietario” no significa que la persona tiene algún derecho de propiedad realmente sobre el activo.
4
Explicación: la palabra “empleo” se utiliza aquí para cubrir las siguientes situaciones diferentes: empleo de
las personas (temporalmente o durante largo tiempo), designando roles de trabajo, cambiando roles de
trabajo, asignando contratos, y la terminación de cualquiera de estos arreglos.
A.10.10 Monitoreo
Objetivo de control: Detectar actividades de procesamiento de información no autorizadas.
A.10.10.1 Registro de auditoría Control
A.15 Cumplimiento
A.15.2 Cumplimiento con las políticas y estándares de seguridad y del cumplimiento técnico
Objetivo de control: Asegurar el cumplimiento de los sistemas con las políticas y normas de
seguridad organizacionales.
ANEXO B
(INFORMATIVO)
Los principios dados en las Pautas OECD para la Seguridad de los Sistemas y Redes de
Información se aplican a todos los niveles políticos y operativos que rigen la seguridad de
los sistemas de información y redes. Esta NTP ofrece un marco para el sistema de gestión
de la seguridad de la información para implementar algunos de los principios OECD
usando el modelo PDCA y los procesos descritos en los capítulos 4, 5, 6, y 8 como se
indica en la Tabla B.1
ANEXO C
(INFORMATIVO)
La tabla C.1 muestra la correspondencia entre la norma ISO 9001:2000, ISO 14001:2004 y
esta NTPperuana
TABLA C.1 – Correspondencia entre ISO 9001:2000, ISO 14001:2004 y esta Norma
4.2 Establecimiento y
administración de ISMS
5 Responsabilidad de la 5 Responsabilidad de la
gerencia gerencia
5.5 Responsabilidad,
autoridad y comunicación
6.3 Infraestructura
6 Auditorías internas del ISMS 8.2.2 Auditoría interna 4.5.5 Auditoría interna
7 Revisión gerencial del ISMS 5.6 Revisión gerencial 4.6 Revisión gerencial
BIBLIOGRAFÍA
Publicaciones
Otras publicaciones
3. Deming W.E., Out of the Crisis, Cambridge, Mass: MIT, Center for
Advanced Engineering Study, 1986
CONSIDERANDO:
De conformidad con lo dispuesto por el Decreto Legislativo Nº 560 – Ley del Poder
Ejecutivo y el Reglamento de Organización y Funciones de la Presidencia del Consejo de
Ministros, aprobado por Decreto Supremo Nº 067-2003-PCM;
SE RESUELVE:
Artículo 1º.- Aprobar el documento “Guía Técnica Sobre Evaluación de Software para
la Administración Pública”, documento que será publicado en el portal de la Presidencia del
Consejo de Ministros (www.pcm.gob.pe).
CARLOS FERRERO
Presidente del Consejo de Ministros
de Software en la
Administración Pública
Ref: Guía Técnica de Evaluación Nombre del Proyecto: “Guía Técnica sobre Evaluación de Software
Versión: 01 en la Administración Pública”
HOJA DE INFORMACION GENERAL
CONTROL DOCUMENTAL:
DERECHOS DE USO:
La presente documentación es de uso para la Administración Pública del Estado Peruano.
ESTADO FORMAL:
Ref: Guía Técnica de Evaluación Nombre del Proyecto: “Guía Técnica sobre Evaluación de Software
Versión: 01 en la Administración Pública”
Fecha: 05/05/04
CONTROL DE VERSIONES
Ref: Guía Técnica de Evaluación Nombre del Proyecto: “Guía Técnica sobre Evaluación de Software
Versión: 01 en la Administración Pública”
Fecha: 05/05/04
Índice
INTRODUCCIÓN 04
APLICACIÓN 04
ESTRUCTURA 04
1.1 Alcance 05
1.2 Conformidad 06
1.3 Marco de trabajo del modelo de la calidad 06
1.4 Modelo de calidad para la calidad externa e interna 11
1.5 Modelo de calidad para la calidad en uso 18
PARTE 2: MÉTRICAS 20
GLOSARIO DE TÉRMINOS 27
BIBLIOGRAFÍA 32
3
GUÍA TÉCNICA SOBRE EVALUACIÓN DE SOFTWARE PARA LA
ADMINISTRACIÓN PÚBLICA
INTRODUCCIÓN
La presente guía esta basada sobre la norma ISO/IEC 9126 de la ISO (Organización
Internacional de Normalización) y la IEC (Comisión Electrotécnica Internacional) que
forman el sistema especializado para la normalización internacional.
APLICACIÓN
ESTRUCTURA
− 1: Modelo de la calidad
− 2: Métricas
4
− 3. Proceso de evaluación de software
1.1 ALCANCE
b) Calidad en uso.
La primera parte del modelo especifica seis características para calidad interna y
externa, las cuales, a su vez, están subdivididas en sub características. Estas sub
características se manifiestan externamente cuando el software es usado como parte
de un sistema de computadora, y son el resultado de atributos internos de software.
La segunda parte del modelo, especifica cuatro características para la calidad en uso.
Calidad en uso es el efecto combinado para el usuario de las seis características de la
calidad interna y externa de productos de software.
Esta norma será usada por personal de informática que cumple funciones de
desarrolladores, adquirientes, personal de aseguramiento de la calidad y aquellos
responsables de especificar y evaluar la calidad de productos de software.
5
• Identificar objetivos de prueba de software;
1.2 CONFORMIDAD
6
producto de software puede ser evaluada midiendo atributos internos (medidas
típicamente estáticas de productos intermedios), o midiendo atributos externos
(midiendo típicamente el comportamiento del código cuando es ejecutado), o bien
midiendo los atributos de aplicación de calidad en uso. El objetivo para que este
producto tenga el efecto requerido en un contexto particular de uso se diagrama en la
Figura 2.
La calidad del proceso contribuye a mejorar la calidad del producto, y la calidad del
producto contribuye a mejorar la calidad en uso. Por lo tanto, evaluar y mejorar un
proceso es una manera de mejorar la calidad del producto, y evaluar y mejorar la
calidad del producto es una manera de mejorar la calidad en uso. De igual manera,
evaluar la calidad en uso proporciona una retroalimentación para mejorar el producto,
y evaluar un producto puede proporcionar una respuesta para mejorar un proceso.
Los requisitos para la calidad del producto de software incluirán criterios de evaluación
para calidad interna, calidad externa y calidad en uso, para cumplir las necesidades de
los desarrolladores, responsables de mantenimiento, adquirientes y usuarios finales.
Las vistas de calidad interna, calidad externa y calidad en uso cambian durante el ciclo
de vida del software. Por ejemplo, la calidad especificada, como requisito de calidad al
comienzo de un ciclo de vida, es mayormente observada desde el punto de vista
externo y de usuario, y se diferencia de la calidad del producto intermedio, como la
calidad del diseño, la cual es mayormente observada desde el punto de vista interno
del desarrollador. Las tecnologías usadas para alcanzar el nivel de calidad necesario,
así como la especificación y evaluación de calidad, necesitan soportar estos diversos
puntos de vista. Es necesario definir estas perspectivas y las tecnologías asociadas a
la calidad, para manejarla apropiadamente en cada etapa del ciclo de vida.
La meta es alcanzar la calidad necesaria y suficiente para cumplir con las necesidades
reales de los usuarios. La norma ISO 8402 define calidad en términos de la habilidad
de satisfacer necesidades explícitas (declaradas/descritas/especificadas) e implícitas.
Sin embargo, las necesidades descritas por un usuario no siempre reflejan las
verdaderas necesidades del mismo, porque:
7
Por lo tanto, los requisitos de calidad no pueden ser completamente definidos antes de
empezar con el diseño. Sin embargo, es necesario entender las necesidades reales
del usuario tan al detalle como sea posible, y representarlas en los requerimientos. La
meta no es obtener la calidad perfecta, pero sí la calidad necesaria y suficiente para
cada contexto específico de uso, cuando el producto sea entregado y utilizado por los
usuarios.
Necesidades de
calidad del Calidad en uso
usuario
uso y
retroalimentación
indica
Requerimientos
de calidad Calidad externa
externa
validación
contribuye a indica
especificar
Requerimientos
de calidad Calidad interna
interna
verificación
Las escalas de medidas para las métricas usadas en los requerimientos de calidad
pueden ser divididas en categorías correspondientes a diferentes grados de
satisfacción de los requerimientos. Por ejemplo, la escala podría estar dividida en dos
categorías: no satisfactoria y satisfactoria, o en cuatro categorías: excede los
requerimientos, cumple los objetivos, mínimamente aceptable e inaceptable. Las
categorías deberían ser especificadas para que ambos, el usuario y el desarrollador,
puedan evitar costos innecesarios e incumplimiento de cronogramas. Existen
diferentes perspectivas de la calidad del producto y sus métricas asociadas a las
diferentes etapas del ciclo de vida del software. (Ver Figura 3)
8
requerimientos de calidad externos son usados como los objetivos para la validación
en varias etapas de desarrollo. Los requerimientos de calidad externos para todas las
características de calidad definidas en esta parte, deben ser establecidos en la
especificación de requerimientos de calidad usando métricas externas, deben ser
transformados en requerimientos de calidad internos y deben ser usados como
criterios cuando un producto es evaluado.
9
La Calidad en Uso es la perspectiva del usuario de la calidad del producto de
software cuando éste es usado en un ambiente específico y en un contexto de uso
específico. Esta mide la extensión en la cual los usuarios pueden conseguir sus metas
en un ambiente particular, en vez de medir las propiedades del software en si mismo.
El nivel de calidad en el ambiente del usuario puede ser diferente del ambiente de
desarrollo, debido a diferencias entre las necesidades y capacidades de diversos
usuarios y diferencias entre hardware y ambientes de soporte. El usuario evalúa sólo
aquellos atributos de software que son usados para sus tareas. Algunas veces, los
atributos de software especificados por un usuario final durante la fase de análisis de
requerimientos, ya no cumplen los requerimientos del usuario cuando el producto está
en uso, debido a cambiantes requerimientos del usuario y a la dificultad de especificar
necesidades implícitas.
Los ítems pueden ser evaluados por medición directa, o de manera indirecta, midiendo
sus consecuencias. Por ejemplo, un proceso puede ser medido indirectamente por la
medición y evaluación de sus productos, y un producto puede ser evaluado
indirectamente por la medición del desempeño de un usuario en sus tareas (usando
métricas de calidad en uso).
El software nunca corre solo sino que siempre es parte de un sistema mayor,
típicamente consistente de otros productos de software con los cuales él tiene
interfaces: hardware, operadores humanos, y flujos de trabajo. El producto de software
completado puede ser evaluado por los niveles de las métricas externas elegidas.
Estas métricas describen su interacción con su entorno, y son medidas al observar el
software en operación. La calidad en uso puede ser medida por la extensión por la
cual un producto empleado por usuarios específicos cumple las necesidades de
alcanzar metas específicas con efectividad, productividad, seguridad y satisfacción.
Esto normalmente será complementado con mediciones de características de calidad
más específicas del producto de software, lo cual también es posible en el proceso
inicial de desarrollo.
En etapas más tempranas de desarrollo, sólo pueden ser medidos los recursos y
procesos. Cuando los productos intermedios (especificaciones, código fuente, etc.) se
tornan disponibles, estos pueden ser evaluados por los niveles de las métricas
internas elegidas. Estas métricas pueden ser usadas para predecir los valores de las
métricas externas. Ellas también pueden ser medidas por derecho propio, al ser pre
requisitos esenciales para la calidad externa.
Se puede hacer una distinción adicional entre la evaluación del producto de software y
la evaluación del sistema en el cual es ejecutado.
10
observadas sólo aquellas que son debidas a faltas en el software (originadas en
requerimientos, diseño o implementación).
En ese sentido, por ejemplo, si se supone que los pasajeros son los usuarios de un
avión con un sistema de control de vuelo basado en computadora, entonces el sistema
del cual ellos dependen incluye la tripulación, el fuselaje, el hardware y software del
sistema de control de vuelo, mientras que si se toma a la tripulación como los
usuarios, entonces el sistema del cual ellos dependen consiste sólo del fuselaje y el
sistema de control de vuelo.
En esta sección se define el Modelo de Calidad para la calidad externa e interna a ser
usado en las instituciones públicas. Se han establecido categorías para las cualidades
de la calidad del software, basadas en seis características (funcionalidad,
confiabilidad, utilidad, eficiencia, capacidad de mantenimiento y portabilidad), que se
subdividen a su vez en sub características (Figura 3). Las sub características se
pueden medir por métrica interna o externa.
11
Calidad externa e
interna
Capacidad de
Funcionalidad Fiabilidad Usabilidad Eficiencia Portabilidad
mantenimiento
Capacidad de ser
Adecuación analizado Adaptabilidad
Madurez Entendimiento Comportamiento
Cambiabilidad Facilidad de
Exactitud Tolerancia a fallas Aprendizaje de tiempos
Estabilidad instalación
Interoperatividad Recuperabilidad Operabilidad Utilización de
Facilidad de Coexistencia
Seguridad recursos
Atracción prueba Reemplazabilidad
Conformidad de Conformidad de
Conformidad de Conformidad de Conformidad de Conformidad de
funcionalidad fiabilidad uso eficiencia
facilidad de portabilidad
mantenimiento
Las definiciones se dan para cada característica y sub característica de calidad del
software que influye en la calidad. Para cada característica y sub característica, la
capacidad del software es determinada por un conjunto de atributos internos que
pueden ser medidos. Las características y sub características se pueden medir
externamente por la capacidad provista por el sistema que contiene el software.
1.4.1 Funcionalidad
La capacidad del producto de software para proveer las funciones que satisfacen las
necesidades explícitas e implícitas cuando el software se utiliza bajo condiciones
específicas.
1.4.1.1 Adecuación
La capacidad del producto de software para proveer un adecuado conjunto de
funciones para las tareas y objetivos especificados por el usuario.
Ejemplos de adecuación son la composición orientada a tareas de funciones a
partir de sub funciones que las constituyen, y las capacidades de las tablas.
12
1.4.1.2 Exactitud
La capacidad del producto de software para proveer los resultados o efectos
acordados con un grado necesario de precisión.
1.4.1.3 Interoperabilidad
La capacidad del producto de software de interactuar con uno o más sistemas
especificados. La interoperabilidad se utiliza en lugar de compatibilidad para
evitar una posible ambigüedad con la reemplazabilidad.
1.4.1.4 Seguridad
La capacidad del producto de software para proteger la información y los datos
de modo que las personas o los sistemas no autorizados no puedan leerlos o
modificarlos, y a las personas o sistemas autorizados no se les niegue el
acceso a ellos.
1.4.2 Fiabilidad
1.4.2.1 Madurez
La capacidad del producto de software para evitar fallas como resultado de
errores en el software.
13
1.4.2.2 Tolerancia a errores
La capacidad del producto de software para mantener un nivel especificado de
funcionamiento en caso de errores del software o de incumplimiento de su
interfaz especificada.
1.4.2.3 Recuperabilidad
La capacidad del producto de software para restablecer un nivel especificado
de funcionamiento y recuperar los datos afectados directamente en el caso de
una falla.
1.4.3 Usabilidad
Los usuarios pueden ser operadores, usuarios finales y usuarios indirectos que están
bajo la influencia o dependencia del uso del software. La usabilidad debe dirigirse a
todo los diferentes ambientes de usuarios que el software puede afectar, o estar
relacionado con la preparación del uso y evaluación de los resultados.
14
1.4.3.1 Entendimiento
La capacidad del producto de software para permitir al usuario entender si el
software es adecuado, y cómo puede ser utilizado para las tareas y las
condiciones particulares de la aplicación.
1.4.3.2 Aprendizaje
La capacidad del producto de software para permitir al usuario aprender su
aplicación. Un aspecto importante a considerar aquí es la documentación del
software.
1.4.3.3 Operabilidad
La capacidad del producto de software para permitir al usuario operarlo y
controlarlo.
1.4.3.4 Atracción
La capacidad del producto de software de ser atractivo al usuario.
Esto se refiere a las cualidades del software para hacer el software más atractivo
al usuario, tal como el uso del color y la naturaleza del diseño gráfico.
1.4.4 Eficiencia
15
Para un sistema operado por usuarios, la combinación de funcionalidad, fiabilidad,
usabilidad y eficiencia pueden ser medidas externamente por medio de la calidad en
uso.
Capacidad del producto de software para ser modificado. Las modificaciones pueden
incluir correcciones, mejoras o adaptación del software a cambios en el entorno, y
especificaciones de requerimientos funcionales.
1.4.5.2 Cambiabilidad
La capacidad del software para permitir que una determinada modificación sea
implementada.
1.4.5.3 Estabilidad
La capacidad del producto de software para evitar efectos inesperados debido
a modificaciones del software.
16
1.4.5.4 Facilidad de prueba
La capacidad del software para permitir que las modificaciones sean validadas.
1.4.6 Portabilidad
La capacidad del software para ser trasladado de un entorno a otro. El entorno puede
incluir entornos organizacionales, de hardware o de software.
1.4.6.1 Adaptabilidad
La capacidad del producto de software para ser adaptado a diferentes entornos
especificados sin aplicar acciones o medios diferentes de los previstos para el
propósito del software considerado.
1.4.6.3 Coexistencia
La capacidad del producto de software para coexistir con otros productos de
software independientes dentro de un mismo entorno, compartiendo recursos
comunes.
1.4.6.4 Reemplazabilidad
La capacidad del producto de software para ser utilizado en lugar de otro
producto de software, para el mismo propósito y en el mismo entorno.
17
Reemplazabilidad se utiliza en lugar de compatibilidad de manera que se evitan
posibles ambigüedades con la interoperabilidad.
En esta parte se define el modelo de calidad para la calidad en uso. Los atributos de la
calidad en uso están categorizados en cuatro características: eficacia, productividad,
seguridad y satisfacción (Figura 4).
Calidad en uso
Las medidas son normalmente requeridas en tres niveles: interno, externo y de uso.
Encontrar criterios para las medidas internas, no es normalmente suficiente para
asegurar el logro de criterios para las medidas externas, y encontrar criterios para las
medidas externas, no es normalmente suficiente para asegurar el logro de criterios
para la calidad en uso.
18
1.5.1 Calidad en uso
1.5.1.1 Eficacia
La capacidad del producto de software para permitir a los usuarios lograr las
metas especificadas con exactitud e integridad, en un contexto especificado de
uso.
1.5.1.2 Productividad
La capacidad del producto de software para permitir a los usuarios emplear
cantidades apropiadas de recursos, en relación a la eficacia lograda en un
contexto especificado de uso.
Los recursos relevantes pueden incluir: tiempo para completar la tarea, esfuerzo
del usuario, materiales o costo financiero.
1.5.1.3 Seguridad
La capacidad del producto de software para lograr niveles aceptables de riesgo
de daño a las personas, institución, software, propiedad (licencias, contratos de
uso de software) o entorno, en un contexto especificado de uso.
1.5.1.4 Satisfacción
La capacidad del producto de software para satisfacer a los usuarios en un
contexto especificado de uso.
19
PARTE 2: MÉTRICAS
Los niveles de ciertos atributos internos se han encontrado para influir en los niveles
de algunos atributos externos, de modo que haya un aspecto externo y un aspecto
interno en la mayoría de las características. Por ejemplo, la confiabilidad puede ser
medida externamente observando el número de fallas en un período dado del tiempo
de ejecución durante un ensayo del software, e internamente examinando las
especificaciones detalladas y el código fuente para determinar el nivel de la tolerancia
de falla. Los atributos internos serían los indicadores de los atributos externos.
atributo
La sub característica puede medirse por la métrica interna o por la métrica externa.
La correlación entre los atributos internos y las medidas externas nunca es perfecta, y
el efecto que un atributo interno dado tiene en una medida externa asociada, será
determinado por la experiencia, y dependerá del contexto particular en que el software
es usado.
20
remontarse a los atributos de calidad externa (por ejemplo: conveniencia u
operabilidad) y los atributos internos asociados tienen que ser cambiados.
Las métricas internas miden atributos internos o indican los atributos externos, a través
del análisis de las propiedades estáticas de productos intermedios o entregables del
software. Las medidas de las métricas internas usan números o frecuencias de
elementos de composición de software, los cuales aparecen, por ejemplo, en las
sentencias de código de fuente, control de gráficos, flujo de datos y estados de
representación de procesos.
Cuando los requisitos de calidad del producto de software son definidos, se listan las
características o sub características de calidad del producto de software que
contribuyen a dichos requisitos. Entonces, las métricas externas apropiadas y los
rangos aceptables son especificados para cuantificar el criterio de calidad que valida
que el software satisface las necesidades del usuario. Luego, los atributos de calidad
interna del software se definen y especifican para planear y finalmente lograr la calidad
externa y calidad en el uso requeridas, para construirlos durante el desarrollo del
producto.
21
Se recomienda que las métricas internas que se usen tengan en lo posible una fuerte
relación con la métrica externa diseñada, para que ellas puedan ser usadas para
predecir los valores de las métricas externas. Sin embargo, es generalmente difícil
diseñar un modelo teórico riguroso que proporcione una relación fuerte entre la métrica
interna y la externa.
La calidad en el uso es la vista del usuario sobre la calidad que el sistema de software
contiene y es medida en términos de resultados de uso del software, en lugar de las
propiedades del propio software. La calidad en el uso es el efecto combinado de
calidad interna y externa para el usuario.
22
valores usando medidas internas de cualquiera de las características de calidad.
Al informar los resultados del uso de métricas cuantitativas para hacer las
comparaciones entre los productos, el informe mostrará si las métricas son objetivas o
empíricas, usando valores conocidos y reproducibles.
Las comparaciones fiables entre los productos sólo se pueden hacer cuando se usan
métricas rigurosas. Los procedimientos de medición deben medir las características (o
sub características) de calidad del producto de software. Estos exigen ser medidos con
suficiente exactitud para permitir asignar los criterios y hacer las comparaciones.
La métrica usada para las comparaciones debe ser válida y suficientemente exacta
para permitir hacer comparaciones fiables. Esto significa que las medidas deben ser
objetivas, empíricas, usando una escala válida, y reproducibles.
• Para utilizar una escala válida, los datos deberán estar basados en ítems de igual
valor o de un valor conocido. Si una lista de comprobación se utiliza para
proporcionar datos, los ítems deben, si es necesario, ser ponderados.
• Para ser reproducible, el proceso para medir debería producir las mismas medidas
(dentro de las tolerancias apropiadas) que son obtenidas por diferentes personas
haciendo la misma medición del producto de software en diferentes ocasiones.
Las métricas internas deberían también tener valor predictivo, esto es, ellas deben
correlacionarse con algunas medidas externas deseadas. Por ejemplo, una medida
interna de un atributo particular del software debería tener correlación con cierto
aspecto medible de calidad cuando se utiliza el software. Es importante que los
valores asignados a las mediciones coincidan con las expectativas normales. Por
ejemplo, si la medición sugiere que el producto es de alta calidad, entonces ésta
debería ser consistente con el producto, satisfaciendo las necesidades de un
usuario.
23
PARTE 3: PROCESO DE EVALUACIÓN DE SOFTWARE
Productos intermedios:
• Decidir sobre la aceptación de un producto intermedio de un subcontratista
o proveedor.
• Decidir cuándo un proceso está completo y cuando remitir los productos al
siguiente proceso.
• Predecir o estimar la calidad del producto final.
• Recoger información con objeto de controlar y gestionar el proceso.
• Otros con justificación.
Producto final:
• Decidir sobre la aceptación del producto.
• Decidir cuando publicar el producto.
• Comparar el producto con otros productos competitivos.
• Seleccionar un producto entre productos alternativos.
• Valorar tanto el aspecto positivo, como el negativo, cuando está en uso.
• Decidir cuando mejorar o reemplazar un producto.
• Otros con justificación.
24
• Métricas internas.
• Métricas externas.
• Métricas de uso.
• La suma de los puntajes máximos de todas las métricas deberá ser igual a 100
puntos.
25
3.8 Comparar con los criterios
Atributos externos
(Ae)
• Ae1 PMax Ae1
• Ae2 PMax Ae2
.
• .
.
• .
PMax Aen
• Aen
3.10 Documentación
26
GLOSARIO DE TÉRMINOS
Adquiriente
Una organización que adquiere u obtiene un sistema, producto de software o servicio
software de un proveedor.
Atributo
Una característica física o abstracta mensurable de una entidad. Los atributos pueden
ser internos o externos.
Calidad
Son todas las características de una entidad que forman parte de su habilidad para
satisfacer las necesidades propias e implícitas.
Calidad en el empleo
Es la medida en que un producto empleado por usuarios específicos satisface sus
necesidades con efectividad, productividad y entera satisfacción para alcanzar
objetivos o metas en contextos específicos de su empleo.
Calidad externa
La extensión para la cual un producto satisface necesidades explícitas e implícitas
cuando es usado bajo condiciones específicas.
Calidad interna
Es la totalidad de atributos del producto que determinan su habilidad para satisfacer
las necesidades propias e implícitas bajo condiciones específicas.
Calificación
La acción de evaluar el valor medido al nivel de calificación adecuado. Utilizado para
determinar el nivel de calificación asociado con el software para una característica
específica de calidad.
Defecto
Un paso, proceso o definición de dato incorrecto en un programa de computadora.
Desarrollador
Una organización que realiza actividades de desarrollo (incluyendo análisis de los
requisitos, diseño y pruebas de aceptación) durante el proceso del ciclo de vida del
software.
Escala
Un conjunto de valores con propiedades definidas
Ejemplos de tipos de escalas son: una escala nominal que corresponda a un conjunto
de categorías; una escala ordinal que corresponda a un conjunto ordenado de puntos;
una escala de intervalo que corresponda a una escala ordenada con puntos
equidistantes; y una escala de ratios que no sólo tiene puntos equidistantes sino que
27
posee el cero absoluto. Las métricas utilizando escalas nominales u ordinales
producen datos cualitativos, y las métricas utilizando escalas de intervalos o ratios
producen datos cuantitativos.
Falla
La terminación de la capacidad de un producto de realizar una función requerida o su
incapacidad para realizarla dentro de límites previamente especificados.
Firmware
El firmware contiene las instrucciones e información acerca del
funcionamiento de un dispositivo o hardware, generalmente grabado en un chip. Es el
código que rige el comportamiento del mismo.
Indicador
Una medida que se puede utilizar para estimar o para predecir otra medida. Los
indicadores pueden emplearse para evaluar los atributos cualitativos del software y
para calcular los atributos del proceso de desarrollo. Ambos son valores indirectos e
imprecisos de los atributos.
Medición
Actividad que usa la definición de la métrica para producir el valor de una medida.
Medida
Número o categoría asignada a un atributo de una entidad mediante una medición.
Medida directa
Una medida de un atributo que no depende de la medida de ningún otro atributo.
Métrica
Es un método definido de valoración y su escala de valoración.
Las métricas pueden ser internas o externas, directas o indirectas.
Las métricas incluyen métodos para clasificar la data o información cualitativa en
diferentes categorías.
Medida externa
Una medida indirecta de un producto derivada de las medidas del comportamiento del
sistema del que es parte.
El sistema incluye cualquier hardware, software (ya sea software a medida o software
tipo paquete) y usuarios.
El número de fallas encontradas durante las pruebas es una medida externa del
número de fallas en el programa, porque el número de fallas es contado durante la
operación del programa corriendo en un sistema de cómputo.
Las medidas externas pueden ser usadas para evaluar los atributos de calidad
cercanos a los objetivos finales de diseño.
Modelo cualitativo
Es una serie de características y la relación entre las mismas, que conforman la base
de los requerimientos cualitativos específicos y la valoración cualitativa.
28
Módulo de evaluación
Un paquete de tecnología de evaluación para una característica o sub característica
de calidad de un software específico. El paquete incluye métodos y técnicas de
evaluación, entradas a ser evaluadas, datos a ser medidos y recopilados y
procedimientos y herramientas de soporte.
Necesidades implícitas
Necesidades que pueden no haber sido especificadas pero que son necesidades
reales cuando la entidad es usada en condiciones particulares.
Necesidades implícitas son necesidades reales, las cuales pueden no haber sido
documentadas.
Nivel de calificación
Un punto en la escala ordinal que es utilizado para categorizar una escala de medida.
El nivel de calificación habilita al software para ser clasificado de acuerdo con las
necesidades explícitas o implícitas.
Los niveles de clasificación adecuados pueden ser asociados con las vistas diferentes
de calidad, por ejemplo, usuarios, gerentes o desarrolladores.
Producto de software
El conjunto de programas de cómputo, procedimientos, y posible documentación y
datos asociados.
Los productos incluyen productos intermedios y productos para los usuarios, como los
desarrolladores y personal de soporte.
Proveedor
Una organización que entra a un contrato con el adquiriente para el suministro de un
sistema, producto de software o servicio de software bajo los términos de dicho
contrato.
Servicio
Es una organización que presta servicios de mantenimiento.
Sistema
Una composición integrada que consiste en uno o más procesos, hardware, software,
instalaciones y personas, que proveen una capacidad para satisfacer una necesidad
establecida o un objetivo.
Software
Todo o parte de los programas, procedimientos, reglas y documentación asociada a un
sistema de procesamiento de información.
El software es una creación intelectual que es independiente del medio en el cual fue
grabado.
29
Usuario
Un individuo que utiliza el producto de software para realizar una función específica.
Los usuarios pueden incluir operadores, receptores de los resultados del software,
desarrolladores o personal de soporte de software.
Valoración
Emplear una métrica para asignar uno de los valores de una escala (el mismo que
puede ser un número o categoría) al atributo de una entidad.
La valoración puede ser cualitativa cuando se emplean categorías. Por ejemplo,
algunos de los atributos importantes de los productos de software, tales como el
lenguaje del programa base (ADA, C, COBOL, etc.) son categorías cualitativas.
Valoración indirecta
Es la valoración de un atributo derivada del valor de uno o más atributos diferentes. La
valoración externa de un atributo de un sistema de cómputo (tal como el tiempo de
respuesta a la información alimentada por el usuario) es una valoración indirecta de
los atributos del software, dado que esta medida se verá influenciada por los atributos
del entorno de cómputo, así como por los atributos propios del software.
Valoración interna
Es una valoración del producto en sí, ya sea directa o indirecta.
El número de líneas del código, las valoraciones de complejidad, el número de fallas
encontradas durante el proceso y el índice de señales o alertas, son todas las
valoraciones internas propias del producto en sí.
Valorar (verbo)
Realizar una valoración o estimación.
Valor (sustantivo)
Es el número o categoría que una entidad le asigna a un atributo al efectuar la
valoración.
Valoración Cualitativa
Es una evaluación sistemática del grado o capacidad de una entidad para satisfacer
necesidades o requerimientos específicos.
Dichos requerimientos pueden ser formalmente especificados, por ejemplo, por el área
de desarrollo de sistemas, cuando el producto se diseña por contrato para un usuario
específico, cuando el producto es desarrollado sin un usuario específico, o bien que
se trate de necesidades más generales, como cuando un usuario evalúa los productos
con propósitos de comparación y selección.
Validación
Confirmación por inspección y provisión de evidencia objetiva de que los
requerimientos particulares para un uso específico son alcanzados.
En diseño y desarrollo, la validación está relacionada con el proceso de reexaminación
de un producto para determinar la conformidad con las necesidades del usuario.
La validación es realizada normalmente sobre el producto final bajo condiciones
operacionales definidas. Puede ser necesaria en las fases iniciales.
“Validado” es utilizado para designar el estado correspondiente.
30
Verificación
Confirmación por examen y provisión de evidencia objetiva que los requerimientos
específicos han sido alcanzados.
En diseño y desarrollo, la verificación está relacionada con el proceso de examinar el
resultado de una actividad dada para determinar su conformidad con los
requerimientos definidos para dicha actividad.
“Verificado” es utilizado para designar el estado correspondiente.
31
BIBLIOGRAFÍA
32
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
La gestión
por procesos
Capítulo 4
La gestión por procesos
Edición MAYO 2005 1
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
Índice
Capítulo 4
La gestión por procesos
Edición MAYO 2005 2
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
1
Puede leer una descripción detallada de los ocho principios, de los posibles beneficios que se derivan de su aplicación y de la
forma en que puede materializarse su aplicación en el documento IV.A1 – Los principios de la gestión de la calidad.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 1
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
1. Enfoque al cliente
Las organizaciones dependen de sus clientes y por lo tanto deberían comprender las
necesidades actuales y futuras de los clientes, satisfacer los requisitos de los clientes
y esforzarse en exceder las expectativas de los clientes.
2. Liderazgo
5. Enfoque a la gestión
SISTEMA - ORGANIZACIÓN
Sistema - Función X Sistema - Función Y
Proceso A Proceso B Proceso C Proceso D
ACTIVIDAD ACTIVIDAD ACTIVIDAD ACTIVIDAD
1 4 7 10
ACTIVIDAD
3
ACTIVIDAD
5
ACTIVIDAD
6
ACTIVIDAD
8
ACTIVIDAD
9
ACTIVIDAD
11
ACTIVIDAD
12
A B C
POLÍTICA DE LA CALIDAD
MISION DE LA ORGANIZACIÓN
6. Mejora continua
Planificar
Mejora
permanente de ésta.
Ejecut ar
Continua
C Comprobar D
Capítulo 4
La gestión por procesos
Edición MAYO 2005 2
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
Cuando una organización se plantea la mejora global de sus resultados, la primera acción que
debe llevar a cabo es identificar cuál es su posición dentro de su sector de mercado y dentro de
la sociedad para después plantearse los objetivos y metas que espera alcanzar. Para lograr
estos objetivos y metas, la Dirección debe desarrollar la misión, la visión y los valores de la
organización.
Los valores y principios constituyen el soporte para la visión y la misión y son la clave de una
dirección eficaz. Es necesario que las partes interesadas definan una serie de valores y se
aseguren de que se cumplan. Si, por ejemplo, uno de los valores esenciales de una organización
de transporte es “ante todo la calidad”, esta organización no podrá permitirse ofrecer, a
sabiendas, un servicio de dudosa calidad para alcanzar una meta a corto plazo. Saltarse valores
para lograr una misión puede hacerle ganar una batalla, pero en último término hará que pierda
la guerra.
Estos conduce a una caracterización del negocio que obliga a la organización a realizar un
ejercicio de reflexión cuyo resultado ha de permitir dos cosas. Por una parte, definir:
Por otra parte, determinar los factores críticos de éxito de nuestro negocio. En el gráfico adjunto
se muestran los factores más importantes que pueden influir a la hora de caracterizar a una
organización de transportes:
COMPETENCIA
TENDENCIAS
ECONÓMICAS NORMATIVA
ESTRATEGIA
ACCIONISTAS CONOCIMIENTO
ENTORNO
CLIENTES SISTEMA DE
GESTIÓN
ESTRUCTURA
RECURSOS
INNOVACIÓN
PROVEEDORES TECNOLÓGICA
SOCIEDAD
Factores externos
Factores internos
Capítulo 4
La gestión por procesos
Edición MAYO 2005 3
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
La caracterización del negocio suele plasmarse en la Declaración de Propósitos (DP), que incluye
la misión, la visión y los valores de la organización. Una DP ha de ser fácil de recordar,
contundente y, por consiguiente, relativamente breve2.
Ayudan a distinguir entre lo que es conveniente y lo que es un requisito esencial, con el objetivo
de establecer prioridades
La identificación de los FCE debe incluir factores externos, como los niveles de satisfacción de
los clientes y los vínculos comerciales con los proveedores (por ejemplo, conductores
subcontratados), así como los factores internos, como un personal motivado y bien cualificado.
En la identificación de los FCE han de colaborar todas las partes interesadas en la actividad,
proceso o proyecto a analizar. Este hecho incluye no sólo a todo el personal interno involucrado,
sino también a las partes externas, es decir, a los clientes y a los proveedores o subcontratados.
Como punto de partida para identificar los FCE, se debe elaborar un análisis DAFO (Debilidades,
Amenazas, Fuerzas y Oportunidades). Una vez obtenidos los resultados del análisis DAFO, se
clasificarán. Esta categorización deberá ser acorde con la DP. Para saber si esta categorización
es correcta, las partes involucradas deberán analizar si el fracaso de una de estas categorías
podría poner en peligro la consecución de la DP. Si la respuesta es afirmativa, esta categoría
será un FCE3.
Sugerencia:
El número ideal de FCE seleccionados no debiera ser mayor de ocho. Antes que por la
cantidad, hay que esforzarse por la calidad. Lo que se pretende con esto es identificar los
FCE más importantes que representen la mayor parte del éxito de la organización.
Como ejemplo de FCE, podemos tomar los criterios definidos en el modelo de excelencia
empresarial de la EFQM (Fundación Europea para la Gestión de la Calidad). Estos criterios son:
Resultados empresariales
Satisfacción del cliente
Satisfacción del personal
Impacto en la sociedad
Proceso
2
Pueden verse algunos ejemplos de la DP de algunas organizaciones de transporte en el documento IV.A2 – Ejemplos de
Declaraciones de propósitos en organizaciones de transporte.
3
Puede obtenerse más detalles y ejemplos que ayudan a elaborar un DAFO en el documento IV.A3 – Elaboración de un análisis
DAFO en organizaciones de transportes.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 4
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
A pesar de que la mayor parte de estos criterios pueden convertirse en FCE, es absolutamente
necesario que cada organización de transporte los interprete a la luz de sus propias circunstancias
y se asegure altos niveles de compromiso y participación por parte de los interesados.
Sugerencia:
El proceso general de planificación comienza en el mismo momento en que los máximos directivos
de la organización piensan en los logros futuros que desearían alcanzar y en el tipo de
organización que les gustaría estar dirigiendo.
Principios básicos de la
gestión de la calidad Identificar misión La razón de ser de la organización
Establecer factores
Entorno social, legal,
comercial y tecnológico críticos del éxito Conjunto priorizado y ordenado de aspectos clave
Capítulo 4
La gestión por procesos
Edición MAYO 2005 5
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
La Dirección debe dotar a la organización de una estructura que permita cumplir con la misión y
la visión establecidas. La implantación de la gestión de procesos se ha revelado como una de
las herramientas de mejora de la gestión más efectivas para todos los tipos de organizaciones.
Cualquier actividad, o conjunto de actividades ligadas entre sí, que utiliza recursos y controles
para transformar elementos de entrada (especificaciones, recursos, información, servicios,…) en
resultados (otras informaciones, servicios,…) puede considerarse como un proceso. Los
resultados de un proceso han de tener un valor añadido respecto a las entradas y pueden
constituir directamente elementos de entrada del siguiente proceso, como muestra el gráfico
adjunto.
R R
RECURSOS
S E S
E PROC A PROC B
E R E R
ENTRADA ACTIVIDADES DEL
SALIDA
C C
PROCESO
S E S
E PROC C PROC D
CONTROLES
C C
Todas las actividades de la organización, desde la planificación de las compras hasta la atención
de una reclamación, pueden y deben considerarse como procesos. Para operar de manera
eficaz, las organizaciones tienen que identificar y gestionar numerosos procesos
interrelacionados y que interactúan. La identificación y gestión sistemática de los procesos que
se realizan en la organización y en particular las interacciones entre tales procesos se conoce
como enfoque basado en procesos.
ISO 9001 pretende fomentar la adopción del enfoque basado en procesos para gestionar una
organización. Este tipo de gestión por procesos, cuando se utiliza en el desarrollo, la
implementación y la mejora de la eficacia de un Sistema de Gestión de la Calidad (SGC),
concentra su atención en:
Los servicios de transporte se caracterizan por unas condiciones (los medios, el personal, las
condiciones ambientales, etc.) que, en general, nunca se repetirán de forma idéntica. Para
asegurar los resultados es vital generar y establecer procesos con mecanismos de control que
permitan corregir previamente las posibles desviaciones.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 6
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
La gestión por procesos está dirigida a realizar procesos competitivos y capaces de reaccionar
autónomamente a los cambios mediante el control constante de la capacidad de cada proceso, la
mejora continua, la flexibilidad estructural y la orientación de las actividades hacia la plena
satisfacción del cliente y de sus necesidades. Es uno de los mecanismos más efectivos para que
la organización alcance unos altos niveles de eficiencia.
En los últimos años un gran número de organizaciones de transporte implantaron SGC con
objeto de “documentar lo que hacían y hacer lo que documentaban”. Estos SGC venían a ser
simples recopilaciones de la forma de enfocar o cumplir los 20 elementos de la norma ISO
9002:1994. La idea era la de cumplir con todos los requisitos de esta norma, muchas veces de
forma independiente de las necesidades de la propia organización de transporte.
Esta situación llevó a que muchas organizaciones obtuviesen como único beneficio de su SGC la
diferenciación comercial en el mercado con respecto a la competencia por la obtención del
certificado. La revisión en el año 2000 de la familia de normas ISO 9000, introduce un
planteamiento diferente (pasar del aseguramiento de la calidad a la gestión de la calidad),
fundamentado en los ocho Principios de gestión de la calidad, para hacerlos más acordes con los
criterios del modelo de excelencia para la Calidad EFQM.
La siguiente figura ilustra el modelo ISO 9001 de un SGC basado en procesos y refleja
gráficamente la integración de los cuatro pilares básicos de la norma ISO 9001 (Responsabilidad
de la Dirección, Gestión de los recursos, Prestación del servicio y Medición, análisis y mejora).
Dado que es un modelo de todos los procesos del SGC, permite demostrar, por medio de bucles,
la integración vertical y horizontal de los procesos.
Mejora continua del
sistema de gestión de la calidad
Responsabilidad
Clientes de la Dirección Clientes
Leyenda
Actividades que aportan valor Modelo de un SGC basado en
procesos, según ISO 9001
Flujo de información
Capítulo 4
La gestión por procesos
Edición MAYO 2005 7
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
El modelo de procesos no trata de reflejar los procesos de forma detallada. Sin embargo, todos
los requisitos del SGC encaminados a lograr la conformidad de los productos o servicios pueden
ser llevados a cabo dentro del modelo. Aunque siempre ha resultado necesario gestionar de uno
u otro modo las relaciones que se plantean entre las diversas actividades que se llevan a cabo
en las organizaciones, lo que aporta el modelo de procesos es que la gestión de las
organizaciones se centra en las actividades que resultan críticas para generar valor añadido.
Para adoptar un enfoque basado en procesos, la organización debe identificar todas y cada una
de las actividades que realiza. A la representación gráfica, ordenada y secuencial de todas las
actividades o grupos de actividades se le llama mapa de procesos y sirve para tener una
visión clara de las actividades que aportan valor al producto/servicio recibido finalmente por el
cliente. En su elaboración debería intervenir toda la organización, a través de un equipo
multidisciplinar con presencia de personas conocedoras de los diferentes procesos.
Una característica importante de los procesos, que queda de manifiesto en cuanto se elabora el
mapa de procesos, es que las actividades que lo constituyen no pueden ser ordenadas de una
manera predeterminada, atendiendo a criterios sólo de jerarquía o de adscripción departamental.
Se puede decir que el proceso cruza transversalmente el organigrama de la organización y se
orienta al resultado, alineando los objetivos de la organización con las necesidades y
expectativas de los clientes, sin atender en sentido estricto a las relaciones funcionales clásicas.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 8
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
En este contexto es fundamental la figura del propietario, que es la persona que, además de
ocupar una determinada posición en el organigrama “convencional” (vertical), es responsable de
analizar el proceso, mejorarlo y especialmente conseguir sus objetivos. La organización debe
conocer quién es el propietario de cada uno de los procesos. El propietario asume la
responsabilidad global de la gestión del proceso y de su mejora continua. Por ello, debe tener la
suficiente autoridad para poder implantar los cambios en el proceso que él o el equipo de mejora
del proceso estimen oportuno.
Proceso 1
Proceso 2
En consecuencia, las personas implicadas forman parte de un grupo multidisciplinar que rinde
cuentas al responsable del proceso independientemente de las funciones de cada uno en
relación con el departamento al que pertenece. Esto se conoce como “integración horizontal”
del personal de la organización.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 9
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
Los procesos de una organización se pueden agrupar en tres tipos, como se representa en el gráfico:
1 Procesos clave. Son los procesos que tienen contacto directo con el cliente (los
procesos operativos necesarios para la realización del producto/servicio, a partir de los
cuales el cliente percibirá y valorará la calidad: comercialización, planificación del
servicio, prestación del servicio, entrega, facturación,…).
2 Procesos estratégicos. Son los procesos responsables de analizar las necesidades y
condicionantes de la sociedad, del mercado y de los accionistas, para asegurar la
respuesta a las mencionadas necesidades y condicionantes estratégicos (procesos de
gestión responsabilidad de la Dirección: marketing, recursos humanos, gestión de la
calidad,…).
3 Procesos de soporte. Son los procesos responsables de proveer a la organización de
todos los recursos necesarios en cuanto a personas, maquinaria y materia prima, para
poder generar el valor añadido deseado por los clientes (contabilidad, compras,
nóminas, sistemas de información,…).
PROCESOS ESTRATÉGICOS
SATISFACCIÓN
PLANIFICACIÓN PRESTACIÓN ENTREGA FACTURACION Y
Y
PEDIDOS
DEL SERVICIO COBRO
CLIENTE CLIENTE
CONTABILIDAD SISTEMAS DE
FORMACION
INFORMACIÓN
PERSONAL IMAGEN Y
COMPRAS
Y NÓMINAS COMUNICACIÓN
PROCESOS DE APOYO
Después de seleccionar los FCE, se deberán identificar todas aquellas actividades que afecten o
puedan afectar a la DP. El siguiente paso es conocer cuáles son los procesos que resultan ser
claves para la consecución de la DP. Para ello se suele utilizar una matriz o tabla que tiene como
objetivo priorizar los procesos que se desarrollan en la organización según su impacto real o
potencial sobre la DP. Esta herramienta permite identificar a esos “pocos procesos” que son
“críticos” en la empresa.
Costes servicios
rec. financieros
especialización
FCE
Disponibilidad
Adaptación a
instalaciones
Dimensiones
Servicios no
variaciones
Precio alto
conformes
Plazo de
entrega
Imagen
PROCESOS
Comercial
Gestión tráfico
Gestión almacén
Facturación
Mantenimiento flota
Compras y contrataciones
Mejora continua
Seguimiento calidad
Gestión incidencias
administración
Vigilancia
Imagen corporativa
Planificación estratégica
Sugerencia:
Hay que tener en cuenta que una actividad o proceso puede tener consecuencias en
muchos resultados y, al mismo tiempo, que un resultado puede estar influido por muchas
actividades.
Suele ser habitual que las organizaciones no identifiquen TODOS los procesos clave para
la consecución de la DP, como por ejemplo, el proceso de facturación.
Una vez analizados todos los procesos, debe realizarse una clasificación de los mismos por
orden de puntuación y, a continuación, deberá discutirse el resultado. Para clasificar los procesos
suelen utilizarse métodos de puntuación como, por ejemplo, asignar 3 puntos a relación alta, 2
puntos a relación media, etc.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 11
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
Sugerencia:
Es muy importante la selección de los procesos clave ya que sobre ellos se va a centrar la
gestión de la organización.
Los procesos clave inciden de un modo directo en la prestación del servicio/satisfacción del
cliente externo de la organización y, por tanto, están directamente relacionados con la misión de
la organización (los objetivos de negocio) y, en general, consumen gran parte de los recursos de
la misma. Constituyen la secuencia de valor añadido, desde la comprensión de las necesidades
del cliente hasta la recepción del producto/servicio por el cliente.
Por otra parte, en la mayoría de los casos se puede afirmar que todos los procesos que influyen
directamente en la satisfacción del cliente, también lo hacen en los resultados económicos, al
depender estos últimos de la respuesta de los clientes hacia los servicios de la organización.
La relación de procesos clave deberá ser revisada y mejorada periódicamente y siempre que la
organización cambie alguno de los procesos de la misma. En cada momento deberá asegurarse
que los procesos clave son aquellos que más contribuyen a lograr la misión de la organización.
El siguiente gráfico muestra los pasos para identificar los procesos clave para la satisfacción de
los clientes.
Análisis de procesos
Indicadores de proceso Servicio prestado
Una vez se han identificado todos los procesos de la organización (mapa de procesos), el paso
siguiente es definir y documentar cada proceso. Esto puede hacerse:
minimizar el papeleo,
facilitar la comprensión, y
permitir el trabajo en equipo.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 12
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
En breve, la definición ha de hacer posible que el proceso sea gestionado y mejorable. Para ello,
el proceso debe:
En resumen, los pasos a seguir para adoptar un enfoque basado en procesos son:
1. Constituir un equipo de trabajo con capacitación adecuada y analizar los objetivos y
actividades de la organización.
2. Identificar los procesos, clasificarlos y elaborar el mapa de procesos.
3. Determinar los factores clave para la organización.
4. Elaborar el diagrama de flujo de cada proceso.
5. Establecer el panel de indicadores de cada proceso.
6. Iniciar el ciclo de mejora sobre la base de los indicadores asociados a los factores
clave.
ISO 9001 orienta sobre los aspectos del SGC que es importante documentar y sobre cómo
deben documentarse, pero el hecho de documentar un proceso no excluye que, con el tiempo,
puedan incorporarse mejoras o encontrar otras formas más adecuadas para realizar las
actividades. Cuando, a pesar de realizar correctamente las actividades definidas para el proceso,
aparecen problemas (quejas de los destinatarios, despilfarro de recursos, etc.), o se constata que
el proceso no se adapta a lo que necesita el cliente (necesidad de reestructurar el proceso), es
necesario aplicar el ciclo de mejora.
Una acción de mejora es toda acción destinada a cambiar la forma en que se está
desarrollando un proceso. Estas mejoras, se deben reflejar en una mejora de los indicadores del
proceso. Se puede mejorar un proceso mediante aportaciones creativas, imaginación y sentido
crítico. Dentro de esta categoría entran, por ejemplo:
Vivimos en una época de cambios constantes en la que haber llegado a puerto tan sólo asegura
el punto de partida de la siguiente jornada. La mejora continua es un proceso estructurado en el
que participan todas las personas de la organización con el objeto de incrementar
progresivamente la calidad, la competitividad y la productividad, aumentando el valor para el
cliente y aumentando la eficiencia en el uso de los recursos, en el seno de un entorno cambiante.
4
Un amplio detalle sobre cómo hacer la definición y despliegue de los procesos en una organización de transportes puede verse
en el documento IV.A4 – Arquitectura de procesos.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 13
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
La aplicación continuada de esta estrategia produce beneficios para los clientes (mejor
cumplimiento de sus requisitos), para la organización (mayor sensibilidad para detectar
oportunidades y aumentar la eficiencia) y para las personas (aumento de la capacidad, la
motivación y la satisfacción por el trabajo realizado).
Algunos de los beneficios que se derivan de una adecuada mejora de procesos son:
Se disminuyen recursos (materiales, personas, dinero, mano de obra, etc.),
aumentando la eficiencia.
Se disminuyen tiempos, aumentando la productividad.
Se disminuyen errores, ayudando a prevenirlos.
Se ofrece una visión sistemática de las actividades de la organización.
Uno de los problemas que puede presentársele a una organización de transporte que trabaje
según áreas funcionales (que son la mayoría) es que cuando se disponga a mejorar algo lo haga
de una forma intuitiva, sin analizar realmente cuales son aquellas actividades que consumen más
recursos. Este problema se previene con la técnica de la mejora de procesos:
La visión global de las actividades de la organización y el análisis sistemático de éstas
impiden que alguna quede sin mejorar.
Permite a la organización centrarse en el cliente. Como todo el rediseño de los
procesos se hace pensando en el cliente, resulta casi obligatorio centrarse en éste.
Permite evaluar el "valor añadido" de todas y cada una de las actividades de la
organización y, por tanto, resulta más sencillo intentar eliminar las actividades sin "valor
añadido" y buscar la forma de aumentar éste en todas las acciones que ya lo tengan.
Mejora la "calidad total" en todas las actividades de la organización. Dado que la
calidad la define el cliente y la concentración en éste es máxima, esta mejora buscada
ayuda a la calidad pretendida, coincidiendo muchos de los objetivos de ambas.
Mejora las relaciones y la comunicación. El simple hecho de trabajar con procesos ya
implica un cierto cambio de mentalidad, tendente ésta a ser más participativa,
pensándose más en compañeros en busca de un resultado definido que en empleados
que trabajan. Todo este cambio provoca una mejora en la comunicación y en las
relaciones entre las personas.
La mejora continua de los procesos es una estrategia que permite a las organizaciones generar
valor de modo continuo, adaptándose a los cambios en el mercado y satisfaciendo
permanentemente las necesidades y expectativas cada vez más exigentes de sus clientes.
Las mejoras en los procesos podrán producirse de dos formas, de manera continua o mediante
reingeniería de procesos. La mejora continua de procesos optimiza los procesos existentes,
eliminando las operaciones que no aportan valor y reduciendo los errores o defectos del proceso.
La reingeniería, por el contrario, se aplica en un espacio de tiempo limitado y el objetivo es
conseguir un cambio radical del proceso sin respetar nada de lo existente.
Para la mejora de los procesos, la organización deberá estimular al máximo la creatividad de sus
empleados y además deberá adaptar su estructura para aprovecharla al máximo. Algunos de los
requisitos para la mejora de procesos se describen a continuación:
Apoyo de la Dirección.
Nadie va a poner todo su entusiasmo en algo que a la Dirección le resulte indiferente y
pocas personas se comprometerán a algún cambio si éste no está respaldado por la
cúpula de la organización. Por ello, el primer requisito para una mejora de los procesos
en cualquier organización es que la Dirección de ésta lo respalde y apoye totalmente.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 14
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
Sugerencia:
La idea de que una organización es un proceso de satisfacción al cliente y no un proceso
de producción de bienes y servicios es vital para todo empresario.
La organización empieza por el cliente y sus necesidades y no por una patente, una
materia prima o la habilidad para vender; parte de las necesidades del cliente.
Theodore Levitt.
Cuatro son las fases necesarias para comprender y poder mejorar continuamente los procesos.
La descripción y el detalle de cada una de ellas sigue a continuación.
5
Puede verse una descripción de herramientas útiles (modelo ISAMA, equipos de mejora, orden y limpieza, 6 Sigma, etc.) en el
documento IV.A5 – Algunas herramientas para la mejora de los procesos.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 15
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
1ª Fase: Planificar
1. Definir la misión del proceso de forma que permita la comprensión del valor añadido del
mismo respecto de su contribución a la misión general de la organización.
2. Comprender los requisitos del cliente como primer paso para la mejora de calidad.
3. Definir indicadores sólidos y consistentes que permitan la toma de decisiones respecto de la
mejora de la calidad. Es necesario estar seguro de que los datos en todo momento reflejan la
situación actual y que son coherentes con los requisitos6.
4. Evaluar el proceso identificando las ayudas y barreras existentes en el entorno y los puntos
fuertes y áreas de oportunidad del proceso en si El resultado de la evaluación nos permitirá
detectar las áreas de mejora a contemplar. Se pueden utilizar las herramientas para la
calidad descritas en el capítulo 1 (El mapa de la calidad). En particular, conviene determinar
los beneficios que la aplicación del “benchmarking” puede aportar, en cuanto al conocimiento
de prácticas adecuadas para obtener las mejoras de rendimiento necesarias.
5. Asignar un responsable de proceso que lidere la mejora continua de la eficacia y la eficiencia,
identificar las acciones adecuadas para garantizar la mejora del rendimiento y convertirlas en
planes detallados de mejora.
2ª Fase: Ejecutar
6. Llevar a cabo los planes de mejora, detallando el diseño propuesto para la solución de cada
problema.
3ª Fase: Comprobar
7. Probar y aportar pruebas que confirmen que el diseño y sus hipótesis son correctos.
8. Comparar el diseño con el resultado de las pruebas, buscando las causas del éxito o fracaso
de la solución adoptada.
4ª Fase: Actuar
9. Comparar los resultados de los indicadores con los resultados previos (comprobando de esta
forma si cada acción produce la mejora esperada, especialmente en lo relativo a la
satisfacción del cliente).
10. Si las pruebas confirman la hipótesis corresponde normalizar la solución y establecer las
condiciones que permitan mantenerla. En caso contrario, corresponde iniciar un nuevo ciclo,
volviendo a la fase de planificación (fijando nuevos objetivos, mejorando la formación del
personal, modificando la asignación de recursos, etc.).
Una organización es una unidad viva (conjunto de personas proveedoras) que pretende
sobrevivir en un determinado entorno. Para ello, a partir del análisis del mismo, lleva a cabo una
serie de actividades (procesos) dirigidas a añadir valor a recursos propios y ajenos,
transformándolos así en recursos requeridos por otras organizaciones (conjunto de personas
cliente). La voluntad y capacidad de adaptarse a las necesidades de los clientes y la voluntad y
capacidad de añadir valor, son las bases conceptuales a partir de las cuales la mejora continua
se convierte en una forma de hacer las cosas, en un estilo.
6
Una descripción detallada sobre diseño, implantación, explotación y revisión de indicadores de procesos puede leerse en el
documento IV.A6 – Gestión de indicadores.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 16
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
Es necesario que las personas conozcan la situación de partida previa a sus esfuerzos y luego
dispongan de los resultados de sus esfuerzos y los logros conseguidos (por ejemplo, el nivel de
reclamaciones existentes en función de los servicios realizados y el correspondiente porcentaje
de reducción de reclamaciones conseguido).
El hecho de que todo el personal conozca la evolución de los indicadores de calidad o los
objetivos y el que se ponga de manifiesto el buen o mal funcionamiento de las actividades que
afectan a la calidad en la organización es lo que debe mover a las personas a que trabajen en un
determinado sentido.
La organización debe tener definidos sus objetivos y su política de la calidad y contar con el
apoyo de los empleados, comprometidos todos con el fin de dar el mejor servicio posible en todo
momento y de aumentar la eficiencia y los beneficios económicos para la organización. Cada
empleado debe saber en qué medida afectará la gestión de la calidad a su trabajo y debe existir
un consenso general en que la implantación del sistema es por el interés de la organización y en
que aportará ventajas a todas sus áreas.
La Dirección debe fomentar el trabajo en equipo y una cultura empresarial basada en los
resultados, la responsabilidad y el compromiso de sus empleados. Debe crear equipos que sean
capaces de gestionar y mejorar los procesos en los que intervienen. Cuando la Dirección asume
realmente el liderazgo de la gestión de la calidad y se convierte en la impulsora del proceso de
mejora continua en su organización, debe hacerlo involucrando de manera estable a todo el
personal (basarse en voluntarios que se reúnen fuera del horario de trabajo, no ayuda a poner de
relieve que el tema tiene gran importancia).
Es necesario que cada empleado conozca exactamente lo que se espera de él y cómo será
evaluada su contribución a los objetivos de la organización. Las personas se han de implicar en
la detección de errores y en la elaboración de estrategias de mejora. La Dirección debe ser
capaz de motivar y reconocer a sus empleados. Reconocer significa comunicarles y hacerles
saber que la organización aprecia y valora su labor y su esfuerzo. El reconocimiento es una
poderosa fuerza que puede aportar a los empleados:
Ganas de pertenecer a la organización.
Sentimiento de grupo.
Ganas de trabajar y de esforzarse.
Autoestima personal y de grupo7.
La mejora continua es un valor que no puede ser impuesto a los empleados, sino que tiene que
salir de ellos mismos. Conseguir que los empleados puedan aportar lo mejor de si mismos y así
garantizar el éxito en la mejora continua de la organización exige gestionar tres requisitos, como
muestra el siguiente gráfico.
7
Pueden leerse algunas orientaciones sobre aspectos de la calidad y recursos humanos en el documento IV.A7 – Aspectos de la
gestión de la calidad relacionados con el factor humano.
Capítulo 4
La gestión por procesos
Edición MAYO 2005 17
Modelos para implantar la mejora continua en la gestión
de empresas de transporte por carretera
Poder
Querer
Motivación Sistema
Trabajo
bien hecho
Formación
Saber
Capítulo 4
La gestión por procesos
Edición MAYO 2005 18
Desarrollo Orientado a
Objetos con UML
Índice
I UML ...............................................................................................................................1
I.1 Introducción...........................................................................................................................................................1
II.1 Modelos..................................................................................................................................................................3
i
Desarrollo Orientado a Objetos con UML
III.2.1 Componentes...............................................................................................................................................17
III.2.1.1 Interfaces..............................................................................................................................................18
III.2.1.2 Tipos de componentes .......................................................................................................................19
III.2.1.3 Organización de componentes..........................................................................................................19
III.2.1.4 Estereotipos de componentes............................................................................................................19
III.2.2 Despliegue ...................................................................................................................................................19
III.2.2.1 Nodos....................................................................................................................................................19
III.2.2.2 Nodos y componentes........................................................................................................................20
III.2.3 Diagramas de Componentes .....................................................................................................................21
III.2.3.1 Algunos conceptos .............................................................................................................................21
III.2.3.2 Usos más comunes .............................................................................................................................21
III.2.4 Diagramas de Despliegue..........................................................................................................................22
III.2.4.1 Técnicas más comunes de modelado ..............................................................................................22
III.2.5 Arquitectura del Sistema ...........................................................................................................................23
III.2.5.1 Arquitectura de tres niveles ..............................................................................................................23
III.2.5.2 Arquitectura de tres niveles orientadas a objetos..........................................................................23
III.2.5.3 Arquitectura MULTI-nivel ...............................................................................................................23
III.2.5.4 Paquetes................................................................................................................................................24
III.2.5.5 Identificación de Paquetes.................................................................................................................24
ii
Desarrollo Orientado a Objetos con UML
V BIBLIOGRAFÍA........................................................................................................47
iii
I.1 Introducción 1
I UML
I.1 Introducción
UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y
documentar los elementos que forman un sistema software orientado a objetos. Se ha convertido
en el estándar de facto de la industria, debido a que ha sido concebido por los autores de los tres
métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh.
Estos autores fueron contratados por la empresa Rational Software Co. para crear una notación
unificada en la que basar la construcción de sus herramientas CASE. En el proceso de creación
de UML han participado, no obstante, otras empresas de gran peso en la industria como
Microsoft, Hewlett-Packard, Oracle o IBM, así como grupos de analistas y desarrolladores.
Esta notación ha sido ampliamente aceptada debido al prestigio de sus creadores y debido a que
incorpora las principales ventajas de cada uno de los métodos particulares en los que se basa:
Booch, OMT y OOSE. UML ha puesto fin a las llamadas “guerras de métodos” que se han
mantenido a lo largo de los 90, en las que los principales métodos sacaban nuevas versiones que
incorporaban las técnicas de los demás. Con UML se fusiona la notación de estas técnicas para
formar una herramienta compartida entre todos los ingenieros software que trabajan en el
desarrollo orientado a objetos.
Booch’93 OMT - 2
Experiencia de las
empresas participantes en
UML
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
2 I.1 Introducción
El objetivo principal cuando se empezó a gestar UML era posibilitar el intercambio de modelos
entre las distintas herramientas CASE orientadas a objetos del mercado. Para ello era necesario
definir una notación y semántica común. En la Figura 2 se puede ver cuál ha sido la evolución
de UML hasta la creación de UML 1.1.
Hay que tener en cuenta que el estándar UML no define un proceso de desarrollo específico, tan
solo se trata de una notación. En este curso se sigue el método propuesto por Craig Larman
[Larman99] que se ajusta a un ciclo de vida iterativo e incremental dirigido por casos de uso.
En la parte II de este texto se expone la notación y semántica básica de UML, en la parte III se
presentan conceptos avanzados de la notación UML, mientras que en la parte IV se presenta el
método de desarrollo orientado a objetos de Larman, que se sirve de los modelos de UML que
se han visto anteriormente.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
II.1 Modelos 3
En esta parte se verá cómo se representan gráficamente en UML los conceptos principales de la
orientación a objetos.
II.1 Modelos
Un modelo representa a un sistema software desde una perspectiva específica. Al igual que la
planta y el alzado de una figura en dibujo técnico nos muestran la misma figura vista desde
distintos ángulos, cada modelo nos permite fijarnos en un aspecto distinto del sistema.
Los modelos de UML que se tratan en esta parte son los siguientes:
• Diagrama de Estructura Estática.
• Diagrama de Casos de Uso.
• Diagrama de Secuencia.
• Diagrama de Colaboración.
• Diagrama de Estados.
II.2.2 Dependencias
La relación de dependencia entre dos elementos de un diagrama significa que un cambio en el
elemento destino puede implicar un cambio en el elemento origen (por tanto, si cambia el
elemento destino habría que revisar el elemento origen).
Una dependencia se representa por medio de una línea de trazo discontinuo entre los dos
elementos con una flecha en su extremo. El elemento dependiente es el origen de la flecha y el
elemento del que depende es el destino (junto a él está la flecha).
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
4 II.3 Diagramas de Estructura Estática
Pueden existir
dependencias entre dos
elementos cualesquiera
Figura 4 Dependencias
II.3.1 Clases
Una clase se representa mediante una caja subdividida en tres partes: En la superior se muestra
el nombre de la clase, en la media los atributos y en la inferior las operaciones. Una clase puede
representarse de forma esquemática (plegada), con los detalles como atributos y operaciones
suprimidos, siendo entonces tan solo un rectángulo con el nombre de la clase. En la Figura 5 se
ve cómo una misma clase puede representarse a distinto nivel de detalle según interese, y según
la fase en la que se esté.
#temperatura_muestreada: Temperatura
establecer_temp ()
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
II.3 Diagramas de Estructura Estática 5
II.3.2 Objetos
Un objeto se representa de la misma forma que una clase. En el compartimento superior
aparecen el nombre del objeto junto con el nombre de la clase subrayados, según la siguiente
sintaxis:
nombre_del_objeto: nombre_de_la_clase
Puede representarse un objeto sin un nombre específico, entonces sólo aparece el nombre de la
clase.
:Termostato coordenada_x = 0
coordenada_y = 0
temperatura_deseada = 20°
Objeto p1de la clase Punto
temperatura_muestreada = 18°
p1: Punto
establecer_temp ()
coordenada_x = 8,53
coordenada_y = 41,29
II.3.3 Asociaciones
Las asociaciones entre dos clases se representan mediante una línea que las une. La línea puede
tener una serie de elementos gráficos que expresan características particulares de la asociación.
A continuación se verán los más importantes de entre dichos elementos gráficos.
manda sobre
Director Empleado
Los nombres de las asociaciones normalmente se incluyen en los modelos para aumentar la
legibilidad. Sin embargo, en ocasiones pueden hacer demasiado abundante la información que
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
6 II.3 Diagramas de Estructura Estática
se presenta, con el consiguiente riesgo de saturación. En ese caso se puede suprimir el nombre
de las asociaciones consideradas como suficientemente conocidas.
En las asociaciones de tipo agregación y de herencia no se suele poner el nombre.
II.3.3.2 Multiplicidad
Corresponde_a
Cuenta Operación
Bancaria 1 *
Vive_con
Nieto Abuelo
* 0..4
La multiplicidad es una restricción que se pone a una asociación, que limita el número de
instancias de una clase que pueden tener esa asociación con una instancia de la otra clase. Puede
expresarse de las siguientes formas:
• Con un número fijo: 1.
• Con un intervalo de valores: 2..5.
• Con un rango en el cual uno de los extremos es un asterisco. Significa que es un intervalo
abierto. Por ejemplo, 2..* significa 2 o más.
• Con una combinación de elementos como los anteriores separados por comas: 1, 3..5, 7,
15..*.
• Con un asterisco: * . En este caso indica que puede tomar cualquier valor (cero o más).
II.3.3.3 Roles
Para indicar el papel que juega una clase en una asociación se puede especificar un nombre de
rol. Se representa en el extremo de la asociación junto a la clase que desempeña dicho rol.
Emplea
Empresa * 1..* Trabajador
Contratante Empleado
2
Padre Es_padre_de
Persona
Hijo
*
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
II.3 Diagramas de Estructura Estática 7
II.3.3.4 Agregación
El símbolo de agregación es un diamante colocado en el extremo en el que está la clase que
representa el “todo”.
CPU
Ordenador Pantalla
Teclado
Emplea
Empresa * 1..* Trabajador
Contratante Empleado
salario
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
8 II.3 Diagramas de Estructura Estática
Año
Temporada *
Juega
Equipo 1 * Jugador
Equipo Delantero
goles en juego
goles a balón parado
goles de penalty
II.3.3.7 Navegabilidad
En un extremo de una asociación se puede indicar la navegabilidad mediante una flecha.
Significa que es posible "navegar" desde el objeto de la clase origen hasta el objeto de la clase
destino. Se trata de un concepto de diseño, que indica que un objeto de la clase origen conoce al
(los) objeto(s) de la clase destino, y por tanto puede llamar a alguna de sus operaciones.
II.3.4 Herencia
La relación de herencia se representa mediante un triángulo en el extremo de la relación que
corresponde a la clase más general o clase “padre”.
Departamento
Si se tiene una relación de herencia con varias clases subordinadas, pero en un diagrama
concreto no se quieren poner todas, esto se representa mediante puntos suspensivos. En el
ejemplo de la Figura 13, sólo aparecen en el diagrama 3 tipos de departamentos, pero con los
puntos suspensivos se indica que en el modelo completo (el formado por todos los diagramas) la
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
II.4 Diagrama de Casos de Uso 9
clase “Departamento” tiene subclases adicionales, como podrían ser “Recursos Humanos” y
“Producción”.
Persona
Un elemento derivado es aquel cuyo valor se puede calcular a partir de otros elementos
presentes en el modelo, pero que se incluye en el modelo por motivos de claridad o como
decisión de diseño. Se representa con una barra “/” precediendo al nombre del elemento
derivado.
II.4.1 Elementos
Los elementos que pueden aparecer en un Diagrama de Casos de Uso son: actores, casos de uso
y relaciones entre casos de uso.
II.4.1.1 Actores
Un actor es una entidad externa al sistema que realiza algún tipo de interacción con el mismo.
Se representa mediante una figura humana dibujada con palotes. Esta representación sirve tanto
para actores que son personas como para otro tipo de actores (otros sistemas, sensores, etc.).
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
10 II.5 Diagramas de Interacción
En el diagrama de casos de uso se representa también el sistema como una caja rectangular con
el nombre en su interior. Los casos de uso están en el interior de la caja del sistema, y los
actores fuera, y cada actor está unido a los casos de uso en los que participa mediante una línea.
En la Figura 15 se muestra un ejemplo de Diagrama de Casos de Uso para un cajero automático.
Cajero Automático
Realizar
Reintegro
Realizar
Cliente Reintegro
con VISA
Obtener Últimos
Movimientos y Saldo
Agregar
Billetes
Empleado de
Sucursal
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
II.5 Diagramas de Interacción 11
:ClaseA :ClaseB
mensaje1( )
mensaje2( )
mensaje3( )
tratar_mensaje(mensaje)
c:Comando-2
1b [mensaje.tipo = 2] : crear(mensaje)
1.1: lanzar()
c:Comando
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
12 II.6 Diagrama de Estados
mensajes son flechas que van junto al enlace por el que “circulan”, y con el nombre del mensaje
y los parámetros (si los tiene) entre paréntesis.
Cada mensaje lleva un número de secuencia que denota cuál es el mensaje que le precede,
excepto el mensaje que inicia el diagrama, que no lleva número de secuencia. Se pueden indicar
alternativas con condiciones entre corchetes (por ejemplo 3 [condición_de_test] :
nombre_de_método() ), tal y como aparece en el ejemplo de la Figura 17. También se puede
mostrar el anidamiento de mensajes con números de secuencia como 2.1, que significa que el
mensaje con número de secuencia 2 no acaba de ejecutarse hasta que no se han ejecutado todos
los 2. x .
[número.es_válido()]
dígito(n)
Un diagrama de estados puede representar ciclos continuos o bien una vida finita, en la que hay
un estado inicial de creación y un estado final de destrucción (del caso de uso o del objeto). El
estado inicial se muestra como un círculo sólido y el estado final como un círculo sólido
rodeado de otro círculo. En realidad, los estados inicial y final son pseudoestados, pues un
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
II.6 Diagrama de Estados 13
objeto no puede “estar” en esos estados, pero nos sirven para saber cuáles son las transiciones
inicial y final(es).
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
14 III.1 Modelado Dinámico
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
III.1 Modelado Dinámico 15
ProcesarFactura(Fact)
entry/SacarPrimeraFactura(Fact)
III.1.2.2 Transiciones
Las transiciones reflejan el paso de un estado a otro, bien sea de actividad o de acción. Esta
transición se produce como resultado de la finalización del estado del que parte el arco dirigido
que marca la transición. Como todo flujo de control debe empezar y terminar en algún
momento, podemos indicar esto utilizando dos disparadores de inicio y fin tal y como queda
reflejado en el ejemplo de la Figura 21.
Estado inicial
Activar Cajero
Desactivar Cajero
Estado de Parada
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
16 III.1 Modelado Dinámico
III.1.2.3 Bifurcaciones
Un flujo de control no tiene porqué ser siempre secuencial, puede presentar caminos
alternativos. Para poder representar dichos caminos alternativos o bifurcación se utilizará como
símbolo el rombo. Dicha bifurcación tendrá una transición de entrada y dos o más de salida. En
cada transición de salida se colocará una expresión booleana que será evaluada una vez al llegar
a la bifurcación, las guardas de la bifurcación han de ser excluyentes y contemplar todos los
casos ya que de otro modo la ejecución del flujo de control quedaría interrumpida.
Para poder cubrir todas las posibilidades se puede utilizar la palabra ELSE, para indicar una
transición obligada a un determinado estado cuando el resto de guardas han fallado.
En la Figura 22 podemos ver un ejemplo de bifurcación.
Contabilizar
Materiales
[Materiales no disponibles]
Figura 22 Bifurcación
División
Unión
III.1.2.5 Calles
Cuando se modelan flujos de trabajo de organizaciones, es especialmente útil dividir los estados
de actividades en grupos, cada grupo tiene un nombre concreto y se denominan calles. Cada
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
III.2 Modelado Físico De Un Sistema OO 17
calle representa a la parte de la organización responsable de las actividades que aparecen en esa
calle. Gráficamente quedaría como se muestra en la Figura 24.
Figura 24 Calles
En UML todos los elementos físicos se modelan como componentes. UML proporciona una
representación gráfica para estos como se puede ver en la Figura 25, en la que XXXX.dll, es el
nombre del componente.
XXXX.dll
Cada componente debe tener un nombre que lo distinga de los demás. Al igual que las clases los
componentes pueden enriquecerse con compartimentos adicionales que muestran sus detalles,
como se puede ver en la Figura 26.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
18 III.2 Modelado Físico De Un Sistema OO
Expresion.dll
CalculaExpresionLógica
CalculaExpresionAritm
Vamos a ver con más detalle cuáles son los parecidos y las diferencias entre los componentes y
las clases.
PARECIDOS
Ambos tienen nombre
Ambos pueden realizar un conjunto de interfaces.
Pueden participar en relaciones de dependencia, generalización y
asociación.
Ambos pueden anidarse
Ambos pueden tener instancias
Ambos pueden participar en interacciones
DIFERENCIAS
Las Clases Los Componentes
Representan abstracciones lógicas Representan elementos físicos
Es decir los componentes pueden estar en nodos y las clases no
III.2.1.1 Interfaces
Tanto los servicios propio de una clase como los de un componente, se especifican a través de
una Interfaz. Por ejemplo, todas las facilidades más conocidas de los sistemas operativos,
basados en componentes (COM+, CORBA, etc.), utilizan las interfaces como lazo de unión
entre unos componentes y otros.
La relación entre un componente y sus interfaces se puede representar de dos maneras
diferentes, de forma icónica como se indica en la Figura 27, y de forma expandida como se
muestra en la Figura 28.
ObservadorDeImagen
Componente.java Imagen.java
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
III.2 Modelado Físico De Un Sistema OO 19
«Interfaz»
Componente.java ObservadorDeImagen Imagen.java
ActualizarImagen() Booolean
III.2.2 Despliegue
III.2.2.1 Nodos
Al igual que los componentes los nodos pertenecen al mundo material. Vamos a definir un nodo
como un elemento físico, que existe en tiempo de ejecución y representa un recurso
computacional que generalmente tiene alguna memoria y, a menudo, capacidad de
procesamiento.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
20 III.2 Modelado Físico De Un Sistema OO
Los nodos sirven para modelar la topología del hardware sobre el que se ejecuta el sistema. Un
nodo representa normalmente un procesador o un dispositivo sobre el que se pueden desplegar
los componentes.
Un nodo debe tener un nombre asignado que lo distinga del resto de nodos. Además los nodos
se representan gráficamente como se indica en la Figura 29.
Nombre
del nodo
Figura 29 Nodos
PARECIDOS
Ambos tienen nombre
Pueden participar en relaciones de dependencia, generalización y
asociación.
Ambos pueden anidarse
Ambos pueden tener instancias
Ambos pueden participar en interacciones
DIFERENCIAS
Los Nodos Los Componentes
Son los elementos donde se ejecutan Son los elementos que participan en
los componentes. la ejecución de un sistema.
Representan el despliegue físico de Representan el empaquetamiento
los componentes. físico de los elementos lógicos.
La relación entre un nodo y los componentes que despliega se pueden representar mediante una
relación de dependencia como se indica en la Figura 30.
Los nodos se pueden agrupar en paquetes igual que los las clases y los componentes.
Los tipos de relación más común entre nodos es la asociación. Una asociación entre nodos viene
a representar una conexión física entre nodos como se puede ver en la Figura 31.
Ventas
Proveedores.exe Facturas.exe
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
III.2 Modelado Físico De Un Sistema OO 21
Servidor
HUB
Terminal
Existen dos tipos de diagramas que sirven para modelar los aspectos físicos de un sistema
orientado a objetos:
Ø Diagramas de Componentes
Ø Diagramas de Despliegue
Seguidamente veremos para qué sirve cada uno de ellos y cual es su representación gráfica.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
22 III.2 Modelado Físico De Un Sistema OO
Para poder llevar a cabo esta gestión con éxito será necesario definir los estereotipos de ficheros
que se quieren tener bajo control así como las relaciones entre dichos tipos de ficheros.
Para modelar el código fuente de un sistema:
Ø Hay que identificar el conjunto de archivos de código fuente de interés y modelarlos
como componentes estereotipados como archivos.
Ø Si el sistema es muy grande es necesario utilizar los paquetes para agrupar los archivos
de código fuente.
Ø Es necesario identificar la versión del componente.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
III.2 Modelado Físico De Un Sistema OO 23
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
24 III.2 Modelado Físico De Un Sistema OO
III.2.5.4 Paquetes
La forma que tiene UML de agrupar elementos en subsistemas es a través del uso de Paquetes,
pudiéndose anidar los paquetes formando jerarquías de paquetes. De hecho un sistema que no
tenga necesidad de ser descompuesto en subsistemas se puede considerar como con un único
paquete que lo abarca todo.
Gráficamente un paquete viene representado como se indica en la Figura 32.
En la Figura 33, vemos cómo se representa la arquitectura del sistema con la notación de
paquetes.
Presentación Presentación
Dominio
Lógica de la
Aplicación
Servicios
Almacenamiento
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
IV.1 Proceso de Desarrollo 25
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
26 IV.1 Proceso de Desarrollo
• Construcción: La construcción del sistema. Las fases dentro de esta etapa son las
siguientes:
- Análisis: Se analiza el problema a resolver desde la perspectiva de los usuarios y de las
entidades externas que van a solicitar servicios al sistema.
- Diseño: El sistema se especifica en detalle, describiendo cómo va a funcionar
internamente para satisfacer lo especificado en el análisis.
- Implementación: Se lleva lo especificado en el diseño a un lenguaje de programación.
- Pruebas: Se llevan a cabo una serie de pruebas para corroborar que el software
funciona correctamente y que satisface lo especificado en la etapa de Planificación y
Especificación de Requisitos.
• Instalación: La puesta en marcha del sistema en el entorno previsto de uso.
De ellas, la fase de Construir es la que va a consumir la mayor parte del esfuerzo y del tiempo
en un proyecto de desarrollo. Para llevarla a cabo se va adoptar un enfoque iterativo, tomando
en cada iteración un subconjunto de los requisitos (agrupados según casos de uso) y llevándolo
a través del análisis y diseño hasta la implementación y pruebas, tal y como se muestra en la
Figura 34. El sistema va creciendo incrementalmente en cada ciclo.
Con esta aproximación se consigue disminuir el grado de complejidad que se trata en cada ciclo,
y se tiene pronto en el proceso una parte del sistema funcionando que se puede contrastar con el
usuario/cliente.
Ciclo de Ciclo de
Desarrollo 1 Desarrollo 2
...
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
IV.2 Fase de Planificación y Especificación de Requisitos 27
IV.2.1 Actividades
Las actividades de esta fase son las siguientes:
1. Definir el Plan-Borrador.
2. Crear el Informe de Investigación Preliminar.
3. Definir los Requisitos.
4. Registrar Términos en el Glosario. (continuado en posteriores fases)
5. Implementar un Prototipo. (opcional)
6. Definir Casos de Uso (de alto nivel y esenciales).
7. Definir el Modelo Conceptual-Borrador. (puede retrasarse hasta una fase posterior)
8. Definir la Arquitectura del Sistema-Borrador. (puede retrasarse hasta una fase posterior)
9. Refinar el Plan.
El orden propuesto es el que parece más lógico, y en él los pasos 5 y 7 pueden estar en
posiciones distintas. De todos modos, el orden no es estricto, lo normal es que las distintas
actividades se solapen en el tiempo. Esto sucede también en las actividades de las fases de
Análisis y de Diseño, que se verán más adelante.
De estas actividades no se va a entrar en las que corresponden al campo de la planificación de
proyectos software, como las correspondientes a creación de planes e informes preliminares.
Tan solo se va a ver por encima la actividad de Definición de Requisitos en cuanto está
relacionada con los Casos de Uso, pues son éstos los que van a servir de punto de partida en el
Análisis Orientado a Objetos.
IV.2.2 Requisitos
Un requisito es una descripción de necesidades o aspiraciones respecto a un producto. El
objetivo principal de la actividad de definición de requisitos consiste en identificar qué es lo que
realmente se necesita, separar el grano de la paja. Esto se hace en un modo que sirva de
comunicación entre el cliente y el equipo de desarrollo.
Es aconsejable que un documento de Especificación de Requisitos tenga los siguientes puntos:
− Propósito.
− Ámbito del Sistema, Usuarios.
− Funciones del Sistema.
− Atributos del Sistema.
El formato del documento de Especificación de Requisitos no está definido en UML, pero se ha
incluido este punto para resaltar que la actividad de definición de requisitos es un paso clave en
la creación de cualquier producto software.
Para refinar los requisitos y mejorar la comprensión de los mismos la técnica de casos de uso
constituye una valiosa ayuda.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
28 IV.2 Fase de Planificación y Especificación de Requisitos
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
IV.2 Fase de Planificación y Especificación de Requisitos 29
9. Recoge la tarjeta.
Cursos Alternativos:
• Línea 4: La clave es incorrecta. Se indica el error y se cancela la operación.
• Línea 8: La cantidad solicitada supera el saldo. Se indica el error y se cancela la
operación.
El significado de cada apartado de este formato es como sigue:
− Caso de Uso: Nombre del Caso de Uso
− Actores: Lista de actores (agentes externos), indicando quién inicia el caso de uso. Los
actores son normalmente roles que un ser humano desempeña, pero puede ser cualquier tipo
de sistema.
− Propósito: Intención del caso de uso.
− Visión General: Repetición del caso de uso de alto nivel, o un resumen similar.
− Tipo: 1. primario, secundario u opcional (descritos más adelante).
2. esencial o real (descritos más adelante).
− Referencias: Casos de uso relacionados y funciones del sistema que aparecen en los
requisitos.
− Curso Típico de Eventos: Descripción de la interacción entre los actores y el sistema
mediante las acciones numeradas de cada uno. Describe la secuencia más común de
eventos, cuando todo va bien y el proceso se completa satisfactoriamente. En caso de haber
alternativas con grado similar de probabilidad se pueden añadir secciones adicionales a la
sección principal, como se verá más adelante.
− Cursos Alternativos: Puntos en los que puede surgir una alternativa, junto con la descripción
de la excepción.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
30 IV.2 Fase de Planificación y Especificación de Requisitos
a) Basado en Actores
1. Identificar los actores relacionados con el sistema y/o la organización.
2. Para cada actor, identificar los procesos que inicia o en los que participa.
b) Basado en Eventos
1. Identificar los eventos externos a los que el sistema va a tener que responder.
2. Relacionar los eventos con actores y casos de uso.
a) Según Importancia
Para poder priorizar los casos de uso que identifiquemos los vamos a distinguir entre:
• Primarios: Representan los procesos principales, los más comunes, como Realizar
Reintegro en el caso del cajero automático.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
IV.2 Fase de Planificación y Especificación de Requisitos 31
• Secundarios: Representan casos de uso menores, que van a necesitarse raramente, tales
como Añadir Nueva Operación.
• Opcionales: Representan procesos que pueden no ser abordados en el presente proyecto.
5. etc. 6. etc.
En principio, los casos de uso reales deberían ser creados en la fase de Diseño y no antes, puesto
que se trata de elementos de diseño. Sin embargo, en algunos proyectos se plantea la definición
de interfaces en fases tempranas del ciclo de desarrollo, en base a que son parte del contrato. En
este caso se pueden definir algunos o todos los casos de uso reales, a pesar de que suponen
tomar decisiones de diseño muy pronto en el ciclo de vida.
No hay una diferencia estricta entre un Caso de Uso Esencial y uno Real, el grado de
compromiso con el Diseño es un continuo, y una descripción específica de un caso de uso estará
situada en algún punto de la línea entre Casos de Uso Esenciales y Reales, normalmente más
cercano a un extremo que al otro, pero es raro encontrar Casos de Uso Esenciales o Reales
puros.
a) Nombre
El nombre de un Caso de Uso debería ser un verbo, para enfatizar que se trata de un proceso,
por ejemplo: Comprar Artículos o Realizar Pedido.
b) Alternativas equiprobables
Cuando se tiene una alternativa que ocurre de manera relativamente ocasional, se indica en el
apartado Cursos Alternativos. Pero cuando se tienen distintas opciones, todas ellas consideradas
normales se puede completar el Curso Típico de Eventos con secciones adicionales.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
32 IV.2 Fase de Planificación y Especificación de Requisitos
Así, si en un determinado número de línea hay una bifurcación se pueden poner opciones que
dirigen el caso de uso a una sección que se detalla al final del Curso Típico de Eventos, en la
siguiente forma:
− Curso Típico de Eventos:
− Sección: Principal
Cursos Alternativos:
• Líneas 3 y 5: Selecciona Cancelar. Se cancela la operación.
− Sección: Pago al Contado
3. Devuelve el cambio.
Cursos Alternativos:
• Línea 3: No hay cambio suficiente. Se cancela la operación.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
IV.2 Fase de Planificación y Especificación de Requisitos 33
4. Se relacionan los casos de uso y se ilustran las relaciones en el Diagrama de Casos de Uso
(<<extiende>> y <<usa>>).
5. Los casos de uso más críticos, importantes y que conllevan un mayor riesgo, se describen en
el formato expandido esencial. Se deja la definición en formato expandido esencial del resto
de casos de uso para cuando sean tratados en posteriores ciclos de desarrollo, para no tratar
toda la complejidad del problema de una sola vez.
6. Se crean casos de uso reales sólo cuando:
• Descripciones más detalladas ayudan significativamente a incrementar la comprensión
del problema.
• El cliente pide que los procesos se describan de esta forma.
7. Ordenar según prioridad los casos de uso (este paso se va a ver a continuación).
Caso de Uso C
--------
--------
--------
Para tomar la decisión de qué casos de uso se van a tratar primero es necesario ordenarlos según
prioridad. Las características de un caso de uso específico que van a hacer que un caso de uso
tenga una prioridad alta son las siguientes:
a. Impacto significativo en el diseño de la arquitectura. Por ejemplo, si aporta muchas clases al
modelo del dominio o requiere persistencia en los datos.
b. Se obtiene una mejor comprensión del diseño con un nivel de esfuerzo relativamente bajo.
c. Incluye funciones complejas, críticas en el tiempo o de nivel elevado de riesgo.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
34 IV.3 Fase de Construcción: Análisis
d. Implica bien un trabajo de investigación significante, o bien el uso de una tecnología nueva
o arriesgada.
e. Representa un proceso de gran importancia en la línea de negocio.
f. Supone directamente un aumento de beneficios o una disminución de costes.
Para realizar la clasificación se puede asignar a cada caso de uso una valoración numérica de
cada uno de estos puntos, para conseguir una puntuación total aplicando pesos a cada apartado.
En la siguiente tabla se muestra un ejemplo de tal tipo de clasificación:
Peso 3 2 4 1 3 4
Suma
Caso de Uso a b c d e f
Reintegro 5 4 1 0 5 2 50
...
IV.3.1 Actividades
Las actividades de la fase de Análisis son las siguientes:
1. Definir Casos de Uso Esenciales en formato expandido. (si no están definidos )
2. Refinar los Diagramas de Casos de Uso.
3. Refinar el Modelo Conceptual.
4. Refinar el Glosario. (continuado en posteriores fases)
5. Definir los Diagramas de Secuencia del Sistema.
6. Definir Contratos de Operación.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
IV.3 Fase de Construcción: Análisis 35
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
36 IV.3 Fase de Construcción: Análisis
Categoría Ejemplos
A es una parte física de B Ala – Avión
A es una parte lógica de B Artículo_en_Venta –Venta
A está físicamente contenido en B Artículo – Estantería
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
IV.3 Fase de Construcción: Análisis 37
Pasajero – Avión
A está lógicamente contenido en B Descripción_de_Artículo – Catálogo
A es una descripción de B Descripción_de_Artículo – Artículo
A es un elemento en una transacción o Trabajo_de_Reparación – Registro_de_Reparaciones
un informe B
A es registrado/archivado/capturado en Venta – Terminal_de_Caja
B
A es un miembro de B Cajero – Supermercado
Piloto – Compañía_Aerea
A es una subunidad organizativa de B Sección – Supermercado
Mantenimiento – Compañía_Aerea
A usa o gestiona B Cajero – Terminal_de_Caja
Piloto – Avión
A comunica con B Cliente – Cajero
Empleado_de_Agencia_de_Viajes – Pasajero
A está relacionado con una transacción Cliente – Pago
B
Pasajero – Billete
A es una transacción relacionada con Pago – Venta
otra transacción B
Reserva – Cancelación
A está junto a B Ciudad – Ciudad
A posee B Supermercado – Terminal_de_Caja
Compañía_Aérea – Avión
Una vez identificadas las asociaciones se representan en el Modelo Conceptual con la
multiplicidad adecuada.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
38 IV.3 Fase de Construcción: Análisis
IV.3.3 Glosario
En el glosario debe aparecer una descripción textual de cualquier elemento de cualquier modelo,
para eliminar toda posible ambigüedad.
Un formato tipo para el glosario es el que se muestra en la Tabla 3.
Tabla 3 Formato tipo de Glosario
En cada caso de uso se muestra una interacción de actores con el sistema. En esta interacción los
actores generan eventos, solicitando al sistema operaciones. Por ejemplo, en el caso de una
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
IV.3 Fase de Construcción: Análisis 39
Los eventos del sistema deberían expresarse en base a la noción de operación que representan,
en vez de en base a la interfaz particular. Por ejemplo, se prefiere “finOperación” a
“presionadaTeclaEnter”, porque captura la finalidad de la operación sin realizar compromisos
en cuanto a la interfaz usada.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
40 IV.3 Fase de Construcción: Análisis
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
IV.4 Fase de Construcción: Diseño 41
IV.3.5.2 Post-condiciones
Las post-condiciones se basan en el Modelo Conceptual, en los cambios que sufren los
elementos del mismo una vez se ha realizado la operación.
Es mejor usar el tiempo pasado o el pretérito perfecto al redactar una post-condición, para
enfatizar que se trata de declaraciones sobre un cambio en el estado que ya ha pasado. Por
ejemplo es mejor decir “se ha creado una Sesión” que decir “crear una Sesión”.
Cuando se ha creado un objeto, lo normal es que se haya asociado a algún otro objeto ya
existente, porque si no queda aislado del resto del sistema. Por tanto, al escribir las post-
condiciones hay que acordarse de añadir asociaciones a los objetos creados. Olvidar incluir estas
asociaciones es el fallo más común cometido al escribir las post-condiciones de un contrato.
IV.4.1 Actividades
Las actividades que se realizan en la etapa de Diseño son las siguientes:
1. Definir los Casos de Uso Reales.
2. Definir Informes e Interfaz de Usuario.
3. Refinar la Arquitectura del Sistema.
4. Definir los Diagramas de Interacción.
5. Definir el Diagrama de Clases de Diseño. (en paralelo con los Diagramas de Interacción)
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
42 IV.4 Fase de Construcción: Diseño
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
IV.4 Fase de Construcción: Diseño 43
Sesion
+ create(login : String)
1
<<solitario>>
Gestor_Cuentas <<solitario>>
* Cuenta
Operacion - cuota_disco : int
lanza_al_iniciarse
- parametros : String[] 1
+ lanzar_operacion_inicial()
-operacion_inicial + crear_clave(usuario : String) : String
+ create(parametros : long[])
+ lanzar() -cuentas_abiertas *
recibe_peticiones_de
<<local>>
<<solitario>>
<<solitario>>
Servidor_Claves
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
44 IV.4 Fase de Construcción: Diseño
Un Diagrama de Clases de Diseño muestra la especificación para las clases software de una
aplicación. Incluye la siguiente información:
• Clases, asociaciones y atributos.
• Interfaces, con sus operaciones y constantes.
• Métodos.
• Navegabilidad.
• Dependencias.
A diferencia del Modelo Conceptual, un Diagrama de Clases de Diseño muestra definiciones de
entidades software más que conceptos del mundo real. En la Figura 37 se muestra un ejemplo de
Diagrama de Clases de Diseño sencillo.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
IV.4 Fase de Construcción: Diseño 45
Cuando otra clase quiere llamar a un método de la instancia incluye el siguiente código:
variable Solitario;
variable = Solitario.dar_instancia();
variable.método(); // llamada al método que necesitamos
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
46 IV.5 Fases de Implementación y Pruebas
IV.4.4.3 Navegabilidad
La navegabilidad es una propiedad de un rol (un extremo de una asociación) que indica que es
posible “navegar” unidireccionalmente a través de la asociación, desde objetos de la clase
origen a objetos de la clase destino. Como se vio en la parte II, se representa en UML mediante
una flecha.
La navegabilidad implica visibilidad, normalmente visibilidad por medio de un atributo en la
clase origen. En la implementación se traducirá en la clase origen como un atributo que sea una
referencia a la clase destino.
Las asociaciones que aparezcan en el Diagrama de Clases deben cumplir una función, deben ser
necesarias, si no es así deben eliminarse.
Las situaciones más comunes en las que parece que se necesita definir una asociación con
navegabilidad de A a B son:
• A envía un mensaje a B.
• A crea una instancia B.
• A necesita mantener una conexión con B.
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
Bibliografía 47
V Bibliografía
Desarrollo Orientado a Objetos con UML Xavier Ferré Grau, María Isabel Sánchez Segura
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
Tema 8.
PROGRAMACIÓN ORIENTADA A OBJETOS
I. CONCEPTOS BÁSICOS
2. Objeto
Es una entidad (tangible o intangible) que posee características y acciones que realiza por sí solo o interactuando con otros
objetos.
Un objeto es una entidad caracterizada por sus atributos propios y cuyo comportamiento está determinado por las acciones o
funciones que pueden modificarlo, así como también las acciones que requiere de otros objetos. Un objeto tiene identidad e
inteligencia y constituye una unidad que oculta tanto datos como la descripción de su manipulación. Puede ser definido como
una encapsulación y una abstracción: una encapsulación de atributos y servicios, y una abstracción del mundo real.
Para el contexto del Enfoque Orientado a Objetos (EOO) un objeto es una entidad que encapsula datos (atributos) y acciones o
funciones que los manejan (métodos). También para el EOO un objeto se define como una instancia o particularización de una
clase.
Los objetos de interés durante el desarrollo de software no sólo son tomados de la vida real (objetos visibles o tangibles),
también pueden ser abstractos. En general son entidades que juegan un rol bien definido en el dominio del problema. Un libro,
una persona, un carro, un polígono, son apenas algunos ejemplos de objeto.
Cada objeto puede ser considerado como un proveedor de servicios utilizados por otros objetos que son sus clientes. Cada
objeto puede ser a al vez proveedor y cliente. De allí que un programa pueda ser visto como un conjunto de relaciones entre
proveedores clientes. Los servicios ofrecidos por los objetos son de dos tipos:
1.- Los datos, que llamamos atributos.
2.- Las acciones o funciones, que llamamos métodos.
Características Generales
Un objeto se identifica por un nombre o un identificador único que lo diferencia de los demás. Ejemplo: el objeto
Cuenta de Ahorros número 12345 es diferente al objeto Cuenta de Ahorros número 25789. En este caso el identificador que
los hace únicos es el número de la cuenta.
Un objeto posee estados. El estado de un objeto está determinado por los valores que poseen sus atributos en un
momento dado.
Un objeto tiene un conjunto de métodos. El comportamiento general de los objetos dentro de un sistema se describe o
representa mediante sus operaciones o métodos. Los métodos se utilizarán para obtener o cambiar el estado de los objetos,
así como para proporcionar un medio de comunicación entre objetos.
Un objeto tiene un conjunto de atributos. Los atributos de un objeto contienen valores que determinan el estado del
objeto durante su tiempo de vida. Se implementan con variables, constantes y estructuras de datos (similares a los campos
de un registro).
Pág. 1
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
Los objetos soportan encapsulamiento. La estructura interna de un objeto normalmente está oculta a los usuarios del
mismo. Los datos del objeto están disponibles solo para ser manipulados por los propios métodos del objeto. El único
mecanismo que lo conecta con el mundo exterior es el paso de mensajes.
Un objeto tiene un tiempo de vida dentro del programa o sistema que lo crea y utiliza. Para ser utilizado en un
algoritmo el objeto debe ser creado con una instrucción particular (New ó Nuevo) y al finalizar su utilización es destruido con
el uso de otra instrucción o de manera automática.
3. Clase
La clase es la unidad de modularidad en el EOO. La tendencia natural del individuo es la de clasificar los objetos según sus
características comunes (clase). Por ejemplo, las personas que asisten a la universidad se pueden clasificar (haciendo
abstracción) en estudiante, docente, empleado e investigador.
La clase puede definirse como la agrupación o colección de objetos que comparten una estructura común y un comportamiento
común.
Es una plantilla que contiene la descripción general de una colección de objetos. Consta de atributos y métodos que resumen
las características y el comportamiento comunes de un conjunto de objetos.
Todo objeto (también llamado instancia de una clase), pertenece a alguna clase. Mientras un objeto es una entidad concreta
que existe en el tiempo y en el espacio, una clase representa solo una abstracción.
Todos aquellos objetos que pertenecen a la misma clase son descritos o comparten el mismo conjunto de atributos y métodos.
Todos los objetos de una clase tienen el mismo formato y comportamiento, son diferentes únicamente en los valores que
contienen sus atributos. Todos ellos responden a los mismos mensajes.
Su sintaxis algorítmica es:
Clase <Nombre de la Clase>
…
FClase <Nombre de la Clase>;
Características Generales
Una clase es un nivel de abstracción alto. La clase permite describir un conjunto de características comunes para los
objetos que representa. Ejemplo: La clase Avión se puede utilizar para definir los atributos (tipo de avión, distancia, altura,
velocidad de crucero, capacidad, país de origen, etc.) y los métodos (calcular posición en el vuelo, calcular velocidad de
vuelo, estimar tiempo de llegada, despegar, aterrizar, volar, etc.) de los objetos particulares Avión que representa.
Un objeto es una instancia de una clase. Cada objeto concreto dentro de un sistema es miembro de una clase específica y
tiene el conjunto de atributos y métodos especificados en la misma
Las clases se relacionan entre sí mediante una jerarquía. Entre las clases se establecen diferentes tipos de relaciones de
herencia, en las cuales la clase hija (subclase) hereda los atributos y métodos de la clase padre (superclase), además de
incorporar sus propios atributos y métodos.
Ejemplos, Superclase: Clase Avión
Subclases de Avión: Clase Avión Comercial, Avión de Combate, Avión de Transporte
Los nombres o identificadores de las clases deben colocarse en singular (clase Animal, clase Carro, clase Alumno).
Pág. 2
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
5. Atributo
Son los datos o variables que caracterizan al objeto y cuyos valores en un momento dado indican su estado.
Un atributo es una característica de un objeto. Mediante los atributos se define información oculta dentro de un objeto, la cual
es manipulada solamente por los métodos definidos sobre dicho objeto
Un atributo consta de un nombre y un valor. Cada atributo está asociado a un tipo de dato, que puede ser simple (entero, real,
lógico, carácter, string) o estructurado (arreglo, registro, archivo, lista, etc.)
Su sintaxis algorítmica es: <Modo de Acceso> <Tipo de dato> <Nombre del Atributo>;
Los modos de acceso son:
Público: Atributos (o Métodos) que son accesibles fuera de la clase. Pueden ser llamados por cualquier clase, aun si no
está relacionada con ella. Este modo de acceso también se puede representar con el símbolo +
Privado: Atributos (o Métodos) que sólo son accesibles dentro de la implementación de la clase. También se puede
representar con el símbolo –
Protegido: Atributos (o Métodos) que son accesibles para la propia clase y sus clases hijas (subclases). También se puede
representar con el símbolo #
6. Método
Son las operaciones (acciones o funciones) que se aplican sobre los objetos y que permiten crearlos, cambiar su estado o
consultar el valor de sus atributos.
Los métodos constituyen la secuencia de acciones que implementan las operaciones sobre los objetos. La implementación de
los métodos no es visible fuera de objeto.
La sintaxis algorítmica de los métodos expresados como funciones y acciones es:
Para funciones se pueden usar cualquiera de estas dos sintaxis:
<Modo de Acceso> Función <Nombre> [(Lista Parámetros)]: <Descripción del Tipo de datos>
Para acciones:
<Modo de Acceso> Acción <Nombre> [(Lista Parámetros)] donde los parámetros son opcionales
Ejemplo: Un rectángulo es un objeto caracterizado por los atributos Largo y Ancho, y por varios métodos, entre otros Calcular
su área y Calcular su perímetro.
Pág. 3
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
Características Generales
Cada método tiene un nombre, cero o más parámetros (por valor o por referencia) que recibe o devuelve y un algoritmo con
el desarrollo del mismo.
En particular se destaca el método constructor, que no es más que el método que se ejecuta cuando el objeto es creado.
Este constructor suele tener el mismo nombre de la clase/ objeto, pero aunque es una práctica común, el método
constructor no necesariamente tiene que llamarse igual a la clase (al menos, no en pseudos-código). Es un método que
recibe cero o más parámetros y lo usual es que inicialicen los valores de los atributos del objeto.
En lenguajes como Java y C++ se puede definir más de un método constructor, que normalmente se diferencian entre sí
por la cantidad de parámetros que reciben.
Los métodos se ejecutan o activan cuando el objeto recibe un mensaje, enviado por un objeto o clase externo al que lo
contiene, o por el mismo objeto de manera local.
7. Mensaje
Es la petición de un objeto a otro para solicitar la ejecución de alguno de sus métodos o para obtener el valor de un atributo
público.
Estructuralmente, un mensaje consta de 3 partes:
Identidad del receptor: Nombre del objeto que contiene el método a ejecutar.
Nombre del método a ejecutar: Solo los métodos declarados públicos.
Lista de Parámetros que recibe el método (cero o mas parámetros)
Su sintaxis algorítmica es: <Variable_Objeto>.<Nombre_Método> ( [<Lista de Parámetros> ] );
Cuando el objeto receptor recibe el mensaje, comienza la ejecución del algoritmo contenido dentro del método invocado,
recibiendo y/o devolviendo los valores de los parámetros correspondientes, si los tiene ya que son opcionales: ( [ ] )
Pág. 4
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
IMPLEMENTACIÓN
Clase Rectángulo; Rectángulo
// Atributos Privado Real Largo
Privado: Privado Real Ancho
Real Largo, Ancho;
Constructor Acción Rectángulo(lar, anc)
// Métodos
Público Función Área: Real
// método constructor
Público Función Perímetro: Real
Acción Rectángulo(Real lar, anc);
Largo = lar;
Ancho = anc;
FAcción;
FClase Rectángulo;
Pág. 5
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
Operaciones
Público:
[Métodos]
Privado:
[Métodos]
Protegido:
[Métodos]
FClase <Identificador>
En el caso de la especificación de los Atributos o de los Métodos los modos de acceso Público (+), Privado (-) o Protegido (#)
pueden omitirse, solamente en el caso en el que los grupos [Constantes], [Estructuras] y [Variables] son vacíos, es decir, no se
estén declarando Atributos ó Métodos.
NOTA: Otra forma de especificar los modos de acceso es colocándolo antes del nombre DE CADA UNO de los
atributos o métodos
Pág. 6
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
Notación: Ejemplos
Nombre Clase Ventana Rectángulo
Atributos + Real área; Privado Real Lado
# Lógico visible;
Métodos + color: Entero Acción Cuadrado(Entero lad)
+ modificar_tamaño(Real porcentaje) Público Función Área: Real
Público Función Perímetro: Real
En el diagrama de clases: La herencia se representa mediante una relación de generalización/especificación, que se denota
de la siguiente forma:
clase hija clase madre subclase superclase
Ejemplo: El siguiente diagrama de clases muestra la relación de Herencia entre la Clase Animal y sus hijas
Animal
Mamífero Reptil
Hombre Mujer
Si motor forma parte de carro, la flecha apunta a la clase motor, y el diamante va pegado a carro.
La multiplicidad es el rango de cardinalidad permitido que puede asumir la asociación, se denota LI..LS. Se puede usar * en el
limite superior para representar una cantidad ilimitada (ejemplo: 3..*).
Ejemplo: Objeto Casa descrito en términos de sus componentes
Casa
1 .. * 1 .. * 0 .. *
1 .. * 0 .. 4 3 .. 4
Puerta Ventana Pared
Pág. 8
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
3. Relación de Composición
Un componente es parte esencial de un elemento. La relación es más fuerte que el caso de agregación, al punto que si el
componente es eliminado o desaparece, la clase mayor deja de existir.
Representación en el Diagrama de Clases
La relación de composición, se denota de la siguiente forma:
Ejemplos:
«uso» recarga
Impresora Cartucho_tinta Estudiante Portamina
Pág. 9
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
Fundamento 1: Abstracción
Es el principio de ignorar aquellos aspectos de un fenómeno observado que no son relevantes, con el objetivo de
concentrarse en aquellos que si lo son. Una abstracción denota las características esenciales de un objeto (datos y
operaciones), que lo distingue de otras clases de objetos. Decidir el conjunto correcto de abstracciones de un determinado
dominio, es el problema central del diseño orientado a objetos.
Los mecanismos de abstracción son usados en el EOO para extraer y definir del medio a modelar, sus características y su
comportamiento. Dentro del EOO son muy usados mecanismos de abstracción: la Generalización, la Agregación y la
clasificación.
La generalización es el mecanismo de abstracción mediante el cual un conjunto de clases de objetos son agrupados en
una clase de nivel superior (Superclase), donde las semejanzas de las clases constituyentes (Subclases) son enfatizadas, y
las diferencias entre ellas son ignoradas. En consecuencia, a través de la generalización, la superclase almacena datos
generales de las subclases, y las subclases almacenan sólo datos particulares. La especialización es lo contrario de la
generalización. La clase Médico es una especialización de la clase Persona, y a su vez, la clase Pediatra es una
especialización de la superclase Médico.
La agregación es el mecanismo de abstracción por el cual una clase de objeto es definida a partir de sus partes (otras
clases de objetos). Mediante agregación se puede definir por ejemplo un computador, por descomponerse en: la CPU, la
ULA, la memoria y los dispositivos periféricos. El contrario de agregación es la descomposición.
La clasificación consiste en la definición de una clase a partir de un conjunto de objetos que tienen un comportamiento
similar. La ejemplificación es lo contrario a la clasificación, y corresponde a la instanciación de una clase, usando el
ejemplo de un objeto en particular.
Los atributos y los métodos que son públicos constituyen la interfaz de la clase, es decir, lo que el mundo exterior conoce de la
misma.
Normalmente lo usual es que se oculten los atributos de la clase y solo sean visibles los métodos, incluyendo entonces algunos
de consulta para ver los valores de los atributos. El método constructor (Nuevo, New) siempre es Público.
Pág. 10
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
Fundamento 3: Modularidad
Es la propiedad que permite tener independencia entre las diferentes partes de un sistema. La modularidad consiste
en dividir un programa en módulos o partes, que pueden ser compilados separadamente, pero que tienen conexiones
con otros módulos. En un mismo módulo se suele colocar clases y objetos que guarden una estrecha relación. El sentido de
modularidad está muy relacionado con el ocultamiento de información.
Fundamento 4: Herencia
Es el proceso mediante el cual un objeto de una clase adquiere propiedades definidas en otra clase que lo preceda en
una jerarquía de clasificaciones. Permite la definición de un nuevo objeto a partir de otros, agregando las diferencias entre
ellos (Programación Diferencial), evitando repetición de código y permitiendo la reusabilidad.
Las clases heredan los datos y métodos de la superclase. Un método heredado puede ser sustituido por uno propio si ambos
tienen el mismo nombre.
La herencia puede ser simple (cada clase tiene sólo una superclase) o múltiple (cada clase puede tener asociada
varias superclases). La clase Docente y la clase Estudiante heredan las propiedades de la clase Persona (superclase,
herencia simple). La clase Preparador (subclase) hereda propiedades de la clase Docente y de la clase Estudiante (herencia
múltiple).
Fundamento 5: Polimorfismo
Es una propiedad del EOO que permite que un método tenga múltiples implementaciones, que se seleccionan en base
al tipo objeto indicado al solicitar la ejecución del método.
El polimorfismo operacional o Sobrecarga operacional permite aplicar operaciones con igual nombre a diferentes clases o
están relacionados en términos de inclusión. En este tipo de polimorfismo, los métodos son interpretados en el contexto del
objeto particular, ya que los métodos con nombres comunes son implementados de diferente manera dependiendo de cada
clase.
Por ejemplo, el área de un cuadrado, rectángulo y círculo, son calculados de manera distinta; sin embargo, en sus clases
respectivas puede existir la implementación del área bajo el nombre común Área. En la práctica y dependiendo del objeto que
llame al método, se usará el código correspondiente.
Ejemplos, Superclase: Clase Animal Subclases: Clases Mamífero, Ave, Pez
Se puede definir un método Comer en cada subclase, cuya implementación cambia de acuerdo a la clase invocada, sin
embargo el nombre del método es el mismo.
Mamifero.Comer ≠ Ave.Comer ≠ Pez.Comer
Otro ejemplo de polimorfismo es el operador +. Este operador tiene dos funciones diferentes de acuerdo al tipo de dato de los
operandos a los que se aplica. Si los dos elementos son numéricos, el operador + significa suma algebraica de los mismos, en
cambio si por lo menos uno de los operandos es un String o Carácter, el operador es la concatenación de cadenas de
caracteres.
Otro ejemplo de sobrecarga es cuando tenemos un método definido originalmente en la clase madre, que ha sido
adaptado o modificado en la clase hija. Por ejemplo, un método Comer para la clase Animal y otro Comer que ha sido
adaptado para la clase Ave, quien está heredando de la clase Animal.
Cuando se desea indicar que se está invocando (o llamando) a un método sobrecargado y que pertenece a otra clase
(por ejemplo, a la clase padre) lo indicamos con la siguiente sintaxis:
Clase_Madre::nombre_método;
Para el ejemplo, la llamada en la clase hija Ave del método sobrecargado Comer de la clase madre Animal sería:
Animal::Comer
Pág. 11
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
VI. EJEMPLOS
Ejemplo 1, Definición de la Clase Rectángulo
Clase Principal
Acción Usa_Rectángulo
Rectángulo R; // se declara una variable de tipo objeto Rectángulo, a la cual llamaremos R
Real L, A; // se declaran las variables reales L y A para leer el largo y ancho dado por el usuario
Escribir(“Suministre a continuación los valores para el largo y el ancho”);
Leer(L, A);
R.Rectángulo(L, A);
Escribir(“Resultados de los cálculos:”);
Escribir(“Área: ”+ R.Área + “ - Perímetro ” + R.Perímetro);
FAcción Usa_Rectángulo;
FClase Principal;
Pág. 12
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
//Atributos
Protegido Real X, Y; // representan las coordenadas X e Y de un punto
// Métodos u operaciones
Público:
//constructores
Acción Punto2D
X = 0; Y = 0;
FAcción;
Pág. 13
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
Clase Prueba_Punto
Acción Principal
Real CX, CY; // valores para las coordenadas del punto a crear
Real D; // contiene la distancia entre los puntos
Escribir (“Introduzca las coordenadas X e Y del punto a crear: ”);
Leer(CX, CY);
Punto P = nuevo Punto2D(CX , CY);
Punto P1 = nuevo Punto2D; // crea un punto en el origen, es decir, en el punto (0.0 , 0.0)
D = P.Distancia(P1.CoordenadaX , P1.CoordenadaY;
Escribir (“Distancia entre el punto P y el origen: ” + D);
P1.CambiarX (15.0); P1.CambiarY(18.75); // se cambia a al punto (15.0 , 18.75)
Escribir (“Nuevo punto P1: (“ + P1.CoordenadaX + “ , “+ P1.CoordenadaY + “) “);
D = P.Distancia(P1);
Escribir (“La nueva Distancia entre P y P1 es: “+ D);
fAcción Principal;
FClase Prueba_Punto;
Pág. 14
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
Pág. 15
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
// atributos
Privado Entero Saldo;
Privado String NroCuenta;
Privado String Titular;
// métodos
Acción CuentaBancaria(Entero montoInicial; String num, nombre)
// asigna a los atributo de la clase sus valores iniciales
Saldo = montoInicial;
NroCuenta = num;
Titular = nombre;
Facción;
FinClase CuentaBancaria
Pág. 16
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
Clase Ecuación2doGrado;
Privado Real r1, r2, i1, i2;
Pág. 17
Universidad Central de Venezuela. Recopilación y Preparación Prof. Yusneyi Carballo
Escuela de Computación - Algoritmos y Programación Oct-05, Julio 07
CONCLUSIONES
En la Programación Orientada a Objetos los programas son representados por un conjunto de objetos que interactúan. Un
objeto engloba datos y operaciones sobre estos datos.
La Programación Orientada a Objetos constituye una buena opción a la hora de resolver un problema, sobre todo cuando éste
es muy extenso. En este enfoque de programación, se facilita evitar la repetición de código, no sólo a través de la creación de
clases que hereden propiedades y métodos de otras, sino además que el código es reutilizable por sistemas posteriores que
tengan alguna similitud con los ya creados.
BIBLIOGRAFÍA
BOOCH, Grady. "Object-oriented Analysis and Design with Applications". 2da. edición, Benjamín/Cummings
Publishing, 1993.
CARMONA, Rhadamés. “El Enfoque Orientado a Objetos”. Guía para estudiantes de Algoritmos y Programación. UCV.
2004.
COTO, Ernesto. Notación Algorítmica para estudiantes de Algoritmos y Programación. UCV.
DEITEL & DEITEL. "Cómo Programar en Java". Pearson Prentice Hall, 2004
JOYANES AGUILAR, Luis; RODRÍGUEZ BAENA, Luis; FERNÁNDEZ, Matilde. "Texto: Fundamentos de Programación,
Algoritmos, Estructuras de Datos y Objetos". McGraw-Hill, 2003
JOYANES AGUILAR, Luis; RODRÍGUEZ BAENA, Luis; FERNÁNDEZ, Matilde. "Libro de problemas: Fundamentos de
Programación, Algoritmos, Estructuras de Datos y Objetos". McGraw-Hill, 2003
WU, Thomas C. “Introducción a la Programación Orientada a Objetos en Java”. McGraw-Hill. 2001
Pág. 18
© berzal@acm.org
Diseño lógico
Diseño de bases de datos relacionales
© berzal@acm.org
Diseño lógico
de bases de datos relacionales
El modelo relacional:
El concepto de relación: tuplas,
tuplas, atributos y dominios.
Restricciones de integridad en el modelo relacional.
El proceso de diseño lógico en el modelo relacional.
Del modelo E/R al modelo relacional:
Entidades.
Entidades débiles.
Relaciones.
Relaciones de especialización / generalización.
Fusión de tablas.
Normalización.
1
© berzal@acm.org
Diseño lógico
de bases de datos relacionales
ETAPA DE DISEÑO LÓGICO
4
© berzal@acm.org
El modelo relacional
El concepto de relación:
Tuplas,, atributos y dominios
Tuplas
Relación R(A
R(Ai..
..A
An)
Subconjunto del producto cartesiano D1×..
..××D n
(esto es, una tabla).
Instancia de la relación:
relación: El conjunto de tuplas
{(x1,x2,..,xn)} ⊆ D1×D2×..
..×
×Dn que la componen en
cada momento. 6
© berzal@acm.org
El modelo relacional
El concepto de relación
Relación R(A
R(Ai..
..A
An)
Subconjunto del producto cartesiano D1×..
..××D n
(esto es, una tabla).
Restricción de integridad:
integridad: Condición necesaria para
preservar la corrección semántica de la base de datos.
9
© berzal@acm.org
El modelo relacional
Restricciones de integridad:
Asociadas a las tuplas de una relación
Clave primaria:
Conjunto de atributos seleccionados para identificar
unívocamente a las tuplas de una relación.
Integridad de entidad:
Los atributos de la clave primaria no pueden
tomar valores nulos, ya que la clave primaria
debe permitirnos identificar unívocamente
cada tupla de la relación.
11
© berzal@acm.org
El modelo relacional
Restricciones de integridad:
Asociadas a las relaciones de la base de datos
Integridad referencial:
Todos los valores no nulos de una clave externa
referencian valores reales de la clave referenciada.
12
© berzal@acm.org
El modelo relacional
Restricciones de integridad:
Asociadas a las relaciones de la base de datos
imparte.NRP ∈ profesor.NRP
El profesor que imparte una asignatura
debe existir en la tabla de profesores.
cuenta.sucursal ∈ sucursal.número
Una cuenta tiene que pertenecer
a una sucursal existente. 13
© berzal@acm.org
El proceso de diseño lógico
en el modelo relacional
Transformación de un diagrama E/R en un esquema relacional:
Atributos:
Atributos:
Los atributos del tipo de entidad.
Clave primaria:
primaria:
Una de las claves candidatas
del conjunto de entidades.
15
© berzal@acm.org
Del modelo E/R al modelo relacional
Entidades
Atributos compuestos
Se incluyen en la relación todos los atributos simples
(atómicos) que forman parte del atributo compuesto.
Atributos derivados
No se almacenarán en la base de datos, por lo que
no se incluyen como atributos de las relaciones.
16
© berzal@acm.org
Del modelo E/R al modelo relacional
Entidades
Atributos multivaluados
Se almacenan en una tabla auxiliar que incluya las
columnas necesarias para almacenar la clave primaria
del conjunto de entidades más aquéllas que se
necesiten para representar un valor del atributo MV.
Salvo que el atributo MV sea una clave alternativa del
conjunto de entidades, todas las columnas de la tabla
auxiliar formarán parte de su clave primaria.
La tabla auxiliar incluirá una clave externa que haga
referencia a la tabla correspondiente al conjunto de
entidades que incluye el atributo multivaluado.
multivaluado.
17
© berzal@acm.org
Del modelo E/R al modelo relacional
Entidades débiles
Atributos:
Atributos:
Además de los atributos propios de la entidad débil,
los atributos pertenecientes a la clave primaria de la
entidad fuerte de la que depende existencialmente la
entidad débil.
Apunte (CCC
(CCC,
, número, descripción, importe)
18
© berzal@acm.org
Del modelo E/R al modelo relacional
Entidades débiles
Clave primaria:
primaria:
La clave primaria de la entidad fuerte más un conjunto
de atributos propio de la entidad débil (discriminante).
Apunte (CCC,
(CCC, número,
número, descripción, importe) 19
© berzal@acm.org
Del modelo E/R al modelo relacional
Entidades débiles
Clave externa:
externa:
Una, haciendo referencia a la entidad fuerte de la que
depende existencialmente la entidad débil.
Apunte (CCC
(CCC,
, número,
número, descripción, importe)
Cuenta (CCC
(CCC,
, …)
20
© berzal@acm.org
Del modelo E/R al modelo relacional
Relaciones
Atributos:
Los atributos de las claves primarias de las entidades
que intervienen en la relación más los atributos propios
de la relación.
21
© berzal@acm.org
Del modelo E/R al modelo relacional
Relaciones
Clave primaria:
Si la relación no tiene atributos propios:
Relación muchos a muchos:
muchos: La unión de las claves
de los conjuntos de entidades que intervienen.
Relación uno a muchos:
muchos: La clave correspondiente al
conjunto de entidades que participa en la relación con
cardinalidad “muchos”.
Relación uno a uno: uno: Una de las claves de las
entidades intervinientes en la relación (cualquiera).
22
© berzal@acm.org
Del modelo E/R al modelo relacional
Relaciones
Clave primaria:
Si hay atributos propios de la relación:
Los atributos correspondientes al tipo de relación,
a los que tal vez añadiremos algunos atributos propios
de la relación, dependiendo de su semántica.
Claves externas:
Una por cada una de las claves primarias de los
conjuntos de entidades que intervienen en la relación.
23
© berzal@acm.org
Del modelo E/R al modelo relacional
Relaciones
24
© berzal@acm.org
Del modelo E/R al modelo relacional
Relaciones n-
n-arias
Ejemplo:
Empleado (NRP, nombre, dirección… )
Profesor (NRP, departamento, categoría)
PAS (NRP, grupo, nivel)
26
© berzal@acm.org
Del modelo E/R al modelo relacional
Relaciones de generalización y especialización
Ejemplo:
Profesor (NRP, nombre, dirección… departamento, categoría)
PAS (NRP, nombre, dirección… grupo, nivel)
27
© berzal@acm.org
Del modelo E/R al modelo relacional
Relaciones de generalización y especialización
Ejemplo:
Empleado (NRP, nombre, dirección…
departamento, categoría, grupo, nivel)
28
© berzal@acm.org
Del modelo E/R al modelo relacional
Relaciones de generalización y especialización
29
© berzal@acm.org
Del modelo E/R al modelo relacional
Fusión de tablas
p.ej.
Relaciones uno a muchos
32
© berzal@acm.org
Normalización
La normalización permite obtener un conjunto
adecuado de relaciones de tal forma que:
34
© berzal@acm.org
Normalización
Las relaciones que almacenan datos redundantes
presentan anomalías de actualización
(la inserción, eliminación o modificación de los datos
puede provocar la aparición de inconsistencias),
por lo que resulta adecuado descomponerlas:
Sin pérdidas (de forma que la relación original se
pueda reconstruir a partir de las relaciones en las que
la hayamos descompuesto).
Preservando las dependencias (para que podamos
mantener las restricciones de integridad de la relación
original introduciendo restricciones en las relaciones
provenientes de la descomposición de la relación
original). 35
© berzal@acm.org
Normalización
36
© berzal@acm.org
Normalización
Dependencias funcionales
37
© berzal@acm.org
Normalización
Dependencias funcionales
Formalmente:
38
© berzal@acm.org
Normalización
Identificación de dependencias funcionales
41
© berzal@acm.org
Normalización: 1NF
1NF: Primera Forma Normal
Todos los atributos tienen dominios atómicos.
42
© berzal@acm.org
Normalización: 2NF
2NF: Segunda Forma Normal
Todos los atributos no primos (los que no forman
parte de claves candidatas) dependen funcionalmente
de las claves candidatas de forma completa.
Una dependencia funcional es completa
cuando el determinante no se puede simplificar.
47
© berzal@acm.org
Normalización
p.ej.
CP → Municipio en una dirección, pero tal vez no
nos interese tener que mantener una tabla aparte con
todos los municipios de España y sus códigos postales.
48
© berzal@acm.org
Bibliografía
C.J. Date:
“Introducción a los sistemas de bases de datos”.
Prentice Hall, 2001 [7ª edición]. ISBN 968
968--444-
444-419
419--2.
Ramez A. Elmasri & Shamkant B. Navathe:
Navathe:
“Fundamentos de Sistemas de Bases de Datos”.
Addison--Wesley
Addison Wesley,, 2007 [5ª edición]. ISBN 84-
84-782
782--9085
9085--0.
Thomas M. Connolly & Carolyn E. Begg:
Begg:
“Sistemas de Bases de Datos”
Datos”
Addison--Wesley, 2005 [4ª edición].
Addison edición]. ISBN 84-
84-782-
782-9075
9075--3.
Henry F. Korth,
Korth, Abraham Silberschatz & S. Sudarshan:
Sudarshan:
“Fundamentos de Bases de Datos”.
McGraw--Hill, 2006 [5ª edición]. ISBN 84
McGraw 84--481-
481-4644
4644--1.
Olga Pons, Nicolás Marín, Juan Miguel Medina, Silvia Acid &
Mª Amparo Vila: “Introducción a las Bases de Datos: El modelo
49
relacional”. Paraninfo, 2005. ISBN 8497323963
Capítulo 5
Sistemas operativos
Aplicaciones de usuario
Interfaz con la Máquina Virtual
Sistema Operativo
Interfaz con el Hardware
Hardware
3
Objetivos del Sistema Operativo
Usuarios
Software de aplicaciones
Software del Sistema
Sistema Operativo
Hardware 4
Sistemas operativos
• Definición de Sistema Operativo
• Partes de un Sistema Operativo
• Servicios proporcionados: carga de
programas
• Arquitectura cliente-servidor
• Algunos conceptos
• Algunos Sistemas Operativos
5
PARTES DE UN SISTEMA OPERATIVO (1/3)
6
PARTES DE UN SISTEMA OPERATIVO (2/3)
7
PARTES DE UN SISTEMA OPERATIVO (3/3)
8
Herramientas de una interfaz gráfica
Iconos
Barra de herramientas
M
e
n
ú
9
Interfaz de línea de comandos
Línea de comandos
10
Sistemas operativos
• Definición de Sistema Operativo
• Partes de un Sistema Operativo
• Servicios proporcionados: carga de
programas
• Arquitectura cliente-servidor
• Algunos conceptos
• Algunos Sistemas Operativos
11
SERVICIOS PROPORCIONADOS POR EL SO
12
Carga y ejecución de Programas
v Multiusuario: Permite a dos o más usuarios ejecutar programas al
mismo tiempo. Algunos sistemas operativos permiten cientos o hasta
miles de usuarios concurrentes. Todos los Mainframes y
minicomputadores son multiusuario, a diferencia de la mayoría de los
computadores personales. Otro término para multiusuario es tiempo
compartido.
v Multiproceso: Soporta la ejecución de un programa en más de un CPU.
v Multimódulo: Permite que diferentes partes de un programa se
ejecuten concurrentemente.
v De tiempo real: Responde instantáneamente a las entradas. Los
sistemas operativos de propósito general, tales como DOS y UNIX no
son de tiempo real.
v Los términos multitarea y multiproceso suelen usarse indistintamente,
aunque el segundo implica que hay más de un CPU involucrado.
13
Sistemas operativos
• Definición de Sistema Operativo
• Partes de un Sistema Operativo
• Servicios proporcionados: carga de
programas
• Arquitectura cliente-servidor
• Algunos conceptos
• Algunos Sistemas Operativos
14
Modelo o arquitectura Cliente-Servidor
• Para que la comunicación entre dos aplicaciones en una red se
lleve a cabo, uno de los programas de aplicación debe estar
esperando por requerimientos por parte del programa
llamador, también llamado cliente.
• Este modelo, un programa espera pasivamente y el otro inicia
la comunicación. Se conoce como el paradigma de
interacción cliente servidor.
• La aplicación que espera pasivamente es llamada SERVIDOR
y la que inicia el contacto es llamada CLIENTE.
15
Características de los Clientes y Servidores
• Cliente:
– Es una aplicación normal que actúa como cliente cuando se
requiere acceso remoto.
– Es invocado directamente por el usuario y tiene una existencia
dada por la duración de la sesión del usuario.
– Corre localmente en el computador del usuario.
– Inicia activamente el contacto con un servidor.
– Ejemplo: cliente web o navegador, cliente de correo o agente de
usuario de correo, cliente DNS o resolvedor de nombres
• Servidor:
– Corre en un computador compartido.
– Espera pasivamente ser contactado por clientes remotos.
– Acepta ser contactado por clientes diversos clientes pero ofrece un
servicio bien definido.
– Ejemplo: servidor Web, servidor de correo, servidor de nombres,
...
16
Sistemas operativos
• Definición de Sistema Operativo
• Partes de un Sistema Operativo
• Servicios proporcionados: carga de
programas
• Arquitectura cliente-servidor
• Algunos conceptos
• Algunos Sistemas Operativos
17
PnP (Plug and Play): es una tecnología para soportar la
instalación de dispositivos, que pueden usarse
inmediatamente después de conectarlos físicamente, sin
procesos adicionales. La capacidad PnP viene integrada
en los sistemas operativos Mac OS, Windows 95 y
posteriores, pero para usarlo, el BIOS del computador así
como las tarjetas de expansión deben también tener
soporte para PnP.
Kernel: es el módulo central del sistema operativo. Es la
parte que se carga primero y permanece en memoria
principal. Debido a esto, es importante que el kernel sea
lo más pequeño posible, pero provea todos los servicios
esenciales que requieren las otras partes del sistema
operativo y las aplicaciones. Normalmente, el kernel es
responsable por la administración de la memoria, los
procesos, las tareas y los discos.
Driver: es un programa de bajo nivel encargado de atender a
un dispositivo físico, ejecutado como resultado de
invocación desde el sistema operativo 18
Paquetes de Software: son combinaciones de diferentes
programas que forman parte de una oferta comercial. Por
ejemplo, Microsoft Windows viene “empaquetado” con
muchas herramientas de software.
Archivo ejecutable (código objeto): Es un archivo cuyo
contenido tiene un formato que el computador puede
ejecutar directamente. A diferencia de los archivos o
códigos fuente, los ejecutables no pueden ser leídos por
las personas. Para transformar el código fuente
(programa con las instrucciones) en código ejecutable, se
necesita pasarlo a través de un programa compilador o
ensamblador..
Código Abierto : Es una certificación estándar generada por
la Open Source Initiative (OSI), indica que el código
abierto de un programa de computación está disponible
para el público en general, libre de cargo
19
Software Propietario : Se refiere a los programas que
pertenecen y son controlados por alguien. En la industria
de la computación, propietario es lo opuesto de abierto.
Un diseño o técnica propietaria es la que pertenece a
una empresa y esto implica que no se han divulgado
especificaciones, que podrían permitir que otras
compañías duplicaran el producto.
Licencia de software: Permiso que se le otorga a un
individuo o grupo, para el uso de una pieza de software.
Casi todas las aplicaciones trabajan bajo la modalidad de
darle una licencia al usuario, en lugar de venderle el
programa. Existe una amplia gama de tipos de licencias
de software. Algunas se basan en el número de
máquinas en las que se ejecutará el programa y otras en
el número de usuarios que lo pueden utilizar.
20
Piratería de software: Es la copia no autorizada de software.
Los usuarios incurren en este delito, cuando copian
programas y los distribuyen entre sus amigos y colegas,
sin costo alguno.
Software de dominio público: Se refiere a cualquier
programa que no está sujeto a Derechos de Autor. Este
software es gratuito y se puede usar sin restricciones.
Este término se usa a veces equivocadamente para
incluir freeware y shareware. El error radica en que estos
últimos sí están sujetos a Derechos de Autor.
Freeware: Software protegido por Derechos de Autor, pero
liberado por el autor para su uso gratuito. Aunque está
disponible sin costo, el autor retiene su derecho, lo que
significa que el usuario no puede hacer con ese software,
nada que no esté expresamente permitido por el autor.
Generalmente, se permite el uso pero no la venta.
21
Shareware : Software que se distribuye sobre las bases de
un sistema de ética. La mayoría del shareware se
distribuye libre de cargo, pero el autor generalmente
solicita que se pague una pequeña tarifa en caso de que
al usuario le guste el programa y lo use con regularidad.
Al cancelar esa tarifa, el usuario queda registrado con el
productor y puede recibir asistencia y actualizaciones. El
shareware está sujeto a Derechos de Autor. Esto
significa que no podemos vender un producto shareware
como nuestro, a menos que lo sea.
Courseware : Software diseñado para usarse en un
programa educativo.
Firmware : Es software (programas o datos) que se han
escrito en la memoria ROM. El firmware es una
combinación de hardware y software. Las memorias
ROM, PROM y EPROM que tienen datos o programas
grabados, son firmware
22
Sistemas operativos
• Definición de Sistema Operativo
• Partes de un Sistema Operativo
• Servicios proporcionados: carga de
programas
• Arquitectura cliente-servidor
• Algunos conceptos
• Algunos Sistemas Operativos
23
UNIX
LINUX
WINDOWS 3.x
29
SISTEMAS OPERATIVOS:
Diseño e Implementación
SEGUNDA EDICION
ANDREW S. TANENBAUM
Vrije Universiteit
Amsterdam, Países Bajos
ALBERT S. WOODHULL
Hampshire College
Amherst, Massachusetts
INTRODUCCION
Sin su software, la computadora es básicamente un montón de metal inútil. Con su software, una
computadora puede almacenar, procesar y recuperar información; exhibir documentos multimedia; realizar
búsquedas en Internet; y realizar muchas otras actividades valiosas para justificar su existencia. El software
de computadora puede dividirse a grandes rasgos en dos tipos: programas de sistema, que controlan la
operación de la computadora misma, y programas de aplicación, que realizan las tareas reales que el
usuario desea. El programa de sistema más fundamental es el sistema operativo, que controla todos los
recursos de la computadora y establece la base sobre la que pueden escribirse los programas de aplicación.
Un sistema de computadora moderno consiste en uno o más procesadores, memoria principal (también
conocida como RAM, memoria de acceso aleatorio), discos, impresoras, interfaces de red y otros
dispositivos de entrada/salida. A todas luces, se trata de un sistema complejo. Escribir programas que sigan
la pista a todos estos componentes y los usen correctamente, ya no digamos óptimamente, es una tarea en
extremo difícil. Si todos los programadores tuvieran que ocuparse de cómo trabajan las unidades de disco, y
de las docenas de cosas que pueden fallar al leer un bloque de disco, es poco probable que pudieran
escribirse muchos programas.
Hace muchos años se hizo muy evidente que debía encontrarse alguna forma de proteger a los
programadores de la complejidad del hardware. La solución que ha evolucionado gradualmente consiste en
poner una capa de software encima del hardware solo, que se encargue de administrar todas las partes del
sistema y presente al usuario una interfaz o máquina virtual que sea más fácil de entender y programar.
Esta capa de software es el sistema operativo, y constituye el tema de este libro.
La situación se muestra en la Fig. 1-1. En la parte inferior está el hardware que, en muchos casos, también
se compone de dos o más capas. La capa más baja contiene los dispositivos físicos, que consisten en chips
de circuitos integrados, alambres, fuentes de potencia, tubos de rayos catódicos y otros aparatos físicos
similares. La forma en que éstos se construyen y sus principios de funcionamiento pertenecen al campo del
ingeniero electricista.
-1-
trasladar datos dentro de la máquina, realizar operaciones aritméticas y comparar valores. En esta capa, los
dispositivos de entrada/salida se controlan cargando valores registros de dispositivo especiales. Por
ejemplo, para un disco que ejecuta una lectura, sus registros se cargan con los valores de dirección del
disco, dirección de memoria principal, conteo de bytes y dirección de acceso (READ o WRITE). En la
práctica se requieren muchos parámetros más, y el estado devuelto por la unidad de disco después de una
operación es muy complejo. Además, la temporización desempeña un papel importante en la programación
de muchos dispositivos de E/S.
Una función importante del sistema operativo es ocultar toda esta complejidad y ofrecer al programador un
conjunto de instrucciones más cómodo con el que pueda trabajar. Por ejemplo, LEER BLOQUE DE
ARCHIVO es conceptualmente más sencillo que tener que preocuparse por los detalles de mover cabezas
de disco, esperar que se estabilicen, etcétera.
Encima del sistema operativo está el resto del software de sistema. Aquí encontramos el intérprete de
comandos (shell), sistemas de ventanas, compiladores, editores y otros programas similares
independientes de la aplicación. Es importante darse cuenta de que estos programas definitivamente no
forman parte del sistema operativo, a pesar de que casi siempre son provistos por el fabricante de la
computadora. Éste es un punto crucial, aunque sutil. El sistema operativo es la porción del software que se
ejecuta en modo kernel o modo supervisor, y está protegido por el hardware contra la intervención del
usuario (olvidándonos por el momento de algunos de los microprocesadores más viejos que no tienen
ninguna protección de hardware). Los compiladores y editores se ejecutan en modo de usuario. Si a un
usuario no le gusta un compilador en particular, él 1 está en libertad de escribir el suyo propio si lo desea; no
está en libertad de escribir su propio manejador de interrupciones del disco, que forma parte del sistema
operativo y normalmente está protegido por el hardware contra los intentos de los usuarios por modificarlo.
Por último, encima de los programas de sistema vienen los programas de aplicación. Los usuarios compran
o escriben estos programas para resolver sus problemas particulares, como procesamiento de textos, hojas
de cálculo, cálculos de ingeniería o juegos.
-2-
quiere intervenir de manera demasiado íntima en la programación de los discos flexibles (o de los duros,
que son igualmente complejos, y muy distintos). En vez de ello, lo que el programador quiere es manejar
una abstracción sencilla, de alto nivel. En el caso de los discos, una abstracción típica sería que el disco
contiene una colección de archivos con nombre. Cada archivo puede abrirse para lectura o escritura, leerse
o escribirse, y por último cerrarse. Los detalles de si la grabación debe usar o no modulación de frecuencia
modificada y cuál es la situación actual del motor no deberán aparecer en la abstracción presentada al
usuario.
El programa que oculta la verdad acerca del hardware y presenta al programador una vista sencilla y bonita
de archivos con nombre que pueden leerse y escribirse es, por supuesto, el sistema operativo. Así como el
sistema operativo aísla al programador del hardware del disco y presenta una interfaz sencilla orientada a
archivos, también oculta muchos asuntos desagradables referentes a interrupciones, temporizadores,
administración de memoria y otras funciones de bajo nivel. En cada caso, la abstracción que el sistema
operativo ofrece es más sencilla y fácil de usar que el hardware subyacente.
En esta vista, la función del sistema operativo es presentar al usuario el equivalente de una máquina
extendida o máquina virtual que es más fácil de programar que el hardware subyacente. La forma en que
el sistema operativo logra este objetivo es una historia larga, que estudiaremos con detalle a lo largo del
libro.
-3-
nombre en honor a ella.
-4-
Figura 1-2. Uno de los primeros sistemas por lotes. (a) Los programadores traen tarjetas a la 1401. (b)
La 1401 lee lotes de trabajos y los graba en cinta. (c) El operador lleva la cinta de entrada a la 7094. (d)
La 7094 realiza la computación. (e) El operador lleva la cinta de salida a la 1401. (f) La 1401 imprime la
salida.
Después de cerca de una hora de reunir un lote de trabajos, la cinta se rebobinaba y se llevaba al cuarto de
la máquina, donde se montaba en una unidad de cinta. El operador cargaba entonces un programa especial
(el antepasado del sistema operativo actual), que leía el primer trabajo de la cinta y lo ejecutaba. La salida
se escribía en una segunda cinta, en lugar de imprimirse. Cada vez que terminaba un trabajo, el sistema
operativo leía automáticamente el siguiente trabajo de la cinta y comenzaba a ejecutarlo. Una vez que
estaba listo todo el lote, el operador desmontaba las cintas de entrada y salida, montaba la cinta de entrada
del siguiente lote, y llevaba la cinta de salida a una 1401 para la impresión fuera de línea (o sea, no
conectada a la computadora principal).
La estructura de un trabajo de entrada típico se muestra en la Fig. 1-3. El trabajo comenzaba con una tarjeta
$JOB, que especificaba el tiempo de ejecución máximo en minutos, el número de cuenta al que se debía
cobrar el trabajo, y el nombre del programador. Luego venía una tarjeta $FORTRAN, que ordenaba al
sistema operativo leer el compilador de FORTRAN de la cinta de sistema. Esta tarjeta iba seguida del
programa por compilar y por una tarjeta $LOAD, que ordenaba al sistema operativo cargar el programa
objeto recién compilado. (Los programas compilados a menudo se escribían en cintas temporales y tenían
que cargarse explícitamente.) Luego venía la tarjeta $RUN, que ordenaba al sistema operativo ejecutar el
programa con los datos que le seguían. Por último, la tarjeta $END marcaba el final del trabajo. Estas
tarjetas de control primitivas eran los precursores de los lenguajes de control de trabajos e intérpretes de
comandos modernos.
-5-
ingeniería. Por el otro, estaban las computadoras comerciales orientadas hacia los caracteres, como la
1401, que los bancos y las compañías de seguros utilizaban ampliamente para ordenar e imprimir desde
cinta.
La creación y mantenimiento de dos líneas de producto totalmente distintas era una situación costosa para
los fabricantes. Además, muchos clientes de computadoras nuevas necesitaban inicialmente una máquina
pequeña que más adelante les resultaba insuficiente, de modo que querían una máquina más grande que
ejecutara todos sus viejos programas, pero más rápidamente.
IBM trató de resolver simultáneamente ambos problemas introduciendo la System/360. La 360 era una serie
de máquinas de software compatible que iban desde tamaños comparables a la 1401 hasta computadoras
mucho más potentes que la 7094. Las máquinas diferían sólo en el precio y el rendimiento (memoria
máxima, velocidad del procesador, número de dispositivos de E/S permitidos, etc.). Puesto que todas las
máquinas tenían la misma arquitectura y conjunto de instrucciones, los programas escritos para una
máquina podían ejecutarse en todas las demás, al menos en teoría. Además, la 360 estaba diseñada para
manejar computación tanto científica como comercial. Así, una sola familia de máquinas podía satisfacer las
necesidades de todos los clientes. En años subsecuentes IBM produjo sucesoras comparables a la línea
360, usando tecnología más moderna, conocidas como series 370, 4300, 3080 y 3090.
La 360 fue la primera línea importante de computadoras en usar (a pequeña escala) circuitos integrados
(IC), ofreciendo así una ventaja de precio/rendimiento considerable respecto a las máquinas de la segunda
generación, que se armaban con transistores individuales. Esta línea fue un éxito inmediato, y la idea de
una familia de computadoras compatibles pronto fue adoptada por todos los demás fabricantes importantes.
Los descendientes de estas máquinas todavía se emplean en uno que otro centro de cómputo en la
actualidad, pero su uso está en rápido declive.
La gran ventaja de la idea de “una familia” fue también su gran debilidad. La intención era que todo el
software, incluido el sistema operativo, funcionara en todos los modelos. El software tenía que funcionar en
sistemas pequeños, que en muchos casos simplemente sustituían a la 1401 para copiar tarjetas en cinta, y
en sistemas muy grandes, que con frecuencia sustituían a las 7094 para realizar pronósticos del tiempo y
otros trabajos de computación pesada. El software tenía que ser bueno en sistemas con pocos y con
muchos periféricos; tenía que funcionar en entornos comerciales y. científicos y, sobre todo, tenía que ser
eficiente para todos estos usos distintos.
Era imposible que IBM (o alguien más) pudiera escribir un programa que satisficiera todos esos requisitos
opuestos. El resultado fue un sistema operativo enorme, extraordinariamente complejo, tal vez dos o tres
órdenes de magnitud mayor que FMS. Este sistema consistía en millones de líneas de lenguaje
ensamblador escrito por miles de programadores, y contenía miles y miles de errores, requiriéndose un flujo
continuo de nuevas versiones en un intento por corregirlos. Cada versión nueva corregía algunos errores e
introducía otros nuevos, de modo que es probable que el número de errores se mantuviera constante con el
tiempo.
Uno de los diseñadores de OS/360, Fred Brooks, escribió después un ingenioso e incisivo libro (Brooks,
1975) describiendo sus experiencias con el OS/360. Aunque sería imposible resumir aquí ese libro, baste
con decir que la portada muestra una manada de bestias prehistóricas atascadas en un foso de brea. La
portada del libro de Silberschatz y Galvin (1994) es una alusión similar.
A pesar de su enorme tamaño y de sus problemas, OS/360 y los sistemas operativos de tercera generación
parecidos a él producidos por otros fabricantes de computadoras lograron satisfacer a sus clientes en un
grado razonable, y también popularizaron varias técnicas clave que no existían en los sistemas operativos
de la segunda generación. Tal vez la más importante de ellas haya sido la multiprogramación. En la 7094,
cuando el trabajo actual hacía una pausa para esperar que se completara una operación de cinta u otra
operación de E/S, la CPU simplemente permanecía ociosa hasta que la E/S terminaba. En los cálculos
científicos, con gran uso de CPU, la E/S es poco frecuente, así que el tiempo desperdiciado no es
significativo. En el procesamiento de datos comerciales, el tiempo de espera por E/S puede ser el 80 o 90%
del tiempo total, de modo que algo debía hacerse para evitar que la CPU estuviera ociosa tanto tiempo.
La solución a la que se llegó fue dividir la memoria en varias secciones, con un trabajo distinto en cada
partición, como se muestra en la Fig. 1-4. Mientras un trabajo estaba esperando que terminara su E/S, otro
podía estar usando la CPU. Si se podían tener en la memoria principal suficientes trabajos a la vez, la CPU
podía mantenerse ocupada casi todo el tiempo. Tener múltiples trabajos en la memoria a la vez requiere
hardware especial para proteger cada trabajo contra espionaje por parte de los demás, pero la 360 y otros
sistemas de tercera generación estaban equipados con este hardware.
-6-
Figura 1-4. Sistema de multiprogramación
con tres trabajos en la memoria
Otra característica importante presente en los sistemas operativos de la tercera generación era la capacidad
de leer trabajos de las tarjetas al disco tan pronto como se llevaban al cuarto de computadoras. Luego, cada
vez que un trabajo terminaba su ejecución, el sistema operativo podía cargar uno nuevo del disco en la
partición que había quedado vacía y ejecutarlo. Esta técnica se llama spooling (de “operación simultánea
de periféricos en línea”) y también se usaba para la salida. Con spooling, las 1401 ya no eran necesarias, y
desapareció una buena parte del transporte de cintas.
Aunque los sistemas operativos de la tercera generación se adaptaban bien a cálculos científicos extensos y
sesiones masivas de procesamiento de datos comerciales, seguían siendo básicamente sistemas por lotes.
Muchos programadores añoraban los días de la primera generación cuando tenían toda la máquina para
ellos solos durante unas cuantas horas, lo que les permitía depurar sus programas rápidamente. Con los
sistemas de la tercera generación, el tiempo entre la presentación de un trabajo y la obtención de las salidas
a menudo era de varias horas, y una sola coma mal colocada podía causar el fracaso de una compilación y
que el programador desperdiciara medio día.
Este deseo de respuesta rápida preparó el camino para el tiempo compartido, una variante de la
multiprogramación, en la que cada usuario tiene una terminal en línea. En un sistema de tiempo compartido,
si 20 usuarios ingresan en el sistema y 17 de ellos están pensando, hablando o tomando café, la CPU
puede asignarse por turno a los tres trabajos que requieren servicio. Puesto que las personas que están
depurando programas usualmente emiten comandos cortos (p. ej., compilar un procedimiento de cinco
páginas) en vez de largos (p. ej., ordenar un archivo de un millón de registros), la computadora puede
proporcionar servicio rápido interactivo a varios usuarios y tal vez también trabajar con trabajos de lote
grandes en segundo plano cuando la CPU está ociosa. Aunque el primer sistema serio de tiempo
compartido (CTSS) fue creado en el M.I.T. en una 7094 especialmente modificada (Corbato et al., 1962), el
tiempo compartido no se popularizó realmente hasta que se generalizó el uso del hardware de protección
necesario durante la tercera generación.
Después del éxito del sistema CTSS, MIT, Bell Labs y General Electric (por ese entonces un fabricante
importante de computadoras) decidieron emprender el desarrollo de un “servicio de computadora” una
máquina que diera apoyo a cientos de usuarios de tiempo compartido simultáneos. Su modelo fue el
sistema de distribución de electricidad: cuando usted necesita potencia eléctrica, simplemente enchufa una
clavija en la pared y, dentro de límites razonables, obtendrá tanta electricidad como necesite. Los
diseñadores de este sistema, llamado MULTICS (servicio de información y computación multiplexado),
contemplaban una enorme máquina que proporcionara potencia de cómputo a todos los usuarios de Boston.
La idea de que máquinas mucho más potentes que su GE-645 se vendieran como computadoras
personales por unos cuantos miles de dólares sólo 30 años después no era sino ciencia ficción en ese
entonces.
Para resumir un poco la historia, MULTICS introdujo muchas ideas seminales en la literatura de
computación, pero su construcción fue mucho más difícil de lo que nadie había imaginado. Bell Labs
abandonó el proyecto, y General Electric dejó el negocio de las computadoras por completo. Finalmente,
MULTICS funcionó lo bastante bien como para usarse en un entorno de producción de MIT y en docenas de
otros sitios, pero el concepto de un servicio de computadora se hizo obsoleto al desplomarse los precios de
las computadoras. No obstante, MULTICS tuvo una influencia enorme sobre los sistemas subsecuentes; se
le describe en (Corbato et al., 1972; Corbato y Vyssotsky, 1965; Daley y Dennis, 1968; Organick, 1972;
Saltzer, 1974).
Otro avance importante durante la tercera generación fue el crecimiento fenomenal de las
minicomputadoras, comenzando con la DEC PDP- 1 en 1961. La PDP-1 sólo tenía 4K de palabras de 18
bits, pero a $120 000 por máquina (menos del 5% del precio de una 7094), se vendieron como pan caliente.
Para ciertos tipos de trabajos no numéricos, la PDP-1 era casi tan rápida como la 7094, e hizo nacer una
-7-
industria totalmente nueva. A esta máquina pronto siguió una serie de otras PDP (todas incompatibles, a
diferencia de la familia IBM), culminando en la PDP-11.
Uno de los computólogos de BelI Labs que había trabajado en el proyecto MULTICS, Ken Thompson,
encontró subsecuentemente una pequeña minicomputadora PDP-7 que nadie estaba usando y se propuso
escribir una versión de MULTICS reducida al mínimo, para un solo usuario. Este trabajo posteriormente
evolucionó para convertirse en el sistema operativo UNIX®, que se popularizó en el mundo académico, las
dependencias del gobierno y muchas compañías.
La historia de UNIX se cuenta en otras obras (p. ej., Salus, 1994). Baste con decir que, dado que casi todo
mundo podía obtener el código fuente, diversas organizaciones desarrollaron sus propias versiones
(incompatibles), lo que condujo al caos. Con objeto de que fuera posible escribir programas susceptibles de
ejecución en cualquier sistema UNIX, el IEEE creó un estándar para UNIX, llamado Posix, que casi todas
las versiones actuales de UNIX reconocen. POSIX define una interfaz mínima de llamadas al sistema que
los sistemas UNIX deben reconocer. De hecho, algunos otros sistemas de programación ya reconocen la
interfaz POSIX.
-8-
Un sistema operativo distribuido, en cambio, presenta el mismo aspecto a los usuarios que un sistema
tradicional de un solo procesador, aunque en realidad se compone de múltiples procesadores. Los usuarios
no deben enterarse de en dónde se están ejecutando sus programas o almacenando sus archivos; de todo
eso debe encargarse el sistema operativo automática y eficientemente.
Los verdaderos sistemas operativos distribuidos requieren más que la adición de un poco más de código a
un sistema operativo uniprocesador, porque los sistemas distribuidos y centralizados difieren en aspectos
cruciales. Los sistemas distribuidos, por ejemplo, a menudo permiten a las aplicaciones ejecutarse en varios
procesadores al mismo tiempo, por lo que requieren algoritmos de planificación de más complejos a fin de
optimizar el grado de paralelismo.
En muchos casos, los retardos de comunicación dentro de la red implican que éstos (y otros) algoritmos
deban ejecutarse con información incompleta, caduca o incluso incorrecta. Esta situación difiere
radicalmente un sistema de un solo procesador en el que el sistema operativo tiene toda la información
sobré el estado del sistema.
-9-
llegó al punto en que se hizo necesario un disco duro, pero en concordancia con la filosofía de MINIX basta
con una partición de 30 megabytes. En contraste, algunos sistemas UNIX comerciales ahora recomiendan
una partición de disco de 200 MB como mínimo indispensable.
Para el usuario medio sentado ante una IBM PC, ejecutar MINIX es similar a ejecutar UNIX. Muchos de los
programas básicos, como cat, grep, is, make y el shell están presentes y desempeñan las mismas funciones
que sus contrapartes de UNIX. Al igual que el sistema operativo mismo, todos estos programas de utilería
fueron reescritos completamente desde cero por el autor, sus estudiantes y algunas otras personas
dedicadas.
En todo este libro se usará MINIX como ejemplo. No obstante, casi todo lo que se diga acerca de MINIX, a
menos que se refiera al código en sí, también aplica a UNIX. Muchos de estos comentarios también aplican
a otros sistemas. Esto debe tenerse siempre presente al leer el libro.
Como acotación, es posible que unas cuantas palabras acerca de LINUX y su relación con MINIX sean de
interés para algunos lectores. Poco después de liberarse MINIX, se formó un grupo de noticias de USENET
para hablar de él. En pocas semanas, este grupo tenía 40000 suscriptores, la mayor parte de los cuales
quería agregar enormes cantidades de nuevas capacidades a MINIX a fin de hacerlo más grande y mejor
(bueno, al menos más grande). Cada día, varios cientos de ellos ofrecían sugerencias, ideas y fragmentos
de código. El autor de MINIX resistió con éxito esta arremetida durante varios años, a fin de mantener a
MINIX lo suficientemente pequeño y aseado como para que los estudiantes lo entendieran. Gradualmente,
la gente comenzó a convencerse de que su posición era inamovible. Finalmente, un estudiante finlandés,
Linus Torvalds, decidió escribir un clon de MINIX que pretendía ser un sistema de producción con
abundantes capacidades, más que una herramienta educativa. Así fue como nació LINUX.
1.3.1 Procesos
Un concepto clave en MINIX, y en todos los sistemas operativos, es el proceso. Un proceso es
básicamente un programa en ejecución. Cada proceso tiene asociado un espacio de direcciones, una lista
de posiciones de memoria desde algún mínimo (usualmente 0) hasta algún máximo, que el proceso puede
leer y escribir. El espacio de direcciones contiene el programa ejecutable, los datos del programa, y su pila.
A cada proceso también se asocia un conjunto de registros, que incluyen el contador del programa, el
apuntador de la pila y otros registros de hardware, así como toda la demás información necesaria para
ejecutar el programa.
Volveremos al concepto de proceso con mucho mayor detalle en el capítulo 2, pero por ahora la forma más
fácil de adquirir una idea intuitiva de lo que es un proceso es pensar en los sistemas de tiempo compartido.
Periódicamente, el sistema operativo decide dejar de ejecutar un proceso y comenzar a ejecutar otro, por
ejemplo, porque el primero ya tuvo más tiempo de CPU del que le tocaba durante el segundo anterior.
Cuando un proceso se suspende temporalmente de esta manera, debe reiniciarse después en el mismo
-10-
estado exactamente en que estaba en el momento en que se le detuvo. Esto implica que toda la información
acerca del proceso se debe guardar explícitamente en algún lugar durante la suspensión. Por ejemplo, es
posible que el proceso tenga varios archivos abiertos para lectura. Cada uno de estos archivos tiene
asociado un apuntador que indica la posición actual (es decir, el número del byte o registro que se leerá a
continuación). Cuando un proceso se suspende temporalmente, es necesario guardar todos estos
apuntadores para que una llamada READ ejecutada después de reiniciarse el proceso lea los datos
correctos. En muchos sistemas operativos, toda la información acerca de cada proceso, aparte del
contenido de su propio espacio de direcciones, se almacena en una tabla del sistema operativo llamada
tabla de procesos, que es un arreglo (o lista enlazada) de estructuras, una para cada proceso existente en
ese momento.
Así, un proceso (suspendido) consiste en su espacio de direcciones, por lo regular llamado imagen de
núcleo (recordando las memorias de núcleos magnéticos que se usaban en el pasado), y su entrada en la
tabla de procesos, que contiene sus registros, entre otras cosas.
Las llamadas al sistema de administración para procesos clave son las que se ocupan de la creación y
terminación de procesos. Consideremos un ejemplo representativo. Un proceso llamado intérprete de
comandos o shell lee comandos de una terminal. El usuario acaba de teclear un comando solicitando la
compilación de un programa. El shell debe crear ahora un proceso nuevo que ejecute el compilador. Cuando
ese proceso haya terminado la compilación, ejecutará una llamada al sistema para terminarse a sí mismo.
Si un proceso puede crear uno o más procesos distintos (denominados procesos hijos) y éstos a su vez
pueden crear procesos hijos, pronto llegamos a la estructura de árbol de procesos de la Fig. 1-5. Los
procesos relacionados que están cooperando para realizar alguna tarea a menudo necesitan comunicarse
entre sí y sincronizar sus actividades. Esta comunicación se llama comunicación entre procesos, y se
estudiará con detalle en el capítulo 2.
-11-
de las reglas de protección. En las instalaciones grandes, sólo el administrador del sistema conoce la
contraseña necesaria para convertirse en superusuario, pero muchos de los usuarios ordinarios (sobre todo
estudiantes) dedican un esfuerzo considerable a tratar de encontrar defectos en el sistema que les permitan
convertirse en superusuarios sin contar con la contraseña.
1.3.2 Archivos
La otra categoría amplia de llamadas al sistema se relaciona con el sistema de archivos. Como ya se
apuntó, una función importante del sistema operativo es ocultar las peculiaridades de los discos y otros
dispositivos de E/S y presentar al programador un modelo abstracto, aseado y bonito, de archivos
independientes del dispositivo. Es obvio que se necesitan llamadas al sistema para crear, eliminar, leer y
escribir archivos. Antes de que un archivo pueda leerse, debe abrirse, y después de leerse debe cerrarse,
así que también se incluyen llamadas para hacer estas cosas.
A fin de contar con un lugar para guardar los archivos, MINIX tiene el concepto de directorio como
mecanismo para agrupar los archivos. Un estudiante, por ejemplo, podría tener un directorio para cada
curso en el que está inscrito (donde guardaría los programas necesarios para ese curso), otro directorio
para su correo electrónico, y otro más para su página base de la World Wide Web. Por tanto, se necesitan
llamadas al sistema para crear y eliminar directorios. También se incluyen llamadas para poner un archivo
existente en un directorio, y para quitar un archivo de un directorio. Las entradas de directorio pueden ser
archivos u otros directorios. Este modelo también da pie a una jerarquía -el sistema de archivos- como se
muestra en la Fig. 1-6.
-12-
En todo momento, cada proceso tiene un directorio de trabajo actual, en el cual se buscan los archivos
cuyos nombres de ruta no comienzan con una diagonal. Por ejemplo, en la Fig. 1-6, si /Profesorado/Prof.
Ruiz fuera el directorio de trabajo, el empleo del nombre de ruta Cursos/ CS101 se referiría al mismo archivo
que el nombre de ruta absoluta dado en el párrafo anterior. Los procesos pueden cambiar de directorio de
trabajo emitiendo una llamada al sistema que especifique el nuevo directorio de trabajo.
Los archivos y directorios en MINIX se protegen asignando a cada uno un código de protección binario de 9
bits. El código de protección consiste en tres campos de 3 bits, uno para el propietario, uno para otros
miembros del grupo del propietario (el administrador del sistema divide a los usuarios en grupos) y uno para
toda la demás gente. Cada campo tiene un bit para acceso de lectura, uno para acceso de escritura y uno
para acceso de ejecución. Estos tres bits se conocen como bits rwx. Por ejemplo, el código de protección
rwxr-x--x significa que el propietario puede leer, escribir o ejecutar el archivo, otros miembros del grupo
pueden leer o ejecutar (pero no escribir) el archivo, y el resto de la gente puede ejecutar (pero no leer ni
escribir) el archivo. En el caso de un directorio, x indica permiso de búsqueda. Un guión significa que el
permiso correspondiente está ausente.
Antes de poder leer o escribir un archivo, es preciso abrirlo, y en ese momento se verifican los permisos. Si
está permitido el acceso, el sistema devuelve un entero pequeño llamado descriptor de archivo que se
usará en operaciones subsecuentes. Si el acceso está prohibido, se devuelve un código de error.
Otro concepto importante en MINIX es el de sistema de archivos montado. Casi todas las computadoras
personales tienen una o más unidades de disco flexible en las que pueden insertarse y de las que pueden
retirarse disquetes. A fin de contar con una forma congruente de manejar estos medios removibles (y
también los CD-ROM, que también son removibles), MINIX permite conectar el sistema de archivos del
disco flexible al árbol principal. Considere la situación de la Fig. 1-7(a). Antes de la llamada MOUNT, el disco
en RAM (disco simulado en la memoria principal) contiene el sistema de archivos raíz, o primario, y la
unidad 0 contiene un disquete que contiene otro sistema de archivos.
Figura 1-7. (a) Antes de montarse, los archivos de la unidad 0 no están accesibles. (b) Después de
montarse, esos archivos forman parte de la jerarquía de archivos.
Sin embargo, no podemos usar el sistema de archivos de la unidad 0, porque no hay forma de especificar
nombres de ruta en él. MINIX no permite anteponer a los nombres de ruta un nombre o número de unidad;
ésa sería precisamente la clase de dependencia del dispositivo que los sistemas operativos deben eliminar.
En vez de ello, la llamada al sistema MOUNT permite conectar el sistema de archivos de la unidad 0 al
sistema de archivo raíz en cualquier lugar en el que el programa quiera que esté. En la Fig. 1-7(b) el sistema
de archivos de la unidad 0 se montó en el directorio b, permitiendo así el acceso a los archivos /b/x y /b/y. Si
el directorio b hubiera contenido archivos, éstos no habrían estado accesibles mientras estuviera montada la
unidad 0, ya que /b se habría referido al directorio raíz de la unidad 0. (No poder acceder a esos archivos no
es tan grave como parece a primera vista: los sistemas de archivos casi siempre se montan en directorios
vacíos.)
Otro concepto importante en MINIX es el archivo especial. Los archivos especiales sirven para hacer que
los dispositivos de E/S semejen archivos. Así, esos dispositivos pueden leerse y escribirse usando las
mismas llamadas al sistema que se usan para leer y escribir archivos. Existen dos tipos de archivos
especiales: archivos especiales por bloques y archivos especiales por caracteres. Los primeros se
usan para modelar dispositivos que consisten en una colección de bloques directamente direccionables,
como los discos. Al abrir un archivo especial por bloques y leer, digamos, el bloque 4, un programa puede
acceder directamente al bloque 4 del dispositivo, pasando por alto la estructura del sistema de archivos que
contiene. De forma similar, los archivos especiales por caracteres se usan para modelar impresoras,
módems y otros dispositivos que aceptan o producen flujos de caracteres.
-13-
La última característica que mencionaremos en esta reseña general se relaciona tanto con los procesos
como con los archivos: los conductos. El conducto (o tubería) es una especie de seudoarchivo que puede
servir para conectar dos procesos, como se muestra en la Fig. 1-8. Cuando el proceso A desea enviar datos
al proceso B, escribe en el conducto como si fuera un archivo de salida. El proceso B puede leer los datos
leyendo del conducto como si fuera un archivo de entrada. Así, la comunicación entre procesos en MINIX se
parece mucho a las lecturas y escrituras de archivos normales. Es más, la única forma en que un proceso
puede descubrir que el archivo de salida en el que está escribiendo no es realmente un archivo, sino un
conducto, es emitiendo una llamada especial al sistema.
1.3.3 El shell
El sistema operativo MINIX es el código que ejecuta las llamadas al sistema. Los editores, compiladores,
ensambladores, vinculadores e intérpretes de comandos definitivamente no forman parte del sistema
operativo, aunque son importantes y útiles. A riesgo de confundir un poco las cosas, en esta sección
examinaremos brevemente el intérprete de comandos de MINIX, llamado shell, que, si bien no es parte del
sistema operativo, utiliza intensivamente muchas de las características del sistema operativo y, por tanto, es
un buen ejemplo de la forma en que pueden usarse las llamadas al sistema. El shell también es la interfaz
primaria entre un usuario sentado ante su terminal y el sistema operativo.
Cuando un usuario ingresa en el sistema, se inicia un shell. El shell tiene la terminal como entrada estándar
y salida estándar, y lo primero que hace es exhibir la indicación (prompt), un carácter como un signo de
dólar, que le indica al usuario que el shell está esperando para aceptar un comando. Si el usuario ahora
teclea
date
por ejemplo, el shell crea un proceso hijo y ejecuta el programa date como hijo. Mientras se está ejecutando
el proceso hijo, el shell espera a que termine. Cuando el hijo termina, el shell exhibe otra vez la indicación y
trata de leer la siguiente línea de entrada.
El usuario puede especificar que la salida estándar sea redirigida a un archivo, por ejemplo,
date >archivo
De forma similar, la entrada estándar puede redirigirse, como en
sort <archivo 1 >archivo2
que invoca el programa sort con entradas tomadas de archivo1 y enviando las salidas a archivo2.
La salida de un programa puede usarse como entrada para otro programa conectándolos con un conducto
Así,
cat archivo1 archivo2 archivo3 | sort >/dev/lp
invoca el programa cat para concatenar tres archivos y enviar la salida a sort para que acomode todas las
líneas en orden alfabético. La salida de sort se redirige al archivo /dev/lp, que es un nombre típico para el
archivo especial por caracteres de la impresora. (Por convención, todos los archivos especiales se guardan
en el directorio /dev.)
Si un usuario escribe un signo & después de un comando, el shell no espera hasta que se completa, sino
que exhibe una indicación de inmediato. Por tanto,
cat archivo1 archivo2 archivo3 | sort >/dev/lp &
inicia el ordenamiento como trabajo de segundo plano, permitiendo que el usuario siga trabajando
normalmente mientras se está realizando el ordenamiento. El shell tiene varias otras características
interesantes que no tenemos espacio para examinar aquí
-14-
Redes de comunicaciones
Última modificación 2009/04
Se solía decir que TCP/IP debería funcionar incluso entre dos latas unidas por una cuerda.
En la foto vemos a Jon Postel, Steve Crocker y Vinton Cerf haciendo la prueba.
Elaboración propia utilizando principalmente apuntes de trabajo, de distintas asignaturas universitarias, trabajos del
profesor Montañana publicados en RedIRIS y artículos de la wikipedia (http://www.wikipedia.org).
Algunas partes son directamente copia o traducción de las fuentes.
Redes de comunicaciones
Redes de comunicaciones
Contenido
1. INTRODUCCIÓN...........................................................................................................................................................4
1.1. Conceptos................................................................................................................................................................4
1.2. Tipos de red.............................................................................................................................................................6
1.3. Redes de área local (LAN)......................................................................................................................................9
1.4. Redes de área extensa (WAN)................................................................................................................................9
2. EL MODELO ISO OSI.................................................................................................................................................10
2.1. Niveles de red del modelo OSI.............................................................................................................................11
3. EL MODELO INTERNET............................................................................................................................................13
3.1. Un poco de historia...............................................................................................................................................13
3.2. Familia de protocolos de Internet.........................................................................................................................13
3.3. Protocolo Internet (IP)..........................................................................................................................................15
3.4. Otros protocolos de la familia Internet.................................................................................................................25
4. ETHERNET...................................................................................................................................................................29
4.1. Un poco de historia...............................................................................................................................................29
4.2. Definición.............................................................................................................................................................30
4.3. Control de colisiones.............................................................................................................................................30
4.4. Direccionamiento..................................................................................................................................................31
4.5. Formato de trama..................................................................................................................................................31
4.6. Tarjetas interfaces de red (NIC: Network Interface Card)....................................................................................32
4.7. Repetidores y concentradores (Hubs)...................................................................................................................32
4.8. Puentes (Bridges) y conmutadores (Switches).....................................................................................................33
4.9. Comunicación Dúplex (Full-Duplex)...................................................................................................................33
4.10. Restricciones.......................................................................................................................................................34
4.11. La evolución de la familia Ethernet....................................................................................................................35
4.12. Mejoras de rendimiento......................................................................................................................................39
5. IEEE 802.11 (Wi-Fi).....................................................................................................................................................41
5.1. Definición.............................................................................................................................................................41
5.2. Otras definiciones.................................................................................................................................................41
5.3. Problemas añadidos en redes inalámbricas...........................................................................................................43
5.4. Control de acceso al medio (MAC: Medium Access Control).............................................................................43
5.5. Seguridad..............................................................................................................................................................44
5.6. Evolución del estándar 802.11..............................................................................................................................45
6. PROTOCOLOS WAN..................................................................................................................................................48
6.1. Portadora-T y PDH (Plesiochronous Digital Hierarchy)......................................................................................48
6.2. X.25.......................................................................................................................................................................49
6.3. RDSI.....................................................................................................................................................................49
6.4. FDDI (Fiber Distributed Data Interface) / CDDI.................................................................................................50
6.5. FRAME-RELAY..................................................................................................................................................50
6.6. ATM (Asynchronous Transfer Mode)..................................................................................................................52
6.7. Redes de fibra SONet / SDH................................................................................................................................54
6.8. PoS (Packet Over SONet/SDH)............................................................................................................................55
6.9. GSM (Global System for Mobile comunications)................................................................................................55
6.10. GPRS (General Packet Radio Service)...............................................................................................................55
6.11. UMTS (Universal Mobile Telecommunications System)..................................................................................55
6.12. Redes de satélites................................................................................................................................................56
6.13. MPLS (Multi-Protocol Label Switching)...........................................................................................................56
7. MÉTODOS DE ACCESO A REDES...........................................................................................................................57
7.1. Introducción..........................................................................................................................................................57
7.2. Módems.................................................................................................................................................................57
http://guimi.net 2 / 99
Redes de comunicaciones
7.3. xDSL.....................................................................................................................................................................57
7.4. CATV (Redes de TV por cable)...........................................................................................................................60
7.5. LMDS (Local Multipoint Distribution System)...................................................................................................61
8. REDES PRIVADAS VIRTUALES..............................................................................................................................62
8.1. Introducción..........................................................................................................................................................62
8.2. Autenticación de usuario.......................................................................................................................................63
8.3. Protocolos para la realización de VPNs................................................................................................................64
9. SEGURIDAD EN REDES............................................................................................................................................65
9.1. Introducción..........................................................................................................................................................65
9.2. Algoritmos............................................................................................................................................................69
9.3. Técnicas criptográficas y de seguridad.................................................................................................................71
9.4. Autenticación de usuario.......................................................................................................................................71
9.5. Esquemas de seguridad.........................................................................................................................................73
9.6. Herramientas de seguridad de redes.....................................................................................................................76
10. TRANSMISIÓN MULTIMEDIA EN REDES IP.......................................................................................................77
10.1. Introducción........................................................................................................................................................77
10.2. El protocolo H.323..............................................................................................................................................78
10.3. Protocolo SIP......................................................................................................................................................82
11. VÍDEO-DIFUSIÓN Y VÍDEO BAJO DEMANDA...................................................................................................85
12. ANEXO I – Cortafuegos.............................................................................................................................................86
13. ANEXO II – Comandos para la gestión de red...........................................................................................................87
14. ANEXO III - La VC en el campo educativo...............................................................................................................98
14.1. Introducción........................................................................................................................................................98
14.2. Técnicas de realización.......................................................................................................................................98
14.3. Elementos que el profesor tiene que contemplar................................................................................................99
http://guimi.net 3 / 99
Redes de comunicaciones 1. INTRODUCCIÓN
1. INTRODUCCIÓN
1.1. Conceptos
Red de comunicaciones
Una red de comunicaciones es un conjunto de medios técnicos que permiten la comunicación a distancia entre equipos
autónomos (no jerárquica -master/slave-). Normalmente se trata de transmitir datos, audio y vídeo por ondas
electromagnéticas a través de diversos medios (aire, vacío, cable de cobre, fibra óptica, etc.). La información se puede
transmitir de forma analógica, digital o mixta, pero en cualquier caso las conversiones, si las hay, siempre se realizan de
forma transparente al usuario, el cual maneja la información de forma analógica exclusivamente.
Las redes más habituales son las de ordenadores, las de teléfono, las de transmisión de audio (sistemas de megafonía o
radio ambiental) y las de transmisión de vídeo (televisión o vídeo vigilancia).
Capacidad de transmisión
La capacidad de transmisión indica el número de bits por segundo que se pueden transmitir a través de una conexión. A
menudo se llama erróneamente velocidad de transmisión (que depende de la capacidad y de otros factores) o ancho de
banda (que es la amplitud de onda utilizable). En este texto usaremos ancho de banda como sinónimo de capacidad de
transmisión excepto cuando se hable explícitamente de frecuencias de onda.
En el contexto de velocidades o capacidades de transmisión (caudales), los prefijos (K, M, G, ... ) se utilizan con su
significado métrico de potencias de 10 (103, 106, etc.).
En el contexto de almacenamientos, buffers, etc, los prefijos significan potencias de 2 (210, 220, etc.)1.
Control de flujo
Capacidad del receptor de enviar un mensaje al emisor para indicarle que deje de enviar momentáneamente datos
porque no se puede garantizar la recepción correcta de ellos (porque hay saturación de buffers, por ejemplo).
Codificaciones eléctricas
El código eléctrico más simple, el unipolar establece un valor de voltaje para indicar un 1 y otro valor para indicar un 0
(p.e.: bit 1=+0,85V y bit 0=-0,85V). Este código no tiene límites en su
componente continua: si debemos enviar muchos bits consecutivos a 1, la
señal debe mantenerse varios ciclos de reloj al voltaje necesario.
Esto hace que una señal continua se desincronice fácilmente si para emisor
y receptor la señal no ha durado los mismos ciclos de su reloj. Además la
mayoría de medios de comunicaciones de red no pueden transportar una
componente continua. Por ello se utilizan códigos en línea (modulación en
banda base o codificación eléctrica) que eliminan la componente continua y
facilitan la sincronización de relojes de emisor y receptor.
1 La CEI definió en 1999 los símbolos para potencias de dos: kibi (Ki), mebi (Mi), gibi (Gi), tebi (Ti), pebi (Pi) y exbi (Ei).
2 El código Manchester, también denominado codificación bifase-L, es un método de codificación eléctrica de una señal binaria en el que en cada
tiempo de bit hay una transición entre dos niveles de señal. Así 1 es una transición de alto a bajo y 0 es una transición de bajo a alto (o al revés).
Es un código autosincronizado, ya que en cada bit se puede obtener la señal de reloj, lo que hace posible una sincronización precisa del flujo de
datos. Una desventaja es que consume el doble de ancho de banda que una transmisión asíncrona.
3 La codificación de traducción utiliza un código en línea (modulación en banda base) que traduce símbolos para conseguir un balance de corriente
y permitir la sincronización de la señal. 4B/5B utiliza MLT para traducir símbolos de 4 bits en símbolos de 5 bits. 8B/6T utiliza PAM para
traducir 5 binarios en 6 ternarios. PAM 5x5 utiliza códigos quinarios (5 voltajes diferentes).
http://guimi.net 4 / 99
Redes de comunicaciones 1. INTRODUCCIÓN
La solución más sencilla pero ineficaz es enviar el paquete por todos los interfaces menos por el que llegó (inundación).
Es el funcionamiento de los concentradores. Este sistema no se considera un protocolo de encaminamiento.
Para encaminadores (routers) sencillos se puede utilizar configuraciones estáticas de encaminamiento.
Los encaminadores más modernos permiten utilizar auténticos protocolos de encaminamiento dinámico que sirven para
intercambiar información entre encaminadores y adaptarse a situaciones cambiantes de tráfico basándose en:
● Capacidad del enlace.
● Tráfico medio.
● Retardo.
● Fiabilidad.
Cada nodo intermedio de una comunicación puede utilizar variantes de dos técnicas de reenvío:
● Store-and-forward: Almacena completamente el paquete y luego, si es correcto, lo reenvía.
● Cut-througth: Conforme recibe el paquete, y una vez que sabe por que puerto lo tiene que reenviar, empieza
su retransmisión. Si después el paquete resulta erróneo se propaga el error al siguiente nodo. Esta técnica es
más rápida y sencilla para redes fiables.
Una red puede comprometerse a garantizar una serie de parámetros de una conexión o servicio. El contrato que
especifica los parámetros de QoS se denomina Acuerdo de Nivel de Servicio (SLA: Service Level Agreement). Los
parámetros que se pueden garantizar son:
– Ancho de banda (Throughput) mínimo.
– Retardo o latencia máximo.
– Fluctuación del retardo (Jitter) máxima.
– Pérdida de datos tolerable.
– Disponibilidad del servicio (en % del tiempo).
http://guimi.net 5 / 99
Redes de comunicaciones 1. INTRODUCCIÓN
Los tipos de servicio que puede dar una red desde el punto de vista de la QoS son:
● Mejor esfuerzo posible (Best Effort Service): La red no se compromete a nada, pero intentará que los datos
lleguen al otro extremo lo antes posibles.
● Con servicio diferenciado (soft QoS o Differentiated Service): Trata cierto tráfico con más preferencia que
otro, pero no garantiza nada a ninguno de ellos.
● Con servicio garantizado (hard QoS o Guaranteed Service): Se definen unos valores límite requeridos al
establecer una conexión extremo a extremo y todos los nodos de la red se comprometen a garantizarlos,
reservando los recursos necesarios.
Por su extensión
Diámetro Tipo
< 0,01 m Paralelismo masivo. Procesadores multi-núcleo.
< 0,1 m Multiprocesadores.
< 10 m Redes de área personal (PAN: Personal Area Network). Redes de infrarrojos o bluetooth.
10 m – 3 km Redes de área local (LAN: Local Area Network) y metropolitana (MAN). Ethernet, Wi-Fi.
> 3 km Redes de área extensa (WAN: Wide Area Network) o redes interconectadas.
Frame-Relay, RDSI, ATM, SONet/SDH.
http://guimi.net 6 / 99
Redes de comunicaciones 1. INTRODUCCIÓN
Por su topología
La topología de una red es el diseño de las comunicaciones entre los nodos de la red. Las topologías principales son tipo
bus compartido (o símplemente bus), estrella o anillo aunque existen más topologías.
Hay que diferenciar entre la topología física, que define como están conectados físicamente los nodos y la topología
lógica que es como tratan los nodos las conexiones. Así por ejemplo se puede disponer de una red física en estrella
donde el nodo central es un concentrador y el resto de nodos son equipos utilizando para comunicarse el protocolo
Ethernet original, que considera el medio utilizado como una topología de bus compartido.
Ejemplos de redes punto a punto: LANs en estrella con conmutadores centrales y la mayoría de las WAN
(enlaces telefónicos, X.25, Frame Relay, RDSI, ATM, etc.).
● Redes multipunto o redes de difusión (broadcast): basadas principalmente en bus compartido (cable bus y
anillo) y redes inalámbricas (radio, satélites...); todos los equipos comparten el mismo medio de transmisión.
Tienen problemas de colisiones que se pueden afrontar con una gestión:
○ Estática (TDM): No emite si alguien lo está haciendo.
○ Dinámica (Centralizada o Distribuida).
Las emisiones pueden estar marcadas como unicast, multicast o broadcast, pero no garantizan la
confidencialidad.
Ejemplos de redes multipunto: transmisiones vía radio o satélite, redes CATV y la mayoría de las LANs
originales (Ethernet original, FDDI, Token Ring, Inalámbricas, etc.).
http://guimi.net 7 / 99
Redes de comunicaciones 1. INTRODUCCIÓN
Modelos de circuito conmutado (Circuit Switching). En ellos las comunicaciones no comparten los medios. Al
iniciarse la comunicación se reserva los recursos intermedios necesarios para establecer y mantener el circuito. Si el
canal se corta se corta la comunicación. Los dispositivos mantienen información sobre el estado de la comunicación
(statusfull). Utilizado en la Red Telefónica Conmutada (RTC4) incluyendo:
● Red Telefónica Básica (RTB) -analógica-.
● Red Digital de Servicios Integrados (RDSI o ISDN) -digital-.
● GSM (Global System for Mobile Comunications) -digital por radioenlace-.
Una vez establecido el el circuito se comporta como una línea dedicada ofreciendo un transporte físico de bits sobre el
que se puede utilizar cualquier protocolo de nivel de enlace.
El costo es proporcional al tiempo y la distancia de conexión.
Modelos de paquetes conmutados (Packet Switching). En ellos las comunicaciones se dividen en paquetes que
comparten los medios. Se pueden utilizar varios enlaces en cada interfaz físico.
Ofrece un medio físico de transmisión de datos para los equipos. Existen dos submodelos:
● Datagramas: Cada paquete debe estar delimitado e identificado y llevar la dirección destino, y cada uno se
encamina independientemente, sin que el origen y el destino tengan que pasar por un establecimiento de
comunicación previo. En este modelo no sabemos si los paquetes van a llegar todos ni si van a llegar por orden
(ni si van a llegar sin errores). Los dispositivos no mantienen información sobre el estado de la comunicación
(stateless). Es el modelo más sencillo de implementar y el único que soporta multidifusión (multicast). Se
puede asimilar al sistema de correo tradicional.
● Circuitos virtuales (VC: Virtual Circuit): Simula un circuito conmutado, pero compartiendo los medios.
Primero se establece una conexión y los equipos intermedios reservan una parte de sus recursos; después todos
los paquetes siguen la misma ruta ordenadamente. Este modelo es utilizado en telefonía digital GPRS y redes
como X.25, Frame Relay o ATM.
○ PVC (Permanent VC): Los PVC son circuitos virtuales definidos estáticamente y permanentes.
○ SVC (Switched VC): Se establecen y terminan a petición del usuario de forma dinámica. La
implementación de circuitos virtuales es más compleja que la de circuitos permanentes.
Otra división de redes por su técnica de transmisión de datos sería en servicios orientados a conexión – que incluiría
los modelos de líneas dedicadas, circuito conmutado y circuito virtual- y servicios no orientados a conexión -el
modelo de datagramas-.
La primera red (ARPANET) nació en 1964 y unía cuatro nodos con un protocolo de datagramas (NCP).
http://guimi.net 8 / 99
Redes de comunicaciones 1. INTRODUCCIÓN
http://guimi.net 9 / 99
Redes de comunicaciones 2. EL MODELO ISO OSI
Antes de ISO OSI cada arquitectura de red dependía del fabricante y de protocolos propietarios (SNA, Appletalk,
NetWare, DECnet...). ISO e ITU-T colaboraron a partir de finales de los 70 para estandarizar un modelo de referencia
para redes que se aprobó en 1984 (ISO 7498:1984). Aunque OSI sigue siendo el modelo teórico de referencia, en 1996
se renunció definitivamente a su implementación práctica debido a que, mientras se desarrollaban los trabajos de diseño
y estandarización de OSI, la pila TCP/IP se había ya convertido en el estándar de hecho en los niveles 3 y 4, mientras
que en las capas 1 y 2 Ethernet y Token Ring asumían el mismo rol en las redes de área local.
N7 Aplicación
Mensajes
Servicios de red N7
Genera / Consume el mensaje
N6 Presentación
Nivel usuario N6
Representación de los datos
Comprime / Expande / Traduce
Equipos
N5 Sesión
Interfaz de dispositivos N5
de red del sistema
Subred comunicaciones
[Encaminadores / Puentes]
N3 Red Paquetes
Direccionamiento lógico N3 N3
Selección de ruta y gestión tráfico
N1 Físico N1
Señal y transmisión N1
http://guimi.net 10 / 99
Redes de comunicaciones 2. EL MODELO ISO OSI
La capa de enlace (N2) pretende ser capaz de proporcionar un tránsito de datos fiable a través de un enlace físico. Para
ello debe crear y reconocer los límites de las tramas, así como opcionalmente resolver los problemas derivados del
deterioro, pérdida o duplicidad de las tramas y colisiones en conexiones de multidifusión. También puede incluir algún
mecanismo de control del flujo que evite la saturación de un receptor que sea más lento que el emisor.
Suele tener una conexión con el nivel físico (MAC -Medium Access Control-) y varias con el nivel de red (LLC
-Logical Link Control-).
A este nivel se implementa la calidad del servicio de red o QoS (Quality of Service). Cada usuario contrata con la red un
tipo de servicio y una calidad (p.e: mayor prioridad, mayor ancho de banda...).
Por tanto la capa de enlace de datos se ocupa del direccionamiento físico, de la topología de la red, del acceso a la red
(MAC: Medium Access Control), de la distribución ordenada de tramas y opcionalmente del control del flujo, de la
notificación de errores y de la calidad del servicio (QoS).
Los concentradores (hubs) actúan exclusivamente a nivel físico (N1) y, entre otras cosas, no controlan las colisiones;
mientras que los conmutadores (switches) actúan a nivel de enlace.
http://guimi.net 11 / 99
Redes de comunicaciones 2. EL MODELO ISO OSI
El cometido de la capa de red (N3) es hacer que los datos lleguen desde el origen al destino, aún cuando ambos no
estén conectados directamente. Para ello se basan en dos aspectos: el direccionamiento y el encaminamiento (utilizando
encaminadores (routers), a veces llamados "enrutadores").
Adicionalmente la capa de red debe gestionar la congestión de red.
El nivel de aplicación abstrae al usuario del acceso a la red. El usuario utiliza aplicaciones que son las que interactúan
en este nivel. Así por ejemplo un usuario para utilizar el protocolo HTTP interactúa con un navegador, no manda una
petición "HTTP/1.0 GET index.html" para conseguir una página en html, ni lee directamente el código html/xml.
http://guimi.net 12 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
3. EL MODELO INTERNET
3.1. Un poco de historia
Los protocolos TCP/IP (Transmission Control Protocol / Internet Protocol) fueron desarrollados por la agencia
DARPA (Defense Advanced Research Projects Agency). En primavera de 1973 se unieron para desarrollar modelos de
interconexión entre distintas arquitecturas5 Robert E. Kahn y Vicent Cerf, el desarrollador del protocolo NCP (Network
Control Program) que se utilizaba en ARPANET.
En verano de 1973 hicieron una reformulación fundamental del protocolo: las diferencias entre protocolos de red
quedarían escondidas usando un protocolo común entre redes (Internetwork Protocol) y la responsabilidad de la
fiabilidad caería sobre los equipos, en vez de sobre la red. Para ello se inspiraron en la red Cyclades desarrollada por
Hubert Zimmerman y Louis Pouzin.
Un equipo de red especial llamado encaminador (router), con una conexión a cada red, se encarga de enviar paquetes
entre ellas. El papel de los encaminadores está definido en el RFC 1812 (Request For Comments 1812).
Al reducir el papel de la red al mínimo se pudo conectar con cualquier red6, solventando el problema inicial de Kahn
para interconectar las redes de satélites y las de radio. Cerf y su equipo de Stanford desarrollaron con detalle el nuevo
modelo, generando la primera especificación de TCP (RFC 675). En 1978 se publico la versión estable -TCP/IP versión
4- que aún se utiliza en Internet.
En 1980 David P. Reed diseñó el protocolo UDP (User Datagram Protocol, también llamado Universal Datagram
Protocol) para trabajar sobre IP con un esquema de datagramas -no orientado a conexión-.
En 1982 el departamento de defensa de los EE.UU. seleccionó TCP/IP como su protocolo estándar y el 1 de enero de
1983 ARPANET mudó sus sistemas al nuevo protocolo.
En 1992 nace la ISOC (Internet SOCiety) una entidad pública internacional sin ánimo de lucro, para dirigir el desarrollo
de Internet7. Así en Enero de 1992 el IAB (Internet Architecture Board) pasa a depender de esta nueva sociedad,
dejando de depender del departamento de defensa de EE.UU.
El IAB es responsable de la edición y publicación de los RFCs (Request For Comments); es la autoridad oficial sobre
los números de Internet (IANA8: Internet Assigned Numbers Authority)9; supervisa las actividades de las IxTF como la
IETF (Internet Engineering Task Force) -que ratifica los estándares oficiales de Internet- o la IRTF (Internet Research
Task Force)...
5 Pretendían conectar con ARPANET una red de paquetes satelitales (SATNET -conectaba EE.UU., Noruega y Reino Unido-) con redes de
paquetes de radio (PRNETs -como ALOHAnet de la Universidad de Hawaii-).
6 Se solía decir que TCP/IP debería funcionar incluso entre dos latas unidas por una cuerda. (Ver portada ;-).
7 “...to assure the open development, evolution and use of the Internet for the benefit of all people throughout the world.”
8 El primer IANA fue Jon Postel, que también era el editor de los RFCs. Protagonizó la rebelión de Internet frente al gobierno Clinton que dio pie a
la creación de ISOC e ICANN (1998/02/28).
9 En la práctica es ICANN (Internet Corporation for Assigned Names and Numbers), quién desde su fundación en 1998 gestiona los dominios
principales genéricos y de países (generic -gTLD- and country code -ccTLD- Top-Level Domain). La renovación del contrato (2006) fue
polémica porque se solicitaba que el IANA fuese una agencia de la ONU en vez de una organización de EE.UU. -aunque sea no lucrativa- sobre
cuyas decisiones el gobierno de EE.UU. tiene derecho de veto.
http://guimi.net 13 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
Efectivamente muchas redes van implementadas cada vez más sobre el protocolo Internet que no controla errores, ni
congestión, ni disponen de garantías de QoS (Quality of Service); en parte confiando en la mejor calidad de los medios
actuales, en parte obviando el control de errores para protocolos de tiempo real, como transmisión de audio y vídeo,
donde por ejemplo no tiene sentido retransmitir parte del fotograma que se emitió hace 2 segundos.
De la misma manera, como TCP/IP no tiene un nivel de sesión unificado sobre el que los niveles superiores se
sostengan, estas funciones son típicamente desempeñadas (o ignoradas) por las aplicaciones de usuario.
http://guimi.net 14 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
Direccionamiento y encaminamiento
Los aspectos principales de IP son el direccionamiento y el encaminamiento. Cada interfaz de red (NIC: Network
Interface Card) se identifica por medio de una dirección IP unívoca. Además cada NIC está asignado a una subred. La
clasificación de redes estaba definida inicialmente en la propia dirección IP, pero en 1993 IETF definió el sistema
CIDR (Classless Inter-Domain Routing) que estableció la gestión de subredes mediante el uso de la máscaras de red10.
Una red IP (o una subred) comprende un rango de direccionamiento IP. Cuando un equipo va a enviar un paquete a otro
equipo -identificado por su dirección IP- comprueba si la dirección del destinatario está en su misma subred. En caso de
ser así emite el mensaje dando por supuesto que el equipo destinatario será capaz de escucharlo (como debería ser si la
configuración es correcta y el otro equipo está operativo). Si el equipo destinatario está en otra red diferente a la del
remitente, éste enviará el mensaje a la puerta de enlace (gateway) que tenga configurada -si la tiene-.
Podemos apreciar que un equipo sin puerta de enlace solo será capaz de comunicarse con su propia subred, y que la
puerta de enlace de un equipo debe encontrarse en su misma subred.
Las cabeceras IP contienen las direcciones de las máquinas de origen y destino (direcciones IP), direcciones que serán
usadas por los conmutadores de paquetes (switches) y los encaminadores (routers) para decidir el tramo de red por el
que reenviarán los paquetes.
La configuración IP (dirección, máscara y pasarela) puede asignarse de manera estática (especificándose en cada
equipo) o dinámica, mediante DHCP (Dynamic Host Configuration Protocol). Puede generar confusión el que se suele
decir que un equipo tiene IP fija si siempre tiene la misma dirección IP y que tiene IP dinámica si su dirección IP varía
con el tiempo. Sin embargo puede asignarse siempre la misma dirección al mismo equipo dinámicamente por DHCP.
Fragmentación en v4
En IPv4 si el paquete a transmitir supera el tamaño máximo negociado (MTU: Maximum Transmission Unit) en el
tramo de red por el que va a circular, podrá ser dividido en paquetes más pequeños, y reensamblado luego cuando sea
necesario. Estos fragmentos podrán ir cada uno por un camino diferente dependiendo de la congestión de las rutas en
cada momento. Si uno de los fragmentos se pierde, todo el paquete original se considerará perdido, y los restantes
fragmentos se descartarán.
Esto puede ocurrir por ejemplo con los protocolos ICMP o UDP, pero no con el protocolo TCP que adapta su tamaño de
paquete para que no deba ser fragmentado. Para ello al inicio de la comunicación utiliza una técnica de tanteo enviando
paquetes IP con el bit "No fragmentar" activado para encontrar el tamaño de MTU adecuado11.
IP no establece un MTU máximo, pero sí establece un MTU mínimo de 576 bytes para v4 y 1280 bytes para v6 que no
permite fragmentación (solo en origen)12.
http://guimi.net 15 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
Direccionamiento v4
Una dirección IP es un número que identifica de manera lógica y jerárquica a una interfaz de red (NIC). IPv4 utiliza un
direccionamiento de 4 bytes que permite aproximadamente 4.295 millones de direcciones (232), un número inadecuado
para dar una dirección a cada persona del planeta, y mucho menos para cada coche, teléfono, PDA o tostadora, lo que
obliga a usar direccionamientos privados y NAT; mientras que el direccionamiento de 16 bytes de IPv6 soporta
aproximadamente 340 sextillones de direcciones (2128) -aproximadamente 670 mil billones de direcciones por cada
mm2 de la superficie de La Tierra-.
En IPv4 las direcciones de 4 bytes (32 bits) se escriben en formato decimal punteado, es decir, 4 números decimales
separados por puntos, representando cada uno 8 bits. Por tanto cada número debe estar en el rango [0-255].
Por ejemplo: "127.0.0.1".
Existen rangos de direcciones IPv4 que no se utilizan en la red pública, sino que están reservadas para redes internas
("intranets") cuyos equipos no disponen de conexión directa a Internet. Al reutilizarse los mismo rangos en todas las
organizaciones todavía se consigue disponer de suficientes direcciones IP públicas para todos... aunque el límite ya casi
se ha alcanzado14. Al utilizar direccionamiento privado, si se conecta dicha red privada a Internet, la pasarela obtiene
una IP pública con la se conectan todos los equipos de la red privada utilizando una técnica llamada NAT (Network
Address Translation).
Los rangos de IP v4 reservados para intranets son:
● 1 rango clase A: 10.x.x.x
● 16 rangos clase B: 172.16.x-172.31.x
● 256 rangos clase C: 192.168.0.x-192.168.255.x
● 1 rango clase B para enlace local15: 169.254.x.x
Clases de direcciones IP v4
Originalmente existían cinco clases de direcciones IP, indicadas por el primer 0 de los 4 primeros bits, pero solo se
utilizan las tres primeras:
● Clase A: 7 bits de red || 24 bits de equipo (host), indicada por un 0 en el primer bit de dirección IP
0xxx xxxx.||xxxx xxxx.xxxx xxxx.xxxx xxxx (0.0.0.0-127.255.255.255)
● Clase B: 14 bits de red || 16 bits de equipo, indicada por un 0 en el segundo bit de dirección IP
10xx xxxx.xxxx xxxx.||xxxx xxxx.xxxx xxxx (128.0.0.0-191.255.255.255)
● Clase C: 21 bits de red || 8 bits de equipo, indicada por un 0 en el primer bit de dirección IP
110x xxxx.xxxx xxxx.xxxx xxxx.||xxxx xxxx (192.0.0.0-223.255.255.255)
● Clase D: Multicasting, no utilizable
1110 xxxx.xxxx xxxx.xxxx xxxx.xxxx xxxx (224.0.0.0-239.255.255.255)
● Clase E: Experimental, no utilizable
1111 xxxx.xxxx xxxx.xxxx xxxx.xxxx xxxx (240.0.0.0 - 255.255.255.255)
13 La autoridad superior es la IANA (Internet Assigned Numbers Authority) que en este momento es la organización ICANN. Después aparecen por
debajo los distintos ISPs (Internet Services Providers).
14 El principal objetivo de IPv6 es subsanar el agotamiento de direcciones IP disponibles. Además introduce optimizaciones en el protocolo.
15 Este sistema configura automáticamente una NIC asignando una IP aleatoria en el rango de enlace local tras verificar mediante ARP que está
disponible. No configura pasarela ni servidores DNS (por eso "enlace local"). Llamado por Microsoft APIPA (Automatic Private IP Addressing).
http://guimi.net 16 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
Máscara de red
Como ya se ha dicho, el sistema de clases de red de IP quedó pronto sobrepasado, por lo que la IETF estableció en 1993
el sistema CIDR (Classless Inter-Domain Routing) que eliminó el uso de clases de direcciones IP y estableció la gestión
de subredes mediante el uso de la máscaras de red. En IPv6 el concepto de clases se ha abandonado definitivamente.
Una máscara de red es un prefijo de n bits de valor '1' que se aplica sobre las direcciones IP y que se indica "/n". Así en
IPv4 una máscara puede tener hasta 32 bits y en IPv6 hasta 128 bits.
Para conocer si dos direcciones IPs se encuentran en la misma subred basta con realizar una operación binaria AND
entre la máscara y cada dirección; si el resultado es el mismo es que están en la misma red.
En IPv4 la máscara se puede especificar con la notación CIDR (/n) o con la misma notación que las direcciones IP.
Para IPv4 se definen tres clases de red básicas basadas en máscaras:
● Clase A: máscara de 8 bits (/8) o 255.0.0.0
● Clase B: máscara de 16 bits (/16) o 255.255.0.0
● Clase C: máscara de 24 bits (/24) o 255.255.255.0
Por ejemplo, dada la dirección IP 192.168.1.4 con máscara de 24 bits (/24 o 255.255.255.0).
La dirección en binario es: 1100 0000.1010 1000.0000 0001.0000 0100.
La máscara en binario es: 1111 1111.1111 1111.1111 1111.0000 0000.
Realizamos un AND binario entre dirección y máscara para obtener la red en la que se encuentra dicha dirección:
1100 0000.1010 1000.0000 0001.0000 0100 [192.168.1.4] IP
AND 1111 1111.1111 1111.1111 1111.0000 0000 [255.255.255.0] Máscara
--------------------------------------------------------------------
1100 0000.1010 1000.0000 0001.0000 0000 [192.168.1.0/24] RED
Para indicar la red de la dirección 192.168.1.4 con máscara de 24 bits puede escribirse en el formato CIDR como
192.168.1.0/24 y en el formato decimal punteado como 192.168.1.0/255.255.255.0.
Direccionamientos reservados
IPv4 contempla una serie de direcciones con significado especial y que por tanto no pueden utilizarse en interfaces de
red normales:
● 127.x.x.x -> loopback (p.e. 127.0.0.1)
● Todos los bits a 0 -> equipo local
● Todos los bits a 1 (255.255.255.255) -> todos los equipos (difusión, broadcast)
● Todos los bits de equipo a 1 -> todos los equipos de la red (difusión limitada, multicast)
● Todos los bits de red a 0 -> un equipo de la red local
http://guimi.net 17 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
Generación de Subredes
Cuando disponemos de redes grandes y complejas, es interesante crear subredes, lo que facilita su administración.
Para crear subredes modificamos las máscaras de red, incrementando la cantidad de bits a 1 de la máscara.
El número n de bits a 1 de la máscara nos proporciona la cantidad de subredes generadas (2n-2) y el número m de bits a
0 el número de equipos permitidos (2m-2).
Limitación
Se puede comprobar que en realidad se generan 2n subredes de 2m equipos, pero por las restricciones de
direccionamiento, solo podemos utilizar 2n-2 y 2m-2, ya que no se permiten las direcciones con todos los bits de red y/o
todos los bits de equipo (host) con el mismo valor (todos a 1 o todos a 0), ya que son direcciones especiales.
En concreto el octeto "1000 0000" (128) no se debe utilizar para crear subredes porque generaría dos subredes que no
se deben usar (todo 0 o todo 1 en el bit de red). Del mismo modo 255.255.255.254 es una máscara inútil porque solo
permite dos direcciones que no se pueden usar (todo 0 o todo 1 en el equipo).
Algunas implementaciones (llamadas "subnet-zero") sí utilizan esas dos subredes (y también la máscara 128), pero no
es una utilización correcta y en redes complejas puede generar problemas inesperados.
● En la primera fila vemos los bits de la máscara de red que dedicamos a crear subredes, marcados con 's', y los
bits que dedicamos a equipos, marcados con 'x' (p.e. en la tercera columna dedicamos 3 a subredes y 5 a
equipos sssx xxxx).
● En la segunda fila vemos el número de subredes creadas (2s) y el rango de equipos en cada subred (2x).
Recordemos que siempre hay dos subredes y dos equipos por subred que no son utilizables (todo 0 y todo 1).
● La tercera fila indica el valor decimal de la máscara. Se puede obtener para cada celda fácilmente sumando al
valor de la celda izquierda con el rango de la celda superior. P.e.: 128 + 64 = 192; 240 + 8 = 248 ...
● La cuarta fila nos indica los rangos efectivos (utilizables). Por ejemplo en la columna 3 -máscara 224-, si los
rangos son de 32 direcciones y no podemos usar ni el primer rango (todos los bits de red a 0) ni el último
(todos los bits de red a 1), los rangos resultantes serán 32-64-96-128-160-192.
● Nótese que en ningún caso se utilizan ni la primera ni la última subred (la que empieza en 0 y la que acaba en
255). La penúltima columna (máscara 254) no se puede utilizar en el último octeto (obtendríamos redes
inviables de 2 equipos).
http://guimi.net 18 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
Ejemplos de subredes
Ejemplo 1 con red tipo B:
Rango de direcciones: 172.16.x.x (máscara inicial /16 o 255.255.0.0)
Queremos crear 6 subredes -> Tomamos la máscara 255.255.224.0 (111|0 0000)
Cada subred tiene un rango de direcciones de 32*255 -2 (x xxxx): [32-64-96-128-160-192]
Rangos de direcciones IP obtenidos:
172.16. 32.1 - 172.16. 63.254 (001|0 0000.0000 0001 - 001|1 1111.1111 1110)
172.16. 64.1 - 172.16. 95.254 (010|0 0000.0000 0001 - 010|1 1111.1111 1110)
172.16. 96.1 - 172.16.127.254 (011|0 0000.0000 0001 - 011|1 1111.1111 1110)
172.16.128.1 - 172.16.159.254 (100|0 0000.0000 0001 - 100|1 1111.1111 1110)
172.16.160.1 - 172.16.191.254 (101|0 0000.0000 0001 - 101|1 1111.1111 1110)
172.16.192.1 - 172.16.223.254 (110|0 0000.0000 0001 - 110|1 1111.1111 1110)
http://guimi.net 19 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
http://guimi.net 20 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
0 4 8 16 19 31
16 Se calcula como el complemento a uno de la suma de los complementos a uno de todas las palabras de 16 bits de la cabecera.
http://guimi.net 21 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
Direccionamiento v6
IPv6 utiliza un direccionamiento de 16 bytes. Las direcciones se escriben mediante 8 grupos de 2 bytes cada uno,
escritos mediante 4 cifras hexadecimales y separados por el símbolo ":".
En muchas ocasiones las direcciones IPv6 están compuestas por dos partes lógicas: un prefijo de 8 bytes (16 cifras
hexadecimales) y otra parte de 8 bytes que corresponde al identificador de interfaz. En el caso de Ethernet este
identificador se genera automáticamente a partir de su dirección MAC -6 bytes-, insertando dos bytes (0xFFFF) entre
los 3 bytes que identifican al fabricante y los otros 3 bytes.
Las direcciones IPv4 pueden ser transformadas fácilmente al formato IPv6. Por ejemplo, si la dirección decimal IPv4 es
135.75.43.52 (en hexadecimal, 0x874B2B34), puede ser convertida a 0000:0000:0000:0000:0000:0000:874B:2B34 con
máscara de 96 bits, o ::874B:2B34/9617 lo que se conoce como dirección “IPv4 compatible”.
Se puede utilizar una notación mixta, que siguiendo el ejemplo quedaría como ::135.75.43.52. Este tipo de dirección
IPv4 compatible casi no está siendo utilizada en la práctica, aunque los estándares no la han declarado obsoleta.
http://guimi.net 22 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
El RFC 3363 recomienda utilizar registros AAAA mientras se prueba y estudia exhaustivamente el uso de registros A6.
El RFC 3364 realiza una comparación de las ventajas y desventajas de cada tipo de registro.
0 4 12 32 48 56 63
Vers. Traffic Class Flow Label Payload Length Next Header Hop Limit
Source Address
(128 bits)
Destination Address
(128 bits)
El campo Longitud ya no es necesario, ya que la cabecera de IPv6 siempre tiene 40 bytes. Tampoco se realiza una suma
de integridad de la cabecera.
IPSec
Los protocolos de IPSec se definieron originalmente en las RFCs 1825 y 1829, publicadas en 1995. IPSec es obligatorio
en IPv6 y opcional en IPv4. El objetivo principal de IPSec es proporcionar protección a los paquetes IP.
IPSec establece comunicaciones IP con seguridad de extremo a extremo, lo que significa que los nodos intermedios
utilizan el protocolo IP, sin necesidad de una implementación específica para IPSec.
Antes de iniciar el envío de datos, IPSec realiza una autenticación de los extremos y negocia los parámetros de la
comunicación. Durante la comunicación utiliza ISAKMP (Internet Security Association and Key Management
Protocol) para realizar cambios dinámicos de las claves.
Para la comunicación IPSec permite utilizar dos protocolos diferentes: AH (Authentication Header) y ESP
(Encapsulation Security Payload). El protocolo AH permite únicamente verificar la integridad del paquete (mediante
firma). El protocolo ESP permite cifrar la información (DES, 3DES...) y opcionalmente verificar la integridad del
paquete.
http://guimi.net 23 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
Los protocolos de IPSec actúan en la capa de red, la capa 3 del modelo OSI. Otros protocolos de seguridad para Internet
de uso extendido, como SSL, TLS y SSH operan en la capa de transporte o por encima (capas OSI 4 a 7). Esto hace que
IPSec sea más flexible, ya que puede ser utilizado para proteger protocolos de la capa 4, incluyendo TCP y UDP, los
protocolos de capa de transporte más usados. Así para que una aplicación pueda usar IPSec no es necesario modificarla,
mientras que para usar SSL y otros protocolos de niveles superiores sí.
● Modo túnel: En el modo túnel dos equipos establecen un canal de comunicación por el que otros equipos o
procesos envían información. Es decir el emisor y el receptor originales siguen enviando y recibiendo sus
datos sin cifrar ni firmar mediante las pasarelas del túnel IPSec (IPSec Proxy), que se encargan de cifrar y/o
firmar todo el paquete IP original que debe ser encapsulado en un nuevo paquete IP.
El modo túnel se utiliza para comunicaciones red a red (túneles seguros entre encaminadores, p.e. para VPNs)
o comunicaciones ordenador a red u ordenador a ordenador sobre Internet.
IPSec no define unos algoritmos específicos de cifrado sino que mediante ISAKMP permite utilizar IKE (Internet Key
Exchange) para realizar un autonegociado del algoritmo a utilizar y del intercambio de claves. IKE funciona sobre UDP
y aporta escalabilidad y flexibilidad ya que permite utilizar algoritmos de varios tipos:
– Claves Pre-Compartidas (PSK: Pre-Shared Key). Su mayor inconveniente es la distribución de la PSK.
– Kerberos.
– Criptografía de clave pública-privada.
– Certificados digitales.
El principal problema de IKE viene de que, aunque es un estándar abierto, la norma es admite distintas interpretaciones,
lo que ha dado lugar a implementaciones ligeramente incompatibles. Este es uno de los motivos por el que se están
imponiendo las VPNs sobre SSL. Actualmente está en desarrollo IKE v2.
http://guimi.net 24 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
ICMP e IGMP
ICMP (Internet Control Messaging Protocol) es parte fundamental y complementaria de IP y es empleado por éste para
notificar mensajes de error o situaciones que requieren cierta atención. Debido a que los paquetes ICMP viajan en
paquetes IP es a veces considerado un nivel por encima.
Los distintos mensajes ICMP posibles utilizan un identificador numérico, que en el caso de los mensajes de error es
menor que 128. ICMP también permite adquirir información mediante pares de paquetes petición / respuesta, por
ejemplo, para adquirir la máscara de red de un sistema o el valor de su reloj (timestamps). Por último, en numerosas
ocasiones se emplea para comprobar la existencia de conectividad, como en la utilidad “ping”, empleando paquetes
ICMP “echo” (id. 128) y “echo reply” (id. 129).
Los mensajes de error de ICMP se generan cuando el destinatario o un encaminador no puede procesar un paquete IP e
incluyen la cabecera del paquete IP que ha generado el error y los primeros 8 bytes del contenido del mismo, lo que es
suficiente en TCP para conocer la comunicación que originó el paquete erróneo -recordemos que IP no garantiza la
recepción de paquetes-.
Como IPv6 está diseñado para poder soportar múltiples protocolos de transporte, ICMPv6 incluye el inicio del paquete
IP fallido original (incluyendo la cabecera) hasta generar un paquete de error de 1280 bytes, que es el MTU mínimo
admitido por IPv6.
IGMP (Internet Group Management Protocol) se utiliza para informar a los encaminadores de la pertenencia de un
equipo a un grupo de multicast. Es análogo a ICMP pero para conexiones multicast en vez de unicast. IGMP se puede
usar para transmisión de vídeo, para juegos... Es un protocolo vulnerable, poco utilizado y opcional (mientras que ICMP
es requerido por IAB) por lo que algunos cortafuegos lo bloquean opcionalmente.
TCP
TCP (Transmission Control Protocol) es el protocolo de transporte empleado actualmente por la mayoría de los
protocolos de aplicaciones en Internet. Utiliza un esquema de circuito virtual para establecer un flujo de bytes sobre IP.
El protocolo TCP utiliza la técnica de ventana deslizante -pudiéndose cambiar el tamaño de la ventana durante la
comunicación- y la técnica de "piggybacking" es decir, incluye en la transmisión de paquetes, la confirmación de
recepción de paquetes. Así un equipo que reciba correctamente los bytes 1, 3 y 4, emitirá el reconocimiento del byte 1
(ACK 1). Cuando reciba correctamente el 2 emitirá ACK 4, indicando que ha recibido correctamente hasta el byte 418.
Para permitir múltiples conexiones entre equipos e identificar a los destinatarios y remitentes de manera sencilla, TCP
multiplexa las direcciones IP utilizando "puertos". Así una conexión TCP se identifica como:
<TCP, IP_local.Puerto_local, IP_destino.Puerto_destino>.
18 Dado que emisor y receptor han acordado un tamaño de ventana, el emisor no envía más bytes de los que puede almacenar el receptor.
http://guimi.net 25 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
Antes de comenzar la transmisión de datos, se debe establecer una conexión haciendo que los nodos reserven recursos y
estableciendo parámetros como el tamaño de los mensajes (MTU del circuito virtual) o la ventana de transmisión. Una
conexión TCP se establece en tres pasos (three-way handshake):
1. El equipo que inicia la conexión envía al destinatario un paquete de sincronización “SYN” con el número de
secuencia inicial elegido para esta conexión19 y el tamaño de ventana;
2. éste le responde con un paquete de reconocimiento “SYN-ACK”, confirmándole la recepción de su número
inicial (ACK) y enviándole un número propio inicial de secuencia (SYN);
3. el equipo que ha iniciado la conexión reconoce la recepción de la señal “SYN-ACK” mediante una señal
“ACK”. En este momento la conexión se ha establecido y puede tener lugar toda la transferencia de datos.
De igual modo, la finalización de la conexión se lleva a cabo mediante el intercambio de un par de paquetes TCP por
parte de cada equipo: un paquete “FIN” y un paquete “ACK”. Esto puede llevarse a cabo en 4 pasos (FIN-ACK-FIN-
ACK) o en tres pasos (FIN-FIN&ACK-ACK). Algunas implementaciones permiten finalizar en dos pasos o cerrar solo
un lado de la comunicación...
Si bien una vez establecida la comunicación, TCP envía los bytes agrupados en conjuntos llamados "segmentos", el
control de la transmisión, incluyendo la cuenta de envíos ("Sequence Number") o las recepciones correctas
("Acknowledgment Number"), se hace en base a bytes no a paquetes o segmentos.
Las aplicaciones que utilizan TCP pueden invocar a la función "Push" para solicitar que se envíe un segmento sin
esperar nuevos bytes para incluir en él20. De manera similar la función "Urgent" solicita que los nuevos bytes añadidos
al segmento se traten antes que los que ya estén en él esperando su envío21.
0 4 10 16 31
● Source Port: Número de puerto de 16 bits del emisor, que el receptor debe usar para responder.
● Destination Port: Número de puerto de 16 bits del receptor.
● Sequence Number: Número de secuencia del primer byte de datos del segmento enviado en el paquete. Si el
byte de control SYN está a 1, el número de secuencia es el inicial y el primer byte de datos será el n+1.
● Acknowledgment Number: Contiene el valor del último byte recibido correctamente. Este número implica
que todos los bytes anteriores han sido recibidos correctamente ("reconocidos").
● Data Offset: Indica la longitud de la cabecera en palabras de 32 bits y, por tanto, dónde empiezan los datos.
Esta longitud es de 5 palabras (20 Bytes) más el campo "Opciones" si existe.
● Reserved: bits reservados para un uso futuro; deben ser cero.
● Flags: 6 bits utilizados para el control de la conexión
○ URG (Urgent): Indica al receptor que los primeros bytes en tratar sean los bytes urgentes, cuyo inicio se
indica en el campo "urgent pointer".
○ ACK (Acknowledge): Indica que el campo de reconocimiento es significativo en el segmento.
○ PSH (Push): Indica que se ha solicitado la función "Push".
○ RST (Reset): Reinicia la conexión porque el puerto destino no está en uso o el número de secuencia no se
puede usar.
19 El número de secuencia inicial se elige de manera pseudoaleatoria para que no se pueda mezclar con otra comunicación por error.
20 Por ejemplo en una conexión telnet con eco remoto, al pulsar "Intro" se envía la información con "Push".
21 Por ejemplo en una conexión telnet, al pulsar Ctrl-C se envía como "Urgent".
http://guimi.net 26 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
UDP
UDP (User Datagram Protocol) es un protocolo que utiliza un esquema de datagramas sobre IP. UDP no garantiza la
comunicación, es decir, los paquetes pueden no llegar, llegar correctamente, duplicados o fuera de orden. Al evitar esas
comprobaciones y su sobrecarga (overhead) el protocolo UDP es más sencillo, rápido y eficiente que TCP, pero solo
sirve para aplicaciones que no necesiten garantías en la comunicación. Esto es muy práctico en aplicaciones en que es
más importante la velocidad de transmisión (como comunicación de audio y vídeo: IPTV, VoIP, juegos en línea) o en
aplicaciones servidoras sin estado que deben responder pequeñas consultas de un gran número de clientes (como DNS).
A diferencia de TCP, UDP permite paquetes de difusión (broadcast y multicast).
0 16 31
La cabecera de trama de UDP únicamente indica puertos de origen y destino, longitud del datagrama -incluyendo la
cabecera- y un código de control del paquete23.
22 Para este código se utiliza el complemento a uno de 16 bits de la suma en complemento a uno del paquete con una pseudo cabecera IP "virtual".
23 Se calcula igual que en TCP.
http://guimi.net 27 / 99
Redes de comunicaciones 3. EL MODELO INTERNET
A continuación se indican algunos de los principales protocolos de aplicaciones y sus puertos habituales asociados24.
Puerto Protocol. Descripción
7 tcp y udp Echo - Responde con eco a llamadas remotas
20-21 tcp FTP (File Transfer Protocol) - Transferencia de Ficheros [datos (20) y control (21)]
22 tcp SSH, SCP, SFTP - Juego de protocolos de comunicación segura
23 tcp Telnet - Protocolo de comunicación de inseguro
25 tcp SMTP (Simple Mail Transfer Protocol) - Transferencia Simple de Correo
53 tcp y udp DNS (Domain Name System) - Sistema de Nombres de Dominio
67-68 udp BOOTP (Server-Client) / DHCP (Dynamic Host Configuration Protocol)
80 tcp HTTP (HyperText Transfer Protocol) - Transferencia de HiperTexto (web)
88 tcp Kerberos - Agente de autenticación
110 tcp POP3 (Post Office Protocol 3) - Correo-e
123 tcp y udp NTP - Protocolo de sincronización de tiempo
135 tcp RPC (Remote Procedure Call)
137-139 tcp y udp NetBIOS Servicio de nombres [nombres (137), datagramas (138), sesiones (139)]
143 tcp IMAP4 (Internet Message Access Protocol 4) - Correo-e
161-162 tcp y udp SNMP - Gestión Simple de Red [consultas (161) y señales (162)]
389 tcp y udp LDAP - Protocolo de acceso ligero a Bases de Datos
443 tcp HTTPS/SSL – HTTP sobre una capa SSL
631 tcp CUPS - Sistema de impresión Unix
636 tcp LDAPs – LDAP sobre SSL
993 tcp IMAP4 sobre SSL
995 tcp POP3 sobre SSL
1433-1434 tcp Microsoft-SQL (Server-Monitor)
1512 tcp WINS
1521 tcp Oracle listener (por defecto)
1701 udp Enrutamiento y Acceso Remoto para VPN con L2TP.
1723 tcp Enrutamiento y Acceso Remoto para VPN con PPTP.
2049 tcp NFS - Archivos del sistema de red
3128 tcp Servidores intermediarios de HTTP, como Squid
3306 tcp MySQL sistema de gestión de bases de datos
3389 tcp RDP (Remote Desktop Protocol)
5060 udp Session Initiation Protocol (SIP)
5432 tcp PostgreSQL sistema de gestión de bases de datos
10000 tcp Webmin (Administración remota web)
http://guimi.net 28 / 99
Redes de comunicaciones 4. ETHERNET
4. ETHERNET
4.1. Un poco de historia
En 1970 Robert Metcalfe, recién graduado en el MIT, se encontraba realizando sus estudios de doctorado en la
Universidad de Harvard trabajando para ARPANET. Encontró un artículo de Norm Abramson en el que describía la red
Aloha en Hawaii y pensó que podía mejorarlo. Escribió un artículo que se convertiría en su tesis doctoral, presentada en
1973, con un idea básica simple: las estaciones antes de transmitir deberían detectar si el canal ya estaba en uso (es
decir si ya había 'portadora'), en cuyo caso esperarían a que la estación activa terminara. Además cada estación,
mientras transmitiera, estaría continuamente vigilando el medio físico por si se producía alguna colisión, en cuyo caso
se pararía y retransmitiría más tarde. Este protocolo MAC recibiría más tarde la denominación Acceso Múltiple con
Detección de Portadora y Detección de Colisiones, o más brevemente CSMA/CD (Carrier Sense Multiple Access /
Colision Detect).
En 1972 Metcalfe se mudó a California para trabajar en el Centro de Investigación de Xerox en Palo Alto llamado
Xerox PARC (Palo Alto Research Center). Allí se estaba diseñando lo que se consideraba la 'oficina del futuro', con las
primeras impresoras láser y computadoras Alto, que ya disponían de capacidades gráficas y ratón y fueron consideradas
las primeras computadoras personales... Se quería conectar las computadoras entre sí para compartir ficheros y con las
impresoras y Metcalfe tenía la tarea de diseñar y construir la red que debía ser de muy alta velocidad, del orden de
megabits por segundo. Contaba para ello con la ayuda de un estudiante de doctorado de Stanford llamado David Boggs.
En vez de utilizar el cable coaxial de 75 ohms de las redes de televisión por cable se optó por emplear cable de 50 ohms
que producía menos reflexiones de la señal, a las cuales Ethernet era muy sensible por transmitir la señal en banda base
(es decir sin modulación). Cada empalme del cable y cada 'pincho' vampiro (transceptor o transceiver) instalado
producía la reflexión de una parte de la señal transmitida. En la práctica el número máximo de transceptores, y por tanto
el número máximo de estaciones en un segmento de cable coaxial, venía limitado por la máxima intensidad de señal
reflejada tolerable.
En 1975 Metcalfe y Boggs describieron Ethernet en un artículo que se publicó en 1976 (en “Communications of the
ACM”). En él ya describían el uso de repetidores para aumentar el alcance de la red. Ese mismo año Boggs construyó el
primer encaminador. En 1977 Metcalfe, Boggs y otros dos ingenieros de Xerox recibieron una patente por la tecnología
básica de Ethernet, y en 1978 Metcalfe y Boggs recibieron otra por el repetidor. En esta época todo el sistema Ethernet
era propietario de Xerox25. En 1979 Metcalfe dejó Xerox y fundó 3Com.
25 Xerox se juntó con DEC e Intel para fundar DIX y promocionar el uso de Ethernet. Publicaron la versión 1.0 en el Libro Azul de Ethernet (1980).
La licencia costaba $1000 anuales por cada rango de 24 bits de direcciones MAC (hoy controlado por el IEEEE a un precio similar).
http://guimi.net 29 / 99
Redes de comunicaciones 4. ETHERNET
4.2. Definición
Ethernet es un protocolo de nivel de enlace (N2) para redes de área local (LAN) basado en datagramas y definido en el
estándar IEEE 802.326, de comunicaciones entre iguales (PTP o P2P: peer to peer) en el que no hay un control
centralizado y todas las estaciones son tratadas por igual.
El protocolo original se basa en una topología de bus con medio compartido, es decir, varias estaciones que pueden
enviar datos al mismo tiempo. Por tanto se debe arbitrar un mecanismo de control de acceso al medio y resolver los
problemas que conllevan los accesos simultáneos (colisiones). Las nuevas versiones se basan en comunicaciones full-
duplex sobre canales independientes, por lo que no pueden existir las colisiones.
Una vez una estación consigue enviar sus datos sin colisiones, supone un medio físico altamente fiable, por lo que no
implementa confirmación de entrega de datos en destino. Si hay perdida de datos en el camino deben detectarla los
niveles superiores. Esto hace que cuando realmente se pierdan datos en este nivel, las aplicaciones se vean bastante
perjudicadas.
Cuando dos estaciones transmiten a la vez se produce una "colisión" que supone una alteración de las señales enviadas.
Esta alteración es detectada por las dos estaciones emisoras, que actúan de la siguiente manera:
1. Detienen la transmisión de la trama.
2. Envían una señal de atasco (Jam) durante el tiempo equivalente a 4 Bytes para que todas las estaciones se
enteren de que ha habido colisión.
3. Ponen en marcha el mecanismo de retroceso exponencial binario27 para decidir cuanto tiempo esperan a
retransmitir. Ese tiempo será aleatorio para evitar que las dos esperaren el mismo tiempo y vuelvan a
colisionar.
4. Transcurrido ese tiempo, si el medio esta libre, vuelven a intentar emitir.
Todas las estaciones que comparten el medio físico forman un dominio de colisión. Una estación compite por el medio
con todas las de su dominio de colisión. No solo con las que estén en su mismo cable, también con las que estén al otro
lado de repetidores y concentradores (hubs), pero no con las que estén al otro lado de puentes (bridges), conmutadores
(switchs) o encaminadores (routers).
El diámetro de un dominio de colisión es la distancia máxima entre estaciones. Esta distancia debe ser lo
suficientemente pequeña para que en el tiempo que tarda en ir y volver la señal de un extremo a otro no se pueda
transmitir una trama de tamaño mínimo T (2τ propagación en el diámetro máximo < τ transmisión de T).
26 En general, los protocolos de la rama IEEE 802.x definen la tecnología de redes de área local. ISO los define como ISO 8802x.
27 Cada vez que hay una colisión la estación espera entre 0 y 2i -1 veces el tiempo 2τ, siendo 'i' la iteración del algoritmo.
http://guimi.net 30 / 99
Redes de comunicaciones 4. ETHERNET
4.4. Direccionamiento
Cada nodo tiene una dirección de nivel 2 única, llamada dirección MAC (Medium Access Control). Esta dirección tiene
48 bits (6 bytes) y se suele representar con 12 caracteres hexadecimales separados por ":" o por "-" entre cada dos.
Las direcciones son asignadas por los fabricantes, que se identifican por los primeros 24 bits28.
Donde:
➢ Preámbulo: Secuencia de 7 bytes 10101010 para estabilizar el medio.
➢ Inicio (Start of Frame): Byte 10101011 que indica que se va a iniciar la transmisión.
● Dir. Destino: es la dirección de destino.
● Dir. Origen: es la dirección de origen.
● Tipo/Long: es interpretado como:
○ Tipo de protocolo de nivel 3, si su valor es mayor de 1536 (formato original DIX29).
○ Longitud de la trama, si es menor que 1536 (formato IEEE 802.3).
● Datos: son los datos que lleva la trama.
● Relleno: existirá si no hay suficientes datos para que la trama tenga al menos 64 bytes.
● CRC32: es un código de redundancia cíclico para comprobar que no ha habido errores.
➢ El final de la trama se detecta por el hueco equivalente a 12 bytes que todas las estaciones deben respetar. Es
decir tras cada trama el emisor hace una pausa por el tiempo equivalente a enviar 12 bytes.
En función del protocolo de nivel 3 que se utilice, dentro de los datos puede haber una cabecera LLC (Logical Link
Control) para resolver a qué protocolo se le entrega la trama. Por ejemplo NetBEUI lo utiliza pero IP no.
El tamaño máximo de trama condiciona la cantidad de memoria que debe tener la interfaz de red.
En el caso de Gigabit Ethernet si se mantuviese una trama mínima de 64B, el diámetro del dominio de colisión sería de
~45m. Por ello mientras viajan por Gigabit las tramas deben tener un mínimo de 512B (diámetro ~330m), añadiéndose
en caso necesario un relleno conocido como extensión de portadora que se elimina si la trama deja la red Gigabit.
Sin embargo el uso de extensión de portadora supone por un lado mayor proporción de datos enviados/colisiones30 y por
otro lado pérdida de eficiencia en el caso de tramas pequeñas -mayor proporción de datos de control-. Para este caso se
prevé la posibilidad de que una estación que quiera enviar varias tramas pequeñas seguidas lo haga como una ráfaga.
Actualmente existen implementaciones que utilizan tramas Jumbo (Jumbo-frames) con MTU (Maximum Transmission
Unit) mayor que 1518B, lo que permite reducir la sobrecarga de cabeceras presuponiendo una mayor calidad de los
medios. El MTU típico de las tramas Jumbo es de 9000 B, pero existen distintas implementaciones.
http://guimi.net 31 / 99
Redes de comunicaciones 4. ETHERNET
Tienen un modo de funcionamiento especial llamado "modo promiscuo" en el que reciben y entregan al nivel superior
todas las tramas que escuchan. Algunos programas configuran la tarjeta en este modo para analizar todo el trafico que
pasa por su segmento.
En un principio, cada trama que se recibía en la tarjeta provocaba una interrupción a la CPU para pasársela al
controlador y que éste la entregara al protocolo correspondiente de nivel 3. Hoy en día se pueden configurar para que
esperen (durante un tiempo máximo) a recibir varias tramas para pasárselas todas juntas al controlador y así provocar
menos interrupciones a la CPU.
Si se utilizan canales no compartidos (full-duplex) y el interfaz soporta varias velocidades, normalmente también es
capaz de negociar su velocidad con el otro extremo del cable por medio de una señal especial intentando negociar
primero la velocidad más alta. Esta negociación se lleva a cabo cuando se inicializa el enlace, antes de enviar datos.
En fibra óptica no se puede negociar la velocidad porque cada estándar utiliza transmisores diferentes.
Es muy importante que los interfaces que no usan full-duplex implementen correctamente el protocolo CSMA/CD para
que no disminuya el rendimiento de la red.
Los concentradores (hubs) son repetidores con varios puertos. Un concentrador simula un único segmento Ethernet
entre todas las estaciones que se conectan a el. Como cualquier otro repetidor actúan a nivel físico (N1) retransmitiendo
las tramas que se reciben en un puerto a todos los puertos restantes, independientemente de que estén libres u ocupados,
por lo que también propagan las colisiones. Todos los puertos de un concentrador deben ser de la misma velocidad. En
los inicios de Fast Ethernet, dado el alto coste de los conmutadores, aparecieron concentradores de doble velocidad
(dual-speed hubs) que en realidad eran dos concentradores unidos internamente por un puente.
El estándar de IEEE define los puertos RJ45 para cable de par trenzado (xTP31) de los equipos como MDI (Medium
Dependent Interface), mientras que los puertos de los concentradores son MDI-X (Medium Dependent Interface –
Crossover). De los 4 pares del cable el interfaz MDI transmite por el par 2 (hilos 1-2) y recibe por el par 3 (hilos 3-6),
mientras que el MDI-X lo hace al revés.
Para conectar una estación a un concentrador se utiliza un cable paralelo (straight-through), pero para conectar entre si
dos concentradores o dos equipos se necesita un cable cruzado (crossover).
Con el tiempo los concentradores y conmutadores (switches) fueron incorporando un puerto MDI para interconectar (o
“apilar”) concentradores. Actualmente los conmutadores utilizan puertos propios o fibra para conectarse entre ellos y
todos sus puertos se configuran automáticamente como MDI o MDI-X (además de negociar Half o Full-duplex,
velocidad, control de flujo...).
31 Par trenzado no apantallado (UTP: Unshielded Twisted Pair) o par trenzado apantallado (STP: Shielded Twisted Pair).
http://guimi.net 32 / 99
Redes de comunicaciones 4. ETHERNET
Los conmutadores son puentes de múltiples puertos con circuitos integrados específicos de aplicación (ASIC32).
Desde el punto de vista MAC los puentes y conmutadores se comportan como una estación más. Durante su
funcionamiento, cuando reciben una trama por un puerto, apuntan en una tabla que la dirección MAC de origen de la
trama está en ese puerto. Así pueden saber en que puerto está cada estación y más tarde, cuando tienen que enviar una
trama a esa estación la envían solo al puerto donde se detectó.
Las entradas en la relación MAC-puerto se renuevan cada pocos segundos. Si un puente o conmutador no conoce donde
esta la estación de destino envía la trama a todos sus puertos (inundación o flood).
Aunque cada puente o conmutador produce un retardo en la señal, en principio no hay limite en cuanto al número de
puentes que se pueden poner en una red ya que cada retransmisión regenera la señal.
Como los puentes y conmutadores aislan el trafico unicast enviándolo solo al puerto necesario, aumenta también la
seguridad de la red ya que las estaciones conectadas a otros puertos no pueden capturar ese trafico. Para poder hacerlo,
algunos conmutadores soportan configurar especialmente un puerto espejo (mirror) que transmite el mismo trafico que
otro. De todas maneras este esquema puede atacarse por medio de inyecciones ARP (ARP spoofing) o inundación de
MAC (MAC flooding), aunque los conmutadores (switches) más modernos implementan defensas al respecto.
Si los puentes soportan el protocolo Spanning Tree definido en el estándar 802.ld se pueden unir dos puentes a través de
2 o más caminos (pasando incluso por otros puentes) evitando los bucles, lo que permite tener un camino alternativo en
caso de que haya una avería en el camino principal o poder repartir tráfico.
En transmisión dúplex no hay gestión CSMA/CD ya que no puede haber colisiones. Si la transmisión es dúplex se
puede aumentar la distancia entre estación y conmutador, ya que tampoco hay que tener en cuenta el tiempo de ida y
vuelta porque no hay control de colisiones. La única restricción es la atenuación de la señal. Con algunos emisores láser
se ha llegado a 800km.
Cuando la comunicación es dúplex puede que uno de los extremos no sea capaz de procesar el trafico que le envía el
otro. Para resolver este problema en el estándar IEEE 802.3x se define un método de control de flujo que consiste en
que el extremo saturado le envía al otro una trama especial llamada Pause (con tipo 8808) donde le ordena dejar de
enviar datos durante un tiempo indicado. Antes de que transcurra ese tiempo le puede enviar la orden Pause-Release
para que vuelva a transmitir. La orden Pause debe darse antes de que se llenen los buffers ya que puede haber datos en
el cable que todavía no se han recibido. El control de flujo puede ser simétrico (los dos extremos pueden ordenar parar
al otro) o asimétrico (sólo puede ordenarlo un extremo).
http://guimi.net 33 / 99
Redes de comunicaciones 4. ETHERNET
Normalmente un interfaz de red es capaz de negociar automáticamente con el otro extremo el modo de transmisión
(half o full-duplex) y el control de flujo.
4.10. Restricciones
El estándar Ethernet impone las siguientes restricciones:
● Como máximo 100 m para cable de par trenzado.
● MTU (Maximum Transmission Unit) = 1518 bytes
● Restricciones en el estándar Ethernet original:
○ Como máximo 4 repetidores o concentradores entre dos equipos del mismo dominio de colisión.
○ Como máximo 1.024 estaciones de trabajo en el mismo dominio de colisión.
○ 2τ propagación en el diámetro máximo del dominio de colisión < τ transmisión de T (tamaño de trama
mínima = 64 bytes = 512 bits)
http://guimi.net 34 / 99
Redes de comunicaciones 4. ETHERNET
Definido en el libro azul de Ethernet publicado por DIX en 1980. Al primer protocolo implantado en Palo Alto a 2,94
Mbs se le conoce como Ethernet Experimental.
(1) Basado en cable coaxial y topología lineal (o de bus). Se pueden unir varios segmentos con repetidores siempre que
no haya más de 4 repetidores entre dos segmentos cualesquiera. Si se abre el coaxial o uno de los terminadores, deja de
funcionar toda la red. Necesita terminadores de 50 Ω en los extremos del cable.
(2) Aunque su topología lógica sigue siendo lineal, su topología física es de estrella con un repetidor multipuerto
(concentrador o hub) en su centro. Cada estación tiene un cable propio que lo une al concentrador. Se puede mezclar
con 10Base-5 o 10Base-2 siempre que no se interconecten por más de 3 coaxiales.
Soporta 1024 estaciones en cada dominio de colisión.
(3) Implementación del estándar original Ethernet sobre fibra: FOIRL (Fiber-Optic Inter-Repeater Link). No se utiliza
directamente, si no una de sus variantes (FL -la más utilizada-, FB -para espinazos (backbones)- o FP -nunca se usó-).
http://guimi.net 35 / 99
Redes de comunicaciones 4. ETHERNET
Fast Ethernet
Esta regulada por la norma IEEE 802.3u. Transmite a 100 Mbps. Utiliza codificación de traducción.
Gigabit Ethernet
Esta regulada por las normas IEEE 802.3z para fibra e IEEE 802.3ab para cobre. Transmite a 1000 Mbps.
33 Los concentradores pueden ser de Clase I o II en función del retardo que generan.
http://guimi.net 36 / 99
Redes de comunicaciones 4. ETHERNET
Aunque el estándar define el uso half-duplex, no se suele utilizar en fibras. En el caso de half-duplex solo se soporta un
concentrador. Para poder alcanzar mayor distancia (330m) en half-duplex el tamaño mínimo de trama se amplia a 512B
bits. Debido a la complejidad de la implementación half-duplex, se han diseñado concentradores especiales de fibra
llamados buffered repeaters que funcionan en full-duplex pero sin aislar tráfico como hacen los conmutadores que son
más complejos.
En caso de que por un puerto de un conmutador llegue una trama de menos de 512B y el conmutador tenga que enviarla
por un puerto half-duplex, el conmutador podrá:
● Añadir una extensión de portadora para que la trama tenga 512B.
● Concatenar tramas (tramas Jumbo o Jumbo frames) y añadir luego la extensión de portadora si no llegan a
tener 512B.
Cuando el conmutador recibe una trama con extensión de portadora y tiene que enviarla a un puerto full-duplex o un
puerto no gigabit elimina la portadora.
En fibra óptica aparecen los Gbics que llevan la óptica del protocolo para hacer más flexibles los nodos.
Actualmente se está desarrollando el estándar IEEE 802.3ae a 10 Gbps. No funcionará en cable de par trenzado
categoría 5, pero puede que si en categoría 5e o 6. Se están pensando hacer un estándar con velocidad variable como en
los módems.
Problemas en Ethernet
● Su funcionamiento no permitía a los administradores un control centralizado de la red. Esto se soluciona con
conmutadores programables.
● Ethernet considera el medio suficientemente fiable como para no ocuparse de la pérdida de tramas. Una trama
perdida no se retransmite hasta que no vence el tiempo de espera (timeout) del nivel superior. Como el nivel de
red también supone un nivel de enlace fiable, estos tiempos suelen ser altos.
● El mecanismo de retroceso exponencial binario intenta transmitir la trama hasta 16 veces. Si no lo consigue se
reporta al nivel superior que hay excesivas colisiones, lo que suele ser debido a errores en el nivel físico.
● Efecto captura. Distintos paquetes pequeños de una máquina que los prepara y emite rápidamente pueden
colisionar repetidamente con el mismo paquete de una máquina más lenta que irá aumentando su contador de
retroceso, mientras que para la máquina rápida son distintas colisiones y cada vez pone su contador a 0,
teniendo más probabilidades de enviar antes su paquete y mantener el uso del medio.
● La tasa de colisiones de una red es más o menos preocupante en función de los tamaños de trama que se
utilicen. Normalmente debe ser menor del 10%.
● Ethernet no reparte equitativamente los recursos en condiciones de alta ocupación. Con una tasa de colisiones
alta puede proporcionar más ancho de banda a aplicaciones que utilizan una trama más grande.
● En una topología no valida (diámetro excesivo del dominio de colisión), puede haber colisiones que se
detecten después de haber enviado una trama mínima y haber dado la trama por transmitida. Este fenómeno se
denomina "colisiones tardías" y es un síntoma de que pueden estar perdiéndose tramas mínimas.
● Un elevado numero de broadcast y/o multicast es indeseable. Algunos conmutadores pueden configurarse para
filtrar estos paquetes si se supera un cierto umbral o no permitirlos.
● Si dos puntos de la red están unidos por dos caminos alternativos, la topología deja de ser un bus para
contener un anillo. Por ese anillo circulan las tramas infinitamente sin ser nunca eliminadas lo que provoca una
saturación inmediata de la red. En el caso de que el bucle se cree entre conmutadores sin spannig tree activado
en al menos uno de ellos, aunque las tramas de unicast no entren en el bucle, si lo harán las tramas de
multicast y de broadcast, saturando igualmente la red.
● Otro de los mayores problemas en Ethernet es que uno de los dos extremos este configurado en full-duplex y el
otro en half-duplex. Aunque la mayoría de dispositivos actuales detecta automáticamente el tipo de envío, esto
provocaría colisiones en el extremo half-duplex que tendrá que reenviar la trama y la pérdida de la trama del
extremo full-duplex que presupone que no pueden existir colisiones.
http://guimi.net 37 / 99
Redes de comunicaciones 4. ETHERNET
Resumen
http://guimi.net 38 / 99
Redes de comunicaciones 4. ETHERNET
Agregación de enlaces
La agregación de enlaces (Link Aggregation) es una técnica también llamada "Port trunking", "NIC bonding" o
"Ethernet trunk", entre otros. Consiste en agregar dos enlaces físicos en un único enlace lógico entre dos nodos. Estos
nodos serán normalmente dos conmutadores o un conmutador y un equipo con tarjetas especiales que lo soporten.
El trafico se reparte entre los dos enlaces, consiguiendo más ancho de banda y más fiabilidad, puesto que si cae un
enlace (rotura de un cable) se mantiene la conexión por los restantes.
VLANs
Las VLANs (Virtual LANs) aparecen para montar redes de nivel 2 independientes compartiendo la electrónica y el
cableado. El estándar que las normaliza es el IEEE 802.1Q y su implantación más habitual es por puertos.
Si se configuran 2 puertos de un conmutador en VLANs diferentes, las estaciones conectadas a uno de los puertos no
podrán comunicar (en este nivel) con las estaciones del otro puerto.
Se pueden configurar puertos por los que circulen tramas de varias VLANs con un campo especial que define a cual
pertenece cada trama. Estos puertos se suelen llamar 'etiquetados' (tagged) y pueden utilizarse para unir dos
conmutadores o un conmutador y un servidor con tarjetas especiales.
El campo 8100 se utiliza para identificar que esto es un campo tag. Si esto no fuera un campo tag, en su lugar estaría el
campo Tipo/Longitud que nunca puede tener un valor 8100.
El campo de prioridad permite 8 niveles (3 bits).
El campo CFI (Canonical Format Indicator) se pone a 1 para indicar compatibilidad con Token-Ring.
El campo VID es el identificativo de la VLAN a la que pertenece el paquete. Si se conecta a un puerto etiquetado un
equipo que no soporte 802.1Q, éste no funciona porque no entiende las tramas que le llegan.
34 (1988) Measured Capacity of an Ethernet: Myths and Reality. David Boggs colaboró con Robert Metcalfe en el diseño de Ethernet y construyó en
1975 el primer encaminador y el primer servidor de nombres de Internet.
35 Un número que crece con la velocidad de la red, ya que en el mismo tiempo se transmite más información.
http://guimi.net 39 / 99
Redes de comunicaciones 4. ETHERNET
Además de las VLAN por puertos, en que cada puerto de un concentrador pertenece a una VLAN, existen equipos que
permiten realizar VLANs por direcciones MAC, por protocolo (inspeccionando datos de la capa 3 y formando redes
según estos protocolos) o por direcciones IP (también de la capa 3), independientemente del puerto en que se conecten
las máquinas.
Por coste y sencillez de gestión la gran mayoría de VLANs que se implementan son por puertos.
Prioridades
En redes Ethernet con conmutadores se pueden implementar prioridades para dar preferencia a un cierto tráfico de la
red. Esto permite en cierta medida implementar aplicaciones de tiempo real sobre Ethernet.
El estándar que regula este mecanismo es el IEEE 802.1P que se integró más tarde dentro de IEEE 802.1Q.
Se puede aplicar una prioridad a cada puerto de un conmutador para que procese las tramas recibidas en cada puerto con
más o menos rapidez.
Para poder aplicar prioridades entre concentradores, esta información es incluida en la trama en un campo especial
añadido. Este campo aparece también en la trama 802.1Q.
Cuando un conmutador recibe una trama, la asigna a una cola con más o menos prioridad en función de la etiqueta que
tenga la trama.
Como el campo de prioridad es de 3 bits, existen 8 niveles de prioridad diferentes.
http://guimi.net 40 / 99
Redes de comunicaciones 5. IEEE 802.11 (Wi-Fi)
Sistema de Distribución
Mecanismo que sirve para controlar a qué AP se envían las tramas. Proporciona movilidad entre distintos AP aunque
las estaciones solo podrán cambiar de ubicación sin perder conectividad siempre que la transición se realice dentro de
un mismo ESS.
36 En general, los protocolos de la rama 802.x definen la tecnología de redes de área local.
http://guimi.net 41 / 99
Redes de comunicaciones 5. IEEE 802.11 (Wi-Fi)
Señales Beacom
La sincronización de estaciones es muy importante y se hace a través de tramas especiales llamadas Beacom. El punto
de acceso las emite periódicamente. Una estación puede esperarlos para sincronizarse (passive scanning) o emitir
peticiones para recibirlas (active scanning).
Algunos aparatos que usan la frecuencia de 2,4 GHz son los microondas, teléfonos inalámbricos, monitores de bebés,
IEEE 802.15.1 (WPAN - Bluetooth) e IEEE 802.11 (WLAN)...
Además de utilizarse diferentes técnicas de espectro ensanchado, en función de la relación señal/ruido se puede utilizar
una modulación (bits por símbolo) más o menos rica para alcanzar más velocidad, por lo que los aparatos realizan una
negociación de velocidades.
Según la zona geográfica, en la banda de los 2.4GHz se utilizan de 7 a 14 canales (13 en Europa). El ancho de banda de
la señal (22MHz) es superior a la separación entre canales consecutivos (5MHz), por eso se hace necesaria una
separación de al menos 5 canales con el fin de evitar interferencias entre celdas adyacentes. Tradicionalmente se
utilizan los canales 1, 6 y 11 o los canales 1, 5, 9 y 13.
Diversificación de la señal
Como las señales viajan rebotando en las paredes y objetos, se produce autointerferencia de las señales al llegar
desfasadas según el camino que recorren (multitrayectoria de la onda). Es decir se produce interferencia debido a la
diferencia de tiempo entre la señal que llega directamente y la que llega reflejada por diversos obstáculos. Para
minimizar este efecto, se suelen utilizar dos antenas ligeramente separadas y el receptor elige la señal de la antena
donde se recibe con más claridad.
Codificación radioeléctrica
Las técnicas de codificación que se utilizan son variantes de CDMA (Code Division Multiple Access). A 5 GHz se
utiliza OFDM (Orthogonal Frequency Division Multiplexing). A 2,4 GHz se utiliza DSSS (Direct Sequence Spread
Spectrum) con diversidad de antenas (dobles antenas). El estándar original también permitía el uso de la técnica FHSS
(Frequency Hopping Spread Spectrum) que reduce mejor la autointerferencia usando una sola antena.
Con dichas técnicas, si hay ruido en alguna frecuencia no afecta a una sola banda, sino que se reparte el efecto entre
todas y su efecto es menor.
http://guimi.net 42 / 99
Redes de comunicaciones 5. IEEE 802.11 (Wi-Fi)
IEEE 802.11e define una nueva función de coordinación HCF (Hybrid Coordination Function) con el objetivo de
incorporar garantías QoS y permitir aplicaciones de tiempo real.
Ethernet que utiliza CSMA/CD espera a que el canal quede libre (más la pausa requerida) y comienza a emitir. En caso
de que otra estación estuviese también esperando para emitir se produce una colisión. Las estaciones emisoras detectan
la colisión y esperan un tiempo aleatorio antes de volver a intentarlo.
Sin embargo dado que el rango dinámico de señales es muy amplio las NIC inalámbricas no son capaces detectar
colisiones, por lo que no se puede usar CSMA/CD. En vez de ello se utiliza CSMA/CA.
37 Las comunicaciones síncronas utilizan ventanas de tiempo en las que se puede transmitir, y obligan a que las estaciones se mantengan
sincronizadas para utilizar las mismas ventanas de tiempo (de manera centralizada o distribuida).
38 Las comunicaciones asíncronas utilizan ventanas variables y no sincronizadas de tiempo.
http://guimi.net 43 / 99
Redes de comunicaciones 5. IEEE 802.11 (Wi-Fi)
Es decir, cuando una estación inalámbrica desea transmitir primero verifica que el canal está libre durante un tiempo
predeterminado. Si está libre comienza a emitir inmediatamente y si está ocupado espera primero a que quede libre y
después un tiempo aleatorio antes de volver a verificarlo (CSMA).
Una vez la estación puede emitir utiliza un intercambio RTS/CTS (éste intercambio no se utiliza para mensajes muy
cortos en que la sobrecarga no vale la pena). Para este intercambio primero envía una trama corta de control de solicitud
de transmisión RTS (Request To Send) indicando a las demás estaciones que no transmitan. Esta trama además
especifica las estaciones origen y destino de la comunicación y el tamaño de la trama que se desea transmitir. Si la
estación destinataria recibe correctamente esta señal devuelve una trama indicando que está ocupado -comunicándose
con un nodo oculto- (RxBUSY) o una trama indicando que todo está preparado para la emisión (CTS: Clear To Send) y
el tamaño de trama que va a recibir.
Si una estación recibe el mensaje RTS pero no la respuesta (CTS o RxBUSY) sabe que es un nodo expuesto y que
puede comunicarse con otro nodo a la vez.
Si una estación no ha recibido un RTS pero recibe un CTS sabe que es un nodo oculto y que debe esperar y además
sabe cuánto tiempo debe hacerlo porque conoce el tamaño de trama que se va a enviar.
Tras emitir el mensaje, la estación emisora espera a una respuesta del destinatario indicando una recepción correcta
(“ACK”) o incorrecta (“NACK”). En el segundo caso -o si no recibe respuesta- el emisor volverá a emitir el mensaje,
existiendo un límite para el número de posibles reenvíos.
5.5. Seguridad
Aunque la seguridad se contempló desde el principio, originalmente no era muy buena debido principalmente a las
limitaciones para exportar productos de criptografía de muchos países (especialmente EE.UU.). Tras cambios
normativos apareció una revisión del protocolo (802.11i) que mejora la seguridad del mismo. Otros estándares de esta
familia (c–f, h–j, n) son mejoras de servicio y extensiones o correcciones a especificaciones anteriores.
El sistema inicial se llamó WEP (Wired Equivalent Privacy) basado en el algoritmo de encriptación RC4 y clave pre-
compartida (PSK). Ya en 2001 se presentaron trabajos que mostraban la debilidad de este sistema y hoy día existen
programas que se encargan desatendidamente de romper la seguridad de una red basada en WEP.
IEEE creó un grupo -802.11i- dedicado a reemplazar el sistema de seguridad (anteriormente se encargaba el grupo
802.11e). La alianza Wi-Fi anunció una especificación llamada WPA (Wi-Fi Protected Access) basándose en el
borrador de 802.11i que comenzó a utilizarse en 2003. Esta especificación era TKIP (Temporal Key Integrity Protocol)
y se basaba también en RC4 con PSK. Sus mejoras en seguridad consistían principalmente en realizar un control de
integridad de los paquetes (ya que en los ataques algunos paquetes se alteraban sin llegarlos a descifrar), un conteo de
los mismos y utilizar una función de mezcla de la clave con el vector de inicialización de la red (en vez de una simple
concatenación) para generar la clave RC4.
El sistema 802.11i final, conocido como WPA2, apareció en 2004. Permite nuevos mecanismos de distribución de la
clave (como EAP), autenticación PSK o basada en servidores (como RADIUS) y CCMP (basado en AES) para cifrado.
La configuración habitual recomendada es WPA2 con clave precompartida (AES PreShared Key) -en entornos
domésticos o PyMES- o WPA2 con servidores RADIUS (EAP-TLS) en entornos corporativos.
http://guimi.net 44 / 99
Redes de comunicaciones 5. IEEE 802.11 (Wi-Fi)
En 2005 IEEE creó otro grupo -802.11w- que pretende asegurar las tramas de gestión y difusión, que en los estándares
anteriores son inseguras. La fecha prevista de publicación es Marzo de 2008.
Muchos puntos de acceso permiten establecer un control por dirección MAC permitiendo o denegando el acceso
únicamente a las tarjetas inventariadas. En algunos casos, la lista de MACs se puede mantener en un servidor RADIUS.
802.11a
La revisión 802.11a al estándar original fue ratificada en 1999 y funciona en la banda de 5GHz utilizando 52
subportadoras OFDM (Orthogonal Frequency-Division Multiplexing).
802.11a tiene una velocidad teórica máxima de 54 Mbit/s, con velocidades reales de aproximadamente 20 Mbit/s. La
velocidad de datos se reduce a 48, 36, 24, 18, 12, 9 o 6 Mbit/s en caso necesario.
802.11a tiene 12 canales no solapados, 8 para red inalámbrica y 4 para conexiones punto a punto.
Los equipos 802.11a y 802.11b no pueden operar entre ellos.
La revisión 802.11a utiliza la banda de 5 GHz, que tiene restricciones -de hecho 802.11a no es utilizable en Europa-.
Sin embargo la cantidad de canales disponibles y la ausencia de interferencias hacen de él una buena opción para
profesionales y empresas que estén dispuestos a obtener (y pagar) una licencia para el uso de dicha banda. Sin embargo,
la utilización de esta banda también tiene sus desventajas. Dado que sus ondas son más fácilmente absorbidas, los
equipos 802.11a deben quedar en línea de vista y son necesarios un mayor número de puntos de acceso.
Los productos del estándar 802.11a aparecieron en el mercado en 2001.
802.11b
La revisión 802.11b del estándar original fue ratificada en 1999 y funciona en la banda de 2.4GHz. Fue la primera
revisión que tuvo una amplia aceptación en el mercado.
802.11b tiene una velocidad teórica máxima de transmisión de 11 Mbit/s, pero debido al espacio ocupado por la
codificación del protocolo CSMA/CA, en la práctica la velocidad máxima de transmisión es de aproximadamente 5.9
Mbit/s para TCP y 7.1 Mbit/s para UDP.
Los dispositivos 802.11b deben mantener la compatibilidad con la norma original IEEE 802.11 -utilizando DSSS-.
Aunque también utiliza una técnica de ensanchado de espectro basada en DSSS, en realidad la extensión 802.11b
introduce CCK (Complementary Code Keying) para llegar a velocidades de 5,5 y 11 Mbps (tasa física de bit). El
estándar también admite el uso de PBCC (Packet Binary Convolutional Coding) como opcional.
802.11g
La revisión 802.11g es la evolución del estándar 802.11b y fue ratificada en Junio de 2003. Es compatible con el
estándar 'b' y utiliza las mismas frecuencias (2.4GHz) aunque con una velocidad teórica máxima de transmisión de 54
Mbit/s. La velocidad real de transferencia es de aproximadamente 22 Mbit/s, similar a la del estándar 802.11a.
En redes bajo el estándar 'g' la presencia de nodos bajo el estándar 'b' reduce significativamente la velocidad de
transmisión.
Los equipos que trabajan bajo el estándar 802.11g llegaron al mercado muy rápidamente, incluso antes de su
ratificación oficial. Esto se debió en parte a que para construir equipos bajo este nuevo estándar se podían adaptar los ya
diseñados para el estándar 'b'. A partir de 2005, la mayoría de los productos que se comercializan siguen la revisión
802.11g con compatibilidad hacia 802.11b.
http://guimi.net 45 / 99
Redes de comunicaciones 5. IEEE 802.11 (Wi-Fi)
Actualmente se venden equipos con esta especificación, con potencias de hasta medio vatio, que permite hacer
comunicaciones de hasta 50 km con antenas parabólicas apropiadas.
802.11h
La especificación 802.11h se hizo pública en octubre de 2003 y soluciona problemas derivados de la coexistencia de las
redes 802.11a con sistemas de Radares y Satélite. Aunque se utiliza en muchos otros países, fue originalmente
desarrollada para incorporar directrices europeas que pretenden minimizar el impacto de abrir la banda de 5 GHz
-utilizada generalmente por sistemas militares- a aplicaciones ISM.
Dichas directrices imponen la capacidad de gestionar dinámicamente tanto la frecuencia como la potencia de
transmisión mediante funcionalidades DFS y TPC.
– DFS (Dynamic Frequency Selection) pretende evitar interferencias co-canal con sistemas de radar y asegurar una
utilización uniforme de los canales disponibles.
– TPC (Transmitter Power Control) permite limitar la potencia transmitida para diferentes canales en una
determinada región, de manera que se minimiza la interferencia con sistemas de satélite.
802.11i
Aprobado en 2004, está dirigido a mejorar la seguridad. El estándar abarca los protocolos 802.1x, TKIP (Temporal Key
Integrity Protocol) -basado en RC4, conocido inicialmente como WEP2 y posteriormente como WPA- y AES
(Advanced Encryption Standard). La versión definitiva del estándar, basada en AES, se conoce como WPA2, y se
utiliza generalmente en la forma AES-PSK o EAP-TLS.
802.11e
La revisión 802.11e, aprobada en 2005, aporta mejoras en el sistema de control y servicios de 802.11.
Su objetivo es soportar tráfico en tiempo real con garantías de Calidad de Servicio (QoS). Para ello introduce clases de
tráfico y un nuevo sistema de coordinación llamado HCF (Hybrid Coordination Function) con dos tipos de acceso:
● EDCA (Enhanced Distributed Channel Access): Sistema distribuido de control. Se basa en prioridades de
tráfico. El tráfico más prioritario espera menos tiempo antes de emitir y utiliza marcos de tiempo de envío
(TXOP Transmit Opportunity) más largos que el tráfico menos prioritario, que espera más antes de emitir y
emite por menos tiempo (TXOP menores).
● HCCA (HCF-Controlled Channel Access): Sistema centralizado de control. De forma parecida al
funcionamiento de PCF, HCF contempla periodos controlados o no, con la diferencia principal de que el AP
puede iniciar un periodo controlado en cualquier momento y no de forma predeterminada. Análogamente a
como ocurría en PCF, los periodos no controlados se rigen por el sistema EDCA. Además el controlador recibe
información sobre el tráfico que desea enviar cada estación y en base a ellos y la QoS utiliza algoritmos de
planificación complejos, no únicamente Round-Robin.
También análogamente a PCF, su implementación es opcional y casi ningún equipo la soporta.
Además 802.11 incorpora otras mejoras como APSD (Automatic Power Save Delivery), BA (Block Acknowledgments),
QoSAck / QoSNoAck y DLS (Direct Link Setup).
Certificación WMM
La certificación WMM (Wireless MultiMedia) de la alianza Wi-Fi, no es un estándar. Basándose en el borrador de
802.11e, prioriza el tráfico en base a 4 categorías de acceso AC (Access Categories): voz, vídeo, mejor esfuerzo (best
effort) y fondo (background).
Para que un AP obtenenga el certificado WMM debe incorporar soporte para EDCA y TXOP así como Power Save
Certification.
http://guimi.net 46 / 99
Redes de comunicaciones 5. IEEE 802.11 (Wi-Fi)
802.11n
Previsto para finales de 2009 802.11n debería ser capaz de trabajar tanto en banda de 2.4GHz como en banda de 5GHz,
siendo compatible con todas las revisiones anteriores y alcanzando una velocidad teórica mayor de 600 Mbit/s.
También se espera que el alcance de operación de las redes sea mayor gracias a la tecnología MIMO (Multiple Input –
Multiple Output), que permite utilizar varios canales a la vez para enviar y recibir datos gracias a la incorporación de
varias antenas.
Actualmente ya existen varios productos que cumplen el segundo borrador de la revisión 'n' con un máximo de 300
Mbps (80-100 estables).
802.11w
Todavía no concluido. TGw está trabajando en mejorar la capa del control de acceso al medio de IEEE 802.11 para
aumentar la seguridad de los protocolos de autenticación y codificación. Se intenta extender la protección que aporta
802.11i en los datos a las tramas de gestión.
Resumen de revisiones
Aunque se usan los términos “estándar” y “revisión” (amendment) para referirse a las diferentes variantes de IEEE
802.11, oficialmente solo existe un estándar llamado IEEE 802.11, siendo la versión actual del estándar la IEEE
802.11-2007. Sin embargo el estándar se va actualizando con revisiones creadas por grupos de trabajo (TG: Task
Group) identificados por una letra minúscula. Por ejemplo el grupo de trabajo TGm se encarga de actualizar 802.11 y
realizar aclaraciones e interpretaciones de los documentos publicados para la industria.
Independientemente de los estándares están las certificaciones de la Wi-Fi Alliance, como WMM, que se basan en los
estándares, revisiones y borradores de IEEE.
http://guimi.net 47 / 99
Redes de comunicaciones 6. PROTOCOLOS WAN
6. PROTOCOLOS WAN
6.1. Portadora-T y PDH (Plesiochronous Digital Hierarchy)
El sistema portadora-T fue introducido por Bell System en los Estados Unidos en los años 60 y se utiliza principalmente
en EE.UU. y Japón. A partir de ella e impulsada en Europa se desarrolló la jerarquía digital plesiócrona39 o PDH
(Plesiochronous Digital Hierarchy) también conocida como portadora-E. PDH tiene mayor capacidad porque
presupone el uso de líneas más fiables, eliminando sobrecarga del control de errores.
El sistema PDH es un protocolo de capa física (N1) basado en líneas dedicadas enteramente digitales. Usando
modulación de pulso y multiplexación de división de tiempo permite enviar varios canales sobre un mismo medio. Por
tanto cada línea se compone de varios canales básicos. Al agrupar canales hay que añadir bits de sincronismo y
entramado porque el reloj de cada canal es independiente.
El sistema utiliza conexiones full-dúplex, originalmente mediante dos pares trenzados de cobre y actualmente también
sobre coaxial, microondas o fibra óptica. Sin embargo este diseño no obtiene un buen rendimiento sobre fibra, por lo
que está siendo sustituido por las redes SONet/SDH.
La línea digital E1 consiste en 32 canales de 64 Kbps multiplexados (2 Mbps)40. Un enlace E1 estructurado utiliza un
canal para sincronización y uno para entramado. Un enlace E1 no estructurado, utilizado como línea punto a punto,
utiliza los 32 canales para datos.
En el sistema portadora-E al canal básico de 64 kbps se le llama a veces línea E0.
39 Deriva del griego plesio -cercano- y chronos -tiempo- y se refiere a que los canales de PDH están casi, pero no completamente, sincronizados.
40 La línea digital T1 utiliza 24 canales de 64 Kbps (1,5 Mbps).
http://guimi.net 48 / 99
Redes de comunicaciones 6. PROTOCOLOS WAN
6.2. X.25
El protocolo X.25 fue el primer protocolo que utilizaba la RTC en ser estandarizado por el antiguo CCITT (ahora ITU)
en 1976. Diseñado para líneas de comunicación poco fiables (con muchos errores de transmisión), ofrece un servicio
fiable orientado a conexión (circuitos PVC y SVC), que garantiza que los paquetes llegan en el mismo orden que
salieron. Para ello utiliza la técnica de store-and-forward con confirmación de llegada en cada nodo, unido a un
protocolo de ventana deslizante y un tamaño de trama pequeño (128 bytes).
Especifica los tres niveles inferiores del modelo ISO OSI:
● Define dos niveles físicos posibles: X.21 (digital) y X.21bis (analógico).
● El nivel de enlace se llama LAP-B (Link Access Procedure-Balanced).
● El nivel de red se llama PLP (Packet Layer Protocol) y el direccionamiento está estandarizado a nivel
internacional (X.121).
Los protocolos de nivel 2 y 3 son complejos, por ello hay unos aparatos llamados PAD (Packet Assembler
Dissasembler) que realizan las funciones de estos niveles para conectar equipos terminales poco potentes.
Sus velocidades típicas oscilan entre 9,6Kbps a 64kbps, siendo el costo proporcional al tiempo de duración del circuito
y al número de paquetes enviados. No es apto para tráfico en tiempo real y en la actualidad está siendo totalmente
reemplazado por otros protocolos como Frame-Relay.
6.3. RDSI
La Red Digital de Servicios Integrados (RDSI o ISDN: Integrated Services Digital Network) es una red que provee
conexiones digitales extremo a extremo para proporcionar una amplia gama de servicios, tanto de voz como de otros
tipos, y a la que los usuarios acceden a través de un conjunto de interfaces normalizados, independientemente de la
naturaleza de la información a transmitir y del equipo terminal que la genere.
Los protocolos de acceso RDSI presentan una arquitectura de capas que se puede hacer corresponder con la del modelo
OSI, con gran variedad de configuraciones.
RDSI proporciona conexiones de conmutación de circuitos y de datagramas a 64 kbps bajo demanda, siendo su coste
proporcional al tiempo de uso (aunque pueden contratarse tarifas planas).
Otras ventajas son:
● Establecimiento de conexión en un tiempo muy corto (entre ½ y 2 segundos) lo que permite que se realice la
llamada cuando se necesite enviar datos para enviar.
● El receptor puede identificar al número que llama, con lo que se pueden establecer mecanismos de seguridad.
Los canales B se pueden utilizar agregados o independientemente tanto para voz como para datos. Sus usos principales
son: conexión de centralitas digitales privadas (PBX) a la red telefónica; videoconferencia (estándar H.320 con 2
canales B -128 kbps- o 6 canales B -384 kbps-); transmisión de varios canales de audio (conexiones de radio); y
transmisión de datos, actualmente como servicio de apoyo a otras líneas en horas punta, o como conexión redundante.
http://guimi.net 49 / 99
Redes de comunicaciones 6. PROTOCOLOS WAN
6.5. FRAME-RELAY
Introducción
Frame-Relay es un protocolo de nivel 2 utilizado principalmente para interconectar redes LAN. Se basa en la utilización
de la infraestructura de red disponible por los prestadores de servicio público, aunque puede ser también implementada
sobre líneas dedicadas.
Frame Relay surgió como es el sucesor de la tecnología X.25, y está pensada para capas físicas con bajas tasas de
errores y velocidades relativamente altas (de hasta 2 Mb/s, aunque podría funcionar sin problemas a velocidades
mayores). El único control de errores que realiza es la verificación de tramas, sin realizar acuse de recibo. En caso de
detectar una trama errónea la descarta, pero no solicita retransmisiones.
La tecnología Frame Relay se basa en la utilización de circuitos virtuales (VC: Virtual Circuits) tanto permanentes
como conmutados (PVCs y SVCs). Los circuitos virtuales son caminos bidireccionales, establecidos entre dos puntos
extremos de la red Frame Relay. Existen dos tipos de circuitos virtuales:
● PVC (Permanent VC): Los PVC son circuitos virtuales permanentes -independientemente del tráfico-
establecidos por el operador de red. Los PVC son definidos de forma estática, y se requiere la intervención de
un operador para establecerlos y liberarlos. Son los más utilizados en Frame Relay.
● SVC (Switched VC): Son circuitos que se establecen de forma dinámica en el momento de establecer la
conexión. La implementación de circuitos virtuales es más compleja que la de circuitos permanentes, pero
permite, en principio, conectar cualquier nodo de la red Frame Relay con cualquier otro.
Cada nodo dispone de un enlace Frame-Relay sobre el que se pueden establecer distintos circuitos. Cada nodo se
identifica con un DLCI (Data Link Connection Identifier) local a cada conmutador, el cual lo puede cambiar cuando
reenvía la trama. Para establecer circuitos conmutados se utiliza señalización fuera de banda a través del DLCI 0.
En realidad una de las ventajas de Frame Relay es que las limitaciones se hacen en base a velocidades medias,
adaptándose muy bien al tráfico en ráfagas. De esta forma los valores CIR y EIR surgen de dividir por un tiempo
prefijado “Tc” los valores Bc (Committed Burst Size ) y Be (Excess Burst Size). Al basarse en velocidades medias se
puede usar una mayor velocidad de la contratada en momentos puntuales (incluso por encima de CIR+EIR) siempre que
la media en el intervalo Tc no supere la cantidad estipulada. Como habitualmente Tc es un segundo CIR=Bc y EIR=Be.
http://guimi.net 50 / 99
Redes de comunicaciones 6. PROTOCOLOS WAN
El contrato del CIR y EIR puede ser asimétrico y se establece de forma independiente para cada PVC.
En una configuración típica, un “nodo central” puede tener un enlace sobre el que se configuran varios PVCs hacia los
“nodos secundarios”, o sucursales. En el “nodo central” el enlace físico podría ser, por ejemplo, de 1 Mb/s, y cada PVC
disponer de un CIR de 64 kb/s. Esto significa que la velocidad media garantizada de transmisión entre el nodo central y
los nodos secundarios debe ser 64 kb/s (CIR), aunque la velocidad física del enlace central será de 1 Mb/s.
Se tarifica por cuota fija en función de la velocidad de acceso, de la distancia y del CIR/EIR del circuito contratado.
En España la red de Frame-Relay de Telefónica se llama Red Uno y permite establecer conexiones internacionales.
Tramas Frame-Relay
El tamaño de trama es variable. El máximo depende de las implementaciones (hasta 8kb). Una trama contiene: un
indicador de comienzo de trama que facilita la sincronización (Flag), una cabecera (Header), los datos a transmitir
(Information), y los campos FCS (Frame Check Sequence Field) -un CRC básico- y un nuevo Flag de sincronización
que indica final de trama.
Dentro de la cabecera (2 o 4 bytes) existen muchos formatos diferentes que presentan los siguientes campos:
● DLCI destino: Identificador de 10 bits del destino de la trama.
● DLCI remitente: Identifica la conexión virtual de procedencia. Este valor DLCI es local y se modifica en cada
salto.
● 2 bits AFE (Address Field Extension): Indica que la cabecera está utilizando direcciones más largas de lo
habitual.
● bit FECN (Forward Explicit Congestion Notification): Este bit indica que el nodo que envía la trama ha
detectado congestión en la red en el mismo sentido que va la trama.
● bit BECN (Backward Explicit Congestion Notification): Este bit indica que el nodo que envía la trama ha
detectado congestión en la red en el sentido opuesto al que va la trama.
● bit DE (Discard Eligibility Indicator): Este bit indica que la trama es descartable en caso de congestión. Todas
las tramas que exceden el CIR contratado, son marcadas como “DE”.
● bit(s) EA (Extension Bit): Indica(n) si la cabecera es de 2 o 4 bytes.
Protocolos auxiliares
Aunque Frame-Relay aparece ante otros protocolos, por ejemplo IP, como un protocolo de enlace (N2), para gestionar
los circuitos virtuales utiliza a su vez un protocolo de enlace llamado LAPF, que se encarga de gestionar los bits FECN,
BECN y DE.
Por otra parte LMI (Local Management Interface) es un protocolo que se implementa de forma opcional, pero habitual,
en las instalaciones de Frame-Relay y permite el intercambio de información entre equipos de clientes y equipos del
prestador de servicios mediante el uso de tramas especiales de administración, que disponen de números de DLCI
reservados para estos fines.
Esta información de administración incluye:
● Indicación de que la interfaz está activa (keep alive).
● Información de los DLCIs definidos en la interfaz.
● Información sobre el estado de cada circuito virtual, por ejemplo, si está congestionado o no.
http://guimi.net 51 / 99
Redes de comunicaciones 6. PROTOCOLOS WAN
Los protocolos de ATM están estandarizados por la ITU-T, con especial contribución del “ATM Forum41” y si bien
pueden ser utilizados en LANs, se usan principalmente en las redes de espinazo (backbone) de los proveedores de
servicios públicos. Sin embargo parece tener poco futuro debido a la aparición de GigaEthernet y de PoS (Packet Over
SONet/SDH).
Permite establecer circuitos virtuales permanentes (PVC) -configurados estáticamente- o conmutados (SVC) mediante
señalización Q2931 a través de los circuitos reservados VPI 0 VCI 5.
Siguiendo el estándar OSI NSAP, las direcciones ATM son de 20 bytes: 13 bytes identifican la red, 6 el equipo y el
último la entidad en el equipo.
El primer byte marca la utilización de uno de los 3 formatos posibles de dirección. Uno de los formatos incluye
direcciones E.164 (tradicionales de telefonía internacional)42 codificadas en los 20 bytes.
41 Organización voluntaria internacional, formada por fabricantes, prestadores de servicio, organizaciones de investigación y usuarios finales.
42 Por ejemplo 34961234567@timofonica.com, que se correspondería con el número 34961234567 en la RTC.
http://guimi.net 52 / 99
Redes de comunicaciones 6. PROTOCOLOS WAN
Los nodos de la red se llaman conmutadores ATM y los terminales equipos (hosts). De forma similar al modelo OSI,
ATM también está diseñada en un modelo de capas. En el caso de ATM, el modelo de capas puede verse en dos
“planos”, uno de gestión con una sola capa y otro de transmisión dividido en 4 capas:
● Física. Dividida en:
○ PMD (Physical Media Dependent) Equivale a la física de OSI
○ TC (Transmisión Convergente) Equivale a enlace OSI
● ATM. Realiza tareas de señalización, transporte y control de congestión. Está a caballo entre las capas de
enlace y de red de OSI.
○ El algoritmo de encaminamiento dinámico entre conmutadores se llama P-NNI y es parecido al OSPF.
● AAL (ATM Adaptación Layer). Equivale a la de transporte OSI y se divide en:
○ SAR (Segmentation and Reassembly) Se encarga de fragmentar paquetes en celdas y reensamblarlos.
○ CS (Convergence Sublayer) Ofrece los tipos de servicio
● Aplicación. No se define. Se deja total libertad. En realidad hay muy pocas aplicaciones diseñadas para ATM.
Se suele utilizar para transportar otros protocolos de nivel 3 (como IP).
Funcionamiento
No envía acuse de recibo. Los paquetes -llamados celdas- son de longitud fija y tienen 53bytes (5 de cabecera y 48 de
datos). Esto permite dos cosas: que una celda de mayor prioridad no espere mucho tiempo porque hay otra de menos
prioridad enviándose (y no se puede suspender el envío); y también reduce la complejidad del conmutador y puede ser
más rápido. El inconveniente es una sobrecarga (overhead) de 5/53 (casi un 10%).
De los 5 bytes de la cabecera hay que destacar los campos VPI (Virtual Path Identifier) y VCI (Virtual Channel
Identification) que son los campos que utilizan los conmutadores para saber por qué puerto hay que enviar la celda.
Estos campos tienen sentido local al conmutador y pueden cambiarse al pasar de un conmutador a otro.
Hay un bit (CLP Cell Loss Priority) para identificar si la celda es más o menos susceptible de ser descartada en
momentos de congestión y un campo HEC (Header Error Control) que es un checksum de cabecera.
La sincronización entre equipos para delimitar donde empieza cada celda se hace calculando los checksums de cabecera
(HEC) hasta encontrar una secuencia de bytes que cumple la función del checksum.
http://guimi.net 53 / 99
Redes de comunicaciones 6. PROTOCOLOS WAN
De esta manera se garantiza la compatibilidad entre ambas si se utilizan múltiplos de 3. Cada trama STM está
compuesta por 4 de las anteriores. Una trama STM4 lleva 4 tramas STM-1. Una trama STM-1 puede llevar 3 E3 o 1 E3
y 32 E1, etc.
Una red SDH está formada por repetidores, multiplexores y conmutadores interconectados por fibra óptica
habitualmente con topología de doble anillo para mantener redundancia (como la de FDDI). El tiempo de reacción a un
corte del anillo es de 50ms.
Los multiplexores se llaman ADM (Add-Drop Multiplexor) y se encargan de extraer e inyectar tramas de menor nivel
en otras de mayor nivel. El tramo que recorre un circuito completo se llama ruta, el que comunica dos equipos sección y
el que une dos ADMs contiguos línea.
http://guimi.net 54 / 99
Redes de comunicaciones 6. PROTOCOLOS WAN
Si se dispone de un cableado de fibra entre dos encaminadores con interfaz PoS, se puede suprimir los equipos SDH y
conectarlos directamente. Esto permite crear redes IP sobre PoS pero sin electrónica añadida.
En Europa se utiliza en dos bandas de frecuencia, entorno a 900 MHz y a 1800 MHz (GSM 900 y GSM 1800), mientras
que en EE.UU. se utiliza en la banda de 1900 MHz (GSM 1900) y en el Sureste Asiático y Japón a 850 MHz (GSM
850).
http://guimi.net 55 / 99
Redes de comunicaciones 6. PROTOCOLOS WAN
Hay satélites geoestacionarios que permanecen fijos en el cielo y permiten utilizar antenas parabólicas direccionales y
fijas. Están a 36000 Kms de altura y eso hace que las comunicaciones tengan una alta latencia.
Hay proyectos de satélites de baja órbita (menor altura y por tanto menor latencia) pero al no estar fijos en el cielo
aparecen y desaparecen, por lo que hay que crear una malla de satélites en el cielo para que en un punto de la tierra
siempre haya alguno a la vista (como hace por ejemplo GPS).
Los problemas técnicos más importantes son debidos a que es un medio de multi-difusión y al control de acceso al
medio (MAC) debido a que las estaciones no se ven entre sí y a las largas distancias del medio.
Dado que los equipos de emisión son caros, se pueden plantear para recibir información, utilizando las líneas
telefónicas para las subidas de datos, creando una conexión altamente asimétrica.
http://guimi.net 56 / 99
Redes de comunicaciones 7. MÉTODOS DE ACCESO A REDES
7.2. Módems
Un módem es un dispositivo que sirve para modular y demodular (en amplitud, frecuencia, fase u otro sistema) una
señal llamada portadora mediante otra señal de entrada llamada moduladora.
Su uso más común y conocido es para realizar transmisiones de datos por vía telefónica ya que mientras las
computadoras procesan datos de forma digital las líneas telefónicas de la RTB sólo transmiten señales analógicas.
Además de los módems telefónicos existen otros módems como los módems xDSL o módems utilizados para
transmisiones radiofónicas y de televisión.
Los métodos de modulación y otras características de los módems telefónicos están estandarizados por el UIT-T (el
antiguo CCITT) en la serie de Recomendaciones "V" que determinan la velocidad de transmisión. Así podemos
encontrar desde el V.32. (transmisión a 9.600 bps) hasta el V.92 (transmisión a 56'6 kbps con compresión de datos y
llamada en espera).
7.3. xDSL
Introducción
La tecnología xDSL (Digital Subscriber Line: Línea de Abonado Digital) es una evolución de los módems telefónicos
que utilizan un espectro de frecuencias situado por encima de la banda vocal (300 - 3.400 Hz) e incluso por encima de
los 25 KHz ocupados en las líneas RDSI, y permiten alcanzar velocidades mucho mayores que un módem telefónico
convencional, al mismo tiempo que se puede establecer comunicaciones telefónicas.
Por tanto permite utilizar para la transmisión de datos la infraestructura existente de RTB de manera transparente para
su uso habitual, es decir sin interferir en el uso telefónico de la línea.
En el nivel de enlace utiliza celdas ATM. O dicho de otra manera, es un nivel físico para ATM. Por ello muchos
proveedores pueden ofrecer servicios xDSL sin disponer de un bucle de abonado propio. En vez de ello contratan con la
compañía proveedora de la RTB para que envíe el circuito ATM a sus conmutadores.
Aún así no se puede usar en cualquier cable de teléfono. Básicamente tiene que cumplir dos condiciones:
– que el cable esté en buen estado y no sea muy viejo, lo que impide su utilización en zonas y países con un mal
mantenimiento de líneas telefónicas
– que el terminal (el módem) no esté a más de una distancia determinada de una central digital. En general se da por
buena una distancia máxima de 5,5 Km, con una distancia óptima inferior a 2 Km.
Esto hace que xDSL resulte económico en países con una infraestructura adecuada e inviable en zonas con malas
infraestructuras
44 Conjunto de medios técnicos que permiten la comunicación a distancia entre equipos autónomos (no jerárquica -master/slave-).
http://guimi.net 57 / 99
Redes de comunicaciones 7. MÉTODOS DE ACCESO A REDES
La voz humana usa normalmente frecuencias entre 0 y 4 Khz45. El sistema xDSL aprovecha la capacidad de la línea
para transmitir datos en una banda de frecuencia más alta que la que se utiliza para transmitir voz. Así se puede
transmitir voz y datos a la vez. Para evitar que se oiga un ruido de fondo en el teléfono se añaden filtros (splitters) a la
conexión del teléfono. Al llegar a la central, los datos viajan por una red de datos separada de la de voz.
La banda de frecuencia utilizada para la transmisión de datos se divide en tres canales: subida, bajada y control. Es
decir, en total se utilizan cuatro canales: el de voz y los tres de transmisión de datos.
La técnica de modulación más utilizada es la DMT (Discrete Multi Tone) estandarizada por el ITU-T. Consiste en
dividir la gama de frecuencias en 256 subcanales denominados “bins” de 4,3125 KHz de anchura, que xDSL maneja de
forma independiente. Esto permite que si hay ruido en una frecuencia se deje de utilizar solo un bin pero se siga
aprovechando el resto. La capacidad exacta de datos por canal depende de la modulación.
Los 6 primeros se reservan para la voz y el RDSI (25,875 KHz), los siguientes se utilizan para subida (según la
capacidad de subida contratada) y los últimos para bajada.
Otra técnica disponible llamada CAP (Carrierless Amplitude Phase) utiliza una filosofía similar pero sin dividir los
rangos ascendentes en bins, con lo que da menor rendimiento, aunque los equipos son más sencillos.
xDSL utiliza transmisión full-duplex síncrona sobre una línea dedicada punto a punto, conocida como bucle de
abonado, entre el módem del abonado (ATU-R) y la central digital del proveedor (ATU-C). Normalmente la central
ATU-C se conecta un conmutador ATM con aparatos conocidos como DSLAM (Digital Subscriber Line Access
Multiplexer).
http://guimi.net 58 / 99
Redes de comunicaciones 7. MÉTODOS DE ACCESO A REDES
Variantes de xDSL
ADSL
La variante de xDSL utilizada en España es el ADSL o Asymmetric Digital Subscriber Line ("Línea de Abonado Digital
Asimétrica"). Esto significa que la velocidad de subida es distinta de la velocidad de bajada.
Por ejemplo, un ADSL2 en España para la subida utiliza las frecuencias 25,875 Khz a 138 Khz y para la bajada de
138-1104Khz. El canal de control se sitúa entre ambos (utiliza un ancho de banda pequeño).
Actualmente se están implantando tecnologías ADSL2 y ADSL2+ cuya diferencia fundamental es la utilización de un
mayor ancho de banda (hasta 2,2 MHz), lo que permite en el caso del ADSL2 dar mayores velocidades de carga y
descarga y en el caso del ADSL2+ utilizar uno de los rangos para enviar una señal de televisión.
ADSL G.Lite
Permite prescindir del filtro en la vivienda a costa de suprimir frecuencias y utilizar una modulación más pobre,
obteniendo peores rendimientos.
http://guimi.net 59 / 99
Redes de comunicaciones 7. MÉTODOS DE ACCESO A REDES
En la cabecera de la red hay un equipo especial llamado CMTS (Cable Modem Termination System) y en las viviendas
de los usuarios se instala un equipo llamado CM (Cable Modem). Normalmente, la compañía configura el cable módem
para que no rebase un caudal contratado.
Cada CM solo puede comunicarse con el CMTS que se comporta como un puente remoto. Todos los CMs de un
segmento comparten el medio físico y tienen que compartir los canales de datos. Las emisiones del CMTS llegan a
todos los CM del segmento, por lo que la información debe viajar cifrada.
Para competir por el canal ascendente hacia el CMTS se utiliza un protocolo basado en créditos. El canal ascendente se
divide en intervalos de tiempo llamados “minislots”. El CMTS informa a los CM a través del canal descendente (junto
con los datos) del mapa de asignación de minislots.
46 Según donde acabe la fibra: FTTN / FTTC / FTTB / FTTH (Fiber to the Node / Curb / Building / Home)
http://guimi.net 60 / 99
Redes de comunicaciones 7. MÉTODOS DE ACCESO A REDES
http://guimi.net 61 / 99
Redes de comunicaciones 8. REDES PRIVADAS VIRTUALES
Para conseguir esta abstracción se basa en el concepto de túnel que consiste en un enlace punto a punto virtual entre dos
extremos construido sobre una red compleja, de manera que los dos extremos se comportan a nivel lógico como si
estuvieran unidos directamente por un enlace punto a punto.
Los paquetes se encapsulan en un extremo del túnel dentro de otros paquetes para cruzar la red. En el otro extremo se
desempaquetan los datos que pueden haber viajado comprimidos y cifrados (para que la red sea “privada”).
Desde el punto de vista de la seguridad, los protocolos que se utilizan para montar VPNs ofrecen:
● Autenticidad de los extremos. Cuando se utilizan certificados, se garantiza que tanto el emisor como el
receptor son quienes dicen ser.
● Cifrado de datos. Permite que no puedan ser comprendidos por extraños que los pudiera interceptar.
● Integridad de los datos. Asegura que los datos no puedan ser alterados en algún punto del recorrido sin que el
receptor lo detecte.
● No repudio. Cuando un mensaje va firmado el emisor no puede negar su emisión.
Se puede utilizar VPN sobre una red pública para realizar dos tipos básicos de conexión:
● Acceso remoto. También llamada Remote Access VPN, client-gateway o usuario-red. Permite unir
virtualmente un equipo remoto a una red.
● Interconexión de redes. También llamada Site to Site VPN, Router to Router VPN, gateway-gateway o red-
red. Permite unir virtualmente dos redes para crear una única red.
De manera similar, se puede utilizar VPN sobre una red privada para acceder a una subred protegida y/u oculta de dos
maneras básicas:
● Acceso privado. Permite controlar el acceso a la subred oculta y cifrar el tráfico hacia dicha red.
● Interconexión de redes privadas. Permite unir dos subredes protegidas y/u ocultas cifrando el tráfico entre
ellas.
Para poder configurar cualquier VPN hace falta al menos un servidor de VPN por cada red que forma parte de la VPN,
y un cliente de VPN por cada cliente de acceso remoto que se conecta a la misma. El servidor VPN es el encargado de
autenticar la conexión (o delegar dicha función) y permitir la comunicación entre la red y el otro extremo de la VPN.
TAP/TUN
Para la realización de VPNs se utiliza habitualmente dos controladores virtuales de red llamados TAP y TUN. TAP (de
"network tap") simula un dispositivo de red de nivel 2 y opera con paquetes Ethernet. TUN (de "network TUNnel")
simula un dispsitivo de red de nivel 3 y opera con paquetes IP. TAP se utiliza para crear el puente de red y TUN para
encaminar los paquetes por dicho puente.
http://guimi.net 62 / 99
Redes de comunicaciones 8. REDES PRIVADAS VIRTUALES
Además la tabla de rutas se modifica para que el tráfico hacia la red privada se envíe por el túnel VPN y opcionalmente
también el tráfico hacia Internet -lo que permite usar los filtros y servidores de la red privada, normalmente a cambio de
reducir el rendimiento-.
De la misma manera el servidor VPN se encarga de recibir el tráfico destinado al equipo remoto y reenviárselo.
Antes de las VPN para conseguir un acceso remoto a una red se utilizaban sistemas RAS (Remote Access Service)47
mediante PoPs (Point of Presence) de forma parecida al de las conexiones que ofrecían los proveedores de Internet
(ISPs) a través de módems telefónicos. De esta forma un cliente llama mediante módem telefónico al servidor RAS de
su organización, se valida mediante un servidor RADIUS o TACACS y establece la conexión. Opcionalmente el
servidor RAS puede configurarse para devolver la llamada, cargando el gasto de la misma a la organización.
Las principales ventajas de la conexión VPN frente a la conexión mediante RAS son:
● Para clientes de acceso remoto vía módem supone una reducción del coste de las llamadas, ya que conecta a un
proveedor local de Internet y no a un servidor RAS de la organización remota.
● Reducción del coste de los equipos y líneas de entrada (RDSI) que representa el RAS.
● Escalabilidad. Es mucho más fácil y barato de añadir servidores VPN que líneas de acceso y equipos de RAS.
● Permite acceso a mayor velocidad que la de un módem telefónico mediante el uso de cable-modems, xDSL u
otras redes.
Otra diferencia es que al usar RAS se dispone únicamente de una sola interfaz de red, la del cliente RAS o PPP.
Otras ventajas:
● Toda la configuración necesaria se realiza en los encaminadores o servidores VPN, de manera transparente al
usuario.
● Permite transportar otros protocolos diferentes a IP que no pueden ser transportados sobre Internet si no es con
túneles (IPX, Appletalk , SNA, NetBEUI, etc).
● Se puede introducir compresión de datos para aprovechar mejor los enlaces.
● Se puede utilizar el mismo rango -público o privado- de direcciones IP en todas las redes.
Protocolos
Para realizar la autenticación se pueden usar distintos protocolos como:
● PAP (Password Authentication Protocol). La contraseña viaja en claro por la red.
● CHAP (Challenger Authentication Protocol).
● MS-CHAP (Microsoft CHAP) y MS-CHAP v2.
● Familia EAP (Extensible Authentication Protocol).
● SPAP (Shiva Password Authentication Protocol).
● Acceso sin necesidad de autenticación.
47 Actualmente el servicio de Windows que gestiona las VPNs se sigue llamando RRAS (Routing and RAS).
http://guimi.net 63 / 99
Redes de comunicaciones 8. REDES PRIVADAS VIRTUALES
Aunque el protocolo Kerberos ha sido adoptado por Microsoft para la autenticación en el directorio activo, todavía
utiliza NTLM en determinadas circunstancias:
● Si el cliente se autentica usando una dirección IP.
● Si el cliente se autentica en un servidor de otro bosque del directorio activo o no pertenece a ningún dominio o
no existe ningún dominio.
● Si un cortafuegos corta los puertos necesarios para usar Kerberos.
Algunos servidores permiten usar IPSec sobre TCP o UDP (normalmente por el puerto 10000) para poder traspasar
cortafuegos y servidores NAT.
http://guimi.net 64 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
9. SEGURIDAD EN REDES
9.1. Introducción
Criptología y esteganografía
La criptografía (literalmente "escritura oculta") es la disciplina que se ocupa del conjunto de técnicas para cifrar y
descifrar información haciendo posible el intercambio de mensajes de manera confidencial, es decir de manera que sólo
puedan ser leídos por aquellos a quienes van dirigidos.
El criptoanálisis es la disciplina que se ocupa del conjunto de técnicas para descifrar mensajes en ausencia de las claves
("romper el cifrado").
La criptología es la disciplina que engloba tanto la criptografía como el criptoanálisis.
La esteganografía es la disciplina que se ocupa del conjunto de técnicas que permiten el ocultamiento de mensajes
dentro de otros, llamados portadores, de modo que no se perciba su existencia. En informática probablemente el sistema
esteganográfico más utilizado sea el de ocultar mensajes en imágenes a nivel binario, alterando los bits de menor peso
de determinados píxeles de la imagen e insertando en ellos el mensaje. Esta técnica hace indistinguible al ojo humano la
imagen original de la alterada. Como además los mensajes se guardan cifrados en píxeles determinados por una clave
no es posible saber si una imagen dada lleva un mensaje oculto o no.
Un ejemplo:
Dos presos, Ana y Bob, planean fugarse y para organizarlo necesitan intercambiar mensajes. La única manera de
enviar mensajes es solicitándole a la guardiana Eva que haga de portadora. Si Ana le da a Eva un mensaje para Bob
que dice "Nos fugamos mañana a las 12" no es muy probable que la fuga tenga éxito. Ana puede utilizar la
criptografía para enviar entonces el siguiente mensaje "gdtrhfuwjeldikarstyivh", pero Eva sospechará que algo
ocurre, aunque no sepa qué. Por último Ana puede utilizar la esteganografía para enviar un mensaje en apariencia
normal que oculte el mensaje real para Bob. Este mensaje podría ser, por ejemplo, un poema acróstico50. Para mayor
seguridad Ana podría enviar un mensaje cifrado oculto mediante esteganografía.
En este capítulo nos ocuparemos solo de criptografía y sistemas de seguridad relacionados en redes informáticas.
Criptografía simétrica
La criptografía simétrica utiliza una clave para alterar un mensaje -"cifrado"- de manera que sea necesaria esa misma
clave para recuperar el mensaje original -"descifrado"-. La criptografía de clave simétrica es la más antigua, la más
sencilla (y por tanto la más rápida y eficiente) y la más utilizada. Los primeros sistemas se basaban simplemente en la
trasposición o sustitución de las letras del alfabeto, desde la scitala espartana (cuya clave era la vara o "scitala"), el
atbash utilizado por los hebreos (la trasposición se hace con el alfabeto invertido) o el método atribuido a Julio César y
conocido como "cifrado del César" (la trasposición se hace con el alfabeto movido tres posiciones, la clave sería 3)51.
Los algoritmos informáticos se basan principalmente en la trasposición de bloques52 de bits en base a claves binarias.
50 Un acróstico es una composición poética en el que las letras iniciales, medias o finales de cada verso, leídas en sentido vertical, forman un
vocablo o una locución. El acróstico más conocido de la lengua española está constituido por los versos que conforman el Prólogo de La
Celestina (Fernando de Rojas, 1497), en cuyas octavas se puede leer: "El bachiller Fernando de Rojas acabó la comedia de Calisto y Melibea y
fue nacido en la Puebla de Montalván".
51 Otro sistema de claves, por ejemplo "JULIOCESAR" (sin letras repetidas) nos daría el alfabeto de sustitución
JULIOCESARBDFGHKMNÑPQTUVWXYZ
52 CBC (Cipher-Block Chaining) es el modo más utilizado de cifrado por bloques en contraposición al más simple y antiguo ECB (Electronic
CodeBook). Su principal inconveniente es que el cifrado y descifrado es secuencial y no puede paralelizarse, mientras que en ECB el mensaje se
divide en bloques que se cifran separadamente.
http://guimi.net 65 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
Criptografía asimétrica
La criptografía de clave pública se basa en la creación de "rompecabezas matemáticos" que son difíciles de resolver sin
uno de los datos, pero fáciles de resolver con ese dato. El creador de las claves publica el rompecabezas (clave pública)
y guarda el dato clave (clave privada). Ese rompecabezas matemático (clave pública) puede utilizarse para cifrar un
número (mensaje) de manera que solo con el dato clave (clave privada) se pueda calcular el número original.
Por ejemplo es fácil multiplicar dos números primos pero es difícil factorizar el resultado. Lo mismo ocurre con el
módulo de grandes números primos (DSA), los logaritmos discretos (ElGamal) o las matemáticas de las curvas
elípticas. Por ejemplo si se usa la función "ga mod p=s", es fácil calcular "s" a partir del resto de valores (g,a,p), pero
es muy costoso computacionalmente calcular "a" a partir del resto de valores (g,p,s).
Se dice que un algoritmo de clave pública es reversible si se puede utilizar tanto la clave privada como la pública para
cifrar y siempre es necesaria la clave contraria para descifrar.
La Criptografía de Curva Elíptica (ECC: Elliptic Curve Cryptography) es una variante de la criptografía asimétrica
basada en las matemáticas de las curvas elípticas. Sus autores argumentan que la CCE puede ser más rápida y usar
claves más cortas que los métodos anteriores al tiempo que proporcionan un nivel de seguridad equivalente.
Firma de mensajes
Los algoritmos de firma aportan autenticación, integridad y no-repudio a la comunicación.
El sistema básico para firmar un fichero, un mensaje o un resumen es mediante su cifrado con una clave, de forma que
solo podrá entenderse descifrándolo de nuevo. El hecho de que pueda descifrarse con la clave establecida garantiza su
integridad (si se hubiese alterado una vez cifrado no se podría descifrar) y su autenticidad (ha sido cifrado con la clave -
firma- correcta).
Para firmar un mensaje o un fichero se genera un resumen y se cifra únicamente el resumen, por varios motivos:
– Eficiencia: es más eficiente firmar un resumen de tamaño fijo y "pequeño" que largos ficheros de incluso varios
GiB.
– Integridad: al firmar un resumen, éste no debe fraccionarse previamente
– Compatibilidad: los resúmenes siempre tienen el mismo tamaño y formato (para cada algoritmo de resumen) y es
más fácil implementar algoritmos de firma sobre ellos
– Múltiples firmas: al mantener el mensaje original sin cifrar y firmar (cifrar un resumen) un mismo archivo puede
ser firmado por diferentes entidades
– Firmado de datos públicos: El fichero original puede ser público (no necesita cifrarse) y basta con cifrar un
resumen del mismo para garantizar su integridad y origen.
A cambio se introduce un nuevo punto de fallo (el algoritmo de resumen, que puede ser sensible a colisiones).
Además los protocolos de firma agregan mecanismos de estampado de tiempo, lo que aporta no-repudio a la
comunicación, es decir el emisor no puede negar que es quién ha creado el mensaje si la clave no había sido
comprometida con anterioridad.
Por tanto los protocolos de firma se componen de un algoritmo de cifrado de clave pública, un algoritmo de resumen y
mecanismos de estampado de tiempo. En vez de algoritmos de clave asimétrica se pueden utilizar un algoritmo de clave
simétrica con clave pre-compartida para realizar el cifrado.
Cuando se firman mensajes de comunicación dentro de un protocolo seguro, las firmas generadas se conocen como
"código de autenticación de mensaje"(MAC o kHMAC keyed-Hash Message Authentication Code).
Comunicación segura
Cuando dos partes desean comunicarse de manera segura han de enviar sus mensajes cifrados, lo que permite garantizar
la confidencialidad de la comunicación, es decir que solo quienes dispongan de la clave podrán entender el mensaje.
Además han de utilizarse técnicas de firmado para garantizar la integridad y autenticidad del mensaje.
Estas tres garantías (Autenticidad, Confidencialidad e Integridad) definen una comunicación segura.
http://guimi.net 66 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
Por tanto para establecer una comunicación segura las dos partes establecen una negociación en la que acuerdan el uso
de un algoritmo de cifrado simétrico -son los más rápidos-, una clave para el algoritmo -que puede ir variando con el
tiempo- y un sistema de firmado (mediante claves asimétricas o clave simétrica pre-compartida que también tendrán
que acordar). Una vez realizada la negociación y establecidos los parámetros de una comunicación segura se dice que se
ha establecido una asociación de seguridad (SA: Security Association).
Si ambas partes de la comunicación utilizan algoritmos asimétricos reversibles y disponen de la clave pública de la otra
parte pueden realizar la negociación de manera segura usando un medio inseguro. Para ello el remitente debe firmar sus
mensajes con su clave privada y utilizar la clave pública del destinatario para cifrar los mensajes que le envía.
Para que una parte otorgue validez a un certificado de nuevo necesita conocer la clave pública de la entidad
certificadora persistiendo el problema original. Por ello en última instancia las entidades certificadoras distribuyen su
clave pública lo máximo posible mediante medios fiables, incluso en la propia instalación de los sistemas operativos y
aplicaciones, por medio de certificados autofirmados. Además las entidades certificadoras deben certificarse unas a
otras y crear listados de revocación de claves (para anular la validez de claves certificadas en su periodo de validez por
haber quedado comprometidas).
Si no se dispone de PKI las partes deben acordar una clave para el algoritmo de cifrado simétrico sin llegar a
comunicársela y sin que un tercero a la escucha pueda deducirla ya que entonces tendría capacidad para entender toda la
comunicación. Este problema se conoce como "intercambio de claves" aunque, como se ha dicho, en realidad lo que se
hace no es intercambiar una clave sino acordar una clave entre las partes.
Alternativamente las redes de confianza se basan en que cada usuario firme las claves públicas de usuarios de su entera
confianza, que a su vez firman las claves públicas de otros exponencialmente, creando una red de claves públicas de
confianza. Para obtener redes amplias y de calidad los usuarios deben conseguir que muchos terceros firmen su clave
pública y, esto es muy importante, firmar solo la clave pública de terceros de confianza.
http://guimi.net 67 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
Intercambio Diffie-Hellman
El principal esquema teórico para acordar claves se conoce como intercambio Diffie-Hellman53 (DH). Este esquema se
basa, igual que la criptografía de clave pública en funciones cuya reversible es difícil de calcular.
Su funcionamiento se puede ver en el siguiente ejemplo con la función "ga mod p=s":
Un extremo "Ana" quiere acordar una clave con "Bob" por un canal en el que escucha "Eva".
Ana informa a Bob (y a Eva) de que va a utilizar "g=5" y "p=23". En la práctica "g" suele ser 2 o 5, pero "p" debe ser
un número primo de al menos 300 dígitos.
Entonces Ana elige un número aleatorio "a=6" (en la práctica "a" debe ser un número de al menos 100 dígitos),
calcula "56 mod 23=8" y envía a Bob (y a Eva) el resultado (8).
Bob elige un número aleatorio "b=15" (que como el número aleatorio "a" de Ana debe ser en la práctica de al menos
100 dígitos), calcula "515 mod 23=19" y envía a Ana (y a Eva) el resultado (19).
Con estos datos Ana calcula que la clave acordada con Bob es "196 mod 23=2". Bob calcula que la clave acordada
con Ana es "815 mod 23=2". Nótese que solo Ana conoce "a" y solo Bob conoce "b" pero ambos calculan el
mismo valor para la clave "s=2".
Eva para conocer la clave acordada "s" sin conocer ni "a" ni "b" debería resolver el sistema de ecuaciones
● 5a mod 23=8
● 5b mod 23=19
● 19a mod 23=8b mod 23=s
lo cual, con las restricciones dadas para los valores de "p", "a" y "b", actualmente es irresoluble computacionalmente.
Este ataque de hombre-en-medio permite no solo conocer la información intercambiada sino también alterarla enviando
al destinatario mensajes o ficheros totalmente diferentes de los enviados por el remitente original.
El uso de PKI con claves públicas certificadas por las partes hace innecesario el esquema DH. Pero ¿qué ocurre cuando
un cliente sin certificado quiere comunicarse de manera segura con un servidor con certificado? Es decir ¿y si solo una
de las partes usa PKI para certificar su autenticidad?
53 El esquema fue publicado por Whitfield Diffie y Martin Hellman en 1976.
http://guimi.net 68 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
En estos casos se utiliza el intercambio DH y el servidor firma todos sus mensajes. Esto hace que el hombre-en-medio
pueda alterar los mensajes solo en una dirección (cliente sin certificar → servidor). Haciéndolo podría engañar al
servidor pero no al cliente, con lo que la comunicación cliente-servidor no se establecería. Si no se altera ningún
mensaje, como hemos visto, cliente y servidor podrán acordar una clave sin que ningún tercero sea capaz de
averiguarla.
9.2. Algoritmos
Como hemos comentado existen tres tipos básicos de algoritmos:
● Cifrado simétrico. Permiten cifrar y descifrar mensajes mediante una misma clave.
● Cifrado asimétrico -algoritmos de clave pública y privada-. Estos algoritmos utilizan dos claves diferentes
para cifrar y descifrar mensajes. Una de las claves se publica y la otra se mantiene privada.
● Resumen -"Digest", "Hash", "Cheksum"-. No son algoritmos de cifrado sino que generan un resumen que
permite verificar la integridad del fichero o mensaje pero no permite obtener el original.
DES y 3DES
El algoritmo DES (Data Encryption Standard) creado en 1976 requiere una clave de 64 bits, de los cuales utiliza
únicamente 56 bits siendo los otros 8 un control de paridad.
Para mejorar la seguridad se creo Triple DES (TDES o 3DES), que consiste en utilizar tres veces DES, cifrando y/o
descifrando con una, dos o tres claves diferentes. Así DES-EEE1 cifra tres veces con la misma clave, mientras que
DES-EDE3 cifra-descifra-cifra con tres claves diferentes (al usar para "descifrar" una clave diferente que para cifrar, en
realidad se complica el cifrado). Las variantes más seguras son DES-EEE3 y DES-EDE354.
Si se utilizan 3 claves diferentes la longitud de la clave usada es de 168 bits (56x3) pero la seguridad efectiva55 es de
112 bits.
3DES es un algoritmo seguro pero lento, que permitió seguir utilizando dispositivos creados para DES. Sin embargo
está siendo sustituido por AES (Advanced Encryption Standard).
AES
AES (Advanced Encryption Standard) es uno de los algoritmos más utilizados, ya que se convirtió en estándar en 2002.
Utiliza un tamaño de bloque de 128 bits y claves de 128, 192 o 256 bits. AES es rápido tanto por software como por
hardware, es relativamente sencillo de implementar y requiere poca memoria en el proceso.
RCx
RC4 (Rivest Cipher o Ron's Code) era el algoritmo de cifrado por software más utilizado en parte por ser el algoritmo
utilizado por SSL y WEP. Este algoritmo utiliza un sistema de cifrado de flujo (stream cipher) no de trasposición de
bloques. Esto hace que sea rápido y sencillo. Sin embargo este algoritmo es fácilmente atacable si la clave de flujo
(keystream) no se descarta, o no es aleatoria o cambia en relación a la clave anterior o se usa varias veces la misma.
Utiliza una clave de entre 40 y 256 bits y no se recomienda su uso ya que no aporta seguridad suficiente.
RC4 ha sido sustituido por RC5 y RC6 que utilizan trasposición de bloques. RC6 utiliza un tamaño de bloque de 128
bits y claves de 128, 192 o 256 bits (como AES), aunque puede parametrizarse con otros valores.
ARCFour (Alleged RC4) es un algoritmo libre al parecer compatible con RC4 (algoritmo patentado y cerrado).
IDEA
IDEA (International Data Encryption Algorithm) es un algoritmo de trasposición de bloques de 64 bits con clave de
128 bits. Se usa en PGPv2 (Pretty Good Privacy) y es opcional en OpenPGP dado que está sujeto a licencia en algunos
paises.
http://guimi.net 69 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
La primera versión de RSA (RSA base) no es suficientemente segura. En cambio "RSA Security" publica los PKCS
(Public Key Cryptography Standards)56 que definen los detalles de las implementaciones de RSA, y esquemas
criptográficos de seguridad, incluyendo certificados, etc.
Se basa en la función "me mod n=s" con amplias restricciones para cada parámetro utilizado.
La clave pública se compone de "n" (n=pq) y "e" (e=mínimo común múltiplo(p-1,q-1)). La clave privada
es un número "d" que cumple "de≡1 (mod φ(n))"57 ("p" y "q" son números primos grandes).
Dado un número cualquiera "m" (el mensaje a cifrar) se obtiene el número "c" (mensaje cifrado) "c≡me (mod n)". A
partir de "c" (mensaje cifrado), "d" (clave privada) y "n" (parte de la clave pública) se puede obtener "m" (el mensaje
original sin cifrar) mediante "m≡cd (mod n)".
El cifrado ElGamal (1984) es otra implementación, pero se basa en logaritmos discretos. Se utiliza en GPG y PGP.
DSA (Digital Signature Algorithm) es un algoritmo de clave asimétrica no reversible adoptado en 1993 para el estándar
DSS (Digital Signature Standard)58. Como su nombre indica, sirve para firmar, no para cifrar información -dado que no
es reversible-. Se basa en la dificultad de calcular logaritmos discretos en campos finitos -métodos de Schnorr y
ElGamal-.
DSA primero selecciona un algoritmo de resumen (generalmente uno de la familia SHA) y una longitud de clave
(inicialmente un múltiplo de 64 entre 512 y 1024, pero actualmente 1024, 2048 o 3072).
Utiliza la función "g = h(p–1)/q mod p" y "y = gx mod p" con varias restricciones sobre los parámetros, siendo
(p,q,g,y) la clave pública y (x) la clave privada.
ECDSA (Elliptic Curve DSA) es una variante de DSA que utiliza CCE. En teoría es mucho más seguro que DSA y
genera firmas del mismo tamaño.
MD5 (Message-Digest algorithm 5) es una función de resumen ampliamente difundida que genera resúmenes de 128
bits, expresada habitualmente como un número hexadecimal de 32 digitos. Actualmente se pueden generar colisiones
arbitrariamente60 por lo que está empezando a ser sustituido.
Los algoritmos SHA (Secure Hash Algorithm) son un conjunto de funciones (SHA-0, SHA-1 y SHA-2). SHA-1 es la
versión más empleada y se utiliza entre otros en SSL y TLS, PGP, SSH, S/MIME e IPSec. SHA-1 genera resúmenes de
160 bits y se han encontrado debilidades teóricas.
Por su parte SHA-2 utiliza un algoritmo muy similar a SHA-1 pero genera resúmenes de tamaño variable conociendose
las variantes como SHA-224, SHA-256, SHA-384 y SHA-512. Debido a las debilidades teóricas expuestas en SHA-1, y
por tanto SHA-1, está en desarrollo SHA-3.
56 PKCS#1 (v 2.1) define el esquema RSA; PKCS#3 (v. 1.4) define el intercambio DH. Hasta PKCS#15 (algunos obsoletos) que definen varios
esquemas más de seguridad criptográfica.
57 Relación de congruencia entre "de" y "1" con módulo "φ(n)". Es decir "de mod φ(n) = 1 mod φ(n)".
58 Aunque ha sufrido también algunas modificaciones desde entonces.
59 P.e. la letra del NIF se calcula a partir del DNI.
60 Crear un archivo que genere el mismo resumen y por tanto permita sustituir al archivo original.
http://guimi.net 70 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
El protocolo SRP (Secure Remote Password) es un protocolo de acuerdo de clave basado en la autenticación por clave
de una de las partes (cliente). Este protocolo acuerda una clave privada de manera similar a DH y después verifica que
las dos partes tienen la misma clave y ambas conocen la clave del usuario (cliente).
La versión MS-CHAP además permite al usuario cambiar la clave, permite autenticación mutua entre pares y no
requiere que ambas partes conozcan la clave en claro, sino un resumen (Hash) de la misma.
PPP (Point-to-Point Protocol) utiliza CHAP para autenticar a los usuarios.
http://guimi.net 71 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
Kerberos
Kerberos es un protocolo de autenticación de partes cliente-servidor que permite autenticar ambas partes sobre un
medio inseguro. Se basa en cifrado simétrico (DES) y un tercero en quien confían ambas partes (KDC Key Distribution
Center). Este tercero provee las funciones de autenticación (AS: Authentication Server) y despacho de etiquetas (TGS:
Ticket Granting Server). Todas las partes deben autenticarse en el AS. Algunas extensiones de Kerberos permiten el uso
de PKI. La versión 5, vigente, permite el uso de AES en vez de DES.
Todos los equipos gestionados por un servidor forman un dominio o territorio Kerberos (realm).
Supongamos que Ana quiere solicitar un servicio de Bob y el KDC es Carlos. Tanto Ana como Bob deben ser
conocidos por Carlos (tener un usuario y contraseña).
Primero Ana solicita a Carlos autenticarse mediante un mensaje en claro. Carlos le envía a Ana dos mensajes. El
primer mensaje se llama TGT ("Ticket-Granting Ticket") y está cifrado con una clave privada de Carlos
(indescifrable para Ana). El TGT incluye el identificador de Ana, el periodo de validez de la sesión y la clave de
sesión Ana-Carlos.
El segundo mensaje que le envía Carlos a Ana es la "etiqueta de sesión Ana-Carlos" que contiene una clave de sesión
Ana-Carlos y está cifrado con la clave de Ana. Al estar cifrado con la clave de Ana solo ella podrá acceder a la clave
de sesión Ana-Carlos. Si Ana es capaz de usar la clave de sesión Ana-Carlos está autenticada.
Una vez autenticada Ana debe solicitar a Carlos el uso del servicio de Bob. Para hacer la solicitud envía a Carlos un
mensaje con el TGT y el identificador del servicio de Bob al que quiere acceder. Además Ana envía un mensaje
"Autenticador" que contiene su identificador y una marca de tiempo, cifrado con la clave de sesión Ana-Carlos.
Carlos utiliza su clave secreta para descifrar el TGT y obtener la clave de sesión Ana-Carlos. Con la clave de sesión
Ana-Carlos descifra el "Autenticador" y lo da por válido (pues solo Ana lo ha podido enviar ya que es la única que
conoce la clave de sesión Ana-Carlos).
Carlos verifica si Ana tiene permiso para acceder al servicio de Bob y en ese caso le envía a Ana dos nuevos
mensajes. Un mensaje contiene una nueva clave de sesión Ana-Bob cifrada con la clave de sesión Ana-Carlos (que
Ana puede descifrar).
Otro mensaje "petición de servicio" contiene los datos de Ana (identificador, periodo de validez) y la clave de sesión
Ana-Bob cifrados con la clave de Bob (indescifrable para Ana).
Ana envía entonces a Bob el mensaje "petición de servicio" tal y como se lo envió Carlos.
Además le envía un nuevo mensaje "Autenticador" con su identificador y una marca de tiempo cifrado con la clave
de sesión Ana-Bob.
Bob descifra con su clave secreta el mensaje "petición de servicio", lo que le garantiza que la petición proviene de un
cliente autenticado (pues lo ha generado Carlos), y obtiene la clave de sesión Ana-Bob.
Con la clave de sesión Ana-Bob descifra el "Autenticador" suma uno a la marca de tiempo y lo devuelve a Ana, de
nuevo cifrado por la clave de sesión Ana-Bob.
Ana descifra el "Autenticador" y verifica que la marca de tiempo es la que había indicado más uno, lo que sirve para
autenticar a Bob.
NTLM
NTLM es un protocolo de autenticación similar a MS-CHAP, basado en retos sobre los datos de usuario. Utiliza
algoritmos MD4/MD5, SHA y DES para los cálculos.
NTLMv2 utiliza HMAC-MD5 y separa el control de sesión en el protocolo NTLM-session (similar a MS-CHAPv2).
Aunque el protocolo Kerberos ha sido adoptado por Microsoft para la autenticación en el directorio activo, todavía
utiliza NTLM en determinadas circunstancias:
● Si el cliente se autentica usando una dirección IP.
● Si el cliente se autentica en un servidor de otro bosque del directorio activo o no pertenece a ningún dominio o
no existe ningún dominio.
● Si un cortafuegos corta los puertos necesarios para usar Kerberos.
http://guimi.net 72 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
El sistema RADIUS (Remote Authentication Dial-In User Service) permite decidir la concesión de acceso a partir de
una combinación de datos como la identidad del usuario, la pertenencia a un grupo, la hora del día, la fecha, el nivel de
cifrado soportado, el tipo de túnel... Además permite la asignación de parámetros de conexión, como algoritmos de
seguridad obligatorios.
RADIUS es escalable y permite configurarse para solicitar la autenticación a otro servidor (RADIUS o de otro tipo).
El estándar de IETF (RFCs 2138 y 2139) define el puerto UDP 1812 para autenticación, pero se ha utilizado durante
mucho tiempo el 1645.
Mientras que RADIUS combina la autenticación y autorización en el perfil de usuario, TACAS+ separa las dos
operaciones. Además RADIUS utiliza UDP y TACACS+ utiliza TCP.
SSL y TLS
TLS (Transport Layer Security) es un protocolo estándar basado en SSL (Secure Sockets Layer), desarrollado por
Netscape. TLS permite establecer comunicaciones seguras punto-a-punto por encima de la capa de transporte de la red
(generalmente TCP/IP). TLS otorga autenticación (mediante PKI), confidencialidad e integridad. La autenticación
puede ser unilateral (por ejemplo en un entorno web cliente-servidor) o bilateral, ya sea utilizando PKI, TLS-PSK o
SRP.
Durante el inicio de la comunicación los extremos negocian el algoritmo de cifrado simétrico a utilizar, realizan el
intercambio (o acuerdo) de clave y acuerdan los algoritmos de firma a utilizar. Una vez establecida la comunicación se
utiliza el algoritmo de clave simétrica (con la clave acordada) para cifrar la comunicación y el algoritmo de firma para
generar los códigos de autenticación de los mensajes (MAC: Message Authentication Codes o kHMAC).
Los algoritmos más utilizados en TLS son:
– Para intercambio de claves: RSA, Diffie-Hellman, ECDH, SRP, PSK
– Para autenticación de las partes: RSA, DSA, ECDSA
– Para cifrado: Triple DES, AES, IDEA
– Para firma de mensajes: HMAC-MD5 (SSLv2 en desuso) o HMAC-SHA (SSLv3).
IKE
IKE (Internet Key Exchange) o IKEv2 (la versión 1 es obsoleta) permite la creación de conexiones de seguridad que
utiliza DH para el intercambio de claves y PSK, PKI o Kerberos para la autenticación de las partes. Permite negociar el
cifrado simétrico y la firma de mensajes.
IKE funciona sobre UDP y, entre otros, es utilizado por ISAKMP y EAP-IKE.
http://guimi.net 73 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
WPA (Wi-Fi Protected Access) comenzó a utilizarse en 2003. Esta especificación se basaba también en RC4 con PSK
pero utiliza TKIP (Temporal Key Integrity Protocol) para mejorar la seguridad. TKIP realiza un control de integridad de
los paquetes (ya que en los ataques algunos paquetes se alteraban sin llegarlos a descifrar), un conteo de los mismos y
utiliza una función para obtener la clave de RC4 mezclando la clave de usuario con el vector de inicialización de la red
(en vez de realizar una simple concatenación).
El sistema 802.11i final, conocido como WPA2, apareció en 2004. Permite utilizar nuevos mecanismos de distribución
de la clave (comoEAP), autenticación basada en PSK o en servidores (como servidores RADIUS) y CCMP (basado en
AES) para cifrado. CCMP (Counter-mode with Cipher-block-chaining Message-authentication Protocol), es opcional
en WPA y sustituye totalmente a TKIP y WEP (obsoletos) en WPA2. CCMP utiliza AES tanto para la mantener la
confidencialidad como para verificar la integridad.
La configuración habitual recomendada es WPA2 con clave precompartida (AES-PSK) -en entornos domésticos o
PyMES- o WPA2 con servidores RADIUS (EAP-TLS) en entornos corporativos.
LEAP (Lightweight Extensible Authentication Protocol) es una versión de EAP creada por Cisco que utiliza MS-CHAP
para autenticación de usuarios y actualmente obsoleta por insegura
EAP-TLS es un esquema poco utilizado ya que requiere que ambas partes utilicen PKI (certificados) para su
autenticación. Es universalmente soportado y considerado uno de los más seguros.
EAP-TTLS, conocido a veces únicamente como TTLS (Tunneled Transport Layer Security), es una extensión de EAP-
TLS que permite que una de las partes (cliente) se autentique sin necesidad de certificado PKI. El cliente una vez
autenticado el servidor crea con él un túnel cuyo uso sirve de autenticación del cliente.
EAP-IKEv2 se basa en IKEv2 para autenticar las dos partes cliente-servidor e intercambiar claves. El servidor puede
autenticarse mediante PKI o algoritmos de clave simétrica. El cliente puede autenticarse además mediante una clave de
cliente.
http://guimi.net 74 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
PEAP (Protected EAP) es un estándar de la industria similar a EAP-TTLS. Para autenticar las partes se puede utilizar
PEAPv0 o v1. Microsoft solo implementa PEAPv0. Para autenticar a los clientes en el servidor se puede utilizar EAP-
MSCHAPv2, EAP-TLS, EAP-GTC o EAP-SIM.
La versión más extendida y utilizada, que se conoce símplemente como PEAP, es PEAPv0/EAP-MSCHAPv2.
SSH
SSH es un protocolo cliente-servidor que permite la conexión segura con máquinas remotas para abrir sesiones y
ejecutar comandos, crear túneles o reenviar puertos TCP y conexiones X11. Además puede trasferir ficheros mediante
los protocolos asociados SFTP y SCP. El servidor generalmente escucha en el puerto TCP 22.
SSH-1 es un protocolo monolítico, mientras que SSH-2 es un protocolo de 4 capas: Una de transporte (que incluye el
intercambio de claves, cifrado, compresión e integridad), Una de autenticación de usuario (mediante contraseña, clave
pública, Kerberos y otros), Una de conexión (que permite múltiples canales en una sola conexión) y una llamada
"SSHFP DNS" que se encarga de las firmas de los servidores ("host key fingerprints").
SSH-2 inicialmente utilizaba solo DSA como algoritmo de autenticación de equipos (y opcionalmente usuarios) y el
intercambio DH para acordar la clave del algoritmo simétrico. Dado que actualmente RSA ha pasado a dominio público
también puede utilizarse en OpenSSH para la autenticación de equipos y usuarios y el intercambio de claves.
SSH utiliza el cifrado asimétrico para la autenticación del servidor y el intercambio de claves (RSA o DSA + DH); el
cifrado simétrico para la confidencialidad y los resúmenes para la integridad (mediante MACs: Message Authentication
Codes). Además permite comprimir los paquetes para mejorar el rendimiento de la conexión.
SSH-1 SSH-2
Cifrado asimétrico RSA RSA, DSA, DH
Cifrado simétrico 3DES, Blowfish, IDEA 3DES, AES, Blowfish, CAST-128, Twofish, IDEA
Resumen MD5, CRC-32 MD5, SHA-1
Compresión zlib zlib
SSH nació como software libre pero cambió a privado como SSH-2 tras la versión 1.2.12. OpenSSH se desarrolló a
partir de la última versión libre disponible. Más tarde SSH-2 se propuso como estándar de Internet. OpenSSH incluye:
● sshd, servidor
● ssh, cliente que reemplaza a rlogin y telnet para conectar con máquinas remotas
● scp y sftp, clientes que reemplazan respectivamente a rcp y ftp para copiar ficheros entre máquinas
● ssh-keygen, herramienta para generar y verificar las claves RSA y DSA utilizadas para la autenticación de
equipos y usuarios.
● ssh-agent y ssh-add, utilidades para facilitar el uso y administración de claves públicas y privadas.
● ssh-keyscan, herramienta para analizar las claves de un servidor
61 GPG permite utilizar IDEA, mediante un "plug-in" sujeto a restricciones de licencia según países.
http://guimi.net 75 / 99
Redes de comunicaciones 9. SEGURIDAD EN REDES
Analizadores de red
Estas herramientas buscan equipos en la red, hacen barridos de puertos y descubrimiento de servicios, analizando los
resultados para inferir información, como versión y tipo de sistema y/o servicios, y exponer deficiencias de seguridad.
Algunos de los más utilizados son nmap, SATAN y SAINT.
Analizadores de seguridad
Otro tipo de herramientas se utiliza para analizar un equipo y localizar todo tipo de posibles problemas de seguridad.
Permite detectar y exponer aplicaciones conocidas por su fragilidad, configuraciones particulares inseguras, uso de
claves predefinidas y múltiples bugs y sus exploits.
Nessus es una aplicación gratuita para uso no comercial (en origen era libre). Sus desarrolladores producen decenas de
nuevos análisis de vulnerabilidades a la semana. Estos análisis -llamados "plug-ins"- se publican para su uso gratuito
una semana después de su puesta a disposición de los clientes de pago.
OpenVAS -inicialmente gnessus- es un analizador libre que nació como una ramificación del último Nessus libre. Los
análisis de vulnerabilidades son llamados NVTs (Network Vulnerability Tests).
Analizadores de paquetes
Los analizadores de paquetes captan todos los paquetes que llegan a la tarjeta de red (NIC) configurándola en modo
promiscuo. Después facilitan el análisis de dichos paquetes de red según los protocolos utilizados en los paquetes.
El más utilizado es WireShark, inicialmente llamado Ethereal, que dispone de interfaz gráfica. Otro analizador bastante
utilizado es tcpdump, disponible solo en modo comando, aunque existen frontispicios gráficos como WinDump.
Descubrimiento de claves
Los programas de descubrimiento de claves analizan listados de claves cifradas o resumidas (mediante algoritmos como
MD4) para intentar descubrirlas.
La herramienta más utilizada es "John The Ripper", que es libre. JTR autodetecta el tipo de resumen de la clave y puede
atacar claves de multitud de algoritmos como DES, MD5, Blowfish, Kerberos o LM Hash (Windows) tanto en ficheros
de texto como en repositorios sobre LDAP o MySQL. Puede trabajar con ataques de diccionario y alteraciones o
mediante fuerza bruta usando tablas de caracteres frecuentes para marcar el orden.
http://guimi.net 76 / 99
Redes de comunicaciones 10. TRANSMISIÓN MULTIMEDIA EN REDES IP
Los equipos tradicionales de vídeo-conferencia sobre RDSI (H.320) están formados por un ordenador con un códec
hardware (H.26x) y una conexión RDSI, al que se le acopla un monitor de televisión y una serie de dispositivos de
entrada/salida de altas prestaciones, tales como cámaras activadas por la voz, cámaras de documentos, micrófonos
direccionales, micrófonos de ambiente, un sistema de altavoces de alta calidad, etc. Además incorporan sofisticados
sistemas de supresión de eco para mejorar la calidad del sonido. Sin embargo su capacidad de multi-conferencia está
limitada a un máximo de 5 usuarios por conexión RDSI, ya que con un flujo entrante y cuatro salientes se ocuparía toda
la capacidad del acceso RDSI primario.
En el caso de H.323 la situación es similar salvo que se utiliza redes IP (principalmente Internet) en vez de RDSI. En
muchos casos los terminales H.323 ofrecen una calidad inferior comparados con los H.320 debido al tipo de
componentes utilizados: cámaras digitales de baja calidad, micrófonos baratos, carecen de supresión de eco, etc.
Si bien la familia de protocolos H.323 se diseñó para videoconferencia, los terminales H.323 implementan
obligatoriamente únicamente un canal de audio y el resto de canales son opcionales. Por ello es posible utilizar H.323
para telefonía IP que utiliza únicamente Voz sobre IP (VoIP: Voice over IP) para realizar llamadas telefónicas
tradicionales utilizando como terminales tanto equipos informáticos como teléfonos de la RTC.
Algunas ventajas de la telefonía IP son:
● Las llamadas de VoIP entre equipos de red IP no tienen coste adicional. El coste de una llamada de VoIP a la
RTC se calcula en base a la ubicación de la pasarela utilizada (llamada local, nacional...) sin coste extra.
● Las llamadas pueden ser dirigidas a un terminal IP independientemente de su ubicación física real.
● Los terminales de VoIP pueden integrarse con otros servicios multimedia y de intercambio de datos.
● Dispone de múltiples servicios digitales: contestador automático, desvío de llamadas inteligente, bloqueo de
llamadas salientes, filtrado de llamadas entrantes, multi-conferencia, marcación abreviada, extensiones
virtuales, facturación de llamadas en tiempo real, identificador de llamada entrante, llamada en espera,
transferencia de llamada en curso...
Sin embargo H.323 resulta excesivamente complejo en algunos aspectos para utilizarlo solo como VoIP. Esto motivó
que la IETF desarrollara un protocolo alternativo denominado SIP (Session Initiation Protocol), con la intención de ser
un estándar más sencillo y orientado a telefonía IP.
Más específicamente SIP está orientado a la iniciación, modificación y finalización de sesiones interactivas de usuario
donde intervienen elementos multimedia. Así se utiliza para videoconferencias, mensajería instantánea, juegos en red...
En resumen actualmente H.323 y SIP realizan básicamente las mismas funciones, si bien son protocolos incompatibles.
Para permitir la interconexión de redes existen pasarelas entre H.323 y SIP.
Aunque los protocolos multimedia más antiguos y utilizados son H.323 y SIP, existen otro muchos62. De la elección de
uno u otro dependerá la eficacia y la complejidad de la comunicación.
62 Por orden de antigüedad (de más antiguo a más nuevo): H.323 (ITU-T), SIP (IETF), Megaco, Skinny CCP (Cisco), MiNet (Mitel), CorNet-IP
(Siemens), IAX (Asterisk -obsoleto-), Skype (Skype), IAX2 (Asterisk), Jingle (abierto, Jabber), Telme (Woip2) y MGCP (Cisco).
http://guimi.net 77 / 99
Redes de comunicaciones 10. TRANSMISIÓN MULTIMEDIA EN REDES IP
http://guimi.net 78 / 99
Redes de comunicaciones 10. TRANSMISIÓN MULTIMEDIA EN REDES IP
Componentes
Terminal
Un terminal es un extremo de la red que proporciona comunicaciones bidireccionales en tiempo real con otro terminal,
con una pasarela (gateway) o con una unidad de control multipunto (MCU). Esta comunicación consta de señales de
control, indicaciones, audio, vídeo y/o datos entre los dos terminales. Conforme a la especificación, un terminal debe
proporcionar audio (voz) y opcionalmente puede proporcionar más canales de audio (por ejemplo para emitir en
varios idiomas), datos o vídeo. Además del códec de audio puede disponer de un códec específico para voz humana.
Generalmente el terminal receptor se encarga de incluir el retardo necesario en las tramas para obtener una buena
sincronización. Por ejemplo retardando las tramas de audio para mantener la sincronización con las tramas de vídeo.
Guardián (Gatekeeper)
La función del guardián es gestionar una “zona de control” que consiste en un conjunto de equipos registrados
(terminales, pasarelas y MCUs). Para las comunicaciones entre el guardián y los equipos de su zona se utiliza el
protocolo RAS (Registro, Admisión, Situación).
Las funciones principales del guardián son:
● Gestión de la zona: Lleva a cabo el registro y la admisión de los equipos de su zona.
● Traducción de direcciones E.164: Existen varias formas de asignar direcciones E.164 a terminales H.323,
siendo la más universal la asignación de números de extensión.
● Gestión del ancho de banda: Asignación de ancho de banda a terminales, pasarelas y MCUs, de manera que se
garantice ancho de banda suficiente, o rechazo de la conexión (red saturada).
Pasarela (Gateway)
Una pasarela es un extremo que proporciona comunicaciones bidireccionales en tiempo real entre terminales de la red
IP y otros terminales o pasarelas en una red conmutada. Además de realizar la conversión de protocolo puede realizar
opcionalmente una conversión de formatos de audio y vídeo (transcodificación).
Una organización puede disponer de pasarelas a redes de telefonía móvil y de telefonía fija distribuidas por todo el
mundo de tal manera que una llamada a la red convencional se realice desde la pasarela más conveniente.
Un ejemplo de pasarela (y guardián) es Asterisk (es tanto pasarela como PBX completo tanto para H.323 como SIP).
http://guimi.net 79 / 99
Redes de comunicaciones 10. TRANSMISIÓN MULTIMEDIA EN REDES IP
Las MCUs no son la única forma de realizar conferencias multipunto. Una alternativa muy interesante la constituye el
uso de transmisión multicast, por ejemplo mediante el uso de la red MBone de Internet. En este caso en vez de
encargarse un equipo de replicar los flujos de audio-vídeo es la propia red (más concretamente los encaminadores) la
que se ocupa de replicar los paquetes en los puntos donde se producen las bifurcaciones del árbol multicast. Los
estándares H.323 no contemplan la transmisión multicast, por lo que los terminales H.323 no pueden participar en este
tipo de conferencias.
Existe una gran cantidad de usuarios que no tienen acceso a la red MBone, bien porque su proveedor de acceso no
soporta encaminamiento multidifusión o porque la velocidad de su conexión no hace viable o interesante activar
encaminamiento multicast. La solución es instalar en la red multicast una pasarela bidireccional que convierta el flujo
multicast en flujos unicast y viceversa, generando un flujo diferente para cada usuario unicast. Los flujos unicast
pueden ser transcodificados o no.
Desde el punto de vista de eficiencia la pasarela debería estar en el borde de la red multicast y tan cerca como sea
posible de los usuarios unicast, ya que de este modo se aprovecha al máximo la optimización que supone la transmisión
multicast.
Otro elementos
Los proveedores de servicios pueden tener dentro de su red cientos de pasarelas, teléfonos, terminales multimedia... En
esos casos es útil dividir la red en zonas, por ejemplo por ciudades. A un conjunto de zonas controladas por una sola
organización se le llama “dominio administrativo”.
Dentro de un dominio administrativo puede existir elementos llamados de borde o de frontera (Border element) que
centralizan las comunicaciones con elementos de borde de otros dominios administrativos. Estas comunicaciones
pueden incluir autorizaciones de acceso, información de costes de conexión y uso, y otros datos de gestión.
Además, dentro de un dominio pueden existir elementos (Peer elements) que ayuden a propagar a los guardianes la
información útil sobre los elementos de bordes del propio dominio y de otros dominios.
http://guimi.net 80 / 99
Redes de comunicaciones 10. TRANSMISIÓN MULTIMEDIA EN REDES IP
1. ESTABLECIMIENTO
- Uno de los terminales se registra en el guardián utilizando
el protocolo RAS (mensajes ARQ y ACF).
- Mediante el protocolo H.225 se manda un mensaje de
inicio de llamada (SETUP) con los datos (IP y puerto) de
llamante y llamado.
- El terminal llamado contesta con CALL PROCEEDING.
- El segundo terminal tiene que registrarse con el guardián
de manera similar al primer terminal.
- ALERTING indica el inicio de generación de tono.
- CONNECT indica el comienzo de la conexión.
2. SEÑALIZACIÓN DE CONTROL
- Se abre una negociación mediante el protocolo H.245,
para establecer quién será maestro y quién esclavo, las
capacidades de los participantes y los códecs de audio y
vídeo a utilizar. Como punto final de esta negociación se
abre el canal de comunicación (direcciones IP, puerto).
4. DESCONEXIÓN
- Cualquiera de los participantes activos puede iniciar el
proceso de finalización de llamada mediante mensajes
CloseLogicalChannel y EndSessionComand de H.245.
- Posteriormente utilizando H.225 se cierra la conexión con
el mensaje RELEASE COMPLETE
- Por último se liberan los registros con el guardián
utilizando mensajes del protocolo RAS.
http://guimi.net 81 / 99
Redes de comunicaciones 10. TRANSMISIÓN MULTIMEDIA EN REDES IP
Aunque originalmente SIP tenía como objetivo la simplicidad, en su estado actual se ha vuelto tan complejo como
H.323. El protocolo SIP permite el establecimiento de sesiones multimedia, implementa funciones típicas de telefonía
(llamar a un número, provocar que un teléfono suene al ser llamado, escuchar la señal de tono o de ocupado), permite el
establecimiento de sesiones multipunto, permite que un usuario esté registrado en diferentes ubicaciones (pudiendo
realizar la búsqueda en paralelo o secuencial entre todas ellas).
SIP es similar a HTTP, comparte muchos códigos de estado (como 404: “no encontrado”) y comparte con él algunos de
sus principios de diseño: es legible por humanos y sigue una estructura de petición-respuesta basado en el modelo
cliente-servidor. Las respuestas llevan un código de estado que brindan información acerca de si las peticiones fueron
resueltas con éxito o si se produjo un error. La petición inicial y todas sus respuestas constituyen una transacción.
Aunque dos terminales SIP puedan comunicarse sin intervención de infraestructuras SIP (razón por la que el protocolo
se define como punto-a-punto o entre pares -p2p-), este enfoque es impracticable para un servicio público. En ese caso
requiere de servidores intermediarios (proxy), elementos de registro y servidores de localización (DNS), utilizando un
núcleo de red sencillo (y altamente escalable) con inteligencia distribuida en los extremos de la red, incluida en los
terminales (ya sea mediante hardware o software).
El protocolo SIP diferencia entre dirección física (denominada "dirección de contacto"), que depende de la IP desde la
que se conecte el usuario, y dirección lógica que es invariable para cada usuario. Al igual que en el correo-e, las
direcciones lógicas de SIP tienen la forma usuario@dominio, gestionando cada dominio una compañía o proveedor de
servicios de comunicaciones a través de un servidor (o varios).
Es habitual también, que exista un servidor que reciba las peticiones originadas por los usuarios de un dominio hacia
otros dominios. Este recibe el nombre de Servidor Saliente.
http://guimi.net 82 / 99
Redes de comunicaciones 10. TRANSMISIÓN MULTIMEDIA EN REDES IP
Componentes
Agentes de Usuario (Terminales)
Son los puntos extremos del protocolo, es decir son los que emiten y consumen los mensajes del protocolo SIP. Un
videoteléfono, un teléfono, un cliente de software (softphone) y cualquier otro dispositivo similar es para el protocolo
SIP un agente de usuario.
Todos los agentes de usuario se comportan como clientes (UAC: User Agent Clients) y como servidores (UAS: User
Agent Servers).
Algunos terminales por software que soportan charlas de audio y vídeo a través de SIP son Microsoft Windows
Messenger, Apple iChat, AOL Instant Messenger, Ekiga, OpenWengo...
La principal diferencia es que el servidor intermediario forma parte de la comunicación, mientras que el servidor de
redirección una vez que indica al UAC cómo encaminar el mensaje ya no interviene más.
Un mismo servidor puede actuar como redirector o como intermediario dependiendo de la situación.
Esquema de comunicación
En este ejemplo se utiliza servidores, no un sistema entre pares (p2p).
● Un usuario indica a su terminal la dirección lógica de la persona con la que quiere comunicarse.
● El agente de usuario SIP actuando como UAC envía la petición (en este caso con el método INVITE) bien al
servidor de registro local (si la llamada es a un miembro del mismo dominio) bien al servidor intermediario
que tiene configurado como servidor saliente.
○ El servidor intermediario se vale del sistema DNS para determinar la dirección del servidor SIP del
dominio del destinatario. Una vez obtenida la dirección del servidor del dominio destino, encamina hacia
allí la petición.
● El servidor del dominio destino se vale de la información de registro de dicho usuario para establecer su
ubicación física. Si la encuentra encamina la petición hacia dicha dirección.
● El agente de usuario destino, si se encuentra desocupado, comenzará a alertar al usuario destino y enviará una
respuesta hacia el usuario llamante (código 180) que sigue el camino inverso de la comunicación. Cuando el
usuario destinatario finalmente acepta la invitación, se genera una respuesta con un nuevo código de estado
(200) cuya recepción es confirmada por el UAC llamante mediante el método ACK.
● Cuando cualquiera de las partes terminar la sesión, actuando como UAC, envía una petición con el método
BYE.
http://guimi.net 83 / 99
Redes de comunicaciones 10. TRANSMISIÓN MULTIMEDIA EN REDES IP
Normalmente la petición con el método INVITE lleva un cuerpo donde viaja una descripción de la sesión que quiere
establecer, esta descripción es realizada con el protocolo SDP. En ella se indica el tipo de contenido a intercambiar
(voz, vídeo, etc.) y sus características (códecs, direcciones, puertos donde se espera recibirlos, velocidades de
transmisión, etc.). Esto se conoce como "oferta de sesión SDP". La respuesta a esta oferta viaja, en este caso, en el
cuerpo de la respuesta definitiva a la petición con el método INVITE. La misma contiene la descripción de la sesión
desde el punto de vista del destinatario. Si las descripciones fueran incompatibles la sesión debe terminarse (mediante
una petición con el método BYE).
http://guimi.net 84 / 99
Redes de comunicaciones 11. VÍDEO-DIFUSIÓN Y VÍDEO BAJO DEMANDA
Los servicios de vídeo-difusión son de tipo multidifusión (multicast), de forma que diferentes usuarios pueden seguir la
misma emisión, lo que produce un ahorro de recursos. El uso de multidifusión es especialmente adecuado en LAN por
su gran ventaja y sencilla implementación.
Los servicios de vídeo bajo demanda requieren el envío de la información en modo monodifusión (unicast), ya que se
pretende que el receptor tenga un control total sobre el flujo generado, pudiendo por ejemplo parar la imagen o
retroceder.
Los algoritmos de compresión preferidos para este tipo de servicio son los MPEG, ya que permiten conseguir una
eficiencia máxima a cualquier caudal. Para caudales reducidos (0,8 Mb/s e inferiores) el más adecuado es MPEG-4,
pudiéndose utilizar MPEG-2 para obtener una mayor calidad cuando el caudal disponible es de 2 Mb/s o mayor.
Debemos tener en cuenta que el uso de MPEG-4 o MPEG-2 requiere una estación decodificadora potente.
MPEG-1 es una opción interesante para valores intermedios ya que es menos exigente.
En general es aconsejable mantener los caudales utilizados por debajo del 85% del caudal nominal de la conexión para
dar cabida a la información de control que acompaña el tráfico de la aplicación.
La distribución de vídeo en directo es otra aplicación de las redes multimedia. En este caso si se utilizan los algoritmos
de compresión MPEG es necesario disponer de un códec hardware para poder realizar la compresión en tiempo real, y
aun en ese caso el retardo introducido por el proceso de compresión es apreciable. Otra opción es utilizar algoritmos
más sencillos con menor compresión.
http://guimi.net 85 / 99
Redes de comunicaciones 12. ANEXO I – Cortafuegos
La función más básica y fundamental de un cortafuegos es determinar qué tramas deben transitar de una red a otra. El
filtrado se basa en un conjunto de reglas ordenadas y políticas definidas por el administrador. Las acciones más
generales son: aceptar la trama, rechazarla, registrarla, reenviarla o invocar tareas de autenticación. Además la mayoría
de los cortafuegos permite realizar funciones de NAT y de pasarela IP.
El orden de aplicación de las reglas es fundamental.
Las políticas principales indican si las tramas que no encajan en ningún regla de aceptación o rechazo deben ser
aceptadas o rechazadas. La política más segura, y más difícil de configurar, es la de rechazar todo lo que no sea
aceptado expresamente.
El reenvío de tramas permite la instalación en la red de servidores intermediarios transparentes. Así por ejemplo se
pueden redirigir todas las peticiones web a un intermediario web (Web Proxy) o filtrar todo el correo con herramientas
antivirus y/o antispam, sin necesidad de configurar nada en los clientes e incluso sin que éstos se enteren.
Los cortafuegos más básicos filtran paquetes a nivel 3 y a nivel 4 (existen encaminadores con capacidades de filtrado a
nivel 3, pero no se pueden considerar cortafuegos). También existen cortafuegos extendidos que trabajan a nivel de
aplicación (nivel 7) y pueden añadir cifrado, autenticación y traducción de direcciones.
Estos cortafuegos extendidos utilizan más información para posibilitar un mayor refinamiento en la definición de los
objetos a proteger. Esta nueva información se divide en:
● Información relativa al paquete en niveles superiores de la arquitectura; niveles del 4 al 7 (OSI).
● Información del estado actual y pasado de la comunicación.
● Información del estado actual y pasado de las aplicaciones.
Como ejemplo de filtrado basado en información de niveles superiores podríamos hablar de protección de URLs,
recursos, ficheros, usuarios, etc. O dentro de la gestión del estado puede supervisarse el orden en el que se realizan los
diferentes comandos de una conexión ftp: autenticación, apertura de canales, transferencias, etc.
Se puede ver un ejemplo de configuración de un servidor que actúa de pasarela y cortafuegos (iptables) con
intermediario pop3 (P3Scan), antispam (SpamAssassin), antivirus (ClamAV) e intermediario web (Squid) en:
http://www.guimi.net/index.php?pag_id=tec-docs/firewall/fw-instalacion.html
http://guimi.net 86 / 99
Redes de comunicaciones 13. ANEXO II – Comandos para la gestión de red
W:\>arp -a
dig
dig es una herramienta avanzada de sistemas POSIX que obtiene información sobre consultas y servidores DNS.
$ dig guimi.net
;; QUESTION SECTION:
;guimi.net. IN A
;; ANSWER SECTION:
guimi.net. 4345 IN A 212.36.74.190
$ dig -x 212.36.74.190
--> permite hacer búsquedas inversas
host
host es una herramienta de sistemas POSIX que obtiene información sobre consultas y servidores DNS.
$ host guimi.net
$ host -t MX guimi.net
$ host -a guimi.net
$ host 212.36.74.190
--> Respuestas similares a dig
http://guimi.net 87 / 99
Redes de comunicaciones 13. ANEXO II – Comandos para la gestión de red
ifconfig
ifconfig es un comando de los sistemas POSIX que permite configurar y gestionar las interfaces de red. El comando
equivalente en sistemas Windows es ipconfig.
Permite configurar una interfaz (en todos sus detalles, aquí se muestra un ejemplo simple):
# ifconfig eth0 10.0.0.3 netmask 255.0.0.0
ipconfig
ipconfig es un comando de sistemas Windows que muestra información de la configuración TCP/IP en los distintos
interfaces del sistema. Además permite renovar o liberar una configuración DHCP o limpiar la caché de DNS. El
comando equivalente en sistemas POSIX es ifconfig.
Los parámetros más interesantes son:
● “/all” muestra toda la información de todos los interfaces, aunque no estén activos.
● “/release” libera la configuración IP recibida por DHCP.
● “/renew” renueva la configuración IP de DHCP.
● “/flushdns” limpia la caché de DNS.
W:\>ipconfig
Windows IP Configuration
W:\>
W:\>ipconfig /all
Windows IP Configuration
http://guimi.net 88 / 99
Redes de comunicaciones 13. ANEXO II – Comandos para la gestión de red
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : upv.es
nbtscan
nbtscan es un comando de los sistemas POSIX que muestra estadísticas de NetBIOS y conexiones de NetBIOS sobre
TCP/IP. El comando equivalente en sistemas Windows es nbtstat.
$ nbtscan 158.42.222.x
Doing NBT name scan for addresses from 158.42.222.x
$
$ nbtscan -v 158.42.222.x
Doing NBT name scan for addresses from 158.42.222.x
$
$ nbtscan -vh 158.42.222.x
Doing NBT name scan for addresses from 158.42.222.x
http://guimi.net 89 / 99
Redes de comunicaciones 13. ANEXO II – Comandos para la gestión de red
----------------------------------------
MAQUINA01 Workstation Service
MAQUINA01 File Server Service
UPVNET Domain Name
UPVNET Browser Service Elections
UPVNET Master Browser
__MSBROWSE__ Master Browser
nbtstat
nbtstat es un comando de lo sistemas Windows muestra estadísticas de NetBIOS y conexiones de NetBIOS sobre
TCP/IP. El comando equivalente en sistemas POSIX es nbtscan.
Los parámetros más interesantes son:
● “-n” indica que muestre la tabla de nombres del equipo local.
● “-c” indica que utilice la caché del equipo local.
● “-r” verifica que los nombres NetBIOS se resuelven correctamente mediante WINS.
● “-a nombre” o “-A dirección_IP” indica que utilice la tabla de nombres de un equipo remoto.
W:\>nbtstat -n
W:\>nbtstat -c
W:\>nbtstat -r
Resolved By Broadcast = 0
Resolved By Name Server = 4608
Registered By Broadcast = 0
Registered By Name Server = 12
http://guimi.net 90 / 99
Redes de comunicaciones 13. ANEXO II – Comandos para la gestión de red
net
El comando net es uno de los más complejos por la cantidad de opciones diferentes que ofrece, tanto en sistemas
Windows como POSIX. En el caso de Windows agrupa 22 comandos de gestión de redes Windows (net share, net
use...). En el caso de POSIX es una herramienta para administrar servidores Samba y CIFS que en realidad agrupa 19
comandos (net time, lookup, user, group, sam, ...) de forma similar al comando de Windows.
W:\>net
NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |
SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]
W:\>net use <-- Permite ver y modificar las conexiones del sistema
New connections will be remembered.
W:\>net start/stop <-- Permiten iniciar/parar o ver los servicios iniciados del sistema
These Windows services are started:
[...]
Workstation
The command completed successfully.
netdiag
netdiag es un comando de sistemas Windows que no se instala por omisión, pero está disponible en el paquete
“Resource kit”. Permite realiza una serie de pruebas para determinar el estado y la funcionalidad de la red del equipo.
Algunas pruebas interesantes son: Bindings, DcList, DefGw, DNS, IPSec, Kerberos, Route...
netdiag /test:ipsec
netsh
netsh en sistemas Windows permite de forma interactiva o por parámetros configurar la red de un equipo, incluyendo
las interfaces, el cortafuegos, los sistemas ras, wins, dhcp...
W:\>netsh
netsh>help
<-- Se han eliminado la mayoría de lineas de ayuda -->
add - Adds a configuration entry to a list of entries.
firewall - Changes to the `netsh firewall' context.
interface - Changes to the `netsh interface' context.
show - Displays information.
http://guimi.net 91 / 99
Redes de comunicaciones 13. ANEXO II – Comandos para la gestión de red
aaaa bridge dhcp diag firewall interface ipsec ras routing rpc wins winsock
netsh>quit
netstat
netstat muestra estadísticas de uso de TCP-UDP/IP y sus conexiones. Este comando tiene muchas opciones que
además varían de sistemas Windows a sistemas POSIX.
En sistemas Windows los parámetros más interesantes son:
● “-a” muestra las conexiones y los puertos de escucha.
● “-r” muestra la tabla de encaminamiento (igual que el comando route print).
● “-e” muestra estadísticas de Ethernet.
● “-s” muestra estadísticas por protocolo.
W:\>netstat -s
IPv4 Statistics
ICMPv4 Statistics
[...]
TCP Statistics for IPv4
[...]
UDP Statistics for IPv4
[...]
W:\>netstat -e
Interface Statistics
Received Sent
Bytes 3987777529 651861703
Unicast packets 30617810 32440422
Non-unicast packets 136910 9869
Discards 0 0
Errors 0 0
Unknown protocols 26122
W:\>
W:\>netstat -ano
Active Connections
http://guimi.net 92 / 99
Redes de comunicaciones 13. ANEXO II – Comandos para la gestión de red
$ netstat -puta
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:2208 *:* LISTEN -
tcp 0 0 *:vmware-authd *:* LISTEN -
[...]
tcp6 0 0 *:www *:* LISTEN -
tcp6 0 0 *:ssh *:* LISTEN -
[...]
udp 0 0 *:sunrpc *:* -
udp 0 0 *:ipp *:* -
Además en sistemas POSIX netstat sustituye a nivel de usuario a otros comandos que son propios del superusuario.
Por ejemplo route:
$ netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
158.42.xxx.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 158.42.xxx.250 0.0.0.0 UG 0 0 0 eth1
O ifconfig:
$ netstat -inet
Kernel Interface table
eth1 Link encap:Ethernet HWaddr 00:17:9A:xx:xx:xx
inet addr:158.42.xxx.x Bcast:158.42.xxx.255 Mask:255.255.255.0
inet6 addr: fe80::217:9aff:fe39:xxxx/64 Scope:Link
[...]
nmap
nmap es un analizador de puertos disponible en sistemas POSIX y Windows.
Ejemplos de uso:
$ nmap localhost <-- Si no se indican puertos con -p analiza [0-1023]
nmap finished: 1 IP address (1 host up) scanned in 0.209 seconds$ nmap 192.168.1.1
nslookup
nslookup obtiene información sobre consultas y servidores DNS. Se puede utilizar interactivamente o proporcionando
parámetros directamente en la invocación. Se utiliza igual en sistemas Windows y POSIX.
http://guimi.net 93 / 99
Redes de comunicaciones 13. ANEXO II – Comandos para la gestión de red
Non-authoritative answer:
Name: guimi.net
Address: 212.36.74.190
$ nslookup 212.36.74.190
Server: 158.42.250.65
Address: 158.42.250.65#53
Non-authoritative answer:
190.74.36.212.in-addr.arpa name = hc05.cdmon.com.
[...]
pathping
El comando pathping primero muestra los saltos hacia el destino como tracert, a continuación ejecuta varios pings
hacia cada destino y calcula estadísticas.
W:\>pathping
Options:
-g host-list Loose source route along host-list.
-h maximum_hops Maximum number of hops to search for target.
-i address Use the specified source address.
-n Do not resolve addresses to hostnames.
-p period Wait period milliseconds between pings.
-q num_queries Number of queries per hop.
-w timeout Wait timeout milliseconds for each reply.
-4 Force using IPv4.
-6 Force using Ipv6.
http://guimi.net 94 / 99
Redes de comunicaciones 13. ANEXO II – Comandos para la gestión de red
W:\>pathping -n guimi.net
Trace complete.
ping
El comando ping utiliza paquetes “echo” (ping) y “echo reply” (pong) de ICMP para comprobar la conectividad con
una IP.
En sistemas Windows “-n” establece el número de paquetes a enviar (por omisión 4).
W:\>ping guimi.net -n 1
En sistemas POSIX el parámetro “-n” (numbers) indica que no resuelva los nombres y muestre solo los números de la
dirección y el parámetro “-c” establece el número de paquetes a enviar (por omisión infinitos).
$ ping guimi.net -c 1 -n
PING guimi.net (212.36.74.190) 56(84) bytes of data.
64 bytes from 212.36.74.190: icmp_seq=1 ttl=57 time=6.90 ms
route
El comando route permite consultar y gestionar las tablas de encaminamiento de red. Las posibilidades que ofrece son
amplias y su sintaxis varía considerablemente de sistemas Windows a sistemas POSIX.
http://guimi.net 95 / 99
Redes de comunicaciones 13. ANEXO II – Comandos para la gestión de red
tc
tc es un comando de sistemas POSIX que permite gestionar el control de tráfico, limitando las capacidades de una
interfaz o generando prioridades de tráfico (QoS).
traceroute
traceroute es un comando de sistemas POSIX que determina la ruta y los saltos necesarios para alcanzar un destino IP
utilizando por omisión paquetes UDP. También puede utilizar paquetes ICMP con el parámetro “-I”. El comando
equivalente en sistemas WINDOWS es tracert.
El parámetro “-n” (numbers) indica que no resuelva los nombres y muestre solo los números de la dirección.
$ traceroute guimi.net
traceroute to guimi.net (212.36.74.190), 30 hops max, 40 byte packets
1 rou-aulasiqn.net2.upv.es (158.42.222.250) 0.631 ms 0.527 ms 0.521 ms
2 cauac-1.net2.upv.es (158.42.254.94) 0.234 ms 0.205 ms 0.204 ms
3 kukulcan.net.upv.es (158.42.255.58) 0.613 ms 0.538 ms 0.683 ms
4 GE1-0-3.EB-Valencia0.red.rediris.es (130.206.211.153) 1.092 ms 1.011 ms 0.815 ms
5 VAL.XE0-0-0.EB-Barcelona0.red.rediris.es (130.206.250.45) 15.142 ms 11.206 ms 5.661 ms
6 adam.01.catnix.net (193.242.98.12) 7.375 ms 6.776 ms 6.758 ms
7 sw2pp-rc1-dc.adam.es (195.219.118.3) 6.883 ms 7.623 ms 8.799 ms
8 * * *
$ traceroute guimi.net -n -I
traceroute to guimi.net (212.36.74.190), 30 hops max, 40 byte packets
1 158.42.222.250 0.674 ms 0.511 ms 0.508 ms
2 158.42.254.94 8.106 ms 0.335 ms 0.212 ms
3 158.42.255.58 0.786 ms 0.485 ms 0.341 ms
4 130.206.211.153 0.802 ms 2.129 ms 15.974 ms
5 130.206.250.45 7.915 ms 7.992 ms 7.917 ms
6 193.242.98.12 8.017 ms 9.086 ms 14.754 ms
7 195.219.118.3 8.104 ms 9.810 ms 6.707 ms
8 212.36.74.190 7.284 ms 6.463 ms 6.530 ms
http://guimi.net 96 / 99
Redes de comunicaciones 13. ANEXO II – Comandos para la gestión de red
tracert
tracert es un comando de sistemas Windows que determina la ruta y los saltos necesarios para alcanzar un destino IP
utilizando paquetes ICMP y su valor de TTL (Time To Live). El comando equivalente en sistemas POSIX es
traceroute.
W:\>tracert
Usage: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6]
target_name
Options:
-d Do not resolve addresses to hostnames.
-h maximum_hops Maximum number of hops to search for target.
-j host-list Loose source route along host-list (IPv4-only).
-w timeout Wait timeout milliseconds for each reply.
-R Trace round-trip path (IPv6-only).
-S srcaddr Source address to use (IPv6-only).
-4 Force using IPv4.
-6 Force using IPv6.
W:\>tracert guimi.net
Tracing route to guimi.net [212.36.74.190] over a maximum of 30 hops:
[...]
6 8 ms 7 ms 7 ms adam.01.catnix.net [193.242.98.12]
7 7 ms 7 ms 6 ms sw2pp-rc1-dc.adam.es [195.219.118.3]
8 6 ms 6 ms 6 ms hc05.cdmon.com [212.36.74.190]
Trace complete.
http://guimi.net 97 / 99
Redes de comunicaciones 14. ANEXO III - La VC en el campo educativo
14.1. Introducción
De entre la multitud de tecnologías de posible aplicación que posibilitan la interactividad en el campo de la formación,
la vídeo-conferencia es, sin duda, una de las que mayor futuro tiene en lo referente a enseñanza no presencial, puesto
que permite una interacción permanente, en tiempo real, con imagen y sonido entre diferentes puntos, haciendo posible
que, diferentes profesores, diferentes alumnos, diferentes centros escolares, etc. participen en el proceso de
comunicación.
Enseñar a través de vídeo-conferencia supone, no obstante, un cambio en cuanto a la metodología tradicional aplicada
en los sistemas presenciales de enseñanza. Esta nueva tecnología necesita formas distintas de interacción, diferente
comportamiento físico, distintas maneras de presentar la información y diferentes formas de juzgar los mensajes que se
puedan transmitir en ambas direcciones.
La vídeo-conferencia puede ser punto a punto o multipunto. En el primer caso cada punto dispone de una consola que
controla las diferentes funciones: como el movimiento de la cámara, el foco, el sonido, etc y cada lugar observa el otro a
través de sus respectivos monitores. En la vídeo-conferencia multipunto no es posible lograr la denominada "presencia
continua", es decir, todos los usuarios no pueden verse simultáneamente entre sí. En cada momento dado, sólo se puede
ver a una persona.
La mayoría de equipos admiten cámaras auxiliares, de modo que la vídeo-conferencia pueda ser más flexible. La salida
de vídeo puede ser conectada a un cañón de proyección y/o a un magnetoscopio, pudiéndose grabar la vídeo-
conferencia. Además también pueden compartir datos y trabajar a la vez con un mismo documento, hacer anotaciones
sobre él, modificar campos, tomar notas, etc.
Cuando se trata de vídeo-conferencia punto a punto, en la que el conferenciante utiliza pocos medios para
complementar su exposición (a veces un solo PC con una cámara) puede controlarlo el mismo conferenciante.
En entornos más complejos, con multipunto, varias cámaras y micrófonos, salas de conferenciantes, etc ..., la
realización puede pasar a uno o varios técnicos, que efectúan las conmutaciones de las diferentes cámaras, del sonido y
de todos los demás elementos que se vayan a utilizar, así como la selección de la imagen a recibir (en multipunto).
Existen sistemas automatizados que permiten que la conmutación de vídeo se efectúe a través de la voz, de manera que
cuando alguien habla, todos los demás participantes ven la imagen del orador en la pantalla. Incluso algunos sistemas
permiten enfocar automáticamente la cámara hacia el orador en grandes salas con múltiples participantes.
http://guimi.net 98 / 99
Redes de comunicaciones 14. ANEXO III - La VC en el campo educativo
Durante la vídeo-conferencia
Intentar involucrar a toda la audiencia (participación de alumnos de cada una de las aulas).
Nivel oral.
– Hablar claro e intentar mantener un volumen constante.
– Utilizar a menudo pausas.
– Permitir interrupciones por parte de los participantes.
– Indicar, claramente, cuándo ha terminado de hablar y se está esperando la réplica.
Nivel visual.
– Evitar excesivos movimientos o movimientos bruscos.
– Mantener a la vista los gráficos, imágenes o cualquier otro tipo de material que utilicemos durante un
periodo de tiempo más largo de lo habitual. No moverlos una vez posicionados.
– Evitar el uso de imágenes, gráficos, etc. de baja calidad (no utilizar segundas generaciones de vídeo).
– Ir vestido con ropas de colores poco llamativos.
– La persona que quiera intervenir, en primer lugar tiene que esperar a que la cámara lo encuadre y enfoque,
en segundo lugar tiene que identificarse.
– Utilizar diferentes medios para atraer la atención (transparencias, diapositivas, vídeo, etc.)
Después de la vídeo-conferencia
Una vez terminada la vídeo-conferencia evaluar la experiencia. Desde el punto de vista pedagógico, la evaluación
comportaría dos vertientes: evaluación de la experiencia tecnológica, de la metodología empleada y del profesorado
-por parte del alumno-, y evaluación de la eficacia del aprendizaje, -por parte del profesor o profesores-.
http://guimi.net 99 / 99
Capítulo 9: División de
redes IP en subredes
Introducción a redes
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 1
Capítulo 9
9.1 División de una red IPv4 en subredes
9.2 Esquemas de direccionamiento
9.3 Consideraciones de diseño para IPv6
9.4 Resumen
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 2
Capítulo 9: Objetivos
Explicar por qué el enrutamiento es necesario para que los
hosts de distintas redes puedan comunicarse.
Describir el protocolo IP como un protocolo de comunicación
utilizado para identificar un único dispositivo en una red.
Dada una red y una máscara de subred, calcular la cantidad
de direcciones de host disponibles.
Calcular la máscara de subred necesaria para adaptarse a los
requisitos de una red.
Describir los beneficios de las máscaras de subred de
longitud variable (VLSM, variable length subnet masking).
Explicar la forma en que se implementan las asignaciones de
direcciones IPv6 en una red comercial.
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 3
Segmentación de red
Motivos para la división en subredes
Es necesario segmentar las redes grandes en subredes más
pequeñas, con lo que se crean grupos más pequeños de
dispositivos y servicios con los siguientes fines:
Controlar el tráfico mediante la contención del tráfico de broadcast
dentro de la subred.
Reducir el tráfico general de la red y mejorar el rendimiento de esta.
División en subredes: proceso de segmentación de una red en varios
espacios de red más pequeños o subredes.
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 5
División de una red IPv4 en subredes
División básica en subredes
Préstamo de bits para crear subredes
Si se toma prestado 1 bit, 2^1 = 2 subredes.
Subred 0 Subred 1
Red 192.168.1.0-127/25 Red 192.168.1.128-255/25
Máscara: 255.255.255.128 Máscara: 255.255.255.128
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 6
División de una red IPv4 en subredes
Subredes en uso
Subred 0
Red 192.168.1.0-127/25
Subred 1
Red 192.168.1.128-255/25
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 7
División de una red IPv4 en subredes
Fórmulas de división en subredes
Cálculo de cantidad de subredes
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 8
División de una red IPv4 en subredes
Creación de cuatro subredes
Si se toman prestados 2 bits, se crean 4 subredes.
2^2 = 4 subredes
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 9
División de una red IPv4 en subredes
Creación de ocho subredes
Si se toman prestados 3 bits, se crean 8 subredes.
2^3 = 8 subredes
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 10
División de una red IPv4 en subredes
Creación de ocho subredes (continuación)
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 11
Determinación de la máscara de subred
Requisitos de la división en subredes
basada en host
Existen dos factores que se deben tener en cuenta al
planificar las subredes:
Cantidad de subredes requeridas
Cantidad de direcciones de host requeridas
Fórmula para determinar la cantidad de hosts utilizables
2^n-2
2^n (donde “n” es la cantidad de bits de host restantes) se utiliza
para calcular la cantidad de hosts.
-2 la ID de subred y la dirección de broadcast no se pueden utilizar
en cada subred.
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 12
Determinación de la máscara de subred
Requisitos de la división en subredes basada en redes
Cálculo de cantidad de subredes
Fórmula 2^n (donde n representa la cantidad de bits que
se tomaron prestados)
Subredes
necesarias para
cada departamento
en el gráfico
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 13
Determinación de la máscara de subred
División en subredes para cumplir con los
requisitos de la red
Es importante lograr un equilibrio entre la cantidad de
subredes necesarias y la cantidad de hosts que se
requieren para la subred más grande.
Diseñar el esquema
de direccionamiento
para admitir la
cantidad máxima de
hosts para cada
subred.
Dejar espacio para el
crecimiento en cada
subred.
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 14
Determinación de la máscara de subred
División en subredes para cumplir con los requisitos de
la red (cont.)
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 15
Beneficios de la máscara de subred de longitud variable
Desperdicio de direcciones de la división en
subredes tradicional
División en subredes tradicional: se asigna la misma cantidad de
direcciones a cada subred.
Las subredes que requieren menos direcciones tienen direcciones
sin utilizar (desperdiciadas). Por ejemplo, los enlaces WAN solo
necesitan dos direcciones.
La máscara de subred de longitud variable (VLSM), o subdivisión de
subredes, permite un uso más eficiente de las direcciones.
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 16
Beneficios de la máscara de subred de longitud variable
Máscaras de subred de longitud variable (VLSM)
VLSM permite dividir un espacio de red en partes
desiguales.
La máscara de subred varía según la cantidad de bits
que se toman prestados para una subred específica.
La red primero se divide en subredes y, a continuación,
las subredes se vuelven a dividir en subredes.
Este proceso se repite según sea necesario para crear
subredes de diversos tamaños.
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 17
Beneficios de la máscara de subred de longitud variable
VLSM básica
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 18
Beneficios de la máscara de subred de longitud variable
VLSM en la práctica
Si se utilizan subredes VLSM, se pueden direccionar los
segmentos LAN y WAN incluidos en el ejemplo
a continuación con un mínimo desperdicio.
A cada LAN se le asignará una subred con la máscara /27.
A cada enlace WAN se le asignará una subred con la
máscara /30.
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 19
Beneficios de la máscara de subred de longitud variable
Cuadro de VLSM
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 20
Diseño estructurado
Planificación del direccionamiento de la red
Se debe planificar y registrar la asignación de direcciones
de red para los siguientes propósitos:
Evitar duplicación de direcciones
Proporcionar y controlar el acceso
Controlar seguridad y rendimiento
Direcciones para los clientes: por lo general, se asignan de
forma dinámica mediante el protocolo de configuración
dinámica de host (DHCP).
Ejemplo de plan de
direccionamiento de
red
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 21
División en subredes de una red IPv6
División en subredes mediante la ID de subred
Un espacio de red IPv6 se divide en subredes para admitir
un diseño jerárquico y lógico de la red.
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 22
División en subredes de una red IPv6
Asignación de subredes IPv6
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 23
División en subredes de una red IPv6
División en subredes en la ID de interfaz
Se pueden tomar prestados bits de la ID de interfaz para
crear subredes IPv6 adicionales.
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 24
Capítulo 9: Resumen
El proceso de segmentación de una red mediante su división
en varios espacios de red más pequeños se denomina
“división en subredes”.
La subdivisión de subredes, o el uso de una máscara de
subred de longitud variable (VLSM), se diseñó para evitar que
se desperdicien direcciones.
El espacio de direcciones IPv6 es enorme, de manera que se
divide en subredes para admitir el diseño jerárquico y lógico
de la red y no para conservar direcciones.
Los requisitos de tamaño, ubicación, uso y acceso son
consideraciones que se deben tener en cuenta en el proceso
de planificación de direcciones.
Se deben probar las redes IP para verificar la conectividad
y el rendimiento operativo.
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 25
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 26
Capítulo 9: Resumen
El proceso de segmentación de una red mediante su división
en varios espacios de red más pequeños se denomina
“división en subredes”.
La subdivisión de subredes, o el uso de una máscara de
subred de longitud variable (VLSM), se diseñó para evitar que
se desperdicien direcciones.
El espacio de direcciones IPv6 es enorme, de manera que se
divide en subredes para admitir el diseño jerárquico y lógico
de la red y no para conservar direcciones.
Los requisitos de tamaño, ubicación, uso y acceso son
consideraciones que se deben tener en cuenta en el proceso
de planificación de direcciones.
Se deben probar las redes IP para verificar la conectividad
y el rendimiento operativo.
Presentation_ID © 2008 Cisco Systems, Inc. Todos los derechos reservados. Información confidencial de Cisco 27
C A P Í T U L O
2
El modelo OSI y los
protocolos de red
El modelo OSI abarca una serie de eventos importantes que se producen durante la
comunicación entre sistemas. Proporciona las normas básicas empíricas para una serie de
procesos distintos de conexión en red:
• El modo en que los datos se traducen a un formato apropiado para la arquitectura
de red que se está utilizando. Cuando se envía un mensaje de correo electrónico o
un archivo a otra computadora, se está trabajando, en realidad, con una determi-
nada aplicación, como un cliente de correo electrónico o un cliente FTP. Los datos
que se transmiten utilizando dicha aplicación tienen que convertirse a un formato
más genérico si van a viajar por la red hasta llegar a su destino.
• El modo en que los PC u otro tipo de dispositivos de la red se comunican. Cuando
se envían datos desde un PC, tiene que existir algún tipo de mecanismo que pro-
porcione un canal de comunicación entre el remitente y el destinatario. Lo mismo
que cuando se desea hablar por teléfono, para lo cual hay que descolgar el teléfo-
no y marcar el número.
• El modo en que los datos se transmiten entre los distintos dispositivos y la forma
en que se resuelve la secuenciación y comprobación de errores. Una vez estable-
cida la sesión de comunicación entre dos computadoras, tiene que existir un con-
junto de reglas que controlen la forma en que los datos van de una a otra.
• El modo en que el direccionamiento lógico de los paquetes pasa a convertirse en
el direccionamiento físico que proporciona la red. Las redes informáticas utilizan
esquemas de direccionamiento lógico, como direcciones IP. Por tanto, dichas
direcciones lógicas tienen que convertirse en las direcciones reales de hardware
que determinan las NIC instaladas en las distintas computadoras.
El modelo OSI ofrece los mecanismos y reglas que permiten resolver todas las cues-
tiones que acabamos de referir. Comprender las distintas capas del modelo OSI no sólo
permite internarse en los conjuntos de protocolos de red que actualmente se utilizan, sino
que también proporciona un marco de trabajo conceptual del que puede servirse cual-
quiera para comprender el funcionamiento de dispositivos de red complejos, como con-
mutadores, puentes y routers. (Buena parte de este libro versa sobre los routers y el enca-
minamiento de datos en general.)
33
Aplicación
7
Presentación
6
Sesión
5
Transporte
4
Red
3
Enlace de datos
2
Física
1
FIGURA 2.1
El modelo OSI ofrece un modelo teórico que explica el modo en que se desplazan los
datos desde una computadora emisora a otra computadora receptora.
34 2 El modelo OSI y los protocolos de red
Una buena forma de recordar el orden ascendente que siguen las capas de este mode-
lo es utilizar una expresión mnemónica como la siguiente: Fernando Está Recordando
Todos Sus Primeros Años. Y de hecho es imprescindible que tenga siempre presente este
modelo, ya que cualquier cuestión referente a la tecnología de conexión entre sistemas,
desde la más nimia hasta la más compleja, alude al mismo. Todos los libros y artículos
que hablan de la conexión en red hacen referencia a este modelo.
Antes de explicar cada una de las capas que componen la pila, conviene hacerse una
idea general de lo que ocurre cuando los datos se mueven por el modelo OSI. Suponga-
mos que un usuario decide enviar un mensaje de correo electrónico a otro usuario de la
red. El usuario que envía el mensaje utilizará un cliente o programa de correo (como
Outlook o Eudora) como herramienta de interfaz para escribir y enviar el mensaje. Esta
actividad del usuario se produce en la capa de aplicación.
Cuando los datos abandonan la capa de aplicación (la capa insertará un encabezado de
capa de aplicación en el paquete de datos), éstos pasan por las restantes capas del modelo
OSI. Cada capa proporcionará servicios específicos relacionados con el enlace de comuni-
cación que debe establecerse, o bien formateará los datos de una determinada forma.
Al margen de la función específica que tenga asignada cada capa, todas adjuntan un
encabezado (los encabezados vienen representados por cuadritos en la Figura 2.2) a los
datos. Puesto que la capa física está integrada por dispositivos de hardware (un cable, por
ejemplo) nunca añade un encabezado a los datos.
Los datos llegan así a la capa física (el entorno tangible de la red, como los cables de
par trenzado y hubs que conectan las computadoras entre sí) de la computadora del desti-
natario, desplazándose por el entorno físico de la red hasta alcanzar su destino final, el
usuario al que iba dirigido el mensaje de correo electrónico.
Los datos se reciben en la capa física de la computadora del destinatario y pasan a
subir por la pila OSI. A medida que los datos van pasando por cada una de las capas, el
encabezado pertinente se va suprimiendo de los datos. Cuando los datos finalmente alcan-
zan la capa de aplicación, el destinatario puede utilizar su cliente de correo electrónico
para leer el mensaje que ha recibido.
A continuación pasamos a explicar cada una de las capas que componen el modelo
OSI, de arriba abajo (es decir, desde la capa de aplicación hasta la capa física).
La capa de aplicación
La capa de aplicación proporciona la interfaz y servicios que soportan las aplicacio-
nes de usuario. También se encarga de ofrecer acceso general a la red.
Esta capa suministra las herramientas que el usuario, de hecho, ve. También ofrece los
servicios de red relacionados con estas aplicaciones de usuario, como la gestión de men-
sajes, la transferencia de archivos y las consultas a bases de datos. La capa de aplicación
suministra cada uno de estos servicios a los distintos programas de aplicación con los que
cuenta el usuario en su computadora. Entre los servicios de intercambio de información
35
que gestiona la capa de aplicación se encuentran la Web, los servicios de correo electró-
nico (como el Protocolo Simple de Transferencia de Correo, comúnmente conocido como
SMTP ––Simple Mail Transfer Protocol––incluido en TCP/IP), así como aplicaciones
especiales de bases de datos cliente/servidor.
➁ ➀ ➃
Computadora emisora Computadora receptora
➂
1. Encabezado de la capa de aplicación.
2. Encabezado de la capa de presentación.
3. Paquete con todos los encabezados de las capas OSI.
4. Los encabezados se van suprimiendo a medida que los datos suben por la capa OSI.
FIGURA 2.2
Los datos bajan por la pila OSI de la computadora emisora y suben por la pila OSI de la
computadora receptora.
La capa de presentación
La capa de presentación puede considerarse el traductor del modelo OSI. Esta capa
toma los paquetes (la creación del paquete para la transmisión de los datos por la red
empieza en realidad en la capa de aplicación) de la capa de aplicación y los convierte a un
formato genérico que pueden leer todas las computadoras. Por ejemplo, los datos escritos
en caracteres ASCII se traducirán a un formato más básico y genérico.
La capa de presentación también se encarga de cifrar los datos (si así lo requiere la
aplicación utilizada en la capa de aplicación) así como de comprimirlos para reducir su
tamaño. El paquete que crea la capa de presentación contiene los datos prácticamente con
el formato con el que viajarán por las restantes capas de la pila OSI (aunque las capas
siguientes irán añadiendo elementos al paquete, lo cual puede dividir los datos en paque-
tes más pequeños).
36 2 El modelo OSI y los protocolos de red
La capa de sesión
La capa de sesión es la encargada de establecer el enlace de comunicación o sesión
entre las computadoras emisora y receptora. Esta capa también gestiona la sesión que se
establece entre ambos nodos (véase la Figura 2.3).
Estación de trabajo
Servidor
Comunicaciones en
la capa de sesión
FIGURA 2.3
La capa de sesión proporciona el enlace de comunicación entre dos computadoras que
se están comunicando.
Una vez establecida la sesión entre los nodos participantes, la capa de sesión pasa a
encargarse de ubicar puntos de control en la secuencia de datos. De esta forma, se pro-
porciona cierta tolerancia a fallos dentro de la sesión de comunicación. Si una sesión falla
y se pierde la comunicación entre los nodos, cuando después se restablezca la sesión sólo
tendrán que volver a enviarse los datos situados detrás del último punto de control recibi-
do. Así se evita el tener que enviar de nuevo todos los paquetes que incluía la sesión.
Los protocolos que operan en la capa de sesión pueden proporcionar dos tipos distin-
tos de enfoques para que los datos vayan del emisor al receptor: la comunicación orienta-
da a la conexión y la comunicación sin conexión.
37
La capa de transporte
La capa de transporte es la encargada de controlar el flujo de datos entre los nodos que
establecen una comunicación; los datos no sólo deben entregarse sin errores, sino además
en la secuencia que proceda. La capa de transporte se ocupa también de evaluar el tama-
ño de los paquetes con el fin de que éstos tengan el tamaño requerido por las capas infe-
riores del conjunto de protocolos. El tamaño de los paquetes lo dicta la arquitectura de red
que se utilice.
VÉASE TAMBIÉN
➤ Para más información sobre arquitecturas de red, como Ethernet y Token Ring, consulte el Capítulo 1.
38 2 El modelo OSI y los protocolos de red
Cuando un usuario que está trabajando en una determinada aplicación (por ejem-
plo, en Excel) decide guardar un archivo de hoja de cálculo en el directorio que tie-
ne asignado dentro del servidor de archivos de red, la capa de aplicación del
modelo OSI proporciona el servicio que permite mover dicho archivo desde la
computadora cliente hasta el volumen de red pertinente. Esta transmisión es
totalmente transparente para el usuario.
La comunicación también se establece entre computadoras del mismo nivel (el emisor
y el receptor); la aceptación por parte del nodo receptor se recibe cuando el nodo emisor
ha enviado el número acordado de paquetes. Por ejemplo, el nodo emisor puede enviar de
un solo golpe tres paquetes al nodo receptor y después recibir la aceptación por parte del
nodo receptor. El emisor puede entonces volver a enviar otros tres paquetes de datos de
una sola vez.
Esta comunicación en la capa de transporte resulta muy útil cuando la computadora
emisora manda demasiados datos a la computadora receptora. En este caso, el nodo
receptor tomará todos los datos que pueda aceptar de una sola vez y pasará a enviar una
señal de “ocupado” si se envían más datos. Una vez que la computadora receptora haya
procesado los datos y esté lista para recibir más paquetes, enviará a la computadora emi-
sora un mensaje de “luz verde” para que envíe los restantes.
No debe olvidarse que cada capa del modelo OSI (o de un conjunto real de pro-
tocolos de red, como IPX/SPX o TCP/IP) ejecutan funciones relativas a la entrada
y salida de información. Cuando los datos bajan por la pila de protocolos en una
computadora emisora, la capa de presentación convierte la información proce-
dente de una determinada aplicación a un formato más genérico. En la computa-
dora receptora, la capa de presentación se ocupará de tomar dicha información
genérica y de convertirla al formato que utilice el programa que se esté ejecutan-
do en la capa de aplicación de la computadora receptora.
La capa de red
La capa de red encamina los paquetes además de ocuparse de entregarlos. La deter-
minación de la ruta que deben seguir los datos se produce en esta capa, lo mismo que el
intercambio efectivo de los mismos dentro de dicha ruta. La Capa 3 es donde las direc-
ciones lógicas (como las direcciones IP de una computadora de red) pasan a convertirse
en direcciones físicas (las direcciones de hardware de la NIC, la Tarjeta de Interfaz para
Red, para esa computadora específica).
39
Los routers operan precisamente en la capa de red y utilizan los protocolos de enca-
minamiento de la Capa 3 para determinar la ruta que deben seguir los paquetes de datos.
El modo en que se determinan los routers y la forma en que éstos convierten las direc-
ciones lógicas en direcciones físicas son temas sobre los que profundizaremos a lo largo
de este libro.
VÉASE TAMBIÉN
➤ Encontrará una explicación más pormenorizada de la capa de red en los siguientes capítulos. Para
obtener una rápida introducción sobre el modo en que operan los routers en la capa de red, consulte
el Capítulo 5.
FIGURA 2.4
Cada nodo de la red sólo tiene asignada una única dirección física.
plazar los datos por la red. Por lo general, en la capa de sesión opera más de un
protocolo para gestionar estas estrategias distintas de comunicación.
CAMPOS LLC
FIGURA 2.5
La trama Ethernet se crea en la capa de enlace de datos del modelo OSI.
Tabla 2.1
La capa de enlace de datos también controla la forma en que las computadoras acce-
den a las conexiones físicas de la red. Nos detendremos en este aspecto de la Capa 2 en el
apartado “Las subcapas del enlace de datos” incluido en este mismo capítulo.
La capa física
En la capa física las tramas procedentes de la capa de enlace de datos se convierten en
una secuencia única de bits que puede transmitirse por el entorno físico de la red. La capa
física también determina los aspectos físicos sobre la forma en que el cableado está engan-
chado a la NIC de la computadora. En la computadora receptora de datos, la capa física es
la encargada de recibir la secuencia única de bits (es decir, información formada por 1 y 0).
VÉASE TAMBIÉN
➤ Para más información acerca del entorno físico que actualmente se utiliza para conectar sistemas, con-
sulte el apartado “Cableado de la red” del Capítulo 1.
42 2 El modelo OSI y los protocolos de red
Subcapa LLC
IEEE 802.2
Subcapa MAC
IEEE 802.3
IEEE 802.3
IEEE 802.5
IEEE 802.12
FIGURA 2.6
La capa de enlace de datos está compuesta por dos subcapas: la subcapa LLC y la subca-
pa MAC.
43
NetBEUI
NetBEUI (NetBIOS Extended User Interface o Interfaz Ampliada de Usuario para
NetBIOS) es un protocolo de red rápido y sencillo que fue diseñado para ser utilizado jun-
to con el protocolo NetBIOS (Network Basic Input Output System o Sistema Básico de
Entrada/Salida para Red) desarrollado por Microsoft e IBM para redes pequeñas. Net-
BEUI opera en las capas de transporte y red del modelo OSI.
Puesto que NetBEUI sólo proporciona los servicios que se requieren en las capas de
transporte y red de OSI, necesita funcionar con NetBIOS, que opera en la capa de sesión
del modelo OSI, y se encarga de establecer la sesión de comunicación entre las dos com-
putadoras conectadas a la red. Las redes Microsoft incluyen además otros dos compo-
nentes: el redirector y el Bloque de Mensajes del Servidor (Server Message Block). El
redirector opera en la capa de aplicación y hace que una computadora cliente perciba
todos los recursos de la red como si fueran locales. El Bloque de Mensajes del Servidor
(Server Message Block o SMB), por su parte, proporciona comunicación de mismo nivel
entre los redirectores incluidos en las máquinas cliente y servidor de la red. El Bloque de
Mensajes del Servidor opera en la capa de presentación del modelo OSI.
TRAMAS ETHERNET
La trama Ethernet que utilizaban las primeras versiones de NetWare de Novell
(NetWare 2.x y 3.x) se creó antes de que el IEEE completara sus especificaciones.
Esto hace que el tipo de trama Ethernet 802.3 no se ajuste estrictamente a las nor-
mas que ha dictado el IEEE. Las versiones más recientes de NetWare y de otros sis-
temas operativos de red utilizan la trama Ethernet 802.2, que cumple con todos
los requisitos especificados por el IEEE (y que se refieren más adelante en este
mismo capítulo).
TCP/IP
A menudo referido como el “protocolo de baja puja” (véase la nota titulada “Orígenes
de TCP/IP”), TCP/IP se ha convertido en el estándar de-facto para la conexión en red cor-
porativa. Las redes TCP/IP son ampliamente escalables, por lo que TCP/IP puede utili-
zarse tanto para redes pequeñas como grandes.
TCP/IP es un conjunto de protocolos encaminados que puede ejecutarse en distintas
plataformas de software (Windows, UNIX, etc.) y casi todos los sistemas operativos de red
lo soportan como protocolo de red predeterminado. TCP/IP consta de una serie de proto-
colos “miembro” que componen de hecho la pila TCP/IP. Y puesto que el conjunto de pro-
tocolos TCP/IP se desarrolló antes de que terminara de desarrollarse el modelo de referen-
cia OSI, los protocolos que lo conforman no se corresponden perfectamente con las
distintas capas del modelo. La Figura 2.7 muestra la correlación entre el conjunto de pro-
tocolos TCP/IP y las capas OSI (la figura ofrece una descripción general de TCP/IP y no
una imagen fiel y exhaustiva de todos los protocolos que incluye). La Tabla 2.2 describe
los protocolos que aparecen en la figura. En el Capítulo 10, “Conceptos fundamentales de
TCP/IP”, se ofrece más información acerca de los protocolos que integran la pila TCP/IP.
Tabla 2.2
Aplicación
Los protocolos
miembro de la
pila de protocolos
Presentación TCP/IP, como
FTP FTP, se solapan SMTP
con más de una
capa del
Sesión modelo OSI.
Otros protocolos,
Red IP como TCP o IP,
ARP se corresponden
directamente con
una de las capas
Enlace de datos Controladores de tarjetas de red del modelo OSI.
Física
Entorno físico de la red (cables, hubs, etc.)
FIGURA 2.7
TCP/IP es un amplio conjunto de protocolos que utiliza una serie de protocolos miembro
en varias de las capas del modelo OSI.
46 2 El modelo OSI y los protocolos de red
IPX/SPX
IPX/SPX (Internetwork Packet Exchange/Sequenced Packet Exchange o Intercambio
de Paquetes entre Redes/Intercambio Secuenciado de Paquetes) es un conjunto de proto-
colos de red desarrollado por Novell para ser utilizado en su sistema operativo de red Net-
Ware. IPX/SPX agrupa menos protocolos que TCP/IP, por lo que no requiere la misma
47
carga general que TCP/IP necesita. IPX/SPX puede utilizarse tanto en redes pequeñas
como grandes y también permite el encaminamiento de datos.
La Figura 2.8 ofrece una correlación entre la pila IPX/SPX y las capas del modelo
OSI. La Tabla 2.3 describe brevemente cada uno de los protocolos que lo componen.
Los protocolos
Aplicación
SAP y NCP del
conjunto IPX/SPX
gestionan, de hecho,
SAP NCP las tareas de tres
Presentación capas OSI:
aplicación,
presentación
y sesión.
Sesión
FIGURA 2.8
IPX/SPX es un conjunto de protocolos eficaz que se utiliza tanto en redes grandes como
pequeñas.
ORÍGENES DE TCP/IP
TCP/IP lo desarrolló la Agencia de Defensa de Proyectos Avanzados de Investiga-
ción (DARPA) a petición del Departamento de Defensa de Estados Unidos. Dicho
departamento necesitaba un conjunto de protocolos que pudieran utilizarse en
cualquier sistema operativo, ya que no existía uniformidad alguna entre los siste-
mas informáticos de sus oficinas. Y ello por la forma misma en que funcionaba el
Departamento, que licitaba todos sus proyectos y servicios. De ahí que de forma
coloquial se conozca TCP/IP como protocolo de baja puja, ya que surgió a raíz de
la práctica del gobierno estadounidense por pujar.
48 2 El modelo OSI y los protocolos de red
Tabla 2.3
Lo que más nos interesa acerca de IPX/SPX es la forma en que debe encaminarse este
conjunto de protocolos dentro de una conexión entre redes. Veremos el encaminamiento de
IPX/SPX y el modo en que transmite los datos dentro de una red en próximos capítulos.
VÉASE TAMBIÉN
➤ El encaminamiento de IPX/SPX se explica en detalle en el Capítulo 12, “Encaminar IPX de Novell”.
AppleTalk
Aunque muchos administradores de red no consideran AppleTalk un protocolo de red
corporativo o de interconexión, AppleTalk permite el encaminamiento de datos mediante
49
routers. De hecho, con el tipo apropiado de NIC (los Macintosh de Apple pueden conec-
tarse a una red Ethernet si cuentan con tarjetas EtherTalk u otro tipo de adaptadores)
AppleTalk puede soportar arquitecturas Ethernet, Token Ring y FDDI. Las computadoras
Macintosh suelen utilizarse en los entornos empresariales para la manipulación de gráfi-
cos y otras tareas de tipo multimedia, por lo que no resulta nada descabellado incluir
AppleTalk como otro protocolo encaminado en la red corporativa.
En el Capítulo 1 hablábamos de AppleTalk como arquitectura de red, pero lo cierto es
que también se trata de un conjunto de protocolos. La Figura 2.9 ofrece la correlación
entre los protocolos que integra AppleTalk y las capas del modelo OSI. La Tabla 2.4 des-
cribe brevemente cada uno de estos protocolos.
TERMINOLOGÍA EQUÍVOCA
Antes de proseguir, convendría que repasáramos las definiciones de algunos tér-
minos que se repetirán con frecuencia a lo largo del libro.
Conexión entre redes: una red de redes. Se trata de redes de área local conecta-
das entre sí por medio de dispositivos de conexión entre redes, como un puente
o un router. La conexión entre redes se explica en detalle en el Capítulo 4, “Fun-
damentos básicos de la conexión entre redes”.
Internet: la Red de redes por antonomasia. TCP/IP es el estándar de-facto para el
conjunto internacional de computadoras heterogéneas que lo conforman.
Intranet: una red corporativa interna que sólo funciona en el entorno de la
empresa (sin conexión a Internet) pero que utiliza protocolos de Internet, como el
Protocolo Simple de Transporte de Correo (SMTP) y el Protocolo de Transporte de
Hipertexto (HTP), el mismo protocolo que utilizan los navegadores web. Una
extranet es una intranet que proporciona acceso a la red corporativa a determina-
dos empleados que se encuentran fuera de la compañía.
Tabla 2.4
Protocolos miembro de AppleTalk.
Protocolo Función
AppleShare AppleShare proporciona servicios en la capa de aplicación.
AFP El AppleTalk Filing Protocol o Protocolo de Archivo AppleTalk proporciona y
gestiona la compartición de archivos entre nodos de una red.
ATP El AppleTalk Transaction Protocol o Protocolo de Transacción AppleTalk pro-
porciona la conexión de capa de transporte entre computadoras.
NBP El Name Binding Protocol o Protocolo de Enlace de Nombre hace corresponder
los nombres de servidores de red con las direcciones de la capa de red.
ZIP El Zone Information Protocol o Protocolo de Información de Zona controla las
zonas AppleTalk y hace corresponder los nombres de zonas con las direcciones
de red.
50 2 El modelo OSI y los protocolos de red
El conjunto de protocolos
AppleTalk se compone
AFP
Aplicación de varios protocolos, que
se corresponden con
algunas de las capas
AppleTalk del modelo OSI.
AppleTalk, por ejemplo,
Presentación se corresponde con las
capas de aplicación
y presentación de OSI.
Sesión
ZIP
Transporte
NBP
Red
AARP DDP
FIGURA 2.9
AppleTalk es un conjunto de protocolos encaminados para las redes Macintosh que pue-
den comunicarse con redes Ethernet, Token Ring y FDDI.
Al igual que con IPX/SPX, nuestro interés en el conjunto de protocolos de red Apple-
Talk se centrará en el modo en que AppleTalk encamina los datos por medio de routers.
La configuración de las redes AppleTalk y la forma en que este conjunto de protocolos
viene encaminado por un router de Cisco se tratarán en el Capítulo 13, “Encaminar
AppleTalk”.
51
VÉASE TAMBIÉN
➤ Para más información acerca de la configuración de las redes AppleTalk y el modo en que se encaminan
en un router de Cisco, consulte el Capítulo 13.