draft-ietf-manet-lanmar-00.txt | draft-ietf-manet-lanmar-01.txt | |||
---|---|---|---|---|
IETF MANET Working Group Mario Gerla | IETF MANET Working Group Mario Gerla | |||
INTERNET-DRAFT Xiaoyan Hong | INTERNET-DRAFT Xiaoyan Hong | |||
Expiration: May 17, 2001 Li Ma | Expiration: November 17, 2001 Li Ma | |||
University of California, Los Angeles | University of California, Los Angeles | |||
Guangyu Pei | Guangyu Pei | |||
Rockwell Science Center | Rockwell Science Center | |||
November 17, 2000 | May 17, 2001 | |||
Landmark Routing Protocol (LANMAR) for Large Scale Ad Hoc Networks | Landmark Routing Protocol (LANMAR) for Large Scale Ad Hoc Networks | |||
<draft-ietf-manet-lanmar-00.txt> | <draft-ietf-manet-lanmar-01.txt> | |||
Status of This Memo | Status of This Memo | |||
This document is an Internet-Draft and is NOT offered in accordance | This document is an Internet-Draft and is NOT offered in accordance | |||
with Section 10 of RFC2026, and the author does not provide the IETF | with Section 10 of RFC2026, and the author does not provide the IETF | |||
with any rights other than to publish as an Internet-Draft. This | with any rights other than to publish as an Internet-Draft. This | |||
document is a submission to the Mobile Ad-hoc Networks (manet) | document is a submission to the Mobile Ad-hoc Networks (manet) | |||
Working Group of the Internet Engineering Task Force (IETF). | Working Group of the Internet Engineering Task Force (IETF). | |||
Comments should be submitted to the Working Group mailing list at | Comments should be submitted to the Working Group mailing list at | |||
"manet@itd.nrl.navy.mil". Distribution of this memo is unlimited. | "manet@itd.nrl.navy.mil". Distribution of this memo is unlimited. | |||
skipping to change at page 2, line 4 | skipping to change at page 2, line 4 | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
Abstract | Abstract | |||
The Landmark Routing Protocol (LANMAR) utilizes the concept of | The Landmark Routing Protocol (LANMAR) utilizes the concept of | |||
"landmark" for scalable routing in large, mobile ad hoc networks. | "landmark" for scalable routing in large, mobile ad hoc networks. | |||
It relies on the notion of group mobility: i.e., a logical group | It relies on the notion of group mobility: i.e., a logical group | |||
(for example a team of coworkers at a convention) moves in a | (for example a team of coworkers at a convention) moves in a | |||
coordinated fashion. The network address of a node is <Group ID, | coordinated fashion. The existence of such logical group can be | |||
Host ID>. A landmark is dynamically elected in each group. The | efficiently reflected in the addressing scheme. It assumes that | |||
route to a landmark is propagated throughout the network using a | an IP like address is used consisting of a group ID (or subnet ID) | |||
Distance Vector mechanism. Separately, each node in the network | and a host ID, i.e. <Group ID, Host ID>. A landmark is dynamically | |||
uses a "scoped" routing algorithm (e.g., FSR) to learn about routes | elected in each group. The route to a landmark is propagated | |||
within a given (max number of hops) scope. To route a packet to a | throughout the network using a Distance Vector mechanism. | |||
destination outside its scope, a node will direct the packet to the | Separately, each node in the network uses a "scoped" routing | |||
landmark corresponding to the group ID of such destination. Once | algorithm (e.g., FSR) to learn about routes within a given (max | |||
the packet is within the scope of the landmark, it will typically | number of hops) scope. To route a packet to a destination outside | |||
be routed directly to the destination. Remote groups of nodes are | its scope, a node will direct the packet to the landmark | |||
corresponding to the group ID of such destination. Once the packet | ||||
is within the scope of the landmark, it will typically be routed | ||||
directly to the destination. Remote groups of nodes are | ||||
"summarized" by the corresponding landmarks. The solution to | "summarized" by the corresponding landmarks. The solution to | |||
drifters (i.e., nodes outside of the scope of their landmark) is | drifters (i.e., nodes outside of the scope of their landmark) is | |||
also handled by LANMAR. Landmark dynamic election enables LANMAR | also handled by LANMAR. Landmark dynamic election enables LANMAR | |||
to cope with mobile environments. By using a "scoped" routing | to cope with mobile environments. Thus, by using the truncated | |||
scheme, we dramatically reduce routing table size and update | local routing table and the "summarized" landmark distance vector, | |||
overhead in large nets. LANMAR is well suited to provide an | LANMAR dramatically reduces routing table size and update overhead | |||
efficient and scalable routing solution in large, mobile, ad hoc | in large nets. LANMAR is well suited to provide an efficient and | |||
environments in which group behavior applies and high mobility | scalable routing solution in large, mobile, ad hoc environments in | |||
renders traditional routing schemes inefficient. | which group behavior applies and high mobility renders traditional | |||
routing schemes inefficient. | ||||
Contents | Contents | |||
Status of This Memo . . . . . . . . . . . . . . . . . . . . . . . 1 | Status of This Memo . . . . . . . . . . . . . . . . . . . . . . . 1 | |||
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 | Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Changes ....................................................... 5 | |||
2.1. General Terms . . . . . . . . . . . . . . . . . . . . . 4 | ||||
2.2. Specification Language . . . . . . . . . . . . . . . . . 5 | ||||
3. Protocol Applicability . . . . . . . . . . . . . . . . . . . . 5 | 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.1. Networking Context . . . . . . . . . . . . . . . . . . . 5 | 3.1. General Terms . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.2. Protocol Characteristics and Mechanisms . . . . . . . . 6 | 3.2. Specification Language . . . . . . . . . . . . . . . . . 5 | |||
4. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 8 | 4. Protocol Applicability . . . . . . . . . . . . . . . . . . . . 6 | |||
4.1. Protocol Descriptions . . . . . . . . . . . . . . . . . 8 | 4.1. Networking Context . . . . . . . . . . . . . . . . . . . 6 | |||
4.2. Landmark Election . . . . . . . . . . . . . . . . . . . 9 | 4.2. Protocol Characteristics and Mechanisms . . . . . . . . 6 | |||
4.3. Drifters . . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
5. Protocol Specifications . . . . . . . . . . . . . . . . . . . 10 | 5. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 8 | |||
5.1. Data Structures . . . . . . . . . . . . . . . . . . . 10 | 5.1. Protocol Descriptions . . . . . . . . . . . . . . . . . 8 | |||
5.1.1 Landmark Status . . . . . . . . . . . . . . . . . 11 | 5.2. Landmark Election . . . . . . . . . . . . . . . . . . . 9 | |||
5.1.2 Landmark Distance Vector . . . . . . . . . . . . 11 | 5.3. Drifters . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
5.1.3 Drifter List . . . . . . . . . . . . . . . . . . 11 | 6. Protocol Specifications . . . . . . . . . . . . . . . . . . . 10 | |||
5.2. LANMAR Update Message Format . . . . . . . . . . . . 11 | 6.1. Data Structures . . . . . . . . . . . . . . . . . . . 11 | |||
5.2.1 Description of the fields . . . . . . . . . . . . 12 | 6.1.1 Landmark Status tuple . . . . . . . . . . . . . . 11 | |||
5.3. Processing Landmark Updates . . . . . . . . . . . . . . 13 | 6.1.2 Landmark Distance Vector . . . . . . . . . . . . 11 | |||
5.3.1 Originating a Landmark in a Subnet . . . . . . . 13 | 6.1.3 Drifter List . . . . . . . . . . . . . . . . . . 11 | |||
5.3.2 Receiving Landmark Updates . . . . . . . . . . . 14 | 6.1.4 Neighbor List . . . . . . . . . . . . . . . . . . 12 | |||
5.3.3 Winner Competition . . . . . . . . . . . . . . . 14 | 6.2. LANMAR Update Message Format . . . . . . . . . . . . 12 | |||
5.4. Processing Drifter Updates . . . . . . . . . . . . . . . 14 | 6.2.1 Description of the fields . . . . . . . . . . . . 12 | |||
5.4.1 Originating a Drifter Entry . . . . . . . . . . . 14 | 6.3. Processing Landmark Updates . . . . . . . . . . . . . . 13 | |||
5.4.2 Receiving Drifter Updates . . . . . . . . . . . . 15 | 6.3.1 Originating a Landmark in a Subnet . . . . . . . 13 | |||
6.3.2 Receiving Landmark Updates . . . . . . . . . . . 14 | ||||
6.3.3 Winner Competition . . . . . . . . . . . . . . . 14 | ||||
6.4. Processing Drifter Updates . . . . . . . . . . . . . . . 14 | ||||
6.4.1 Originating a Drifter Entry . . . . . . . . . . . 15 | ||||
6.4.2 Receiving Drifter Updates . . . . . . . . . . . . 15 | ||||
6.4.3 Removing a Drifter Entry . . . . . . . . . . . . 15 | ||||
6.5. Processing Neighbor List . . . . . . . . . . . . . . . . 15 | ||||
6. Data Packet Forwarding . . . . . . . . . . . . . . . . . . . . 15 | 7. Data Packet Forwarding . . . . . . . . . . . . . . . . . . . . 15 | |||
7. Discussion about Storage and Processing Overhead for Drifters 15 | 8. Discussion about Storage and Processing Overhead for Drifters 16 | |||
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 16 | Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
References . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | References . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
Chair's Address . . . . . . . . . . . . . . . . . . . . . . . . . 17 | Chair's Address . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
1. Introduction | 1. Introduction | |||
This document describes the Landmark Routing Protocol (LANMAR) [1,2] | This document describes the Landmark Routing Protocol (LANMAR) [1,2] | |||
developed by the Wireless Adaptive Mobility (WAM) Laboratory [4] at | developed by the Wireless Adaptive Mobility (WAM) Laboratory [4] at | |||
University of California, Los Angeles. | Computer Science Department, University of California, Los Angeles. | |||
The concept of landmark routing was first introduced in wired area | The concept of landmark routing was first introduced in wired area | |||
networks [6]. The original scheme required predefined multi-level | networks [6]. The original scheme required predefined multi-level | |||
hierarchical addressing. The hierarchical address of each node | hierarchical addressing. The hierarchical address of each node | |||
reflects its position within the hierarchy and helps to find a route | reflects its position within the hierarchy and helps to find a route | |||
to it. Each node knows the routes to all the nodes within its | to it. Each node knows the routes to all the nodes within its | |||
hierarchical partition. Moreover, each node knows the routes to | hierarchical partition. Moreover, each node knows the routes to | |||
various "landmarks" at different hierarchical levels. Packet | various "landmarks" at different hierarchical levels. Packet | |||
forwarding is consistent with the landmark hierarchy and the path | forwarding is consistent with the landmark hierarchy and the path | |||
is gradually refined from the top level hierarchy to lower levels | is gradually refined from the top level hierarchy to lower levels | |||
as a packet approaches its destination. | as a packet approaches its destination. | |||
LANMAR borrows the concept of landmark and extends it to the | LANMAR borrows the concept of landmark and extends it to the | |||
wireless ad hoc environment. LANMAR scheme does not require | wireless ad hoc environment. LANMAR scheme does not require | |||
predefined hierarchical address, but it uses the notion of landmarks | predefined hierarchical address, but it uses the notion of landmarks | |||
to keep track of logical subnets in which the members have a | to keep track of logical subnets in which the members have a | |||
commonality of interests and are likely to move as a "group" | commonality of interests and are likely to move as a "group" | |||
(e.g., brigade in the battlefield, colleagues in the same | (e.g., brigade in the battlefield, a group of students from same | |||
organization, a group of students from same class, or a team of | class and a team of co-workers at a convention). Each such | |||
co-workers at a convention and a tank battalion in the battlefield). | logical group has an elected landmark. For each group, | |||
underlying "scoped" routing algorithm will provide a one-level | ||||
Each such logical group has an elected landmark. For each group, | ||||
underlining "scoped" routing algorithm will provide a one-level | ||||
scope. The routing update packets are restricted only within the | scope. The routing update packets are restricted only within the | |||
scope. Accurate routing information for nodes within scope is | scope. Accurate routing information for nodes within scope is | |||
maintained. The routing information to remote nodes (nodes outside | maintained. The routing information to remote nodes (nodes outside | |||
the node's scope) is "summarized" by the corresponding landmarks. | the node's scope) is "summarized" by the corresponding landmarks. | |||
Thus, the LANMAR scheme largely reduces the routing table size and | Thus, the LANMAR scheme largely reduces the routing table size and | |||
the routing update traffic overhead. It greatly improves | the routing update traffic overhead. It greatly improves | |||
scalability. | scalability. | |||
In addition, in order to recover from landmark failures, | In addition, in order to recover from landmark failures, | |||
a "landmark" node is elected in each subnet. Landmark election | a "landmark" node is elected in each subnet. Landmark election | |||
provides a flexible way for the LANMAR protocol to cope with a | provides a flexible way for the LANMAR protocol to cope with a | |||
dynamic and mobile network. The protocol also provides a solution | dynamic and mobile network. The protocol also provides a solution | |||
for drifters (Nodes that are outside the fisheye scopes of the | for drifters (Nodes that are outside the fisheye scopes of the | |||
landmarks of their logical groups). Extra storage, processing and | landmarks of their logical groups). Extra storage, processing and | |||
line overhead will be incurred for landmark election and drifter | line overhead will be incurred for landmark election and drifter | |||
bookkeeping. However, the design of the algorithms provides | bookkeeping. However, the design of the algorithms provides | |||
solutions without compromising scalability. For example, the | solutions without compromising scalability. For example, the | |||
routing overhead for handling drifters is typically small if the | routing overhead for handling drifters is typically small if the | |||
fraction of drifting nodes is small. More analysis is given in | fraction of drifting nodes is small. More analysis is given in | |||
Section 7. | Section 8. | |||
The LANMAR runs on top of a proactive routing protocol. It also | The LANMAR runs on top of a proactive routing protocol. It | |||
requires that the underlining routing protocol support the scoped | requires that the underlying routing protocol support the scoped | |||
subnetworking. Fisheye State Routing Protocol (FSR) [7,8] is | subnetworking. Fisheye State Routing Protocol (FSR) [7,8] is | |||
such a protocol that supports LANMAR. In FSR, the link state | such a protocol that supports LANMAR. In FSR, the link state | |||
protocol is used within the scope. However, the fisheye scope | protocol is used within the scope. The fisheye scope | |||
technique can also be applied to a distance vector type protocol, | technique can also be applied to a distance vector type protocol, | |||
such as DSDV [3], in which the hop distance can be used to | such as DSDV [3], in which the hop distance can be used to | |||
bind the scope for routing message updating. The main advantage of | bind the scope for routing message updating. The main advantage of | |||
LANMAR is that the routing table includes only the nodes within the | LANMAR is that the routing table includes only the nodes within the | |||
scope and the landmark nodes. This feature greatly improves | scope and the landmark nodes. This feature greatly improves | |||
scalability by reducing routing table size and update traffic O/H. | scalability by reducing routing table size and update traffic O/H. | |||
Thus the Landmark Routing Protocol provides an efficient and | Thus the Landmark Routing Protocol provides an efficient and | |||
scalable routing solution for a mobile, ad hoc environment while | scalable routing solution for a mobile, ad hoc environment while | |||
keeping line and storage overhead (O/H) low. Moreover, the | keeping line and storage overhead (O/H) low. Moreover, the | |||
election provides a much needed recovery from landmark failures. | election provides a much needed recovery from landmark failures. | |||
2. Terminology | 2. Changes | |||
2.1. General Terms | Major changes from version 00 to version 01: | |||
- A destination sequence number for each landmark is used to | ||||
ensure loop-free updates for a particular landmark. | ||||
- Landmark updates are propagated in separate messages, instead of | ||||
being piggybacked on local routing updates. This modification | ||||
decouples landmark routing from the underlying proactive routing | ||||
protocol. | ||||
3. Terminology | ||||
3.1. General Terms | ||||
This section defines terminology used in LANMAR. | This section defines terminology used in LANMAR. | |||
node | node | |||
A MANET router that implements Landmark Routing Protocol. | A MANET router that implements Landmark Routing Protocol. | |||
neighbor | neighbor | |||
Nodes that are within the radio transmission range. | Nodes that are within the radio transmission range. | |||
scope | scope | |||
A zone that is bounded by hop distances. | A zone that is bounded by hop distances. | |||
skipping to change at page 5, line 16 | skipping to change at page 5, line 37 | |||
neighbor | neighbor | |||
Nodes that are within the radio transmission range. | Nodes that are within the radio transmission range. | |||
scope | scope | |||
A zone that is bounded by hop distances. | A zone that is bounded by hop distances. | |||
host protocol | host protocol | |||
A proactive protocol underlines the Landmark Routing Protocol. | A proactive protocol underlies the Landmark Routing Protocol. | |||
subnet | subnet | |||
Logical groups of nodes that present similar motion behavior. | Logical groups of nodes that present similar motion behavior. | |||
group | group | |||
This is used interchangeably with subnet. | This term is used interchangeably with subnet. | |||
2.2. Specification Language | 3.2. Specification Language | |||
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [5]. | document are to be interpreted as described in RFC 2119 [5]. | |||
3. Protocol Applicability | 4. Protocol Applicability | |||
3.1. Networking Context | 4.1. Networking Context | |||
LANMAR is best suited for large scale mobile ad hoc wireless | LANMAR is best suited for large scale mobile ad hoc wireless | |||
networks. The landmark scheme on top of "scoped" routing algorithm | networks. The landmark scheme on top of "scoped" routing algorithm | |||
has large advantages in reducing routing update packet size and | has large advantages in reducing routing update packet size and | |||
keeping progressive accurate routes to remote nodes. It achieves | keeping progressive accurate routes to remote nodes. It achieves | |||
high data packet to routing packet ratio. Moreover, the fact that | high data packet delivery ratio. Moreover, the fact that the route | |||
the route error is weighted by distance obviously reduces the | error is blurred by distance obviously reduces the sensitivity to | |||
sensitivity to network size. | network size. | |||
LANMAR is also suited for high mobility ad hoc wireless networks. | LANMAR is also suited for high mobility ad hoc wireless networks. | |||
This is because in a mobility environment, a change on a link far | This is because in a mobility environment, a change on a link far | |||
away from the source does not necessarily cause a change in the | away from the source does not necessarily cause a change in the | |||
routing table at the source and that all the information about | routing table at the source and that all the information about | |||
remote nodes is summarized by landmarks. | remote nodes is summarized by landmarks. | |||
3.2. Protocol Characteristics and Mechanisms | 4.2. Protocol Characteristics and Mechanisms | |||
* Does the protocol provide support for unidirectional links?(if so, | * Does the protocol provide support for unidirectional links?(if so, | |||
how?) | how?) | |||
Yes. Since LANMAR is on top of a host protocol, if the host | No. | |||
protocol supports unidirectional links, e.g., the FSR protocol, | ||||
LANMAR can use the unidirectional link states as well. | ||||
* Does the protocol require the use of tunneling? (if so, how?) | * Does the protocol require the use of tunneling? (if so, how?) | |||
No. | No. | |||
* Does the protocol require using some form of source routing? (if | * Does the protocol require using some form of source routing? (if | |||
so, how?) | so, how?) | |||
No. | No. | |||
* Does the protocol require the use of periodic messaging? (if so, | * Does the protocol require the use of periodic messaging? (if so, | |||
how?) | how?) | |||
Yes. The LANMAR periodically broadcasts landmark information | Yes. The LANMAR periodically broadcasts landmark information | |||
to its neighbors. But the updates are piggybacked in the host | to its neighbors. | |||
routing update messages. | ||||
* Does the protocol require the use of reliable or sequenced packet | * Does the protocol require the use of reliable or sequenced packet | |||
delivery? (if so, how?) | delivery? (if so, how?) | |||
No. As the packets are sent periodically, they need not be | No. As the packets are sent periodically, they need not be | |||
sent reliably. | sent reliably. | |||
* Does the protocol provide support for routing through a multi- | * Does the protocol provide support for routing through a multi- | |||
technology routing fabric? (if so, how?) | technology routing fabric? (if so, how?) | |||
skipping to change at page 7, line 30 | skipping to change at page 7, line 46 | |||
No. | No. | |||
* Does the protocol function proactively? (if so, how?) | * Does the protocol function proactively? (if so, how?) | |||
Yes. The LANMAR proactively maintains landmark information | Yes. The LANMAR proactively maintains landmark information | |||
at each node. | at each node. | |||
* Does the protocol provide loop-free routing? (if so, how?) | * Does the protocol provide loop-free routing? (if so, how?) | |||
Yes. As the protocol uses routing paths learned from the host | Yes. For in-scope destinations, the protocol uses routing | |||
protocol for in-scope destinations, if the host protocol | paths learned from the host protocol. If the host protocol | |||
provides loop-free routing, so does LANMAR. For out-scope | provides loop-free routing, e.g., FSR and DSDV, so does LANMAR. | |||
destinations, only routes to landmarks are used. Because these | For out-scope destinations, only routes to landmarks are used. | |||
routes are DSDV, it is loop free. When a packet is | Because these routes are DSDV, it is loop free. When a packet | |||
approaching the destination, in-scope routes are used again. | approaches the destination, in-scope routes are used again. | |||
* Does the protocol provide for sleep period operation?(if so, how?) | * Does the protocol provide for sleep period operation?(if so, how?) | |||
Yes. However, this requires TDMA MAC layer support. The | Yes. However, this requires TDMA MAC layer support. The | |||
router can be scheduled to sleep during idle periods. | router can be scheduled to sleep during idle periods. | |||
* Does the protocol provide some form of security? (if so, how?) | * Does the protocol provide some form of security? (if so, how?) | |||
Yes. When a node broadcasts routing update message, only | Yes. When a node broadcasts routing update message, only | |||
entries of in-scope nodes and landmarks are included. This | entries of in-scope nodes and landmarks are included. This | |||
will prevent other remote nodes from being heard. | will prevent other remote nodes from being heard. | |||
* Does the protocol provide support for utilizing multi-channel, | * Does the protocol provide support for utilizing multi-channel, | |||
link-layer technologies? (if so, how?) | link-layer technologies? (if so, how?) | |||
Yes. In fact, the multi-channel can be used to separate | Yes. In fact, the multi-channel can be used to separate | |||
routing messages from user data packets. | routing messages from user data packets. | |||
4. Protocol Overview | 5. Protocol Overview | |||
4.1. Protocol Descriptions | 5.1. Protocol Descriptions | |||
As mentioned in Section 1, the landmark concept we adopt here uses | As mentioned in Section 1, the landmark concept we adopt here uses | |||
the notion of logical subnets in which the members have a | the notion of logical subnets in which the members have a | |||
commonality of interests and are likely to move as a "group". | commonality of interests and are likely to move as a "group". | |||
Each logical subnet has one node serving as a "landmark" of that | Each logical subnet has one node serving as a "landmark" of that | |||
subnet. The protocol requires that the landmark of each subnet have | subnet. The protocol requires that the landmark of each subnet have | |||
the knowledge of all the members in its group. The LANMAR protocol | the knowledge of all the members in its group. The LANMAR protocol | |||
also uses a scope at each node. The size of the scope is a | also uses a scope at each node. The size of the scope is a | |||
parameter measured in hop distance. It is chosen in such a way that | parameter measured in hop distance. It is chosen in such a way that | |||
if a node is at the center of a subnet, the scope will cover the | if a node is at the center of a subnet, the scope will cover the | |||
majority of the subnet members. If the shape of a subnet is likely | majority of the subnet members. If the shape of a subnet is likely | |||
to be a cycle, the center node's scope will cover all the members of | to be a cycle, the center node's scope will cover all the members of | |||
the subnet. If this center node is elected as a landmark, it | the subnet. If this center node is elected as a landmark, it | |||
fulfills the requirement of the protocol. If a landmark does not | fulfills the requirement of the protocol. The elected landmark | |||
locate at the center, there will be some members drifting off | uses a destination sequence number to ensure its routing entry | |||
its scope. The landmark will keep records for these drifters. | update is loop-free. The landmarks are propagated in a | |||
distance vector mechanism. Each node maintains a distance vector | ||||
The LANMAR relies on an underlining proactive protocol with the | for landmarks of all the subnets. The size of the landmark distance | |||
ability of providing "scoped" routing. The LANMAR itself is a | ||||
distance vector type protocol. Each node maintains a distance | ||||
vector for landmarks of all the subnets and a distance vector for | ||||
drifters in its subnet. The distance vectors for landmarks and | ||||
drifters are exchanged through piggybacking in the periodical | ||||
routing update packets (link state or distance vector) of the | ||||
underling routing protocol. The size of the landmark distance | ||||
vector equals to the number of logical subnets and thus landmark | vector equals to the number of logical subnets and thus landmark | |||
nodes. Both sizes of the two distance vectors are small. | nodes. If a landmark does not locate at the center, there will be | |||
some members drifting off its scope. The landmark will keep a | ||||
distance vector for drifters of its group. The distance vectors | ||||
for landmarks and drifters are exchanged among neighbors in | ||||
periodical routing update packets. | ||||
The routing update scheme uses the "scoped" routing algorithm. | The LANMAR relies on an underlying proactive protocol with the | |||
The main idea is summarized below. Each node broadcasts routing | ability of providing "scoped" routing. In the scoped routing, each | |||
information periodically to its immediate neighbors. In each | node broadcasts routing information periodically to its immediate | |||
update packet, the node sends routing table entries within its | neighbors. In each update packet, the node sends routing table | |||
scope and also piggybacks the landmark and drifter distance | entries within its scope. The host routing protocol uses sequence | |||
vectors. Sequence numbers are used in LANMAR update packets. | numbers for routing entries. Each node advances its sequence | |||
Each node advances its sequence number before sending an update | number before sending an update packet. Through the exchange | |||
packet. Through the exchange process, the table entries with | process, the table entries with larger sequence numbers replace | |||
larger sequence numbers replace the ones with smaller sequence | the ones with smaller sequence numbers. | |||
numbers. | ||||
Let's take, for example, the FSR as our host protocol. For nodes | Let's take, for example, the FSR as our host protocol. For nodes | |||
within the scope, the updating is in a certain frequency. But | within the scope, the updating is in a certain frequency. But | |||
for nodes beyond the scope, the update frequency is reduced to | for nodes beyond the scope, the update frequency is reduced to | |||
zero; Only the update frequency of the landmark nodes remains | zero; Only the update frequency of the landmark nodes remains | |||
unaltered. As a result, each node maintains accurate routing | unaltered. As a result, each node maintains accurate routing | |||
information for in-scope nodes and keep routing directions to the | information for in-scope nodes and keep routing directions to the | |||
landmark nodes for out-scope nodes, or say, for remote groups. | landmark nodes for out-scope nodes, or say, for remote groups. | |||
A packet directed to a remote destination initially aims at the | A packet directed to a remote destination initially aims at the | |||
landmark of that remote group; as it gets closer to the landmark, | landmark of that remote group; as it gets closer to the landmark, | |||
it may eventually switch to the accurate route to the destination | it may eventually switch to the accurate route to the destination | |||
provided by in-scope nodes of the destination. | provided by in-scope nodes of the destination. | |||
4.2. Landmark Election | 5.2. Landmark Election | |||
Dynamic election/re-election of landmark node is essential for | Dynamic election/re-election of landmark node is essential for | |||
LANMAR to work in a wireless mobile environment. Basically, each | LANMAR to work in a wireless mobile environment. Basically, each | |||
node tracks other nodes of its group in its scope and computes | node tracks other nodes of its group in its scope and computes | |||
"weight", e.g. the number of the nodes it has found. At the | "weight", e.g. the number of the nodes it has found. At the | |||
beginning of the LANMAR, no landmark exists. Protocol LANMAR | beginning of the LANMAR, no landmark exists. Protocol LANMAR | |||
only uses the host protocol functionality. As host routing | only uses the host protocol functionality. As host routing | |||
computation progresses, one of the nodes will learn (from | computation progresses, one of the nodes will learn (from | |||
the host protocol's routing table) that more than a certain number | the host protocol's routing table) that more than a certain number | |||
of group members (say, T) are in its scope. It then proclaims | of group members (say, T) are in its scope. It then proclaims | |||
itself as a landmark for this group and adds itself to the landmark | itself as a landmark for this group and adds itself to the landmark | |||
distance vector. The node broadcasts the landmark information to | distance vector. Landmarks broadcast the election weights to | |||
the neighbors jointly with the host update packets. | the neighbors jointly with the landmark update packets. | |||
When more than one node declares itself as a landmark in the same | When more than one node declares itself as a landmark in the same | |||
group, as the landmark information floods out, each node will | group, as the landmark information floods out, each node will | |||
perform a winner competition procedure. Only one landmark for each | perform a winner competition procedure. Only one landmark for each | |||
group will survive and it will be elected. To avoid flapping | group will survive and it will be elected. To avoid flapping | |||
between landmarks (very possible in a mobile situation), we use | between landmarks (very possible in a mobile situation), we use | |||
hysteresis in the replacement of an existing landmark. I.e., the | hysteresis in the replacement of an existing landmark. I.e., the | |||
old Landmark is replaced by the new one only if its weight is, say | old Landmark is replaced by the new one only if its weight is, say | |||
less than 1/2 of the weight of the current election winner. Once | less than 1/2 of the weight of the current election winner. Once | |||
ousted, the old leader needs the full weight superiority to be | ousted, the old leader needs the full weight superiority to be | |||
skipping to change at page 10, line 6 | skipping to change at page 10, line 19 | |||
landmarks in a single group. The transient period may be actually | landmarks in a single group. The transient period may be actually | |||
the norm at high mobility. This transient behavior can be | the norm at high mobility. This transient behavior can be | |||
drastically reduced by using hysteresis. | drastically reduced by using hysteresis. | |||
When a landmark dies, its neighbors will detect the silence after | When a landmark dies, its neighbors will detect the silence after | |||
a given timeout. The neighbors of the same group will then take | a given timeout. The neighbors of the same group will then take | |||
the responsibilities as landmarks and broadcast new landmark | the responsibilities as landmarks and broadcast new landmark | |||
information. A new round of landmark election then floods over | information. A new round of landmark election then floods over | |||
the entire network. | the entire network. | |||
4.3. Drifters | 5.3. Drifters | |||
Typically, all members in a logical subnet are within the scope of | Typically, all members in a logical subnet are within the scope of | |||
the landmark, thus the landmark has a route to all members. It may | the landmark, thus the landmark has a route to all members. It may | |||
happen, however, that some of the members "drift off" the scope, | happen, however, that some of the members "drift off" the scope, | |||
for example, a tank in a battalion may become stranded or lost. | for example, a tank in a battalion may become stranded or lost. | |||
To keep track of such "drifters", i.e., to make the route to them | To keep track of such "drifters", i.e., to make the route to them | |||
known to the landmark, the following modification to the routing | known to the landmark, the following modification to the routing | |||
table exchange is necessary. Each node, say i, on the shortest | table exchange is necessary. Each node, say i, on the shortest | |||
path between a landmark L and a drifter l associated with that | path between a landmark L and a drifter l associated with that | |||
landmark keeps a distance vector entry to l. Note that if l is | landmark keeps a distance vector entry to l. Note that if l is | |||
within the scope of i, this entry is already included in the | within the scope of i, this entry is already included in the | |||
routing table of node i. When i transmits its distance vector to | routing table of node i. When i transmits its distance vector to | |||
neighbor, say j, then j will retain the entry to member l only if | neighbor, say j, then j will retain the entry to member l only if | |||
d(j,l) is smaller than the scope or d(j,L) is smaller than d(i,L). | d(j,l) is smaller than the scope or d(j,L) is smaller than d(i,L). | |||
The latter condition occurs if j is on the shortest path from i | The latter condition occurs if j is on the shortest path from i | |||
(and therefore from l) to L. This way, a path is maintained from | (and therefore from l) to L. This way, a path is maintained from | |||
the landmark to each of its members, including drifters. | the landmark to each of its members, including drifters. The | |||
procedure starts from l, at the time when a node finds it becomes | ||||
a drifter. It informs the landmark hop by hop about its presence. | ||||
The occurrences of drifters are dynamic in a mobile network. In | The occurrences of drifters are dynamic in a mobile network. In | |||
order to timely remove the staled drifter information, the time | order to timely remove the staled drifter information, the time | |||
when a node detects itself a drifter is propagated with the | when a node hears a drifter is recorded. | |||
distance vector. | ||||
5. Protocol Specifications | 6. Protocol Specifications | |||
This section discusses the operation of LANMAR routing protocol. | This section discusses the operation of LANMAR routing protocol. | |||
The sending and receiving of landmark updates are in the proactive | The sending and receiving of landmark updates are in the proactive | |||
nature. The routing packets are processed separately from | nature. The routing packets are processed separately from | |||
ordinary data packets. | ordinary data packets. | |||
5.1. Data Structures | 6.1. Data Structures | |||
Each node has a unique "logical" identifier defined by a subnet | Each node has a unique "logical" identifier defined by a subnet | |||
field and a host field. The host field is unique in the subnet and | field and a host field. The host field is unique in the subnet and | |||
might in fact coincide with the physical address. The "logical" | might in fact coincide with the physical address. The "logical" | |||
identifier can also be an IP address when the subnet address can | identifier can also be an IP address when the subnet address can | |||
logically group the nodes. Moreover, each node keeps a landmark | logically group the nodes. Moreover, each node keeps a landmark | |||
status as part of identifier. As LANMAR runs on top of a host | status tuple. As LANMAR runs on top of a host routing protocol, | |||
routing protocol, it shares the underlining data structures. | it shares the underlying routing table structures. LANMAR | |||
Particularly, LANMAR requires the underlining data structures to | maintains a neighbor list and shares it with the host protocol. | |||
associate a landmark status with each node's identifier. In | In addition, LANMAR keeps a drifter list and a landmark distance | |||
addition, LANMAR keeps a drifter list and a landmark distance | ||||
vector. | vector. | |||
5.1.1. Landmark Status | 6.1.1. Landmark Status Tuple | |||
Each node has not only a "logical" identifier, which basically is | Each node has not only a "logical" identifier, which basically is | |||
its address, but also a landmark status. The status includes | its address, but also a landmark status tuple. The tuple includes | |||
a flag which indicates whether the node is a landmark or not and a | a flag which indicates whether the node is a landmark or not, a | |||
weight (the number of group members the node detects within its | election weight (the number of group members the node detects within | |||
scope). Anywhere in the tables of the host protocol, when a | its scope) and a sequence number. When a node is elected, the | |||
node's address is kept, a landmark status is recorded. The status | status tuple will be copied to its landmark distance vector. The | |||
is piggybacked in the periodical routing update packets of the | sequence number is advanced. There are three fields for a tuple: | |||
host protocols together with the node address. There are two | ||||
fields for a status: | ||||
- Landmark flag | - Landmark flag | |||
- Number of group members in its scope | - Number of group members in its scope | |||
- Sequence number | ||||
5.1.2. Landmark Distance Vector | 6.1.2. Landmark Distance Vector | |||
Landmark distance vector (LMDV) gives the next hop information to | Landmark distance vector (LMDV) gives the next hop information to | |||
all landmarks in the network. Every subnet has an entry in LMDV. | all landmarks in the network. Every subnet has an entry in LMDV. | |||
Initially, the entries in the underlining routing table, which | The latest route information to the landmark of each subnet is | |||
point to landmarks, are copied to LMDV. The LMDV entries are | learned when a landmark update message is received. LMDV functions | |||
updated when landmark update message is received or underlining | as a part of the routing table. It has the following fields: | |||
topology table is changed. LMDV functions as a part of the | - Landmark status tuple | |||
routing table. It has the following fields: | ||||
- Landmark status | ||||
- Next hop address | - Next hop address | |||
- Distance | - Distance | |||
5.1.3. Drifter List | 6.1.3. Drifter List | |||
The drifter list of LANMAR provides the next hop information to | The drifter list (DFDV) of LANMAR provides the next hop information | |||
forward the packets to the drifters known to the current node. | of the drifters known to the current node. The entries are updated | |||
The entries are updated explicitly using landmark update message. | with landmark update message. The latest time a drifter is heard | |||
It works as a part of routing table. The drifter list (DFDV) has | is recorded in DFDV. The DFDV works as a part of routing table. | |||
following fields: | It has the following fields: | |||
- Destination drifter address | - Destination drifter address | |||
- Next hop address | - Next hop address | |||
- Last declaration time | - Distance | |||
- Last heard time | ||||
5.2. LANMAR Update Message Format | 6.1.4. Neighbor List | |||
The messages necessary for LANMAR protocol are piggybacked in the | The neighbor list of LANMAR keeps current neighbor information for | |||
host periodic update packets. The format given below is not | a node. The latest time a neighbor is heard is recorded. The | |||
exactly how the bits appear in the host update packets. Where to | neighbor list has the following fields: | |||
put these fields in the host update packets is an implementation | - Neighbor address | |||
issue. The necessary fields include current node's landmark | - Neighbor landmark flag | |||
status (assuming that the node's address can be obtained from IP | - Last heard time | |||
header), its landmark distance vector LMDV and the drifter list | ||||
DFDV. The next two subsections will describe how these | 6.2. LANMAR Update Message Format | |||
information is processed. | ||||
There is only one message type of LANMAR protocol. The messages are | ||||
periodically exchanged with neighbors. They update the landmark | ||||
distance vector LMDV and the drifter list DFDV. The processing of | ||||
the LMDV and DFDV will be describe separately. The following format | ||||
does not include the node's identifier because it can be obtained | ||||
from IP Header. | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Landmark Flag | N_members | Reserved | N_landmarks | | | Landmark Flag | N_landmarks | N_drifters | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Landmark Address 1 | | | Landmark Address 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Next Hop Address 1 | | | Next Hop Address 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| N_members 1 | Distance 1 | ... : | | Distance 1 | N_members 1 | Sequence Number 1 : | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
: . . . : | : . . . : | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
: . . . | N_drifters | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Drifter Address 1 | | | Drifter Address 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Next Hop Address 1 | | | Next Hop Address 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Distance 1 | Timestamp 1 | ... : | | Distance 1 | ... : | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
: . . . | | : . . . | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
5.2.1. Description of the fields | 6.2.1. Description of the fields | |||
Landmark Flag and N_members | ||||
These two fields are the landmark status. N_members is the | ||||
number of group members in the node's scope. | ||||
Reserved | Landmark Flag | |||
The bits are set to '0' and are ignored on reception. | The landmark flag of the sending node. | |||
N_landmarks | N_landmarks | |||
The number of entries of the landmark distance vector. | The number of entries of the landmark distance vector. | |||
Landmark Address 1, Next Hop Address 1, N_members 1 and Distance 1 | N_drifters | |||
The number of entries of the drifter list. | ||||
Reserved | ||||
The bits are set to '0' and are ignored on reception. | ||||
Landmark Address 1, Next Hop Address 1, Distance 1, N_members 1 | ||||
and Sequence Number 1 | ||||
The first entry in the landmark distance vector. | The first entry in the landmark distance vector. | |||
Landmark Address 1 and N_members 1 are the destination landmark | Landmark Address 1, N_members 1 and Sequence Number 1 are the | |||
status. | status tuple of the destination landmark. | |||
Next Hop Address 1 and Distance 1 is the next hop and distance | Next Hop Address 1 and Distance 1 is the next hop and distance | |||
to the landmark. | to the landmark. | |||
These fields are repeated N_landmarks times for each entry in | These fields are repeated N_landmarks times for each entry in | |||
landmark distance vector. | landmark distance vector. | |||
N_drifters | Drifter Address 1, Next Hop Address 1 and Distance 1 | |||
The number of entries of the drifter list. | ||||
Drifter Address 1, Next Hop Address 1, Distance 1, Timestamp 1 | ||||
The first entry in the drifter list. | The first entry in the drifter list. | |||
Next Hop Address 1 and Distance 1 are the next hop and distance | Next Hop Address 1 and Distance 1 are the next hop and distance | |||
to the Drifter Address 1. | to the Drifter Address 1. | |||
Timestamp 1 is the time when the node becomes a drifter. | ||||
These fields are repeated N_drifters times for each entry in | These fields are repeated N_drifters times for each entry in | |||
the drifter list. | the drifter list. | |||
The length of the message (including the host update fields) is | The length of the message is limited to the maximum IP packet size. | |||
limited to the maximum IP packet size. In that case, multiple | In that case, multiple packets may be required to broadcast all the | |||
packets may be required to broadcast all the topology entries for | entries. | |||
host protocol. The landmark distance vector and drifter list will | ||||
be piggybacked in each packet with the same sequence number. | ||||
5.3. Processing Landmark Updates | 6.3. Processing Landmark Updates | |||
Landmark update information is a part of the LANMAR periodic | Landmark update information is a part of the LANMAR periodic | |||
routing update message, which is carried in host updating packets. | routing update message. The update information includes sender's | |||
The update information includes sender's landmark status and LMDV. | LMDV. Landmark update message is used for landmark election and | |||
Landmark update message is used for landmark election and helps | building paths to landmarks. | |||
nodes build their LMDV. | ||||
5.3.1. Originating a Landmark in a Subnet | 6.3.1. Originating a Landmark in a Subnet | |||
Every time a node detects a topology change, it recalculates the | Every time a node detects a neighbor change, it recalculates the | |||
number of group members in its scope. The new number of group | number of group members in its scope. The new number of group | |||
members is recorded in its landmark status and replaces the old | members is recorded in its election weight field. If this | |||
values in all the tables containing the landmark status. If this | ||||
number is greater than a threshold T, the node qualifies as a | number is greater than a threshold T, the node qualifies as a | |||
landmark only when there is no landmark for the group according to | landmark only when it is the only landmark for the group so far, | |||
its LMDV, or it wins the election when competing with the existing | or it wins the election when competing with the existing landmark. | |||
landmark. The landmark distance vector is updated accordingly. | When it becomes a landmark, it increases its sequence number by 2. | |||
If the host protocol has new shortest paths to landmarks, the new | The old landmark entry is replaced with the new winner. The | |||
paths are copied from the host routing table to the LMDV. | landmark entry will be broadcast to neighbors with the next update | |||
The landmark status and the LMDV will be broadcast to neighbors | packet. Every time before a landmark sends updates, it increases | |||
with the next host update packet. | its sequence number and copies it to LMDV. | |||
5.3.2. Receiving Landmark Updates | 6.3.2. Receiving Landmark Updates | |||
When a node receives a landmark update message, it compares its | When a node receives a landmark update message, it compares its | |||
LMDV entries with the incoming LMDV entries for each subnet. New | LMDV entries with the incoming LMDV updates for each subnet. | |||
landmark enrties will be copied. Competing landmarks will | A landmark update corresponding to a new subnet will be copied. | |||
be solved through a winner competition algorithm. The winner will | An update having the same landmark as already given (in node's LMDV) | |||
be elected as the landmark for the subnet. The node's landmark | will be accepted only if it contains a larger sequence number. | |||
status and LMDV will be updated according to the outcomes of the | If an update contains a different landmark for the same subnet as | |||
competition. The distance information can be obtained either from | recorded in LMDV, only one landmark will be elected through a | |||
the incoming LMDV entry or from host routing table. The updated | winner competition algorithm. LMDV will be updated according to | |||
LMDV and the node's landmark status will be propagated jointly with | the outcomes of the competition. | |||
the host routing update packets. | ||||
5.3.3. Winner Competition | 6.3.3. Winner Competition | |||
When more than one node declares itself as a landmark in the same | When more than one node declares itself as a landmark in the same | |||
group, a simple solution is to let the node with the largest | group, a simple solution is to let the node with the largest | |||
number of group members win the election and in case of tie, | number of group members win the election and in case of tie, | |||
lowest ID breaks the tie. The other competing nodes defer. | lowest ID breaks the tie. The other competing nodes defer. | |||
However, this method is likely to cause the oscillation of | However, this method is likely to cause the oscillation of | |||
landmark roles between nodes. | landmark roles between nodes. | |||
To use hysteresis in replacing an existing landmark, let us assume | To use hysteresis in replacing an existing landmark, let us assume | |||
the competing node's number of members is M, the existing | the competing node's number of members is M, the existing | |||
landmark's number of members is N and a factor value S. When M is | landmark's number of members is N and a factor value S. When M is | |||
greater than N*S, then the competing node replaces the existing | greater than N*S, then the competing node replaces the existing | |||
landmark. Or, when N reduces to a value smaller than a threshold T, | landmark. Or, when N reduces to a value smaller than a threshold T, | |||
then it gives up the landmark role. A tie occurs when M falls | then it gives up the landmark role. A tie occurs when M falls | |||
within an interval [N*1/S, N*S], then the node with larger member | within an interval [N*1/S, N*S], then the node with larger member | |||
number wins the election. If a tie occurs again with equal member | number wins the election. If a tie occurs again with equal member | |||
number, i.e., M equals to N, it is broken using lowest ID. A tie | number, i.e., M equals to N, it is broken using lowest ID. A tie | |||
can always be broken using lowest ID as the address is used as ID | can always be broken using lowest ID as the address is used as ID | |||
and it is unique. | and it is unique. | |||
5.4. Processing Drifter Updates | 6.4. Processing Drifter Updates | |||
Drifter update information is a part of the LANMAR periodical | Drifter update information is a part of the LANMAR periodical | |||
routing update message, which is carried in host updating packets. | routing update message. The update information is the drifter list | |||
The update information is the drifter list (DFDV) of the sender. | (DFDV) of the sender. The computation of the DFDV at each node | |||
The computation of the DFDV at each node includes checking the node | includes checking the node itself to see whether it is a drifter | |||
itself to see whether it is a drifter and recording paths to other | and recording paths to other drifters. | |||
drifters. | ||||
5.4.1. Originating a Drifter Entry | 6.4.1. Originating a Drifter Entry | |||
By checking the distance to the landmark of its group, each node | By checking the distance to the landmark of its group, each node | |||
easily knows whether it has become a drifter. If the distance is | easily knows whether it has become a drifter. If the distance is | |||
larger than the scope, the node will put itself into its drifter | larger than the scope, the node will put itself into its drifter | |||
list and record the time instance. This drifter information | list. This drifter information will be sent back to the landmark | |||
will be sent back to the landmark hop by hop along the shortest | hop by hop along the shortest path to it which can be learned from | |||
path to it which can be learned from the LMDV. For each drifter, | the LMDV. For each drifter, only the node on its shortest path | |||
only the node on its shortest path to the landmark needs to receive | to the landmark needs to receive its information, so before the | |||
its information, so before the entry is broadcast, the next hop to | entry is broadcast, the next hop to landmark is attached with | |||
landmark is attached with its entry. The DFDV will be propagated | its entry. The DFDV will be propagated with the next update packet. | |||
with the next host routing update packet. | ||||
5.4.2. Receiving Drifter Updates | 6.4.2. Receiving Drifter Updates | |||
Upon receiving an update packet, the DFDV part is retrieved and | Upon receiving an update packet, the DFDV part is retrieved and | |||
processed. If an entry of incoming DFDV indicates that the current | processed. If an entry of incoming DFDV indicates that the current | |||
node is its next hop to the landmark, i.e., the current node is on | node is its next hop to the landmark, i.e., the current node is on | |||
the drifter's shortest path to the landmark, the current node will | the drifter's shortest path to the landmark, the current node will | |||
insert or update its drifter list. The node sending the update | insert or update its drifter list. The receiving time is stamped | |||
packet is recorded as the next hop to the drifter. The reverse path | in the DFDV. The node sending the update packet is recorded as the | |||
to the drifter is thus built up. The procedure ends when the | next hop to the drifter. The reverse path to the drifter is thus | |||
landmark receives the drifter entry. The updated DFDV will be | built up. The procedure ends when the landmark receives the | |||
propagated with the next host routing update packet. | drifter entry. The updated DFDV will be propagated with the next | |||
update packet. | ||||
6. Data Packet Forwarding | 6.4.3. Removing a Drifter Entry | |||
Each entry in DFDV is time stamped of its last receiving time. | ||||
Every time before the DFDV is sent or routing by DFDV is needed, | ||||
the table is checked for staled entries. If such an entry is found, | ||||
it is removed. | ||||
6.5. Processing Neighbor List | ||||
When a node receives either a landmark update or a host protocol | ||||
routing update, the neighbor list is inserted if the update comes | ||||
from a new neighbor, or the corresponding neighbor entry is | ||||
updated. Current time is recorded with the entry. The | ||||
neighbor list is also search at this time for possible lost | ||||
neighbors according to the time stamps. If such a neighbor is | ||||
found, it is removed from the list. | ||||
7. Data Packet Forwarding | ||||
Data packets are relayed hop by hop. The host protocol routing | Data packets are relayed hop by hop. The host protocol routing | |||
table, drifter list and landmark distance vector are looked up | table, drifter list and landmark distance vector are looked up | |||
sequentially for the destination entry. If the destination is | sequentially for the destination entry. If the destination is | |||
within a node's scope, the entry can be found directly in the | within a node's scope, the entry can be found directly in the | |||
routing table and the packet is forwarded to the next hop node. | routing table and the packet is forwarded to the next hop node. | |||
Otherwise, the drifter list DFDV is searched for the destination. | Otherwise, the drifter list DFDV is searched for the destination. | |||
If the entry is found, the packet is forwarded using the next hop | If the entry is found, the packet is forwarded using the next hop | |||
address from DFDV. If not, the logical subnet field of the | address from DFDV. If not, the logical subnet field of the | |||
destination is retrieved and the LMDV entry of the landmark | destination is retrieved and the LMDV entry of the landmark | |||
corresponding to the destination's logical subnet is searched. | corresponding to the destination's logical subnet is searched. | |||
The data packet is then routed towards the landmark using the next | The data packet is then routed towards the landmark using the next | |||
hop address from LMDV. The packet, however, is not necessary to | hop address from LMDV. The packet, however, is not necessary to | |||
pass through the landmark. Rather, once the packet gets within the | pass through the landmark. Rather, once the packet gets within the | |||
scope of the destination on its way towards the landmark, it is | scope of the destination on its way towards the landmark, it is | |||
routed to the destination directly. | routed to the destination directly. | |||
7. Discussion about Storage and Processing Overhead for Drifters | 8. Discussion about Storage and Processing Overhead for Drifters | |||
The routing storage and processing overhead introduced by the | The routing storage and processing overhead introduced by the | |||
distance vector extension to handle drifters is typically small | distance vector extension to handle drifters is typically small | |||
if the fraction of drifting nodes is small. Consider a network | if the fraction of drifting nodes is small. Consider a network | |||
with N nodes and L landmarks, and assume that a fraction F of the | with N nodes and L landmarks, and assume that a fraction F of the | |||
members of each logical subnet have drifted. In the worst case, | members of each logical subnet have drifted. In the worst case, | |||
the path length from landmark to drifter is the square root of N | the path length from landmark to drifter is the square root of N | |||
(assuming a grid topology). Thus, sqrt(N) is the bound on the | (assuming a grid topology). Thus, sqrt(N) is the bound on the | |||
number of extra routing entries required at the nodes along the | number of extra routing entries required at the nodes along the | |||
path to the drifter. The total number of extra routing entries is | path to the drifter. The total number of extra routing entries is | |||
skipping to change at page 16, line 18 | skipping to change at page 16, line 41 | |||
Thus, the extra storage per node is F*sqrt(N). Now, let us assume | Thus, the extra storage per node is F*sqrt(N). Now, let us assume | |||
that the number of nodes in the scope = # of landmarks = logical | that the number of nodes in the scope = # of landmarks = logical | |||
group size = sqrt(N). Then, the basic routing table overhead per | group size = sqrt(N). Then, the basic routing table overhead per | |||
node (excluding drifters) is 3*sqrt(N). Thus, the extra overhead | node (excluding drifters) is 3*sqrt(N). Thus, the extra overhead | |||
caused by drifters is F/3. If 20% of the nodes in a group are | caused by drifters is F/3. If 20% of the nodes in a group are | |||
outside of the landmark scope, i.e., have drifted, the extra | outside of the landmark scope, i.e., have drifted, the extra | |||
routing O/H required to keep track of them is only 7%. | routing O/H required to keep track of them is only 7%. | |||
Acknowledgments | Acknowledgments | |||
This work was supported in part by NSF under contract ANI-9814675 | This work was supported in part by NSF under contract ANI-9814675, | |||
and in part by DARPA under contract DAAB07-97-C-D321. | by DARPA under contract DAAB07-97-C-D321, and by ONR under | |||
contract N00014-01-C-0016. | ||||
References | References | |||
[1] G. Pei, M. Gerla and X. Hong, "LANMAR: Landmark Routing for | [1] G. Pei, M. Gerla and X. Hong, "LANMAR: Landmark Routing for | |||
Large Scale Wireless Ad Hoc Networks with Group Mobility", | Large Scale Wireless Ad Hoc Networks with Group Mobility", | |||
Proceedings of IEEE/ACM MobiHOC 2000, Boston, MA, Aug. 2000. | Proceedings of IEEE/ACM MobiHOC 2000, Boston, MA, Aug. 2000. | |||
[2] M. Gerla, X. Hong, G. Pei, "Landmark Routing for Large Ad Hoc | [2] M. Gerla, X. Hong, G. Pei, "Landmark Routing for Large Ad Hoc | |||
Wireless Networks", Proceedings of IEEE GLOBECOM 2000, | Wireless Networks", Proceedings of IEEE GLOBECOM 2000, | |||
San Francisco, CA, Nov. 2000. | San Francisco, CA, Nov. 2000. | |||
skipping to change at page 17, line 47 | skipping to change at page 18, line 23 | |||
Computer Science Department | Computer Science Department | |||
University of California | University of California | |||
Los Angeles, CA 90095-1596 | Los Angeles, CA 90095-1596 | |||
USA | USA | |||
Phone: +1 310 825-4367 | Phone: +1 310 825-4367 | |||
Fax: +1 310 825-7578 | Fax: +1 310 825-7578 | |||
Email: gerla@cs.ucla.edu | Email: gerla@cs.ucla.edu | |||
Xiaoyan Hong | Xiaoyan Hong | |||
3820 Boelter Hall | 3803F Boelter Hall | |||
Computer Science Department | Computer Science Department | |||
University of California | University of California | |||
Los Angeles, CA 90095-1596 | Los Angeles, CA 90095-1596 | |||
USA | USA | |||
Phone: +1 310 825-4623 | Phone: +1 310 825-4623 | |||
Fax: +1 310 825-7578 | Fax: +1 310 825-7578 | |||
Email: hxy@cs.ucla.edu | Email: hxy@cs.ucla.edu | |||
Li Ma | Li Ma | |||
3803 Boelter Hall | 3803D Boelter Hall | |||
Computer Science Department | Computer Science Department | |||
University of California | University of California | |||
Los Angeles, CA 90095-1596 | Los Angeles, CA 90095-1596 | |||
USA | USA | |||
Phone: +1 310 825-1888 | Phone: +1 310 825-1888 | |||
Fax: +1 310 825-7578 | Fax: +1 310 825-7578 | |||
Email: mary@cs.ucla.edu | Email: mary@cs.ucla.edu | |||
Guangyu Pei | Guangyu Pei | |||
End of changes. | ||||
This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |