1 Internet Networking Spring 2006 Tutorial 3 Ad-hoc networks TBRPF (based on IETF tutorials on TBRPF)
2 Ad-hoc networks Ad-hoc networks characteristics: Set of wireless mobile nodes with mobile infrastructure. No centralized access points. Each host performs also the role of a router. Multi-hop network. Main issues in MANET routing: Dynamic topology due to high mobility. No fixed infrastructure. Lower bandwidth than in wired networks. Importance of energy consumption. Areas of application: Battlefield/emergency. Personal communication. Group communication (exhibitions, conferences).
3 Ad-hoc network - Example
4 Topology-Based Reverse Path Forwarding (TBRPF) %20Infocom% pdf %20Infocom% pdf TBRPF is a proactive, link-state protocol. Reverse Path Forwarding technique is used as a basis for the TBRPF. A router R1 forwards a packet to a neighbor R2 only if R1 is on the shortest path from R2 to the source of the packet. Each router R needs to know which of its neighbors view R as a “next hop” to the source. RPF guarantees that every router receives every packet exactly once. Unlike in OSPF that broadcasts LSPs over all links, TBRPS broadcasts LSPs along a tree rooted at the source u of the update (separate tree for each source): Each update is sent along a single path to each node. Leaves of the broadcast tree rooted at source u need not forward updates generated by u (in typical ad hoc networks, most nodes are leaves). Unlike in OSPF, where number of updates is O(|E|), in TBRPF the number of updates sent is O(|V|).
5 TBRPF Overview The algorithm uses a parent-child relationship to maintain a dynamically changing min-hop broadcast tree rooted at each update source (advertising router). The parent p(u) for source u is the next node on the min-hop path to node u. TBRPF-FT (Full Topology) Each node is provided with the state of every link in the network. Useful for sparse topologies and when full topology information is needed. TBRPF-PT (Partial Topology): Each node is provided only with enough information to compute min-hop paths to all other nodes. Useful for dense topologies. A node reports only updates for links in the node’s source tree (consisting of min-hop paths to all other nodes). Thus each node reports only links in part of its source tree, called the reportable sub-tree.
6 TBRPF - Data Structures A link-state update (u,v,c,sn) is generated by node u c is the cost of link (u,v) (c = ∞ means link is down) sn is the sequence number for the update Each node i maintains the following information: A topology table TT_i containing link-state updates The list of neighbor nodes: N_i For each update source u: A parent node: p_i(u) = next hop on min-hop path to u. A list of children: children_i(u). Sequence no. of latest update from source u: sn_i(u).
7 TBRPF Messages Link-State Update message: Contains one or more updates (u,v,c,sn) and is either broadcast to all neighbors or unicast to a single neighbor (if there is only one child). New Parent: Informs a neighbor that it has been selected as a parent with respect to one or more sources. A New Parent message is sent only to select a neighbor as a parent for a source that is 2 hops away, and only when the neighbor is not already a parent. Hello, Neighbor, Neighbor ACK: For neighbor discovery.
8 TBRPF Operation A link-state update (u,v,c,sn) is accepted at node i if: received from the parent p_i(u) sn is larger than the corresponding link-state entry in the topology table at node i. If node i accepts a link-state update or discovers a new neighbor or a state change for an existing link to a neighbor, node i enters the update into its topology table forwards the update to all neighbors in children_i(u), where u is the source of the update computes new parents for all sources by running Dijkstra sends the appropriate New Parent and Cancel Parent messages. If node i receives a New Parent(u, sn) message from neighbor j, node i adds j to the list children_i(u) node i sends j all updates originating from u that have a larger sequence number than sn. Thus only updates not yet known by node j are sent to j. Updates for failed links and unreachable links (i.e., links (u,v) such that p_i(u) is NULL) are deleted after some holding time.
9 TBRPF Neighbor Discovery HELLOs are differential. When the topology does not change, HELLOs do not contain any neighbor IDs. Periodic updates are used to report neighbor states to new neighbor. However: Periodic updates are less frequent than HELLO messages. A node need not report all of its neighbors in periodic updates, since the detection of new neighbors and lost neighbors is handled by HELLO messages. When a neighbor changes state, its ID is included in at most 3 consecutive HELLOs, in one of three lists: NEIGHBOR REQUEST, NEIGHBOR UP, NEIGHBOR DOWN. All current neighbors will either hear about the state change, or will miss 3 consecutive HELLOs and declare the link LOST. If a bidirectional link becomes unidirectional, both nodes will detect the link failure within 3 HELLOs.
10 Overview of TBRPF-PT Each node computes its source tree based on partial topology information received from its neighbors. Each node reports only part of its source tree, called its reportable sub-tree, defined as the links (u,v) of its source tree such that children(u) is nonempty. Differential TREE UPDATEs are transmitted (e.g., every 1 sec with HELLOs), which report changes (i.e., additions and deletions), to its reportable sub-tree. Periodic TREE UPDATEs are transmitted (e.g., every 5 sec), which describe the entire reportable sub-tree. Message types in TBRPF-PT TREE UPDATE: Reports differential and periodic updates for the reportable source tree. NEW PARENT: Selects a new parent for a source that is 2 hops away. DELETE PARENT: Sent by the parent/source to delete redundant parents. They are ACKed by TREE UPDATE messages (which report the link to the parent).
11
12
13
14
15
16 TBRPF - conclusions TBRPF requires no periodic broadcast of updates. TBRPF uses delivery trees such that only the non- leaf nodes in these trees need to forward updates. TBRPF uses small Hello messages. TBRPF allows arbitrary link metrics which need not be symmetric. Paths can be computed based on any objective: minimum hop: p_i(u) is the next hop to u shortest with respect to metric c Either hop-by-hop or source routing can be used.