160 likes | 190 Views
Internet Networking Spring 2006. Tutorial 3 Ad-hoc networks TBRPF (based on IETF tutorials on TBRPF). Ad-hoc networks. Ad-hoc networks characteristics: Set of wireless mobile nodes with mobile infrastructure. No centralized access points.
E N D
Internet Networking Spring 2006 Tutorial 3 Ad-hoc networks TBRPF (based on IETF tutorials on TBRPF)
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).
Topology-Based Reverse Path Forwarding (TBRPF) • http://www.cs.jhu.edu/~dholmer/600.647/papers/TBRPF%20-%20Infocom%201999.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|).
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.
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).
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.
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.
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.
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).
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.