📄 rfc1363.txt
字号:
RFC 1363 A Proposed Flow Specification September 1992
delay sensitive, the routing system must seek out the most direct
route for the flow. But if the routing system is told that the flow
is sensitive only to delays over 100 milliseconds, there may be a
number of routes other than the most direct route which can satisfy
this delay, thus leaving the most direct route available for a later
flow which needs a far lower delay.
In fairness, it should be noted that a danger of a parametric model
is that it is very easy to have too many parameters. The yearn to
optimize can be overdone. The goal of this flow spec is to enumerate
just enough parameters that it appears that essential needs can be
expressed, and the internetwork has some information it can use to
try to manage the flows. Features that would simply be nice or
useful to have (but not essential) are left out to keep the parameter
space small.
An Implication of the Flow Spec
It is important to observe that the there are fields in the flow spec
that are based on information from the sender (such as rate
information) and fields in the flow spec that are based on
information from the receiver (such as delay variation). There are
also fields that may sender and receiver to negotiate in advance.
For example, the acceptable loss rate may depend on whether the
sender and receiver both support the same type of forward error
correction. The delay sensitivity for a voice connection may depend,
in part, on whether both sender and receiver support echo cancelling.
The implication is that the internetwork must permit the sender and
receiver to communicate in advance of setting up a flow, because a
flow spec can only be defined once both sender and receiver have had
their say. In other words, a reserved flow should not be the only
form of communication. There must be some mechanism to perform a
short exchange of messages in preparation for setting up a flow.
(Another aside: it has been suggested that perhaps the solution to
this problem is to have the sender establish a flow with an
incomplete flow spec, and when the receiver gets the flow spec, have
the receiver send the completed flow spec back along the flow, so the
internetwork can "revise" the flow spec according to the receiver's
desires. I have two problems with this approach. First, it is
entirely possible that the receiver's information may lead the
internetwork to conclude that the flow established by the sender is
no good. For example, the receiver may indicate it has a smaller
tolerance for delay variation than expected and force the flow to be
rerouted over a completely different path. Second, if we try to
avoid having the receiver's information cause the flow to fail, then
we have to over-allocate the flow's during the preliminary setup.
Partridge [Page 16]
RFC 1363 A Proposed Flow Specification September 1992
But over allocating the resources requested may lead us to choose
better quality paths than we need for this flow. In other words, our
attempts to optimize use of the network will fail.)
Advance Reservations and Flow Duration
The primary purpose of a flow specification is to provide information
to the internetwork so the internetwork can properly manage the
proposed flow's traffic in the context of other traffic in the
internetwork. One question is whether the flow should give the
network information about when the flow is expected to start and how
long the flow is expected to last.
Announcing when a flow will start is generally of interest for
advance reservations. (If the flow is not be reserved substantially
in advance, the presentation of the flow spec to the internetwork can
be taken as an implicit request for a flow, now.) It is my view that
advance reservation is a distinct problem from the describing the
properties of a flow. Advanced reservations will require some
mechanism to maintain information in the network about flows which
are not currently active but are expected to be activated at some
time in the future. I anticipate this will require some sort of
distributed database to ensure that information about advanced
reservations is not accidentally lost if parts of the internetwork
crash. In other words, advance reservations will require
considerable additional supporting baggage that it would probably be
better to keep out of the average flow spec.
Deciding whether a flow spec should contain information about how
long the flow is expected to run is a harder decision to make.
Clearly if we anticipate that the internetwork will support advance
reservations, it will be necessary for elements of the internetwork
to predict their traffic load, so they can ensure that advance
reservations are not compromised by new flow requests. However,
there is a school of thought that believes that estimating future
load from current behavior of existing flows is more accurate than
anything the flows may have declared in their flow specs. For this
reason, I've left a duration field out of the flow spec.
Examples
To illustrate how the flow spec values might be used, this section
presents three example flow specs.
Telnet
For the first example, consider using the flow spec to request
service for an existing application: Telnet. Telnet is a virtual
Partridge [Page 17]
RFC 1363 A Proposed Flow Specification September 1992
terminal protocol, and one can think of it as stringing a virtual
wire across the network between the user's terminal and a remote
host.
Telnet has proved a very successful application without a need to
reserve bandwidth: the amount of data sent over any Telnet
connection tends to be quite small. However, Telnet users are
often quite sensitive to delay, because delay can affect the time
it takes to echo characters. This suggests that a Telnet
connection might benefit from asking the internetwork to avoid
long delay paths. It could so so using the following flow spec
(for both directions):
Version=1
MTU=80 [40 bytes of overhead + 40 bytes user data]
Token Bucket Rate=0/0/0 [don't want a guarantee]
Token Bucket Size=0/0/0
Maximum Transmission Rate=0/0/0
Maximum Delay Noticed=1/1 [constant = delay sensitive]
Maximum Delay Variation=0/0/0 [not a concern]
Loss Sensitivity=1/0 [don't worry about loss]
Burst Loss Sensitivity=1/0
Loss Interval=1/0
Quality of Guarantee=1/0 [just asking]
It is worth noting that Telnet's flow spec is likely to be the
same for all instantiations of a Telnet connection. As a result,
there may be some optimizations possible (such as just tagging
Telnet packets as being subject to the well-known Telnet flow
spec).
A Voice Flow
Now consider transmitting voice over the Internet. Currently,
good quality voice can be delivered at rates of 32Kbit/s or
16Kbit/s. Assuming the rate is 32Kbit/s and voice samples are 16
bit samples packaged into UDP datagrams (for a data rate of about
60 Kbyte/s), a flow spec might be:
Version=1
MTU=30 [2 byte sample in UDP datagram]
Token Bucket Rate=0/10/59 [60.4 Kbytes/s]
Token Bucket Size=0/0/30 [save enough to send immediately
after pauses]
Maximum Transmission Rate=0/10/59 [peak same as mean]
Maximum Delay Noticed=0/10/100 [100 ms]
Maximum Delay Variation=0/10/10 [keep variation low]
Loss Sensitivity=1/1 [loss sensitive]
Partridge [Page 18]
RFC 1363 A Proposed Flow Specification September 1992
Burst Loss Sensitivity=0/0/5 [keep bursts small]
Loss Interval=1/0
Quality of Guarantee=1/201 [predicted service and I'll accept
worse]
A Variable Bit-Rate Video Flow
Variable bit-rate video transmissions vary the rate at which they
send data according to the amount of the video image that has
changed between frames. In this example, we consider a one-way
broadcast of a picture. If we assume 30 frames a second and that
a full frame is about 1 megabit of data, and that on average about
10% of the frame changes, but in the worst case the entire frame
changes, the flow spec might be:
Version=1
MTU=4096 [big so we can put lots of bits in each packet]
Token Bucket Rate=0/20/1 [8 Mbits/s]
Token Bucket Size=0/17/2 [2 Mbits/s]
Maximum Transmission Rate=0/20/30 [30 Mbits/s]
Maximum Delay Noticed=1/1 [somewhat delay sensitive]
Maximum Delay Variation=0/10/1 [no more than one second of
buffering]
Loss Sensitivity=0/0/1 [worst case, one loss per frame]
Burst Loss Sensitivity=0/0/1 [no burst errors please]
Loss Interval=0/0/33 [one frame in MTU sized packets]
Quality of Guarantee=1/300 [guaranteed service only]
The token bucket is sized to be two frames of data, and the bucket
rate will fill the bucket every 250 ms. The expectation is that
full scene changes will be rare and that a fast rate with a large
bucket size should accommodate even a series of scene changes.
Disclaimer
In all cases, these examples are simply to sketch the use of the
flow spec. The author makes no claims that the actual values used
are the correct ones for a particular application.
Security Considerations
Security considerations definitely exist. For example, one might
assume that users are charged for guaranteed flows. In that case,
some mechanism must exist to ensure that a flow request (including
flow spec) is authenticated. However I believe that such issues have
to be dealt with as part of designing a negotiation protocol, and are
not part of designing the flow spec data structure.
Partridge [Page 19]
RFC 1363 A Proposed Flow Specification September 1992
Acknowledgements
I'd like to acknowledge the tremendous assistance of Steve Deering,
Scott Shenker and Lixia Zhang of XEROX PARC in writing this RFC.
Much of this flow spec was sketched out in two long meetings with
them at PARC. Others who have offered notable advice and comments
include Isidro Castineyra, Deborah Estrin, and members of the End-
to-End Research Group chaired by Bob Braden. All ideas that prove
misbegotten are the sole responsibility of the author. This work was
funded under DARPA Contract No. MDA903-91-D-0019. The views
expressed in this document are not necessarily those of the Defense
Advanced Research Projects Agency.
References
1. Parekh, A., "A Generalized Processor Sharing Approach
to Flow Control in Integrated Services Networks",
MIT Laboratory for Information and Decision Systems,
Report No. LIDS-TH-2089.
2. Clark, D., Shenker, S., and L. Zhang, "Supporting Real-Time
Applications in an Integrated Services Packet Network:
Architecture and Mechanism", Proceedings of ACM SIGCOMM '92,
August 1992.
Author's Address
Craig Partridge
BBN
824 Kipling St
Palo Alto, CA 94301
Phone: 415-325-4541
EMail: craig@aland.bbn.com
Partridge [Page 20]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -