la capa de transporte (pt. 1)cs.uns.edu.ar/~ags/rc/downloads/handouts/módulo 03 - la capa de... ·...

50
Redes de Computadoras Redes de Computadoras Depto. de Cs. e Ing. de la Comp. Depto. de Cs. e Ing. de la Comp. Universidad Nacional del Sur Universidad Nacional del Sur Módulo 03 Módulo 03 La Capa de Transporte La Capa de Transporte (Pt. 1) (Pt. 1)

Upload: others

Post on 17-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de ComputadorasRedes de ComputadorasDepto. de Cs. e Ing. de la Comp.Depto. de Cs. e Ing. de la Comp.

Universidad Nacional del SurUniversidad Nacional del Sur

Módulo 03Módulo 03La Capa de TransporteLa Capa de Transporte

(Pt. 1)(Pt. 1)

Page 2: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 22

CopyrightCopyrightCopyright © 2010-2020 A. G. Stankevicius

Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los términos de la GNU Free Documentation License, versión 1.2 o cualquiera posterior publicada por la Free Software Foundation,sin secciones invariantes ni textos de cubierta delantera o trasera

Una copia de esta licencia está siempre disponibleen la página http://www.gnu.org/copyleft/fdl.html

La versión transparente de este documento puedeser obtenida de la siguiente dirección:

http://cs.uns.edu.ar/~ags/teaching

Page 3: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 33

ContenidosContenidosServicios y protocolos de la capa de transporte

Multiplexado y demultiplexado de segmentos

Transporte no orientado a la conexión (UDP)

Teoría de transporte confiable de datos

Transporte orientado a la conexión (TCP)

Establecimiento y cierre de conexiones

Teoría de control de congestión

Control de congestión en TCP

Page 4: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 44

ISO/OSI - TCP/IPISO/OSI - TCP/IP

7

6

5

4

3

2

1 físicaenlace

redtransporte

sesiónpresentación

aplicación

Usted está aquí

5

4

3

2

1

transporte

Page 5: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 55

Servicios de transporteServicios de transporteLa capa de transporte provee la comunicación lógica entre las diversasaplicaciones de red

El servicio brindado seimplementa a travésde los protocolos dela capa de transporte

Por caso en internet secuenta con TCP y UDP

aplicacióntransporte

redenlacefísica

aplicacióntransporte

redenlacefísica

Page 6: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 66

Protocolos de transporteProtocolos de transporteLos protocolos de la capa de transporte corren en las computadoras de la frontera de la red

Cabe enfatizar que los routers en el núcleo de la red usualmente sólo implementan hasta la capa de red

El lado emisor de una comunicación corta los mensajes de las aplicaciones en segmentos,los que son pasados a la capa de red

El lado receptor rearma los mensajes a partirde los segmentos recibidos, que son luego pasados a la capa de aplicaciones

Page 7: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 77

Transporte vs. RedTransporte vs. RedLa capa de red y la de transporte parecen ser similares, pero en realidad brindan serviciosun tanto diferentes:

Por un lado, la capa de red brinda una conexión lógica punta a punta entre computadoras

Pero por otro lado, la capa de transporte brinda una conexión lógica punta a punta entre procesos

La capa de transporte no sólo hace uso de los servicios provistos por la capa de red sino que además los perfecciona y extiende

Page 8: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 88

Transporte en internetTransporte en internetInternet cuenta con dos servicios de transporte:

TCP, orientado a la conexión, que brinda un envío confiable y ordenado de datos e implementa control de flujo y de congestión

UDP, no orientado a la conexión, que brinda un envío de datos no confiable ni ordenado y tampoco implementa control de flujo ni de congestión

El servicio de transporte de internet no tiene forma de asegurar ni un ancho de banda mínimo ni un retardo máximo

Page 9: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 99

Multiplexado y demultiplexadoMultiplexado y demultiplexadoLa capa de transporte es la encargada de generalizar el servicio de conexión entre computadoras provisto por la capa de red

Para la capa de transporte no basta con identificar a una computadora en particular, debe poder identificar a un dado proceso

El mecanismo que lleva a cabo esta generalización se denomina multiplexadodel lado del emisor y demultiplexadodel lado del receptor

Page 10: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 1010

aplicaciónaplicación

transportetransporte

redred

enlaceenlace

físicafísica

Multiplexado y demultiplexadoMultiplexado y demultiplexado

Bruno

aplicaciónaplicación

transportetransporte

redred

