Capítulo 3: Capa Transporte Go-back-N y Selective Repeat

Slides:



Advertisements
Presentaciones similares
Capítulo 20: TCP Servicio de transporte confiable
Advertisements

Capa Transporte3-1 Capítulo 3: Continuación r 3.1 Servicios de la capa transporte r 3.2 Multiplexing y demultiplexing r 3.3 Transporte sin conexión: UDP.
TCP Tema 2.- Nivel de transporte en Internet Dr. Daniel Morató Redes de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Material parcialmente.
Capa Transporte3-1 Capítulo 3: Capa transporte (Continuación) ELO322: Redes de Computadores Agustín J. González Este material está basado en el material.
Capa Transporte3-1 Capítulo 3: Continuación r 3.1 Servicios de la capa transporte r 3.2 Multiplexing y demultiplexing r 3.3 Transporte sin conexión: UDP.
Capítulo 12: Protocolos y Capas
Network Layer4-1 Del Capítulo 4 Ruteo Broadcast y Multicast Agustín J. González Tomado de: Computer Networking: A Top Down Approach Featuring the Internet,
7: Multimedia en Redes de Computadores7-1 Capítulo 7 Multimedia en Redes de Computadores Material tomado de: Computer Networking: A Top Down Approach Featuring.
Introducción1-1 Capítulo 1: Introducción ELO322: Redes de Computadores Agustín J. González Este material está basado en el material preparado como apoyo.
Capa Transporte3-1 Capítulo 3: Capa Transporte - III ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
2: Capa Aplicación 1 Capa Aplicación: FTP ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto.
Capa Transporte 1 Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capa Transporte 3-1 Capítulo 3: Capa Transporte - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capítulo 3: Capa Transporte - III
Capa Transporte3-1 Capítulo 3: Capa transporte ELO322: Redes de Computadores Agustín J. González Este material está basado en el material preparado como.
Capa Transporte1 Capítulo 3: Capa Transporte - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al.
Protocolo de Ventana Deslizante 2008
Capa Transporte3-1 Capítulo 3: Capa Transporte - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capa Transporte3-1 Capítulo 3: Capa Transporte - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capa de Red4-1 Capítulo 4: Capa Red - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto Computer.
Capa Transporte1 Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al.
2: Capa Aplicación 1 Capa Aplicación: File Transfer Protocol ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
Capa Transporte 3-1 Capítulo 3: Capa Transporte - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capítulo 3: Capa Transporte - I
Capítulo 5: Capa Enlace de Datos - I
Capa Transporte3-1 Capítulo 3: Capa Transporte - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capa de Enlace Modelo OSI
Capa Transporte3-1 Capítulo 3: Capa Transporte - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capa Transporte 1 Capítulo 3: Capa Transporte - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al.
5: Capa Enlace de Datos5-1 Capítulo 5: Capa Enlace de Datos - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
Capítulo 4: Capa Red - IV ELO322: Redes de Computadores
Capítulo 3: Capa Transporte - I
Capítulo 5: Capa Enlace de Datos - I
Capítulo 5: Capa Enlace de Datos - I
Capítulo 8, Sección 8.6: IPsec
Capítulo 3: Capa Transporte: Principios del control de congestión
Capítulo 4: Capa Red - IV ELO322: Redes de Computadores
Capítulo 4: Capa Red - II ELO322: Redes de Computadores
Capítulo 3: Capa Transporte - II
Capítulo 3: Capa Transporte - III
Capítulo 8, Sección 8.6: IPsec
Capítulo 3: Capa Transporte - I
Capítulo 3: Capa Transporte - II
Capítulo 3: Capa Transporte: Principios del control de congestión
Capítulo 3: Capa Transporte - III
Capa Aplicación: File Transfer Protocol
Capítulo 5: Capa Enlace de Datos IV
¿Por qué el transmisor de stop-and-wait y Go-back-N hacen nada cuando llega un ACK dañado o duplicado? Caso Stop-and-wait.
Capítulo 3: Capa Transporte - III
Módulo 03 La Capa de Transporte (Pt. 1)
Capa Aplicación: File Transfer Protocol
Tema 3: Nivel de Transporte
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Capa Aplicación: File Transfer Protocol
Capa Aplicación: File Transfer Protocol
REDES 1 ELIZABETH RIVERA RIOS GRANADOS JESUS MANIEL RIVAS HERNANDEZ ELSA MARIANA TCP RENO.
Capítulo 3: Capa Transporte - II
Capa Transporte 3-1 Capítulo 3: Capa Transporte - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capítulo 6: Capa Enlace de Datos y LANS
¿Por qué el transmisor de stop-and-wait y Go-back-N hacen nada cuando llega un ACK dañado o duplicado? Caso Stop-and-wait.
Capítulo 3: Capa Transporte: Principios del control de congestión
¿Por qué el transmisor de stop-and-wait y Go-back-N hacen nada cuando llega un ACK dañado o duplicado? Caso Stop-and-wait.
Capa Aplicación: File Transfer Protocol
Capítulo 3: Capa Transporte Transporte Orientado a la Conexión: TCP
Capítulo 3: Capa Transporte: Principios del control de congestión
Capítulo 3: Capa Transporte:Control de congestión en TCP
Capa Aplicación: File Transfer Protocol
CAPA DE RED- OSI. Intercambiar secciones de datos individuales a través de la red entre dispositivos finales identificados. Provee servicios para:
Capítulo 6: Capa Enlace de Datos y LANS
Capítulo 3: Capa Transporte - II
Transcripción de la presentación:

Capítulo 3: Capa Transporte Go-back-N y Selective Repeat ELO322: Redes de Computadores Agustín J. González Este material está basado en: Material de apoyo al texto Computer Networking: A Top Down Approach Featuring the Internet. Jim Kurose, Keith Ross. Capa Transporte

Capítulo 3: Continuación 3.1 Servicios de la capa transporte 3.2 Multiplexing y demultiplexing 3.3 Transporte sin conexión: UDP 3.4 Principios de transferencia confiable de datos 3.4.2 Protocolos con pipeline: Go-Back-N y Selective Repeat 3.5 Transporte orientado a la conexión: TCP Estructura de un segmento Transferencia confiable de datos Control de flujo Gestión de la conexión 3.6 Principios del control de congestión 3.7 Control de congestión en TCP Capa Transporte

Utilización del Canal en Stop & Wait La utilización del canal o transmisión se define como: la fracción del tiempo en que está ocupado. Evaluemos cuál es la utilización del canal de transmisión en protocolo Stop & Wait. Capa Transporte

Utilización del canal de transmisión rdt3.0: protocolo stop & wait sender receiver first packet bit transmitted, t = 0 last packet bit transmitted, t = L / R first packet bit arrives RTT last packet bit arrives, send ACK ACK arrives, send next packet, t = RTT + L / R Baja utilización, ¿recuerdan cómo se mejora esto? Capa Transporte

Desempeño de rdt3.0 rdt3.0 funciona, pero su desempeño es malo Ejemplo: R = enlace de 1 Gbps, 15 ms de retardo extremo a extremo, L = paquetes de 1KB, RTT = 30ms. U transmisor: utilización del transmisor o canal = fracción de tiempo que el transmisor/canal está ocupado transmitiendo 1 paquete de 1KB cada ~30 ms -> 33kB/s tasa de transmisión en enlace de 1 Gbps Protocolo de red limita el uso de los recursos físicos! Capa Transporte

Protocolos con Pipeline Con Pipeline: Transmisor permite múltiples paquetes en tránsito con acuse de recibo pendiente El rango de los números de secuencia debe ser aumentado Se requiere buffers en el Tx y/o Rx Hay dos formas genéricas de protocolos con pipeline: go-Back-N y selective repeat (repetición selectiva)‏ Capa Transporte

Pipelining: utilización mejorada sender receiver first packet bit transmitted, t = 0 last bit transmitted, t = L / R first packet bit arrives RTT last packet bit arrives, send ACK last bit of 2nd packet arrives, send ACK last bit of 3rd packet arrives, send ACK ACK arrives, send next packet, t = RTT + L / R Mejora en utilización por un factor de 3 !!! Capa Transporte

Go-Back-N: estrategia Transmisor: # de secuencia de k-bits en el encabezado del paquete “ventana” de hasta N paquetes consecutivos con acuse de recibo pendiente Cuando llega un ACK(n): da acuse de recibo a todos los paquetes previos, incluyendo aquel con # de secuencia n; corresponde a un “acuse de recibo acumulado” Se podría recibir ACKs duplicados (ver receptor)‏ Usa un timer para manejar la espera de ack de paquete en tránsito timeout(n): retransmitir paquete n y todos los paquetes con números de secuencia siguientes en la ventana Núm. Sec. más antiguo sin ACK: base Notación Próximo número de secuencia a usar: nextseqnum n° sec. Usable, aún no enviados Con ACK recibidos ACK pendientes n° sec. No usable Tamaño de ventana=N Capa Transporte

