1. El documento trata sobre protocolos y servicios informáticos, incluyendo conceptos como el control de flujo, corrección de errores, direccionamiento y multiplexación.
2. Los protocolos son conjuntos de reglas que gobiernan las comunicaciones entre sistemas abiertos y son la base del intercambio de información entre dispositivos.
3. Un protocolo bien diseñado es simple, modular, robusto y estándar.
2. 1.- Concepto
de protocolo.
6.- Control de
flujo y
modelos de
validación.
2.- Función de
los protocolos
PROTOCOLOS Y
SERVICIOS
INFORMÁTICOS.
5.- Errores,
tipos,
corrección, bit
de paridad.
3.- Elementos
de un
protocolo
4.- Diez reglas
en el diseño
de un
protocolo.
3.
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
información a transmitir.
que
contienen
la
4.
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
5.
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.
6.
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.
7.
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.
8.
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:
seguridad,
Los
mecanismos
restringiendo
pueden ser invocados.
el
de
acceso,
9. 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
intercambios de mensajes.
de
los
10.
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.
11.
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.
12. 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.
13. 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.
14.
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.
15.
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.
16.
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.
17. 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.
18. 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.
19.
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.
20.
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).
21. 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.
22.
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.
23.
- 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.
24.
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