enlaceenlace

físicafísica

aplicaciónaplicación

transportetransporte

redred

enlaceenlace

físicafísica

Alicia Carlos

socket socket socketP3 P4 P5

Multiplexado: se realiza en el emisor al juntar mensajes de los sockets con un encabezado adicional, el cual contiene información extraque será usada luego para demultiplexar

socket socketP1 P2

Page 11: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 1111

Multiplexado y demultiplexadoMultiplexado y demultiplexadoDemultiplexado: tiene a lugar en el receptor al determinar a qué socket corresponde entregar cada uno de los datos recibidos por un host

aplicaciónaplicación

transportetransporte

redred

enlaceenlace

físicafísica

Bruno

aplicaciónaplicación

transportetransporte

redred

enlaceenlace

físicafísica

aplicaciónaplicación

transportetransporte

redred

enlaceenlace

físicafísica

Alicia Carlos

socket socket socketP3 P4 P5

socket socketP1 P2

Page 12: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 1212

DemultiplexadoDemultiplexadoEl proceso de demultiplexado comienzaal recibir un datagrama IP:

Cada datagrama tiene un IPde origen y de destino

Contiene exactamenteun segmento de la capade transporte

Cada segmento especificaun puerto origen y destino

El IP y puerto destino identificaunívocamente a un socket

formato de un segmentoTCP/UDP

puerto origen puerto dest.

otros campos del encabezado

cuerpo delmensaje

32 bits

Page 13: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 1313

Demultiplexado UDPDemultiplexado UDPCada sockets UDP se asocia a un númerode puerto local determinado

Para identificar un socket UDP arbitrario sólohace falta una dirección IP y un puerto

Al recibir un segmento UDP se verifica el puerto destino indicado en el segmento y se entrega su contenido al socket asociado a ese puerto

Segmentos originados en máquinas con diversas direcciones IP o bien distintos puertos de origen pueden ser entregados al mismo socket UDP

Page 14: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 1414

Demultiplexado UDPDemultiplexado UDPSupongamos que el proceso P2 crea un socket UDP en el puerto 6428:

servidor(IP: B)

socketP2

cliente(IP: A)

socketP1

cliente(IP: C)

socketP3

SP: 9157DP: 6428

SIP: ADIP: B

SP: 5775DP: 6428

SIP: CDIP: B

SP: 6428DP: 5775

DIP: CSIP: B

SP: 6428DP: 9157

DIP: ASIP: B

Page 15: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 1515

Demultiplexado TCPDemultiplexado TCPCada socket TCP se asocia a cuatro valores,la dirección IP y puerto de origen por un ladoy la dirección IP y puerto destino por el otro

La computadora que recibe un segmento TCP hace uso de esos cuatro valores para determinar cuálde los sockets TCP debe recibirlo

Los servidores naturalmente hacen usode múltiples sockets, uno para cada unode los clientes conectados

Page 16: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 1616

Demultiplexado TCPDemultiplexado TCPEl proceso P2 ahora necesita un socket TCP independiente para cada cliente:

servidor(IP: B)

cliente(IP: A)

socketP1

cliente(IP: C)

socketP3

socketsocketP2

SP: 9157DP: 80SIP: ADIP: B

SP: 5775DP: 80SIP: CDIP: B

SP: 51112DP: 5775

DIP: CSIP: B

SP: 51211DP: 9157

DIP: ASIP: B

Page 17: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 1717

Protocolo UDPProtocolo UDPEl protocolo UDP representa el servicio de transporte más elemental que brinda internet

Se define formalmente en el RFC 768

Se basa en el principio “best effort”,propio del protocolo IP de la capa de red

Se trata de un protocolo no orientadoa la conexión:

Cada segmento UDP se puede manipularde manera independiente del resto

Page 18: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 1818

Protocolo UDPProtocolo UDP¿Habiendo TCP, hace falta UDP?

UDP no necesita establecer una conexión antesde comenzar a enviar información

Es extremadamente simple, no necesita almacenar información acerca del intercambio en curso

Su encabezado es mucho más sencillo y ocupa menor cantidad de bytes que un encabezado TCP

No implementa control de flujo ni de congestión,el emisor puede enviar la información al ritmoque le plazca, sin limitaciones de ningún tipo

Page 19: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 1919

Protocolo UDPProtocolo UDPEl protocolo se suele utilizar para hacer streaming de audio y video

El streaming es tolerantea pérdidas pero requiereretardos acotados