GBN: MEF extendida del Transmisor rdt_send(data) if (nextseqnum < base+N) { sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum)‏ udt_send(sndpkt[nextseqnum])‏ if (base == nextseqnum)‏ start_timer nextseqnum++ } else refuse_data(data)‏ Condición inicial Es una MEF, con otra notación  base=1 nextseqnum=1 timeout Wait start_timer udt_send(sndpkt[base])‏ udt_send(sndpkt[base+1])‏ … udt_send(sndpkt[nextseqnum-1])‏ rdt_rcv(rcvpkt) && corrupt(rcvpkt)  rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) base = getacknum(rcvpkt)+1 If (base == nextseqnum)‏ stop_timer else start_timer Descripción del texto Capa Transporte

GBN: MEF extendida del Receptor Default (todo otro caso) Condición inicial udt_send(sndpkt)‏ rdt_rcv(rcvpkt)‏ && notcurrupt(rcvpkt)‏ && hasseqnum(rcvpkt,expectedseqnum)  Wait extract(rcvpkt,data)‏ deliver_data(data)‏ sndpkt = make_pkt(expectedseqnum,ACK,chksum)‏ udt_send(sndpkt)‏ expectedseqnum++ expectedseqnum=1 sndpkt = make_pkt(expectedseqnum,ACK,chksum)‏ Usa sólo ACK: siempre envía ACK de paquete correctamente recibido con el # de secuencia mayor en orden Puede generar ACKs duplicados. ¿Cuándo? Sólo necesita recordar expectedseqnum Paquetes fuera de orden: Descartarlos (no almacenar en buffer) => requiere buffer sólo para almacenar un paquete recibido. Re-envía ACK del paquete de mayor número de secuencia en orden Capa Transporte

GBN en acción sender window (N=4) loss receiver 0 1 2 3 4 5 6 7 8 send pkt0 send pkt1 send pkt2 send pkt3 (wait) 0 1 2 3 4 5 6 7 8 receive pkt0, send ack0 receive pkt1, send ack1 receive pkt3, discard, (re)send ack1 0 1 2 3 4 5 6 7 8 X loss 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 rcv ack0, send pkt4 rcv ack1, send pkt5 0 1 2 3 4 5 6 7 8 receive pkt4, discard, (re)send ack1 Ignore duplicate ACK receive pkt5, discard, (re)send ack1 pkt 2 timeout 0 1 2 3 4 5 6 7 8 send pkt2 send pkt3 send pkt4 send pkt5 0 1 2 3 4 5 6 7 8 rcv pkt2, deliver, send ack2 rcv pkt3, deliver, send ack3 rcv pkt4, deliver, send ack4 rcv pkt5, deliver, send ack5 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 ¿Para qué re-enviar paquetes correctamente recibidos? Capa Transporte

Go-Back-N: Análisis versión texto guía Idea Básica: Tx: Envía hasta completar ventana. Rx: Sólo acepta paquete correcto y en orden En caso de error o pérdida: Tx: Lo detecta por timeout y retransmite todo desde el perdido o dañado en adelante. Reflexionar: Una pérdida sólo es detectada por el Tx luego de un timeout. Pero éste se reinicia con cada ACK que no sea el último. Convendría tener un timer por paquete enviado? Pero esto ocuparía más timers. Por qué reiniciar timer ante ACK distinto del último? ¿Por qué un ACK duplicado no es considerado como señal de paquete perdido? Capa Transporte

Selective Repeat (repetición selectiva)‏ Receptor envía acuse de recibo individuales de todos los paquetes recibidos Almacena paquetes en buffer, según necesidad para su entrega en orden a la capa superior Transmisor sólo re-envía los paquetes sin ACK recibidos Transmisor usa un timer por cada paquete sin ACK Ventana del Transmisor Es la cantidad de números de secuencia consecutivos que puede enviar. Nuevamente limita los #s de secuencia de paquetes enviados sin ACK Existe ventana en Receptor Capa Transporte

Selective repeat: Ventanas de Tx y Rx Notación Usable, aún no enviados Con ACK recibidos ACK pendientes No usable a) Vista de los número de secuencia del transmisor Notación Fuera de orden (almacenados) con ACK enviado Aceptable (en ventana)‏ Esperado, aún no recibido No usable b) Vista de los número de secuencia del receptor Capa Transporte

