Vous êtes sur la page 1sur 69

La Capa de Transporte (Pt.

1)
Redes de Computadoras Lic. en Cs. de la Computacin Universidad Nacional del Sur

Mdulo 03

Copyright
Copyright 2010-2013 A. G. Stankevicius Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los trminos de la GNU Free ocumentation !icense, versi"n #.$ o cual%uiera posterior publicada por la Free Soft&are Foundation, sin secciones invariantes ni te'tos de cubierta delantera o trasera. (na copia de esta licencia est) siempre disponible en la p)gina http*++&&&.gnu.org+copyleft+fdl.html. !a versi"n transparente de este documento puede ser obtenida de la siguiente direcci"n* http*++cs.uns.edu.ar+,ags+teaching
Redes de Computadoras - Mg. A. G. Stankevicius 2

Contenidos
Servicios y protocolos de la capa de transporte. -ultiple'ado y demultiple'ado de segmentos. .ransporte no orientado a la cone'i"n /UDP0. .eor1a de transporte confiable de datos. .ransporte orientado a la cone'i"n /TCP0. 2stablecimiento y cierre de cone'iones. .eor1a de control de congesti"n. Control de congesti"n en TCP.
Redes de Computadoras - Mg. A. G. Stankevicius 3

ISO OSI ! TCP IP


7 6 5 4 3 2 1

aplicacin presentacin sesin transporte red enlace !sica

4 3 2 1

Usted est" a#u!

Redes de Computadoras - Mg. A. G. Stankevicius

Ser"i#ios de transporte
!a capa de transporte provee la comunicaci"n l"gica entre las diversas aplicaciones de red.
aplicacin transporte red enlace !sica red enlace !sica red enlace !sica

2l servicio brindado se implementa a travs de los protocolos de la capa de transporte.


3or caso en internet se cuenta con TCP y UDP.

red enlace !sica

red enlace !sica

aplicacin transporte red enlace !sica

Redes de Computadoras - Mg. A. G. Stankevicius

Proto#olos de transporte
!os protocolos de la capa de transporte corren en las computadoras de la frontera de la red.
Cabe enfati4ar %ue los routers en el n5cleo de la red usualmente s"lo implementan hasta la capa de red.

2l lado emisor de una comunicaci"n corta los mensa6es de las aplicaciones en segmentos, los %ue son pasados a la capa de red. 2l lado receptor rearma los mensa6es a partir de los segmentos recibidos, los %ue son pasados a la capa de aplicaciones.
Redes de Computadoras - Mg. A. G. Stankevicius 6

Transporte "s. $ed


!a capa de red y la de transporte parecen ser similares, pero en realidad brindan servicios un tanto diferentes*
3or un lado, la capa de red brinda una cone'i"n l"gica punta a punta entre computadoras. 3ero por otro lado, la capa de transporte brinda una cone'i"n l"gica punta a punta entre procesos.

!a capa de transporte no s"lo hace uso de los servicios provistos por la capa de red sino %ue adem)s los perfecciona y e'tiende.

Redes de Computadoras - Mg. A. G. Stankevicius

Transporte en internet
7nternet cuenta con dos servicios de transporte.
TCP, orientado a la cone'i"n, %ue brinda un env1o confiable y ordenado de datos e implementa control de flu6o y de congesti"n. UDP, no orientado a la cone'i"n, %ue brinda un env1o de datos no confiable ni ordenado y tampoco implementa control de flu6o ni de congesti"n.

2l servicio de transporte de internet no tiene forma de asegurar ni un ancho de banda m1nimo ni un retardo m)'imo.

Redes de Computadoras - Mg. A. G. Stankevicius

Multiple%ado y de&ultiple%ado
!a capa de transporte es la encargada de generali4ar el servicio de cone'i"n entre computadoras provisto por la capa de red. 3ara la capa de transporte no basta con identificar a una computadora en particular, debe poder identificar a un dado proceso. 2l mecanismo %ue lleva a cabo esta generali4aci"n se denomina multiple'ado del lado del emisor y demultiple'ado del lado del receptor.
Redes de Computadoras - Mg. A. G. Stankevicius !

Multiple%ado y de&ultiple%ado
Multiplexado: se reali4a en el emisor al 6untar mensa6es de los sockets con un encabe4ado adicional, el cual contiene informaci"n e'tra %ue ser) usada luego para demultiple'ar.
'1 aplicacin aplicacin soc&et

transporte transporte red red enlace enlace !sica !sica

soc&et

'2

'3 aplicacin aplicacinsoc&et

transporte transporte red red enlace enlace !sica !sica

soc&et

'4

aplicacin aplicacin red red enlace enlace !sica !sica

transporte transporte

soc&et

'4

%licia

$runo

Carlos

Redes de Computadoras - Mg. A. G. Stankevicius "#

