protocolos y servicios informáticos
TRANSCRIPT
PROTOCOLOS Y SERVICIOS
INFORMÁTICOS.
1.- Concepto de
protocolo.
2.- Función de los
protocolos
3.- Elementos
de un protocolo
4.- Diez reglas en el diseño de un
protocolo.
5.- Errores, tipos,
corrección, bit de
paridad.
6.- Control de flujo y
modelos de validación.
1.- Concepto de protocolo. Los protocolos son los lenguajes que se
emplean en las comunicaciones entre los
dispositivos que forman las redes de
ordenadores, es decir, son la base del
intercambio de información entre dispositivos.
Según el modelo de referencia OSI, protocolo es
aquel conjunto de reglas y formatos que
gobiernan las comunicaciones entre entidades
que ejecutan funciones a un mismo nivel en
diferentes sistemas abiertos. Así un protocolo es
un conjunto de normas que se usan para
componer los mensajes que contienen la
información a transmitir.
2.- Función de los protocolos. Encapsulamiento.
Es la adición de información de control a los datos.
Prácticamente todos los protocolos transfieren los datos en boques (llamados
PDU, protocol data unit). Cada PDU contiene información de control y puede o
no contener datos.
La información de control se clasifica en tres categorías:
Dirección.
Código de detección de errores.
Control de protocolos.
Fragmentación y re ensamblado.
Se denomina fragmentación cuando hay un flujo de PDU’s de tamaño acotado
de un dispositivo a otro y los protocolos de niveles inferiores requieren
separar los datos en bloques de menor tamaño. La fragmentación se lleva a
cabo cuando la red de comunicación solo acepta bloques de un tamaño
máximo, para que el control de errores sea más eficiente, ya que con PDU
pequeñas se requieren retransmitir menos bits cuando una sufre un error
Control de conexión.
La transferencia orientada a conexión se requiere si las
estaciones anticipan un intercambio de datos voluminoso y/o
ciertos detalles del protocolo deben funcionar dinámicamente.
Una conexión se establece entre la entidades. Conlleva tres
etapas:
-Establecimiento de la conexión.
-Transferencia de datos.
-Terminación de la conexión.
Entrega ordenada.
Si dos entidades comunicantes están en diferentes hosts
conectados por una red, existe el riesgo de que las PDU no
lleguen a su destino en el orden en que se enviaron, ya que
pueden atravesar caminos diferentes a través de la red. Para
evitar esto les es asignado un numero único de secuencia para
que puedan ser reacomodados por la unidad receptora.
Control de flujo.
Es una función realizada por una entidad receptora para limitar la
cantidad o la tasa de datos que es enviada por una entidad
transmisora.
La forma más simple de control de flujo de datos es un procedimiento
q de parada y espera, en el que la recepción de casa PDU debe ser
confirmada antes de que la siguiente sea enviada.
Control de Errores.
Son necesarios para prevenir perdida y daños en los datos e
información de control. Se implementa por lo general como dos
funciones separadas: detección de errores y retransmisión. Para
conseguir la detección de errores, el emisor inserta un código de
detección de errores en la PDU transmitida, que es una función de lo
otros bits en la PDU. El receptor comprueba el valor del código en la
PDU recibida. Si se detecta un error, el receptor descarta la PDU. En
caso de no recibir el acuse de recibo de la PDU en un tiempo
razonable, el emisor la retransmite.
Direccionamiento.
Abarca cuatro etapas que son:
-Nivel de direccionamiento.
-Alcance de direccionamiento.
-Identificación de conexión.
-Modo de direccionamiento.
Multiplexación.
Una forma de ella es soportada por múltiples
conexiones en un solo sistema.
En otro contexto se refiere a la asignación de
conexiones de un nivel a otro.
Servicios de transmisión.
Dependen del sistema subyacente de
transmisión.
Prioridad: Ciertos mensajes, como los de
control, requieren llegar a la entidad
destino con un retardo mínimo.
Calidad del servicio: Ciertas clases de
datos pueden requerir un umbral de
rendimiento mínimo o un umbral de
retardo máximo.
Seguridad: Los mecanismos de
seguridad, restringiendo el acceso,
pueden ser invocados.
3.- Elementos de un protocolo (5).1. El servicio a prestar por el protocolo.
2. Los supuestos sobre el entorno en el
que se ejecuta el protocolo.
3. El vocabulario de los mensajes
utilizados para implementar el protocolo.
4. La codificación (formato) de cada
mensaje en el vocabulario.
5. Las reglas de procedimiento que
mantienen la coherencia de los
intercambios de mensajes.
Principios generales del diseño de un protocolo.
Uno de los principios es la simplicidad, como es el caso de los protocolos ligeros.
Un protocolo bien estructurado se puede construir a partir de un numero pequeño de piezas.
Cada pieza, bien diseñada y entendida, realiza una función y la realiza bien. Los protocolos que
están diseñados de esta manera son mas sencillos en cuanto a entenderlos e implementarlos
de manera eficiente, haciéndolos mas propensos a ser verificables y mantenibles. Un protocolo
ligero es sencillo, robusto y eficiente. El caso de los protocolos ligeros soporta directamente el
argumento de que la eficiencia y la verificabilidad no son ortogonales, sino preocupaciones
complementarias.
Otro principio es la modularidad basada en una jerarquía de funciones.
Un protocolo que realiza una función compleja se puede construir a partir de piezas mas
pequeñas que se interactúan en una forma simple y bien definida. Cada pieza mas pequeña es
un protocolo ligero que se puede desarrollar, verificar, implementar y mantener por separado.
Las funciones ortogonales no se mezclan, ya que se diseñan como entidades independientes.
Los módulos individuales no hacen suposiciones acerca del trabajo de los demás, o incluso de
su presencia. Por ejemplo el control de errores y el control de flujo son funciones ortogonales.
Ellas se resuelven mejor por distintos módulos ligeros que son completamente conscientes de
la existencia de los demás.
Un protocolo bien construido es un protocolo que:
No contiene algún código desmesurado o
imposible de ejecutar.
Contiene especificaciones completas. Ya que
un protocolo incompleto puede provocar
recepciones no especificados durante su
ejecución. Una recepción no especificada se
produce si llega un mensaje cuando el
receptor no lo espera recibir ni puede
responder a el.
Esta acotado, no puede exceder los limites
conocidos del sistema, ni sobrepasar la
limitada capacidad de las colas de los
mensajes.
Ha de tener una estabilidad automática. Si un
error transitorio y arbitrario cambia el estado del
protocolo, el protocolo ha de volver siempre a un
estado deseable en un número finito de
transiciones, y a continuación reanudar el
funcionamiento normal. Del mismo modo, si un
protocolo se inicia en un estado arbitrario del
sistema, siempre debe alcanzar uno de los
estados previstos dentro de tiempo finito.
Ha de tener la capacidad de auto-adaptarse. Por
ejemplo, puede adaptar la tasa a la cual envía
los datos y la tasa a la cual el receptor puede
recibirlos. Por ejemplo un método de control de
la tasa se puede utilizar para cambiar la
velocidad de una transmisión de datos o su
volumen.
Debe poseer robustez. Esto significa que el protocolo
debe estar preparado para desenvolverse
adecuadamente en cada acción posible y con cada
posible secuencia de acciones en todas las condiciones
posibles.
Debe ser consistente. Hay algunas formas en las que los
protocolos pueden fallar. Las tres mas importantes son:
– Puntos muertos. Los estados en los que no se puede
ejecutar el protocolo, por ejemplo porque todos los procesos
del protocolo esperan condiciones que no se puedan cumplir.
-Bucles. Las secuencias de ejecución que se pueden repetir
indefinidamente.
– Finales inadecuados. La finalización de la ejecución de un
protocolo sin que se cumplan las condiciones de finalización
adecuadas.
4.- Diez reglas en el diseño de un protocolo.
1. Asegurarse de que el problema esta bien definido. Todos los
criterios de diseño, los requisitos y las limitaciones se deben
enumerar antes del inicio del diseño.
2. Definir el servicio que se realiza en todos los niveles de abstracción
antes de decidir que estructuras deben usarse para realizar estos
servicios.
3. Diseñar la funcionalidad externa antes de la funcionalidad interna.
Primero considerar la solución como un caja negra y decidir como se
debe interactuar con su entorno. A continuación decidir a como se
puede organizar la caja negra.
Probablemente consta de cajas negras mas pequeñas que pueden ser
refinadas de una forma similar.
4. Hacerlo sencillo. Los protocolos complejos son mas difícil de
verificar su funcionamiento que los simples. También son mas
difícil de implementar y son menos eficientes. Ha de haber pocos
problemas realmente complejos en el diseño del protocolo. Los
problemas que aparecen como complejos, son a menudo varios
problemas simples a la vez. El trabajo de los diseñadores es el de
identificar los problemas mas simples, separarlos y luego
resolverlos de forma individual.
5. No conectar lo que es independiente. Separar las
preocupaciones ortogonales.
6. No introducir lo que no es material. No restringir lo que es
irrelevante. Un buen diseño ha de ser fácilmente ampliable. Un
buen diseño resuelve una clase de problemas en lugar de una sola
instancia.
7. Antes de la implementación de un diseño,
construir un prototipo de alto nivel y verificar que se
cumplen los criterios de diseño.
8. Implementar el diseño, medir su rendimiento, y si
es necesario, optimizarlo.
9. Comprobar que la implementación final
optimizada es la prevista en el diseño de alto nivel.
10. No saltarse las reglas del 1 a la 7.
5.- Errores, tipos, corrección, bit de paridad.
En sistemas de transmisión digital, se dice que hay
un error cuando se altera un bit, es decir, se
transmite un 1 binario y se recibe un 0, o cuando se
transmite un 0 y se recibe un 1.
Existen dos tipos de errores:
Errores aislados.
Corresponden a eventualidades
que alteran solo un bit, sin
afectar a vecinos.
Errores en ráfaga.
Cuando se recibe una secuencia
de bits en la que el primero, el
último y cualquier numero de
bits intermedio son erróneos.
Corrección de errores.
Esencialmente, la corrección de errores funciona
añadiendo redundancia en el mensaje transmitido. La
redundancia hace posible que el receptor deduzca
cual fue el mensaje original, incluso para ciertos
niveles de la tasa de bits erróneos.
Bit de paridad.
Es un bit de comprobación añadido a un conjunto de
dígitos binarios para hacer la suma de todos éstos,
incluido el bit de comprobación, siempre par (paridad
par) o impar (paridad impar).
6.- Control de flujo y modelos de validación.
El control de flujo tiene como objetivos:– Asegurarse que no se transmiten los datos más rápido de lo que se puede procesar.– Optimizar el uso del canal.– Evitar saturar el canal.– Proteger la transmisión contra borrado, inserción, duplicación y reordenamiento de mensajes.
Echo checking. En este caso además de controlar los posibles
errores, este método permite controlar el flujo, ya que si los
buffers se llenan, se para el envío de ecos y el transmisor se
bloquea hasta que vuelva a recibir un eco.
- X-OFF/X-ON o también llamado In-bound-flow-control. Este
método es un complemento del método anterior y consiste en
que muchas veces aunque el receptor deja de enviar ecos, el
transmisor sigue enviando caracteres. En este caso la forma de
bloquear el transmisor, es enviando al receptor un carácter de
control X-OFF, que hace cesar el envío de caracteres. Para
reanudar la transmisión, el receptor envía un carácter de
control X-ON al transmisor.
- Out-of-band-control. Este método se utiliza
en las líneas de transmisión analógicas y se
le conoce como la norma V.24. Para ello se
emplean los comandos RTS (request to send)
y CTS (Clear to send). También en el caso de
las impresiones, es decir, entre ordenador e
impresora, se utiliza este método, ya que la
impresora es un dispositivo mucho mas lento
que los ordenadores a los que esta asociada.
Protocolo de ventana (cont.)
– Ventana de Tx: mensajes enviados pendientes de
ack (de tamaño variable, pero limitada a W)
– Ventana de Rx: nºs de secuencia que Rxor espera Rx
(de tamaño fijo)
– Para el rango de los nºs de secuencia debe
cumplirse:
rango(nºs secuencia)<=K+N
donde K es el tamaño de la ventana de Rx y N el
tamaño máximo de la ventana de Tx en caso
contrario podrían darse duplicaciones