rfc2212.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,124 行 · 第 1/4 页
TXT
1,124 行
Shenker, et. al. Standards Track [Page 5]
RFC 2212 Guaranteed Quality of Service September 1997
The TSpec takes the form of a token bucket plus a peak rate (p), a
minimum policed unit (m), and a maximum datagram size (M).
The token bucket has a bucket depth, b, and a bucket rate, r. Both b
and r MUST be positive. The rate, r, is measured in bytes of IP
datagrams per second, and can range from 1 byte per second to as
large as 40 terabytes per second (or close to what is believed to be
the maximum theoretical bandwidth of a single strand of fiber).
Clearly, particularly for large bandwidths, only the first few digits
are significant and so the use of floating point representations,
accurate to at least 0.1% is encouraged.
The bucket depth, b, is also measured in bytes and can range from 1
byte to 250 gigabytes. Again, floating point representations
accurate to at least 0.1% are encouraged.
The range of values is intentionally large to allow for the future
bandwidths. The range is not intended to imply that a network
element has to support the entire range.
The peak rate, p, is measured in bytes of IP datagrams per second and
has the same range and suggested representation as the bucket rate.
The peak rate is the maximum rate at which the source and any
reshaping points (reshaping points are defined below) may inject
bursts of traffic into the network. More precisely, it is a
requirement that for all time periods the amount of data sent cannot
exceed M+pT where M is the maximum datagram size and T is the length
of the time period. Furthermore, p MUST be greater than or equal to
the token bucket rate, r. If the peak rate is unknown or
unspecified, then p MUST be set to infinity.
The minimum policed unit, m, is an integer measured in bytes. All IP
datagrams less than size m will be counted, when policed and tested
for conformance to the TSpec, as being of size m. The maximum
datagram size, M, is the biggest datagram that will conform to the
traffic specification; it is also measured in bytes. The flow MUST
be rejected if the requested maximum datagram size is larger than the
MTU of the link. Both m and M MUST be positive, and m MUST be less
than or equal to M.
The guaranteed service uses the general TOKEN_BUCKET_TSPEC
parameter defined in Reference [8] to describe a data flow's
traffic characteristics. The description above is of that
parameter. The TOKEN_BUCKET_TSPEC is general parameter number
127. Use of this parameter for the guaranteed service TSpec
simplifies the use of guaranteed Service in a multi-service
environment.
Shenker, et. al. Standards Track [Page 6]
RFC 2212 Guaranteed Quality of Service September 1997
The RSpec is a rate R and a slack term S, where R MUST be greater
than or equal to r and S MUST be nonnegative. The rate R is again
measured in bytes of IP datagrams per second and has the same range
and suggested representation as the bucket and the peak rates. The
slack term S is in microseconds. The RSpec rate can be bigger than
the TSpec rate because higher rates will reduce queueing delay. The
slack term signifies the difference between the desired delay and the
delay obtained by using a reservation level R. This slack term can
be utilized by the network element to reduce its resource reservation
for this flow. When a network element chooses to utilize some of the
slack in the RSpec, it MUST follow specific rules in updating the R
and S fields of the RSpec; these rules are specified in the Ordering
and Merging section. If at the time of service invocation no slack
is specified, the slack term, S, is set to zero. No buffer
specification is included in the RSpec because the network element is
expected to derive the required buffer space to ensure no queueing
loss from the token bucket and peak rate in the TSpec, the reserved
rate and slack in the RSpec, the exported information received at the
network element, i.e., Ctot and Dtot or Csum and Dsum, combined with
internal information about how the element manages its traffic.
The TSpec can be represented by three floating point numbers in
single-precision IEEE floating point format followed by two 32-bit
integers in network byte order. The first floating point value is
the rate (r), the second floating point value is the bucket size (b),
the third floating point is the peak rate (p), the first integer is
the minimum policed unit (m), and the second integer is the maximum
datagram size (M).
The RSpec rate term, R, can also be represented using single-
precision IEEE floating point.
The Slack term, S, can be represented as a 32-bit integer. Its value
can range from 0 to (2**32)-1 microseconds.
When r, b, p, and R terms are represented as IEEE floating point
values, the sign bit MUST be zero (all values MUST be non-negative).
Exponents less than 127 (i.e., 0) are prohibited. Exponents greater
than 162 (i.e., positive 35) are discouraged, except for specifying a
peak rate of infinity. Infinity is represented with an exponent of
all ones (255) and a sign bit and mantissa of all zeroes.
Exported Information
Each guaranteed service module MUST export at least the following
information. All of the parameters described below are
characterization parameters.
Shenker, et. al. Standards Track [Page 7]
RFC 2212 Guaranteed Quality of Service September 1997
A network element's implementation of guaranteed service is
characterized by two error terms, C and D, which represent how the
element's implementation of the guaranteed service deviates from the
fluid model. These two parameters have an additive composition rule.
The error term C is the rate-dependent error term. It represents the
delay a datagram in the flow might experience due to the rate
parameters of the flow. An example of such an error term is the need
to account for the time taken serializing a datagram broken up into
ATM cells, with the cells sent at a frequency of 1/r.
NOTE: It is important to observe that when computing the delay
bound, parameter C is divided by the reservation rate R. This
division is done because, as with the example of serializing the
datagram, the effect of the C term is a function of the
transmission rate. Implementors should take care to confirm that
their C values, when divided by various rates, give appropriate
results. Delay values that are not dependent on the rate SHOULD
be incorporated into the value for the D parameter.
The error term D is the rate-independent, per-element error term and
represents the worst case non-rate-based transit time variation
through the service element. It is generally determined or set at
boot or configuration time. An example of D is a slotted network, in
which guaranteed flows are assigned particular slots in a cycle of
slots. Some part of the per-flow delay may be determined by which
slots in the cycle are allocated to the flow. In this case, D would
measure the maximum amount of time a flow's data, once ready to be
sent, might have to wait for a slot. (Observe that this value can be
computed before slots are assigned and thus can be advertised. For
instance, imagine there are 100 slots. In the worst case, a flow
might get all of its N slots clustered together, such that if a
packet was made ready to send just after the cluster ended, the
packet might have to wait 100-N slot times before transmitting. In
this case one can easily approximate this delay by setting D to 100
slot times).
If the composition function is applied along the entire path to
compute the end-to-end sums of C and D (Ctot and Dtot) and the
resulting values are then provided to the end nodes (by presumably
the setup protocol), the end nodes can compute the maximal datagram
queueing delays. Moreover, if the partial sums (Csum and Dsum) from
the most recent reshaping point (reshaping points are defined below)
downstream towards receivers are handed to each network element then
these network elements can compute the buffer allocations necessary
Shenker, et. al. Standards Track [Page 8]
RFC 2212 Guaranteed Quality of Service September 1997
to achieve no datagram loss, as detailed in the section Guidelines
for Implementors. The proper use and provision of this service
requires that the quantities Ctot and Dtot, and the quantities Csum
and Dsum be computed. Therefore, we assume that usage of guaranteed
service will be primarily in contexts where these quantities are made
available to end nodes and network elements.
The error term C is measured in units of bytes. An individual
element can advertise a C value between 1 and 2**28 (a little over
250 megabytes) and the total added over all elements can range as
high as (2**32)-1. Should the sum of the different elements delay
exceed (2**32)-1, the end-to-end error term MUST be set to (2**32)-1.
The error term D is measured in units of one microsecond. An
individual element can advertise a delay value between 1 and 2**28
(somewhat over two minutes) and the total delay added over all
elements can range as high as (2**32)-1. Should the sum of the
different elements delay exceed (2**32)-1, the end-to-end delay MUST
be set to (2**32)-1.
The guaranteed service is service_name 2.
The RSpec parameter is numbered 130.
Error characterization parameters C and D are numbered 131 and 132.
The end-to-end composed values for C and D (Ctot and Dtot) are
numbered 133 and 134. The since-last-reshaping point composed values
for C and D (Csum and Dsum) are numbered 135 and 136.
Policing
There are two forms of policing in guaranteed service. One form is
simple policing (hereafter just called policing to be consistent with
other documents), in which arriving traffic is compared against a
TSpec. The other form is reshaping, where an attempt is made to
restore (possibly distorted) traffic's shape to conform to the TSpec,
and the fact that traffic is in violation of the TSpec is discovered
because the reshaping fails (the reshaping buffer overflows).
Policing is done at the edge of the network. Reshaping is done at
all heterogeneous source branch points and at all source merge
points. A heterogeneous source branch point is a spot where the
multicast distribution tree from a source branches to multiple
distinct paths, and the TSpec's of the reservations on the various
outgoing links are not all the same. Reshaping need only be done if
the TSpec on the outgoing link is "less than" (in the sense described
in the Ordering section) the TSpec reserved on the immediately
upstream link. A source merge point is where the distribution paths
Shenker, et. al. Standards Track [Page 9]
RFC 2212 Guaranteed Quality of Service September 1997
or trees from two different sources (sharing the same reservation)
merge. It is the responsibility of the invoker of the service (a
setup protocol, local configuration tool, or similar mechanism) to
identify points where policing is required. Reshaping may be done at
other points as well as those described above. Policing MUST not be
done except at the edge of the network.
The token bucket and peak rate parameters require that traffic MUST
obey the rule that over all time periods, the amount of data sent
cannot exceed M+min[pT, rT+b-M], where r and b are the token bucket
parameters, M is the maximum datagram size, and T is the length of
the time period (note that when p is infinite this reduces to the
standard token bucket requirement). For the purposes of this
accounting, links MUST count datagrams which are smaller than the
minimum policing unit to be of size m. Datagrams which arrive at an
element and cause a violation of the the M+min[pT, rT+b-M] bound are
considered non-conformant.
At the edge of the network, traffic is policed to ensure it conforms
to the token bucket. Non-conforming datagrams SHOULD be treated as
best-effort datagrams. [If and when a marking ability becomes
available, these non-conformant datagrams SHOULD be ''marked'' as
being non-compliant and then treated as best effort datagrams at all
subsequent routers.]
Best effort service is defined as the default service a network
element would give to a datagram that is not part of a flow and was
sent between the flow's source and destination. Among other
implications, this definition means that if a flow's datagram is
changed to a best effort datagram, all flow control (e.g., RED [2])
that is normally applied to best effort datagrams is applied to that
datagram too.
NOTE: There may be situations outside the scope of this document,
such as when a service module's implementation of guaranteed
service is being used to implement traffic sharing rather than a
quality of service, where the desired action is to discard non-
conforming datagrams. To allow for such uses, implementors SHOULD
ensure that the action to be taken for non-conforming datagrams is
configurable.
Inside the network, policing does not produce the desired results,
because queueing effects will occasionally cause a flow's traffic
that entered the network as conformant to be no longer conformant at
some downstream network element. Therefore, inside the network,
network elements that wish to police traffic MUST do so by reshaping
traffic to the token bucket. Reshaping entails delaying datagrams
until they are within conformance of the TSpec.
Shenker, et. al. Standards Track [Page 10]
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?