Multiple%ado y de&ultiple%ado
Demultiplexado: tiene a lugar en el receptor al determinar a %u socket corresponde entregar cada uno de los datos recibidos.
'1 aplicacin aplicacin soc&et '2 '3 aplicacin aplicacinsoc&et '4

transporte transporte red red enlace enlace !sica !sica

soc&et

transporte transporte red red enlace enlace !sica !sica

soc&et

aplicacin aplicacin red red enlace enlace !sica !sica

transporte transporte

soc&et

'4

%licia

$runo

Carlos

Redes de Computadoras - Mg. A. G. Stankevicius ""

'e&ultiple%ado
2l proceso de demultiple'ado comien4a al recibir un datagrama IP*
Cada datagrama tiene un IP de origen y de destino. Contiene e'actamente un segmento de la capa de transporte. Cada segmento especifica un puerto origen y destino. 2l IP y puerto destino identifica un1vocamente a un socket.
32 *its puerto ori(en puerto dest. otros campos del enca*e+ado cuerpo del mensa,e

ormato de un se(mento TCP)('P

Redes de Computadoras - Mg. A. G. Stankevicius "2

'e&ultiple%ado ('P
Cada sockets UDP se asocia a un n5mero de puerto local determinado.
3ara identificar un socket UDP arbitrario s"lo hace 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)%uinas con diversas direcciones IP o bien distintos puertos de origen pueden ser entregados al mismo socket UDP.

Redes de Computadoras - Mg. A. G. Stankevicius "3

'e&ultiple%ado ('P
Supongamos %ue el proceso P2 crea un socket UDP en el puerto 89$:*
soc&et

'1

soc&et

'2

soc&et

'3

S'. 6422 1'. 0157 S3'. $ 13'. %

S'. 6422 1'. 5775 S3'. $ 13'. C

cliente -IP. %/

S'. 0157 1'. 6422 S3'. % 13'. $

servidor -IP. $/

S'. 5775 1'. 6422 S3'. C 13'. $

cliente -IP. C/

Redes de Computadoras - Mg. A. G. Stankevicius "4

'e&ultiple%ado TCP
Cada socket TCP se asocia a cuatro valores, la direcci"n IP y puerto de origen por un lado y la direcci"n IP y puerto destino por el otro.
!a computadora %ue recibe un segmento TCP hace uso de esos cuatro valores para determinar cu)l de los sockets TCP debe recibirlo.

!os servidores hacen uso de m5ltiples sockets, uno para cada uno de los clientes conectados.
!a direcci"n IP y puerto de origen distingue a los distintos clientes entre s1.

Redes de Computadoras - Mg. A. G. Stankevicius "5

'e&ultiple%ado TCP
2l proceso P2 ahora necesita un socket TCP independiente para cada cliente*
soc&et

'1

soc&et soc&et

'2

soc&et

'3

S'. 51211 1'. 0157 S3'. $ 13'. %

S'. 51112 1'. 5775 S3'. $ 13'. C

cliente -IP. %/

S'. 0157 1'. 24 S3'. % 13'. $

servidor -IP. $/

S'. 5775 1'. 24 S3'. C 13'. $

cliente -IP. C/

Redes de Computadoras - Mg. A. G. Stankevicius "6

Proto#olo ('P
2l protocolo UDP representa el servicio de transporte m)s elemental %ue brinda internet.
Se define formalmente en el RFC ;8:. Se basa en el principio <best effort=, propio del protocolo IP de la capa de red.

Se trata de un protocolo no orientado a la cone'i"n*


Cada segmento UDP se puede manipular de manera independiente del resto.

Redes de Computadoras - Mg. A. G. Stankevicius "7

Proto#olo ('P
>?abiendo TCP, hace falta UDP@
UDP no necesita establecer una cone'i"n antes de comen4ar a enviar informaci"n /lo cual puede incorporar retardos en la transmisi"n0. 2s e'tremadamente simple, no necesita almacenar informaci"n acerca de la cone'i"n en curso. Su encabe4ado es mucho m)s sencillo y ocupa menor cantidad de bytes %ue un encabe4ado TCP. Ao implementa control de flu6o ni de congesti"n, el emisor puede enviar la informaci"n al ritmo %ue le pla4ca, sin limitaciones de ning5n tipo.

Redes de Computadoras - Mg. A. G. Stankevicius "

