WEBVTT

00:00:00.000 --> 00:00:03.680
Welcome back to CSE 316 — Data Communication and Networking.

00:00:03.730 --> 00:00:06.920
This is the detailed video version of Session 8.

00:00:06.970 --> 00:00:12.440
Last session your laptop shouted at the room, and you learned why it had to.

00:00:12.490 --> 00:00:19.610
Today we climb one more floor, to the layer that decides where the shout is aimed.

00:00:19.660 --> 00:00:23.950
It opens with a network layer whose specification promises nothing.

00:00:24.000 --> 00:00:32.217
There is a checkpoint at the end of each section, so you can tell whether to go on or go back.

00:00:32.267 --> 00:00:37.827
Two claims to start with, and both of them sound wrong.

00:00:37.877 --> 00:00:41.367
Claim one. The Internet's network layer will happily lose your packet.

00:00:41.417 --> 00:00:45.317
It will shuffle your packets, so they arrive in the wrong order.

00:00:45.367 --> 00:00:49.657
It will delay them without apology, and it will warn you of none of it.

00:00:49.707 --> 00:00:55.297
That is not a bug list. That is the specification, written down and agreed to.

00:00:55.347 --> 00:01:01.057
Claim two. Adding a faster router to a network can make everyone's delay worse.

00:01:01.107 --> 00:01:05.457
Not worse for that router. Worse for everybody on the path.

00:01:05.507 --> 00:01:09.027
So write two answers down before we begin.

00:01:09.077 --> 00:01:13.687
First: why would anyone deliberately build a core that promises nothing?

00:01:13.737 --> 00:01:18.487
And second: how can extra capacity possibly make a network slower?

00:01:18.537 --> 00:01:22.337
Slide forty-three marks both of them against yours.

00:01:22.387 --> 00:01:27.877
Both halves resolve on the same idea, and here it is in two sentences.

00:01:27.927 --> 00:01:33.397
A promise costs the core state, and state in the core dies with the router that holds it.

00:01:33.447 --> 00:01:39.977
A dropped packet comes back as a retransmission, so extra load past the knee delivers less.

00:01:40.027 --> 00:01:48.250
Section one earns the first sentence; section four earns the second.

00:01:48.300 --> 00:01:49.580
Section one.

00:01:49.630 --> 00:01:52.100
Packetize, route, forward.

00:01:52.150 --> 00:01:59.450
Three duties — one of which happens before your traffic ever arrives.

00:01:59.500 --> 00:02:06.190
Chapter eighteen opens by telling you everything the network layer does, and it fits in three verbs.

00:02:06.240 --> 00:02:09.800
Packetizing. Carry, don't touch.

00:02:09.850 --> 00:02:15.920
The payload is encapsulated in a datagram at the source and taken back out at the destination.

00:02:15.970 --> 00:02:20.690
In between, routers read the destination address to make a decision.

00:02:20.740 --> 00:02:25.430
They never change that address, and they have no business inside the payload.

00:02:25.480 --> 00:02:28.280
Routing. Map-making.

00:02:28.330 --> 00:02:32.320
Which of the many possible routes through this network is the best one?

00:02:32.370 --> 00:02:40.020
Routing protocols gossip in the background — before your traffic flows — until every table in the network agrees.

00:02:40.070 --> 00:02:45.980
Network-wide, and on a slow timescale. Seconds, not microseconds.

00:02:46.030 --> 00:02:48.930
Forwarding. The junction.

00:02:48.980 --> 00:02:53.670
One packet has arrived, right now. Which interface does it leave by?

00:02:53.720 --> 00:02:58.340
A table lookup, at one router, in microseconds. Per-packet, and fast.

00:02:58.390 --> 00:03:02.840
Routing writes the table. Forwarding reads it.

00:03:02.890 --> 00:03:10.368
If you can produce those five words in an exam you have already banked a mark.

00:03:10.418 --> 00:03:16.968
Packetizing in detail, because it is where last session's lesson becomes this session's rule.

00:03:17.018 --> 00:03:19.458
Encapsulate once.

00:03:19.508 --> 00:03:26.228
The transport-layer segment goes inside a datagram at the source, and it comes back out at the destination.

00:03:26.278 --> 00:03:30.978
Nowhere in between. Not at any router, not at any switch.

00:03:31.028 --> 00:03:34.528
Routers inspect, but they never edit.

00:03:34.578 --> 00:03:39.008
A router reads the destination address because it has a decision to make.

00:03:39.058 --> 00:03:45.128
Reading is not writing. The address it read is the address the next router will read.

00:03:45.178 --> 00:03:49.818
There is exactly one exception, and it is fragmentation.

00:03:49.868 --> 00:03:54.888
If a datagram is too big for the next link, it is cut into fragments.

00:03:54.938 --> 00:04:00.118
Even then the addresses are copied into every fragment. They are not edited.

00:04:00.168 --> 00:04:03.108
The next three slides do it properly.

00:04:03.158 --> 00:04:05.828
Now compare that with the frame.

00:04:05.878 --> 00:04:12.178
The frame's MAC pair was rewritten at every single hop. The datagram's IP pair is not.

00:04:12.228 --> 00:04:21.178
Two layers, two lifetimes. The datagram survives the journey; the frame does not survive the hop.

00:04:22.381 --> 00:04:31.331
Let us do that exception properly, because it is the only thing on the list that changes a packet at all — and because Session twenty spends ten minutes on what IPv6 took away, and you cannot miss something you were never shown.

00:04:36.411 --> 00:04:45.361
Every link has a maximum transmission unit: the largest payload one frame on that link can carry. For Ethernet it is one thousand five hundred bytes.

00:04:47.861 --> 00:04:56.811
The MTU belongs to the link. Not to your packet, not to your application, and not to anything the source can see from where it sits.

00:04:57.081 --> 00:05:05.371
When a datagram is larger than the next link's MTU, the router cuts it — and it cuts the data, never the header.

00:05:05.421 --> 00:05:14.241
Every piece has to carry its own twenty-byte header, so only one thousand four hundred and eighty bytes of data fit inside one frame.

00:05:14.291 --> 00:05:23.241
And the cut has to land on a multiple of eight. That is not tidiness: the fragment-offset field counts in eight-byte units, which the next slide's arithmetic shows.

00:05:25.521 --> 00:05:34.471
Now the part worth memorising. Three fields differ between the fragments: total length, fragment offset, and the more-fragments bit. The checksum is recomputed, because the header changed.

00:05:40.551 --> 00:05:46.451
Everything else is copied. Identification, source address, destination address — identical in all of them.

00:05:46.501 --> 00:05:52.401
That is what makes reassembly possible at all. The pieces are recognisably siblings.

00:05:52.451 --> 00:05:57.831
And now the rule about reassembly. No router reassembles anything.

00:05:57.881 --> 00:06:05.411
Each fragment is forwarded on its own, may take a different path, and may be cut again by a smaller link further along.

00:06:05.461 --> 00:06:14.411
Only the destination puts them back together — because a router that reassembles is a router holding state, and you have just spent ten minutes on why this layer refuses to hold any.

00:06:19.700 --> 00:06:23.650
Thirty-six seconds, and two things to watch.

00:06:23.700 --> 00:06:29.050
First, the header lifting off — the router reads it before anything is cut.

00:06:29.100 --> 00:06:37.350
The cut lands on a multiple of eight, and the piece size came from the MTU minus the header.

00:06:37.400 --> 00:06:46.350
And there is the second thing. Three fragments, three complete headers. Same identification, same addresses, different offsets.

00:06:50.200 --> 00:06:59.150
They become one datagram again only at the far end, and only when the piece with MF equal to zero arrives.

00:07:01.603 --> 00:07:05.913
Now the arithmetic, because this is the shape the question comes in.

00:07:05.963 --> 00:07:14.913
Four thousand bytes, twenty of them header, so three thousand nine hundred and eighty bytes of data. The next link carries fifteen hundred.

00:07:16.813 --> 00:07:25.763
Fragment one. Data bytes zero to fourteen seventy-nine. Total length fifteen hundred — twenty of header plus fourteen eighty of data. Offset zero. More fragments follow, so MF is one.

00:07:28.833 --> 00:07:37.783
Fragment two. Data bytes fourteen eighty to twenty-nine fifty-nine. Total length fifteen hundred again.

00:07:38.173 --> 00:07:47.123
And the offset is one hundred and eighty-five. Not fourteen eighty. One hundred and eighty-five, because the field counts eight-byte units and fourteen eighty divided by eight is one eighty-five.

00:07:56.573 --> 00:08:05.523
Fragment three. Bytes twenty-nine sixty to thirty-nine seventy-nine — whatever is left. Total length one thousand and forty. Offset three hundred and seventy. And MF is zero, which is the only thing telling the destination that this is the end.

00:08:11.583 --> 00:08:20.533
Write fourteen eighty where the field wants one hundred and eighty-five and the mark is gone. Divide by eight. Every time.

00:08:22.970 --> 00:08:28.040
These two words get swapped in exam scripts, so here they are side by side.

00:08:28.090 --> 00:08:33.720
Routing is network-wide, it happens before your traffic, and it is slow.

00:08:33.770 --> 00:08:40.100
Routers exchange what they know about their neighbourhood, over and over, until the tables converge.

00:08:40.150 --> 00:08:42.900
Nothing of yours is moving while that happens.

00:08:42.950 --> 00:08:46.920
And when a link dies, this is the thing that runs again.

00:08:46.970 --> 00:08:51.600
Forwarding is one router, one packet, and fast.

00:08:51.650 --> 00:08:59.300
A packet is here now. Look up its destination in the table that routing already built, and push it out of the right interface.

00:08:59.350 --> 00:09:06.100
No conversation with anybody. No waiting for anyone to agree.

00:09:06.150 --> 00:09:10.040
And here is the test to apply when you are not sure.

00:09:10.090 --> 00:09:13.210
Ask: was anything exchanged with another router?

00:09:13.260 --> 00:09:22.210
If yes, it is routing. If the router acted alone, on one packet, using a table it already had, it is forwarding.

00:09:24.637 --> 00:09:27.437
Ninety seconds.

00:09:27.487 --> 00:09:31.447
Four events. Label each one routing or forwarding.

00:09:31.497 --> 00:09:36.697
One. Routers exchange neighbourhood information every thirty seconds.

00:09:36.747 --> 00:09:42.677
Two. A packet for ten dot five dot six dot seven is sent out of interface three.

00:09:42.727 --> 00:09:46.867
Three. After a link dies, the tables are recomputed.

00:09:46.917 --> 00:09:53.687
Four. Label two-forty is swapped for one-seventeen, and the packet leaves.

00:09:53.737 --> 00:09:59.477
Pause the video and write four words.

00:09:59.527 --> 00:10:05.097
For each one, ask yourself whether the router had to talk to anybody.

00:10:05.147 --> 00:10:08.397
Routing, forwarding, routing, forwarding.

00:10:08.447 --> 00:10:11.297
Number four is the one that catches people.

00:10:11.347 --> 00:10:17.277
Swapping a label feels like a change of identity, so it feels like something big is happening.

00:10:17.327 --> 00:10:26.277
But it is one router, one packet, one table lookup, and no conversation. That is the definition of forwarding.

00:10:28.025 --> 00:10:32.465
Now the terms and conditions, in fine print.

00:10:32.515 --> 00:10:34.225
No delivery guarantee.

00:10:34.275 --> 00:10:41.075
A router under pressure may discard your datagram. Nobody is told. No apology is issued.

00:10:41.125 --> 00:10:47.745
That is not a fault in the implementation. It is what the specification says will happen.

00:10:47.795 --> 00:10:49.435
No ordering guarantee.

00:10:49.485 --> 00:10:53.845
Packets of one message may take different roads and arrive shuffled.

00:10:53.895 --> 00:10:59.105
The network never promised to keep them in line, so it does not.

00:10:59.155 --> 00:11:00.785
No timing guarantee.

00:11:00.835 --> 00:11:03.785
No promised delay. No promised jitter.

00:11:03.835 --> 00:11:10.075
Other people's traffic happens to you, and nothing at this layer protects you from it.

00:11:10.125 --> 00:11:11.475
So who fixes it?

00:11:11.525 --> 00:11:14.735
The ends do. The two machines that actually care.

00:11:14.785 --> 00:11:23.735
Chapters twenty-three and twenty-four are one long answer to this slide: the transport layer rebuilds every guarantee the network layer declined to make.

00:11:27.658 --> 00:11:32.298
Which leaves the obvious question. Why refuse?

00:11:32.348 --> 00:11:36.138
Because a promise is state, and state has to live somewhere.

00:11:36.188 --> 00:11:42.758
To guarantee order, or delivery, or timing, some machine must remember your conversation.

00:11:42.808 --> 00:11:50.858
Put that memory in the core, and every router is holding a piece of every conversation crossing it.

00:11:50.908 --> 00:11:53.728
And state in the core is state that can die.

00:11:53.778 --> 00:11:58.328
A router holding your connection is a router whose failure destroys it.

00:11:58.378 --> 00:12:03.578
A router holding nothing can fail, and the next packet simply goes another way.

00:12:03.628 --> 00:12:07.108
That is the survivability argument.

00:12:07.158 --> 00:12:09.848
So the promises moved to the ends.

00:12:09.898 --> 00:12:14.998
The two machines that care are the two ends, and they were always going to be there.

00:12:15.048 --> 00:12:23.998
Put the memory in them, and the core stays simple, and cheap, and — because it remembers nothing — almost impossible to break permanently.

00:12:24.478 --> 00:12:27.378
Promise nothing, and you never break your word.

00:12:27.428 --> 00:12:33.944
That is the design decision the Internet is built on.

00:12:33.994 --> 00:12:40.004
Checkpoint one. Four questions, and I would like them on paper.

00:12:40.054 --> 00:12:48.414
One. A router recomputes its table after a link failure. Routing or forwarding — and what tells you?

00:12:48.464 --> 00:12:55.864
Two. Name the three things IP declines to guarantee, and say who provides them instead.

00:12:55.914 --> 00:13:03.974
Three. Why does putting connection state in the core make the network less survivable, rather than more?

00:13:04.024 --> 00:13:12.974
Four. A three-thousand-byte datagram meets a link with an MTU of one thousand. How many fragments, and what is the offset of the last one?

00:13:14.774 --> 00:13:15.744
Answers.

00:13:15.794 --> 00:13:24.674
One. Routing. Information was exchanged with other routers, and a table was written. Forwarding never talks to anybody.

00:13:24.724 --> 00:13:32.574
Two. Delivery, order and timing. The transport layer, at the two end machines, rebuilds all three.

00:13:32.624 --> 00:13:41.574
Three. Because a router holding your connection is a router whose failure destroys it. A router holding nothing can fail without taking your conversation with it.

00:13:44.684 --> 00:13:49.574
Four. Four fragments, and the last offset is three hundred and sixty-six.

00:13:49.624 --> 00:13:58.574
Here is the reasoning, and the trap is in the first step. One thousand minus twenty of header leaves nine hundred and eighty bytes for data — but nine hundred and eighty is not a multiple of eight. So each fragment carries nine hundred and seventy-six.

00:14:07.214 --> 00:14:16.164
Two thousand nine hundred and eighty bytes of data, in pieces of nine seven six, is three full pieces and fifty-two bytes left over. Four fragments.

00:14:17.134 --> 00:14:26.084
And the offsets are zero, one twenty-two, two forty-four, and three sixty-six — each one the running byte count divided by eight.

00:14:28.018 --> 00:14:29.238
Section two.

00:14:29.288 --> 00:14:31.828
Datagram, or virtual circuit.

00:14:31.878 --> 00:14:40.828
Two answers to the same question, one table with six rows, and a router that catches fire.

00:14:40.951 --> 00:14:47.061
There have only ever been two ways to build a packet network, and Forouzan settles the argument in six rows.

00:14:47.111 --> 00:14:51.201
Here are the first three.

00:14:51.251 --> 00:14:56.481
Before data flows. In a datagram network: nothing. You just send.

00:14:56.531 --> 00:15:04.921
In a virtual-circuit network there is a setup phase that builds the path first, and only then does your data move.

00:15:04.971 --> 00:15:12.851
What the packet carries. In a datagram network, the full source and destination address, in every single packet.

00:15:12.901 --> 00:15:20.911
In a virtual circuit, a short label — plus the addresses, but it is the label that does the work.

00:15:20.961 --> 00:15:25.761
And what the router decides by. The destination address, in one case.

00:15:25.811 --> 00:15:31.891
The label in the other — and the label is swapped at every hop, which slide eighteen takes apart.

00:15:31.941 --> 00:15:40.891
The pattern is already forming. Everything the virtual circuit gains, it pays for with state held inside the network.

00:15:42.703 --> 00:15:47.133
And now the three rows that decide the argument.

00:15:47.183 --> 00:15:56.133
The path taken. In a datagram network each packet chooses independently, so two packets of one message can take different roads.

00:15:56.503 --> 00:16:03.173
In a virtual circuit every packet follows the one path that was built at setup.

00:16:03.223 --> 00:16:08.413
If a router dies. In a datagram network the survivors route around it.

00:16:08.463 --> 00:16:14.833
In a virtual circuit the circuit dies with it, and you set it up again from scratch.

00:16:14.883 --> 00:16:21.533
And state inside the network. None, in the datagram case. Routers remember nothing at all.

00:16:21.583 --> 00:16:26.523
One entry per circuit, in every router along the path, in the other.

00:16:26.573 --> 00:16:35.523
That last row decides the argument, and it is the row the exam builds its scenario around.

00:16:35.803 --> 00:16:43.143
The three phases in detail, because "setup phase" hides a lot of work in that table.

00:16:43.193 --> 00:16:46.463
Setup. Before a single byte of yours moves.

00:16:46.513 --> 00:16:50.893
A request walks the path, and every router on it writes an entry.

00:16:50.943 --> 00:16:58.023
Something like: label two-forty arriving on port two leaves by port five as label one-seventeen.

00:16:58.073 --> 00:17:02.793
Only when the whole path has agreed does your data start.

00:17:02.843 --> 00:17:08.633
Data transfer. This is the fast part, and it is where the design earns its keep.

00:17:08.683 --> 00:17:14.493
The packets now carry a short label instead of being matched against a table of addresses.

00:17:14.543 --> 00:17:19.313
Every router does one small lookup and one swap.

00:17:19.363 --> 00:17:21.633
Teardown. Give the state back.

00:17:21.683 --> 00:17:25.503
The circuit is dismantled and every router forgets it.

00:17:25.553 --> 00:17:32.343
And if it is not torn down, those entries just sit there, occupying room that another circuit needs.

00:17:32.393 --> 00:17:41.313
Setup and teardown are pure overhead. For a one-packet message they dominate the cost; for an hour-long flow they are negligible.

00:17:41.363 --> 00:17:47.321
That is the whole trade, in one sentence.

00:17:47.371 --> 00:17:51.851
So what does the label actually buy?

00:17:51.901 --> 00:17:57.781
It is small. An MPLS label is twenty bits, against a thirty-two-bit destination address.

00:17:57.831 --> 00:18:01.861
Less to match against, and less to carry.

00:18:01.911 --> 00:18:07.261
It is local. Label two-forty means something only on the link it arrived on.

00:18:07.311 --> 00:18:14.081
The same number can be in use all over the network, meaning something different every time.

00:18:14.131 --> 00:18:20.941
It is swapped, not carried through. Every router replaces the incoming label with the outgoing one.

00:18:20.991 --> 00:18:28.751
The packet's identity changes at every junction — which is exactly why teardown matters so much.

00:18:28.801 --> 00:18:35.321
And it is still forwarding. One packet, one router, one table lookup, no conversation.

00:18:35.371 --> 00:18:38.801
Do not let the word "circuit" persuade you otherwise.

00:18:38.851 --> 00:18:47.801
This is the machinery of MPLS, which gets Session eighteen to itself. Today, just recognise the shape.

00:18:49.603 --> 00:18:53.863
Two minutes, and this one is worth doing properly.

00:18:53.913 --> 00:18:58.813
A large transfer is running. Halfway through it, router R2 dies.

00:18:58.863 --> 00:19:05.083
What happens to the packets still coming — in a datagram network, and in a virtual-circuit network?

00:19:05.133 --> 00:19:09.173
And which of the two recovers without anyone noticing?

00:19:09.223 --> 00:19:18.173
Pause here. Two sentences, and be specific about what has to happen before traffic flows again.

00:19:19.633 --> 00:19:27.273
In the datagram network the tables reconverge and the packets take another road. The application may not even notice.

00:19:27.323 --> 00:19:34.163
In the virtual-circuit network, the state R2 was holding is gone — and no other router has a copy of it.

00:19:34.213 --> 00:19:38.163
The circuit is dead, and it must be set up again from scratch.

00:19:38.213 --> 00:19:41.523
That is the survivability argument, made concrete.

00:19:41.573 --> 00:19:48.497
The network that remembered nothing was the network that survived.

00:19:48.547 --> 00:19:50.897
So which one won?

00:19:50.947 --> 00:19:54.067
The core is datagram, and it always has been.

00:19:54.117 --> 00:19:57.557
No setup, no per-flow state, no teardown.

00:19:57.607 --> 00:20:05.517
A router can be rebooted, replaced, or destroyed, and the traffic finds another way within seconds.

00:20:05.567 --> 00:20:07.957
But the virtual circuit did not die.

00:20:08.007 --> 00:20:15.647
It survives inside the core as MPLS, where the label machinery buys fast lookups and traffic engineering —

00:20:15.697 --> 00:20:22.107
carried by an operator who accepts the state, on a network they control end to end.

00:20:22.157 --> 00:20:24.237
And it survives at the edges too.

00:20:24.287 --> 00:20:30.807
Every connection-oriented thing you use is a promise made at the ends, over a core that made none.

00:20:30.857 --> 00:20:36.517
Which is the distinction to keep: connection-oriented is not a synonym for virtual circuit.

00:20:36.567 --> 00:20:45.257
TCP is connection-oriented, and it runs over a core that holds no state at all.

00:20:45.307 --> 00:20:47.507
Checkpoint two.

00:20:47.557 --> 00:20:54.477
One. In which of the two designs can two packets of one message arrive out of order, and why?

00:20:54.527 --> 00:21:02.267
Two. A router in the middle of the path is rebooted. Describe what the user sees, in each design.

00:21:02.317 --> 00:21:09.137
Three. Is label swapping routing or forwarding? Defend the answer in one sentence.

00:21:09.187 --> 00:21:10.117
Answers.

00:21:10.167 --> 00:21:19.117
One. Datagram. Each packet chooses its own path, so two packets can take roads of different lengths. A virtual circuit pins every packet to one path.

00:21:20.877 --> 00:21:29.827
Two. Datagram: a pause of seconds while the tables reconverge, and then it continues. Virtual circuit: the connection is gone, and must be set up again from scratch.

00:21:32.487 --> 00:21:41.437
Three. Forwarding. One packet, one router, one table lookup, and no information exchanged with anybody.

00:21:43.060 --> 00:21:46.280
Section three. The price, measured.

00:21:46.330 --> 00:21:50.150
Three of the four delays are physics, and you can compute them.

00:21:50.200 --> 00:21:57.870
The fourth has no formula at all, and it is the one that ruins your day.

00:21:57.920 --> 00:22:05.640
You met these four on a single link in Session six. Everything that changes today is the multiplier.

00:22:05.690 --> 00:22:09.810
Transmission. L over B. Pushing the bits onto the line.

00:22:09.860 --> 00:22:14.820
Ten thousand bits at a hundred megabits per second is a hundred microseconds.

00:22:14.870 --> 00:22:19.980
And it is paid at the source and at every router that forwards the packet.

00:22:20.030 --> 00:22:24.400
Propagation. d over v. The bits travelling along the link.

00:22:24.450 --> 00:22:30.130
Two thousand metres at two times ten to the eight metres per second is ten microseconds.

00:22:30.180 --> 00:22:35.550
Paid once per link, and no purchase you can make will ever make it smaller.

00:22:35.600 --> 00:22:39.030
Processing. Reading the header and looking up the table.

00:22:39.080 --> 00:22:46.280
Twenty microseconds in our example. Paid at every router — and once more at the destination.

00:22:46.330 --> 00:22:49.610
And queuing. Waiting behind other people's packets.

00:22:49.660 --> 00:22:54.840
Paid only in routers. And it is the only one of the four with no formula at all.

00:22:54.890 --> 00:23:01.631
Four terms. One path. Now let us count them properly.

00:23:01.681 --> 00:23:06.491
Before the formula, a line down the middle of those four.

00:23:06.541 --> 00:23:11.321
On this side: physics. Transmission, propagation, processing.

00:23:11.371 --> 00:23:19.281
Give me the packet size, the bandwidth, the distance and the router, and I can write all three down before the packet is sent.

00:23:19.331 --> 00:23:23.861
They do not care who else is on the network. They are yours.

00:23:23.911 --> 00:23:26.901
And on this side: other people. Queuing.

00:23:26.951 --> 00:23:31.041
It depends entirely on how much traffic arrived just before yours.

00:23:31.091 --> 00:23:36.871
Two identical packets on the same path, one minute apart, can differ by milliseconds.

00:23:36.921 --> 00:23:42.101
That is where jitter comes from — the thing you spent Session six measuring.

00:23:42.151 --> 00:23:44.651
And this is why the exam loves the split.

00:23:44.701 --> 00:23:53.641
A question that hands you every number except the queuing delay is testing whether you know that the other three are computable and this one is not.

00:23:53.691 --> 00:24:01.656
If you are handed t-queuing, you are being handed a measurement. Not a formula.

00:24:01.706 --> 00:24:08.206
Here is the formula, and the next slide is the reason it looks like that.

00:24:08.256 --> 00:24:13.756
Total equals n plus one, times the sum of transmission, propagation and processing.

00:24:13.806 --> 00:24:16.226
Plus n, times the queuing delay.

00:24:16.276 --> 00:24:23.066
n is the number of routers on the path. That is the only input the formula really needs.

00:24:23.116 --> 00:24:26.306
Because n routers means n plus one links.

00:24:26.356 --> 00:24:33.906
A packet leaving the source crosses a link to reach R1. Another to reach R2. And one more to reach the destination.

00:24:33.956 --> 00:24:39.096
Four routers, five links. Draw it once before you substitute.

00:24:39.146 --> 00:24:42.816
So three of the terms are paid n plus one times.

00:24:42.866 --> 00:24:48.686
And one — queuing — is paid n times, because queues live in routers.

00:24:48.736 --> 00:24:55.106
The source is not waiting behind anybody else's packet. The destination is not forwarding anything.

00:24:55.156 --> 00:25:03.667
Draw the path and count the links before you substitute. The off-by-one is where the marks go.

00:25:03.717 --> 00:25:07.117
Four lines, one for each term.

00:25:07.167 --> 00:25:09.557
Transmissions: n plus one.

00:25:09.607 --> 00:25:15.297
The source pushes the packet onto the wire once, and each of the n routers pushes it out again.

00:25:15.347 --> 00:25:18.427
That is n plus one shoves.

00:25:18.477 --> 00:25:24.017
Propagations: n plus one. One per link, and there are n plus one links.

00:25:24.067 --> 00:25:26.477
This is the easy one.

00:25:26.527 --> 00:25:32.617
Processings: n plus one. Every router reads the header — and so does the destination.

00:25:32.667 --> 00:25:36.297
n routers, plus one destination.

00:25:36.347 --> 00:25:38.237
And queues: n. Only n.

00:25:38.287 --> 00:25:45.177
The source is not waiting behind anyone else's packet, and the destination is not forwarding.

00:25:45.227 --> 00:25:48.987
Queues exist where traffic converges, and that is routers.

00:25:49.037 --> 00:25:57.987
If your answer has n queuing delays and n transmission delays, you have made the single most common mistake in this section.

00:25:59.798 --> 00:26:02.988
Now let us do it with real numbers.

00:26:03.038 --> 00:26:08.058
A ten-thousand-bit packet crosses a path with four routers, so five links.

00:26:08.108 --> 00:26:16.688
Every link runs at a hundred megabits per second, over two thousand metres of cable, at two times ten to the eight metres per second.

00:26:16.738 --> 00:26:23.798
Processing is twenty microseconds per node, and each router queues the packet for forty microseconds.

00:26:23.848 --> 00:26:27.508
Find the total source-to-destination delay.

00:26:27.558 --> 00:26:32.738
Transmission. Ten thousand bits divided by ten to the eight bits per second.

00:26:32.788 --> 00:26:38.498
A hundred microseconds. Paid once per link, and there are five links.

00:26:38.548 --> 00:26:43.498
Propagation. Two thousand metres divided by two times ten to the eight.

00:26:43.548 --> 00:26:47.488
Ten microseconds. Paid once per link.

00:26:47.538 --> 00:26:50.758
Processing. Twenty microseconds, given.

00:26:50.808 --> 00:26:55.938
Paid at each of the four routers, and once more at the destination.

00:26:55.988 --> 00:26:58.978
And queuing. Forty microseconds per router, given.

00:26:59.028 --> 00:27:01.788
Four routers, so four of them.

00:27:01.838 --> 00:27:05.328
No formula produced that number. Somebody measured it.

00:27:05.378 --> 00:27:14.328
Write the four ingredients down before you substitute anything. The arithmetic is trivial; the bookkeeping is where the marks are.

00:27:17.190 --> 00:27:23.310
Forty-eight seconds, and nothing to write down. Watch the bar at the bottom fill up.

00:27:23.360 --> 00:27:29.230
There is the path. Source, four routers, destination — and therefore five links.

00:27:29.280 --> 00:27:38.230
The budget bar underneath is empty, and there is a dashed line on it at eight hundred and ten microseconds. Remember that line.

00:27:38.400 --> 00:27:43.560
Transmission first. A hundred microseconds to shovel the packet onto the wire.

00:27:43.610 --> 00:27:49.130
That is the orange block, and it is the biggest single charge on this path.

00:27:49.180 --> 00:27:54.390
Then propagation. Ten microseconds for the bits to travel two kilometres.

00:27:54.440 --> 00:28:00.690
Barely visible next to the orange. On this path, distance is almost free.

00:28:00.740 --> 00:28:07.230
Then processing at R1. Twenty microseconds of reading the header and looking up the table.

00:28:07.280 --> 00:28:10.330
And then queuing. Forty microseconds of waiting.

00:28:10.380 --> 00:28:16.350
One hop has cost a hundred and seventy microseconds, and we have four more to go.

00:28:16.400 --> 00:28:19.930
So watch the same four charges happen four more times.

00:28:19.980 --> 00:28:25.720
Five transmissions, five propagations, five processings — and four queues.

00:28:25.770 --> 00:28:32.480
And there it is, landing exactly on the dashed line. Eight hundred and ten microseconds.

00:28:32.530 --> 00:28:37.870
Now run it again. Same path, same cable, same routers, same packet.

00:28:37.920 --> 00:28:45.600
The only difference is that R2 is congested, and it holds the packet for fifteen hundred microseconds instead of forty.

00:28:45.650 --> 00:28:50.900
Watch the red block: forty microseconds becomes fifteen hundred.

00:28:50.950 --> 00:28:54.100
Two thousand two hundred and seventy microseconds.

00:28:54.150 --> 00:29:03.100
And look at the four tiles. Transmission, propagation and processing are identical on both runs. Five hundred, fifty, and a hundred.

00:29:03.880 --> 00:29:07.210
Six hundred and fifty microseconds of honest physics, unchanged.

00:29:07.260 --> 00:29:12.620
Queuing went from twenty per cent of the journey to seventy-one per cent of it.

00:29:12.670 --> 00:29:20.596
Nothing physical changed at all. That is why the network layer cannot promise you a delay.

00:29:20.646 --> 00:29:25.786
Both runs on one slide, with the arithmetic written out.

00:29:25.836 --> 00:29:30.576
Run one. Five times a hundred and thirty, which is six hundred and fifty.

00:29:30.626 --> 00:29:34.056
Plus four times forty, which is a hundred and sixty.

00:29:34.106 --> 00:29:40.016
Eight hundred and ten microseconds. Queuing is twenty per cent of the journey.

00:29:40.066 --> 00:29:45.126
Run two. The same six hundred and fifty, because nothing physical changed.

00:29:45.176 --> 00:29:47.666
Plus sixteen hundred and twenty of queuing.

00:29:47.716 --> 00:29:53.936
Two thousand two hundred and seventy microseconds. Nearly three times the journey.

00:29:53.986 --> 00:30:00.196
And what changed? Not the cable. Not the bandwidth. Not the routers' processing.

00:30:00.246 --> 00:30:02.186
One number, contributed by strangers.

00:30:02.236 --> 00:30:11.186
Three of the four terms are honest. The fourth belongs to other people, and it is the one that decides your afternoon.

00:30:13.057 --> 00:30:17.817
Here is the same calculation as a thing you can open yourself.

00:30:17.867 --> 00:30:24.887
It opens on the worked example. Four routers, ten thousand bits, a hundred megabits, two kilometres.

00:30:24.937 --> 00:30:30.007
Eight hundred and ten microseconds, and one bar per hop, coloured by term.

00:30:30.057 --> 00:30:35.957
Look at the tile on the right: transmission owns sixty-two per cent of it.

00:30:36.007 --> 00:30:43.877
Now drop it to one router. Watch every number fall — not because the links got faster, but because the multiplier shrank.

00:30:43.927 --> 00:30:49.897
Two links instead of five. This is the n plus one, made visible.

00:30:49.947 --> 00:30:57.667
Back to four. Five bars, and five identical stacks — plus the queue in each of the four routers.

00:30:57.717 --> 00:31:02.347
Now ten times the bandwidth. A gigabit instead of a hundred megabits.

00:31:02.397 --> 00:31:04.987
The orange collapses to almost nothing.

00:31:05.037 --> 00:31:12.127
Propagation and processing did not move at all. You bought away one term, and only one.

00:31:12.177 --> 00:31:18.247
Now the opposite. Leave the bandwidth alone and stretch the link to five thousand kilometres.

00:31:18.297 --> 00:31:24.487
Propagation takes over completely, and the verdict changes: this path is distance-bound.

00:31:24.537 --> 00:31:29.617
No amount of bandwidth will help. Nobody sells a faster metre.

00:31:29.667 --> 00:31:33.617
Back to the textbook example.

00:31:33.667 --> 00:31:38.267
And now press the one button that is not physics at all. R2 gets busy.

00:31:38.317 --> 00:31:43.717
Two point two seven milliseconds, and queuing owns seventy-one per cent of a path whose physics never changed.

00:31:43.767 --> 00:31:52.717
Open it after the lecture and try to make queuing small by buying something. You cannot. That is the whole point of the tool.

00:31:55.873 --> 00:31:58.153
Checkpoint three.

00:31:58.203 --> 00:32:05.613
One. A path has two routers. How many transmission delays, and how many queuing delays?

00:32:05.663 --> 00:32:13.663
Two. Which term would you attack first, on a path where the packets are large and the links are short?

00:32:13.713 --> 00:32:22.303
Three. Two identical packets take the same path one minute apart, and differ by three milliseconds. Which term explains it?

00:32:22.353 --> 00:32:23.273
Answers.

00:32:23.323 --> 00:32:32.273
One. Three transmissions, three propagations and three processings — but only two queuing delays. n is two, so n plus one is three.

00:32:34.063 --> 00:32:43.013
Two. Transmission, L over B. It is the term that grows with packet size and shrinks with bandwidth, and propagation is already tiny on a short link.

00:32:44.863 --> 00:32:53.813
Three. Queuing, and only queuing. The other three are fixed by the packet, the link and the router — and none of those changed.

00:32:56.055 --> 00:33:01.615
Delay was the first yardstick. Here is the second, and it is one line.

00:33:01.665 --> 00:33:05.135
The throughput of a path is the minimum of the link rates.

00:33:05.185 --> 00:33:09.395
A chain of a hundred, forty and two hundred megabits carries forty.

00:33:09.445 --> 00:33:15.125
Not the average. Not the last one. Not the first one. The minimum.

00:33:15.175 --> 00:33:19.695
Think of water through three pipes. The narrowest pipe sets the flow.

00:33:19.745 --> 00:33:26.265
The two-hundred-megabit link cannot push more water than the forty-megabit link is handing it.

00:33:26.315 --> 00:33:29.685
Which means upgrading the wrong link buys you nothing at all.

00:33:29.735 --> 00:33:34.355
Turn the hundred into a thousand, and the path still carries forty.

00:33:34.405 --> 00:33:40.565
The bottleneck did not move. You just paid for capacity that will never be used.

00:33:40.615 --> 00:33:43.585
And in real life that narrow link is shared.

00:33:43.635 --> 00:33:49.585
If two other flows cross the forty-megabit link with you, your slice is nearer thirteen.

00:33:49.635 --> 00:33:56.572
The min rule gives you the ceiling. It does not give you the allocation.

00:33:56.622 --> 00:33:57.582
Sixty seconds.

00:33:57.632 --> 00:34:05.352
A path runs at a gigabit, then a hundred megabits, then a gigabit, then fifty megabits, then a gigabit.

00:34:05.402 --> 00:34:14.352
What is the throughput of the path? And if you could upgrade exactly one link, which one — and what would the new throughput be?

00:34:15.322 --> 00:34:22.372
Pause. Two numbers and one choice.

00:34:22.422 --> 00:34:27.362
Fifty megabits. Upgrade the fifty. And the new throughput is a hundred.

00:34:27.412 --> 00:34:31.142
Because fixing the fifty promotes the hundred to bottleneck.

00:34:31.192 --> 00:34:34.332
You bought a doubling, not a twenty-fold increase.

00:34:34.382 --> 00:34:43.332
Every capacity upgrade moves the bottleneck. None of them removes it. There is always a narrowest pipe.

00:34:44.256 --> 00:34:46.506
Section four. Congestion.

00:34:46.556 --> 00:34:53.346
A finite buffer, a retransmission, and the two curves every engineer ends up drawing from memory.

00:34:53.396 --> 00:35:00.073
This is where the second half of the opening question gets its answer.

00:35:00.123 --> 00:35:06.363
The third yardstick is packet loss, and it follows from one fact about buffers.

00:35:06.413 --> 00:35:09.033
A router's input buffer is finite.

00:35:09.083 --> 00:35:13.543
That is it. That one sentence is behind everything else in this section.

00:35:13.593 --> 00:35:18.563
A packet arriving while the router is busy waits in the buffer.

00:35:18.613 --> 00:35:22.353
And when the buffer is full, the next packet is discarded.

00:35:22.403 --> 00:35:30.353
No apology. No notification. Best-effort delivery, exactly as advertised back in section one.

00:35:30.403 --> 00:35:32.813
And drops become retransmissions.

00:35:32.863 --> 00:35:35.863
The Internet's answer to loss is "send it again".

00:35:35.913 --> 00:35:43.333
So the dropped packet does not disappear from the network. It comes back, later, as new traffic.

00:35:43.383 --> 00:35:48.243
More traffic, fuller buffers, more drops, more retransmissions, more traffic.

00:35:48.293 --> 00:35:51.633
Loss does not relieve the congestion. It feeds it.

00:35:51.683 --> 00:35:59.837
There is no brake in that list. Nothing in it gets smaller on its own.

00:36:00.927 --> 00:36:06.767
Forty-four seconds inside one router. Count the boxes arriving at the top.

00:36:06.817 --> 00:36:12.257
Light load. Six packets arriving, one slot of the buffer in use, nothing dropped.

00:36:12.307 --> 00:36:17.677
The buffer is a shock absorber, and at this load it is barely doing anything.

00:36:17.727 --> 00:36:20.677
Now the load rises. The queue is filling.

00:36:20.727 --> 00:36:28.937
Nothing is lost yet — but every packet is now waiting behind others, and the delay curve has started to bend.

00:36:28.987 --> 00:36:31.377
And there it is. All ten slots.

00:36:31.427 --> 00:36:36.937
The buffer is full, which means the next arrival has nowhere at all to go.

00:36:36.987 --> 00:36:41.107
So it is discarded. Watch the red crosses appear along the bottom.

00:36:41.157 --> 00:36:46.827
Nobody is told. The sender does not know, the receiver does not know.

00:36:46.877 --> 00:36:51.667
Which is why the next thing that happens takes so long. The source waits for a timeout.

00:36:51.717 --> 00:36:57.167
And then it sends the same packet again. Those are the brown boxes with the arrow.

00:36:57.217 --> 00:37:04.487
And now look at the arrivals row. Seventeen packets, and six of them are things the network already carried once.

00:37:04.537 --> 00:37:08.177
Every drop has come back as new traffic.

00:37:08.227 --> 00:37:11.537
Twenty packets arriving. Nine of them are echoes.

00:37:11.587 --> 00:37:19.517
The router is being offered four times what it can carry, and nine of the twenty are packets it has already delivered once and thrown away.

