Introducción a UNIX y su Kernel
Introducción a UNIX y su Kernel
Redes de datos
El sistema operativo UNIX surgió en los laboratorios de AT&T Bell como un proyecto de
algunos programadores de SO personal. AT&T ofreció el código fuente a universidades
para su investigación y su uso se extendió en ese ambiente y en el empresario.
Aunque nunca se haya usado UNIX, casi todos los SO actuales tienen muchos conceptos
tomados de el, incluyendo al DOS, OS/2, NT, etc. Claro que en UNIX estos conceptos
están en su estado mas puro e ideal. En DOS se puede manejar un port de
comunicaciones abriéndolo como un archivo pero no funciona. En UNIX es la única
manera y funciona. UNIX es algo así como el latín de los sistemas operativos.
La palabra UNIX es marca registrada y actualmente esta en poder de Novell. Aun así,
muchas empresas diseñaron sistemas UNIX compatibles (el desarrollo a través del código
fuente así lo permitía), o sea que que se puede tomar un programa escrito en C para una
plataforma, compilarlo y usarlo en otra, lo que significa que si uno instala UNIX en su
modesta PC, tiene un ambiente muy similar al de “workstations” profesionales.
Actualmente los SO así orientados son SCO UNIX, BSD UNIX, AIX de IBM, Unixware de
Novelll (de uso publico).
UNIX tiene variada aplicación, pero especialmente se destaca en redes, lo que implica
Internet. (primariamente fue la plataforma elegida como todo proceso de investigación, por
eso su relación conceptual, protocolar, en servicios, etc. En cualquier versión UNIX se
encontraran herramientas para usar internet, aunque mas de tipo científicas que las
populares Windows u OS/2.).
UNIX fue tradicionalmente un SO caro, pero eso dejo de ser un problema ya que un
grupo de programadores distribuidos a lo largo de internet y encabezados por un
estudiante finlandés llamado Linus Torvalds tomo la iniciativa de generar un UNIX
totalmente gratuito.
La característica de Linux hace que no tenga nada que envidiarle a los sistemas
comerciales. Tiene algunas desventajas. No hay soporte. Solo los foros de discusión en
internet y en sistemas como MP Online! (foros/sist/unix), aunque esto suele ser suficiente
la mayoría de los casos. Tampoco hay manuales impresos, pero esto no es demasiado
problema porque existen libros y mucha documentación en archivos. También esta el
problema de que Linux es solamente el kernel (el núcleo del sistema operativo). Cada
comando aparte, cada función, es un proyecto independiente y son paquetes que se
instalan por separado. También sucede que hay distintas versiones de lo mismo pero este
problema también encontró su solución. Diferentes personas en el mundo se han
encargado de armar en instalar un sistema Unix mas o menos coherente, a esos sistemas
ya armados y configurados se los llama “distribuciones”. La mas conocida actualmente es
la distribución Slackware.
La interfaz gráfica que se usa en el ambiente UNIX se llama Xwindows (también gratuito:
Xfree para Linux en las distribuciones), y es muy flexible y poderosa. Esta diseñada para
trabajar en cualquier SO, red y computadora.
Para correr Linux no es necesario una gran maquina. Basta con una 386 con 4MB (8MB
para Xwindows, mas una buena placa de video), y su instalación demanda alrededor de
100MB. Soporta bus ISA, PCI y local bus (no Micro Channel). Respecto al hard, el soporte
es muy completo, soporta casi todas las placas de sonido, todos los CD ROM, placas
SCSI, de red, etc. X permite ser configurado para una gran variedad de placas de video.
Además linux fue portado a otras plataformas, o sea que también su puede usar sobre
Alpha, MIPS, Sparc, 68000 y PowerPC.
Características básicas
Multitarea: Permite la ejecución de varias tareas a la vez, con muy buen rendimiento.
Memoria virtual: Permite que las aplicaciones trabajen sobre un espacio de memoria
virtual que es mayor que la memoria disponible. Logra esto intercambiando paginas de 4
KB entre la memoria y el disco.
Funcionamiento
Linux le pregunta al usuario un nombre y una clave. Esto es así porque UNIX esta
pensado multiusuario. Se puede lograr compartir la misma computadora entre muchisimas
personas que entran por una red o por módem. Existe un nombre de usuario especial que
es el que tiene derecho sobre todo el sistema, su nombre: Root.
Comandos:
pwd.....para averiguar cual es el directorio actual
ls.........pedir un listado del directorio actual
cd........cambia un directorio
mkdir...crea un directorio
cat.......para ver un archivo
echo....imprime una cadena de caracteres
cp........copia un archivo
mv.......mueve o renombra un archivo.
Ejemplo:
Al pedir un listado de archivos con ls (-l pide mas información), el sistema muestra quien
es el dueño del archivo, en este caso root.
UNIX en el mundo
A medida que los servidores departamentales se abren paso hacia el centro de datos, los
servidores Unix se han ido incorporando con mayor presteza, ya que son mas escalables
que los servidores PC bajo NT Windows. Los sistemas Cray Origin2000 de Silicon grafics
pueden funcionar con hasta 128 procesadores conectados mediante redes de malla
CrayLink Interconnect (NT soporta hasta 28).
Los sistemas UNIX tienen un rendimiento mayor que sus colegas de arquitectura PC. Así
lo afirma el Transaction Processing Council (TCP) -California, EEUU- quien asegura que
los sistemas Unix ocupan los 10 primeros lugares en el ranking de performance. Con una
versión de DBMS Oracle corriendo sobre un sistema Alpha de Digital Equipment, se
completan 102.541 transacciones por minuto.
Características Generales:
El núcleo del sistema operativo Unix (llamado Kernel) es un programa escrito casi en su
totalidad en lenguaje C, con excepción de una parte del manejo de interrupciones,
expresada en el lenguaje ensamblador del procesador en el que opera.
Las funciones del núcleo son permitir la existencia de un ambiente en el que sea posible
atender a varios usuarios y múltiples tareas en forma concurrente, repartiendo al
procesador entre todos ellos, e intentando mantener en grado óptimo la atención
individual.
El Kernel opera como asignador de recursos para cualquier proceso que necesite hacer
uso de las facilidades de cómputo. Es el componente central de Unix y tiene las siguientes
funciones:
Después de haber creado el proceso 0, se hace una copia del mismo, con lo que se crea
el proceso 1; éste muy pronto se encargará de "dar vida" al sistema completo, mediante
la activación de otros procesos que también forman parte del núcleo. Es decir, se inicia
una cadena de activaciones de procesos, entre los cuales destaca el conocido como
despachador, o scheduler, que es el responsable de decidir cuál proceso se ejecutará y
cuáles van a entrar o salir de la memoria central. A partir de ese momento se conoce el
número 1 como proceso de inicialización del sistema, init.
Init crea otro proceso, que espera pacientemente a que alguien entre en sesión en alguna
línea de comunicación. Cuando esto sucede, realiza ajustes en el protocolo de la línea y
ejecuta el programa login, que se encarga de atender inicialmente a los nuevos usuarios.
Si la clave del usuario, y la contraseña proporcionadas son las correctas, entonces entra
en operación el programa Shell, que en lo sucesivo se encargará de la atención normal
del usuario que se dio de alta en esa terminal.
La raíz del sistema de archivos (conocida como root ) se denota con el símbolo “/”, y de
ahí se desprende un conjunto de directorios que contienen todos los archivos del sistema
de cómputo. Cada directorio, a su vez, funciona como la subraíz de un nuevo árbol que
depende de él y que también puede estar formado por directorios o subdirectorios y
archivos. Un archivo siempre ocupará el nivel más bajo dentro del árbol, porque de un
archivo no pueden depender otros; si así fuera, sería un directorio. Es decir, los archivos
son como las hojas del árbol.
u/gerencia/abril94l/carta2
Como se dijo antes, desde el punto de vista del directorio abril94, que a su vez pertenece
al directorio gerencia del directorio /u, basta con el nombre carta2 para apuntar al archivo
en cuestión.
En esta forma se maneja el sistema completo de archivos y se dispone de un conjunto de
órdenes de Shell (además de múltiples variantes) para hacer diversas manipulaciones,
como crear directorios, moverse dentro del sistema de archivos, copiarlos, etcétera.
Unix incluye, además, múltiples esquemas para crear, editar y procesar documentos.
Existen varios tipos de editores, formadores de textos, macroprocesadores para textos,
formadores de tablas, preprocesadores de expresiones matemáticas y un gran número de
ayudas y utilerías diversas, que se mencionan más adelante.
El control del espacio libre en el disco se mantiene mediante una lista ligada de bloques
disponibles. Cada bloque contiene la dirección en disco del siguiente bloque en la cadena.
El espacio restante contiene las direcciones de grupos de bloques del disco que se
encuentren libres. De esta forma, con una operación de E/S, el sistema obtiene un
conjunto de bloques libres y un apuntador para conseguir más.
Toda esta estructura física se maneja "desde afuera" mediante la filosofía jerárquica de
archivos y directorios ya mencionada, y en forma totalmente transparente para el usuario.
Además, desde el punto de vista del sistema operativo, un archivo es muy parecido a un
dispositivo.
Las ventajas de tratar a los dispositivos de E/S en forma similar a los archivos normales
son múltiples: un archivo y un dispositivo de E/S se tornan muy parecidos; los nombres de
los archivos y de los dispositivos tienen la misma sintaxis y significado, así que a un
programa que espera un nombre de archivo como parámetro puede dársele un nombre de
dispositivo (con esto se logra interacción rápida y fácil entre procesos de alto nivel).
El sistema Unix ofrece varios niveles de protección para el sistema de archivos, que
consisten en asignar a cada archivo el número único de identificación de su dueño, junto
con nueve bits de protección, que especifican permisos de lectura, escritura y ejecución
para el propietario, para otros miembros de su grupo (definido por el administrador del
sistema) y para el resto de los usuarios. Antes de cualquier acceso se verifica su validez
consultando estos bits, que residen en el nodo-i de todo archivo. Además, existen otros
tres bits que se emplean para manejos especiales, relacionados con la clave del
superusuario.
EI control de las impresoras de una computadora que funciona con el sistema operativo
Unix consiste en un subsistema (SPOOL) que se encarga de coordinar los pedidos de
impresión de múltiples usuarios. Existe un proceso de Kernel que en forma periódica
revise las colas de servicio de las impresoras para detectar la existencia de pedidos e
iniciar entonces las tareas de impresión. Este tipo de procesos, que son activados en
forma periódica por el núcleo del sistema operativo, reciben en Unix el nombre de
daemons (duendes), tal vez porque se despiertan y aparecen sin previo aviso. Otros se
encargan de activar procesos en tiempos previamente determinados por el usuario, o de
escribir periódicamente los contenidos de los buffers de memoria en el disco magnético.
Un proceso puede encontrarse en uno de varios estados: en ejecución; listo para ejecutar,
o en espera.
Cuando se invoca una función del sistema, el proceso de usuario llama al Kernel como
subrutina. Hay un cambio de ambientes y, como resultado, se tiene un proceso del
sistema. Estos dos procesos son dos fases del mismo original, que nunca se ejecutan en
forma simultánea.
Existe una tabla de procesos que contiene una entrada por cada uno de ellos con los
datos que requiere el sistema: identificación, direcciones de los segmentos que emplea en
la memoria, información que necesita el scheduler y otros. La entrada de la tabla de
procesos se asigna cuando se crea el proceso y se libera cuando éste termina.
Para crear un proceso se requiere la inicialización de una entrada en la tabla, así como la
creación de segmentos de texto y de datos. Además, es necesario modificar la tabla
cuando cambia el estado del proceso o cuando recibe un mensaje de otro (para
sincronización, por ejemplo). Cuando un proceso termina, su entrada en la tabla se libera
y queda otro disponible para que otro nuevo la utilice.
En el sistema operativo Unix los procesos pueden comunicarse internamente entre sí,
mediante el envío de mensajes o señales. El mecanismo conocido como interconexión
(pipe) crea un canal entre dos procesos mediante una llamada a una rutina del Kernel, y
se emplea tanto para pasar datos unidireccionalmente entre las imágenes de ambos,
como para sincronizarlos, ya que si un proceso intenta escribir en un pipe ocupado, debe
esperar a que el receptor lea los datos pendientes. Lo mismo ocurre en el caso de una
lectura de datos inexistentes: el proceso que intenta leer debe esperar a que el proceso
productor deposite los datos en el canal de intercomunicación.
Entre las diferentes llamadas al sistema para el manejo de procesos que existen en Unix
están las siguientes, algunas de las cuales ya han sido mencionadas: fork (sacar una
copia a un proceso); exec (cambiar la identidad de un proceso); kill (enviar una señal a un
proceso); signal (especificar la acción por ejecutar cuando se recibe una señal de otro
proceso), y exit (terminar un proceso).
Dentro de las tareas del manejo del procesador destaca la asignación dinámica
(scheduling), que en Unix resuelve el scheduler mediante un mecanismo de prioridades.
Cada proceso tiene asignada una prioridad; las prioridades de los procesos de usuario
son menores que la más pequeña de un proceso del sistema.
En el sistema Unix, las interrupciones son causadas por lo que se conoce como eventos,
entre los cuales se consideran: la ejecución de una tarea de entrada/salida; la terminación
de los procesos dependientes de otro; la terminación de la fracción de tiempo asignada a
un proceso, y la recepción de una señal desde otro proceso.
Manejo De Memoria
Está claro que el proceso que se encarga de los intercambios entre memoria y disco
(llamado swapper) debe ser especial y jamás podrá perder su posición privilegiada en la
memoria central. El Kernel se encarga de que nadie intente siquiera interrumpir este
proceso, del cual dependen todos los demás. Este es el proceso 0 mencionado antes.
Cuando se decide traer a la memoria principal un proceso en estado de "listo para
ejecutar", se le asigna memoria y se copian allí sus segmentos. Entonces, el proceso
cargado compite por el procesador con todos los demás procesos cargados. Si no hay
suficiente memoria, el proceso de intercambio examine la tabla de procesos para
determinar cuál puede ser interrumpido y llevado al disco.
Hay una pregunta que surge entonces es ¿cuál de los posibles procesos que están
cargados será desactivado y cambiado a memoria secundaria? Los procesos que se
eligen primero son aquellos que están esperando operaciones lentas (E/S), o que llevan
cierto tiempo sin haberse movido al disco. La idea es tratar de repartir en forma equitativa
las oportunidades de ejecución entre todos los procesos, tomando en cuenta sus historias
recientes y sus patrones de ejecución.
Otra pregunta es ¿cuál de todos los procesos que están en el disco será traído a memoria
principal?. La decisión se toma con base en el tiempo de residencia en memoria
secundaria. El proceso más antiguo es el que se llama primero, con una pequeña
penalización para los grandes.
Cuando Unix opera en máquinas más grandes, suele disponer de manejo de memoria de
paginación por demanda. En algunos sistemas el tamaño de la página en Unix es de 512
bytes; en otros, de 1024. Para reemplazo se usa un algoritmo que mantiene en memoria
las páginas empleadas más recientemente.
Las rutinas que el sistema emplea para ejecutar operaciones de E/S están diseñadas para
eliminar las diferencias entre los dispositivos y los tipos de acceso. No existe distinción
entre acceso aleatorio y secuencial, ni hay un tamaño de registro lógico impuesto por el
sistema. El tamaño de un archivo ordinario está determinado por el número de bytes
escritos en él; no es necesario predeterminar el tamaño de un archivo.
Por último, y debido a que los manejadores de los dispositivos son programas escritos en
lenguaje C, es relativamente fácil reconfigurar el sistema para ampliar o eliminar
dispositivos de E/S en la computadora, así como para incluir tipos nuevos.
Lenguaje de control del sistema operativo
Entre los rasgos distintivos de Unix está el lenguaje de control que emplea, llamado Shell.
Es importante analizar dos funciones más de Shell, llamadas redireccionamiento e
Interconexión.
Una parte de la orden que comience con el símbolo ? se considera como el nombre del
archivo que será abierto por Shell y que se asociará con la entrada estándar; en su
ausencia, la entrada estándar se asigna a la terminal. En forma similar, un archivo cuyo
nombre está precedido por el símbolo > recibe la salida estándar de las operaciones.
llama a ejecución al programa califica (que ya debe estar compilado y listo para ejecutar)
y detecta la existencia de un archivo que toma el lugar de la entrada estándar y de otro
que reemplaza a la salida estándar. Después, pasa como datos de lectura los contenidos
del archivo examen recién abierto (que debe existir previamente) al programa ejecutable.
Conforme el programa produce datos como salida, éstos se guardan en el archivo resulta
que Shell crea en ese momento.
En Unix existe también la posibilidad de ejecutar programas sin tener que atenderlos en
forma interactiva, sino simulando paralelismo (es decir, atender de manera concurrente
varios procesos de un mismo usuario). Esto se logra agregando el símbolo & al final de la
línea en la que se escribe la orden de ejecución. Como resultado, Shell no espera que el
proceso "hijo'' termine de ejecutar (como haría normalmente), sino que regresa a atender
al usuario inmediatamente después de haber creado el proceso asincrónico, simulando en
esta forma el procesamiento por lotes ( batch ) Para cada uno de estos procesos Shell
proporciona, además, el número de identificación, por lo que si fuera necesario el usuario
podría cancelarlo posteriormente, o averiguar el avance de la ejecución.
La comunicación interna entre procesos (es decir, el envío de mensajes con los que los
diversos procesos se sincronizan y coordinan) ocurre mediante el mecanismo de
interconexiones (pipes) ya mencionado, que conecta la salida estándar de un programa a
la entrada estándar de otro, como si fuera un conducto con dos extremos, cada uno de los
cuales está conectado a su vez a un proceso distinto. Desde Shell puede emplearse este
mecanismo con el símbolo | en la línea donde se escribe la orden de ejecución.
Así en el ejemplo:
Con esta otra orden, por ejemplo, se busca obtener todos los renglones que contengan
las palabras "contrato" o "empleado" en los archivos en disco cuyos nombres comiencen
con la letra "E" (lo cual se denota mediante una expresión regular). Para lograrlo, se hace
uso de una función llamada egrep, especial para el manejo de patrones y combinaciones
de expresiones regulares dentro de los archivos:
El tercer renglón, por ejemplo, muestra el noveno renglón del archivo Emple2, que
contiene una de las palabras buscadas.
Como Unix fue diseñado para servir de entorno en las labores de diseño y producción de
programas, ofrece - además de su filosofía misma - un rico conjunto de herramientas para
la creación de sistemas complejos, entre las que destaca el subsistema make. Este último
ofrece una especie de lenguaje muy sencillo, con el cual el programador describe las
relaciones estructurales entre los módulos que configuran un sistema completo, para que
de ahí en adelante make se encargue de mantener el sistema siempre al día. Es decir, si
se modifica algún módulo, se reemplaza o se añade otro, las compilaciones individuales,
así como las cargas y ligas a que haya lugar, serán realizadas en forma automática, por
esta herramienta. Con una sola orden, entonces, es posible efectuar decenas de
compilaciones y ligas predefinidas entre módulos, y asegurarse de que en todo momento
se tiene la última versión de un sistema, ya que también se lleva cuenta automática de las
fechas de creación, modificación y compilación de los diversos módulos. De esta manera,
se convierte en una herramienta casi indispensable al desarrollar aplicaciones que
requieren decenas de programas que interactúan entre sí o que mantienen relaciones
jerárquicas.
Otras herramientas interesantes son ar, diseñado para crear y mantener bibliotecas de
programas (que serán luego utilizadas por otros programas para efectuar las funciones ya
definidas sin tener que duplicar el código); awk, un lenguaje para reconocimiento de
patrones y expresiones regulares (es decir, generadas por una gramática regular o de tipo
3), útil para extraer información de archivos en forma selectiva; lex, un generador de
analizadores lexicográfico, y yacc, un compilador de compiladores. Estos dos últimos se
emplean como herramientas en la creación de compiladores y procesadores de lenguajes.
La lista completa de funciones, órdenes de subsistemas que forman parte de las utilerías
del sistema operativo Unix es realmente grande, e incluye más de un centenar, que se
pueden agrupar en los siguientes rubros:
Compiladores de compiladores.
Ejecución de programas.
Facilidades de comunicaciones.
Macroprocesamiento.
Manejo de gráficas.
Manejo de información.
Manejo de terminales.
Mantenimiento y respaldos.
INTERNETWORKING
Introducción
Uno de los factores más importantes que ha producido que la tecnología de redes se
incorpore definitivamente al tronco principal de procesamiento, es la habilidad de conectar
sistemas LAN y no LAN entre sí.
Los equipos de interconexión, (bridge, router, gateway, switchs, entre otros), han facilitado
este proceso al conectar equipos, sistemas y/o redes no sólo de un único proveedor, sino
de múltiples proveedores entre sí.
El único problema para implantar el modelo OSI fue que muchas compañías ya habían
desarrollado métodos para interconectar su hardware y software con otros sistemas.
Aunque los vendedores pidieron un soporte futuro para los estándares OSI, sus propios
métodos estaban a menudo tan atrincherados que el acercamiento hacia OSI era lento o
inexistente.
Varias compañías de redes expandieron sus propios estándares para ofrecer soporte a
otros sistemas, y relegaron los sistemas abiertos a un segundo plano.
Sin embargo, los estándares OSI ofrecen un modo útil para comparar la interconexión de
redes y la interoperabilidad entre varios fabricantes.
En el modelo OSI, hay varios niveles de protocolos en una jerarquía de protocolos,
trabajando cada uno en diferentes niveles del hardware y el software.
Capa
Función de los protocolos de esta REPET BRD ROUT GTWA
capa HUB G
7 Aplicación Funciones y tópicos específicos
Transforma los datos en un
6 Presentación formato que todos puedan
entender
5 Sesión Facilita las comunicaciones entre
los solicitantes y proveedores de
servicios.
Asiste a las capas superiores a
detectar los proveedores de
servicios.
Evita que las dificultades de la red
se transmitan a las capas
superiores.
4 Transporte
Organiza los mensajes en
segmentos y los entrega en forma
confiable a la capa de sesión.
Transportan los datos a
ubicaciones especificas dentro de
3 Red
la red o entre múltiples redes
independientes.
Organizan los bits en frames,
Enlace de detectan errores, controlan el flujo
2
datos de datos e identifican las
computadoras en la red.
1 Física Coordinan la transmisión de bits.
Los niveles más bajos de la jerarquía de protocolos definen las reglas que los vendedores
pueden seguir para hacer que sus equipos puedan interconectarse con los de otros
fabricantes. Los niveles más altos definen como interopera el software.
Cuanto más subimos dentro de la jerarquía, las comunicaciones entre el software
ejecutado en diferentes sistemas se vuelven más sofisticadas.
Cada nivel de la jerarquía de protocolos OSI, tiene una función específica y definen un
nivel de comunicaciones entre sistemas.
Cuando se define un proceso de red, como la petición de un archivo por un servidor, se
empieza en el punto desde el que el servidor hizo la petición. Entonces, la petición va
bajando a través de la jerarquía y es convertida en cada nivel para poder ser enviada por
la red. Cada nivel añade a los paquetes su propia información de seguimiento.
Los niveles definen simplemente las reglas que son las aplicaciones, los controladores de
red y el hardware de red para comunicarse.
Del mismo modo, una jerarquía de protocolos define reglas que los programadores usan
para crear aplicaciones conscientes de la red. En el fondo son reglas básicas que definen
las comunicaciones entre tipos.
Los hub's son utilizados en el diseño e implementación de una red alambrica coherente y
fácilmente administrable.
En un diseño típico los hub's son instalados en rack's o armarios especiales a los que
llega todo el cableado de un piso del edificio de la empresa, encontrándose uno, (o más),
de estos armarios por cada piso a interconectar. Estos cables se conectan a cada puerto
del hub; el cual a su vez lo hace al backbone de la red, que corre de piso en piso
interconectando cada armario.
Esto divide a la red en agrupamientos lógicos y físicos, lo que simplifica la resolución de
problemas y el facilita el futuro crecimiento.
Repeater
A medida que las señales eléctricas se transmiten por un cable, tienden a degenerarse
proporcionalmente a la longitud del cable. Este fenómeno se conoce como atenuación.
Un repeater, (repetidor), es un dispositivo sencillo que se instala para amplificar la señal
del cable, de forma que se pueda extender la longitud de la red.
El repetidor normalmente no modifica la señal, excepto en que la amplifica para poder
retransmitirla por el segmento de cable extendido. Algunos repetidores también filtran el
ruido.
Características
Un bridge, (puente), añade un nivel de inteligencia a una conexión entre redes. Conecta
dos segmentos de redes iguales o distintos. Podemos ver un puente como un clasificador
de correo que mira las direcciones de los paquetes y los coloca en la red adecuada.
Se puede crear un puente para dividir una red amplia en dos o más pequeñas. Esto
mejora el rendimiento al reducir el tráfico, ya que los paquetes para estaciones concretas
no tienen que viajar por toda la red.
También se usan para conectar distintos tipos de redes, como Ethernet y Token Ring.
Tipos de puentes
Los puentes con aprendizaje, o adaptativos, se "aprenden" las direcciones de las otras
estaciones de la red, por lo que no será necesario que el instalador del puente o el
responsable cree una tabla con estas direcciones en el puente. Las estaciones de trabajo
difunden continuamente sus señales de identificación, y los puentes pueden construir sus
tablas a partir de estas direcciones. En la actualidad, la mayor parte de los puentes del
mercado poseen aprendizaje.
Puentes en tándem
Cuando una conexión con un puente es crítica, puede ser necesario crear puentes
redundantes tolerantes a fallos. Si una falla, el otro puede continuar con el tráfico. Sin
embargo cuando hay dos enlaces existe la posibilidad de que el tráfico pase por uno y
vuelva por el otro de nuevo creándose un esquema circular del movimiento de paquetes
que continuaría sin fin.
Los puentes en tándem detectan y rompen los bucles anulando ciertas conexiones.
Puentes con distribución de carga
Switch
Los switchs son otro tipo de dispositivo utilizados para enlazar LAN's separadas y proveer
un filtrado de paquetes entre ellas.
Un LAN switch es un dispositivo con múltiples puertos, cada uno de los cuales puede
soportar una simple estación de trabajo o bien toda una red Ethernet o Token Ring.
Con una LAN diferente conectada a cada uno de los puertos del switch, este puede
conmutar los paquetes entre ellas, como sea necesario.
En efecto, actúa como un bridge multi-puerto, los paquetes son filtrados por el switch
basándose en su dirección de destino.
Los switchs son utilizados para aumentar la performance en las redes de las
organizaciones, segmentando redes grandes en varias más pequeñas. Lo cuál disminuye
la congestión a la vez que continúa proveyendo la interconectividad necesaria.
Los switchs aumentan la performance de las redes ya que cada puerto posee un ancho
de banda dedicado, sin requerir de los usuarios el cambio alguno de equipamiento, tales
como NIC's, (Network interface Card), Hubs, cableado o cualquier router o bridge ya
instalado.
Estos dispositivos pueden soportar numerosas comunicaciones simultáneas.
Router
Los routers, (enrutadores), son críticos para las redes de gran alcance que utilizan
enlaces de comunicaciones remotas. Mantienen el tráfico fluyendo eficientemente sobre
caminos predefinidos en una interconexión de redes compleja.
Si se utilizan líneas alquiladas de baja de velocidad, es importante filtrar los paquetes que
no deban entrar en la línea. Además, las grandes redes que se extienden por todo el
mundo pueden contener muchas conexiones remotas redundantes. En ese caso, resulta
importante encontrar el mejor camino entre el origen y el destino. Este es el objeto de los
routers.
Pueden inspeccionar la información en el nivel de red para determinar la información de la
mejor ruta. Muchos productos de encaminamiento, (routing), ofrecen soporte para varios
métodos de comunicaciones, como T1 y X.25.
Las siguientes son algunas razones para utilizar routers en lugar de bridges:
Estos dispositivos pueden ser específicos para un protocolo o bien manejar diversos
protocolos.
Los routers permiten dividir una red en redes lógicas, siendo estas más sencillas de
manejar. Cada segmento de la red tiene su propio número de red local, y cada estación
de dicho segmento tiene su propia dirección. Esta es la información contenida en el nivel
de red al que acceden los routers. La segmentación de las redes permite evitar las
"tormentas de difusión". Estas ocurren cuando los nodos no se conectan de forma
adecuada y la red se satura con la difusión de mensajes intentando localizar los destinos.
Los métodos de filtrado y selección del mejor camino utilizados al segmentar ayudan a
reducir este efecto.
Protocolos Redes
IPX/SPX SNA
TCP/IP X.25
SLIP IS-IS
PPP SNAP
Definiciones de términos
Antes de empezar a configurar el software de AppleTalk para NetWare debería conocer los
siguientes términos:
La siguiente figura representa los protocolos AppleTalk estándares y las respectivas capas ISO, tal
y como se describen en Inside AppleTalk, second edition .
La siguiente tabla lista los protocolos AppleTalk utilizados por AppleTalk para NetWare. También
describe la función de cada uno de los protocolos. Para obtener información más detallada acerca
de estos protocolos, consulte Inside AppleTalk, segunda edición .
Protocolo Descripción
AARP Protocolo de resolución de direcciones AppleTalk. AARP asigna las direcciones AppleTalk
(números de red y de nodo) a las direcciones de hardware de la LAN (por ejemplo, direcciones
Ethernet o Token ring) y gestiona el proceso de cada nodo AppleTalk adquiriendo la única
dirección de AppleTalk en estos medios.
ADSP Protocolo de flujo de datos AppleTalk. ADSP permite que dos programas se comuniquen a través
de una conexión de flujo de datos de duplicación completa en la que cada programa pueda leer o
escribir bytes de datos con entrega fiable.
AEP Protocolo de eco AppleTalk. AEP es un protocolo de soporte que facilita que un nodo "bote" un
paquete de otro nodo. En el , tanto el router como el stack dan soporte al Protocolo de eco.
ASP Protocolo de sesión AppleTalk. ASP añade la función de sesión al ATP (descrito a continuación)
y trabaja con éste facilitando que dos procesos intercambien de manera fiable una secuencia de
transacciones.
AURP Protocolo de encaminamiento basado en la actualización. AURP facilita sólo dos funciones: el
intercambio de información de encaminamiento sólo cuando tiene lugar un cambio en la interred
(en contraposición al intercambio de información en una programación definida) después del
intercambio inicial de información de encaminamiento, y el proceso de túnel IP. Protocolo de
encaminamiento basado en actualización AppleTalk" si desea obtener información
complementaria.
DDP Protocolo de entrega de datagramas. DDP define zócalos en los nodos AppleTalk y define la
entrega de datagramas (un paquete) entre zócalos. Proporciona un mecanismo para direccionar
cualquier nodo en sólo una interred AppleTalk.
LAP Protocolo de acceso al enlace. LAP incluye protocolos de nivel de enlace de datos para Ethernet
(ELAP), LocalTalk* (LLAP), y token ring (TLAP). El LAP oculta la información específica de
medios a otros niveles de AppleTalk y envía paquetes a un enlace de hardware específico.
NBP Protocolo de enlace de nombre. NBP proporciona a un usuario listas de nombres de servicios y
encuentra las direcciones de la red de esos nombres. Cuando los usuarios solicitan un servicio
AppleTalk en la aplicación Selector de Macintosh, el NBP se encarga de difundir la petición en la
zona seleccionada y visualiza los nombres de los servicios correspondientes en el Selector.
Consulte "Protocolo de enlace de nombre""Protocolo de enlace de nombre" si desea obtener más
información sobre el funcionamiento de NBP.
PAP Protocolo de acceso a la impresora. PAP permite a los usuarios de Macintosh acceder a las
colas de impresión de la red AppleTalk.
RTMP Protocolo de mantenimiento de la tabla de rutas. Los routers usan el RTMP para intercambiar la
información necesaria para construir y mantener cada una de las tablas de rutas del router. Esto
permite que los routers se detecten entre sí y permite desplazar paquetes desde un punto de la
interred a otro. Los routers AppleTalk de la interred que utilizan el RTMP de forma continua
mantienen las tablas de encaminamiento mediante el intercambio de paquetes RTMP. Consulte
el "Protocolo de mantenimiento de la tabla de rutas""Protocolo de mantenimiento de la tabla de
rutas" si desea obtener más información.
ZIP Protocolo de información de zonas. ZIP asocia nombres de zona con números de red y utiliza las
consultas para mantener esta asignación cuando se añaden nuevas zonas a una interred.
AppleTalk utiliza zonas para subdividir la interred de manera lógica para que los usuarios
encuentren los servicios más fácilmente. Los routers usan el ZIP para solicitar y proporcionar
información de la zona cuando un router aparece con una nueva configuración de red. El ZIP
también permite a los nodos consultar y tratar con zonas de una interred. Si desea obtener más
información, consulte "Conservación de la información de zonas en una interred""Conservación
de la información de zonas en una interred"
Direccionamiento
Las direcciones identifican las ubicaciones exactas de redes, nodos y servicios. En AppleTalk, las
direcciones de nodo consisten en una parte del número de red y una parte del número del nodo (en
el formato de red#.) nodo#, donde un número de red es un valor de dos bytes (dieciséis bits) y un
número de red, un valor de un byte (ocho bits) .
Cada nodo adquiere de manera dinámica un número de nodo de 8 bits al conectarse a la red.
Intentará utilizar de nuevo la dirección y el número del nodo la próxima vez que se conecte a la red.
Si el nodo ve que su número anterior ya se utiliza, seguirá intentando hasta encontrar una dirección
de nodo exclusiva.
La parte de la red de una dirección AppleTalk puede ser una de las dos siguientes: Fase 1 ó Fase
2.
El direccionamiento Fase 1 es el formato de dirección utilizado por las redes AppleTalk originales,
es decir, por las redes no extendidas. AppleTalk Fase 2 introdujo rangos en la programación de
direcciones de redes, incrementando significativamente el número de dispositivos que podrían
existir en una red. Las redes que proporcionan soporte al direccionamiento Fase 2 se denominan
redes extendidas.
Una red que puede dar soporte a direccionamientos de red de Fase 2 se considerará como una red
extendida. Las redes AppleTalk que dan soporte a direccionamientos de red de Fase 2 incluyen
EtherTalk* 2.0 y TokenTalk*.
En una red de Fase 2 extendida como EtherTalk 2.0, puede asignar a cada segmento de la red un
rango consecutivo de números de redes de 16 bits exclusivos, como, por ejemplo, el rango 1 -10.
Asimismo, puede asignar hasta 255 nombres a cada red extendida. Cada número de red puede
proporcionar soporte a hasta 253 nodos (los números de nodo 0, 254 y 255 se reservan para
AppleTalk). Cada nodo de una red extendida utiliza una combinación completa de 24 bits de
número de red y de nodo como única identificación. Esta programación aumenta el límite teórico
del número de nodos por red hasta un número superior a 16 millones.
En redes extendidas, cada nodo adquiere un número de inicio seleccionando en primer lugar un
número de red de un "rango de inicio" reservado (65.280 de 65.534) y luego encontrando un
número de nodo no utilizado en la red. Con estos números de inicio el nodo puede comunicarse
con el router y puede adquirir un número de red válido de un rango configurado para la red. Igual
que en las redes no extendidas, el nodo utiliza la misma dirección al volverse a conectar a la red
después de haberse desactivado, a menos que otro nodo ya tenga dicha dirección.
Las redes extendidas requieren un rango de red y una lista de zonas. A continuación le ofrecemos
información detallada sobre rangos de red y listas de zonas:
Un rango de red es un rango consecutivo de números de red válidos. El tamaño del rango
de la red que se asigna determinará el número máximo de dispositivos AppleTalk de esa
red; por ejemplo, una red extendida con rango 1-10 podría dar soporte a hasta 10 x 253 ó
2.530 nodos. No existe ningún límite codificado por el hardware para el tamaño de un
rango de redes, no obstante, para un funcionamiento óptimo, debería especificar un rango
que se adapte a sus necesidades. Un rango ancho utiliza números de red. Si existen
routers de Fase 1 en la interred se requiere un rango de uno (como 10-10).
NOTA: Una red no extendida puede comunicarse con una red extendida a través de un router AppleTalk.
Para obtener más información, consulte "Direccionamiento para redes no extendidas".
Todos los routers AppleTalk conectados a una red utilizan el mismo rango para esa red, y
ninguna otra red podrá utilizar ese rango o cualquier número incluido en él.
Una lista de zonas contiene hasta 255 nombres de zona; se configura una zona como la
zona por defecto. Todos los routers AppleTalk de una red deben tener la misma lista de
zonas.
Los nodos y las aplicaciones utilizan el NBP para encontrar las direcciones de nodos y de servicios
tales como servidores de archivos e impresora. El NBP asigna nombres de entidades de red a
direcciones AppleTalk. Como por lo general los usuarios consideran más sencillo recordar nombres
que direcciones numéricas, éste les permite especificar nombres descriptivos o simbólicos para las
entidades a las que hacen referencia las aplicaciones mediante direcciones numéricas.
La aplicación Selector constituye un ejemplo de cómo AppleTalk utiliza el NBP. Los usuarios o las
aplicaciones crean una consulta NBP seleccionando una zona y el tipo de dispositivo o servicio en
el que están interesados. Estos dos bloques de información constituyen una consulta NBP que
equivale a lo siguiente:
"Deseo que todos los dispositivos del tipo seleccionado (por ejemplo, un servidor de archivos, un
servidor de correo o una impresora) en la zona seleccionada (ubicación del servicio) me respondan
(ubicación del usuario) con sus respectivos direccionamientos de red.
A continuación se enviará la consulta a la zona adecuada. Todos los servicios o dispositivos del
tipo seleccionado de la zona seleccionada contestarán con una respuesta NBP. Una respuesta
NBP, según el contenido de la consulta, incluye el nombre, tipo y dirección de la red (dirección
AppleTalk) del servicio proporcionado por un nodo.De este modo, las aplicaciones podrán
comunicarse con el dispositivo basado en la dirección, mientras que los usuarios sólo tendrán que
referirse al servicio por su nombre. La respuesta NBP contiene información equivalente a lo
siguiente:
"Los nombres y tipos de servicios disponibles en esta zona y dirección de la red (ubicación del
servicio) se devolverán a la estación de petición (la ubicación del usuario)".
Si se han configurado los filtros mediante el router receptor, este router utilizará dichos filtros para
determinar el abandono o el reenvío de cada una de las repuestas NBP.
La información gobernada mediante protocolos se agrupa en una serie de bits que incluye
elementos de control y de datos denominada paquete.La información del paquete se transmite
como un todo dentro de una trama de paquete. Un controlador LAN adapta los diferentes tipos de
trama de paquete utilizados por cada tipo de red específica a un formato que el AppleTalk pueda
procesar. Si desea obtener más información sobre tipos de trama de paquetes, consulte Inside
AppleTalk, second edition .
El AppleTalk para NetWare proporciona soporte a los tipos de trama de paquetes LANde AppleTalk
siguientes: