CS - ECE438 Lec4 InternetArchitecturalPrinciples
CS - ECE438 Lec4 InternetArchitecturalPrinciples
Saksham Agarwal
1
ti
Maintaining connec vity under failures: s ll a challenge!
ti
ti
Context for today’s lecture
• So far: discussed several high-level concepts
• Design goals of the Internet
• End-to-end working of the Internet
• Addressing, rou ng, forwarding, reliability
• Also did a deeper dive into
• Network sharing
• Circuit vs packet switching
• You know more about computer networks than what you may realize!
• When a process wants access to the network, it opens a socket, which is associated with a port
• The network stack at the source embeds the address and port for both the source and the des na on in
packet header
• Each router uses des na on address in the packet header to look up the outgoung link in the rou ng table
• And when the link is free, forward the packet
• Applica ons:
• Send and receive packets
• Understand content of packet bodies
ti
ti
Who cares?
• Why is separa on of concerns important?
• Separa on of concerns ~ Modularity
• If each component’s task is well-de ned, one can focus design on that task
• And replace it with any other implementa on that does that task
• Without changing anything else
ti
ti
fi
ti
Computer System Modularity
• Par on system into modules
• Each module has a well de ned interface
• Examples
• Libraries encapsula ng set of func onali es
• Programming language abstracts away CPU
https://numpy.org/doc/stable/reference/generated/numpy.sort.html
ti
ti
fi
fl
ti
fi
ft
ti
ti
ti
ti
Network System Modularity
• The need for modularity s ll applies
• And is even more important! (Why?)
• Network implementa ons not just distributed across many lines of code
• A kind of modularity
Applica Built on top of reliable delivery
• Func onality separated into layers
L3
Datagram
L3 L4 Data Data Link (L2) Built on top of data communica on
L2
Frame
L2 L3 L4 Data Physical (L1)
ti
ti
ti
ti
Ques ons?
ti
Leads to three design principles
• How to break system into modules?
• Layering
Router
Router
LAN2 (Grainger)
Switch
Link
End hosts
Visualizing what gets implemented where
• L1 + L2 layers implemented everywhere
Applica Applica
Transport Transport
Data Link Data Link Data Link Data Link Data Link Data Link
• Then providing that func on as a feature of the communica on system itself is not possible.
• Some mes providing an incomplete version of that func on as a feature of the communica on system itself may
be useful as a performance enhancement.
ti
ti
ti
ti
ti
ti
ti
ti
End-to-end principle: an example
• Suppose each link layer transmission is reliable
• Does that ensure end-to-end (applica on-to-applica on) reliability?
Applica Applica
Transport Transport
Data Link Data Link Data Link Data Link Data Link Data Link
• Then providing that func on as a feature of the communica on system itself is not possible.
• Some mes providing an incomplete version of that func on as a feature of the communica on system itself may
be useful as a performance enhancement.
ti
ti
ti
ti
ti
ti
ti
ti
End-to-end principle: interpreta on
• Assume the condi on (IF) holds. Then,
• End-to-end implementa on
• Correct
• Generalized, and simpli es lower layers
• In-network implementa on
• Insu cient
• May help — or hurt — performance
ffi
ti
fi
ti
ti
ti
End-to-end principle (Three things to know)
• Everyone knows what it is
• So, you must!
• Everyone believes it
• So, you must!
• Only way failure can cause loss of the cri cal state is if the en ty that cares about it also fails…
• …in which case it doesn’t ma er
• O en argues for keeping network state at end hosts rather than inside routers
• Eg., packet switching rather than circuit switching
ft
tt
ti
ti
ti
ti
Generalized Principle: Fate-sharing
• Note that end-to-end principle relied on fate-sharing
• Invariants only break when endpoints themselves break
• Minimize the dependence on other network elements