Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la...

38
Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa Mar Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa Mar ía – Departamento de Informática ía – Departamento de Informática Slide Slide 1 Pr. Dr. Xavier Bonnaire Pr. Dr. Xavier Bonnaire

Transcript of Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la...

Page 1: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 11

Pr. Dr. Xavier BonnairePr. Dr. Xavier Bonnaire

Page 2: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 22

Temario

● Introducción● UDP● TCP

Page 3: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 33

Introducción

● Protocolo de transporte– Nivel 4 de las capas de red (Transport)

● Servicio de protocolo End to End (aplicación)

Network

Data Link

Hardware1

2

3Modelo TCP/IP

(Layer 4)

IP

Network4 TCP / UDP

Page 4: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 44

Servicios de protocolos End to End

● Servicios deseables:– Garantía de despacho de mensajes a destino– Despacho al destino en orden– Cuidar que no existan duplicados– Soporte de mensajes muy largos– Soporte de sincronización entre extremos– Permitir al receptor control de flujo– Soportar muchos procesos de aplicación

Page 5: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 55

Protocolo UDP

● UDP = User Datagram Protocol● Es el modelo más simple es el que extiende el servicio

de despacho host to host– UDP no es confiable (perdidas, errores, ...)– No es un modelo con conexión

● Cada host tiene varios procesos● Los procesos comunican entre ellos● ¿Cómo identificar un processo en un host?

– ¿Dirección de proceso?

● Se usa un número de identificación del proceso llamado puerta

Page 6: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 66

Puertas

● Un proceso recibe/envia mensaje por una puerta

Proceso 1

Proceso 2

Proceso n

Host 2

Proceso 1

Proceso 2

Proceso k

Host 1

Page 7: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 77

Formato del Datagrama UDP

Puerta Fuente Puerta destino

Checksum (opcional) Largo

Datos

Datos

0 16 31

Page 8: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 88

Campos del Datagrama

● Checksum: es opcional en IPv4. Se calcula sobre:– header UDP– Contenido del cuerpo del mensaje– pseudoheader: consiste en tres campos del header IP:– Largo– Dirección IP Fuente– Dirección IP Destino

Page 9: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 99

Puertas UDP

● Hay 64K (65536) puertas posibles. – Para cada Host

● La identificación completa de un proceso es: – <host, puerta>

● ¿Cómo sabe un proceso en qué puerta reside otro proceso?

Page 10: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 1010

Puertas UDP

● Un proceso cliente transmite a un servidor– ¿Como encontrar la puerta correspondiente?

● Es una puerta bien conocida (Well Known Port)– Por ejemplo el DNS tiene la puerta bien conocida 53– El servicio HTTP tiene la puerta 80

● No es una puerta bien conocida– El cliente busca la correspondencia entre el nombre del servicio y la

puerta asociada– En Linux (Unix), el archivo /etc/services contiene una tabla de

correspondencia● Servicios bien conocidos (Well Known Services) y servicios adicionales

● El servidor conoce la puerta de repuesta

Page 11: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 1111

Puertas UDP

● Ejemplo de archivo /etc/services

ftp 21/tcpftp 21/udp fsp fspdssh 22/tcp # SSH Remote Login Protocolssh 22/udp # SSH Remote Login Protocoltelnet 23/tcptelnet 23/udp...domain 53/tcp # name-domain serverdomain 53/udp...http 80/tcp www www-http # WorldWideWeb HTTPhttp 80/udp www www-http # HyperText Transfer Protocol

Page 12: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 1212

Puertas - Implementación

● Depende del sistema operativo● Pero generalmente se implementa con colas de

mensajes● Cuando el proceso quiere leer un mensaje, los extrae

de la cola asociada a la puerta

Proceso

● Si la cola está vacía, se puede bloquear hasta recibir un mensaje

Page 13: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 1313

TCP (Transmission Control Protocol)

● Es un protocolo más sofisticado que UDP– Flujo confiable– Servicio de conexión– Despacho de bytes en orden– Manejo de mensajes de gran tamaño– Gestión de errores

● Especificación oficial del protocolo: RFC 793 (1981)

Page 14: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 1414

Flujos TCP

● TCP es un modelo con conexión– Soporta dos flujos de comunicación (FDX -Full Duplex)– Además incluye un mecanismo de control de flujo para prevenir al

receptor ser inundado por datos● No es un mecanismo de control de congestión

ProcesoProceso

Page 15: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 1515

Control de Flujo TCP: ventanas deslizantes

● El corazón de TCP es el algoritmo de ventanas deslizantes. – Este algoritmo difiere del estudiado anteriormente.

● Las diferencias son.– El algoritmo anterior (ARQ), funciona sobre links simples que

conectan 2 computadores. TCP en cambio funciona entre cualquier par de computadores sobre Internet

– En TCP, el RTT no puede ser fijo sino variable. Por ejemplo depende de la hora y por lo tanto el Timeout que controla retransmisiones debe ser adaptivo.

– Como TCP está diseñado para distintos computadores, un extremo debe conocer los recursos que están asignados en el otro (buffers)

– En el camino hay distintas velocidades

Page 16: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 1616

Distintas velocidades en un enlace TCP

Ethernet 1 GBits/sInternet

Ethernet 100 MBits/s

Ethernet 10 MBits/s

Page 17: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 1717

Segmentos TCP

● TCP es un protocolo orientado al byte– se implementa a través de segmentos

Byte Stream

Page 18: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 1818

Proceso deAplicación

Buffer de Transmisión

TCP

Proceso deAplicación

Buffer de Recepción

TCP

Segmentos

Page 19: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 1919

Construcción de Segmentos

● ¿Cómo decide TCP formar un segmento?● TCP tiene tres mecanismos que disparan la

generación de un segmento:– TCP mantiene una variable llamada MSS (máximo tamaño de

segmento). Usualmente se iguala al MTU de la red conectada directamente.

– El proceso que envía hace una operación push.– A través de un timer que actúa en forma periódica

Page 20: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 2020

Formato Segmento TCP

Puerta Fuente Puerta Destino

Número de Secuencia (se numera cada Byte)Ventana deslizante

ACKVentana deslizante

HdrLen 0 Flag AdvertiseWindowVentana deslizante

ChecksumIgual que UDP

URGPtr

Opciones (variable)

Datos

Datos

0 4 8 16 31

Page 21: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 2121

Campos Segmento TCP

● Puerta Fuente y Puerta Destino: Similar a UDP– La dirección completa es: < IPdestino, Puertadestino>

● Flags (6 bits): información de control entre pares TCP. ● Por ejemplo:

– SYN: Inicio conexión - PUSH: indica al receptor que se– ACK: ACK válido invocó una operación PUSH– FIN: Fin conexión -RESET: el receptor está– URG: Datos urgentes confundido.

● UrgPtr: Es válido cuando el flag URG es set. Indica el byte donde termina la urgencia

Page 22: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 2222

Campos Segmento TCP

● CheckSum: se usa igual que UDP. ● Se calcula sobre el header TCP, los datos y el

pseudoheader (dirección IP fuente, dirección IP destino y largo del header IP)

● HdrLen: indica el largo del header en palabras de 32 bits. También se le denomina campo de Offset

Page 23: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 2323

Control de Flujo

Transmisor Receptor

Datos, Número de Secuencia

ACK, Advertise Window

Advertise Window:

Tamaño de la ventana detransmisión

La fija el receptor acordeal tamaño de sus buffers

Page 24: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 2424

Establecimiento y terminación de Conexión

● Distinguiremos dos actores: cliente y servidor● Una conexión TCP comienza con el cliente haciendo

un open activo a un servidor (previamente, el servidor ha hecho un open pasivo)

● Ambos lados intercambian mensajes para establecer conexión.

● Posteriormente se comienza el intercambio de datos.● Una vez que se termina de enviar datos, cierra la mitad

de la conexión, con lo cual TCP inicia intercambio de mensajes de terminación.

Page 25: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 2525

Conexión TCP

● El Cliente transmite un primer mensaje al servidor– Con el flag SYN– Con su número de secuencia inicial– Con la capacidad máxima de su segmento TCP

● El Servidor recibe el mensaje y constesta con– El flag ACK, y el número de secuencia ACK = número de secuencia

del cliente +1– Su propia capacidad máxima de segmento TCP

● El Cliente– Transmite un mensaje ACK con el número de secuencia del

servidor +1

Page 26: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 2626

TCP - Terminación

● Lado Activo (el que inicia la terminación)– Transmite un mensaje con

El flag SYNSECUENCIA +1ACK unchangedACK flag set

● Lado Pasivo– Transmite dos mensajes

Acknowledgment para el lado activo (ACK+1)Flag FIN + ACK igual

● Lado Activo– Transmite un mensaje

ACK +1

Page 27: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 2727

TCP – Ejemplo – Conexión y Terminación

Page 28: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 2828

TCP – Sequence Numbers

● The sequence numbers correspond to the number of bytes sent since the opening of the connection

Page 29: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 2929

Observación

● El establecimiento de una conexión es una actividad asimétrica (open activo y open pasivo)

● El término de una conexión es simétrico: cada lado hace un cierre de la conexión en forma independiente.

● Es posible que uno de los lados cierre (no envía más datos), pero el otro lado mantenga abierta la conexión y continúe enviando datos (recordar que es full duplex)– Comando Linux: netstat -a

Page 30: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 3030

TCP – Diagrama de Estado

30

CERRADA

ESCUCHA

SYN_RCVD SYN_SENT

ESTABLECIDA

FIN_WAIT_1

FIN_WAIT_2CERRANDO

TIME_WAIT

CLOSE_WAIT

LAST_ACK

CERRADA

Open Activo/SYN

Cerrar

CerrarOpen pasivo

Cerrar/FIN

ACK

FIN/ACK

ACK

FIN/ACK

Cerrar/FIN

ACK

Cerrar/FINACK

FIN/ACK

SYN/SYN+ACK

SYN+ACK/ACK

SYN/SYN+ACK

Send/SYN

Timeout

Page 31: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 3131

Terminación

● El termino de una conexión es más complicado – Ambos extremos en forma independiente pueden cerrar la mitad de

la conexión. Esto significa que en cualquiera de los dos lados pueden ocurrir tres combinaciones de transiciones:

● Este lado cierra primero:– ESTABECIDA → FIN_WAIT_1 → FIN_WAIT_2 → TIME_WAIT

→CERRADA

● El otro lado cierra primero:– ESTABECIDA → CLOSE_WAIT → LAST_ACK → CERRADA

● Ambos lados cierran al mismo tiempo:– ESTABECIDA → FIN_WAIT_1 → CERRANDO → TIME_WAIT

→CERRADA

Page 32: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 3232

Ventanas Deslizantes - Transmisor

● TCP usa un ventana en terminos de bytes

Buffer de transmisión

LastByte Acked LastByte Sent LastByte Writen

Application

LastByteSent - LastByteAcked ≤ AdvertisedWindow

EffectiveWindow=AdvertisedWindow – (LastByteSent - LastByteAcked)

Page 33: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 3333

Ventanas Deslizantes - Receptor

Buffer de recepción

LastByte Read

NextByte Expected

LastByte Rcvd

Application

AdvertisedWindow= MaxRcvBuffer - (LastByteRcvd-LastByteRead)

Page 34: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 3434

Ventanas Deslizantes - Receptor

● La contracción de la ventana de aviso depende de cuan rápido la aplicación local esté consumendo los datos.

● Si la tasa de consumo es igual a la tasa de recepción de datos, la ventana de advertencia permanece abierta– AdvertisedWindow = MaxRcvBuffer.

● Si por el contrario, el consumo de datos se pone lento, esta ventana se comienza a achicar llegando eventualmente a cero.

Page 35: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 3535

Ventanas Deslizantes - Transmisor

● ¿Cómo logra el lado transmisor saber que la ventana de advertencia ya no es 0?

● TCP siempre envía un segmento en respuesta a un segmento recibido.– Esta respuesta contiene el último valor de Acknowledge y

AdvertisedWindow, aún si estos campos no han cambiado desde la última vez que se enviaron.

– El problema es que una vez que el receptor advierte un tamaño de ventana 0, el transmisor no puede enviar más datos.

Page 36: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 3636

Ventanas Deslizantes - Transmisor

● TCP trata esta situación de la siguiente manera– toda vez que el otro lado advierte una ventana de tamaño 0, el lado

transmisor insiste en enviar un segmento con 1 byte de datos en forma seguida.

– Este dato no será aceptado, pero logra el efecto de generar una respuesta que contenga la ventana de advertencia actual.

● La razón por la cual el lado transmisor envía segmentos de prueba en forma periódica es que TCP está diseñado para hacer el receptor lo más simple posible.

Page 37: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 3737

Números de Secuencia Finitos

● El campo SequenceNum de TCP es de 32b.● El campo AdvertisedWindows es de 16b.● Se cumple el principio que el espacio de números de

secuencia es el doble que el tamaño de ventana (232 >> 2 x 216).

● De todas maneras podría ocurrir que un byte con un número de secuencia X enviado en un momento, después de un tiempo un segundo byte con el mismo número de secuencia X sea enviado más tarde.

Page 38: Pr. Dr. Xavier Bonnairebonnaire/download/RED_9_Transport.pdf · – El servicio HTTP tiene la puerta 80 No es una puerta bien conocida – El cliente busca la correspondencia entre

Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa MarPr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María – Departamento de Informáticaía – Departamento de InformáticaSlide Slide 3838

Números de Secuencia Finitos

● Para que lo anterior ocurra va a depender de cuan rápido se consuman los números de secuencia en Internet. Obviamente esto dependerá del ancho de banda. Para links actuales estos tiempos son:– T1: 6.4 hrs– Eth: 57minutos– FDDI: 6 minutos– STS-24 (1.2Gbps): 28seg.