📄 readme
字号:
Rmst Filter READMEJune 12, 2003Fred Stannfstann@usc.eduThe code in this directory constitutes the initial release of the RmstFilter. The Rmst filter provides guranteed delivery and fragmentation/ reassembly of large blobs. Rmst has had limited deployment in anactual sensor network. To that extent the Rmst filter should beconsidered experimental. It has been "tuned" to the environment inwhich it was deployed (the ISI testbed). New environments may presenttraffic scenerios that cause Rmst to have sub-optimal behavior. Thebest way to receive help debugging such scenerios is to run the filterwith the "-d 10" command line option and capture the DiffPrint screenoutput at key nodes (like sources and sinks), then email them tofstann@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-2support 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 likeS-MAC that provides hop-by-hop repair. Rmst "caching mode" support(in which each node caches fragments rather than just sources andsinks) is not available in this release. Future releases willre-enable this feature which was present in the simulation code usedduring research and development.Rmst has a coarse grained pacing mechanism for applications. Aftersources call sendRmst, they should not send another large blob untilthey get an RMST_CONT message from the filter.Users may need to manually adjust certain parameters to tailor Rmst totheir particular environment. Down the road these parameters maybecome self adjusting or adaptive. The most important are enumeratedhere: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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -