Subject: [vnrg] Logical vs. virtual

From: Didier Colle <[email-masked]>
Date: Thu, 15 Jul 2010 15:31:48 +0200

Dear all,

Joe raised the issue of logical vs. virtual.
I believe it is worth spending a separate thread on clarifying this point.

At the bottom of this email is my proposal.

Joe stated:
> 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) Should I interprete this as logical referring to physical boundaries?
2) This does not define what virtual means or how it differs from 
logical --> we probably need to formally define virtual inside the vnrg 
to know what we are speaking about exactly.
3) I agree with "not all logical things are virtual". However, "MOST 
virtual things TEND to be logical" --> are there any counter examples in 
which virtual things are not logical?

This example also reminded me of the Virtual Router Redundancy Protocol 
(VRRP): see RFC3768.
Not sure what made the authors to call it virtual rather than logical.

According to Juniper (sorry for mentioning company names...): 
http://www.juniper.net/techpubs/software/junos/junos74/swconfig74-routing/html/logical-router-overview2.html
>
>
>     Logical Routers and Virtual Routers
>
> A virtual router is not the same as a logical router. A virtual router 
> is a type of simplified routing instance that has a single routing 
> table. A logical router is a partition of a physical router and can 
> contain multiple routing instances and routing tables. For example, a 
> logical router can contain multiple virtual router routing instances.
>

Virtual memory handling in computer systems: 
http://en.wikipedia.org/wiki/Virtual_memory#Segmented_virtual_memory
>
>
>       Page tables
>
> Almost all implementations use page tables 
> <http://en.wikipedia.org/wiki/Page_table> to translate the virtual 
> addresses seen by the application program into physical addresses 
> <http://en.wikipedia.org/wiki/Physical_address> (also referred to as 
> "real addresses") used by the hardware to process instructions. Each 
> entry in the page table contains a mapping for a virtual page to 
> either the real memory address at which the page is stored, or an 
> indicator that the page is currently held in a disk file. (Although 
> most do, some systems may not support use of a disk file for virtual 
> memory.)
>
> Systems can have one page table for the whole system or a separate 
> page table for each application. If there is only one, different 
> applications which are running at the same time 
> <http://en.wikipedia.org/wiki/Multiprogramming> share a single virtual 
> address space, i.e. they use different parts of a single range of 
> virtual addresses. Systems which use multiple page tables provide 
> multiple virtual address spaces—concurrent applications think they are 
> using the same range of virtual addresses, but their separate page 
> tables redirect to different real addresses.
>
>
>       [edit
>       <http://en.wikipedia.org/w/index.php?title=Virtual_memory&action=edit&section=4>]
>
>

Conclusion: not really clear definition of both terms.

My proposal:
* Logical is opposite of physical: logical always requires mapping to 
physical. Of course, logical can be mapped on some other logical thing 
that itself needs mapping to physical. More formally, this mapping is a 
general function: 1) nothing should prohibit mapping multiple logical 
names/addresses to a single physical address/thing, 2) not all physical 
entities must have a logical counterpart. Also the source and target of 
the mapping should not be restricted in terms of types: names can be 
mapped onto other names or names can be mapped onto address for examples.
* Virtual is a specialized form of logical, as the virtualization 
technology still needs to map a virtual entity onto a single 
non-virtualized (physical or isolated uniquely identifiable logical) 
entity, while guaranteeing isolation. More formally, this mapping is an 
injection of tupples of <entity, virtual instance ID> onto entities of 
the same type (thus not mapping of names into addresses for example: 
virtualization of name space, means mapping <virtual name, instance ID> 
on to unique identifiable <name>, virtualization of virtual memory (I 
would rather call this logical memory) page tables <virtual page number 
(seen by application), instance ID> on to <system wide page number>).

Kind regards,

Didier

-- 
Didier Colle
Ghent University - IMEC - IBBT
Department of Information Technology (INTEC)
Gaston Crommenlaan 8 bus 201, B-9050 Gent (Ledeberg)
Email: [email-masked]
MSN: [email-masked]
Skype: didiercolle
Tel. +32 9 331 4970
Fax. +32 9 331 4899
Mobile: +32 473 295655
WWW: www.ibcn.intec.UGent.be

---

From: Joe Touch <[email-masked]>
Date: Thu, 15 Jul 2010 08:18:23 -0700

Hi, Didier,

(again, speaking as a participant only),

IMO,

> At the bottom of this email is my proposal.
...
> Conclusion: not really clear definition of both terms.

Agreed.

