Professional Documents
Culture Documents
Comunicacin de
Datos
Ingeniero en Computacin
8 Semestre
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
I.
II.
III.
IV.
V.
VI.
18/01/2014
Contenido Unidades
18/01/2014
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
Unidad I
Introduccin a los protocolos de
comunicacin
3
Regresar a Contenido
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Protocolo?
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Estandarizacin de Protocolos
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Objetivos fundamentales de la
normalizacin
Organismos Internacionales de
Normalizacin
VHDL
POSIX
IEEE 1394
IEEE 488
IEEE 802
IEEE 802.11
IEEE 754
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Estandarizacin de Protocolos
SDL
Lotos
Estelle
tres
lenguajes
para
la
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
Se han desarrollado
especificacin de protocolos:
18/01/2014
10
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
FDT
11
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
12
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Disciplina de diseo
13
Un modelo de validacin:
Expresa las caractersticas esenciales del protocolo.
No entra en detalles de implementacin.
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Herramientas de diseo
14
18/01/2014
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
Herramientas automatizadas
interpretan estos modelos de
validacin y reportan deficiencias de
diseo
15
Ejercicios:
Escriba el nombre de cinco protocolos de comunicacin.
Describa las principales caractersticas del TCP/IP.
En qu consisten las Tcnicas de Descripcin Formal?
Cules organizaciones
protocolos?
definen
la
estandarizacin
de
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
16
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Unidad II
Estructura de Protocolos
17
Regresar a Contenido
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Introduccin
18
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
19
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Ejemplo de la especificacin de un
Protocolo
20
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Ejemplo de la especificacin de un
Protocolo
21
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
22
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
23
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
24
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
25
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
26
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
En lenguaje C, de manera ms
detallada, se tendra:
27
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Conjunto de Reglas
28
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
29
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
30
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
31
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Modelo OSI
32
Aplicacin
N6
Presentacin
N5
Sesin
N4
Transporte
N3
Red
N2
Enlace de datos
N1
Fsico
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
N7
18/01/2014
33
Presentacin
TCP/IP
Aplicacin
Sesin
Transporte
Red
Transporte
Internet
Enlace de Datos
Fsica
Red
PROTOCOLOS
HTTP, Telnet, FTP,
LPD, SNMP, TFTP,
SMTP, NFS, X
Windows, JPEG,
MPEG
TCP, UDP
ICMP, BOOTP, ARP,
RARP, IP, IPX
Ethernet, FastEthernet, Token Ring,
FDDI, HDLC, FrameRelay
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
OSI
Aplicacin
18/01/2014
34
Orientado a bit.
Orientado a caracteres.
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Vocabulario y formato de
protocolos
35
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
- Orientado a bit
36
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
- Orientado a carcter
37
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
38
STX
header
user data
trailer
ETX
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
39
Prembulo
Dir. destino
Dir. fuente
Tipo trama
Datos
CRC
8 bytes
6 bytes
6 bytes
2 bytes
46-1500 bytes
4 bytes
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Trama Ethernet
40
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Ejercicios:
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Unidad III
Control de Error
42
Regresar a Contenido
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Control de Error
43
Prob. de error
Tipo de enlace
1 error cada:
9600 bps
10-4
Lnea telefnica
1.04 segs
9600 bps
10-6
Coaxial
104 segs
9600 bps
10-9
Fibra ptica
3303 aos
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
Vel. Transmisin
18/01/2014
Control de Error
44
Insercin
Prdida
Duplicacin
Distorsin
Reordenamiento
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
45
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
46
0110110
0 x6 + 1 x5 + 1 x4 + 0 x3 + 1 x2 + 1 x + 0
x5 + x4 + x2 + x
Para usar este mtodo emisor y receptor acuerdan
utilizar un polinomio G(x), que es el polinomio generador. La
informacin redundante generada por este polinomio se
denomina checksum.
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
47
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
48
Ejemplo:
G(x) = x5 + x4 + x2 + 1
M(x) = x9 + x7 + x3 + x2 + 1
r=5
101000110100000
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
49
110101
0111011
110101
00111010
110101
00111110
110101
00101100
110101
0110010
110101
0001110
|110101
1101010110
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
101000110100000
18/01/2014
50
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
101000110100000
1110
101000110101110
18/01/2014
51
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
4.- Receptor:
T(x) / G(x) R(x)
Si R(x) = 0 la trama de datos recibida se da como buena
Si R(x) 0 la trama de datos tendr errores
18/01/2014
52
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
E(x) = xi
18/01/2014
53
CRC-12
CRC-16
CRC-CCITT
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Polinomios ms utilizados:
54
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Unidad IV
Control de Flujo
55
Regresar a Contenido
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Control de Flujo
56
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
57
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Protocolo de Reconocimiento
Positivo con Retransmisin
58
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
Ms eficiente
Aprovechamiento del ancho de banda de la red.
El emisor transmite un nmero determinado de paquetes
antes de esperar el reconocimiento.
Este nmero est limitado por el tamao de la ventana.
Un tamao de ventana igual a 1 corresponde al protocolo de
reconocimiento positivo.
Conforme el tamao de ventana aumenta es posible eliminar
el tiempo de ocio de la red completamente. En el estado de
equilibrio, el emisor transmite paquetes a la misma tasa con la
que la red los puede procesar, lo que implica que se obtiene
un mximo desempeo de la red.
18/01/2014
59
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Otras consideraciones:
60
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Problema:
61
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
62
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Ventajas
63
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Ejercicios:
64
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Unidad V
Modelos de Validacin
65
Regresar a Contenido
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Modelos de Validacin
66
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
Procesos
Canales
Variables
18/01/2014
67
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
68
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Enunciados Ejecutables
69
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
En lugar de escribir:
while (a != b) skip /* wait for == b */
18/01/2014
Por ejemplo:
70
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
71
18/01/2014
Arreglos
72
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
proctype A() {
byte state;
state = 3
}
18/01/2014
Procesos
73
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Proceso init
74
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
75
Slo valores de cualquiera de los tipos base, pueden ser pasados como
parmetros.
No es posible pasar arreglos ni procesos.
run puede ser usado en cualquier proceso para crear nuevos procesos.
Un proceso muere cuando termina, es decir, cuando alcanza el final de
su cuerpo, siempre y cuando todos sus procesos hijos hayan terminado.
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
76
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Canales de comunicacin
77
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
78
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
qname ! expr
18/01/2014
Envo de Mensajes
79
Recepcin de Mensajes
int
chan
byte
int
chan
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
byte
18/01/2014
qname ? msg
80
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
81
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Comunicacin Sncrona
(Rendezvous)
82
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
Seleccin case.
Repeticin.
Jumps incondicionales.
18/01/2014
Control de Flujo
83
Seleccin Case
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
:: (a != b) -> opcion1
:: (a == b) -> opcion2
fi
18/01/2014
if
84
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
#define a 1
#define b 2
chan ch = [1] of { byte }
proctype A () { ch ! a }
proctype B () { ch ! b }
proctype C () {
if
:: ch ? a
:: ch ? b
fi
}
init { atomic { run A(); run B(); run C () }
18/01/2014
Ejemplo 1:
85
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
byte count;
proctype counter() {
if
:: count = count + 1
:: count = count - 1
fi
}
18/01/2014
Ejemplo 2:
86
Repeticin
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
byte count;
proctype counter() {
do
:: count = count + 1
:: count = count - 1
:: (count == 0) -> break
od
}
18/01/2014
El ciclo puede ser roto con el enunciado break cuando count es igual
a 0.
87
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
proctype counter() {
do
:: (count != 0) ->
if
:: count = count + 1
:: count = count - 1
fi
:: (count == 0) -> break
od
}
18/01/2014
Repeticin
88
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
89
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Funciones, procedimientos y
recursin
90
Equivalente a:
#define ack 1
#define nack 2
#define err 3
#define next 4
#define accept 5
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
91
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
proctype watchdog () {
do
:: timeout -> guard ! reset
od
}
18/01/2014
Temporizadores
92
Asignacin y condicin.
Seleccin y repeticin.
send y receive.
goto y break.
timeout.
run y len no son enunciados, sino operadores unarios que
pueden ser usados en asignaciones y condiciones.
skip es un seudo enunciado.
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Tipos de Enunciados
93
Ejercicios:
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Cules son los tres tipos de objetos que definen los modelos de
validacin?
94
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Unidad VI
Criterios de correccin
95
Regresar a Contenido
Criterios de Correccin
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
96
Validacin
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
97
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Razonamiento sobre el
comportamiento
98
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Justificacin
99
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Definiciones en PROMELA
100
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
101
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
102
assert ( condicin)
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
Aserciones:
18/01/2014
Criterios de validacin
103
proctype user () {
semaf ? p;
/* Seccin crtica */
semaf ! v
/* Seccin no crtica */
}
init {
atomic {
run dijkstra();
run user(); run user(); run user();
}
}
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
#define p 0
#define v 1
104
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
105
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
byte count;
proctype user() {
semaf ? p
count = count + 1; /* Seccin crtica */
count = count - 1;
semaf ! v
/* Seccin no crtica */
}
18/01/2014
106
proctype monitor () {
assert ( count == 0 || count == 1 )
}
init {
atomic {
run dijkstra(); run monitor();
run user(); run user(); run user();
}
}
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
107
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
proctype dijkstra () {
end: do
:: semaf ! p -> semaf ? v
od
}
18/01/2014
Deadlocks:
108
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Ciclos errneos:
109
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
proctype dijkstra () {
end : do
:: semaf ! p ->
progress : semaf ? v
od
}
18/01/2014
110
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
proctype dijkstra () {
end : do
:: semaf ! p ->
accept : semaf ? v
od
}
18/01/2014
Livelocks:
111
18/01/2014
never {
do
:: skip
od -> P -> ! Q
}
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
Exigencias temporales
112
Conclusiones
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
113
Ejercicios:
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
114
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Validacin de Protocolos
115
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
116
En PROMELA:
proctype R () {
int B = 0, b;
do
:: S ! ack (B) /* R1 */
:: atomic {
/* R2 */
R ? mesg (b);
B = fct (b, B);
}
od
}
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
proctype S () {
int A = 0;
do
:: R ! mesg (A + rand () % W) /* S1 */
:: S ? ack(A) /* S2 */
od
}
18/01/2014
#define W cte_positiva
chan R = [W] of { int }
chan S = [W] of { bit }
mtype = { mesg, ack }
117
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
118
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Mtodos de Validacin
Automatizados
119
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
120
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
121
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
122
analyze() {
/* Bsqueda exhaustiva */
if ( W is empty ) return;
q = last element from W;
add q to A;
if (q == error_state)
report_error();
else
{ for each succesor state s of q
if (s is not in A or W){
add s to W;
analyze();
}
}
delete q from W;
}
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
start(){
W = { initial_state }; /* estados por analizar */
A = { };
/* estados previamente analizados */
analyze();
}
18/01/2014
123
estados
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
124
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
125
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
126
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
analyze() {
/* Bsqueda parcial controlada */
if ( W is empty ) return;
q = last element from W;
add q to A;
if (q == error_state)
report_error();
else
{ for some succesor state s of q
if (s is not in A or W){
add s to W;
analyze();
}
}
delete q from W;
}
18/01/2014
127
Lmite de profundidad,
Bsqueda dispersa,
Bsqueda probabilstica,
Orden parcial,
Seleccin aleatoria.
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
128
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
129
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
130
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
131
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
132
}
}
El algoritmo funciona de manera independiente al tamao y
complejidad del sistema modelado (inclusive sistemas de tamao
infinito).
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
analyze() {
/* Simulacin aleatoria */
q = initial state;
while (1){
if (q is error_state){
report_error();
q = initial state;
{ else
q = a succesor state of q;
18/01/2014
133
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014
Algoritmo Supertrace:
134
Ejercicios:
Protocolos de Comunicacin de
Datos/CARR/8 Semestre
18/01/2014