Tuesday, October 13, 2026

Principles of Communications Week 2 13-15/10/2026

1 Centralised (!) Routing - Fibbing (see fibbing paper for more details - esp. figure 9/10 on failure/recovery modes) - in particular, fail-open and fail-close is used in the paper to refer to the persistence of a path made up by fibbing in the event of a controller failure where in some cases this is needed, and in others it needs to be removed! [1,2]

2 Stateful Routing - MPLS. Multi-protocol label switching has a long history (probably started in Cambridge!). It simplifes switch/router design in terms of forwarding, at the cost of increasing complexity in the control plane  -- possibly in routing, but more crucially, signaling. Signaling protocols have a very long history (from railways over 200 years ago). One interesting computer science dimension that arose from signaling is the concept of mutual exclusion. The first algorithms for avoiding contention for a limited resource are direct descendents of the P and V flags used to prevent two trains entering the same section of track....

In a sense, these two ideas (central and stateful) can be reconciled via "soft state" protocols (see final lecture).

Note also: MLPS involves a "shim" layer between IP and lower levels. Segment routing may use that, or may just use IP6 routing options directly. Recall layering from IB networking course. It is often not a pure picture - IP tunnels are another example of extra layers  between this and that. MPLS can also simplify switch & router port processing (and possibly, if switch is "cell switched" scheduling forwarding packets across the switch fabric - again, recall router architecure from IB networking course). Segment Routing is a re-think of MPLS, which can use IPv6 routing options as labels, and then use IP routing updates to distribute the label information to ( amongst others, upstream) neighbours. There's a nice slidepack SR explainer from CERN which shows the interaction with routing... Note segment routing with IPv6 dispenses with the potential hardware speedup of having 20 bit MLPS labels for forwarding, so one assumes router NICs and Processors may have ASIC support for v6 header processing!

So fibbing refines routing by adding FIBs which splits traffic into different paths, but MPLS coarsens it by bundling flows into the same forwarding paths/treatments.

Optional background reading...

2. Another dimension of signaling is that it requires a level of accesss control authentication and authorisation not typically present in pure datagram networks like traditional IP. For a measure of how bad it can get, look no further than the old digital telephone network signaling system number 7 (SS7) which is more complex than the whole TCP/IP regular data stack (see report on vulnerabilities in SS7). RSVP (serves similar function for signaling for MPLS if you don't just rely on routing!) is about as bad.

1. Further work was done based on the fibbing idea

https://sites.uclouvain.be/defo/
The core family of algorithms that could run in the controller.

Basically, it leverages FIBbing-like mechanisms to optimize (oblivious) TE in IP networks.

This paper is about the hardness of configuring ECMP for TE. This is actually based on a very cute hardness amplification proof technique.

Good question asked about stochastic & multipath routing - yes, you can do stochastic unipath (i.e. keep changing the route based on statisitcs) but it is more common load balancing/multipath scenarious...

Mneahile, back to MPLS - (and see later under differentiated services) - we have the idea of a packet flow, identified by some fields in the IP or possibly IP and TCP (or UDP or UDP/QUIC) Headers - between one packet and the next in the same forwarding equivalence class, some fields remain unchanged - a handy way to look at this comes from a completely different source, that of TCP/IP header compression! here's the key fields (shaded stay same):



From:
https://mirrors.ircam.fr/pub/rfc/rfc1144.pdf

A simple type of Fowarding Equivalence Class is one end-to-end flow, which can uniquely be identified (at a given time) by the 5-tuple of source+destination IP addresses, TCP (or UDP) ports and protocol id - i.e 2*32 bit fields, 2*16 bit fields and one 8 bit field.

We can also use an IP ToS field called the DS byte for an even coarser grain grouping of packets, but using the above gives us an individual end-to-end packet flow....of course we could also wild card some fields (e.g. source address) to group all the packets/flows to a given destination, or use IP prefixes (not all 32 bits of the IP destination address) to get all the packets to some particular network, rather than specific host.

Question: Why are MPLS labels local only? Answer - this lets them be small number of bits (order the numner of overall flows through a given router, rather than the number of possible flows in the world ever, which is what the 5-tuple would represent). BUt because it is local, we need to distribute the mapping from each hop to previous hop.


Thursday, October 08, 2026

Principles of Communications Week 1 8/10/2025

I'll be noting progress and also adding occasional related reading/ and corrections on this blog.

If you want to revise anything to warm up for the course, I suggest last year's Computer Networks course should be a quick re-read (e..g on routing ) A fun review of 40+ years of the Internet

This week we'll just make a start on routing. If you want to review just link-state (useful to understand fibbing (lecture 2), then video on link-state routing is very thorough.

Please do ask questions - two good ones today were

Q1 -so there's only one BGP for the whole world- yes, to have multiple Inter-domain routing protocols would mean every borader router might have to implement all of them (sort of "polyglot") which isn't impossible, but would be a nightmare of complexity to manage and operationally hard to understand - although these days, maybe we could use AI tools to manage it?

Q2 - isn't source routing a bit like virtual circuits - excellent question - yes&no - see later in MPLS where we see source routing is a way to manage VCs underlying IP potentially, but it can also be dynamic (well, more so than hard virtual circuit setup)

For fun, you might find this discussion on why LLMs aren't much use for networking, mostly interesting - video recording of panel session

Reference requested for Glossary of Terms: from ISOC

Some acronyms come from the 7 layer model of the communications stack including terms like PHY (short for physical, so not really an acronym).

Thursday, June 11, 2026

tl;didn't red

Every year for the last 25 years, I've graded undergrad exam scripts in Cambridge. 

Every year, I reach for the same red ballpoint pen as the pile of scripts lands, wummppphh, on my desk. So this year, the ink pretty much ran out on that pen.

Is this a sign? Well, yes, it suggests biros are really quite well made, given how long they last, and whatever they use for ink has amazing longevity (as anyone knows who has had one leak in their white shirt pocket).

But it made me think - is there a lesson about the length and quality of an academic career that could be combined in this one metric: How long does that biro last?

The argument goes thus: the better you teach, the less red ink you have to use to give feedback (and grades) to students. so you are motivated to teach well (you can't game this by just setting easier questions, because there are second examiners and an exam board and all sorts of statistical checks across each student, each cohort, each paper etc etc). 

On arrival in cambridge, i suggest we give each university teaching officer a single red biro. and they get to retire (at least from teaching) when it runs out.

On a sample of one,  this roughly corresponds with my current expected retirement age (if you accept Cambridge's illegal EJRA arguments - but that's another story).

Fair?


(To note, I'm also attending an alumni dinner at Trinity College this year on the 50th anniversary of Matriculating (admission to Cambridge as a NatSci undergraduate). I also looked at my academic diary and note its 40 years since I formally started teaching (at UCL initially). I also recently met a 3rdyr PhD student whose advisor was advised by one of my past PhD students, so that's 4 generations of PhDs in one place - which kind of makes sense, if you think how long it takes from starting academic study to getting to the point you could advise others, then a generation is roughly a decade. so 4 decades of red ink.

Tuesday, December 02, 2025

Principles of Communications Last Week 8 2/12/2025

Today we wrap up this course with the network systems design toolbag of tricks. 

It could be instructive to take each trick and see where it showed up earlier in the course.

Statistical multiplexing - in conservation law and scheduling.

Pipelining- the entire idea both of a stack (vertical) and the network path (sequence of links and switches and routers) is illustrative of pipelining. Both closed loop and open loop flow control are trying to balance the pipeline, either through congestion control to share the bottleneck, or through admission control.

Caching/Locality - mentioned in passing memcached as a data center service, for example.

Batching also shows up in some data center distributed processing platforms (not really covered here)

Optimising the common case is probably something that BGP demonstrates how not to do!

Binding and Indirection - e.g. multicast addresses aren't real locations, but logical group identifiers, and the actual locations are distributed by the group membership protocol...

Randomness - as discussed in telephone routing! Also used in some load balancers when talking to replicated services (and flow or packet level balancing over multipath enabled routes).

There are many many other examples...

On the other, space could be cool but cooling in space could be very hard... this is maybe a nice example of how systems thinking can be applied using the simple laws of physics (gravity, EM radiation, thermodynamics) before you get as far even as thinking about resource management of processing, memory, comms.. ... ...

Things you do not need to remember:- Padhye's "simple" TCP throughput equation, and Erlang's call blocking probability ...












Tuesday, November 25, 2025

Principles of Communications Week 8 25-27/11/2025

tue: traffic management timescales, users, large and small, demands, short and long...

signaling and soft state


thu: systems design patterns


Monday, November 17, 2025

Principles of Communications Week 7 18-20/11/2025

 This week we'll cover


  • qjump[qj] - data center networking - a big special corner case of traffic scheduling.
note qj puts the token bucket pacer in a hypversions so it is a regulator and a policer in one. it could also be offloaded to a smart NIC If you had one, or just put in the guest OS if you trust it.
  • optimisation - routes for traffic, and traffic for routes
The start of traffic engineering by steering traffic by weights - note the hill descent is a classic old school AI technique.  And the origin of why tcp does AIMD is also a type of optimisation, of joint source and network utility!

Optimisation is a very large topic in itself,  and underpins many of the ideas in machine learning when it comes to training - ideas like stochastic gradient descent (SGD) are seen in how assign traffic flows to routes, here. In contrast, the decentralised, implicit optimisation that a collection of TCP or "TCP friendly" flows use is more akin to federated learning, which is another whole topic in itself.

Why a log function? maybe see bernouilli on risk

Why proportional fairness? from social choice theory!

Are people prepared to pay more for more bandwidth? One famous Index Experiment says yes.

0. See Computer Systems Modeling for why the delay grows quickly as load approaches capacity.

1. see IB Distributed Systems for clock synch

2. see prev year's Cloud Computing (II) module for a bit more about data centers&platforms.


[qj] The qj paper gives lots more details of setup, for anyone interested (the figures in the paper are clickable and take you to software and switch/network configurations and data).