repos/TB067

Apuntes y resueltos de la materia Redes de Comunicaciones (TB067)
Commits Files Refs README
commit 6ba9de13df159d7d5409053d687d7cbe230cdcd4
parent 02f7aeb67657b85d95bf612c9a708e486f96e7b6
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Mon, 21 Oct 2024 19:15:54 -0300

add `guias/2`

Diffstat:
Aguias/2/2.md | 191+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aguias/2/2.pdf | 0
Aguias/2/ej6.png | 0
Aguias/2/ej7.png | 0
Aguias/2/ej8_trama1.png | 0
Aguias/2/ej8_trama2.png | 0
Aguias/2/ej8_trama3.png | 0
Aguias/2/ej8_trama4.png | 0
Aguias/2/ej8_trama5.png | 0
Aguias/2/ej8_trama6.png | 0
Aguias/2/guia_2_nivel_de_transporte.pdf | 0
11 files changed, 191 insertions(+), 0 deletions(-)
diff --git a/guias/2/2.md b/guias/2/2.md
@@ -0,0 +1,191 @@
+# Guia 2: Nivel de Transporte
+
+Redes de Comunicaciones (TB067) - 2C2024 - FIUBA  
+Martin Klöckner - [mklockner@fi.uba.ar](mailto:mklockner@fi.uba.ar)
+
+> 1. ¿Cómo se puede distinguir a qué aplicación debe entregar UDP el datagrama
+>    que acaba de llegar? 
+
+Se puede distinguir mediante el número de puerto especificado en la sección 
+`puerto de destino` del encabezado UDP.
+
+> 2. ¿Cómo se calcula el checksum de UDP?
+
+El checksum sirve para detectar si los datos contenidos en el encabezados UDP
+han sido alterados mientras se trasladaban desde el origen al destino.
+
+En el lado del emisor se calcula el complemento a 1 de la suma de todas las
+palabras de 16 bits del segmento, en el caso de haber desbordamiento en la suma
+se acarrea sobre el bit de menor peso.
+
+En el receptor, se suman todas las palabras de 16 bits de la sección de datos
+del encabezado, incluyendo el checksum, en caso de no haber errores el resultado
+debe ser una palabra de 16 bits cuyos bits son todos 1; en caso de haber al
+menos un 0, entonces ocurrió un error durante la transmisión.
+
+> 3. Suponga que la ventana de congestión de TCP está en 18 Kbytes. La ventana
+>    publicada por el otro extremo de la sesión es de 64 Kbytes. ¿A qué valor
+>    llegará dicha ventana si los siguientes 5 segmentos transmitidos resultan
+>    exitosos y no se recibió aún ningún ACK? Suponga un tamaño máximo de
+>    segmento de 2 Kbytes.
+
+La ventana de congestión indica la cantidad de bytes que pueden estar en la
+linea ("on the wire") sin ser validados, suponiendo que el extremo que transmite
+es el que tiene la ventana de 18 Kbytes, y la linea que recibe tiene una ventana
+de 64 Kbytes, entonces si se envían los  5 segmentos y aun no han sido validados
+la ventana de congestión del transmisor deber ser de 8 Kbytes, ya que es el
+resultado de restar a la cantidad de bytes de la ventana de congestion del
+transmisor la cantidad de datos en la linea.
+
+> 4. Determine el tamaño óptimo de ventana para una sesión TCP en la que el
+>    RTT es `100 ms`, el MSS es `600 bytes` y la velocidad de la interfaz de
+>    `128 Kbps`.
+
+El tamaño optimo de ventana se puede calcular utilizando la siguiente ecuación:
+
+\vspace{-0.5em}
+$$\text{Tamaño Optimo de Ventana}\ = \text{Velocidad de Interfaz} \cdot RTT$$
+
+Reemplazando con los valores de enunciado resulta:
+
+$$\text{Tamaño Optimo de Ventana} = 100 Kbps\cdot 100 ms = 100000\ \nicefrac{bytes}{s}\cdot 0.100s \Rightarrow\boxed{100\ bytes}$$
+
+<!-- $$MTU = MSS + encabezado TCP e IP$$
+Si supera el MSS se descarta en cambio si supera el MTU se fragmenta
+-->
+
+> 5. Dos Hosts A y B se comunican a través de una sesión TCP. El host B recibió
+>    de A todos los bytes hasta el 144. Suponga que el Host A luego envía dos
+>    segmentos a B, de 20 y 40 bytes respectivamente. En el primer segmento el
+>    número de secuencia es 145, port origen 303 y port destino 80. El Host B
+>    envía un ACK siempre que recibe un segmento de A. Responda para cada
+>    situación:
+>  
+>    a. ¿Cuál será el número de secuencia, el número de ACK, y ports origen y
+>       destino en el segmento enviado por B al recibir el segmento de 40 bytes?
+>    b. Si el segmento de 40 bytes llega antes que el de 20 bytes, indique
+>       campos relevantes del segmento que B enviará.
+>    c. Suponga que los dos segmentos enviados por A llegan a B en orden. El
+>       primer ACK se pierde y el segundo segmento llega después que el timeout
+>       del primer segmento expire. Indique los segmentos a intercambiar por
+>       parte de A y B a continuación.
+
+a. Suponiendo números de secuencia y reconocimiento relativos al comienzo de la
+   sesión; y teniendo en cuenta que el numero de secuencia de A es 145, entonces
+   luego de enviar los bytes a B, el numero de secuencia de A será 205, ya que
+   envía un total de 60 bytes, cuando B recibe estos datos debe responder
+   validando la recepción con un segmento ACK, como suponemos números de
+   secuencia y reconocimiento relativos, el numero de reconocimiento con el que
+   responde B debe coincidir con el numero de secuencia de los segmentos
+   enviados por A, por lo que deben ser 165 y 205 para el primer y segundo
+   paquete respectivamente (suponiendo que llegan en orden). Los puertos de
+   origen y destino se invierten ya que los segmentos van en el sentido
+   contrario del host B al A, por tanto resultan origen 80 y destino 303.
+   Finalmente, el numero de secuencia de B debería ser 1, el mismo que luego de
+   iniciada la sesión TCP ya que el host B no le envía datos a A, solo valida
+   los segmentos que A le envía.
+b. Si el segmento de 40 bytes llega primero, puede ocurrir que el host B lo
+   descarte o que lo guarde en un buffer hasta recibir todos los segmentos, esto
+   depende de como esté configurado el stack TCP/IP en el host B.
+
+\pagebreak
+> 6. En la secuencia de envío de segmentos TCP reflejada en la figura, en la que
+>    las líneas horizontales representan tics de reloj, se sabe que:
+> 
+>    a. A desea enviar a B 200 bytes de datos.
+>    b. B desea enviar a A 100 bytes de datos.
+>    c. A y B usan un tamaño fijo de datos de 50 bytes.
+>    d. A y B ajustan la ventana acorde con “congestion avoidance”.
+>    e. Tanto A como B sólo transmiten segmentos coincidiendo con el tic de
+>       reloj.
+>    f. Todos los segmentos tardan en llegar al destino medio tic de reloj, sino
+>       se pierden.
+>    g. A y B tienen un plazo para retransmitir segmentos de 5 tics de reloj.
+>    h. A y B enviarán segmentos con datos siempre que puedan.
+>    i. A y B enviarán un asentimiento cada vez que reciban un segmento con
+>       datos.
+>    j. Teniendo en cuenta que la zona sombreada indica un periodo de tiempo
+>       durante el cual todos los segmentos transmitidos se perderán y que fuera
+>       de dicho periodo no se perderá ningún segmento, complete la transmisión
+>       en la figura (incluyendo el cierre de conexión).
+> 
+>       ![\ ](ej6.png){ width=75% }
+>
+>  \vspace{-2.75em}
+
+\pagebreak
+> 7. Complete la secuencia de envío de segmentos TCP reflejada en la figura,
+>    incluyendo el cierre de la conexión, en la que las líneas horizontales
+>    representan tics de reloj, sabiendo que:
+> 
+>    * No se perderá ningún segmento en la transmisión excepto el cuarto con 
+>      datos enviados por A.
+>    * Los segmentos no dibujados (excepto el anteriormente citado) tardarán en
+>      llegar al destino medio tic de reloj, y no se perderán.
+>    * A está utilizando arranque lento (Slow Start) para prevenir la 
+       congestión.
+>    * A tiene que enviar a B 800 bytes de datos, una vez enviados procederá
+>      a cerrar la conexión.
+>    * B no desea enviar datos a A.
+>    * B enviará asentimientos a A cuando haya recibido dos segmentos de A desde
+>      el último segmento asentido o cuando hayan sucedido 2 tics de reloj desde
+>      el último segmento recibido.
+>    * El plazo de retransmisión de segmentos en A (timeout) es de 3 tics de
+>      reloj.
+> 
+>      ![\ ](ej7.png){ width=75% }
+>
+>  \vspace{-2.75em}
+
+\pagebreak
+> 8. Se realizó la captura de las siguientes tramas Ethernet: (tenga en cuenta
+>    que se extrajeron los bytes de preámbulo)
+> 
+> \captionsetup[subfigure]{labelformat=empty}
+> ![](ej8_trama1.png){ width=48% }
+> \hspace{0.5em}
+> ![](ej8_trama2.png){ width=48% }
+> \vspace{-1.00em}
+> \begin{figure}[H]
+> \begin{subfigure}[t]{0.50\textwidth}
+> \caption{Trama 1}
+> \end{subfigure}
+> \hfill
+> \begin{subfigure}[t]{0.478\textwidth}
+> \caption{Trama 2}
+> \end{subfigure}
+> \end{figure}
+>
+> ![](ej8_trama3.png){ width=48% }
+> \hspace{0.5em}
+> ![](ej8_trama4.png){ width=48% }
+> \vspace{-1.00em}
+> \begin{figure}[H]
+> \begin{subfigure}[t]{0.50\textwidth}
+> \caption{Trama 3}
+> \end{subfigure}
+> \hfill
+> \begin{subfigure}[t]{0.478\textwidth}
+> \caption{Trama 4}
+> \end{subfigure}
+> \end{figure}
+>
+> ![](ej8_trama5.png){ width=48% }
+> \hspace{0.5em}
+> ![](ej8_trama6.png){ width=48% }
+> \vspace{-1.00em}
+> \begin{figure}[H]
+> \begin{subfigure}[t]{0.50\textwidth}
+> \caption{Trama 5}
+> \end{subfigure}
+> \hfill
+> \begin{subfigure}[t]{0.478\textwidth}
+> \caption{Trama 6}
+> \end{subfigure}
+> \end{figure}
+> 
+>    Se pide: Analizar los campos relevantes de la información de nivel de
+>    transporte que contienen.
+
+> 9. ¿Qué son Slow Start y Congestion Avoidance? ¿Cómo intervienen sobre el
+     tráfico?
diff --git a/guias/2/2.pdf b/guias/2/2.pdf
Binary files differ.
diff --git a/guias/2/ej6.png b/guias/2/ej6.png
Binary files differ.
diff --git a/guias/2/ej7.png b/guias/2/ej7.png
Binary files differ.
diff --git a/guias/2/ej8_trama1.png b/guias/2/ej8_trama1.png
Binary files differ.
diff --git a/guias/2/ej8_trama2.png b/guias/2/ej8_trama2.png
Binary files differ.
diff --git a/guias/2/ej8_trama3.png b/guias/2/ej8_trama3.png
Binary files differ.
diff --git a/guias/2/ej8_trama4.png b/guias/2/ej8_trama4.png
Binary files differ.
diff --git a/guias/2/ej8_trama5.png b/guias/2/ej8_trama5.png
Binary files differ.
diff --git a/guias/2/ej8_trama6.png b/guias/2/ej8_trama6.png
Binary files differ.
diff --git a/guias/2/guia_2_nivel_de_transporte.pdf b/guias/2/guia_2_nivel_de_transporte.pdf
Binary files differ.