src/dsr/doc/dsr.rst
author Yufei Cheng <yfcheng@ittc.ku.edu>
Fri, 27 Jan 2012 15:15:48 -0800
changeset 8751 efad81f3cb47
child 8753 8d84b96e26bf
permissions -rw-r--r--
Add IPv4 DSR routing
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8751
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
     1
.. include:: replace.txt
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
     2
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
     3
DSR Routing
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
     4
-----------
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
     5
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
     6
Dynamic Source Routing (DSR) protocol is a reactive routing protocol designed specifically for use in multi-hop 
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
     7
wireless ad hoc networks of mobile nodes.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
     8
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
     9
This model was developed by 
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    10
`the ResiliNets research group <http://www.ittc.ku.edu/resilinets>`_
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    11
at the University of Kansas.  
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    12
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    13
DSR Routing Overview
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    14
********************
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    15
 
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    16
 This model implements the base specification of the Dynamic Source Routing (DSR)
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    17
 protocol. Implementation is based on RFC4728.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    18
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    19
 Class dsr::DsrRouting implements all functionality of service packet exchange and inherits Ipv4L4Protocol.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    20
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    21
 Class dsr::DsrOptions implements functionality of packet processing and talk to DsrRouting to send/receive packets
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    22
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    23
 Class dsr::DsrFsHeader defines the fixed-size header and identify the up-layer protocol
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    24
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    25
 Class dsr::DsrOptionHeader takes care of different dsr options and process different header according to specification from rfc
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    26
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    27
 Class dsr::DsrSendBuffer is a buffer to save data packet as well as route error packet when there is no route to forward the packet
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    28
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    29
 Class dsr::DsrMaintainBuffer is a buffer to save data packet for next-hop notification when the data packet has already sent out of send buffer
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    30
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    31
 Class dsr::RouteCache is the essential part to save routes found for data packet, dsr responds to several routes for a single destination
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    32
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    33
 Class dsr::RreqTable implements the functionalities to avoid duplicate route requests and control route request rate for a single destination
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    34
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    35
 Protocol operation depends on the many adjustable parameters. We support parameters, with their default values, from
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    36
 RFC and parameters that enable/disable protocol features or tune for specific simulation scenarios, such as the max size
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    37
 of send buffer and its timeout value. The full parameter list is in DsrRouting.cc file.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    38
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    39
 DSR discovers routes totally on demand. Therefore, our DSR model buffers all packets, while a route request packet (RREQ)
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    40
 is disseminated. We implement a packet buffer in dsr-rsendbuff.cc. The packet queue implements garbage collection of old
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    41
 packets and a queue size limit. When the packet is sent out from the send buffer, it will be queued in maintenance buffer for
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    42
 next hop acknowledgment
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    43
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    44
 Route Cache implementation support garbage collection of old entries and state machine, defined in standard.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    45
 It implements as a STL map container. The key is the destination IP address.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    46
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    47
 Protocol operation strongly depends on broken link detection mechanism. We implement all the three heuristics.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    48
    First, we use layer 2 feedback when possible. Link considered to be broken, if frame transmission results in a transmission
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    49
    failure for all retries. This mechanism meant for active links and work much more faster, than first method.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    50
    Layer 2 feedback implementation relies on TxErrHeader trace source, currently it is supported in AdhocWifiMac only.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    51
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    52
    Second, passive acknowledgment should be used whenever possible. The node turns on "promiscuous" receive mode, in which it can receive
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    53
    packet not destined for itself, and when the node assures the delivery of that data packet to its destination, it cancels the passive
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    54
    acknowledgment timer.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    55
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    56
    Last, we use network layer acknowledge scheme to notify the receipt of a packet. Route request packet will not
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    57
    be acknowledge or retransmitted.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    58
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    59
 Following optional protocol optimizations aren't implemented:
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    60
  - Flow state
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    61
  - First Hop External (F), Last Hop External (L) flags
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    62
  - Handling unknown DSR options
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    63
  - Two types of error headers:
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    64
     1. flow state not supported option
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    65
     2. unsupported option (not going to happen in simulation)
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    66
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    67
 DSR operates with direct access to IP header, and operates between network and transport layer.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    68
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    69
 Implementation changes
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    70
  - The DsrFsHeader has added 3 fields: message type, source id, destination id, and these changes only for post-processing
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    71
      - message type is used to identify the data packet from control packet
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    72
      - source id is used to identify the real source of the data packet since we have to deliver the packet hop-by-hop and the ipv4header
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    73
        is not carrying the real source and destination ip address as needed
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    74
      - destination id is for same reason of above
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    75
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    76
 Changes:
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    77
   - Route Reply header is not word-aligned in DSR rfc, change it to word-aligned in implementation
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    78
   - DSR works as a shim header between transport and network protocol, it needs its own forwarding mechanism,
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    79
     we are changing the packet transmission to hop-by-hop delivery, so we added two fields in dsr fixed header
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    80
     to notify packet delivery
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    81
     1. message type to notify the type of this packet: data packet or control one
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    82
     2. source id to identify the real source address of this packet
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    83
     3. destination id to identify the real destination
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    84
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    85
 Current Route Cache implementation:
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    86
   - This implementation used "path cache", which is simple to implement and ensures loop-free
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    87
      - the path cache has automatic expire policy
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    88
      - the cache saves multiple route entries for a certain destination and sort the entries based on hop counts
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    89
      - the MaxEntriesEachDst can be tuned to change the maximum entries saved for a single destination
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    90
      - when adding mulitiple routes for one destination, the route is compared based on hop-count and expire time, the one with less hop count
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    91
        or relatively new route is favored
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    92
   - Future implementation may include "link cache" as another possibility
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    93
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    94
DSR Instructions
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    95
****************
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    96
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    97
The following should be kept in mind when running DSR as routing protocol:
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    98
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
    99
* NodeTraversalTime is the time it takes to traverse two neighboring nodes and should be chosen to fit the transmission range
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   100
* PassiveAckTimeout is the time a packet in maintenance buffer wait for passive acknowledgment, normally set as two times of NodeTraversalTime
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   101
* RouteCacheTimeout should be set smaller value when the nodes' velocity become higher. The default value is 300s.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   102
   
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   103
Helper
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   104
******
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   105
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   106
To have a node run DSR, the easiest way would be to use the ClickInternetStackHelper
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   107
class in your simulation script. For instance::
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   108
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   109
  DsrHelper dsr;
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   110
  DsrMainHelper dsrMain;
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   111
  dsrMain.Install (dsr, adhocNodes);
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   112
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   113
The example scripts inside ``src/dsr/examples/`` demonstrate the use of DSR based nodes
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   114
in different scenarios. The helper source can be found inside ``src/dsr/helper/dsr-main-helper.{h,cc}`` 
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   115
and ``src/dsr/helper/dsr-helper.{h,cc}``
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   116
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   117
Examples
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   118
********
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   119
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   120
The example can be found in ``src/dsr/examples/``:
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   121
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   122
* dsr.cc use DSR as routing protocol within a traditional MANETs environment[3]. 
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   123
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   124
DSR is also built in the routing comparison case in ``examples/routing/``:
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   125
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   126
* manet-routing-compare.cc is a comparison case with built in MANET routing protocols and can generate its own results.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   127
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   128
Validation
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   129
**********
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   130
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   131
This model has been tested as follows:
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   132
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   133
* Unit tests have been written to verify the internals of DSR. This can be found in ``src/dsr/test/dsr-test-suite.cc``. These tests verify whether the methods inside DSR module which deal with packet buffer, headers work correctly.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   134
* Simulation cases similar to [3] have been tested and have comparable results.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   135
* manet-routing-compare.cc has been used to compare DSR with three of other routing protocols.
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   136
  
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   137
References
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   138
**********
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   139
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   140
[1] Link for the original paper: www.monarch.cs.rice.edu/monarch-papers/dsr-chapter00.pdf
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   141
[2] Link for RFC 4728: http://www6.ietf.org/rfc/rfc4728.txt
efad81f3cb47 Add IPv4 DSR routing
Yufei Cheng <yfcheng@ittc.ku.edu>
parents:
diff changeset
   142
[3] Link for the broch's comparison paper: http://www.monarch.cs.rice.edu/monarch-papers/mobicom98.ps