Based on these scenarios, we imagine our network as being organized into three kinds of composable layers:
- a link layer, usually implemented via 802.3 wired Ethernet, 802.11b/g wifi in either ad-hoc or infrastructure mode, or various sorts of tunneling over IPv4, perhaps across NATs and firewalls,
- an internetworking layer, based on IPv6 (tutorial documentation), and
- a naming layer, based on DNS, for binding logical addresses from networks with different failure modes to stable human-memorable names
We find this layered conceptual model helpful for estimating dependency ("what has to work before this layer can work?") and cost ("what does it cost to traverse this layer?").