Documentos de Académico
Documentos de Profesional
Documentos de Cultura
lado lado
transmisor receptor
Pasos a seguir:
❒ Desarrollaremos incrementalmente los lados Tx y Rx del
protocolo de transferencia confiable (rdt)
❒ Consideraremos sólo transferencias de datos unidireccionales
❍ Pero la información de control fluye en ambas direcciones!
❒ Usaremos máquina de estados finitos (Finite State Machine)
para especificar el Tx y Rx
Tx Rx
Rx
rdt_send(data)
sndpkt = make_pkt(data, checksum)
udt_send(sndpkt) rdt_rcv(rcvpkt) &&
rdt_rcv(rcvpkt) && corrupt(rcvpkt)
isNAK(rcvpkt)
Wait for Wait for udt_send(NAK)
call from ACK or udt_send(sndpkt)
above NAK
Wait for
call from
rdt_rcv(rcvpkt) && isACK(rcvpkt) below
Λ
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
Tx extract(rcvpkt,data)
deliver_data(data)
Λ: nada udt_send(ACK)
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
rdt_rcv(rcvpkt) &&
Que problemas tiene rdt2.0?
notcorrupt(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
Capa Transporte 3-10
rdt2.0 tiene una falla fatal!
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)
L/ R 0.008
U transmisor = = = 0.00027 = 0.027%
RTT + L / R 30.008
L/R .008
U = = = 0.00027 = 0.027%
sender 30.008
RTT + L / R
Mejora la utilización
por un factor de 3!
3*L/R .024
U = = = 0.0008 = 0.08%
sender 30.008
RTT + L / R microseconds
❒ Rx no ve diferencia en
los dos escenarios!
❒ Pasa incorrectamente
datos como nuevos en (a)