⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2041.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 5 页
字号:

   As an alternative, we have developed a graphical tool that displays
   the image of a building map and expects the user to "click" their
   location as they move; the coordinates on the map are recorded in one
   or more general tracks.  The header of such tracks can also record
   the coordinates of the base stations if they are known.

   An extension can be easily added to this tool to permit multiple
   maps.  As the user requests that a new map be loaded into the
   graphical tracing tool, a new location track is created along with an
   annotation record that captures the file name of that image.
   Locations of new base stations can be recorded in this new track



Noble, et. al.               Informational                     [Page 16]

RFC 2041                 Mobile Network Tracing             October 1996


   header.  Each location track should represent a different physical
   and wireless environment.

5.2. Trace Modulation Tools

   A key tool we have built around our trace format is PaM, the Packet
   Modulator.  The idea behind PaM is to take traces that were collected
   by a mobile host and distill them into modulation traces.  These
   modulation traces capture the networking environment seen by the
   traced host, and are used by a PaM kernel to delay, drop, or corrupt
   incoming and outgoing packets.  With PaM, we've built a testbed that
   can repeatably, reliably mimic live systems under certain mobile
   scenarios.

   There are three main components to PaM. First, we've built a kernel
   capable of delaying, dropping, and corrupting packets to match the
   characteristics of some observed network.  Second, we've defined a
   modulation trace format to describe how such a kernel should modulate
   packets.  Third, we've built a tool to generate modulation traces
   from certain classes of raw traces collected by mobile hosts.

5.2.1. Packet Modulation

   The PaM modulation tool has been placed in the kernel between the IP
   layer and the underlying interfaces.  The tool intercepts incoming
   and outgoing packets, and may choose to drop it, corrupt it, or delay
   it.  Dropping an incoming or outgoing packet is easy, simply don't
   forward it along.  Similarly, we can corrupt a packet by flipping
   some bits in the packet before forwarding it.

   Correctly delaying a packet is slightly more complicated.  We model
   the delay a packet experiences as the time it takes the sender to put
   the packet onto the network interface plus the time it takes for the
   last byte to propagate to the receiver.  The former, the transmission
   time, is the size of the packet divided by the available bandwidth;
   the latter is latency.

   Our approach at delay modulation is simple -- we assume that the
   actual network over which packets travel is much faster and of better
   quality than the one we are trying to emulate, and can thus ignore
   it.  We delay the packet according to our latency and bandwidth
   targets, and then decide whether to drop or corrupt it.  We take care
   to ensure that packet modulation does not unduly penalize other
   system activity, using the internal system clock to schedule packets.
   Since this clock is at a large granularity compared to delay
   resolution, we try to keep the average error in scheduling to a
   minimum, rather than scheduling each packet at exactly the right
   time.



Noble, et. al.               Informational                     [Page 17]

RFC 2041                 Mobile Network Tracing             October 1996


5.2.2. Modulation Traces

   To tell the PaM kernel how the modulation parameters change over
   time, we provide it with a series of modulation-trace entries.  Each
   of these entries sets loss and corruption percentages, as well as
   network latency and inter-byte time, which is 1/bandwidth.  These
   entries are stored in a trace file, the format of which is much
   simpler than record-format traces, and is designed for efficiency in
   playback.  The format of modulation traces is shown in Figure 10.

      struct tr_rep_hdr_t {
          u_int32_t        rh_magic;
          u_int32_t        rh_size;
          u_int32_t        rh_time_fmt;         /* nsec or used */
          struct tr_time_t rh_ts;
          char             rh_date[TR_DATESZ];
          char             rh_agent[TR_NAMESZ];
          u_int32_t        rh_ip;
          u_int32_t        rh_ibt_ticks;        /* units/sec, ibt */
          u_int32_t        rh_lat_ticks;        /* units/sec, lat */
          u_int32_t        rh_loss_max;         /* max loss rate */
          u_int32_t        rh_crpt_max;         /* max corrupt rate */
          char             rh_desc[0];          /* variable size */
      };

      struct tr_rep_ent_t {
          u_int32_t         re_magic;
          struct tr_time_t  re_dur;          /* duration of entry */
          u_int32_t         re_lat;          /* latency */
          u_int32_t         re_ibt;          /* inter-byte time */
          u_int32_t         re_loss;         /* loss rate */
          u_int32_t         re_crpt;         /* corrupt rate */
      };


                   Figure 10: Modulation trace format

   Modulation traces begin with a header that is much like that found in
   record-format trace headers.  Modulation headers additionally carry
   the units in which latency and inter-byte time are expressed, and the
   maximum values for loss and corruption rates.  Individual entries
   contain the length of time for which the entry applies as well as the
   latency, inter-byte time, loss rate, and corruption rate.








Noble, et. al.               Informational                     [Page 18]

RFC 2041                 Mobile Network Tracing             October 1996


