35
© John Day, 2013 1 Rights Reserved The Pouzin Society . 1 Things They Never Taught You About Naming and Addressing “Did I ever tell you about Mrs. McCave Who had 23 sons and she named them all Dave? Well she did and that was not a very smart thing to do Because now when she calls, “Yoo-hoo, come into the house, Dave!” All 23 of her sons come on the run “And now she wishes that she had named them . . .” <there follows a wonderful list of Dr. Seuss names she wishes she’d named them and then concludes with this excellent advice.> “But she didn’t do it and now it is too late.” - Dr. Seuss Too Many Daves John Day Jan 2013

4 addressing theory130115

Embed Size (px)

Citation preview

© John Day, 2013 1 Rights Reserved

The Pouzin Society

. 1

Things They Never Taught You About ���Naming and Addressing���

“Did I ever tell you about Mrs. McCave Who had 23 sons and she named them all Dave? Well she did and that was not a very smart thing to do Because now when she calls, “Yoo-hoo, come into the house, Dave!” All 23 of her sons come on the run “And now she wishes that she had named them . . .”

<there follows a wonderful list of Dr. Seuss names she wishes she’d named them and then concludes with this excellent advice.>

“But she didn’t do it and now it is too late.” - Dr. Seuss Too Many Daves

John Day

Jan 2013

© John Day, 2013 2 Rights Reserved

The Pouzin Society

. 2

Going Back to Fundamentals

•  Develop the concepts moving from more fundamental to more specific. –  Fundamentals of Naming –  Naming in Computing Systems –  Naming for Communicating Processes –  Naming for IPC

© John Day, 2013 3 Rights Reserved

The Pouzin Society

. 3

Names and Name Spaces •  A name space, NS, is a set {N} of names from which all names for a

given collection of objects are taken. A name from a given name space may be bound to one and only one object at a time.

•  A name is a unique string, N, in some alphabet, A, that unambiguously denotes some object or denotes a statement in some language, L. The statements in L are constructed using the alphabet, A.

•  A function, MNS, which defines the class of objects, M, that may be named with elements of NS. This is referred to as the scope of the name space (see below). This may refer to actual objects or the potential for objects to be created.

•  A function, FMNS, that defines the mapping of elements of NS to elements of M. This function is one-to-one and onto and is called a binding.

© John Day, 2013 4 Rights Reserved

The Pouzin Society

. 4

Operations on Names

•  Assignment, allocates a name in a name space, essentially marks it in use. Deassignment, removes it from use. Assignment makes names available to be bound. This allows certain portions of a name space to be “reserved,” not available for binding.

•  Binding, maps a name to an object. Once bound, any reference to the name accesses the object. Unbinding breaks the binding. Once unbound, any reference will not access any object. –  An object ceases to exist when the last name referring to it is unbound.

•  Saltzer [1977] defines “resolve” as in “resolving a name” as “to locate an object in a particular context, given its name.” –  An object cannot be identified without locating it nor located without

identifying it.

© John Day, 2013 5 Rights Reserved

The Pouzin Society

. 5

Types of Names •  Objects may be assigned more than one name. These are called

synonyms or aliases. –  Objects that may have more than one name, the names are unambiguous. –  Objects that must have only one name, the names are unique.

•  Names may also denote sets of names. Associated with the set is a rule that determines which names are returned when the name of the set is resolved. In networking, –  A rule that returned all members has been called multicast. –  A rule that returned one member has been called anycast. –  We will refer to all forms as whatevercast!

•  Synonyms or names of sets may be taken from the same or different name spaces. –  The name of an object is the name of a set of one element.

© John Day, 2013 6 Rights Reserved

The Pouzin Society

. 6

Resolving Names

•  There are 2.5 means to resolve names: –  Exhaustive Search –  The name provides hints to narrow the search.

•  The “half” is indirection: –  The name or part of the name points to an object that points to a name.

•  Hierarchy is the most common form of embedding hints in a name. –  Hierarchy imposes a topological structure on the name space, which

constrains the names that can be assigned to an object. –  There may be search rules for how to utilize the “hints.”

•  Every thing up to this point is applicable to all naming in computing systems.

© John Day, 2013 7 Rights Reserved

The Pouzin Society

. 7

What about IPC?

•  The IPC Model says that an IPC Process is simply an application process dedicated to doing IPC. What does this tell us about that? –  There are three kinds of Application Entities:

•  A Flow Allocator AE to manage the creation of flows, •  A Data Transfer AE to instantiate a flow, and •  RIB Daemon AE to maintain shared state among the IPC Processes •  Managing IPC with the (N-1)-DIF/layer

© John Day, 2013 8 Rights Reserved

The Pouzin Society

. 8

What is the “Application” of an IPC Process?

•  What is the main work of an IPC Process? Management! –  Not, Data transfer.

•  Managing the IPC within the Layer. –  Resource Allocation –  Maintaining a Resource Information Base –  Routing –  Security Management

Relaying/Muxing PDU Protection

Data Transfer

Allocation Mngmt

Update Daemon

© John Day, 2013 9 Rights Reserved

The Pouzin Society

. 9

What about IPC Naming? •  An IPC Process has an Application Process Name, give it a synonym of

scope limited to the layer, and if structured to facilitate forwarding. •  Commonly called an address

•  There are three local identifiers: –  A Flow Allocator AE Instance Identifier,

•  Commonly called a port-id –  A Data Transfer AE Instance Identifier, and

•  Commonly called a connection-endpoint-identifier –  RIB Daemon AE to maintain shared state among the IPC Processes

•  Traditionally routing update.

•  This coupled with delta-t has major implications (later).

Address CEP-ids

Flows

Port-ids

bindings

© John Day, 2013 10 Rights Reserved

The Pouzin Society

. 10

Names for IPC

•  An Address is a synonym for the IPC Process, with scope restricted to the layer and structured to facilitate forwarding within the layer/DIF. –  A port-id is the handle returned to the calling application to refer to this

instance of communication, unique within its AE. –  A connection-endpoint-id (CEP-id) identifies the shared state of one end

of a flow/connection, unique within its AE. •  A connection-id identifies flows between the same two IPC Processes,

formed by concatenating CEP-ids, unique within the pair •  Distributed Application Name is globally unambiguous name for the

set of all Application Processes in a Distributed Application, e.g. DIF.

Port-ids

CEP-ids

Address IPC Process

© John Day, 2013 11 Rights Reserved

The Pouzin Society

. 11

To Summarize

•  All identifiers except address and connection-id are local to the IPC Process. –  Scope of the address is the Layer. –  Scope of the connection-id is the participants in the connection.

•  None has more scope than it needs.

Common Term Scope Application Term

Application Process Name “Global” (unambiguous) Application Process Name

Address Layer (unambiguous) Synonym for IPC Process’ Application Process Name

Port-id Allocation AE (unique) Allocation AE-Instance-Identifier

Connection-endpoint-identifier Data Transfer AE (unique) Data Transfer AE Instance-Identifier

Connection-id Src/Dest Data Transfer AE (unique)

Concatentation of data-transfer-AE-instance-identifiers

DIF Management Updates IPC Process (unambiguous) AE-identifier

© John Day, 2013 12 Rights Reserved

The Pouzin Society

. 12

Principles of Naming and Addressing: I

•  Application names indicate what, not where. –  Hence, names are organized to put similar “whats” near each other. –  So what “whats” do we use?

•  There is no single answer. Depends on the purpose and the importance of look up performance generally in a distributed directory.

–  The Scope of an Application Name Space is defined by the chain of databases pointed to by the Directory Forwarding Table.

•  Different Application Name Spaces may name the same objects. –  It is here that the concepts of query and name merge

•  Some schemes will produce multiple results; some a unique result •  Given the move to greater granularity more schemes will be useful in keeping

them tractable and useful. –  The only requirement for IPC is that some collection of synonyms be

associated with an application process and their mapping to the directory are made known.

© John Day, 2013 13 Rights Reserved

The Pouzin Society

. 13

Principles of Naming and Addressing: II •  Addresses indicate where – Not quite

–  Within a DIF, the “what” of interest is “forwarding.” Synonyms are assigned to facilitate forwarding, call it a forwarding-id or f-id.

–  If the DIF has a sufficiently large number of members (or maybe if it doesn’t) to make F-ids more useful.

•  They are structured to reflect which elements are near each other for some concept of near. This is an address.

•  This is an “address” in the sense of its normal usage, expressing “where” without indicating “how to get there.”

–  An address is an synonym for an IPC Process whose scope is the DIF and structured to be useful within the layer.

–  “where” is just one kind of “what”

–  Application Names and Addresses are simply two different means for locating an object in different contexts. In this case, the object is an IPC Process.

© John Day, 2013 14 Rights Reserved

The Pouzin Society

. 14

Principles of Naming and Addressing: III

•  A F-id (or address) is only unambiguous within the scope of a layer. –  And no more, otherwise this leads to overloading the semantics of the

address and leads to problems –  MAC addresses are 3 times longer than they need to be.

•  Routes are sequences of (node) addresses. –  Source routing is a “male thing,” not willing to stop and ask directions.

•  The relation of node and point of attachment is relative and hence irrelevant.

•  A node address is an (N)-F-id; •  A point of attachment address is an (N-1)-F-id.

–  A layer routes on its address. A node address routes this layer’s address, the point of attachment address is the address of the node in the layer below and is routed by the layer below, not by this layer.

© John Day, 2013 15 Rights Reserved

The Pouzin Society

. 15

Principles of Naming and Addressing: IV •  Since the address is structured to facilitate its use within the layer, it must be

assigned by the layer. –  Only the layer knows how to make the synonym useful.

•  Any addresses assigned by anyone else are not addresses. •  Names of systems are useful management functions, but not for forwarding.

–  Names of Hosts are distinct and not related to addressing. •  An address should not be constructed by concatenating an identifier in this

layer with one from the lower layer, i.e. don’t embed MAC addresses in IP addresses.

–  Why? This construction is called a pathname, hence it is route-dependent! –  Addresses in adjacent layers should be completely independent. –  Hierarchical address assignment within a layer organizes addresses in this layer, not

the layer below. –  Each layer is a level of indirection.

© John Day, 2013 16 Rights Reserved

The Pouzin Society

. 16

Topology and Addressing

John Day 30 March 2004

A topologist is someone who can’t tell a coffee cup from a doughnut -very old math joke

© John Day, 2013 17 Rights Reserved

The Pouzin Society

. 17

Protocols and Addressing Plans

•  Protocols merely carry addresses •  The Design of Addressing Spaces is independent of the design of the Protocol.

–  The only constraint is the representation of the address must be compatible with the syntax of the protocol, i.e it has to fit in the field.

•  A Protocol can potentially carry an address from any plan •  The Interpretation of Addresses by a protocol is policy.

© John Day, 2013 18 Rights Reserved

The Pouzin Society

. 18

Decoupling Address Spaces •  We also found that the Network (Node) Address space must be de-coupled from the

Point of Attachment Address spaces. •  The natural approach would be to form addresses hierarchically from the bottom by

concatenating the lower layer address with some local suffix or local identifier. –  This approach has been used often in Operating System IPC naming and in file system naming. –  This only works if there is a single path to the object named. –  This does not yield the necessary de-coupling. However, an algorithmic relation between the

two is still desirable (but not required). •  For example, any address space constructed by embedding MAC addresses potentially has problems.

•  This decoupling is analogous to the decoupling of virtual address space from a physical address space in Operating Systems.

–  The virtual address space has greater scope, spans multiple physical address spaces, e.g. caches, main memory, disk address space, etc. and multiple physical addresses may map to the same virtual address (in this case at different times).

© John Day, 2013 19 Rights Reserved

The Pouzin Society

. 19

“Node Addressing Does Not ���Solve our Addressing Problems”

–  This claim is often made as a reason for not using Saltzer’s paper as the solution. •  The rationale is that if a node is multi-homed it will generally be to two different

providers and so routing can’t accommodate the vast difference. •  This statement presumes any one or multiple assumptions:

–  Node addresses would have to be provider-based as current addresses are. •  This assumes that addresses are formed as above and there is no decoupling

–  Provider based addresses are the only way to provide location-dependence. –  Peering between providers only occurs so early in routing that it would be impossible to re-

route. •  All of these can be true, but none of them has to be true.

–  As someone once said, “If you don’t do it right, it won’t work.” •  In particular, this rationale does not consider as a possibility the de-coupling between the

node addresses and point of attachment addresses we have found to be necessary.

© John Day, 2013 20 Rights Reserved

The Pouzin Society

. 20

The Solution Lies in figuring out what “Location Dependent” means.

•  Earlier we had a little fun with the fact that the ARPANet was developed by BBN in Boston. –  Addresses in Boston aren’t very helpful in finding your way. One has to know where things are. –  In cities like Chicago, you don’t. An ordered pair is sufficient to find anything.

•  Even Manhattan isn’t that regular.

•  Grids are nice addressing plans for cities, but they aren’t very useful for networks. •  Virtual addresses in Operating Systems are often described as an abstraction of the physical

memory available to the computer. •  What is the abstraction that would give us a sense of location but be independent of the

route? –  We need something that is invariant with respect to changes in the graph.

•  A Topology is a structure that can be invariant with respect to such changes. –  Perhaps addresses should be topologically dependent more than location dependent. –  That’s nice, but what does it mean?

© John Day, 2013 21 Rights Reserved

The Pouzin Society

. 21

“In Networking, when we say “topology”���we don’t mean what mathematicians mean. ���Their definition doesn’t apply to networks.”

–  Another statement often heard. •  The first part of this statement is true.

–  In networking we are sloppy in our use of the term. 95% of the time one hears the word “topology,” the speaker means “graph.”

•  A topology is a mapping with particular properties, i.e. one to one and onto. –  Whenever one speaks of the structure of a single network, one is talking about the graph of the

network. •  The topology of a network must refer to a mapping between networks, in effect a

collection of graphs, or a property of a collection of graphs. •  Enough pedantics, what does this have to do with addressing?

–  Topology can provide the abstraction we need to decouple the node address space from the point of attachment address space.

•  But the second part is false. Lets see why and how.

© John Day, 2013 22 Rights Reserved

The Pouzin Society

. 22

Definition of a Topology

•  First we need some definitions: –  A topology is defined as follows: Let X be a non-empty set and T a collection of subsets of X

such that: •  A1. X ∈ T •  A2. Ø ∈ T •  A3. If O1, O2, . . ., On ∈ T, then O1 ∩ O2 ∩ . . . ∩ On ∈ T •  A4. If for each a ∈ I, Oa ∈ T, then ∪ α ∈ I Oa ∈ T.

–  A homeomorphism is a continuous function, F: X --> Y, which is one-to-one and onto and maps each point x ∈ X to a point y ∈ Y and F-1 exists and is continuous. This mapping ensures that points “near” x are mapped to points “near” y.

–  A topology is defined by those properties preserved by homeomorphism.

© John Day, 2013 23 Rights Reserved

The Pouzin Society

. 23

Interpreting the Math

•  That is probably about as clear as mud. •  Basically the definitions say that a topology maps two points “near” each other

in one space to two points “near” each other in the other space in a continuous manner. Often likened in popular expositions to distorting a rubber sheet.

–  Or distorting a doughnut into a coffee cup.

© John Day, 2013 24 Rights Reserved

The Pouzin Society

. 24

Two Additional Useful Properties: Orientation

•  An address space, A, may be said to have an orientation if and only if there exists a relation R on A that is a partial ordering, which is defined to be reflexive, antisymmetric, and transitive.

–  There exists a relation R on a set A such that ∀ x, y, and z in A •  x R x, •  if x R y and y R x, then x = y •  if x R y and y R z then, x R z.

–  An ordering on a set A is a correspondence Γ = (G, A, A) –  where A is the source and target of G and ∍ ∀ (x,y) ∈ G is an order relation on A. If R is an

order relation on A, it has a graph which is an ordering on A. Where the graph, G, is defined as follows:

–  G is said to be a graph if every element of G is an ordered pair, i.e. if the relation: –  (∀ z) (z ∈ G => (z is an ordered pair) is true.

© John Day, 2013 25 Rights Reserved

The Pouzin Society

. 25

Two Additional Useful Properties: Distance

•  The topological structure of address spaces can be made more useful for routing if the topology also has one or both additional properties:

•  It is a metrizable topology, i.e there is a distance function, with the properties: –  d:x -> y, where x,y ∈ X such that

•  d(x,y) ≥ 0 •  d(x,y) = 0 iff x = y •  d(x,y) = d(y,x) •  d(x,z) ≤ d(x,y) + d(y,z)

•  Routing algorithms based on a topology with either of these properties will improve its ability to make routing decisions without having to fully calculate routes or without having to calculate them at all.

Definitions used here are after Bourbaki, Nicolas. 1991. Elements of Mathematics: General Topology. Springer-Verlag, Berlin. Originally published as Éléments de Mathématique: Topologie générale 1971 or most any topology text.

© John Day, 2013 26 Rights Reserved

The Pouzin Society

. 26

Topology of an Address Space

•  If a topology is a mapping, then what are we mapping between? •  The topology formed by the mapping between the address space and elements

of a layer. This determines the topological structure of a layer. •  An address space has a topological structure.

–  This may be difficult to grasp at first. (it was for me.)

–  For example, consider the Chicago example. Once it was determined to use a grid, the addressing plan was fixed. From then on, the address of a new building could be known long before it or even the street it was on was built. The addressing plan determined what address was assigned based on where it was.

–  Network address spaces should function in a similar way. •  Good theory, but show me.

© John Day, 2013 27 Rights Reserved

The Pouzin Society

. 27

A Hierarchical Address Space •  There are undoubtedly many useful topologies and we expect researchers to explore the

properties of a variety of topological structures. •  Address spaces are point sets, Networks are finite graphs.

–  Must have many more points in the address space than nodes in the graph to ensure that any “where” can be distinguished.

•  One that is fairly common and fulfills our requirement for abstraction is a hierarchical address space:

–  View the address space as a set of strings, which designate subsets and subsets of subsets. Subsets also contain strings.

–  The strings are formed in the typical means of defining hierarchical names, e.g. •  <domain-id> ::= {fixed length string} •  <address> ::= <host-id> | <domain-id>*<host-id>

–  Domains are mapped to specific Subnets according to an abstraction of the connectivity.

© John Day, 2013 28 Rights Reserved

The Pouzin Society

. 28

Topological Structure between Layers

•  There may also be a topological relation between the address space of the (N)-layer and the spaces of the (N-1)-layers that cover it.

–  The relation between some layers may be weaker than others. •  For example, between an application space and a lower layer may be a topology but generally would not

maintain a relation of distance or orientation.

•  If we have an architecture of common layers then: •  From the point of view of the user of a layer, every destination appears to be directly connected. •  Now if we go just below the layer boundary, the connectivity now appears to be a collection of

interconnected layers or subnets. •  Form a topological mapping between the elements of the (N)-layer and the graph formed by the elements

of the (N-1)-layers that cover the (N)-layer. •  This will yield an addressing structure from which given two addresses one can tell simply by comparing

the addresses whether the two are near each other.

–  For this topology, the only routes that must be stored are those local to a subnet and those that are short-cuts.

© John Day, 2013 29 Rights Reserved

The Pouzin Society

. 29

The Topology of the Address Space affects the Nature of the Graph

•  An effective address space reflects an abstraction of the desirable structure of the network and the structure of the network will be expanded to fit the address space.

•  Much the way the grid for land in the Midwest “coaxes” the roads to follow the grid. There are exceptions, but not many.

•  Does this mean that routing will work better if the network is built to reflect the topology?

–  Yes, just like it easier to find an address in Chicago if the streets all “go through.” •  Isn’t that constraining?

–  Yes and no. One is rewarded when the structure of the network and the structure of the address space coincide.

•  There is some work, if on occasion they don’t. •  If they don’t most of the time, then a wrong choice was made in the structure of the address space.

© John Day, 2013 30 Rights Reserved

The Pouzin Society

. 30

Topology and Mobile Subnets

•  Three classes of mobility –  Mobile wrt fixed subnet, e.g. traditional cellular –  Ad hoc networks with an external frame of reference, e.g. hosts with GPS. –  True ad hoc networks

•  Many ad hoc networks are small enough that flat addressing is adequate. •  However, topological addresses will improve routing efficiency for even small nets..

•  For traditional cellular-like networks, the mobile nodes are assigned addresses relative to the topology of the fixed net.

•  Ad hoc networks with an external frame of reference have a natural basis for a topological structure.

•  For true ad hoc networks, some objective function is required as a basis for measuring “nearness,” e.g. signal strength, neighbors, delay, etc. From this various clustering techniques can be used to derive a topology.

–  A topic for research.

© John Day, 2013 31 Rights Reserved

The Pouzin Society

. 31

Multicast and Anycast Identifiers

•  A Multicast identifier is a name of a set that when referenced returns all members of the set. The members of the set are addresses or multicast identifiers.

•  An Anycast or generic identifier is the name of a set that when referenced returns a single member of the set, usually based on some criteria that may depend on the requestor, e.g. nearest. The members of the set are addresses or anycast identifiers.

•  These multicast and anycast identifiers name sets. They are not addresses. They do not and cannot indicate “where.” They must be considered names.

•  Any topological properties that can be exploited are properties of the members of the sets, not of the set itself.

•  Sets of limited scope may imply some range of location, not clear how useful this is. •  Invite counterexamples!

© John Day, 2013 32 Rights Reserved

The Pouzin Society

. 32

Topological Addresses in Multi-provider Networks I��� Or How would this be used in the real world.

•  Picture a symmetrically terraced valley. The deeper in the valley the greater the bandwidth.

•  Terraces near the top of the valley represent corporate or regional networks. The valley floor is inhabited by “tier one” providers.

•  As an example:

Tier 1

Tier 2 or Tier 1 Regional

Tier 3

High-b/w Appl

Lower b/w appl Global Addr Space

Global Addr Space

Provider or Corporate Address Space

Provider Addr Space

Provider Addr Space

Perhaps more than one provider address space. Notice provider systems can’t see hosts or vice versa.

© John Day, 2013 33 Rights Reserved

The Pouzin Society

. 33

Multiprovider Networks II

•  Start with one or two end system layers with global provider independent but topologically dependent addresses.

•  The number of layers would depend on admin and bandwidth range considerations.

•  Each provider defines its own address space for its “top” layer. This address space is topological according to the demands of the provider.

–  A regional provider might cover only a part of the global space, –  not necessarily contiguous.

–  A “tier 1” provider would reach most of the global space. –  The number of layers in a provider network will depend on its design goals and the bandwidth

range it supports. •  The Global Layers ride on top of the Provider Layers.

–  The provider can make the topology between the global space and its top space as easy or difficult to compute as desired. Providers would only see host’s routers belonging to its provider.

© John Day, 2013 34 Rights Reserved

The Pouzin Society

. 34

Multiprovider Networks (cont.)

•  Corporate networks would look like Provider Networks, except: –  Hosts that do not to need global visibility would operate directly on top of the

Provider or Corporate Layers. •  In essence, NATless NAT.

–  NATs are a non-sequitor in this model.

–  Hosts could have both global and local visibility by having an extra layer. •  Directory resolves address mapping to appropriate layer. •  However, this could represent a potential security threat, i.e. an application using

protocols in both.

•  Similarly, provider management systems would operate on provider layers. –  Would be invisible to customers.

© John Day, 2013 35 Rights Reserved

The Pouzin Society

. 35

Conclusions

•  We have made considerable progress in understanding naming and addressing, but there remains much to do.

–  Other topologies should be explored. –  Developing addressing plans for specific networks and for common use. –  Developing routing algorithms that use topological addresses

•  Interestingly current algorithms uses addresses only as labels, not as addresses. –  and more. . . .