00:37:19.567 --> 00:37:24.687
Dropping packets did not relieve the congestion. The load came back with interest.

00:37:24.737 --> 00:37:32.124
That is congestion collapse, and there is no brake anywhere in the loop.

00:37:32.174 --> 00:37:39.574
Now the two curves. Draw these once tonight, from memory, and label them.

00:37:39.624 --> 00:37:40.904
Delay against load.

00:37:40.954 --> 00:37:47.524
Below capacity, the queue drains as fast as it fills, so delay is very nearly just propagation plus processing.

00:37:47.574 --> 00:37:56.074
As the load approaches capacity, the queue takes longer and longer to drain — and the curve heads for infinity.

00:37:56.124 --> 00:37:57.554
Throughput against load.

00:37:57.604 --> 00:38:03.024
It rises along the ideal line until the knee, where the routers begin to drop.

00:38:03.074 --> 00:38:12.024
And past the knee the sources resend what was discarded, the offered load climbs, and the throughput collapses. It bends back down.

00:38:12.744 --> 00:38:15.154
The knee is the whole point.

00:38:15.204 --> 00:38:18.544
Before it, extra load buys extra throughput.

00:38:18.594 --> 00:38:21.904
After it, extra load buys less throughput than you had before.

00:38:21.954 --> 00:38:30.216
A network running past its knee is a network doing more work and delivering less.

00:38:31.236 --> 00:38:38.306
One router, one capacity, and one slider that says how much the applications want to send.

00:38:38.356 --> 00:38:46.336
Half capacity. Both curves are in the comfortable region, nothing is dropped, and everything offered is delivered.

00:38:46.386 --> 00:38:50.976
Ninety per cent. Still nothing lost — but look at the left-hand curve.

00:38:51.026 --> 00:38:57.416
The delay has already started climbing steeply, and we have not lost a single packet yet.

00:38:57.466 --> 00:39:00.806
At capacity. The delay curve has gone vertical.

00:39:00.856 --> 00:39:05.736
This is the knee, and this is the best the network will ever do.

00:39:05.786 --> 00:39:11.136
Now push to a hundred and thirty per cent, with the sources resending what they lose.

00:39:11.186 --> 00:39:15.726
The applications asked for a hundred and thirty and are receiving thirty-two.

00:39:15.776 --> 00:39:20.936
The offered load is four times capacity, because three quarters of it is echoes.

00:39:20.986 --> 00:39:25.636
And look at the right-hand curve: it has turned back on itself.

00:39:25.686 --> 00:39:30.946
Now the control. Same load, but this time the sources give up on what is lost.

00:39:30.996 --> 00:39:36.576
The throughput simply saturates at the capacity line. Flat. No collapse at all.

00:39:36.626 --> 00:39:41.286
That is the curve everybody expects — and it is not what the Internet does.

00:39:41.336 --> 00:39:49.286
Retransmission is what turns saturation into collapse. That is the whole difference between the two pictures.

00:39:49.336 --> 00:39:55.046
So here is prevention. A window policy that never asks for more than the network can take.

00:39:55.096 --> 00:40:04.046
No queue builds, nothing is dropped, nothing is resent. And nobody had to detect anything, which is what makes it open loop.

00:40:04.176 --> 00:40:09.236
And here is removal. The applications still ask for a hundred and thirty per cent.

00:40:09.286 --> 00:40:14.926
But the router noticed, and fed back, and the offered load was pulled down to a hundred and four.

00:40:14.976 --> 00:40:23.897
Congestion happened, was detected, and was cured. That is closed loop, in one screen.

00:40:24.147 --> 00:40:29.887
Forouzan sorts the techniques into two buckets, and the sorting is what is examinable.

00:40:29.937 --> 00:40:33.227
Open loop first. Prevention.

00:40:33.277 --> 00:40:35.347
Good retransmission timers.

00:40:35.397 --> 00:40:43.377
A timer that fires too early resends a packet that was merely slow, and manufactures traffic out of nothing.

00:40:43.427 --> 00:40:45.337
A sensible window policy.

00:40:45.387 --> 00:40:52.337
Selective-Repeat resends the one packet that was lost. Go-Back-N resends it and everything after it.

00:40:52.387 --> 00:40:57.187
Chapter twenty-three makes that concrete, with numbers.

00:40:57.237 --> 00:40:58.797
Acknowledge less often.

00:40:58.847 --> 00:41:05.037
Every acknowledgement is itself a packet, on a network you are trying to relieve.

00:41:05.087 --> 00:41:10.667
And admission control. Refuse a new virtual circuit when the network is already full.

00:41:10.717 --> 00:41:16.127
The bouncer at the door — and it needs a network that has circuits to refuse.

00:41:16.177 --> 00:41:25.127
Now: the defining feature of this list is not the policies. It is that nothing anywhere is detecting congestion or sending a signal about it.

00:41:27.656 --> 00:41:34.616
Closed loop. Removal. Something detects congestion, and something else is told about it.

00:41:34.666 --> 00:41:39.426
Backpressure. A congested router tells its upstream neighbour to slow down.

00:41:39.476 --> 00:41:44.916
That neighbour tells its own upstream neighbour, hop by hop, back towards the source.

00:41:44.966 --> 00:41:53.206
It needs each router to know where a flow came from — which is per-flow state. So: virtual-circuit networks only.

00:41:53.256 --> 00:41:59.986
The choke packet. The congested router skips the queue of neighbours entirely and warns the source directly.

00:42:00.036 --> 00:42:04.616
One message, straight to the machine that can actually act.

00:42:04.666 --> 00:42:08.016
Implicit signalling. Nobody sends anything at all.

00:42:08.066 --> 00:42:12.876
The source notices its own timeouts and infers that the network is congested.

00:42:12.926 --> 00:42:18.676
This is what TCP actually does, and Session twenty-three is about it.

00:42:18.726 --> 00:42:24.166
And explicit signalling. A warning bit rides in packets that are passing through anyway —

00:42:24.216 --> 00:42:31.406
forward towards the destination, or backward towards the source.

00:42:31.456 --> 00:42:39.886
So here is the test, because the exam question is always the same shape: sort this list into two buckets.

00:42:39.936 --> 00:42:44.066
Ask one question. Did anything detect congestion and report it?

00:42:44.116 --> 00:42:51.906
If nothing did — if the technique is just a policy the ends follow whether the network is busy or not — it is open loop. Prevention.

00:42:51.956 --> 00:42:56.466
And if something did, it is closed loop.

00:42:56.516 --> 00:42:59.346
A router noticed, and a signal went somewhere.

00:42:59.396 --> 00:43:08.056
Backpressure, choke packets, warning bits — and even a source inferring from its own timeouts. All closed loop.

00:43:08.106 --> 00:43:12.756
Open loop prevents by policy. Closed loop removes by feedback.

00:43:12.806 --> 00:43:16.436
And admission control is the one most often misfiled.