5.2.3. Trace Transformation

   How can we generate these descriptive modulation traces from the
   recorded observational traces described in Section 4?  To ensure a
   high-quality modulation trace, we limit ourselves to a very narrow
   set of source traces.  As our experience with modulation traces is
   limited, we use a simple but tunable algorithm to generate them.

   Our basic strategy for determining latency and bandwidth is tied
   closely to our model of packet delays:  delay is equal to
   transmission time plus latency.  We further assume that packets which
   traversed the network near one another in time experienced the same
   latency and bandwidth during transit.  Given this, we look for two
   packets of different size that were sent close to one another along
   the same path; from the transit times and sizes of these packets, we
   can determine the near-instantaneous bandwidth and latency of the
   end-to-end path covered by those packets.  If traced packet traffic
   contains sequence numbers, loss rates are fairly easy to calculate.
   Likewise, if the protocol is capable of marking corrupt packets,
   corruption information can be stored and then extracted from recorded
   traces.

   Using timestamped packet observations to derive network latency and
   bandwidth requires very accurate timing.  Unfortunately, the laptops
   we have on hand have clocks that drift non-negligibly.  We have
   chosen not to use protocols such as NTP [9] for two reasons.  First,
   they produce network traffic above and beyond that in the known
   traced workload.  Second, and perhaps more importantly, they can
   cause the clock to speed up or slow down during adjustment.  Such
   clock movements can play havoc with careful measurement.

   As a result, we can only depend on the timestamps of a single machine
   to determine packet transit times.  So, we use the ICMP ECHO service
   to provide workloads on traced machines; the ECHO request is
   timestamped on it's way out, and the corresponding ECHOREPLY is
   traced.  We have modified the ping program to alternate between small
   and large packets.  Traces that capture such altered ping traffic can
   then be subject to our transformation tool.

   The tool itself uses a simple sliding window scheme to generate
   modulation entries.  For each window position in the recorded trace,
   we determine the loss rate, and the average latency and bandwidth
   experienced by pairs of ICMP ECHO packets.  The size and granularity
   of the sliding window are parameters of the transformation; as we
   gain experience both in analysis and modulation of wireless traces,
   we expect to be able to recommend good window sizes.





Noble, et. al.               Informational                     [Page 19]

RFC 2041                 Mobile Network Tracing             October 1996


   Unfortunately, our wireless devices do not report corrupt packets;
   they are dropped by the hardware without operating system
   notification.  However, our modulation system will also coerce any
   such corruptions to an increased loss rate, duplicating the behavior
   in the original network.

5.3. Trace Analysis Tools

   A trace is only as useful as its processing tools.  The requirements
   for such tools tools include robustness, flexibility, and
   portability.  Having an extensible trace format places additional
   emphasis on the ability to work with future versions.  To this end,
   we provide a general processing library as a framework for users to
   easily develop customized processing tools; this library is designed
   to provide both high portability and good performance.

   In this section, we first present the trace library.  We then
   describe a set of tools for simple post-processing and preparing the
   trace for further analyses.  We conclude with a brief description of
   our analysis tools that are applied to this minimally processed data.

5.3.1. Trace Library

   The trace library provides an interface that applications can use to
   simplify interaction with network traces, including functions to
   read, write, and print trace records.  The trace reading and writing
   functions manage byte swapping as well as optional integrity checking
   of the trace as it is read or written.  The library employs a
   buffering strategy that is optimized to trace I/O. Trace printing
   facilities are provided for both debugging and parsing purposes.

5.3.2. Processing Tools

   The processing tools are generally the simplest set of tools we have
   built around the trace format.  By far the most complicated one is
   the modulation-trace transformation tool described in Section 5.2.3;
   the remainder are quite simple in comparison.  The first such tool is
   a parser that prints the content of an entire trace.  With the trace
   library, it is less than a single page of C code.  For each record,
   it prints the known data fields along with their textual names,
   followed by all the optional properties and values.

   Since many analysis tasks tend to work with records of the same type,
   an enhanced version of the parser can split the trace data by tracks
   into many files, one per track.  Each line of the output text files
   contains a time stamp followed by the integer values of all the
   optional data in a track entry; in this form traces are amenable to
   further analysis be scripts written in an interpreted language such



Noble, et. al.               Informational                     [Page 20]

RFC 2041                 Mobile Network Tracing             October 1996


   as perl.

   We have developed a small suite of tools providing simple functions
   such as listing all the track headers and changing the trace
   description as they have been needed.  With the trace library, each
   such tool is trivial to construct.

5.3.3. Analysis Tools

   Analysis tools depend greatly on the kind of information an
   experimenter wants to extract from the trace; our tools show our own
   biases in experimentation.  Most analyses derive common statistical
   descriptions of traces, or establish some correlation between the
   trace data sets.

   As early users of the trace format and collection tools, we have
   developed a few analysis tools to study the behavior of the wireless
   networks at our disposal.  We have been particularly interested in
   loss characteristics of wireless channels and their relation to
   signal quality and the position of the mobile host.  In this section,
   we briefly present some of these tools to hint at the kind of
   experimentation possible with our trace format.

   Loss characteristics are among the most interesting aspects of
   wireless networks, and certainly among the least well understood.  To
   shed light on this area, we have created tools to extract the loss
   information from collected traces; in addition to calculating the
   standard parameters such as the packet loss rate, the tool also
   derives transitional probabilities for a two-state error model.

   This has proven to be a simple yet powerful model for capturing the
   burstiness observed in wireless loss rates due to fading signals.  To
   help visualize the channel behavior in the presence of mobility, our
   tool can replay the movement of the mobile host while plotting the
   loss rate as it changes with time.  It also allows us to zoom in the
   locations along the path and obtain detailed statistics over
   arbitrary time intervals.

   Our traces can be further analyzed to understand the relationship
   between channel behavior and the signal quality.  For wireless
   devices like the NCR WaveLAN, we can easily obtain measurements of
   signal quality, signal strength, and noise level.  We have developed
   a simple statistical tool to test the correlation between measured
   signal and the loss characteristics.  Variations of this test are
   also possible using different combinations of the three signal
   measurements and the movement of the host.




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -