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