Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González

Documentos relacionados
Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González

Capítulo 3: Capa Transporte - II

Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González

rdt2.2: fragmentos del emisor y receptor

Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González

Capítulo 3 Capa de Transporte

Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González

La implementación del Sender y del Receiver van a depender del modelo del canal que está por debajo y complejidad.

Capítulo 3: Capa Transporte - III

Introducción. 1) Principio de transferencia de datos Confiable

ELO322 Redes de Computadores I 6/05/2016

Capítulo 3 La capa de transporte

Capítulo 3: Capa Transporte - IV

Transporte fiable Selective repeat

Capítulo 3: Capa Transporte - III

Protocolos de ventana deslizante (sliding-window protocols)

ELO322 Redes de Computadores I 07/06/2013. Segundo Certamen ACK1 ACK1 ACK1 ACK1 ACK5

Capa de Enlace de Datos

Módulo 03 La Capa de Transporte (Pt. 1)

Módulo 03 La Capa de Transporte (Pt. 1)

Transporte fiable Ventana deslizante

Capítulo 3 La capa de transporte. capa de transporte / capa de red. Capítulo 3: La capa de transporte. protocolos de capa de transporte de Internet

CONTROL DE ERRORES DETECCIÓN DE ERRORES

Capítulo 3: Capa Transporte - I

Tema 4: Protocolos de comunicación punto a punto. Tema 4: Protocolos de comunicación punto a punto

Nivel de Transporte LSUB, GYSC, URJC

Transporte fiable Ventana deslizante y go-back-n

Tarea N 2 5, 27, 28, 33 para corrección.

Transporte Introducción y transporte fiable

Protocolos punto a punto Teoría de la Comunicaciones. 23 de Marzo de 2016

TCP. Temario. Temario

Capítulo 3: Capa de Transporte

Capa de Transporte. Capa de Transporte. Objetivos: Comprender los principios que fundamentan los servicios de transporte:

Nivel de enlace. Teoría de la Comunicaciones. 27 de Marzo de 2013

Capítulo 3: Capa Transporte - V

TCP Tema 3.- Nivel de transporte en Internet

Nivel de enlace. Teoría de la Comunicaciones. 28 de Marzo de 2012

Capítulo 3: Capa Transporte - IV

Transporte: Servicios y Protocolos. Prof. Wílmer Pereira

CAPA TRANSPORTE CAPITULO 3

Primer Certamen (Tiempo: 90 min.) Si algo no está claro, haga una supuesto razonable, anótelo, y responda conforme a ello.

TCP Transmission Control Protocol

Transporte fiable. Area de Ingeniería Telemática

Internet y TCP/IP La Capa de Transporte en Internet: Control de Flujo y Congestión

Relación Capa Transp/Red

Capítulo 3: Capa Transporte - I

Capítulo 5: Capa Enlace de Datos II

Figura 6.3 Descripción de la ventana deslizante.

Bloque III: El nivel de transporte. Tema 8: Retransmisiones y temporizadores en TCP

Capítulo 6: Capa Enlace de Datos y LANS

TCP: Características Establecimiento y finalización de conexiones

Visualizador del examen - ENetwork Chapter 4 - CCNA Exploration: Network Fundamentals (Versión 4.0)

Capítulo 5: Capa Enlace de Datos - I

Redes y Servicios. Módulo I. Fundamentos y modelos de red. Tema 2. Fundamentos. Parte B. Nivel de enlace

Computer Networks I CAPA DE TRANSPORTE

Módulo 03 La Capa de Transporte (Pt. 1)

ELO322 Redes de Computadores I 24/06/2016

BLOQUE IV. Nivel de enlace de datos

Redes de Ordenadores Control de congestión en TCP. Mikel Izal Azcárate

Práctica N 5: Wireshark TCP

Control de Congestión en TCP Teoría de la Comunicaciones. 05 de Junio de 2013

75.43 Introducción a los Sistemas Distribuidos

REDES DE COMPUTADORES

Sistemas de Transportes de Datos (STD) Tema III: UDP Y TCP (Entrega 3) Grupo de Aplicaciones Telemáticas. Grupo de Aplicaciones Telemáticas

La capa de transporte

Bloque III: El nivel de transporte. Tema 8: Retransmisiones y temporizadores en TCP

Retardo en la propagación de las señales

75.43 Introducción a los Sistemas Distribuidos

UDP Tema 3.- Nivel de transporte en Internet

Redes de Datos-Control del enlace de Datos. Jhon Jairo Padilla Aguilar PhD. Ingeniería Telemática

Capítulo 4: Capa Red - II

75.43 Introducción a los Sistemas Distribuidos

Planificación y Administración de Redes: El nivel de Transporte. Jesús Moreno León Raúl Ruiz Padilla Septiembre 2010

Problemas de Arquitectura de Redes, Sistemas y Servicios 2 o Grado en Ingeniería en Tecnologías de Telecomunicación Conjunto de problemas 6

Bibliografía [COM06] Internetworking with TCP/IP, Cap. 12. Arquitectura de Redes y Servicios de Telecomunicación (ARST)

TCP: Características Establecimiento y finalización de conexiones Tema 4.- Nivel de transporte en Internet

TCP Transporte fiable en Internet

Figura 6.5 ARQ mediante parada-y-espera.

Protocolos de Control de Flujo

75.43 Introducción a los Sistemas Distribuidos

REDES DE ORDENADORES HOJA DE PROBLEMAS 3

Tema 3: El protocolo TCP

75.43 Introducción a los Sistemas Distribuidos

Transparencias de Redes de Ordenadores. Tema 10 Nivel de Transporte: TCP 1ª Parte TCP. Uploaded by. IngTeleco

75.43 Introducción a los Sistemas Distribuidos

TCP Control de Congestión Teoría de la Comunicaciones. 05 de Junio de 2012

Ubicación en el modelo

Capítulo 2: Capa Aplicación - I

Redes de Computadores - Problemas y cuestiones

Control de Congestión en TCP Teoría de la Comunicaciones. 21 de Mayo de 2014

Tema 14: El protocolo TCP

Redes de Computadores Más sobre TCP. Área de Ingeniería Telemática Dpto. Automática y Computación

Capa Aplicación: Programación de sockets

Transcripción:

Capítulo 3: Capa Transporte - II 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 1

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 2

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. Utilización Canal o transmisor = tiempo enque Tx está transmitiendo tiempo total Evaluemos cuál es la utilización del canal de transmisión en protocolo Stop & Wait. Capa Transporte 3

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 RTT first packet bit arrives last packet bit arrives, send ACK ACK arrives, send next packet, t = RTT + L / R Utilización transmisor = L/ R RTT +L/ R = 0,008 30,008 =0,00027=0,027 L:Tamaño de paquete, RTT : Round trip time, R : tasa de transmisión Baja utilización, recuerdan cómo se mejora esto? Capa Transporte 4

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. T transmitir = L Kb/paquete =8 =8μs R 10 9 b/ s U transmisor = L/ R RTT+L/ R = 0.008 30.008 =0.00027=0.027 % 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 5

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 6

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

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 Núm. Sec. más antiguo sin Próximo número de secuencia Notación ACK: base a usar: nextseqnum Tamaño de ventana=n Con ACK recibidos ACK pendientes 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 sec. Usable, aún no enviados n sec. No usable Capa Transporte 8

GBN: MEF extendida del Transmisor rdt_send(data) Condición inicial base=1 nextseqnum=1 rdt_rcv(rcvpkt) && corrupt(rcvpkt) 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) Wait rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) base = getacknum(rcvpkt)+1 If (base == nextseqnum) stop_timer else start_timer Es una MEF, con otra notación timeout start_timer udt_send(sndpkt[base]) udt_send(sndpkt[base+1]) udt_send(sndpkt[nextseqnum-1]) Descripción del texto Capa Transporte 9

GBN: MEF extendida del Receptor Condición inicial Wait 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? Default (todo otro caso) udt_send(sndpkt) Sólo necesita recordar expectedseqnum rdt_rcv(rcvpkt) && notcurrupt(rcvpkt) && hasseqnum(rcvpkt,expectedseqnum) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(expectedseqnum,ack,chksum) udt_send(sndpkt) 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 10

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

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 12

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 13

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

Selective repeat (repetición selectiva) Transmisor 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. Receptor 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] Enviar ACK(n) Otro caso: ignorarlo Capa Transporte 15

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

Dilema de la repetición Selectiva 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? sender window (after receipt ack) pkt0 pkt1 pkt2 X X timeout retransmit pkt0 X pkt0 (b) oops! pkt0 pkt1 pkt2 pkt3 pkt0 (a) no hay problema X receiver window (after receipt) Aceptará paquete con número de sec. 0 El receptor no puede ver el lado Tx. Igual acción de Rx en ambos casos! Algo está (muy) mal! Aceptará paquete con número de sec. 0 Capa Transporte 17

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 18

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. 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 m-1 Tx Rx m m+w-1 Capa Transporte 19

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 20