Difference between revisions of "The Wunet Protocol"

From ARL Wiki
Jump to navigationJump to search
m
Line 38: Line 38:
  
 
             H11 H12 H13    H21 H22 H23    ...
 
             H11 H12 H13    H21 H22 H23    ...
              |   |   |       |   |   |
+
            | ^ | ^ | ^    | ^ | ^ | ^
               -------        -------
+
            v | v | v |     v | v | v |
                  |              |
+
               1  2  3      1  2  3
                  R1 ------------ R2
+
 
 +
                  R1 4-----------> R2
 +
                    <-----------4
 +
                6| 5\            6/|5
 +
                  v  \          / v
 
...
 
...
                   R4 ------------ R3
+
                   R4 ------------> R3
 +
                    <------------
  
                  |               |
+
            | ^ | ^ | ^    | ^ | ^ | ^
              -------        -------
+
            v | v | v |     v | v | v |
              |   |   |       |   |   |
 
 
             H11 H12 H13    H21 H22 H23    ...
 
             H11 H12 H13    H21 H22 H23    ...
 
</pre>
 
</pre>
Line 83: Line 87:
  
 
= Basic Multicast DATA Packet Routing =
 
= Basic Multicast DATA Packet Routing =
 +
 +
RT:  (vnet, dst) --> (qnum, quantum, links)
 +
 +
{| border=1 cellspacing=0 cellpadding=3
 +
! colspan="4" | R1 || colspan="4" | R2 || colspan="4" | R3 || colspan="4" | R4
 +
|-
 +
! vnet||dst||qnum||link
 +
! vnet||dst||qnum||link
 +
! vnet||dst||qnum||link
 +
! vnet||dst||qnum||link
 +
|- align="center"
 +
| 1 || 11 || 0 || 1 || 1 || 21 || 0 || 1 || 1 || 31|| 0 || 1 || 1 || 41|| 0 || 1
 +
|- align="center"
 +
| 1 || 12 || 0 || 2 || 1 || 22 || 0 || 2 || 1 || 32|| 0 || 2 || 1 || 42|| 0 || 2
 +
|- align="center"
 +
| 1 || 13 || 0 || 3 || 1 || 23 || 0 || 3 || 1 || 33|| 0 || 3 || 1 || 43|| 0 || 3
 +
|- align="center"
 +
| 2 || 11 || 0 || 1 || 2 || 21 || 0 || 1 || 2 || 31|| 0 || 1 || 2 || 41|| 0 || 1
 +
|- align="center"
 +
| 2 || 12 || 0 || 2 || 2 || 22 || 0 || 2 || 2 || 32|| 0 || 2 || 2 || 42|| 0 || 2
 +
|- align="center"
 +
| 2 || 13 || 0 || 3 || 2 || 23 || 0 || 3 || 2 || 33|| 0 || 3 || 2 || 43|| 0 || 3
 +
|}
  
  
  
 
= Basic SUBSCRIBE/UNSUBSCRIBE Routing =
 
= Basic SUBSCRIBE/UNSUBSCRIBE Routing =
 +
 +
VT:  vnet --> (plnk, qnum, quantum, links)
 +
 +
{| border=1 cellspacing=0 cellpadding=3
 +
! colspan="4" | R1 || colspan="4" | R2 || colspan="4" | R3 || colspan="4" | R4
 +
|-
 +
! vnet||plnk||qnum||link
 +
! vnet||plnk||qnum||link
 +
! vnet||plnk||qnum||link
 +
! vnet||plnk||qnum||link
 +
|- align="center"
 +
| 1 || 0 || 1 || 1-6 || 1 || x21 || 1 || 1-6 || 1 || x31|| 1 || 1-6 || 1 || x41|| 1 || 1-6
 +
|- align="center"
 +
| 2 || 4 || 2 || 1-4 || 2 || x22 || 2 || 1-4 || 2 || x32|| 2 || 1-4 || 2 || x42|| 2 || 1-4
 +
|}
 +
  
 
= Route Learning =
 
= Route Learning =

Revision as of 23:57, 3 February 2010

Template:Newpage

History of Wunet

The Wunet Protocol is a simplified version of the Forest Protocol. Like Forest, Wunet is an overlay network that supports unicast and multicast traffic. But Wunet only supports only a rudimentary form of multicast and there is no provision for error control (e.g., dropped bits). It was developed primarily for educational purposes during the Fall 2009 semester for a course in the Computer Science and Engineering Department at Washington University in St. Louis.

This page describes the features of Wunet and gives several examples. These features include:

  • Network Virtualization
    • Wunet is a virtual network overlayed over an IP network in which each Wunet packet is carried inside a UDP packet.
  • Unicast and Multicast Packets
    • There are unicast and multicast DATA packets and multicast SUBSCRIBE and UNSUBSCRIBE multicast packets.
  • Virtual Link Rate Regulation
    • Each virtual link XXX
  • Route Learning
    • A router will add a reverse route for any incoming packet with a source address not found in the routing table
  • No-Route Flooding
    • A unicast packet with no matching route table entry is forwarded by flooding.
  • Upstream Packet Propagation
    • A multicast SUBSCRIBE packet with no matching route table entry is propagated toward the root of its multicast tree.
  • Spoofing Protection
    • XXX

A version of Wunet that is targeted at conventional processors has been implemented in C++. We plan to implement a GPE-only version of Wunet on the GENI deployment of the SPP as a precursor to implementing a fastpath verion involving the NPR.

A Wunet Virtual Network

File:Wunet-simple.png
A Simple Network
labels:  hosts, routers, links

             H11 H12 H13     H21 H22 H23    ...
             | ^ | ^ | ^     | ^ | ^ | ^
             v | v | v |     v | v | v |
               1   2   3       1   2   3

                  R1 4-----------> R2
                     <-----------4
                 6| 5\            6/|5
                  v   \           / v
...
                  R4 ------------> R3
                     <------------

             | ^ | ^ | ^     | ^ | ^ | ^
             v | v | v |     v | v | v |
             H11 H12 H13     H21 H22 H23    ...

A Wunet network contains host nodes, router nodes and links that interconnect the nodes. The figure (right) shows four virtual routers directly connected to each other and each router is directly connected to three hosts.

Each host has one virtual link, and each router has six virtual links. A link between two nodes is virtual in the sense that it is actually a path in the underlying actual network. An example of the actual network might be an IP network where a virtual link is a communication path between two UDP endpoints (i.e., an IP address and UDP port number).

File:Wunet-simple-overlay.png
The Overlay Network

In the figure shown right, XXX

A Wunet Packet

Basic Unicast DATA Packet Routing

File:Wunet-pkt-hdr.png
Wunet Packet Header

A Wunet packet header is four words (16 bytes) long. Note that this version of Wunet has no field for detecting packet or packet header corruption. Damaged packets are silently lost if the underlay network is unreliable (e.g. UDP).

The first word of a Wunet header has XXX fields XXX

Wunet Packet Encapsulation

File:Wunet-encap.png
Wunet Packet Encapsulation

For the the remainder of this page, we assume that each Wunet packet is encapsulated in a UDP packet. XXX

Basic Multicast DATA Packet Routing

RT: (vnet, dst) --> (qnum, quantum, links)

R1 R2 R3 R4
vnet dst qnum link vnet dst qnum link vnet dst qnum link vnet dst qnum link
1 11 0 1 1 21 0 1 1 31 0 1 1 41 0 1
1 12 0 2 1 22 0 2 1 32 0 2 1 42 0 2
1 13 0 3 1 23 0 3 1 33 0 3 1 43 0 3
2 11 0 1 2 21 0 1 2 31 0 1 2 41 0 1
2 12 0 2 2 22 0 2 2 32 0 2 2 42 0 2
2 13 0 3 2 23 0 3 2 33 0 3 2 43 0 3


Basic SUBSCRIBE/UNSUBSCRIBE Routing

VT: vnet --> (plnk, qnum, quantum, links)

R1 R2 R3 R4
vnet plnk qnum link vnet plnk qnum link vnet plnk qnum link vnet plnk qnum link
1 0 1 1-6 1 x21 1 1-6 1 x31 1 1-6 1 x41 1 1-6
2 4 2 1-4 2 x22 2 1-4 2 x32 2 1-4 2 x42 2 1-4


Route Learning

Flooding

Upstream SUBSCRIBE Packet Propagation

Spoofing Protection

Wunet Concepts

A Wunet network consists of a set of nodes consisting of hosts and router nodes. Each node has a 32-bit virtual node address (vaddr). By convention hosts have virtual node addresses between 1 and 99, and routers have addresses that are typically multiples of 100 (e.g., 300). A multicast address is any 32-bit address with its high-order bit set (i.e., any decimal number greater than 2^31-1 = 2,147,483,647).

  • Virtual Node
    • Vaddr (Virtual address)
  • Vnet (Virtual Network)
    • Vlink (Virtual Link)
  • Subscribe/Unsubscribe

Wunet Features

  • UDP Encapsulation:
    • Each packet is encapsulated in UDP packet
  • Virtual Addresses:
    • There are unicast addresses(e.g., 21, 200) and
    • Multicast addresses(e.g., 2200110011 = x832303BB) addresses.
      • Any address with high-order bit set is mcast addr; i.e., any decimal number greater than 2^31-1 = 2,147,483,647.
  • Packet Types: DATA, SUBSCRIBE, UNSUBSCRIBE
  • Routing:
    • Packets are routed by (vnet, vaddr)
  • Route Learning:
    • A router will add a reverse route for any incoming packet with a source address not found in the routing table
  • Joining/Leaving Multicast Group:
    • A host joins/leaves a multicast group using SUBSCRIBE/UNSUBSCRIBE
  • Multicast tree is formed for each vnet through SUBSCRIBE packets that travel up the multicast tree
  • Missing Routes:
    • Unicast Data: Flood all downstream links when there is no route.
    • Multicast Data: Send subscriptions upstream when there is no route.