repos/TB067

Apuntes y resueltos de la materia Redes de Comunicaciones (TB067)
Commits Files Refs README
commit b698894c93c060508faed81f4eacf0df1db9147c
parent 7a49b6c0190e757533eaf95b3fa732a73c0702d3
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Tue, 22 Oct 2024 17:16:30 -0300

add solution of `ej7`

Diffstat:
Mguias/2/2.md | 29++++++++++++++++++++++++++---
Mguias/2/2.pdf | 0
Aguias/2/ej7.gv | 75+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mguias/2/ej7.png | 0
4 files changed, 101 insertions(+), 3 deletions(-)
diff --git a/guias/2/2.md b/guias/2/2.md
@@ -116,7 +116,7 @@ c. Luego de que el timeout expira en el host A, este retransmite el segmento,
 >    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% }
+>       ![\ ](ej6_enunciado.png){ width=75% }
 >
 >  \vspace{-2.75em}
 
@@ -139,11 +139,34 @@ c. Luego de que el timeout expira en el host A, este retransmite el segmento,
 >      el último segmento recibido.
 >    * El plazo de retransmisión de segmentos en A (timeout) es de 3 tics de
 >      reloj.
+>    * A usa un tamaño fijo de datos de 200 bytes
+>    * B siempre enviará un valor de 800 en el campo de tamaño de la ventana de
+>      recepción.
+>    * Tanto A como B sólo transmiten segmentos coincidiendo con el tic de
+>      reloj.
+>    * A enviará segmentos con datos siempre que pueda.
 > 
->      ![\ ](ej7.png){ width=75% }
+>      ![\ ](ej7_enunciado.png){ width=75% }
 >
 >  \vspace{-2.75em}
 
+<!--
+Teniendo en cuenta que el MSS es de 200 bytes, y que la transmisión de datos
+comienza en arranque lento, el tamaño de ventana de congestión del emisor se
+establece en 1 MSS, por lo que luego de establecido el inicio de sesión el
+emisor envía 1 segmento TCP con 200 bytes de datos
+-->
+
+En el caso de que no se pierda ningún paquete, la transmisión de datos del host
+A al host B es la que se muestra en la figura a continuacion. Por enunciado se
+pierde el ultimo segmento de datos enviado por el host `A`, la diferencia con la
+figura que se verá será que luego de pasados 3 ticks de reloj de no recibir el
+segmento de validación del host B,  el host A volverá a transmitir el segmento
+con número de secuencia `1601`.
+
+
+![\ ](ej7.png){ width=90% }
+
 \pagebreak
 > 8. Se realizó la captura de las siguientes tramas Ethernet: (tenga en cuenta
 >    que se extrajeron los bytes de preámbulo)
@@ -200,7 +223,7 @@ bytes se encuentra `0x0800`.
 
 Del encabezado IPv4 (bytes en rojo) se puede ver que el protocolo utilizado en
 las tramas 1 y 2 es UDP, ya que en el décimo byte se encuentra `0x11` (en
-decimal `17`), el cual es el numero correspondiente con este protocolo.
+decimal `17`), el cual es el numero correspondiente con ese protocolo.
 
 \vspace{1em}
 \renewcommand{\arraystretch}{1.25}
diff --git a/guias/2/2.pdf b/guias/2/2.pdf
Binary files differ.
diff --git a/guias/2/ej7.gv b/guias/2/ej7.gv
@@ -0,0 +1,75 @@
+digraph {
+    node [shape=record]
+    rankdir=TD;
+    ranksep=0.15;
+    newrank=true;
+    nodesep=1.5;
+    compound=true;
+    subgraph cluster_A {
+        label="host A"
+        style="dashed"
+        node [width=2.00, fontsize=11 ];
+        0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9 -> 10 [color=none];
+        10 -> 11 -> 12 -> 13 -> 14 [color=none];
+    }
+    subgraph cluster_B {
+        label="host B"
+        style="dashed"
+        node [width=2.00, fontsize=11 ];
+
+        50 -> 51 -> 52 -> 53 -> 54 -> 55 -> 56 -> 57 -> 58 -> 59 -> 60 [color=none];
+        60-> 61 -> 62 -> 63 -> 64 [color=none];
+    }
+
+    { rank=same;  0; 50; }
+    { rank=same;  1; 51; }
+    { rank=same;  2; 52; }
+    { rank=same;  3; 53; }
+    { rank=same;  4; 54; }
+    { rank=same;  5; 55; }
+    { rank=same;  6; 56; }
+    { rank=same;  7; 57; }
+    { rank=same;  8; 58; }
+    { rank=same;  9; 59; }
+    { rank=same; 10; 60; }
+    { rank=same; 11; 61; }
+    { rank=same; 12; 62; }
+    { rank=same; 13; 63; }
+
+    1, 4, 7, 9, 11, 12, 14 [color=none, fontcolor=none];
+    50, 52, 53, 55, 58, 60, 63, 64 [color=none, fontcolor=none];
+
+     0 -> 51 [lhead=cluster_B]
+    51 ->  2 [lhead=cluster_A]
+     2 -> 53 [lhead=cluster_B]
+     3 -> 54 [lhead=cluster_B]
+    54 ->  5 [lhead=cluster_A]
+     5 -> 56 [lhead=cluster_B]
+    56 ->  7 [lhead=cluster_A]
+     6 -> 57 [lhead=cluster_B]
+    57 ->  8 [lhead=cluster_A]
+     8 -> 59 [lhead=cluster_B]
+    10 -> 61 [lhead=cluster_B]
+    61 -> 12 [lhead=cluster_A]
+    62 -> 13 [lhead=cluster_A]
+    13 -> 64 [lhead=cluster_B]
+
+    0 [ label="{SYN|S=1000}" ]
+    2 [ label="{ACK|S=1001, A=5001}" ]
+    3 [ label="{ACK|S=1001, A=5001, Len=200}" ]
+    5 [ label="{ACK|S=1201, A=5001, Len=200}" ]
+    6 [ label="{ACK|S=1401, A=5001, Len=200}" ]
+    8 [ label="{ACK|S=1601, A=5001, Len=200}" ]
+    10 [ label="{FIN, ACK|S=1601, A=5001}" ]
+    13 [ label="{ACK|S=1601, A=5001}" ]
+
+    51 [ label="{SYN, ACK|S=5001, A=1001, W=800}" ]
+    54 [ label="{ACK|S=5001, A=1201, W=800}" ]
+    56 [ label="{ACK|S=5001, A=1401, W=800}" ]
+    57 [ label="{ACK|S=5001, A=1601, W=800}" ]
+    59 [ label="{ACK|S=5001, A=1801, W=800}" ]
+    61 [ label="{ACK|S=5001, A=1801, W=800}" ]
+
+    11 [ label="{FIN|S=1601, A=5001}" ]
+    62 [ label="{FIN|S=1601, A=5001}" ]
+}
diff --git a/guias/2/ej7.png b/guias/2/ej7.png
Binary files differ.