README
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
- Rmst Filter README
- June 12, 2003
- Fred Stann
- fstann@usc.edu
- The code in this directory constitutes the initial release of the Rmst
- Filter. The Rmst filter provides guranteed delivery and fragmentation
- / reassembly of large blobs. Rmst has had limited deployment in an
- actual sensor network. To that extent the Rmst filter should be
- considered experimental. It has been "tuned" to the environment in
- which it was deployed (the ISI testbed). New environments may present
- traffic scenerios that cause Rmst to have sub-optimal behavior. The
- best way to receive help debugging such scenerios is to run the filter
- with the "-d 10" command line option and capture the DiffPrint screen
- output at key nodes (like sources and sinks), then email them to
- fstann@usc.edu along with a problem description file.
- Major Caveats:
- Rmst has only been tested in conjunction with the "two_phase_pull"
- routing algorithm in Diffusion.
- This initial release does not have ns-2 support. A release with ns-2
- support should follow shortly.
- Rmst has only been tested with a single sink.
- This release is only intended to run on top of an ARQ MAC layer like
- S-MAC that provides hop-by-hop repair. Rmst "caching mode" support
- (in which each node caches fragments rather than just sources and
- sinks) is not available in this release. Future releases will
- re-enable this feature which was present in the simulation code used
- during research and development.
- Rmst has a coarse grained pacing mechanism for applications. After
- sources call sendRmst, they should not send another large blob until
- they get an RMST_CONT message from the filter.
- Users may need to manually adjust certain parameters to tailor Rmst to
- their particular environment. Down the road these parameters may
- become self adjusting or adaptive. The most important are enumerated
- here:
- 1.) Refer to the Diffusion API and sample rmst application code in
- this release. You will note that the call to dr_->sendRmst has a
- third parameter called "fragment_size." Different sensor nets have
- different MTU limitations. Even MAC layers that do
- fragmentation/reassembly can only handle a modest sized payload.
- You must adjust fragment_size such that the combination of all your
- attributes, packet overhead, and payload do not exceed your network
- MTU. Rmst will break up any blob that is larger than the
- fragment_size into multiple fragments.
- 2.) In rmst_filter.hh you will find some tunable parameters. Most
- notable is the "SEND_INTERVAL." This dictates how often packets are
- injected into the sensor network at the source. The fragment send
- rate is not controlled by the application when sending a large
- blob. Rmst must interleave NAK responses and new packets while
- pacing the overall load that it presents to the network. This rate
- could be made adaptive given the addition of some sort of
- backpressure mechanism to diffusion.
- 3.) Rmst has a coarse grained blacklisting mechanism whereby links
- that deliver a low percentage of the packets placed on them are
- eliminated from contention during path discovery. This percentage is
- tunable in rmst_filter.hh.
- Thanks,
- Fred Stann