Captiulo 3 - Transporte Flashcards

1
Q

Segmento UDP

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

UDP Servicios

A
  • Entrega de datos de proceso a proceso.
  • Chequeo de errores
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

TCP Servicios

A
  • Orientado a conexion (handshaking)
  • Transferencia Confiable de datos (llega, sin errores y en orden)
  • Control de congestion
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Demultiplexing

A

Es un proceso que se da en el receptor, mediante el cual se envía la data desde la capa de transporte al correspondiente socket.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Multiplexing

A

El proceso en el emisor, de recolectar chunks de diferentes sockets y encapsular cada uno con un header para crear segmentos y pasarlos a la capa de transporte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Por que usar UDP?

A
  • Control sobre que data se envía y cuando: no hay control de congestión.
  • Sin conexión: no se pierde tiempo estableciendo una conexión.
  • No hay estado: No guarda ningun parametro. Lo que permite tener más clientes activos.
  • Header más pequeños: 8 bytes contra 20 bytes de TCP.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

UDP Checksum

A

Brinda detección de errores. Se realiza haciendo el complemento a 1 de la suma de todas las palabras de 16 bits del segmento UDP. El resultado se pone en el campo cheksum del header.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Calculo del checksum (UDP)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

rdt 1.0

A
  • Canal 100% confiable.
  • Stop & Wait
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

rdt 2.0

A
  • Los paquetes pueden llegar con errores en los bits.
  • No se pierden paquetes.
  • ACK positivos y negativos (sin errores).
  • Stop & Wait
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

rdt 2.1

A
  • Se agrega que el ACK y el NACK pueden venir corruptos.
  • Se agrega numero de secuencia (0 y 1, ya que es stop & wait) Esto es para que el receptor sepa si el paquete que llega es nuevo o una retransmisión (por que el ack llegó corrupto al emisor).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

rdt 2.2

A
  • Libre de NACK.
  • ACK con número de secuencia.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

rdt 3.0

A
  • Se pierden paquetes.
  • Timeout
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Pipelined Reliable Data Transfer Protocols

A
  • Se envian multiples paquetes a la vez.
  • Se aumenta rango de la secuencia de números ya que ahora hay más paquetes viajando.
  • Buffers en el emisor y/o el receptor.
  • Dos formas de recuperarse del error: Go-back-N y Selective Repeat.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Go-back-N

A
  • base: el número de ACK más viejo
  • nextseqnum: el número de secuencia del próximo paquete a enviar.
  • ACK acumulativos (si recibo un ACK de n, se recibieron todos hasta n)
  • Si ocurre timeout, se reenvían todos desde el último ACK.
  • Buffer solo en el emisor.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Selective Repeat

A
  • Solo se reenvían los paquetes que no tienen ACK.
  • Los ACK no son acumulativos.
  • Multiple timers (1 por paquete enviado)
  • windows_size
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Conexión TCP - Características

A
  • Orientado a conexión: handshaking.
  • Full duplex: si a se conecta a b, entonces b esta conectado con a.
  • Punto a punto: un solo emisor y un solo receptor.
18
Q

MSS

A

Maximum Segment Size: es la mayor cantidad de data que se puede meter en un segmento. Se calcula teniendo en cuenta el tamaño del frame mas grande que puede enviar el host actual (MTU, Maximum Transmission Unit). Para asegurarse que el segmento TCP entre en un único frame al encapsularse dentro del datagrama IP.

La data a enviar se parte en MSS y se mete dentro de un segmento TCP.

19
Q

Segmento TCP

A

Header Length (4 bits): Especifíca el largo del header en cantidad de palabras de 32 bits. El header puede variar debido al campo Options. Normalmente está vacío, y el tamaño del header es de 20 bytes.

ACK (1 bit): si esta en 1 indica que es un ACK.

RST (1 bit) SYN (1 bit) FIN (1 bit): se usan para configurar la conexión.

Numeros de secuencia y de ack: El número de secuencia es el número de byte dentro del stream de bytes, del primer byte del segmento (data).

El ACK es el número de secuencia del próximo byte que se está esperando.

20
Q

Telnet (TCP, 23)

A
  • Es un protocolo de capa de aplicación para acceder a equipos remotos.
  • Corre sobre TCP.
  • Los datos se envían sin encriptar.
  • Cada caracter ingresado en el cliente se envía al servidor y el servidor lo envía nuevamente al cliente.
21
Q

Cuando se dice que un ACK es piggybacked?

A

cuando ademas del ACK lleva datos en el segmento.

22
Q

Estimación del RTT

A
23
Q

Fast Retransmission

A

Cuando se reciben tres ACK duplicados, se reenvía el segmento correspondiente a ese ACK para evitar que salte el timeout.

TCP solo re-transmite si hubo timeout o tres ACK duplicados.

24
Q

TCP es Go-back N o Selective Repeat?

A

Se parece a GBN porque mantiene una base y un nextSeqNum, pero TCP no retransmite todos los paquetes sin ACK si se pierde un ACK. Ademas tiene buffer en el receptor como Selective Repeat. Por lo tanto es un híbrido entre Go-back N y Selective Repeat.

TCP permite que lleguen segmentos desordenados, porque tiene buffer de recepción. Ademas si se da un timeout solo retransmite el segmento que ocasionó el timeout.

25
Q

Flow Control

A

Si el emisor envía datos más rápido de lo que el receptor puede procesarlos, se puede saturar el buffer del receptor. Para evitar esto, TCP ofrece un servicio de control de flujo.

Para esto el emisor mantiene una variable llamada ventana de recepción , que indica cuánto espacio disponible hay en el buffer del receptor.

26
Q

ACK en TCP

A
27
Q

TCP Connection Management

A
  • El cliente crea un segmento TCP sin datos, con el bit SYN en 1. En este punto se elige un número de secuencia random (client_seq). Se encapsula el segmento dentro de un datagrama IP y se envía al servidor.
  • Cuando el datagrama IP arriva al cliente, se extrae el segmento TCP SYN y se crean los buffers y variables de conexión. El servidor, envía un segmento TCP al cliente sin datos, con el bit SYN en 1, el bit ACK en 1 y el número de ACK client_seq +1. El servidor elige también un número de secuencia random (server_seq) en este punto.
  • Cuando el cliente recibe el SYNACK crea los buffers y variables para la conexión y envía un ACK server-seq+1 sin SYN (la conexion ya existe) al servidor.
28
Q

Three way Handshaking

A
29
Q

Closing a TCP connection

A
30
Q

Life of a TCP connection

A
31
Q

Congestión, por que se produce? y que provoca?

A

El router recibe paquetes más rápido de lo que puede procesarlos, aumentando la espera en las colas.

  • Perdida de paquetes
  • Delay grandes
32
Q

Congestión Escenario 1

Dos conexiones compartiendo un mismo hop de buffer infinito.

A

Incluso en este ejemplo de buffer infinitos, cuando los paquetes llegan a un rate cercano a la capacidad límite del enlace, las colas se hacen cada vez más largas.

33
Q

Congestión Escenario 2

Buffer finito y transferencia confiable, con lo cual ocurre retransmisión si un paquete se pierde. Si el emisor piensa que el paquete no llegó, lo reenvía.

A

Esto puede provocar que el paquete sea retransmitido innecesariamente utilizando ancho de banda. Esto provoca que el router envíe más paquetes de los necesarios (goodput vs throughput).

34
Q

Congestión Escenario 3

Cuatro hosts retransmitiendo paquetes en conexiones de 2 hops solapadas.

A

En este caso cuando un paquete es descartado a lo largo del path, la capacidad de transmisión utilizada en cada link antes de ser descartado fue al cuete.

35
Q