Otros usos:

DNS

SMNP

Juegos en línea formato deun segmento UDP

puerto origen puerto dest.

cuerpo delmensaje

32 bits

longitud checksum

largo en bytesdel segmento UDP,incluyendo encabezado

Page 20: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 2020

Checksum UDPChecksum UDPEl propósito del campo checksum es detectarla aparición de bits en error

El emisor calcula el checksum correcto:

Considera el contenido del segmento comouna secuencia de enteros de 16 bits

El checksum consiste de la suma en 1-complemento de esta secuencia de enteros

Una vez obtenido el checksum correcto lo escribeen el campo correspondiente del encabezado UDP

Page 21: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 2121

Checksum UDPChecksum UDPEl receptor debe verificar el checksum:

Recomputa el checksum del segmentoque acaba de recibir

Compara el valor obtenido con el checksumregistrado en el campo del encabezado

Si difieren se detectó uno o más erroresen la transmisión

En contraste, si son iguales no se han detectados errores en la transmisión (¡lo cual no significaque no se hayan producido uno o más errores!)

Page 22: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 2222

Comunicación confiableComunicación confiable

Aplicación

Transporte

Red

P2

canal confiable

servicio provisto implementación

canal no confiable

P1

datos datos datos datos

paquete paquete

envio_rdt() entregar()

protocolo rdt(emisor)

protocolo rdt(receptor)

envio_udt() recep_rdt()

P2P1

Page 23: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 2323

Comunicación confiableComunicación confiable

canal no confiable

envio_rdt() entregar()datos datos

protocolo rdt(emisor)

protocolo rdt(receptor)

paquete paqueteenvio_udt() recep_rdt()

envio_rdt(): invocado desdearriba, suministra los datosa ser enviados

envio_rdt(): invocado desdearriba, suministra los datosa ser enviados

entregar(): invocado porel protocolo para entregarlos datos recibidos

entregar(): invocado porel protocolo para entregarlos datos recibidos

envio_udt(): invocado porel protocolo para transferirun paquete a través del canalno confiable

envio_udt(): invocado porel protocolo para transferirun paquete a través del canalno confiable

recep_rdt(): invocado porel protocolo cuando llegaun nuevo paquete al receptor

recep_rdt(): invocado porel protocolo cuando llegaun nuevo paquete al receptor

P2P1

Page 24: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 2424

Protocolo RDTProtocolo RDTA continuación analizaremos cómo se debería definir el protocolo RDT para poder brindarun servicio de transferencia confiable de datos

La idea es comenzar con un protocolo básico para luego ir considerando un escenario más realista

Emisor y receptor tienen responsabilidades diferentes

Sólo consideraremos una comunicación unidireccional

Las distintas iteraciones del protocolo RDT serán definidas a través de autómatas finitos

Page 25: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 2525

RDT/1.0RDT/1.0El protocolo RDT/1.0 permite el envío confiable de datos a través de un canal confiable

El canal no pierde información ni introduce errores

Un autómata para el emisor y otro para el receptor

paqenv = empaq(datos)envio_udt(paqenv)

envio_rdt(datos)esperarllamada

de arriba datos = desempaq(paqrec)entregar(datos)

recep_rdt(paqrec)esperarllamadade abajo

emisor receptor

Page 26: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 2626

RDT/2.0RDT/2.0El protocolo RDT/2.0 permite envío confiablede datos a través de un canal que puede causar errores a nivel de los bits

El canal sigue sin perder información, sólo introduce errores a nivel de bit

Los errores pueden ser detectados por el campo checksum del encabezado UDP

No obstante, con detectar el error no basta,se debe incorporara al protocolo algún mecanismode recuperación ante la detección de un error

¿Qué hacen los humanos ante este tipo de error?

Page 27: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 2727

RDT/2.0RDT/2.0La nueva versión del protocolo hará usode confirmaciones de recepción (ACK) paraindicar que el paquete fue recibido sin errores

Si el paquete llega con errores, se solicitala retransmisión del mismo haciendo usode un mensaje específico (NAK)

El emisor reenvía el último paquete enviadoal recibir un NAK en vez de un ACK

¿Existe alguna situación involucrando humanos enla que se haga uso de mensajes de ACK y/o NAK?

Page 28: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 2828

Emisor RDT/2.0Emisor RDT/2.0

envio_udt(paqenv)

recep_rdt(paqrec) &&esNAK(paqrec)

esperarllamada

de arriba

esperar porACK/NAK

