commit b698894c93c060508faed81f4eacf0df1db9147c
parent 7a49b6c0190e757533eaf95b3fa732a73c0702d3
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date: Tue, 22 Oct 2024 17:16:30 -0300
add solution of `ej7`
Diffstat:
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).
>
-> { width=75% }
+> { 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.
>
-> { width=75% }
+> { 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`.
+
+
+{ 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.