Title: Network Architecture (R02) - L1
1Network Architecture (R02) - L1
- Jon Crowcroft,
- http//www.cl.cam.ac.uk/jac22
- http//www.cl.cam.ac.uk/teaching/1010/R02/
2Course Structure
- 16 Lectures
- several guest slots -
- Andrew Moore - router h/w algorithmics
- Cecilia Mascolo - sensor/mobile net arch
- Dirk Trossen - pub/sub in the net
- Hamed Haddadi - topology over time
- Participation by you
- Reading
- Critique-ing papers
- See How to read a paper by Keshav
- http//www.sigcomm.org/ccr/drupal/files/p83-keshav
A.pdf
3Course Assessment
- Your involvement each week
- Alternate me present you all contribute
- 3 essays - compare/contrast
- Due dates
- oct 29,
- nov 26,
- start of next term
- An annotated bibligraphy
- At start of next term, but update each week
4Workload
- Read 1-2 papers per week
- Plus scan related material
- Keep notes
- Feel free to ask me more
- Essays can be
- 2-4 pages
- Note form is fine
- References/citing source material essential
5Review of Internet Architecture
- Packet switching
- No circuit, virtual or otherwise
- Datagram Network
- No set up - fast for transactions
- Work Conserving
- (video download can be faster than viewing)
- Stateless
- (end and router dont share state)
- (max pkt size unchanged for 30 yrs!)
6Parsimony
- End to end model
- (clark et al)
- Cautious Sender
- Forgiving Receiver
- (postel principle)
Many different kinds of applications and higher-l
evel protocols
IP
Many different kinds of networks
The Hourglass Model, Steve Deering
7IP packet
8IP Address Forwarding
- Based on destination address (32 bits!)
- Not source (why is it there?)
- Forwarding is hop by hop
- May change (or fail) somewhere along path
- Address is where something is
- an interface of a host (can have lots)
- Route is how to get there
- Computed seperately, continuously and
asynchronously - Names (see later) are what something is
9Two components of routing
- Control component
- Decides where the packets will go
- Use a set of routing protocols (e.g. OSPF, BGP)
to collect information and produce a forwarding
table - Control plane
- Forwarding component
- Moving packets from input to output ports
according to forwarding table and packet header - Forwarding plane
Routing daemon collect routing info and
maintain routing DB
routes
kernel
Forwarding table
Forwarding algorithm and mechanism
packets
10Address Matching
- Packet forwarding requires
- Address matching
- Followed by table lookup of output port
- Moving the packet through the router (from input
port to output port) - This involves scheduling, queueing, design of
switch fabric etc, conventional aspects of switch
design - Address matching
- Exact matching
- e.g. bridge forwarding, DECnet, OSI/CLNP
- Longest prefix match best matching
- IP networks
11Exact match
- Easier
- Software approach
- Binary search
- Hash function
- Hardware Content Addressable Memory (CAM)
12Longest prefix match
- IP addresses are assigned in a manner that
reflect network topology - Address aggregation group destinations with the
same prefix together if they exit the same output
port - Therefore, longer prefixes tend to be announced
by customers ISPs who are closer to the
destination, whereas provider ISPs tend to
announce aggregated addresses - Hence a route to the longest prefix match is
preferred
13Example to show why longest prefix match is
better
BGP route advertisement for 1.2.3/24
Forwarding table
Forwarding table
ISP B (provider of ISP A)
ISP C (provider of ISP A)
Peer relationship
1.2.3/24
1.2.3/24
1.2.3.123/26
BGP route advertisement for 1.2.3.123/26
BGP route advertisement for 1.2.3.123/26
Longer prefix is a better route!
ISP A
Subnet 1.2.3.123/26
14Example
- Each entry in forwarding table has address
prefix e.g.
address 11001111 01011100 00000000 10000111
mask 11111111 11111111 11111111
11111111 address 11001111 01011100 00000000
00000000 mask 11111111 11111111 00000000
00000000 address 11001111 01011100 00000000
00000000 mask 11111111 11111111 11100000
00000000
Longest match
11001111 01011100 00000000 10000111 matches with
all three entries
15How to do Longest Prefix Match
- Not as easy as exact match
- Approaches
- Create a data structure for doing LPM
- Convert the problem into a form so that we can do
binary search - Reduce the problem to a sequence of exact match
problems which we can apply hashing - Optimization based on distribution of prefix
lengths - Combine software and hardware techniques
16Algorithms
- There is an entire industry of algorithms
- Binary search among all prefixes in forwarding
table - Perlmans book, 13.4
- Lampson et al IP Lookups using Multiway and
Multicolumn Search, IEEE Infocom 1998 - Trie bit-by-bit match
- Perlmans book, 13.3
- Binary search based on prefix length
- Perlmans book, 13.3.3
- Waldvogel et al Scalable High Speed IP Routing
Lookups, Sigcomm 1997
17But this is all going wrong! Why?
- Not enough bits -gt NATs
- NAT Traversal, Stateful browser/server
- end is URL Persistent HTTP state cookie!
- Three Ms (historical order)
- Multicast
- Mobility
- Multihoming
- Security and Social Scale
- Unsolicited traffic
- Byzantine (v. selfish or rational or altruistic)
- Despite original ARPANET packet radio
- And multicast since 1988,
- Hierarchy is wrong
18So Ipng effort started in 1992
- See course web site for papers!
- Specification of desiderata
- Led to a set of competing efforts
- Look at SIP PIP
- Represent extremes of
- CS (SIP) Telco (PIP)
- SIP from PARC looks XNS
- Just ip with more address bits
- PIP looks VC/ATM ish
- QoS, fancy routing options
19Eventually, converged on IPv6
- Committee design
- Overtaken by reality ?
- Three Ms (current order)
- Multihoming - killing aggregation
- Mobility (smart phones roaming and receiving IP)
- Multicast - sidelined?
- New requirements
- Receiver control of input
- New kinds of bad guys
- Authentic addresses (HIP)
- New content type (video interest)
20For next week (Tuesday 12th oct)
- I want each of you to read the papers
- And come up with
- 1 good feature of IPv6
- 1 bad feature of IPv6
- And email me 1 slide with that on!
- Which YOU will present!
- And we will discuss how the desiderata
(requirements) changed!