Selective repeat (repetición selectiva)‏ Receptor Transmisor Ante llegada paquete n en [rcvbase, rcvbase+N-1] Enviar ACK(n)‏ Si está fuera de orden: almacenar en buffer En-orden: entregar a capa superior (también entregar paquetes en orden del buffer), avanzar ventana al paquete próximo aún no recibido Ante paquete n en [rcvbase-N, rcvbase-1] Otro caso: ignorarlo Ante llegada datos desde arriba: Si el próximo # de sec. está en ventana, enviar paquete Ante timeout(n): Re-enviar sólo paquete n, re- iniciar timer Ante ACK(n) en [sendbase,sendbase+N]: Marcar paquete n como recibido, parar su timer Si n es el paquete más antiguo sin ACK, avanzar la base de la ventana al próximo # de sec. sin ACK. Capa Transporte

Repetición Selectiva en Acción sender window (N=4) sender receiver 0 1 2 3 4 5 6 7 8 send pkt0 send pkt1 send pkt2 send pkt3 (wait) 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 receive pkt0, send ack0 receive pkt1, send ack1 receive pkt3, buffer, send ack3 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 X loss 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 rcv ack0, send pkt4 rcv ack1, send pkt5 0 1 2 3 4 5 6 7 8 receive pkt4, buffer, send ack4 0 1 2 3 4 5 record ack3 arrived receive pkt5, buffer, send ack5 0 1 2 3 4 5 pkt 2 timeout 0 1 2 3 4 5 6 7 8 send pkt2 0 1 2 3 4 5 6 7 8 record ack4 arrived rcv pkt2; deliver pkt2, pkt3, pkt4, pkt5; send ack2 0 1 2 3 4 5 6 7 8 record ack4 arrived 0 1 2 3 4 5 6 7 8 6 7 8 9 10 11 Q: Qué pasa cuando llega ack2? Capa Transporte

Dilema de la repetición Selectiva sender window (after receipt ack) receiver window (after receipt) 0 1 2 3 0 1 2 pkt0 pkt1 pkt2 X Aceptará paquete con número de sec. 0 pkt3 (a) no hay problema Ejemplo: #s de sec.: 0, 1, 2, 3 Tamaño de ventana=3 Rx no ve diferencia en los dos escenarios! Pasa incorrectamente datos como nuevos en (b)‏ Q: ¿Qué relación debe existir entre el # de sec. y el tamaño de ventana? El receptor no puede ver el lado Tx. Igual acción de Rx en ambos casos! Algo está (muy) mal! 0 1 2 3 0 1 2 pkt0 pkt1 pkt2 timeout retransmit pkt0 X Aceptará paquete con número de sec. 0 (b) oops! Capa Transporte

Q: ¿Qué relación debe existir entre el # de sec. y el tamaño de ventana? La clave para evitar este problema es impedir que se pueda producir el escenario de la figura adjunta. Supongamos que la ventana de recepción es [m,m+w-1], por lo tanto Rx ha recibido y enviado ACK del paquete m-1 y los w-1 paquetes previos a éste. Si ninguno de estos ACK han sido recibidos por el Tx la ventana del transmisor será [m-w,m-1]. Así, el mayor número de secuencia de la ventana del Rx será m+w-1 y el límite inferior de la ventana del Tx será m-w. Para que Rx tome el paquete m-w como duplicado, su número de secuencia debe caber fuera de su ventana. Luego debemos tener un rango de números de secuencia k tan grande como para acomodar (m+w-1)-(m-w)+1=2w números de secuencia, luego k >= 2w. Q:¿Qué relación debe existir en el caso Go-Back-N? Capa Transporte

Tamaño máximo de ventana en Selective Repeat en más detalle Rx espera paquetes en [m,m+w-1] Tx habiendo enviado toda su ventana, hace timeout al no recibir los acuses de recibos y re-envía paquete con secuencia m-w. Para que todo re-envío de ventana de Tx sea interpretado como duplicado debo tener números de secuencia distintos para ambas ventanas; luego, # de secuencia debes ser al menos m+w-1-(m-w)+1 = 2w. # Sec >= 2w Capa Transporte

Capítulo 3: Continuación 3.1 Servicios de la capa transporte 3.2 Multiplexing y demultiplexing 3.3 Transporte sin conexión: UDP 3.4 Principios de transferencia confiable de datos 3.5 Transporte orientado a la conexión: TCP Estructura de un segmento Transferencia confiable de datos Control de flujo Gestión de la conexión 3.6 Principios del control de congestión 3.7 Control de congestión en TCP Capa Transporte