> My proposal:
> * Logical is opposite of physical:

The same could be said of virtual.

 > logical always requires mapping to
> that itself needs mapping to physical.

I think the same is true here as well.

I tend to think of a logical device as not really adding to the 
capabilities of a physical one, though, whereas a virtual one seems to 
(at least to me).

Maybe these are really just two aspects of a single thing, i.e., I would 
differentiate between:

- a device which does not map 1:1 to a physical entity
(could be a part of one, a group of many, or a group of parts)

- a device which provides supports virtual networking

Since we call the latter "virtual networking" (the name of this RG), I 
would propose that the latter would be the virtual device, and the 
former be the logical one.

This matches the term 'logical' in many other places, e.g., logical 
disks (which can be part of a single disk, or a group [ala RAID], or a 
group of parts [RAID done on disk partitions]).

> More formally, this mapping is a

I agree with the above.

> entity, while guaranteeing isolation.

I don't think of it as a 'specialized form', but rather the fact that a 
single virtual router CANNOT be mapped onto a single physical device 
with no other logical components.

I.e., a virtual router needs a base router to connect to the links of 
the tunnel. A virtual host needs a base router (as well) for the same 
reason.

> More formally, this mapping is an

This part is a stretch to me, though.

Joe

---

From: Didier Colle <[email-masked]>
Date: Thu, 15 Jul 2010 18:36:26 +0200

Dear Joe, all,

> capabilities of a physical one, though, whereas a virtual one seems to 

Please explain. What capabilities are you referring to?
So far, I think most people on the list have expressed a virtual network 
having the same or a subset of the capabilities of the network. Do you 
agree with that? And remains that statement true for a virtual device 
rather than virtual network?

 From your previous post today, these capabilities are not apparent.
> 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. 
Is that a characteristic/capability of the virtual network (VN) or of 
the underlying existing network?

>
> Maybe these are really just two aspects of a single thing, i.e., I 
> would differentiate between:
>

Hmm... so the resulting question is: What is virtual networking? ;-)

> I don't think of it as a 'specialized form', but rather the fact that 
> a single virtual router CANNOT be mapped onto a single physical device 
Really? In your previous post  you said: "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 router forwards packets between 
virtual links. " So, virtual link is encapsulated (e.g., by tagging with 
a VLAN-ID?) to allow multiplexing: is this something the virtual router 
cannot do (although invisible to the user/owner of the virtual router)? 
Do you need for that another "base" router?

Kind regards,

Didier

---

From: Joe Touch <[email-masked]>
Date: Thu, 15 Jul 2010 09:51:19 -0700

(again, speaking as an individual participant):

> rather than virtual network?

A physical network can't be relocated while running. A virtual one can.
A physical network doesn't ensure separation from other physical 
networks; a virtual one should, IMO.

> the underlying existing network?

The VN. Without the VN, no such emulation would occur, IMO.

> Hmm... so the resulting question is: What is virtual networking? ;-)

I had proposed a definition - which is a network composed of tunnels. 
The rest, IMO, is largely in support of that one distinguishing 
characteristic.

> cannot do (although invisible to the user/owner of the virtual router)?

A virtual router can encapsulate, but doesn't know what to do with the 
encapsulated packet, IMO. At some point the packet needs to go out a 
physical interface, and I don't think virtual routers own any physical 
interfaces.

> Do you need for that another "base" router?

No; that's what I needed the base router for in the first place.

Joe

---

From: Sunay Tripathi <[email-masked]>
Date: Mon, 19 Jul 2010 12:40:09 -0700

On 07/15/10 09:51 AM, Joe Touch wrote:
<SNIP>
 >
 > A physical network can't be relocated while running. A virtual one
 > can. A physical network doesn't ensure separation from other physical

Joe makes the critical point. The virtual network can be cloned,
snapshotted and migrated as a whole (something that I am working on
right now) but the virtual network lacks the separation of a physical
network which is very important feature to have.

Take the simple example: If I have a bunch of hosts connected via a
dedicated 24 port 100Mbps switch and 23 machines are trying to bang
on the 24th machine, then I only hurt myself or the packet drop is 
related to just my traffic. Now on the other hand if I apply
pn2vn (physical network 2 virtual network) to my network and move
to a 10Gbps physical switch and apply the same workload,
I am going to impact someone else (sharing the 10Gbps network with
me) and possibly not see any packet loss.

Now implementing this across one switch might be a vendor implementation
but I think making this work across a collection of switches and hosts
might benefit from a standard.

Cheers,
Sunay