Internet DRAFT - draft-peterlau-manet-topology-refresh
draft-peterlau-manet-topology-refresh
Mobile Ad hoc Networks Working Group P. Lau
Internet-Draft The University of Memphis
Intended status: Experimental December 31,2016
Expires: July 3, 2017
Topology Refresh Protocol (TRP)
draft-peterlau-manet-topology-refresh-00
Abstract
The topology refresh protocol is intended for use in mobile social
networks where user nodes announce their presence when they move into
contact with the network, see all existing users, know when old users
have left the network and new ones join the network, and communicate
with each other over optimal paths established on the fly. TRP is a
very lightweight protocol but does require user nodes periodically
broadcast their ids along with some personal information to the
network. These broadcasts serve the dual purpose of announcing
users' presence in the social network and establishing a complete
topology of end-to-end optimal paths. Individual user controls her
"radius of users" based on the number of hops and physical distance
between her and the others. User nodes independently choose their
ids and dynamically resolve any duplicated ones.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 3, 2017.
Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 3
5. Applicability Statement . . . . . . . . . . . . . . . . . . . 3
6. Generic Message Formats . . . . . . . . . . . . . . . . . . . 4
7. Forwarding Table Entry . . . . . . . . . . . . . . . . . . . 6
8. Type 2 Control Messages . . . . . . . . . . . . . . . . . . . 6
8.1. Generating Type 2 Control Messages . . . . . . . . . . . . 6
8.2. Processing Type 2 Control Messages . . . . . . . . . . . . 7
8.3. Transmitting Type 2 Control Messages . . . . . . . . . . . 8
9. Resolving Duplicated Node Identifications (Id's) . . . . . . 8
10. Generating Type 8 and 9 User Messages . . . . . . . . . . . . 8
11. Generating of Type 10 Acknowledgement Messages . . . . . . . 9
12. Processing of Transit Type 8 and 9 Messages . . . . . . . . . 9
13. Transmitting Type 8 and 9 Messages . . . . . . . . . . . . . 9
14. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 10
15. Security Considerations . . . . . . . . . . . . . . . . . . . 10
16. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
16.1. Normative References . . . . . . . . . . . . . . . . . . 10
16.2. Informative References . . . . . . . . . . . . . . . . . 10
1. Introduction
The intended application of this memo is nearby mobile social network
in which users would like to know who are nearby and socialize with
them on the fly. The delay performance study, carried out in
[WTS2015], demonstrates the adequacy of TRP for mobile social network
application. Existing protocols and methods were not conceived to
support such an application. The delay sensitive nature of the
application renders the methods and protocols like [Epidemic]
[Abhijeet] [RFC6693] designed for delay-tolerant mobile ad-hoc
network inapplicable. The expected frequent path breaks and numerous
simultaneous user conversions in a social network make the on-demand
routing protocols [RFC3561] [RFC4728] inefficient. Proactive
protocols like [RFC3626] [RFC3684] are complex and heavy on CPU.
Most important, all of these protocols require prior knowledge of the
identification of participating nodes. Generally, membership of
mobile social networks is open to anyone coming into contact with the
network and is constantly changing as users are moving in and out of
the network from time to time. Thus, acquiring prior knowledge of
dynamic membership is difficult, if not impossible. This memo
defines a light weight protocol motivated to enable nearby social
network that requires neither prior knowledge of membership nor
infrastructure support (such as sending GPS coordinates to a central
site for processing). TRP user nodes cooperate to forward data for
each other.
2. Requirements
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT"
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL", when
they appear in this document, are to be interpreted as described in
BCP 14, RFC 2119 [RFC2119].
3. Terminology
Radius of users
With respect to user A, radius of users are those users around A that
are either within the maximum hop count or maximum physical distance
from A, or both, specified by the users.
4. Protocol Overview
TRP is a table-driven proactive data forwarding protocol and at the
same time allows users to announce their presence to the network. A
node, wishing to be contacted, periodically broadcasts control
messages about itself to the network. A node, receiving control
messages, caches an optimal path to each of the originators of the
control messages. The result is four-fold: (1) a complete topology
of end-to-end paths is constantly evolving that closely follows the
movement of user nodes; (2) a complete list of current users is
constantly updating at every user node; (3) the need for neighbor
discovery is obviated; and (4) the need for link break detection and
repair is also obviated.
5. Applicability Statement
The TRP is designed for high mobility infrastructureless nearby
social network for users of smart phone or any devices equipped with
wifi. The network is expected to be small controlled by individual
users to around one hundred nodes. Anyone can join and leave a TRP
enabled social network anytime and anywhere at their pleasure. No
confidential information is expected to be exchanged between users
and generally security is not a concern. Establishing a secured
connection between two TRP users is beyond the scope of this memo.
6. Generic Message Formats
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|Msg Typ|B|D|R|R|R|R|R|R| Next Node Id |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Recipient Node Id | Sender Node Id |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max Hop | Hop Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time To Live (TTL) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number | Type 2 Period |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| This Node Id | Signature |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Battery | Distance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| GPS Coordinate |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Body |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Version Protocol version.
The initial version is 0.
Message Type Type 0-1: Reserved.
Type 2: Control messages.
Type 3-7: Reserved.
Type 8: Variable length user messages that
require the destination nodes to
acknowledge the receipt of them.
Type 9: Variable length user messages that do
not require Acknowledgement.
Type 10: Acknowledgement messages.
Type 11-15: Reserved.
B Battery flag.
A '1' indicates the use of battery energy to
select optimal paths, '0' indicates otherwise.
D Distance flag.
A '1' indicates the use of Distance field to
limit the maximum distance from this node to
other nodes and '0' indicates otherwise.
If both B and D are '0', the Battery, Distance,
and GPS Coordinate bytes SHOULD BE removed.
If B is '1' and D is '0', the GPS Coordinate
bytes SHOULD BE removed.
R Reserved. Sent as 0 and ignored on reception.
Next Node Id The node to which this message is forwarded.
All ones if this message is broadcast to all the
neighbors.
Recipient Node Id The target node of this message. All ones if
this message is broadcast to all the nodes.
Sender Node Id The originator node of this message.
Max Hop The number of hops this message can traverse
before being dropped. Default to 20 hops.
Hop Count The number of hops the message has traversed so
far. Set to 1 at the originating node.
Time To Live Message delay, in msec. The message is dropped
when TTL has reached 0. Default to 10 seconds.
Sequence Number The sequence number for this message.
Type 2 Period The frequency of sending type 2 messages.
Default to 3 seconds or adjusted by the TRP.
This Node Id The node from which this message was forwarded.
Signature A changing random number for detecting
duplicated node id.
Battery The smallest remaining energy amount the nodes
along the path from the sender to this node.
Distance A value for limiting the distance between the
originator node and this node. Default to 100
(1 mile, in unit of 0.01 mile).
GPS Coordinate GPS coordinate of the message originator node.
Message Body Type 2: Originator's personal information.
The content and format are out of the scope of
this memo. How the user list is generated and
presented to the user is application dependent.
Type 8-9: Variable length user message.
Type 10: Null.
The Type 2 Period, This Node Id, Signature, Battery, Distance, and
GPS Coordinate fields are used in type 2 control messages only.
7. Forwarding Table Entry
Each node SHALL maintain a message forwarding table. Each table
entry has the following six fields:
Destination Node Id The node id of the recipient node.
Forwarding Node Id The next hop node id.
Sequence Number The value copied from the type 2 message with
which this entry is created or updated.
Hop Count A value for keeping track of the number of hops
from this node to the destination node.
Remaining Energy The value copied from the type 2 message.
Time Out The entry age beyond which it is deleted.
Default to Type 2 Period + 5 seconds.
8. Type 2 Control Messages
8.1 Generating Type 2 Control Messages
If a node desires to participate in a TRP enabled social network, it
SHALL periodically broadcast type 2 messages for the purpose of
identifying itself to the network, making any new nodes aware of its
existence, and reaffirming its presence to existing ones. The period
of sending type 2 messages SHOULD BE default to 3 seconds. A node
SHALL compose a type 2 message with the following fields and values:
Message Type 2.
B and D 0 or 1 depending on the application.
R 0.
Next Node Id All one's.
Recipient Node Id All one's.
Sender Node Id This node's own id.
Max Hop 20 or user provided value.
Hop Count 1.
Time To Live 10,000 or user provided value.
Sequence Number Current sequence number + 1.
Type 2 Period 3 or user provided value.
This Node Id This node's own id.
Signature Currently used random number or a new one.
Battery Remaining energy of this node.
Distance 100 or user provided value.
GPS Coordinate The current GPS coordinate of this node.
Message Body Information supplied by users.
8.2 Processing Type 2 Control Messages
When a node receives a type 2 message, it SHOULD discard the message
if the message's Sender Node Id matches its own id (because a node
may receive its own control messages through other nodes).
When the message is originated from another node but with the D flag
set, the node SHOULD discard the message if the distance between
itself and the originating node exceeds the message's Distance value.
If the message has not been discarded in the above, the node SHOULD
search its forwarding table using the Sender Node Id extracted from
the message as the search key.
If the search returns an entry, the node SHOULD take the following
actions in order they are listed:
If the entry is timed out, delete the entry.
If the entry's sequence number is smaller than the message's
sequence number, delete the entry.
If the entry's sequence number is larger than the message's
sequence number, delete the message.
If the two sequence numbers are the same, the node SHOULD take
the following actions in the order the are listed:
If the entry's hop count is larger than the message's hop
count, delete the entry.
If the entry's hop count is smaller than the message's hop
count, delete the message.
If the two hop counts are the same and the entry's Remaining
Energy is smaller than the message's Battery, delete the
entry; otherwise delete the message.
If the search returns "entry not found" or the entry is deleted as
described above, the node SHALL create a new entry with the
destination Node Id, Forwarding Node Id, Sequence Number, Hop Count,
and Remaining Energy fields copied from the message's Sender Node Id,
This Node Id, Sequence Number, Hop Count, and Battery. Time out is
set to the message's Type 2 Period + 5.
8.3 Transmitting Type 2 Control Messages
The node SHOULD transmit local type 2 messages without modification.
If the message is forwarded, the node SHOULD set the Hop Count, TTL,
This Node Id, and Battery fields to the message's Hop Count + 1,
message's TTL - time spent in the node, the node's own id, and the
minimum of the message's Battery and the node's remaining energy.
The node SHOULD drop the message if the updated Hop Count exceeds MAX
Hop or the updated TTL drops below zero.
9. Resolving Duplicated Node Identifications
Each node independently chooses its own id. Inadvertently, two or
more nodes may have chosen the same value. To detect id collisions,
a sender node SHOULD periodically sign its control messages with a
different random number in the Signature field. A sender SHOULD sign
a new signature every 100 type 2 messages sent. Anytime a node
receives a control message containing in the Sender Node Id field its
own id but does not match its signature, the node SHOULD use a
different id in the subsequent control messages. To minimize the
probability of id collision, when the TRP is first turned on, the
node MAY wait 10 seconds and pick a value, from outside the user
list, for its own node id.
10. Generating Type 8 and 9 User Messages
Users are periodically updated with a list of nearby users. If two
users on the list desire to communicate, they exchange user messages.
A user SHOULD send type 8 messages if she wants to make sure that the
messages are received at the destination node. A user SHOULD send
type 9 messages if she has no desire to know whether the messages
have arrived at the destination. Type 8 and 9 messages SHOULD
conform to the generic message format as follows:
Message Type 8 or 9.
B, G, and R 0.
Recipient Node Id A value chosen from the user list.
Sender Node Id The node id of the node sending this message.
Max Hop The value used in the generated type 2 messages.
Hop Count 1.
Time To Live The value used in the generated type 2 messages.
Sequence Number Current sequence number + 1.
Message Body Variable length information supplied by users.
11. Generating of Type 10 Acknowledgement Messages
Upon receiving a type 8 message, the recipient node SHALL return a
type 10 message to the sender. Type 10 messages SHOULD conform to
the generic message format as follows:
Message Type 10.
B, G, and R 0.
Recipient Node Id Type 8 message's Sender Node Id.
Sender Node Id Type 8 message's Recipient Node Id.
Max Hop Type 8 message's Max Hop.
Hop Count 1.
Time To Live The value used in the generated type 2 messages.
Sequence Number Type 8 message's sequence number.
Message Body Null.
12. Processing of Transit Type 8, 9, and 10 Messages
A type 8, 9, 10 message, upon arrival to a node, SHALL BE delivered
to the user if the Recipient Node Id matches the node's id. If the
Recipient Node Id does not match the node's id, the message SHOULD be
queued waiting to be forwarded to the next node.
13. Transmitting Type 8, 9, and 10 Messages
The node SHALL look up the forwarding table for the Next Node Id
using the message's Recipient Node Id as the search key. The node
SHOULD transmit local type 8, 9, and 10 messages without further
modification. If the message is forwarded, the node SHOULD increment
the Hop Count by one, and decrement the TTL by the amount of time the
message has spent in this node. If the look up does not return an
entry, the node SHOULD buffer the message for the next transmission
opportunity. If Hop Count exceeds Max Hop or TTL drops below zero,
the node SHOULD drop the message.
14. IANA Considerations
This memo has no IANA actions.SHOULD BE
15. Security Considerations
Currently, TRP does not specify any special security measures.
16. References
16.1 Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[WTS2015] Peter S. Lau, "Topology refresh data forwarding protocol
for opportunistic networks", Wireless Telecommunications
Symposium (WTS), New York, New York, USA, April, 2015.
16.2 Informative References
[Epidemic] A. Vahdat and D. Becker, "Epidemic routing for partially
connected ad hoc networks," Technical Report
CS-200006, Duke University, Apr. 2000.
[Abhijeet] Abhijeet A. Bhorkar and Mohammad Naghshvar, "Adaptive
Opportunistic Routing for Wireless Ad Hoc Networks"
ACM Transactions on Networking, vol. 20, no. 1,
pp. 243-256, Feb. 2012.
[RFC6693] Lindgren, A., Doria, A., Davies, E., Grasic, S.,
"Probabilistic Routing Protocol for Intermittently
Connected Networks", RFC 6693], August 2012.
[RFC3561] Perkins, C., Belding-Royer, E., and Das S., "Ad hoc
On-Demand Distance Vector (AODV) Routing", RFC 3561,
July 2003.
[RFC4728] Johnson, D., Hu, Y., and Maltz D., "The Dynamic Source
Routing Protocol (DSR)for Mobile Ad Hoc Networks for
IPv4", RFC 4728], February, 2007.
[RFC3626] Clausen, T. and P. Jacquet, "Optimized Link State Routing
Protocol (OLSR)", RFC 3626, October 2003.
[RFC3684] Ogier, T., Templin F., and Lewis, M., "Topology
Dissemination Based on Reverse-Path Forwarding (TBRPF)",
RFC 3684, February 2004.
Author's Address
Peter S. Lau
Department of Electrical and Computer Engineering
The University of Memphis
Memphis, TN 35152
USA
Email: peterlau@memphis.edu