Hi, all, Speaking as an *individual* contributor (i.e., with my RG-chair hat "off"): On 6/8/2010 9:57 AM, Joe Touch wrote:
----------------------------------------------------- Starting questions: 1. how do you define VNs?
I define them as composed of virtual routers, virtual hosts, and virtual links.
A virtual link is the easiest to define - it is a tunnel over some existing network path, i.e., with an additional layer of encapsulation that is used solely for the VN, but which is otherwise not needed.
A virtual host is a source or sink of packets on a virtual link. A virtual router forwards packets between virtual links.Note that nothing about these definitions specifies a boundary, i.e., inside a single machine, etc. I don't think those boundaries are meaningful in the base Internet anyway.
I.e., IMO, virtual has nothing per se to do with "logical". I.e., a set of devices on a network that source/sink packets with a single network address act as a single logical host. That's not 'virtual' to me, though most 'virtual' things tend to be logical, not all logical things are virtual.
1.a. what are the key components?
See above; virtual link, virtual router, and virtual host.
1.b. what is the relationship between these components?
See above; hosts source/sink packets, and routers forward them. When a router sources/sinks packets, IMO it acts as a host on the network for those messages.
1.c. what is the characteristic behavior/capability of the resulting system?
I think that the defining characteristic of a VN is that it allows an existing network to concurrently emulate another, distinct and separate network.
2. what are VNs used for?
Protection: keeping concurrent uses of a network from interfering with each other.
Abstraction: presenting the application (whether user layer, routing, etc.) with a simpler or desired topology that need not match the physical connections. E.g., as with DHTs, hypercubes, rings, etc. This also includes presenting a topology that is either much larger or smaller than the physical, i.e., that doesn't match in scale either.
Sharing: allowing a single set of resources to be concurrently used for multiple, separate purposes.
NB: these are identical to the reasons why virtual memory is useful
3. what are they key challenges?
> for each challenge: > - define the challenge > - explain why it is hard > - provide some references to those working on solutionsChallenge: mapping logical components onto virtual ones - which I consider the 'provisioning' step of a conventional physical network.
Why it's hard: like any mapping, this is a distributed resource allocation problem, difficult to optimize fully, and challenging to coordinate without requiring global locks.
Who's working on this: this is known as "mapping" VNs, and many groups have worked on it over the years; it's also one of the least interesting problems, IMO, since it is not particularly new in the virtual domain (i.e., it exists in physical networks too)
-- Challenge: Clean, clear architecture supporting VNs.Why it's hard: done wrong, VNs require users to reimplement some protocols at the user layer (e.g., as with DHTs, DTNs, etc. - usually transport protocols). done wrong, VNs also require extraordinary measures to restore existing capabilities, such as traceroute, ping, etc.
Who's working on this: our group (X-Bone), Violin, Akari (IMO) --
Note Well: Messages sent to this mailing list are the opinions of the senders and do not imply endorsement by the IETF.