Capa de Transporte Flashcards
¿Cual es el objetivo de la capa de transporte?
Comunicar procesos corriendo en diferentes hosts
¿Cuales son los desafios de la capa de transporte?
- La perdida de paquetes
- La corrupción de datos
¿Donde se implementa la capa de transporte?
En los End Systems.
Las funcionalidades estan implementadas en los hosts en los “extremos” de las redes. En una PC habitual las funcionalidades se implementan en el Sistema Operativo
¿Cuales son los protocolos de la Capa de Transporte?
UDP y TCP
¿Como es el servicio que brinda UDP?
¿Que provee?
UDP brinda un servicio:
- sin garantía de entrega (no confiable)
- sin conexión
UDP Provee:
multiplexacion y Demultiplexacion
control de integridad (checksum)
¿Como es el servicio que brinda TCP? ¿Que provee?
TCP brinda un servicio:
Confiable
Orientado a la conexión
Provee:
(mismas caracteristicas que udp):
-Mux/Demux
-Control de integridad
(ademas):
-RDT:
Control de flujo
Seq Number + ACKS
timers
-Control de congestión
¿Como se crea un segmento?
- Se divide el mensaje de App en segmentos
- Se agrega el header con sus identificadores
- Se lo pasa a la capa de red
¿Que es un socket? ¿Para que se usa?
Un socket es una interfaz que define reglas que un programa debe seguir para poder enviar y recibir datos correctamente a traves de la red hacia un destino
Se usa para comunicar dos procesos en distintos hosts
Mencione qué está sucediendo en este codigo
socket = Socket(AF_INET, SOCK_STREAM) socket.bind(('', 12000)) socket.listen(1) while True: client, addr = socket.accept() sentence = client.recv(1024).decode() client.send(process(sentence).encode()) client.close()
se crea un socket TCP
se lo bindea al puerto 12000
se escucha en ese puerto, con una cola máxima de 1 cliente
Se loopea infinitamente aceptando 1 cliente, recibiendo un mensaje del mismo y retornando ese mensaje procesado con la funcion process, luego de eso se cierra la conexion con ese cliente y se vuelve a iterar
Mencione qué está sucediendo en este codigo
socket = socket(AF_INET, SOCK_STREAM) socket .connect(('servername', 12000)) socket .send("hola".encode()) modifiedSentence = socket .recv(1024) socket .close()
Se crea un socket TCP Se conecta a un server con direccion 'servername' y puerto 12000 Se envia un mensaje "hola" Se recibe respuesta del server Se cierra la conexion con el server
Mencione qué está sucediendo en este codigo
socket= socket(AF_INET, SOCK_DGRAM)
socket.bind((’’, 12000))
while True:
message, clientAddress = socket.recvfrom(2048)
modifiedMessage = process(message.decode())
socket.sendto(modifiedMessage.encode(), clientAddress)
Se crea un socket UDP
Se lo bindea al puerto 12000
Se reciben mensaje y direccion del emisor, usando un buffer maximo de 2048 bytes
Se procesa el mensaje
Se envia el mensaje procesado a la misma direccion de la que se recibio el mensaje.
Mencione qué está sucediendo en este codigo
socket= socket(AF_INET, SOCK_DGRAM)
socket.sendto(‘hola’.encode(),(’hostname’, 12000))
modifiedMessage, serverAddress = socket.recvfrom(2048)
clientSocket.close()
Se crea un socket UDP
Se envia el mensaje “hola” a la direccion “hostname” en el puerto 12000
Se recibe en un buffer maximo de 2048 bytes la respuesta del server
se cierra el socket UDP
¿Que indica y de qué sirve el campo Window del header TCP?
Indica la cantidad de datos que el extremo de la transmisión puede recibir. (A esto se le llama rwnd, Receiver Window)
Sirve para evitar que la capa de aplicación reciba mas datos de lo que es capaz de consumir, y por lo tanto evitar buffer overflows.
Un socket es la interfaz entre la capa de transporte y la capa de red: V o F
Falso. Es la interfaz entre la capa de aplicación y la capa de transporte
TCP implementa el pipeline con el protocolo Go-Back-N: V o F
Falso. Utiliza un hibrido de Go-Back-N y Selective Repeat
En TCP, si el valor del ACK recibido es 200. ¿Cuantos bytes han sido recibidos exitosamente? Justifique
Han sido recibidos al menos 199 bytes exitosamente, debido a que TCP indica el valor de offset en bytes que espera recibir próximo, y va a esperar al siguiente de lo que ha recibido exitosamente
En determinada conexión TCP el current window size se redujo a la mitad, esto por qué pudo ocurrir?
Esto ocurre debido a un triple ACK duplicado en una implementación de TCP Reno
Que son las syn cookies?
Una forma de devolver un numero de secuencia en tcp en el cual se codifica información del cliente, para no tener que guardar en un buffer la misma y evitar ataque de flood syn