### A couple of questions, TCP, HomeWork 4

by Jacopo Ferro -
Number of replies: 8

Good morning, it's me again with some questions about TCP, Homework 4 in particular:

1- "Now With Routing " topology. Can a router decide to split the packets in the two links if they are coming at a higher rate (say 50Mbps) than any of the single links that he's forwarding them to (say to links of 40Mbps capacity each) if it knows (and it should right?) that both links will lead to B eventually? If it can, let's imagine this scenario: A sends at 50Mbps because of congestion control on L1 as bottleneck, because the packets can be freely split between L2 and L5 making the maximum output rate a combined 80Mbps to reach B... right? Let's now say that the route that goes trough L2 actually takes much longer/costs more (now I'm detaching from the exact topology in the Homework), the router is aware of this because it has an idea of the whole network, so should it decide to split the incoming 50Mbps stream of packets in a different way? Sending 40Mbps to L5 because it's faster and cheaper, and only 10Mbps to L2, letting TCP handle out of order packets? The main question is the first one, the scenario I described is more for curiosity (unless it's needed for the exam).

2- last exercise: do we have information to say which packet exactly was dropped? From the graph we can deduce that during the last round, while sending the last 5 packets, one of them was dropped, and in the solution it's shown the diagram with the first of that round that is dropped ( allowing then for fast retransmit to be triggered). Since we have transmission delay negligible, the packets are sent "instantaneously" so it seems to me that a correct solution could be to choose any of those last 5 packets to be the one that gets dropped.

Jacopo

### Re: A couple of questions, TCP, HomeWork 4

by Khalil Haroun Achache -

Hello, I was going to ask the same question for the last exercice, and I want to add that if we choose one of the last two segments to be lost, if i am not mistaken, we would then need a timeout to be able to send the last dropped segment, as we don't have any more segments to send back so we can't have 3 duplicate ACKS to trigger fast retransmit, like shown in this photo

However, if we had more segments, we already have freed up 4 slots in the window (by receiving ACKS 18,19,20,21), so we can send back segments 22,23,24,25 who will generate duplicate ACKS, triggering the fast retransmit, but I think that that would add another RTT to the total time, so instead of 2.5 seconds, we will have 3 seconds as total time for the transmission of all the data.

Correct me if I made a mistake somewhere.

Thank you for your time :)

In reply to Khalil Haroun Achache

### Re: A couple of questions, TCP, HomeWork 4

by Oliver Robert Beck -

For me it has the be the first segment that is lost because otherwise we would have some new acks coming back and then on the graph the congestion window size would increase a little bit beyond 5.

Correct me if I'm wrong here.

In reply to Oliver Robert Beck

### Re: A couple of questions, TCP, HomeWork 4

by Jacopo Ferro -

I see, good point. The congestion avoidance formula should be made so that if all the (5) ACKs arrive, we increase the window size by 1 ( for every RTT), so here my guess is that it would be floored until the last ACK, after which it could send an extra byte with respect to the previous burst. But I think your observation is the right answer because on the graph with my reasoning we would have to see some more "fives" appear before decreasing the window to 1 again. But this depends on the resolution/frequency of the samples of t that they are taking. The graph seems quite sparse with a big grid, so I think there's still room to say that the lost segment could be any but the last segment of that last burst of five segments.

### Re: A couple of questions, TCP, HomeWork 4

by Katerina Argyraki -

I see what you are saying. However, the graph was meant to be precise. It was meant to show each and every congestion window change. If there's no change after 1.5sec, that means no new ACK after 1.5sec.

Btw, this is the kind of thing you can ask during the exam. If you are unsure about the granularity of a graph, or how detailed an answer is expected, please ask.

In reply to Oliver Robert Beck

### Re: A couple of questions, TCP, HomeWork 4

by Katerina Argyraki -

:) Ah, you guys sorted it out. I must stop answering FCFS.

In reply to Khalil Haroun Achache

### Re: A couple of questions, TCP, HomeWork 4

by Katerina Argyraki -

This is really nice thinking. The only issue is that the window would increase with ACK 18, ACK 19, ACK 20, ACK 21. The sender has not timed out yet, so it would increase its window if it received new ACKs. But it doesn't according to the provided graph. That's the catch here.

### Re: A couple of questions, TCP, HomeWork 4

by Katerina Argyraki -

"Can a router decide to split the packets in the two links if they are coming at a higher rate (say 50Mbps) than any of the single links that he's forwarding them to (say to links of 40Mbps capacity each) if it knows (and it should right?) that both links will lead to B eventually?"

This is in the right direction, but let's be precise. A *routing protocol* may indeed decide to split packets in two links because it has the big picture. The routing protocol will then populate the forwarding tables of routers accordingly, and routers will forward accordingly. But a *router* on its own will not simply "decide" to split packets one way or the other. It's always the routing protocol that makes such decisions.

Now, are there routing protocols that do such things? Yes, but none of the ones we mentioned in class. Also, most routing protocols that are deployed on the Internet today are not workload-sensitive. Meaning, they do not consider the current network conditions (is link X congested? could router Y relieve some of this congestion by splitting traffic this or that way?) One reason is that being workload-sensitive makes routing complicated and vulnerable to attacks.

### Re: A couple of questions, TCP, HomeWork 4

by Katerina Argyraki -

"2- last exercise: do we have information to say which packet exactly was dropped? From the graph we can deduce that during the last round, while sending the last 5 packets, one of them was dropped, and in the solution it's shown the diagram with the first of that round that is dropped..."

There was enough information: Every time a new ACK arrives, the sender window increases. The last window increase happens at time 1.5sec. This means that no new ACK was received after that. This means that the very first segment transmitted in that round was lost (if the first segment was not lost, its ACK would have caused the window to increase).

"... (allowing then for fast retransmit to be triggered).

Just to make things clear: There's no fast retransmit in this scenario. It's disabled. We can guess that because the window goes back to size 1. This means that there was a timeout. A fast retransmit would have caused the window to be set to ssthresh+3*MSS = 4+3=7.

That said, you are on the right track: if fast retransmit was not disabled, it would have been triggered, because the sender receives 3 duplicate ACKs.

Clear?