II.1 -
Introducción
II.1.1 - Repaso de
niveles OSI
El esquema para un sistema
final, es decir, aquel que procesa información y realiza funciones
ajenas a las específicas de la red, es:
|
FIGURA II.1 Modelo
OSI.
En un sistema intermedio, aquel
que no procesa información sino que retransmite lo que los sistemas
finales generan, sólo están presentes los niveles 1 y 2,
y en algunas ocasiones el 3.
Vamos a analizar un poco más
a fondo cada nivel:
-
Nivel 0 o Medio Físico:
-
Su finalidad es transportar la
señal. Puede ser un par de cables, el aire...
-
Nivel 1 o Nivel Físico:
-
Su objetivo es garantizar el envío
de bits. Debe resolver problemas como decidir qué voltaje es un
'1' y qué voltaje es un '0' o determinar cuántos microsegundos
dura un bit. No está en los cables pero sí forman parte de
este nivel los conectores y la codificación.
-
Nivel 2 o Nivel
de Enlace:
-
Su objetivo es establecer una
conexión fiable entre dos equipos directamente conectados. Para
ello, implementará control de errores, control de acceso al medio,
establecimiento de conexiones...
-
Nivel 3 o Nivel de Red:
-
Su principal objetivo es lograr
una comunicación extremo a extremo independiente de las subredes,
es decir, de las tecnologías que se encuentren entre ambos extremos.
Para ello, entre otras funciones, debe administrar los recursos de la red.
Se encarga , por tanto, de establecer la ruta que ha de seguir un paquete,
realizar
control de congestión...
-
Nivel 4 o Nivel de Transporte:
-
Trata de garantizar una comunicación
fiable extremo a extremo sin preocuparse de la red que los une.
Los niveles situados por encima
de estos están siendo muy cuestionados, hasta el punto de que algunos
opinan que estos niveles deberían formar parte de las aplicaciones
y no del sistema de comunicaciones.
II.1.2 - Algunas definiciones
-
Diálogo:
-
Comunicación entre dos
entidades.
-
Entidades gemelas:
-
Son entidades que se entienden.
-
Dialogo salto a salto:
-
Es el diálogo entre dos
entidades conectadas al mismo medio físico.
-
Salto:
-
Paso por un vano de transmisión.
Entendemos por vano un tramo de cables con sus repetidores y sus adaptadores.
-
Diálogo extremo a extremo:
-
Es el diálogo entre dos
sistemas finales.
Gráficamente:
|
FIGURA II.2 Diálogos
entre entidades.
II.1.3 - Nivel de enlace
Vamos a fijarnos más
detenidamente en el nivel de enlace. En primer lugar, para diseñar
este nivel es necesario conocer algunos datos importantes del nivel físico
como son:
-
Probabilidad de error.
-
Caudal.
-
Retardo de Propagación:
Tiempo que transcurre desde que comienza a transmitirse un bit
hasta que comienza a recibirse en el destino.
-
Retardo de Transmisión:
Tiempo que se tarda en poner una trama (PDU) en la línea.
Además es conveniente saber
qué interfaz tenemos, es decir, qué reglas ha de respetar
el Nivel de Enlace para hacer uso del Nivel Físico. Hay que conocer
el tipo de conector que une los niveles, sus características mecánicas,
eléctricas y la interfaz funcional para que las señales signifiquen
lo mismo para los dos niveles.El Nivel de Enlace agrupa los bits en unidades
funcionales denominadas tramas. La información no se envía
como un chorro continuo sino en grupos. El esquema básico es:
|
FIGURA II.3 Aspecto
general de una trama.
Como ya sabemos el Nivel de
Enlace comunica entidades conectadas a un mismo medio. Dentro de esta función
es obligada la detección y/o la corrección de errores. Ésta
se suele hacer utilizando una de las siguientes técnicas:
-
FEC (Forward Error
Correction):
-
Son los códigos de canal,
que permiten la detección y la corrección a partir de unos
bits de redundancia.
-
ARQ (Automatic
Repeat
reQuest):
-
Los errores, una vez detectados,
se recuperan con retransmisiones.
Estudiemos las diferentes técnicas
ARQ que existen:
-
a) ARQ
parada y espera.
-
El transmisor envía una
trama y espera hasta que recibe la confirmación por parte del receptor
de que la trama llegó correctamente. Gráficamente:
|
FIGURA II.4 ARQ
con parada y espera.
Al finalizar el envío
de cada trama el transmisor dispara un TIMER. Pasado un determinado
tiempo, si no ha recibido confirmación retransmite asumiendo que
la trama no llegó correctamente. De forma gráfica:
|
FIGURA II.5 ARQ
con parada y espera : ejemplo de un error.
Pero el sistema así
implementado plantearía un grave problema: si se pierde el asentimiento,
el transmisor retransmitirá la trama y el receptor, que cree haber
asentido la trama anterior, la recibirá como si fuese nueva. Por
tanto, se corre el peligro de duplicar tramas. Para solucionar este problema,
se numeran las tramas incorporando en ellas un número de secuencia.
(Es algo equivalente a ponerlas nombre.) De esta forma el receptor sabrá
si la trama que le llega es repetición de la anterior o es nueva.
Se numeran tanto las tramas de información como las de asentimiento,
aunque en cada caso el número de secuencia tiene distinto significado.
El significado de la numeración es el siguiente:
-
Para tramas de información:
El transmisor lleva un contador con el número de tramas que ha enviado.
Si, por ejemplo, ha enviado 3 tramas, a la cuarta le pondrá el número
cuatro. Esta trama la denotaremos en los gráficos como I3 porque
se empieza a contar desde 0, es decir, la primera trama será I0,
la segunda I1, la tercera I2 y la cuarta I3.
Aunque así explicado
parezca bastante sencillo, el problema se complicará todavía
un poco por hecho de que este número se introduce en el principio
del espacio de la trama reservado para la información. No podemos
numerar las tramas con todos los números naturales que queramos,
sino que se utilizarán, como veremos en breve, los menos números
posibles. (En el caso de ARQ parada y espera que nos ocupa bastará
con dos números (0 y 1) para identificar las tramas. Se denomina
a este sistema protocolo de bit alternante.)
-
Para tramas de asentimiento:
El receptor lleva otro contador con el número de trama que está
esperando, es decir, si ha recibido I0 e I1, estará esperando la
trama I2 y será 2 el número del contador. Al confirmar una
trama, se envía un mensaje de asentimiento o ACK con el número
de este contador, lo que quiere decir que, por ejemplo, al recibir la trama
I2 el contador se pondrá a 3 y se confirmará dicha trama
enviando un ACK3 y no un ACK2. Con esto, el transmisor sabrá que
el receptor ya tiene la trama I2 y que ha quedado a la espera de la I3.
-
b) ARQ
con rechazo simple.
-
El objetivo es aprovechar el tiempo
que pierde el transmisor esperando el ACK o asentimiento. Para ello, lo
que se hace es enviar tramas también durante ese tiempo. Es fácil
suponer que así implementado este sistema dará problemas.
Vamos a ver qué pasaría manteniendo el protocolo de bit alternante.
Por ejemplo, se manda I0 y no se recibe correctamente. A continuación,
si el timer lo permite, se envían I1 e I0, siendo esta última
una trama diferente de la primera pero que tiene el mismo nombre por sólo
disponer del 0 y el 1 como posibles nombres. El receptor, que sigue esperando
la I0 que llegó mal, despreciará I1 por no ser lo que esperaba
y aceptará la segunda I0 como si fuese la primera . Por tanto, se
pierden tramas y, lo que es peor, no se es consciente de ello. Veamos todo
esto de forma gráfica:
|
FIGURA II.6 Problema
de los números de secuencia.
De entrada, hay que añadir
más números de secuencia, más posibles nombres, el
problema es decidir cuántos. Los números de secuencia van
codificados y ocupan sitio en la trama. Esto es, cuantos más números
se empleen menos información se podrá mandar en una trama.
Hay que buscar, por tanto, un compromiso entre el rendimiento y la capacidad
de transmisión. Para ello hacemos uso de un concepto muy importante:
Ventana
de Transmisión : Se denomina así al número de
tramas que se pueden transmitir antes de recibir el asentimiento de la
primera. En otras palabras, el número máximo de tramas sin
confirmación que el transmisor puede depositar en la red. El tamaño
de la ventana de transmisión vendrá fijado esencialmente
por dos motivos:
-
El primero es el número
de números de secuencia. Esto es, los posibles nombres que pueden
tener las tramas. No se puede reutilizar el nombre de una trama que no
haya sido confirmada pues se corre el riesgo de perder tramas como hemos
visto en el ejemplo anterior.
-
El segundo es la memoria disponible
en el transmisor. Las tramas que no hayan sido confirmadas deben guardarse
en memoria por si fuese necesaria su retransmisión. Si fijamos un
tamaño de ventana mil, deberemos tener espacio en memoria para almacenar
esas mil tramas.
Con este término acabamos
de definir el funcionamiento de los protocolos de ventana deslizante. En
el caso de ARQ rechazo simple se añade una particularidad: al producirse
un error y no llegar el asentimiento de una trama, se retransmite esa trama
y todas las que se enviaron a partir de ella.
-
c) ARQ
con rechazo selectivo.
-
En líneas generales funciona
con la misma filosofía que el caso anterior. También aquí
se trata de aprovechar el tiempo que el transmisor está esperando
los asentimientos y también se hace transmitiendo en ese tiempo.
La diferencia está en el método de retransmisión.
En este caso, al producirse un error se retransmite únicamente la
trama que no ha sido asentida. Con esto, se mejora aún más
la capacidad de transmisión aunque se generan fuertes exigencias
de memoria en el receptor. Éste debe almacenar en memoria todas
las tramas que lleguen después de una errónea en espera de
que ésta llegue bien para poder ordenarlas posteriormente. Veamos
un ejemplo gráfico de estos dos últimos métodos.
Para ARQ con rechazo simple:
|
FIGURA II.7 ARQ
con rechazo simple.
Para ARQ con rechazo selectivo:
|
FIGURA II.8 ARQ
con rechazo selectivo.
El rechazo selectivo lleva
asociado otro concepto muy importante: Ventana de Recepción:
Son las tramas que el receptor puede aceptar después de la última
secuencia completa. En otras palabras, si el tamaño de la ventana
de recepción es 3, las tramas permitidas van desde I0 hasta I7 y
se acaba de recibir I2, aceptaremos que nos lleguen I3, I4 o I5. Cualquiera
de ellas sería guardada si llegase correctamente. Pero si lo que
llega es I6 se despreciará aunque sea correcta por estar fuera de
la ventana de recepción. Cuando llegue I3 se habrá completado
otro ciclo desde la I3 anterior hasta la que se acaba de recibir. Completar
un ciclo significa que no faltan tramas intermedias. (Si se recibe I4 en
vez de I3 se acepta pero no se ha completado un ciclo por faltar I3. Hay
que recordar que tampoco se asiente como ya hemos visto). La consecuencia
de completar un ciclo es que la ventana de recepción avanza, es
decir, al llegar I3 nos ponemos a esperar I4, I5 e I6. Vamos a ver un ejemplo
que nos aclare su utilización. Supongamos que el número de
secuencia se codifica en 3 bits, es decir, hay 8 posibles nombres para
las tramas (0..7), y que no manejamos el concepto de ventana de recepción.
En un determinado momento se está esperando la llegada de trama
I0 pero llega la I7. ¿Qué ha ocurrido? El problema de forma
gráfica:
|
FIGURA II.9 Problema
con la ventana de recepción.
Existen dos posibilidades :
-
Primera posibilidad: Se
ha perdido la trama I0 que estamos esperando y también las tramas
I1, I2, I3, I4, I5 e I6. La que ha llegado es una trama I7 nueva que tendremos
que almacenar hasta que lleguen las anteriores.
|
FIGURA II.10 Primera
posibilidad.
-
Segunda posibilidad: Se
ha perdido el asentimiento de la trama I7, ha saltado el Timer correspondiente
y la trama I7 recibida es la retransmisión de la anterior. Como
ya había llegado bien se desecha.
|
FIGURA II.11 Segunda
posibilidad.
No hay forma de saber lo
que ha ocurrido. Si hubiésemos utilizado el concepto de ventana
de recepción esto no hubiera sucedido. Veamos cómo: Basta
con fijar la ventana una unidad menor que el número máximo
de secuencia. En este caso la fijamos a 6, lo que significa que, en la
figura II.10, que la ventana de recepción quedaría cubierta
con I6. Por tanto, la trama I7 se despreciará siempre. En el primer
caso, ya no la aceptaremos porque está fuera de la ventana de transmisión
y en el segundo por ser retransmisión de una que ya había
llegado bien. Aunque no sabemos lo que ha pasado, ya sabemos lo que hay
que hacer : rechazar. En realidad, las cosas funcionan correctamente si
se cumple:
donde
es el nº máximo de secuencia,
es el tamaño de la ventana de transmisión y
es el tamaño de la ventana de recepción.
II.1.4 Protocolo de envío
continuo
Consiste en diseñar
los tamaños de ventana de forma que el transmisor sólo se
vea obligado a parar en caso de producirse un error. Es decir, pueda transmitir
sin pausa en ausencia de fallos.
|