Inicialmente vamos a suponer que la comunicación es perfecta, sin errores, por lo que no tenemos que preocuparnos de comprobar el CRC ni de retransmisiones.
El receptor está siempre disponible y preparado para recibir tramas con un espacio de buffer infinito, por lo que no hemos de efectuar control de flujo.
El emisor está siempre preparado para transmitir cualquier cosa que reciba de la capa de red. En este caso el único evento posible es frame_arrival.
En una primera aproximación a la vida real supongamos ahora que el receptor no siempre está disponible para recibir, por tener ocupado su buffer de entrada; esto puede ocurrir bien porque la capa de enlace no sea capaz de 'digerir' las tramas con la suficiente rapidez, o porque la capa de red del receptor no sea lo bastante rápida.
En este caso lo más sencillo es que el emisor espere confirmación después de enviar cada trama de forma que sólo después de recibir la confirmación envíe la siguiente.
De esta manera se garantiza la no saturación del receptor. Esto es lo que se conoce como un protocolo de parada y espera.
Siguiendo en nuestro proceso de aproximar el protocolo a la realidad contemplemos ahora la posibilidad de que el canal de comunicación no sea perfecto; las tramas pueden alterarse debido al ruido de la comunicación, o incluso perderse por completo. Gracias a la presencia del campo CRC el receptor podrá detectar la llegada de una trama defectuosa, en cuyo caso pedirá retransmisión. La posibilidad de que una trama se pierda por completo introduce una complicación adicional, ya que si esto le ocurre por ejemplo a un acuse de recibo el emisor pasado un tiempo razonable enviará la trama de nuevo pensando que no ha llegado la primera vez, lo cual produciría una trama duplicada que el receptor pasaría a la capa de red; esto es inaceptable para cualquier protocolo.
Para poder reconocer cuando una trama llega duplicada lo más sencillo es numerarlas; en nuestro caso el emisor no enviará una trama hasta recibir el acuse de recibo de la anterior, por lo que nos bastaría con numerar las tramas con un campo de un solo bit como 0,1,0,1, etc.
Los protocolos donde el emisor espera una confirmación o acuse de recibo para cada dato enviado se denominan protocolos PAR (Positive Acknowledgement with Retransmission) o también ARQ (Automatic Repeat reQuest).
En este protocolo el receptor no realiza la comprobación del campo CRC; para él toda trama que reciba de la capa física es correcta; se supone que las tramas pueden llegar o perderse, pero no llegar de forma parcial o alteradas. La realidad no es así, como ya sabemos.
Podemos considerar que en nuestro caso hay un nivel inferior que se ocupa de comprobar el CRC, y que descarta la trama en caso de detectar cualquier error. De esta forma el efecto sería equivalente a la suposición simplista de que las tramas o no llegan o llegan perfectamente.
Generalmente todo lo relativo al control de errores y cálculo de CRCs se realiza en rutinas implementadas en el hardware de comunicaciones de los equipos, y es por tanto relativamente independiente del protocolo utilizado. En cierto modo podemos considerar el cálculo de CRCs como la parte 'baja' de la capa de enlace.
Los protocolos que hemos visto hasta ahora transmitían datos en una sola dirección; el canal de retorno era utilizado únicamente para enviar tramas de acuse de recibo (ACK) cuyo contenido era irrelevante.
Si tuviéramos que transmitir datos en ambas direcciones podríamos utilizar dos canales semi-dúplex con los protocolos anteriores, pero sería mas eficiente utilizar el canal semi-dúplex ya existente para enviar en cada sentido tanto tramas de datos como de ACK; el campo kind nos permitirá diferenciar unas de otras.
Aun más eficiente sería, en vez de generar una trama ACK de manera automática cada vez que se recibe algo, esperar a enviarla cuando haya información útil que enviar; en tal caso el ACK viajaría 'gratis' y se ahorraría el envío de una trama. Esta técnica se conoce con el nombre de piggybacking o piggyback acknowledgement; (en inglés piggyback significa llevar a alguien o algo a hombros o a cuestas).
Ahora bien, para 'montar' el ACK en una trama de datos es preciso que esta llegue pronto, o de lo contrario el emisor reenviará la trama, lo cual daría al traste con el pretendido beneficio del piggybacking; como no es posible saber de antemano cuando va a llegar el siguiente paquete de la capa de red, generalmente se adopta una solución salomónica: se espera un determinado tiempo y si no llega ningún paquete en ese tiempo se genera una trama ACK; en este caso el tiempo de espera debe ser sensiblemente inferior al timer del emisor.
En nuestro protocolo anterior las tramas se numeraban 0, 1, 0, 1, etc. La numeración sólo era utilizada en el receptor para verificar la trama recibida, no para informar al emisor de a que trama se aplicaba el ACK.
Esto producía algunos problemas como hemos visto en el caso de un receptor lento y una trama que se perdía. Si el receptor informa en la trama ACK de la trama de datos recibida el problema de que el emisor tome un ACK como correspondiente al paquete equivocado desaparece, el protocolo se hace más robusto ya que tanto emisor como receptor llevan control de la trama recibida.
Se supone que a cada trama de datos enviada desde un extremo le sucede otra trama de datos desde el otro extremo. Cada trama enviada contiene el número de secuencia correspondiente (seq), el número correspondiente al paquete recién recibido del otro lado (ack) y los datos a enviar. Para que el protocolo funcione correctamente es preciso convenir en que uno de los lados inicie la comunicación, y el otro le siga. De lo contrario podría ocurrir que ambos lados iniciaran la comunicación a la vez, donde cada trama es enviada dos veces; también se enviarían duplicados en caso de tener los timers demasiado bajos. Sin embargo, los duplicados serían correctamente detectados a partir de la información de secuencia y la información transmitida a la capa de red sería correcta.
Antes decíamos que los protocolos ARQ (Automatic Repeat reQuest) son aquellos en que se espera confirmación para cada dato enviado.
Se suelen distinguir dos tipos de ARQ, el RQ 'ocioso' (idle RQ), que corresponde a los protocolos de parada y espera, o de ventana deslizante de un bit, y el RQ continuo (continuous RQ) que se utiliza en los protocolos de ventana deslizante de más de un bit (protocolo que no veremos).
Cuando se utiliza un protocolo de ventana deslizante de más de un bit el emisor no actúa de forma sincronizada con el receptor; cuando el receptor detecta una trama defectuosa hay varias posteriores ya en camino, que llegarán irremediablemente a él, aún cuando reporte el problema inmediatamente.
Existen dos posibles estrategias en este caso: o El receptor ignora las tramas recibidas a partir de la errónea y solicita al emisor retransmisión de todas las tramas subsiguientes. Esta técnica se denomina retroceso n y corresponde a una ventana deslizante de tamaño uno en el receptor. El receptor descarta la trama errónea y pide retransmisión de ésta, pero acepta las tramas posteriores que hayan llegado correctamente.
Esto se conoce como repetición selectiva y corresponde a una ventana deslizante mayor de 1 en el receptor (normalmente de igual tamaño que la ventana del emisor). En el caso de retroceso n el receptor se asegura que las tramas se procesarán en secuencia, por lo que no tiene que reservar espacio en el buffer para más de una trama. En el caso de repetición selectiva el receptor ha de disponer de espacio en el buffer para almacenar todas las tramas de la ventana, ya que en caso de pedir retransmisión tendrá que intercalar en su sitio la trama retransmitida antes de pasar las siguientes a la capa de red.
En cualquiera de los dos casos el emisor deberá almacenar en su buffer todas las tramas que se encuentren dentro de la ventana, ya que en cualquier momento el receptor puede solicitar la retransmisión de alguna de ellas.
La repetición selectiva consiste en aprovechar aquellas tramas correctas que lleguen después de la errónea, y pedir al emisor que retransmita únicamente esta trama. Su funcionamiento corresponde al de una ventana deslizante de igual tamaño en el emisor que en el receptor. Como a la capa de red se le requiere que transfiera los paquetes a la capa de red en orden, para que esta estrategia funcione correctamente el receptor deberá mantener en su buffer todas las tramas posteriores hasta que reciba correctamente la trama errónea; en la práctica esto supone tener un buffer lo suficientemente grande para almacenar un número de tramas igual al tamaño de ventana que este utilizando, ya que por ejemplo con una ventana de tamaño 7 podría ocurrir que la trama se perdiera en el camino y se recibieran correctamente las tramas 1 a 6 antes de recibir la 0.
La posibilidad de una recepción no secuencial de tramas plantea algunos problemas nuevos. Por ejemplo, supongamos que el emisor envía las tramas 0 a 6, las cuales son recibidas correctamente. Entonces el receptor realiza las siguientes acciones: o las transmite a la capa de red, o libera los buffers correspondientes o avanza la ventana para poder recibir siete tramas más, cuyos números de secuencia podrán ser 7,0,1,2,3,4,5 o envía un ACK para las tramas 0 a 6 recibidas Imaginemos ahora que el ACK no llega al emisor. Éste supondrá que ninguna de las tramas ha llegado, por lo que reenviará las tramas 0 a 6 de nuevo. De estas las tramas 0 a 5 se encuentran dentro de la ventana del receptor.
En procesamiento secuencial el receptor no aceptaría estas tramas si no recibe antes la trama 7 pendiente, pero con retransmisión selectiva se aceptarían y se pediría retransmisión de la trama 7; una vez recibida ésta se pasaría a la capa de red seguida de las tramas 0 a 5 antes recibidas, que serían duplicados de las anteriores.
En este caso el receptor pasará tramas duplicadas al nivel de red, con lo que el protocolo es erróneo. La solución a este conflicto está en evitar que un mismo número de secuencia pueda aparecer en dos ventanas consecutivas. Por ejemplo si el tamaño de ventana es de 7 el número de secuencia podría ser de 4 bits (módulo 16, numeración 0-15) con lo que la ventana del receptor sería 0-6, 7-13, 14-4, etc. Al no coincidir números de secuencia en ventanas contiguas se puede efectuar el proceso no secuencial de tramas sin conflicto. Con un número de secuencia de 4 bits el tamaño de ventana se podría ampliar a 8 sin conflicto, ya que en tal caso la ventana permitida oscilaría en el rango 0-7 y 8-15.
El valor máximo de la ventana para un protocolo de repetición selectiva en el caso general sería (MAX_SEQ+1)/2. Aunque el número de secuencia se ha duplicado respecto al caso anterior, el número de tramas que hay que mantener en el buffer no necesita ser superior al tamaño de ventana, ya que este será el número máximo de tramas que habrá que manejar en cualquier circunstancia. Como es lógico la técnica de repetición selectiva da lugar a protocolos más complejos que la de retroceso n, y requiere mayor espacio de buffers en el receptor (pues hemos pasado de almacenar una trama a almacenar tantas como lo requiera el tamaño de ventana). Sin embargo, cuando las líneas de transmisión tienen una tasa de errores elevada da un mejor rendimiento, ya que permite aprovechar todas las tramas correctamente transmitidas. La decisión de cual utilizar se toma valorando en cada caso la importancia de estos factores: complejidad, espacio en buffers, tasa de errores y eficiencia.
(High-Level Data Link Control) es un protocolo de comunicaciones de datos punto a punto entre dos elementos basado en el ISO 3309. Proporciona recuperación de errores en caso de pérdida de paquetes de datos, fallos de secuencia y otros. Mediante una red de conmutadores de paquetes conectados con líneas punto a punto entre ellos y con los usuarios se constituye la base de las redes de comunicaciones X25. Este es un protocolo de propósito general, que opera a nivel de enlace de datos. Este ofrece una comunicación confiable entre el trasmisor y el receptor. Es el protocolo más importante para el enlace de datos (IS0 3309, IS0 4335). No solo porque es el más utilizado, sino porque además es la base para otros protocolos importantes de esta capa, en los que se usan formatos similares e iguales procedimientos a los que se usan en HDLC Características básicas del HDLC HDLC define tres tipos de estaciones, dos configuraciones del enlace y tres modos de operación para la transferencia de los datos. Los tres tipos de estaciones son:
• Estación primaria: se caracteriza porque tiene la responsabilidad de controlar el funcionamiento del enlace. Las tramas generadas por la primaria se denominan órdenes.
• Estación secundaria: funciona bajo el controeeel de la estación primaria. Las tramas generadas por la estación secundaria se denominan respuestas. La primaria establece un enlace lógico independiente para cada una de las secundarias presentes en la línea.
• Estación combinada: es una mezcla entre las características de las primarias y las secundarias. Una estación de este tipo puede generar tanto órdenes como respuestas.
Las dos posibles configuraciones del enlace son:
• Configuración no balanceada: está formada por una estación primaria y una o más secundarias. Permite transmisión full-duplex y semi-duplex.
• Configuración balanceada: consiste en dos estaciones combinadas. Permite igualmente transmisión full-duplex o semi-duplex.
Los tres modos de transferencia de datos son:
• Modo de respuesta normal (NRM, Normal Response Mode): se utiliza en la configuración no balanceada. La estación primaria puede iniciar la transferencia de datos a la secundaria, pero la secundaria solo puede transmitir datos usando respuestas a las órdenes emitidas por la primaria.
• Modo balanceado asíncrono (ABM, Asynchronous Balanced Mode): se utiliza en la configuración balanceada. En este modo cualquier estación combinada podrá iniciar la transmisión sin necesidad de recibir permiso por parte de la otra estación combinada.
• Modo de respuesta asíncrono (ARM, Asynchronous Response Mode): se utiliza en la configuración no balanceada. La estación secundaria puede iniciar la transmisión sin tener permiso explicito por parte de la primaria. La estación primaria sigue teniendo la responsabilidad del funcionamiento de la línea, incluyendo la iniciación, la recuperación de errores, y la desconexión lógica.
El NRM suele usarse en líneas con múltiples conexiones y en enlaces punto a punto, mientras que el ABM es el más utilizado de los tres modos; debido a que en ABM no se necesitan hacer sondeos, la utilización de los enlaces punto a punto con full-duplex es más eficiente con este modo. ARM solo se usa en casos muy particulares.
Estructura
HDLC usa transmisión síncrona. Todos los intercambios se realizan a través de tramas, HDLC utiliza un formato único de tramas que es válido para todos los posibles intercambios: datos e información de control. En la Figura se muestra la estructura de una trama HDLC. Al campo de delimitación, de dirección y de control, que preceden al campo de información se denominan cabecera. La FCS junto con el otro campo de delimitación final que está a continuación del campo de datos de denomina cola. Los campos de delimitación están localizados en los dos extremos de la trama, y ambos corresponden a la siguiente combinación de bits 01111110. Se puede usar un único delimitador como final y comienzo de la siguiente trama simultáneamente. A ambos lados de la interfaz entre el usuario y la red, los receptores estarán continuamente intentando detectar esta secuencia para sincronizarse con el comienzo de la trama. Cuando se recibe una trama, la estación seguirá intentando detectar esa misma secuencia para determinar así el final de la trama. Como se usa la secuencia 01111110 en la delimitación de las tramas, es necesario el uso del procedimiento denominado inserción de bits. Por el cual, el emisor cuando deba enviar una cadena que contenga una secuencia de cinco bits en 1 insertará inmediatamente después del quinto 1 un 0. El receptor, tras la detección del delimitador de comienzo, monitorizará la cadena de bits recibida, de tal manera que cuando aparezca una combinación de cinco 1 seguidos, el sexto bit se examinará. Si dicho bit es 0, se eliminará sin más. Si el sexto bit es un 1 y el séptimo es un 0, la combinación se considera como un delimitador. Si los bits sexto y séptimo son ambos igual a 1 se interpreta como una indicación de cierre generada por el emisor.
Cada dato que se envía, es encapsulado en una trama HDLC, esto añadiéndole un header y una cola. El header contiene una dirección HDLC y un campo de control HDLC. La cola contiene un campo de CRC (ciclic redundancy check). Cada trama es separada por un delimitador o bandera con valor hexadecimal 7E. Este flag o bandera se puede utilizar para identificar el inicio de la siguiente trama. Existen tres tipos de trama (DL_PDU): trama de información que transportan los datos del usuario, de supervisión y de gestión (o no numeradas). El orden de inyección de las tramas en el medio de transmisión es LSB (primero el bit menos significativo). Las tramas de supervisión se utilizan para el reconocimiento de tramas, control de flujo y control de errores (siempre que no sea posible hacerlo mediante las tramas de información). Existen cuatro subtramas:

