Protocolos punto a punto Resolución de ejercicio de parcial Esteban Lanzarotti 01.04.2015 1. Ejercicio: Diseño de frames Diseñe posibles conjuntos de frames de largo fijo para los siguientes tipos de protocolos, asumiendo que se detectan errores usando CRC. (No hace falta explicitar el largo de los campos ni del frame) a. Stop & Wait b. Sliding Window con GoBackN usando Piggybacking c. Sliding Window con ACK Selectivo 1.1. Resolución a. Stop & Wait En este caso podríamos usar dos tipos de frames: uno para Datos y otro para ACKs. Para poder enviar datos en Stop & Wait evitando el problema de las reencarnaciones, cada frame con datos debería tener un campo (1 bit) que especifica el ID de frame. Además, un campo con los datos y un código detector de errores. Emisor : #ID (1bit) | Datos | Paridad/Checksum/CRC/MD5 El receptor en cambio, sólo necesita anunciar reconocimientos, y además, se puede usar un Padding para completar el frame a un largo fijo. Y, por supuesto, algún código detector de errores para validar el 1bit del ACK. Receptor : #ACK (1bit) | Padding | Paridad/Checksum/CRC/MD5 b. Sliding Window con GoBackN usando Piggybacking El esquema de GoBackN se dá cuando el receptor no tiene buffers, por lo que todos los frames recibidos después de uno con errores, debería ser retransmitido nuevamente. Es por esto que usar ACK Selectivo no aportaría a la eficiencia del protocolo y sólo necesitamos anunciar un ACK acumulado para informar los reconocimientos. Por otro lado, se aclara que el protocolo debería aplicar la técnica de piggybacking que consiste en incluir los reconocimientos en los paquetes con datos de usuario. Esto es muy útil en protocolos en los que ambos extremos son emisores y receptores de informción. Así que debería alcanzar para ambos extremos del enlace, con un sólo frame como el siguiente: Ambos: #Seq | #ACK | Datos | CRC El tamaño de los campos de #Seq y #ACK debería ser el mismo, y deberían definirse en función de la capacidad del canal. Ejercicio - Protocolos punto a punto Redes - Primer cuatrimestre de 2015 c. Sliding Window con ACK Selectivo En este caso, el emisor es análogo a los casos anteriores. En cambio, en el frame del receptor, se agrega un campo de ACK Selectivo de manera de poder aclarar en un sólo paquete el reconocimiento acumulado además del anuncio explicito de recepción que informa el campo de ACK Selectivo en caso de haber llegado un frame con errores seguido de frames sin errores que puedan ser buffereados. Éste esquema es más eficiente que GoBackN, pero requiere de espacio de almacenamiento en el receptor. Luego, Emisor: #Seq | Datos | CRC Receptor: #ACK | #SACK | (Padding) | CRC. Nuevamente, el tamaño de los campos de #Seq, #ACK #SACK, debería ser el mismo, y deberían definirse en función de la capacidad del canal. 2. Ejercicio de Parcial 2.1. Enunciado Un protocolo confiable punto a punto que usa sliding window, opera sobre un canal de 10 Mbps, usa SACK y un frame emisor de 5kB como el siguiente: #SEQ (8bits) ; Datos ; Checksum a. Proponga un frame para el receptor. b. ¿Cuál es el valor de latencia para el cual el protocolo presenta un 100 % de eficiencia? c. Si la latencia fuera de 1 seg ¿Cuántos bits deberían ocupar los números de secuencia de manera de maximizar la eficiencia? 2.2. Resolución a. Al no presentarse requerimientos que ameriten el uso de piggybacking, no vamos a usar esta técnica para el framing. En ese sentido, el protocolo va a ser asimétrico, en el sentido de que el frame emisor y el recetor van a ser distintos. El número de secuencia del frame emisor ocupa 8 bits, esto implica que tanto el campo ACK del receptor como el campo SACK deben ocupar la misma cantidad de bits: 8 bits para ACK y 8 bits para SACK. Esto es porque es necesario poder referenciar en los reconociminetos (ACKs) a cada frame que se envía el emisor. El frame receptor propuesto sería: #ACK (8bits) ; #SACK (8bits) ; Checksum b. Para encontrar el valor de delay óptimo hay que tratar de llenar el canal sin que se desperdicie tiempo bloqueado esperando. Veamos que datos tenemos: Tengo 256 frames posibles porque el campo de #SEQ es de 8 bits. - 2/3 - Ejercicio - Protocolos punto a punto Redes - Primer cuatrimestre de 2015 Pero, para evitar el problema de las reencarnaciones, sólo 128 frames podrán ser enviados pues se usa SACK ⇒ SWS = 128 = RWS. Luego, usamos los datos que tenemos en la formula de ventana de emisión óptima. Ttx (SWS)/RTT (F) = 1,0 Ttx (F) ∗ SWS/RTT (F) = 1,0 (5kB/10Mbps) ∗ 128/2 ∗ Delay = 1,0 Resolviendo se obtiene que 0.032 segundos es el valor del Delay c. Para resolver este ejercicio se recalcula el tamaño de la ventana de emisión para ajustar al Delay requerido: SWS = Vt x ∗ 2 ∗ Delay/|Frame| Reemplazando los datos (ahora se conoce también el Delay) y resolviendo se obtiene que SWS = 4000 Luego, #Frames ≥ 8000 y tomando el techo del log2 (8000) se obtiene que se necesitan 13 bits. - 3/3 -