rfc2211.txt
来自「<VC++网络游戏建摸与实现>源代码」· 文本 代码 · 共 1,068 行 · 第 1/4 页
TXT
1,068 行
errors, are not bounded by this service.5. Invocation Information The controlled-load service is invoked by specifying the data flow's desired traffic parameters (TSpec) to the network element. Requests placed for a new flow will be accepted if the network element has the capacity to forward the flow's packets as described above. Requests to change the TSpec for an existing flow should be treated as a new invocation, in the sense that admission control must be reapplied to the flow. Requests that reduce the TSpec for an existing flow (in theWroclawski Standards Track [Page 5]RFC 2211 Controlled-Load Network September 1997 sense that the new TSpec is strictly smaller than the old TSpec according to the ordering rules given below) should never be denied service. The Controlled-Load service uses the TOKEN_BUCKET_TSPEC defined in Reference [5] to describe a data flow's traffic parameters. This TSpec takes the form of a token bucket specification plus a peak rate (p), a minimum policed unit (m) and a maximum packet size (M). The token bucket specification includes a bucket rate r and a bucket depth, b. Both r and b must be positive. The rate, r, is measured in bytes of IP datagrams per second. Values of this parameter may range from 1 byte per second to 40 terabytes per second. Network elements MUST return an error for requests containing values outside this range. Network elements MUST return an error for any request containing a value within this range which cannot be supported by the element. In practice, only the first few digits of the r parameter are significant, so the use of floating point representations, accurate to at least 0.1% is encouraged. The bucket depth, b, is measured in bytes. Values of this parameter may range from 1 byte to 250 gigabytes. Network elements MUST return an error for requests containing values outside this range. Network elements MUST return an error for any request containing a value within this range which cannot be supported by the element. In practice, only the first few digits of the b parameter are significant, so the use of floating point representations, accurate to at least 0.1% is encouraged. The range of values allowed for these parameters is intentionally large to allow for future network technologies. Any given network element is not expected to support the full range of values. 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 parameter exists in this version of the specification primarily for TSpec compatability with other QoS control services and the shared TOKEN_BUCKET_TSPEC parameter. While some admission control and buffer allocation algorithms may find the peak rate value useful, the field may always be ignored by a Controlled-Load service conforming to this version of the specification. That is, the service module at a network element may always assume that the peak data rate arriving at that element is the line rate of the incoming interface, and the service's evaluation criteria do not require a network element to consider the peak rate value. More explicit use of the peak-rate parameter by a Controlled-Load service module may be added to the specification in the future.Wroclawski Standards Track [Page 6]RFC 2211 Controlled-Load Network September 1997 The minimum policed unit, m, is an integer measured in bytes. All IP datagrams less than size m will be counted against the token bucket as being of size m. The maximum packet size, M, is the biggest packet that will conform to the traffic specification; it is also measured in bytes. Network elements MUST reject a service request if the requested maximum packet size is larger than the MTU of the link. Both m and M must be positive, and m must be less then or equal to M. The preferred concrete representation for the TSpec is three floating point numbers in single-precision IEEE floating point format followed by two 32-bit integers in network byte order. The first value is the rate (r), the second value is the bucket size (b), the third is the peak rate (p), the fourth is the minimum policed unit (m), and the fifth is the maximum packet size (M). For the parameters (r) and (b), only bit-patterns which represent valid non-negative floating point numbers are allowed. Negative numbers (including "negative zero), infinities, and NAN's are not allowed. For the parameter (p) only bit-patterns which represent valid non-negative floating point numbers or positive infinity are allowed. Positive infinity is represented with an exponent of all ones (255) and a sign bit and mantissa of all zeroes. Negative numbers (including "negative zero"), negative infinity, and NAN's are not allowed. NOTE: An implementation which utilizes general-purpose hardware or software IEEE floating-point support may wish to verify that arriving parameters meet this requirement before using the parameters in floating-point computations, in order to avoid unexpected exceptions or traps. The controlled-load service is assigned service_name 5. The TOKEN_BUCKET_TSPEC parameter used by the Controlled-Load service is general parameter number 127, as indicated in [5].6. Exported Information The controlled-load service has no required characterization parameters. Individual implementations may export appropriate implementation-specific measurement and monitoring information.7. Policing The controlled-load service is provided to a flow on the basis that the flow's traffic conforms to a TSpec given at flow setup time. This section defines the meaning of conformance to the controlled-load TSpec, describes the circumstances under which a controlled-load flow's traffic might *not* conform to the TSpec, and specifies the network element's action in those circumstances.Wroclawski Standards Track [Page 7]RFC 2211 Controlled-Load Network September 1997 Controlled-load service modules provide QoS control for traffic conforming to the TSpec given at setup time. The TSpec's token bucket parameters require that traffic must obey the rule that over all time periods, the amount of data sent does not exceed rT+b, where r and b are the token bucket parameters and T is the length of the time period. For the purposes of this accounting, links must count packets that are smaller than the minimal policing unit m to be of size m. Packets that arrive at an element and cause a violation of the the rT+b bound are considered nonconformant. Additionally, packets bigger than the outgoing link MTU are considered nonconformant. It is expected that this situation will not arise with any frequency, because flow setup mechanisms are expected to notify the sending application of the appropriate path MTU. In the presence of nonconformant packets arriving for one or more controlled-load flows, each network element must ensure locally that the following requirements are met: 1) The network element MUST continue to provide the contracted quality of service to those controlled-load flows not experiencing excess traffic. 2) The network element SHOULD prevent excess controlled-load traffic from unfairly impacting the handling of arriving best- effort traffic. This requirement is discussed further in Section 9 of this document (Guidelines for Implementors). 3) Consistent with points 1 and 2, the network element MUST attempt to forward the excess traffic on a best-effort basis if sufficient resources are available. Network elements must not assume that that arrival of nonconformant traffic for a specific controlled-load flow will be unusual, or indicative of error. In certain circumstances (particularly, routers acting as the "split points" of a multicast distribution tree supporting a shared reservation) large numbers of packets will fail the conformance test *as a matter of normal operation*. Network elements must not assume that data sources or upstream elements have taken action to "police" controlled-load flows by limiting their traffic to conform to the flow's TSpec. Each network element providing controlled-load service MUST independently ensure that the requirements given above are met in the presence of nonconformant arriving traffic for one or more controlled-load flows.Wroclawski Standards Track [Page 8]RFC 2211 Controlled-Load Network September 1997 Network elements may use any appropriate implementation mechanism to meet the requirements given above. Examples of such mechanisms include token-bucket policing filters and per-flow scheduling algorithms. However, it is insufficient to simply place all controlled-load flows into the same shared resource pool, without first ensuring that non-conformant flows are prevented from starving conformant flows of the necessary processing resources. Further discussion of this issue may be found in Section 11 of this note. Beyond requirements 2 and 3 above, the controlled-load service does not define the QoS behavior delivered to flows with non-conformant arriving traffic. Specifically, it is permissible either to degrade the service delivered to all of the flow's packets equally, or to sort the flow's packets into a conformant set and a nonconformant set and deliver different levels of service to the two sets. This point is discussed further in Section 9 of this note. When resources are available, network elements at points within the interior of the network SHOULD be prepared to accommodate packet bursts somewhat larger than the actual TSpec. This requirement derives from the traffic distortion effect described in Section 4. As described there, it may be met either through explicit means or statistical multiplexing of shared buffering resources. When handling such traffic, it is permissible to allow some delaying of a packet if that delay would allow it to pass the policing function. (In other words, to reshape the traffic). However, the overall requirement for limiting the duration of any such traffic distortion must be considered. The challenge is to define a viable reshaping function. Intuitively, a plausible approach is to allow a delay of (roughly) up to the maximum queueing delay experienced by completely conforming packets before declaring that a packet has failed to pass the policing function. The merit of this approach, and the precise wording of the specification that describes it, require further study.8. Ordering and Merging The controlled-load service TSpec is ordered according to the following rule: TSpec A is a substitute for ("as good or better than" or "greater than or equal to") TSpec B if and only if:Wroclawski Standards Track [Page 9]RFC 2211 Controlled-Load Network September 1997 (1) the token bucket rate r for TSpec A is greater than or equal to that of TSpec B, (2) the token bucket depth b for TSpec A is greater than or equal to that of TSpec B, (3) the peak rate p for TSpec A is greater than or equal to that of TSpec B, (4) the minimum policed unit m for TSpec A is less than or equal to that of TSpec B, (5) the maximum packet size M of TSpec A is greater than or equal to that of TSpec B. Note that not all TSpecs can be ordered with respect to each other. If two TSpecs differ but not all five of the points above are true, then the TSpecs are unordered. A merged TSpec is the TSpec used by the RSVP protocol when merging a set of TSpecs to create a "merged" reservation. TSpec merging is described further in [4] and [3]. The TSpec merge operation addresses two requirements:
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?