recep_rdt(paqrec) &&esACK(paqrec)

envio_rdt(datos)

paqenv = empaq(datos,checksum)envio_udt(paqenv)

Page 29: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 2929

Receptor RDT/2.0Receptor RDT/2.0

esperarllamadade abajo

paqenv = crearpaqNAK()envio_udt(paqenv)

recep_rdt(paqrec) &&corrupto(paqrec)

paqenv = crearpaqACK()envio_udt(paqenv)datos = desempaq(paqrec)entregar(datos)

recep_rdt(paqrec) &&!corrupto(paqrec)

Page 30: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 3030

RDT/2.0 envío sin erroresRDT/2.0 envío sin errores

envio_udt(paqenv)

recep_rdt(paqrec) &&esNAK(paqrec)

esperarllamada

de arriba

esperar porACK/NAK

envio_rdt(datos)

recep_rdt(paqrec) &&esACK(paqrec)

esperarllamadade abajo

paqenv = crearpaqNAK()envio_udt(paqenv)

recep_rdt(paqrec) &&corrupto(paqrec)

paqenv = crearpaqACK()envio_udt(paqenv)datos = desempaq(paqrec)entregar(datos)

recep_rdt(paqrec) &&!corrupto(paqrec)

paqenv = empaq(datos,checksum)envio_udt(paqenv)

Page 31: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 3131

RDT/2.0 envío con erroresRDT/2.0 envío con errores

envio_udt(paqenv)

recep_rdt(paqrec) &&esNAK(paqrec)

esperarllamada

de arriba

esperar porACK/NAK

paqenv = empaq(datos,checksum)envio_udt(paqenv)

envio_rdt(datos)

recep_rdt(paqrec) &&esACK(paqrec)

esperarllamadade abajo

paqenv = crearpaqNAK()envio_udt(paqenv)

recep_rdt(paqrec) &&corrupto(paqrec)

paqenv = crearpaqACK()envio_udt(paqenv)datos = desempaq(paqrec)entregar(datos)

recep_rdt(paqrec) &&!corrupto(paqrec)

Page 32: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 3232

Análisis de RDT/2.0Análisis de RDT/2.0RDT/2.0 es un protocolo tipo “stop and wait”

El emisor envía un paquete y queda a la esperade que le confirmen su correcta recepción

No obstante, RDT/2.0 tiene un defecto fatal:

¿Qué sucede si el canal corrompe el paquete enviado por el receptor conteniendo un ACK o un NAK?

El problema es que el receptor desconoce qué está pasando con el emisor

Asumir que se trataba de un NAK no es suficiente, puede causar que el receptor acepte un duplicado

Page 33: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 3333

Posibles solucionesPosibles solucionesUna posibilidad consiste en enviar un ACK oun NAK adicional para que el receptor sepasi el emisor recibió correctamente el mensaje

¿Qué pasa si se corrompe el ACK/NAK del ACK/NAK?

Otra posibilidad es agregar suficientes bits de código como para poder corregir estos errores

Podría funcionar, pero no se puede aplicar a canales que pierdan paquetes

La única solución viable parece ser numerarlos paquetes

Page 34: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 3434

Paquetes duplicadosPaquetes duplicadosIncorporar un esquema de numeración delos paquetes implica que el emisor marque cada paquete que envía con un cierto número

En el escenario que se corrompía el ACK/NAKenviado por el receptor, el emisor simplementeasume que se trataba de un NAK y reenvíael último paquete (usando el mismo númerode paquete que la vez anterior)

El receptor en caso de recibir por segunda vezel mismo paquete simplemente lo descarta

Page 35: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 3535

Emisor RDT/2.1Emisor RDT/2.1

envio_udt(paqenv)

recep_rdt(paqrec) &&(corrupto(paqrec) || esNAK(paqrec))

paqenv = empaq(0,datos,checksum)envio_udt(paqenv)

envio_rdt(datos)

recep_rdt(paqrec) &&!corrupto(paqrec) &&

esACK(paqrec))

esperarllamada 0de arriba

esperar porACK/NAK 0

esperar porACK/NAK 1

esperarllamada 1de arriba

paqenv = empaq(1,datos,checksum)envio_udt(paqenv)

envio_rdt(datos)

recep_rdt(paqrec) &&!corrupto(paqrec) &&

esACK(paqrec))

envio_udt(paqenv)

recep_rdt(paqrec) &&(corrupto(paqrec) ||

esNAK(paqrec))

Page 36: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 3636

Receptor RDT/2.1Receptor RDT/2.1

esperarllamada 0de abajo

esperarllamada 1de abajo

paqenv = empaq(NAK,checksum)envio_udt(paqenv)

recep_rdt(paqrec) &&corrupto(paqrec)

paqenv = empaq(ACK,checksum)envio_udt(paqenv)

recep_rdt(paqrec) &&!corrupto(paqrec) &&

nrosec0(paqrec)

datos = desempaq(paqrec)entregar(datos)paqenv = empaq(ACK,checksum)envio_udt(paqenv)

recep_rdt(paqrec) &&!corrupto(paqrec) &&

nrosec0(paqrec)

datos = desempaq(paqrec)entregar(datos)paqenv = empaq(ACK,checksum)envio_udt(paqenv)

recep_rdt(paqrec) &&!corrupto(paqrec) &&

nrosec1(paqrec)paqenv = empaq(NAK,checksum)envio_udt(paqenv)

recep_rdt(paqrec) &&corrupto(paqrec)

paqenv = empaq(ACK,checksum)envio_udt(paqenv)

recep_rdt(paqrec) &&!corrupto(paqrec) &&

nrosec1(paqrec)

Page 37: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 3737

Análisis de RDT/2.1Análisis de RDT/2.1RDT/2.1 incorpora números de secuenciaen los paquetes enviados por el emisor

Con sólo dos números de paquete es suficiente

El emisor verifica la correcta recepción delos mensajes de ACK/NAK

Los autómatas finitos que definen el protocolo requieren el doble de estados que en RDT/2.0

Los estados distinguen el número de secuenciadel próximo paquete a ser enviado o recibido

Page 38: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 3838

Análisis de RDT/2.1Análisis de RDT/2.1El receptor debe verificar que los paquetes recibidos tengan el número de secuencia esperado

Caso contrario, se trata de un paquete duplicado,el cual debe ser descartado

El receptor no tiene forma de saber si el emisor recibió correctamente el último ACK/NAK

Se dará cuenta implícitamente que el emisor recibió correctamente el ACK cuando vea un paquete numerado con el próximo valor de la secuencia

Page 39: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 3939

RDT/2.2RDT/2.2El protocolo RDT/2.1 admite ser optimizado evitando tener que hacer uso de los mensajes NAK de reconocimiento negativo

La idea es que el receptor indique qué paquete está reconociendo al enviar un ACK

Debemos incorporar el número de secuenciaen los mensajes enviados por el receptor

La recepción por parte del emisor deun segundo ACK hace las veces de NAK

En ambos casos se debe reenviar el último paquete

Page 40: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 4040

Emisor RDT/2.2Emisor RDT/2.2

envio_udt(paqenv)

recep_rdt(paqrec) &&(corrupto(paqrec) || esACK1(paqrec))

paqenv = empaq(0,datos,checksum)envio_udt(paqenv)

envio_rdt(datos)

recep_rdt(paqrec) &&!corrupto(paqrec) &&

esACK0(paqrec)

esperarllamada 0de arriba

esperar porACK 0

esperar porACK 1

esperarllamada 1de arriba

paqenv = empaq(1,datos,checksum)envio_udt(paqenv)

envio_rdt(datos)

recep_rdt(paqrec) &&!corrupto(paqrec) &&

esACK1(paqrec))

envio_udt(paqenv)

recep_rdt(paqrec) &&(corrupto(paqrec) ||

esACK0(paqrec))

Page 41: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 4141

Receptor RDT/2.2Receptor RDT/2.2

esperarllamada 0de abajo

esperarllamada 1de abajo

paqenv = empaq(0,ACK,checksum)envio_udt(paqenv)