Proto#olo ('P
2l protocolo se suele utili4ar para hacer streaming de audio y video.
2l streaming es tolerante a prdidas pero re%uiere retardos acotados.
32 *its puerto ori(en puerto dest. lon(itud c5ec&sum

Btros usos*
DNS. SMNP. Cuegos en l1nea.

lar(o en *6tes del se(mento ('P7 inclu6endo enca*e+ado

cuerpo del mensa,e

ormato de un se(mento ('P

Redes de Computadoras - Mg. A. G. Stankevicius "!

Che#)su& ('P
2l prop"sito del campo checksum es detectar la aparici"n de bits en error. 2l emisor calcula el checksum correcto*
Considera el contenido del segmento como una secuencia de enteros de #8 bits. 2l checksum consiste de la suma en #Dcomplemento de esta secuencia de enteros. (na ve4 obtenido el checksum correcto lo escribe en el campo correspondiente del encabe4ado UDP.

Redes de Computadoras - Mg. A. G. Stankevicius 2#

Che#)su& ('P
2l receptor debe verificar el checksum*
Eecomputa el checksum del segmento %ue acaba de recibir. Compara el valor obtenido con el checksum registrado en el campo del encabe4ado. Si difieren se detect" uno o m)s errores en la transmisi"n. 2n contraste, si son iguales no se han detectados errores en la transmisi"n /Flo cual no significa %ue no se hayan producido uno o m)s erroresG0.

Redes de Computadoras - Mg. A. G. Stankevicius 2"

Co&uni#a#in #on*ia+le
%plicacin '1
datos

'2
datos

'1
datos envio_rdt()

'2
datos entregar()

8ransporte

canal con ia*le

protocolo rdt -emisor/


envio_udt() pa#uete

protocolo rdt -receptor/


recep_rdt() pa#uete

Red servicio provisto

canal no con ia*le

implementacin

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

Co&uni#a#in #on*ia+le
envio_rdt(). invocado desde envio_rdt(). invocado desde arri*a7 suministra los datos arri*a7 suministra los datos a ser enviados a ser enviados

'1

'2

entregar(). invocado por entregar(). invocado por el protocolo para entre(ar el protocolo para entre(ar los datos reci*idos los datos reci*idos

datos envio_rdt()

datos entregar()

protocolo rdt -emisor/


envio_udt() pa#uete

protocolo rdt -receptor/


recep_rdt() pa#uete

envio_udt(). invocado por envio_udt(). invocado por el protocolo para trans erir el protocolo para trans erir un pa#uete a trav9s del canal un pa#uete a trav9s del canal no con ia*le no con ia*le

canal no con ia*le

recep_rdt(). invocado por recep_rdt(). invocado por el protocolo cuando lle(a el protocolo cuando lle(a un nuevo pa#uete al receptor un nuevo pa#uete al receptor

Redes de Computadoras - Mg. A. G. Stankevicius 23

Proto#olo $'T
A continuaci"n anali4aremos c"mo se deber1a definir el protocolo RDT para poder brindar un servicio de transferencia confiable de datos.
!a idea es comen4ar con un protocolo b)sico para luego ir considerando un escenario m)s realista. 2misor y receptor tienen responsabilidades diferentes. S"lo consideraremos una comunicaci"n unidireccional. !as distintas iteraciones del protocolo RDT ser)n definidas a travs de aut"matas finitos.

Redes de Computadoras - Mg. A. G. Stankevicius 24

$'T 1.0
2l protocolo RDT/1.0 permite el env1o confiable de datos a travs de un canal confiable.
2l canal no pierde informaci"n ni introduce errores. (n aut"mata para el emisor y otro para el receptor.

esperar llamada de arri*a

envio_rdt(datos) paqenv = empaq(datos) envio_udt(paqenv)

esperar llamada de a*a,o

recep_rdt(paqrec) datos = desempaq(paqrec) entregar(datos)

emisor

receptor

Redes de Computadoras - Mg. A. G. Stankevicius 25

$'T ,.0
2l protocolo RDT/2.0 permite env1o confiable de datos a travs de un canal %ue puede causar errores a nivel de los bits.
2l canal sigue sin perder informaci"n, s"lo introduce errores a nivel de bit. !os errores pueden ser detectados por el campo checksum del encabe4ado UDP. Ao obstante, con detectar el error no basta, se debe incorporara al protocolo alg5n mecanismo de recuperaci"n ante la detecci"n de un error.

Redes de Computadoras - Mg. A. G. Stankevicius 26

$'T ,.0
!a nueva versi"n del protocolo har) uso de confirmaciones de recepci"n / C!0 para indicar %ue el pa%uete fue recibido sin errores. Si el pa%uete llega con errores, se solicita la retransmisi"n del mismo haciendo uso de un mensa6e espec1fico /N !0. 2l emisor reenv1a el 5ltimo pa%uete enviado al recibir un N ! en ve4 de un C!.
>2'iste alguna situaci"n involucrando humanos en la %ue se haga uso de mensa6es de C! y+o N !@

Redes de Computadoras - Mg. A. G. Stankevicius 27

-&isor $'T ,.0


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

esperar llamada de arri*a

esperar por .C/)0./

recep_rdt(paqrec) && esNAK(paqrec) envio_udt(paqenv)

recep_rdt(paqrec) && esACK(paqrec)

Redes de Computadoras - Mg. A. G. Stankevicius 2

$e#eptor $'T ,.0


recep_rdt(paqrec) && corrupto(paqrec) paqenv = crearpaqNAK() envio_udt(paqenv)

esperar llamada de a*a,o

recep_rdt(paqrec) && !corrupto(paqrec) paqenv = crearpaqACK() envio_udt(paqenv) datos = desempaq(paqrec) entregar(datos)

Redes de Computadoras - Mg. A. G. Stankevicius 2!

$'T ,.0 en"1o sin errores


envio_rdt(datos) paqenv = empaq(datos,checksum) envio_udt(paqenv) recep_rdt(paqrec) && esNAK(paqrec) envio_udt(paqenv) recep_rdt(paqrec) && corrupto(paqrec)

esperar llamada de arri*a

esperar por .C/)0./

paqenv = crearpaqNAK() envio_udt(paqenv)

recep_rdt(paqrec) && esACK(paqrec)

esperar llamada de a*a,o

recep_rdt(paqrec) && !corrupto(paqrec) paqenv = crearpaqACK() envio_udt(paqenv) datos = desempaq(paqrec) entregar(datos)

Redes de Computadoras - Mg. A. G. Stankevicius 3#

$'T ,.0 en"1o #on errores


envio_rdt(datos) paqenv = empaq(datos,checksum) envio_udt(paqenv) recep_rdt(paqrec) && esNAK(paqrec) envio_udt(paqenv) recep_rdt(paqrec) && corrupto(paqrec)

esperar llamada de arri*a

esperar por .C/)0./

paqenv = crearpaqNAK() envio_udt(paqenv)

recep_rdt(paqrec) && esACK(paqrec)

esperar llamada de a*a,o

recep_rdt(paqrec) && !corrupto(paqrec) paqenv = crearpaqACK() envio_udt(paqenv) datos = desempaq(paqrec) entregar(datos)

Redes de Computadoras - Mg. A. G. Stankevicius 3"

.n2lisis de $'T ,.0


RDT/2.0 es un protocolo tipo <stop and &ait=.
2l emisor env1a un pa%uete y %ueda a la espera de %ue le confirmen su correcta recepci"n.

Ao obstante, RDT/2.0 tiene un problema fatal*


>Hu sucede si el canal corrompe el pa%uete enviado por el receptor conteniendo un C! o un N !@ 2l problema es %ue el receptor desconoce %u est) pasando con el emisor. Asumir %ue se trataba de un N ! no es suficiente, puede causar %ue el receptor acepte un duplicado.

Redes de Computadoras - Mg. A. G. Stankevicius 32

Posi+les solu#iones
(na posibilidad consiste en enviar un C! o un N ! adicional para %ue el receptor sepa si el emisor recibi" correctamente el mensa6e.
>Hu pasa si se corrompe el C!+N ! del C!+N !@

Btra posibilidad es agregar suficientes bits de c"digo como para poder corregir estos errores.
3odr1a funcionar, pero no se puede aplicar a canales %ue pierdan pa%uetes.

!a 5nica soluci"n viable parece ser numerar los pa%uetes.


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

Pa3uetes dupli#ados
7ncorporar un es%uema de numeraci"n de los pa%uetes implica %ue el emisor mar%ue cada pa%uete %ue env1a con un cierto n5mero.
2n el escenario %ue se corromp1a el C!+N ! enviado por el receptor, el emisor simplemente asume %ue se trataba de un N ! y reenv1a el 5ltimo pa%uete /usando el mismo n5mero de pa%uete %ue la ve4 anterior0. 2l receptor en caso de recibir por segunda ve4 el mismo pa%uete simplemente lo descarta.

Redes de Computadoras - Mg. A. G. Stankevicius 34

-&isor $'T ,.1


envio_rdt(datos) paqenv = empaq( ,datos,checksum) envio_udt(paqenv) recep_rdt(paqrec) && (corrupto(paqrec) || esNAK(paqrec)) envio_udt(paqenv)

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

esperar llamada 4 de arri*a

esperar por .C/)0./ 4


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

esperar por .C/)0./ 1 esperar llamada 1 de arri*a


envio_rdt(datos)

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

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

Redes de Computadoras - Mg. A. G. Stankevicius 35

$e#eptor $'T ,.1


recep_rdt(paqrec) && !corrupto(paqrec) && nrosec (paqrec) recep_rdt(paqrec) && datos = desempaq(paqrec) recep_rdt(paqrec) && !corrupto(paqrec) && entregar(datos) corrupto(paqrec) nrosec!(paqrec) paqenv = empaq(ACK,checksum) envio_udt(paqenv) paqenv = empaq(NAK,checksum) paqenv = empaq(ACK,checksum) envio_udt(paqenv) envio_udt(paqenv)

esperar llamada 4 de a*a,o


recep_rdt(paqrec) && corrupto(paqrec)

esperar llamada 1 de a*a,o


recep_rdt(paqrec) && !corrupto(paqrec) && nrosec (paqrec) paqenv = empaq(ACK,checksum) envio_udt(paqenv)

recep_rdt(paqrec) && !corrupto(paqrec) && paqenv = empaq(NAK,checksum) nrosec!(paqrec) envio_udt(paqenv) datos = desempaq(paqrec) entregar(datos) paqenv = empaq(ACK,checksum) envio_udt(paqenv)

Redes de Computadoras - Mg. A. G. Stankevicius 36

.n2lisis de $'T ,.1


RDT/2.1 incorpora n5meros de secuencia en los pa%uetes enviados por el emisor.
Con s"lo dos n5meros de pa%uete es suficiente.

2l emisor verifica la correcta recepci"n de los mensa6es de C!+N !. !os aut"matas finitos %ue definen el protocolo re%uieren el doble de estados %ue en RDT/2.0.
!os estados distinguen el n5mero de secuencia del pr"'imo pa%uete a ser enviado o recibido.

Redes de Computadoras - Mg. A. G. Stankevicius 37

.n2lisis de $'T ,.1


2l receptor debe verificar %ue los pa%uetes recibidos tengan el n5mero de secuencia esperado.
Caso contrario, se trata de un pa%uete duplicado, el cual debe ser descartado.

2l receptor no tiene forma de saber si el emisor recibi" correctamente el 5ltimo C!+N !.


Se dar) cuenta impl1citamente %ue el emisor recibi" correctamente el C! cuando vea un pa%uete numerado con el pr"'imo valor de la secuencia.

Redes de Computadoras - Mg. A. G. Stankevicius 3

$'T ,.,
2l protocolo RDT/2.1 admite ser optimi4ado evitando tener %ue hacer uso de los mensa6es N ! de reconocimiento negativo. !a idea es %ue el receptor indi%ue %u pa%uete est) reconociendo al enviar un C!.
ebemos incorporar el n5mero de secuencia en los mensa6es enviados por el receptor.

!a recepci"n por parte del emisor de un segundo C! hace las veces de N !.


2n ambos casos se debe reenviar el 5ltimo pa%uete.
Redes de Computadoras - Mg. A. G. Stankevicius 3!

-&isor $'T ,.,


envio_rdt(datos) paqenv = empaq( ,datos,checksum) envio_udt(paqenv) recep_rdt(paqrec) && (corrupto(paqrec) || esACK!(paqrec)) envio_udt(paqenv)

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

esperar llamada 4 de arri*a

esperar por .C/ 4


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

esperar por .C/ 1 esperar llamada 1 de arri*a


envio_rdt(datos)

recep_rdt(paqrec) && (corrupto(paqrec) || esACK (paqrec)) envio_udt(paqenv)

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

Redes de Computadoras - Mg. A. G. Stankevicius 4#

$e#eptor $'T ,.,


recep_rdt(paqrec) && !corrupto(paqrec) && nrosec (paqrec) datos = desempaq(paqrec) entregar(datos) paqenv = empaq( ,ACK,checksum) envio_udt(paqenv) a"menosunoenv = #a"se recep_rdt(paqrec) && (corrupto(paqrec) || nrosec (paqrec) paqenv = empaq( ,ACK,checksum) envio_udt(paqenv)

a"menosunoenv = true

esperar llamada 4 de a*a,o

esperar llamada 1 de a*a,o

recep_rdt(paqrec) && (corrupto(paqrec) || nrosec!(paqrec)) i#(!a"menosunoenv) paqenv = empaq(!,ACK,checksum) envio_udt(paqenv)

recep_rdt(paqrec) && !corrupto(paqrec) && nrosec!(paqrec) datos = desempaq(paqrec) entregar(datos) paqenv = empaq(!,ACK,checksum) envio_udt(paqenv)

Redes de Computadoras - Mg. A. G. Stankevicius 4"

$'T 3.0
2l protocolo RDT/3.0 permite env1o confiable de datos a travs de un canal %ue puede causar errores a nivel de los bits y+o perder en su totalidad alguno de los mensa6es enviados.
2l protocolo debe contemplar %ue se pierda un pa%uete o un mensa6e de C!. Se deben resolver dos problemas* c"mo detectar las prdidas y %u hacer cuando se produ4ca una.

!os mecanismos presentes en RDT/2.2 no permiten detectar %ue se produ6o una prdida.

Redes de Computadoras - Mg. A. G. Stankevicius 42

$'T 3.0
(n posible soluci"n es %uedar a la espera de un pa%uete o un mensa6e C! y cuando se tenga la certe4a de %ue se perdi" reenviarlo.
>Cu)nto hay %ue esperar para tener la certe4a %ue se perdi" el 5ltimo mensa6e enviado@ 2sta alternativa funciona, pero implica pagar un costo muy alto en eficiencia al perderse un mensa6e.

(na me6or opci"n es %uedar a la espera de una respuesta por un tiempo ra4onable y si no llega asumir %ue se perdi" y reenviarlo.

Redes de Computadoras - Mg. A. G. Stankevicius 43

$'T 3.0
>Hu sucede si en realidad el pa%uete estaba retrasado, pero no se hab1a perdido@
2l reenvi" generar) un mensa6e duplicado, pero el protocolo ya mane6a correctamente esa situaci"n. 2misor y receptor deben indicar el n5mero de secuencia en sus mensa6es.

3ara implementar esta pol1tica hace falta contar con un tempori4ador programable.

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

-&isor $'T 3.0


envio_rdt(datos) paqenv = empaq( ,datos,checksum) recep_rdt(paqrec) && (corrupto(paqrec) || envio_udt(paqenv) nrosec!(paqrec)) poner(a"arma) recep_rdt(paqrec)

esperar por .C/ 4


disparo(a"arma) envio_udt(paqenv) poner(a"arma) recep_rdt(paqrec) && !corrupto(paqrec) && nrosec (paqrec)

esperar llamada 4 recep_rdt(paqrec) && !corrupto(paqrec) && de arri*a


nrosec!(paqrec) sacar(a"arma) disparo(a"arma) envio_udt(paqenv) poner(a"arma) recep_rdt(paqrec) && (corrupto(paqrec) || nrosec (paqrec))

esperar por .C/ 1

esperar llamada 1 de arri*a


envio_rdt(datos)

sacar(a"arma)

recep_rdt(paqrec)

paqenv = empaq(!,datos,checksum) envio_udt(paqenv) poner(a"arma)

Redes de Computadoras - Mg. A. G. Stankevicius 45

$'T 3.0 ideal


emisor receptor

env!o pa#. 4 recep. .C/ 4 env!o pa#. 1 recep. .C/ 1 env!o pa#. 4 recep. .C/ 4

recep. pa#. 4 env!o .C/ 4 recep. pa#. 1 env!o .C/ 1 recep. pa#. 4 env!o .C/ 4

Redes de Computadoras - Mg. A. G. Stankevicius 46

P4rdida de un pa3uete
emisor receptor

env!o pa#. 4 recep. .C/ 4 env!o pa#. 1 pa#uete p9rdido disparo de alarma reenv!o pa#. 1 recep. .C/ 1

recep. pa#. 4 env!o .C/ 4

recep. pa#. 1 env!o .C/ 1

Redes de Computadoras - Mg. A. G. Stankevicius 47

P4rdida de un .C/
emisor receptor

env!o pa#. 4 recep. .C/ 4 env!o pa#. 1 recep. pa#. 4 env!o .C/ 4 recep. pa#. 1 env!o .C/ 1 %C: p9rdido recep. pa#. 1 -duplicado detec./ reenv!o .C/ 1

disparo de alarma reenv!o pa#. 1 recep. .C/ 1

Redes de Computadoras - Mg. A. G. Stankevicius 4

$een"1o pre&aturo
emisor receptor

env!o pa#. 4 recep. pa#. 4 env!o .C/ 4 disparo de alarma reenv!o pa#. 4 recep. .C/ 4 -duplicado detec./ recep. .C/ 1

recep. .C/ 4 env!o pa#. 1

recep. pa#. 4 -duplicado detec./ reenv!o .C/ 4 recep. pa#. 1 env!o .C/ 1

Redes de Computadoras - Mg. A. G. Stankevicius 4!

.n2lisis de $'T 3.0


2l protocolo RDT/3.0 cumple con el ob6etivo propuesto, esto es, permite la transmisi"n confiable de datos sobre un canal no confiable. Ao obstante, este protocolo presenta un desempeIo bastante pobre, lo %ue lo torna poco aplicable a escenarios del mundo real.
2sta es una caracter1stica propia de los protocolos de la familia <stopDandD&ait=.

Redes de Computadoras - Mg. A. G. Stankevicius 5#

'ese&pe5o de $'T 3.0


Consideremos la siguiente situaci"n*
Se dispone de una l1nea dedicada de # Gb+s %ue une dos de las oficinas de una cierta compaI1a. Se intercambian pa%uetes de # JK y el RTT entre estas oficinas es de LM ms. dtrans=
L -cantidad de *its/ $ -anc5o de *anda/ L )$ $TT ; L)$

2444 * 14=0 *)s .442 ms

= 2 microse(.

uenlace=

34.442 ms

= 4.427<
33.3 :$)s

1 pa#. ) 34 ms

1 >*)s ? 4.427<

Redes de Computadoras - Mg. A. G. Stankevicius 5"

Operatoria stop!and!6ait
env!o del primer *it -t @ 4/ env!o del Altimo *it -t @ L)$/ recep. del primer *it $TT recep. del Altimo *it env!o del .C/

recep. del .C/ -t @ L)$ ; $TT/ comien+a el env!o del si(. pa#.

uenlace=

L)$ $TT ; L)$

.442 ms 34.442 ms

= 4.427<

Redes de Computadoras - Mg. A. G. Stankevicius 52

Operatoria en pipeline
2l factor de utili4aci"n obtenido de apenas M.M$;N es evidentemente inaceptable. ?abr1a %ue permitir una operatoria en pipeline a fin de elevar el factor de ocupaci"n.
!a idea b)sica es permitir %ue varios pa%uetes estn en camino al mismo tiempo. A tal efecto hace falta incrementar los n5meros de secuencia disponibles. .ambin hace falta alguna forma de almacenamiento intermedio tanto en emisor como receptor.

Redes de Computadoras - Mg. A. G. Stankevicius 53

Operatoria en pipeline
env!o del primer *it -t @ 4/ env!o del Altimo *it -t @ L)$/ recep. del primer *it $TT recep. del .C/7 comien+a el env!o del si(. pa#. -t @ L)$ ; $TT/ Altimo *it 1er. pa#. ) env!o .C/ Altimo *it 2do. pa#. ) env!o .C/ Altimo *it 3er. pa#. ) env!o .C/

Bme,ora la utili+acin por un actor de 3C

uenlace=

3 ? L)$ $TT ; L)$

.424 ms 34.442 ms

= 4.42<

Redes de Computadoras - Mg. A. G. Stankevicius 54

Proto#olo 7o!8a#)!0
2l protocolo G"N implementa la operatoria en pipeline antes comentada.
Se reservan # bits del encabe4ado para los n5meros de secuencia de los pa%uetes. Se permiten hasta una ventana desli4ante de N pa%uetes en tr)nsito, esto es, a%uellos cuales cuya confirmaci"n de recepci"n a5n no ha sido recibida.
ventana desli+ante de tamaDo 0

.C/ 6a reci*ido

todav!a enviados a ser enviados no usa*les esperando .C/ Redes de Computadoras - Mg. A. G. Stankevicius 55

-&isor 780

$ase = ! pro%num = ! envio_rdt(datos) i#(pro%num & $ase ' N) ( paqenv)pro%num* = empaq(pro%num, datos, checksum) envio_udt(paqenv)pro%num*) i# (pro%num == $ase) poner(a"arma) pro%num'' +

recep_rdt(paqrec) && corrupto(paqrec)

esperar llamada de arri*a

disparo(a"arma) poner(a"arma) envio_udt(paqenv)$ase*) envio_udt(paqenv)$ase ' !*) envio_udt(paqenv)pro%num , !*)

recep_rdt(paqrec) && !corrupto(paqrec) $ase = nrosec(paqrec) ' ! i# (pro%num == $ase) sacar(a"arma) e"se poner(a"arma)

Redes de Computadoras - Mg. A. G. Stankevicius 56

$e#eptor 780
recep_rdt(paqrec) && !corrupto(paqrec) && (nrosec(paqrec) == pro%numreq) datos = desempaq(paqrec) entregar(datos) paqenv = empaq(pro%numreq, ACK, checksum) envio_udt(paqenv) pro%numreq''

pro%numreq = ! paqenv = empaq( ,ACK,checksum)

esperar llamada de a*a,o


recep_rdt(paqrec) && (corrupto(paqrec) || (nrosec(paqrec) != pro%numreq))) envio_udt(paqenv)

Redes de Computadoras - Mg. A. G. Stankevicius 57

.n2lisis 780
2l receptor s"lo env1a un mensa6e de C! para el pa%uete correctamente recibido con mayor n5mero de secuencia.
2sta pol1tica puede generar mensa6es de duplicados. C!

2l receptor s"lo necesita recordar el n5mero de secuencia del pr"'imo pa%uete %ue desea.

!os pa%uetes recibidos fuera de orden son descartados.


2l receptor no re%uiere almacenamiento intermedio.

Redes de Computadoras - Mg. A. G. Stankevicius 5

780 en a##in
env!o pa#. 1 env!o pa#. 2 env!o pa#. 3 env!o pa#. 4 -a(ota la ventana/ recep. .C/ 17 env!o pa#. 5 recep. .C/ 27 env!o pa#. 6 disparo de alarma7 reenv!o pa#. 3 reenv!o pa#. 4 reenv!o pa#. 5 reenv!o pa#. 6 recep. pa#. 17 env!o .C/ 1 recep. pa#. 27 env!o .C/ 2 recep. pa#. 4 -se descarta/ reenv!o .C/ 2 recep. pa#. 5 -se descarta/ reenv!o .C/ 2 recep. pa#. 6 -se descarta/ reenv!o .C/ 2 recep. pa#. 37 env!o .C/ 3 recep. pa#. 47 env!o .C/ 4 recep. pa#. 57 env!o .C/ 5 recep. pa#. 67 env!o .C/ 6

Redes de Computadoras - Mg. A. G. Stankevicius 5!

$epeti#in Sele#ti"a
2l protocolo Eepetici"n Selectiva /SR0 es otra implementaci"n de la operatoria en pipeline.
!a idea central es disminuir el n5mero de pa%uetes a ser reenviados al recuperarse de una prdida.

A diferencia de G"N, el receptor reconoce por separado a cada uno de los pa%uetes correctamente recibidos.
2l receptor debe contar con un almacenamiento intermedio para alo6ar los pa%uetes recibidos correctamente pero fuera de orden.

Redes de Computadoras - Mg. A. G. Stankevicius 6#

$epeti#in Sele#ti"a
2l emisor s"lo debe reenviar a%uellos pa%uetes para los %ue a5n no se haya recibido el mensa6e de C! correspondiente
2sto implica %ue debemos contar con un tempori4ador independiente para cada pa%uete enviado cuyo C! asociado a5n no haya sido recibido.

2l emisor cuenta con una ventana desli4ante de N n5meros consecutivos de secuencia.


!a ventana representa el con6unto de pa%uetes %ue tiene permitido tener en tr)nsito al mismo tiempo.

Redes de Computadoras - Mg. A. G. Stankevicius 6"

9isin del e&isor y re#eptor


enviados7 .C/ 6a reci*ido enviados7 esperando .C/ usa*les7 a ser enviados no usa*les reci*idos uera de orden7 .C/ 6a enviado a la espera7 aAn no reci*idos acepta*les no usa*les

