protocolos y servicios informáticos

25
Protocolos y servicios informáticos. Luis Eduardo Dávila Campos.

Upload: jedah89

Post on 02-Aug-2015

73 views

Category:

Documents


0 download

TRANSCRIPT

Protocolos y servicios informáticos.

Luis Eduardo Dávila Campos.

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