recep_rdt(paqrec) &&(corrupto(paqrec) || nrosec0(paqrec)

datos = desempaq(paqrec)entregar(datos)paqenv = empaq(0,ACK,checksum)envio_udt(paqenv)almenosunoenv = false

recep_rdt(paqrec) &&!corrupto(paqrec) && nrosec0(paqrec)

datos = desempaq(paqrec)entregar(datos)paqenv = empaq(1,ACK,checksum)envio_udt(paqenv)

recep_rdt(paqrec) &&!corrupto(paqrec) && nrosec1(paqrec)if(!almenosunoenv)

paqenv = empaq(1,ACK,checksum) envio_udt(paqenv)

recep_rdt(paqrec) &&(corrupto(paqrec) || nrosec1(paqrec))

almenosunoenv = true

Page 42: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 4242

RDT/3.0RDT/3.0El protocolo RDT/3.0 permite envío confiable de datos a través de un canal que puede causar errores a nivel de los bits y/o perder en su totalidad alguno de los mensajes enviados

El protocolo debe contemplar que se pierdaun paquete o un mensaje de ACK

Se deben resolver dos problemas: cómo detectarlas pérdidas y qué hacer cuando se produzca una

Los mecanismos presentes en RDT/2.2 no permiten detectar que se produjo una pérdida

Page 43: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 4343

RDT/3.0RDT/3.0Un posible solución es quedar a la espera deun paquete o un mensaje ACK y cuando se tenga la certeza de que se perdió reenviarlo

¿Cuánto hay que esperar para tener la certezaque se perdió el último mensaje enviado?

Esta alternativa funciona, pero implica pagar un costo muy alto en eficiencia al perderse un mensaje

Una mejor opción es quedar a la espera de una respuesta por un tiempo razonable y si no llega asumir que se perdió y reenviarlo

Page 44: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 4444

RDT/3.0RDT/3.0¿Qué sucede si en realidad el paquete estaba retrasado, pero no se había perdido?

El reenvió generará un mensaje duplicado, peroel protocolo ya maneja correctamente esa situación

Emisor y receptor deben indicar el númerode secuencia en sus mensajes

Para implementar esta política hace falta contar con un temporizador programable

Page 45: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 4545

Emisor RDT/3.0Emisor RDT/3.0paqenv = empaq(0,datos,checksum)envio_udt(paqenv)poner(alarma)

envio_rdt(datos)

recep_rdt(paqrec) &&(corrupto(paqrec) ||nrosec1(paqrec))

esperarllamada 1de arriba

esperarllamada 0de arriba

esperar porACK 0

esperar porACK 1

disparo(alarma)

envio_udt(paqenv)poner(alarma)

sacar(alarma)

recep_rdt(paqrec) &&!corrupto(paqrec) &&

nrosec0(paqrec)

recep_rdt(paqrec)

recep_rdt(paqrec)

paqenv = empaq(1,datos,checksum)envio_udt(paqenv)poner(alarma)

envio_rdt(datos)

recep_rdt(paqrec) &&(corrupto(paqrec) ||nrosec0(paqrec))

disparo(alarma)

envio_udt(paqenv)poner(alarma)

sacar(alarma)

recep_rdt(paqrec) &&!corrupto(paqrec) &&

nrosec1(paqrec)

Page 46: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 4646

RDT/3.0 idealRDT/3.0 ideal

envío paq. 0recep. paq. 0envío ACK 0

recep. ACK 0envío paq. 1 recep. paq. 1

envío ACK 1recep. ACK 1envío paq. 0 recep. paq. 0

envío ACK 0recep. ACK 0

emisor receptor

Page 47: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 4747

Pérdida de un paquetePérdida de un paquete

envío paq. 0recep. paq. 0envío ACK 0

recep. ACK 0envío paq. 1

disparo de alarmareenvío paq. 1 recep. paq. 1

envío ACK 1recep. ACK 1

emisor receptor

paquetepérdido

Page 48: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 4848

Pérdida de un ACKPérdida de un ACK

recep. paq. 1envío ACK 1

disparo de alarmareenvío paq. 1 recep. paq. 1 (duplicado detec.)

reenvío ACK 1recep. ACK 1

emisor receptor

ACKpérdido

recep. paq. 0envío ACK 0

recep. ACK 0envío paq. 1

envío paq. 0

Page 49: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 4949

Reenvío prematuroReenvío prematuro

disparo de alarmareenvío paq. 0 recep. paq. 0 (duplicado detec.)

reenvío ACK 0recep. ACK 0

(duplicado detec.)

emisor receptor

recep. paq. 0envío ACK 0

envío paq. 0

recep. ACK 0envío paq. 1 recep. paq. 1

envío ACK 1recep. ACK 1

Page 50: La Capa de Transporte (Pt. 1)cs.uns.edu.ar/~ags/RC/downloads/Handouts/Módulo 03 - La Capa de... · Redes de Computadoras - Mg. A. G. Stankevicius 7 Transporte vs. Red La capa de

Redes de Computadoras - Mg. A. G. StankeviciusRedes de Computadoras - Mg. A. G. Stankevicius 5050

¿¿Preguntas?Preguntas?