emisor S$
ventana desli+ante

receptor S$
ventana desli+ante

Redes de Computadoras - Mg. A. G. Stankevicius 62

-&isor S$
2l emisor SR debe reaccionar ante los eventos %ue se presenten de la siguiente manera*
Al recibir un nuevo pa%uete a ser enviado debe verificar si el siguiente n5mero de secuencia se encuentra dentro de la ventana. Al dispararse la alarma de un pa%uete debe reenviar s"lo ese pa%uete y debe reiniciar el tempori4ador. Al recibir un C! debe marcar ese pa%uete como recibido y en caso de ser el menor n5mero de pa%uete del cual faltaba recibir confirmaci"n, debe avan4ar la ventana hasta el pr"'imo pa%uete a5n sin confirmar.

Redes de Computadoras - Mg. A. G. Stankevicius 63

$e#eptor S$
2l receptor SR debe reaccionar ante los eventos %ue se presenten de la siguiente manera*
Al recibir un pa%uete con n5mero de secuencia $ase se env1a su C! y se avan4a la ventana hasta el pr"'imo pa%uete esperado pero a5n no recibido. Al recibir un pa%uete con n5mero de secuencia entre $ase'! y $ase'N,! se env1a su C! y se guarda provisoriamente en el almacenamiento intermedio. Al recibir un pa%uete con n5mero de secuencia entre $ase,N y $ase,! s"lo se env1a su respectivo C!. 2n cual%uier otro caso, no se toma acci"n alguna.
Redes de Computadoras - Mg. A. G. Stankevicius 64

Proto#olo S$ en a##in
enviados con . a la espera 4 4 4 4 alarma pa#. 2 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 2 2 2 2 0 0 0 0 enviados no con . usa*les uera de orden no usa*les

4 1 23456720 4 1 23456720 4 1 23456720 4 1 23456720 4 1 23456720 4 1 23456720

4 1 23456720 4 1 23456720 4 1 23456720 4 1 23456720

Redes de Computadoras - Mg. A. G. Stankevicius 65

-l dile&a del re#eptor S$


enviados con . a la espera 4 1 234 1 2 4 1 234 1 2 4 1 234 1 2 enviados no con . usa*les uera de orden no usa*les

4 1 234 1 2 4 1 234 1 2 4 1 234 1 2

4 1 234 1 2 4 1 234 1 2 4 1 234 1 2

4 1 234 1 2 4 1 234 1 2 4 1 234 1 2

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

-l dile&a del re#eptor S$


enviados con . a la espera 4 1 234 1 2 4 1 234 1 2 4 1 234 1 2 enviados no con . usa*les uera de orden no usa*les

alarma pa#. 4

4 1 234 1 2 4 1 234 1 2 4 1 234 1 2

4 1 234 1 2 4 1 234 1 2

BS$ entre(a un pa#uete uera de ordenC Redes de Computadoras - Mg. A. G. Stankevicius 67

.n2lisis S$
2l receptor SR no tiene forma de distinguir entre estos dos escenarios.
2n el primer caso el funcionamiento es el esperado, pero en el segundo caso, SR termina entregando un pa%uete fuera de orden.

>Hu relaci"n tiene %ue cumplirse entre el tamaIo de ventana y el con6unto de n5meros de secuencia disponibles@
2l tamaIo de ventana debe ser menor o igual a la mitad de la cantidad de n5meros de secuencia.

Redes de Computadoras - Mg. A. G. Stankevicius 6

Preguntas?

Redes de Computadoras - Mg. A. G. Stankevicius 6!

Vous aimerez peut-être aussi