00:43:16.486 --> 00:43:25.436
It sounds active, so it feels like feedback. But it is a policy applied at the door, before anything is congested. Open loop.

00:43:27.641 --> 00:43:32.131
Checkpoint four, and this is the last one.

00:43:32.181 --> 00:43:39.251
One. A source infers congestion from its own timeouts and slows down. Open loop or closed?

00:43:39.301 --> 00:43:44.451
Two. Why is backpressure unavailable on the Internet's core?

00:43:44.501 --> 00:43:52.341
Three. A network is running past its knee. What happens to throughput if the offered load rises further?

00:43:52.391 --> 00:43:53.321
Answers.

00:43:53.371 --> 00:44:02.291
One. Closed loop. Congestion was detected and acted upon after it happened. The signal was implicit, but there was one.

00:44:02.341 --> 00:44:11.291
Two. Because it needs each router to know which upstream neighbour a flow came from, and that is per-flow state. The datagram core holds none.

00:44:12.661 --> 00:44:21.611
Three. It falls. Past the knee the extra load is mostly retransmissions, so the network carries more packets and delivers fewer of them.

00:44:23.513 --> 00:44:28.803
So. The two claims from minute one, and the answers to both.

00:44:28.853 --> 00:44:30.093
Why promise nothing?

00:44:30.143 --> 00:44:36.223
Because every promise costs state, and state in the core is state that dies with the router holding it.

00:44:36.273 --> 00:44:44.193
Promise nothing, and the core never breaks its word — and never loses your conversation when a machine fails.

00:44:44.243 --> 00:44:46.923
And why can a faster router make things worse?

00:44:46.973 --> 00:44:51.193
The first reason is the min rule. The bottleneck did not move.

00:44:51.243 --> 00:44:58.883
Path throughput is the minimum of the links, so upgrading one router just feeds the narrow link faster.

00:44:58.933 --> 00:45:00.573
And then the drops come back.

00:45:00.623 --> 00:45:05.763
The full buffer discards, and every discard returns as a retransmission.

00:45:05.813 --> 00:45:11.743
Offered load rises, the buffer fills faster, and more is discarded.

00:45:11.793 --> 00:45:14.233
Past the knee, the curves take over.

00:45:14.283 --> 00:45:18.013
Delay heads for infinity, and throughput collapses.

00:45:18.063 --> 00:45:23.343
The upgrade shoved a network that was sitting near its knee straight past it.

00:45:23.393 --> 00:45:26.783
Promise nothing, and the core never breaks its word.

00:45:26.833 --> 00:45:33.728
Push it past the knee, and extra speed is just extra fuel.

00:45:33.968 --> 00:45:37.528
Five ways to lose marks on this material.

00:45:37.578 --> 00:45:41.568
Wrong: routing and forwarding are the same thing.

00:45:41.618 --> 00:45:50.568
Right: routing writes the table — network-wide, before traffic, by exchanging information. Forwarding reads it: one packet, one router, no conversation.

00:45:53.168 --> 00:45:57.178
Wrong: path throughput is the average of the link rates.

00:45:57.228 --> 00:46:06.178
Right: the minimum. One forty-megabit link caps a hundred-forty-two-hundred chain at forty — and sharing that link can cut your slice further still.

00:46:08.298 --> 00:46:13.938
Wrong: counting n queuing delays as n plus one, or n plus one transmissions as n.

00:46:13.988 --> 00:46:22.938
Right: n routers, n plus one links, n plus one transmissions, propagations and processings. But only n times t-queuing, because queues live in routers.

00:46:26.878 --> 00:46:30.848
Wrong: dropping packets relieves the congestion.

00:46:30.898 --> 00:46:39.848
Right: sources retransmit what routers discard, so the load comes back with interest. That is precisely why delay goes to infinity and throughput collapses.

00:46:42.188 --> 00:46:47.978
And wrong: filing admission control as closed loop, because it sounds active.

00:46:48.028 --> 00:46:56.978
Right: open loop. It is a policy applied at the door, before anything is congested, with no detection and no feedback signal anywhere.

00:46:59.874 --> 00:47:03.024
Four things you should be able to do now.

00:47:03.074 --> 00:47:11.394
Separate routing from forwarding on sight — and justify it by asking whether the router exchanged anything with anybody.

00:47:11.444 --> 00:47:15.744
State what best-effort refuses, and say who supplies it instead.

00:47:15.794 --> 00:47:22.624
Delivery, order, timing — all rebuilt by the transport layer at the two ends.

00:47:22.674 --> 00:47:26.254
Compute a total path delay without an off-by-one.

00:47:26.304 --> 00:47:34.744
n plus one times the three, plus n times the queuing — having drawn the path and counted the links first.

00:47:34.794 --> 00:47:40.024
And draw both congestion curves, and sort a list of techniques into two buckets.

00:47:40.074 --> 00:47:49.024
Delay to infinity, throughput collapsing past the knee. Open loop prevents by policy; closed loop removes by feedback.

00:47:51.861 --> 00:48:00.091
Five final checks. Pause after each one if you need to.

00:48:00.141 --> 00:48:09.091
One. A path has three routers. Write the total-delay formula with the numbers filled in, given L over B is fifty microseconds, d over v is five, processing is ten, and queuing is a hundred.

00:48:15.161 --> 00:48:21.541
Two. Name the three guarantees IP declines, and the layer that supplies them.

00:48:21.591 --> 00:48:29.631
Three. A virtual circuit's router is rebooted mid-transfer. What must happen before data flows again?

00:48:29.681 --> 00:48:38.631
Four. A chain runs two hundred, eighty, one fifty, eighty megabits. What is the throughput, and what does upgrading one of the eighties buy you?

00:48:41.161 --> 00:48:50.111
Five. Sort these into open and closed loop: choke packet, admission control, good timers, backpressure, warning bit.

00:48:50.701 --> 00:48:59.651
The answers are along the bottom of the slide. Number four is the one to look at twice — upgrading one eighty leaves the other one as the bottleneck, so the throughput is still eighty.

00:49:04.471 --> 00:49:06.031
That is Session eight.

00:49:06.081 --> 00:49:12.601
Three duties: packetize, route, forward. Routing writes the table; forwarding reads it.

00:49:12.651 --> 00:49:17.611
Three delays are physics. The fourth is other people, and it has no formula.

00:49:17.661 --> 00:49:22.551
Path throughput is the minimum of the links, and sharing cuts your slice further.

00:49:22.601 --> 00:49:28.401
And past the knee, every extra packet is fuel: more drops, more resends, less delivered.

00:49:28.451 --> 00:49:33.521
Before the next session, read Forouzan eighteen point four — IPv4 addresses.

00:49:33.571 --> 00:49:38.101
The addressing arc starts next class, and it runs for six straight sessions.

00:49:38.151 --> 00:49:47.101
Bring a calculator, and know your powers of two up to two to the tenth by heart. They will pay rent for the rest of the term.

00:49:47.191 --> 00:49:52.054
I will see you there.