Ready to Receive: Reconocimiento Positivo: RR N Reconoce las tramas hasta la N-1 e indica que la próxima trama que espera recibir es la N. Si tiene el bit P (poll/sondeo) activado indica que la estación primaria está sondeando a la estación secundaria. Si tiene el bit F activado y es después de una selección, indica que el secundario está listo para recibir datos del primario. Si no es después de una selección, la estación secundaria indica a la primaria que no tiene más tramas que transmitir. Normalmente la estación secundaria envía tramas de información hasta que se le acaban los datos y entonces envía una trama RR con F activado para indicar finalización. Ready Not to Receive: Reconocimiento Positivo No Listo Para Recibir: RNR N Reconoce las tramas hasta la N-1 e indica que ahora mismo no puede recibir más tramas. Si tiene el bit P activado sirve para seleccionar la estación secundaria que recibirá los datos, indicando que la estación primaria no va a recibir datos. Si tiene el bit F activado sirve para que la estación secundaria indique a la estación primaria que no está listo para recibir datos. Reject: Rechazo: REJ N Reconoce las tramas hasta la N-1 e indica que a partir de la trama N hay que retransmitir. Selective Reject: Rechazo Selectivo: SREJ N Indica que la trama N no llegó correctamente y debe ser retransmitida. Las órdenes que se pueden encontrar en las tramas de gestión son:

Las órdenes SNRM, SNRME, SARM, SARME, SABM y SABME sirven para activar el modo en que se comunicarán las estaciones: NRM o modo de respuesta normal, ARM o modo de respuesta asíncrona y ABM o modo asíncrono equilibrado, con sus respectivas extensiones (NRME, SARME y SABME). La orden RSET sirve para reiniciar la conexión y poner a cero los contadores y ventanas deslizantes de las tramas. La orden DISC sirve para desconectar la conexión. Campo de Dirección El campo de dirección identifica a la estación secundaria que ha transmitido o que va a recibir la trama. Este campo no se usa en enlaces punto a punto. El mismo tiene normalmente 8 bits, puede usarse también un formato ampliado en el que la dirección tendrá un múltiplo de 7 bits. El bit menos significativo de cada octeto será respectivamente 1 o 0, si es o no el último octeto del campo de dirección. Los 7 bits restantes de cada octeto formarán la dirección propiamente dicha.

Campo de control
En HDLC se definen tres tipos de tramas, cada una con formato diferente para el campo de control. Las tramas de información (tramas-I) transportan los datos generados por el usuario. En estas tramas también se incluye información para el control ARQ de errores y de flujo. Las tramas de supervisión (tramas-S) proporcionan el mecanismo ARQ cuando la incorporación de las confirmaciones en las tramas-I no es factible. Las tramas no numeradas (Tramas- N) proporcionan funciones complementarias para controlar el enlace. El primer o los dos primeros bits del campo de control se utilizan para identificar el tipo de trama. El resto de los bits se ubican en subcampos como se indica en la figura. 6. (c) y (d) Todos los formatos posibles del HDLC contienen el bit sondeo/fin (P/F ¨poll/final¨). Su utilización es dependiente del contexto. Normalmente en las tramas de órdenes se denomina bit P, y se fija a 1 para solicitar (sondear) una respuesta a la entidad HDLC par. En las tramas de respuesta, el bit se denomina F, y se fija a un valor 1 para identificar a la trama tipo respuesta devuelta tras la recepción de una orden.
Campo de información
El campo de información solo está presente en las tramas- I y en algunas tramas N. Este campo puede contener cualquier secuencia de bits, con la única restricción que el número de bits sea igual a un múltiplo entero de 8. La longitud de este campo es variable y siempre será menor que un valor máximo predefinido. Campo para la secuencia de comprobación de la trama La secuencia de comprobación de la trama (FCS, Frame Check Sequence) es un código para la detección de errores calculado a partir de los bits de la trama excluyendo los delimitadores.
Funcionamiento del HDLC
El funcionamiento del HDLC implica tres fases. Primero, uno de los dos extremos inicia el enlace de datos, de tal manera que las tramas se puedan intercambiar de una forma ordenada. Durante esta fase, se pactan las opciones que se usarán en el intercambio posterior. Después de la iniciación, los dos extremos intercambian los datos generados por los usuarios así como información de control para llevar a cabo los procedimientos de control del flujo y de errores. Finalmente, uno de los dos extremos comunicará la finalización de la transmisión.
Iniciación
La iniciación la puede solicitar cualquiera de los dos extremos transmitiendo una de entre las seis órdenes previstas para fijar el modo. Esta orden sirve para tres objetivos: 1. Se avisa al otro extremo sobre la solicitud de la iniciación. 2. Se especifica cual de los tres modos (NRM, ABM, ARM) se está solicitando. 3. Se especifica si se van a utilizar números de secuencia de 3 o 7 bits. Si el otro extremo acepta la solicitud, se informará al extremo sobre esta contingencia mediante la transmisión de una trama de confirmación no numerada (UA, unnumbered acknowledged). Si la solicitud se rechaza, se envía una trama de modo desconectado (DM, disconnected mode).
Transferencia de datos
Cuando la iniciación se haya solicitado y haya sido aceptada, entonces se habrá establecido la conexión lógica. A partir de entonces, ambos lados pueden comenzar a enviar datos mediante tramas-I, comenzando con el número de secuencia igual a 0. Los campos N(S) y N(R) de una trama-I contendrán los números de secuencia con los que se lleva a cabo el control del flujo y de errores. La secuencia de tramas-I se numerará secuencialmente módulo 8 o módulo 128, dependiendo de si se utilizan respectivamente 3 o 7 bits, utilizando el campo N(S). El campo N(R) se utiliza para la confirmación de las tramas- I recibidas; de esta forma se facilita que el módulo HDLC indique al otro extremo el número de trama-I que se espera recibir. Las tramas-S también se usan para controlar el flujo y los errores. La trama receptor preparado (RR, receive ready) confirma una trama-I recibida, indicando a la vez la siguiente trama-I que se espera recibir. La RR se usa cuando no hay tráfico en el sentido contrario (tramas-I) en el que se puedan incluir las confirmaciones. La trama receptor no preparado (RNR, receive not ready) confirma una trama-I, como la hace la RR, pero a la vez solicita a la entidad situada al otro extremo del enlace que suspenda la transmisión de tramas-I. Cuando la entidad que envió la RNR este de nuevo preparada, enviará una RR. La trama REJ sirve para iniciar el procedimiento ARQ con vuelta-atrás-N. Con ella se indica que la última trama-I recibida se ha rechazado y solicita la retransmisión de todas las tramas-I con números de secuencia posteriores a la N(R). La trama de rechazo selectivo (SREJ, selective reject) se usa para solicitar la retransmisión de una única trama.
Desconexión
Cualquiera de las dos entidades situadas a ambos lados del enlace pueden iniciar la desconexión; tanto por iniciativa propia (si es que ha habido algún tipo de fallo) como tras la petición cursada por capas superiores. HDLC lleva a cabo la desconexión transmitiendo una trama de desconexión (DISC, disconnect). El otro extremo podrá aceptar dicha desconexión devolviendo una trama UA e informando al usuario de la capa 3 sobre el cierre de la conexión. Se puede perder cualquier trama-I pendiente de confirmarse, en ese caso su recuperación es responsabilidad de las capas superiores.
Al igual que un equipo no puede trabajar sin un sistema operativo, una red de equipos no puede funcionar sin un sistema operativo de red. Si no se dispone de ningún sistema operativo de red, los equipos no pueden compartir recursos y los usuarios no pueden utilizar estos recursos.
Dependiendo del fabricante del sistema operativo de red, tenemos que el software de red para un equipo personal se puede añadir al propio sistema operativo del equipo o integrarse con él.
NetWare de Novell es el ejemplo más familiar y famoso de sistema operativo de red donde el software de red del equipo cliente se incorpora en el sistema operativo del equipo. El equipo personal necesita ambos sistema operativos para gestionar conjuntamente las funciones de red y las funciones individuales.
El software del sistema operativo de red se integra en un número importante de sistemas operativos conocidos, incluyendo Windows 2000 Server/Professional, Windows NT Server/Workstation, Windows 95/98/ME y Apple Talk.
Cada configuración (sistemas operativos de red y del equipo separados, o sistema operativo combinando las funciones de ambos) tiene sus ventajas e inconvenientes. Por tanto, nuestro trabajo como especialistas en redes es determinar la configuración que mejor se adapte a las necesidades de nuestra red.
Unix
Los sistemas operativos UNIX desarrollados en los Laboratorios Bell se cuentan entre los éxitos más notables en el campo de los sistemas operativos. Los sistemas UNIX ofrecen un ambiente amable para el desarrollo de programas y el procesamiento de textos. Brindan facilidad para combinar unos programas con otros, lo cual sirve para fomentar un enfoque modular, de piezas de construcción y orientado a las herramientas, para el diseño de programas. Una vez transportado un sistema operativo UNIX a otra máquina, un enorme acervo de programas de utilidad general queda disponible en la máquina de destino.
El sistema operativo UNIX de 1981 era un sistema de tecleo intensivo que requería una larga lista de mandatos con diversas sintaxis. La generación más reciente de sistemas UNIX ofrece en muchos casos interfaces les con el usuario, orientadas al uso de ratón y de ventanas tales como X Window System de MIT, NeWS de Sun Microsystem y Open Look de AT&T.
Los sistemas UNIX se han convertido en los sistemas operativos para computadora personal preferidos por los usuarios de potencia, y es probable que lo mismo suceda con millones de usuarios más.
Casi todos los fabricantes importantes de computadoras ofrecen en la actualidad alguna forma de sistemas UNIX. Muchas compañías que habían estado ofreciendo sistemas UNIX además de sus propios sistemas, ahora promueven los sistemas UNIX dándoles por lo menos igual importancia.
Características Generales:
Fue desarrollado por los Laboratorios Bell en 1969.
El sistema operativo UNIX era, en 1981, un sistema de comando por línea, con varias opciones de sintaxis.
El sistema operativo, ahora soporta ratón e interfaz de ventanas como X-Window System de MIT, News de Sun Microsystem y Open Look de AT&T.
Surgimiento de varios UNIX:
XENIX de Microsoft (1980)
Reparación de errores por Hardware.
Reparación de archivos por caídas del sistema.
Una mejor comunicación entre procesos.
UNIX 4.1 BSD de la Universidad de California en Berkely (1980).
Soporta memoria virtual.
Sistema de archivos más rápido y potente.
Comunicación entre procesos.
Apoyo para redes de área local.
Editor de pantalla completo.
UNIX System III de AT&T (1982), evolucionó hasta convertirse en System V.
Captura remota de trabajos.
Mejor sistema de archivos.
Mejores recursos para la comunicación entre procesos.
Sun OS de Sun Microsystem.
Tomó como base al sistema 4.2 BSD como modelo.
Proporcionaba apoyo a una red de estación de trabajo.
Manejo de una interfaz gráfica con ventanas y orientado al ratón.
UNIX se ha implementado en:
Supercomputadoras.
Macros.
Minis.
Estaciones de trabajo.
PCs.
Componentes de UNIX:
Shell, intérprete de comandos.
Núcleo, se encarga de la administración de Procesos, Memoria, Entrada/Salida y Ciclos de Reloj.
El Sistema de archivos es jerárquico, con origen en un nodo raíz.
Se han desarrollado diferentes familias de protocolos para comunicación por red de datos para los sistemas UNIX. El más ampliamente utilizado es el Internet Protocol Suite, comúnmente conocido como TCP / IP.
Es un protocolo DARPA que proporciona transmisión fiable de paquetes de datos sobre redes. El nombre TCP / IP Proviene de dos protocolos importantes de la familia, el Transmission Contorl Protocol (TCP) y el Internet Protocol (IP). Todos juntos llegan a ser más de 100 protocolos diferentes definidos en este conjunto.
El TCP / IP es la base del Internet que sirve para enlazar computadoras que utilizan diferentes sistemas operativos, incluyendo PC, minicomputadoras y computadoras centrales sobre redes de área local y área extensa. TCP / IP fue desarrollado y demostrado por primera vez en 1972 por el departamento de defensa de los Estados Unidos, ejecutándolo en el ARPANET una red de área extensa del departamento de defensa.
Protocolo Internet (IP)
El protocolo IP es el elemento que permite integrar distintas redes entre si. El protocolo IP enlaza las diferentes piezas (distintas redes: FDDI, RDSI, X.25, lineas dedicadas, token ring, ethernet, lineas telefónicas,...) de la Internet.
Cada máquina de la red Internet tiene una dirección IP única. Una dirección IP es un número de 32 bits que normalmente se escribe como cuatro enteros entre 0 y 255 separados por puntos (192.112.36.5), la dirección IP permite el encaminamiento de la información a través de la Internet.
En la terminología de comunicaciones el protocolo IP define una red de conmutación de paquetes. La información se fragmenta en pequeños trozos o paquetes (alrededor de 1500 caracteres) que se envían independientemente por la red. Cada paquete es enviado con la dirección del ordenador donde ha de ser entregado y, de forma similar a como funciona un sistema postal, cada paquete viaja independientemente de los demás por la red hasta alcanzar su destino.
En la terminología de comunicaciones el protocolo IP define una red de conmutación de paquetes. La información se fragmenta en pequeños trozos o paquetes (alrededor de 1500 caracteres) que se envían independientemente por la red. Cada paquete es enviado con la dirección del ordenador donde ha de ser entregado y, de forma similar a como funciona un sistema postal, cada paquete viaja independientemente de los demás por la red hasta alcanzar su destino.
Dentro de una red local, el encaminamiento de la información es simple. En Ethernet por ejemplo todos los ordenadores 'escuchan' la red para detectar los paquetes que se le dirigen a ellos. En la Internet este procedimiento es inviable.
Los routers (antes llamados gateways) son los elementos encargados del encaminamiento de los mensajes IP. Los routers conocen las máquinas conectadas a la red y toman la decisión de como encaminar los paquetes de datos a través de unos enlaces u otros.
Cada router sólo necesita saber que conexiones están disponibles y cual es el mejor "próximo salto" para conseguir que un paquete este mas cerca de su destino (El paquete va "saltando" de router a router hasta llegar a su destino).
Protocolo de control de la transmisión (TCP)
En su transito por distintas redes y equipos encaminadores puede ocurrir que haya paquetes IP que se pierdan, lleguen duplicados o con errores en la información que contienen. El protocolo TCP se encarga de subsanar estas posibles deficiencias para conseguir un servicio de transporte de información fiable.
TCP fragmenta la información a transmitir, de la misma forma que lo hace el protocolo IP. TCP numera cada uno de estos paquetes (!!! como se llama?) de manera que el receptor de la información pueda ordenarlos al recibirlos. Para pasar esta información a través de la red, TCP utiliza un sobre identificado con el número de secuencia de cada paquete. Los paquetes TCP se envían a su destino, independientemente unos de otros, utilizando el protocolo IP.
En la parte receptora, el TCP recoge el paquete, extrae los datos, y los pone en el orden correcto. Si algunos sobres desaparecen, el receptor le pide al transmisor que retransmita los paquetes de nuevo. Cuando toda la información recogida esta en su orden, se pasan los datos a la capa de aplicaciones.
Esto es una visión ideal del TCP. En la práctica los paquetes no solamente se pueden perder, sino que pueden sufrir cambios en su transito por la red. TCP resuelve este problema colocando en el paquete que se envía lo que se denomina el "checksum". Cuando el paquete llega a su destino, el receptor TCP calcula que checksum debe ser y lo compara con el que se ha enviado. Si no son los mismos el TCP receptor entiende que ha habido un error en la transmisión y le pide al transmisor que reenvíe.
De esta forma el TCP ofrece un servicio fiable de transmisión de información. Todas las aplicaciones de la Internet utilizan los servicios de transporte TCP para el intercambio de información, de forma que pueden ignorar los problemas de envío de información a través de la red, o al menos muchos de ellos
INICIO