-
designed by cambridge people?
-
unlike the internet, telephone network is very highly structured
-
3-level hierarchy, fully-connected core (full mesh)
-
real exchange carriers (big building with a big system)
-
so everyone in a city block/building/whatever calls the exchange, the person sitting in the exchange asks who you’re talking to, physically move the cable
- automated (analog!) switching was first with rotary telephone
- sending pulses down the wire that operate intermediate switches
-
if you’re connected with the same exchange, the switch will connect to directly through
-
telephone exchanges are designed to be highly reliable. very large amount of redundancy. you could shoot a gun through it
- mean time between failure ~100 years
- downtime is less than a few minutes per year
- even the original mechanical ones are insanely reliable.
-
this was because they had a huge amount of capex to build the phone exchange, so you would really they rather not break
-
lol at&t were the biggest consumers of wood while they were setting up the telephone network
-
telephone and internet networks are very different
- phone is structured, internet is heterogeneous
- phone network load is predictable
- longer short-distance calls, shorter long-distance calls (based on pricing) (exponential call “holding” time)
- assumption doesn’t always hold! e.g. on mother’s day or nye, everyone calls family ergo lots of long-distance calls at once
- calls arrive independently of each other (poisson distribution)
- longer short-distance calls, shorter long-distance calls (based on pricing) (exponential call “holding” time)
- single provider controls the entire core
- highly connected network
- all connections require the same resources
-
the reliability constraint, compute resources at the time, the original mechanical/electrical designs means that telephone routing is simple
- complex things fail more often ⇒ things need to be simple
-
DNHR
- works well for multiple timezones, since large chunks of the networks might be expected to be idle
- accept call if one-hop is available, then drop
- measure usage over days
- but might have metastability
- you might move to 2-hop route, but then when calls finish on the 1-hop route you’ll still be stuck on the 2-hop route
-
can do trunk reservation ? dunno what this is
-
and you can do real-time
- this is quite complex if you don’t have much compute!
-
dynamic alternative routing
- came out of cambridge! (~35 years ago)
- when they came up with “random routing”, phone companies didn’t like it cause they were used to highly engineered systems
- ok think about properties of telephone nets:
- fully connected network (trunk network)
- relatively small number of nodes
- stochastic traffic (low variance)
- if the direct route is saturated, pick a random alternative “sticky random”
- since everyone is doing this, you’re pretty evenly distributing traffic across the network
- the disadvantage is that you displace some one-hop routes
- so the solution is you do “trunk reservation”
- you set aside some amount of traffic only for one-hop users
- no traffic analysis, no centralization, very simple
- randomly assigned (valiant load balancing)
- you can do some stats to find out the optimal trunk reservation fraction
-
can you do better than 2 hops?
- no, you just use more resources and not much gain
-
multiple attempts
- eh
-
repacking
- move all existing calls from 2-hop to 1-hop