Enfoques para controlar la congestión (2 enfoques)

A

End-to-end congestion control

  • La capa de red no provee soporte explícito.
  • La detección de la congestión se realiza observando el comportamiento de la red desde en los sistemas finales.
  • Es el enfoque utilizado por TCP (IP no provee feedback), cuando TCP ve que hay pérdidas, disminuye el tamaño de la ventana.

Network Assisted congestion control

  • Los componentes de la capa de red (routers) proveen feedback explícito sobre la situacion de la red. Por ejemplo con un bit indicando congestión.
36
Q

TCP Congestion Control

Cómo se detecta que hay congestión?

Como cambia el rate?

A

El enfoque tomado por TCP es limitar el rate al que transmite el emisor si se observa congestión en la red.

Ventana de congestion (cwnd)

Es una variable del mecanismo de control de congestión en TCP, mediante el cual se limita el rate al cual el emisor puede enviar datos.

rate = cwnd/RTT

El tamaño de la ventana de transmisión es el min entre la ventana de congestión cwnd y la ventana de recepción rwnd.

Como cambia el rate:

  • Si un segmento se pierde, se asume que hubo congestión y se debe disminuir el rate. (decrementar cwnd)
  • Si se recibe un ACK, se asume que los segmentos se estan entregando al receptor y se debe aumentar el rate. (incrementar cwnd)
  • TCP incrementa el rate mientras recibe ACK’s hasta que ocurre una pérdida, en ese momento reduce el rate y luego intenta incrementar de nuevo para ver si el rate al cual se produjo la congestión cambio..
37
Q

Slow Start

A

Arranco despacio pero incremento cwnd exponencialmente hasta cierto umbral.

  • Ventana inicial de 1MSS (cwnd = 1MSS)
  • Por cada ACK recibido se duplica el tamaño de la ventana.
  • Comienza despacio pero crece exponencialmente.
  • Si ocurre un timeout, la ventana vuelve a 1MSS y vuelvo a empezar.
  • Si ocurren 3 ACK duplicados, la ventana queda en la mitad del tamaño que tenía al momento de que ocurriera el evento. Continúa creciendo linealmente. (i.e: hace un fast retransmit y pasa a Fast Recovery)
  • Cuando cwnd = ssthresh, se pasa a Congestion Avoidance.
38
Q

Congestion Avoidance

A
  • Cuando entra a este estado la ventana de congestión está a la mitad de cuando se detectó la congestión, entonces puede darse congestión en cualquier momento, por esto en lugar de aumentar exponencialmente, aumenta linealmente con cada ACK (cwnd = cwnd+MSS*(MSS/cwnd))
  • Si ocurre un timeout, cwnd = 1MSS y vuelve a Slow Start y cwnd/2.
  • Si se reciben 3 ACK duplicados se pasa a Fast Recovery.
39
Q

Fast Recovery

(Reno vs Tahoe)

A
  • Mientras siga llegando el mismo ACK duplicado del segmento que causó que se llegue a este estado aumenta 1MSS.
  • Cuando llega un nuevo ACK, se pasa a Congestion Avoidance
  • Si ocurre un timeout, cwnd = 1MSS y vuelve a Slow Start y cwnd/2.
  • Esto es para TCP Reno, en TCP Tahoe no hay Fast Recovery, se pasa a Slow Start.
40
Q

Diagrama de control de congestion de TCP

A
41
Q

TCP Throughput

A
42
Q

TCP Fairness

A

Si hay K conexiones TCP compartiendo un enlace de rate R, cada una puede transmitir en promedio a un rate de R/K.

UDP no tiene control de flujo por lo tanto no se le limita el rate, lo que puede causar problemas al tráfico TCP y a toda la red en general.

Si se usan conexiones paralelas, como TCP es justo y reparte el rate entre las conexiones, se gana mayor rate cuantas más conexiones paralelas abiertas se tiene.