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

📄 rfc1753.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 4 页
字号:
   straightforward, and foolproof, to simply identify the flow a packet   belongs to with by means of a specialized tag field (the "flow-id" )   in the internetwork header. Given that you can always find situations   where the existing fields alone don't do the job, and you *still*   need a separate field to do the job correctly, it seems best to take   the simple, direct approach , and say "the flow a packet belongs to   is named by a flow-id in the packet header".   The simplicity of globally-unique flow-id's (or at least a flow-id   which unique along the path of the flow) is also desirable; they take   more bits in the header, but then you don't have to worry about all   the mechanism needed to remap locally-unique flow-id's, etc., etc.   From the perspective of designing something with a long lifetime, and   which is to be deployed widely, simplicity and directness is the only   way to go. For me, that translates into flows being named solely by   globally unique flow-id's, rather than some complex semantics on   existing fields.   However, the issue of how to recognize which packets belong to flows   is somewhat orthogonal to the issue of whether the internetwork level   recognizes flows at all. Should it?Chiappa                                                        [Page 14]RFC 1753         Nimrod Technical Requirements for IPng    December 19943.2.3 Flows and State   To the extent that you have service state in the routers you have to   be able to associate that state with the packets it goes with. This   is a fundamental reason for flows. Access to service state is one   reason to explicitly recognize flows at the internetwork layer, but   it is not the only one.   If the user has requirements in a number of areas (e.g., routing and   access control), they can theoretically communicate these to the   routers by placing a copy of all the relevant information in each   packet (in the internetwork header). If many subsystems of the   internetwork are involved, and the requirements are complex, this   could be a lot of bits.   (As a final aside, there's clearly no point in storing in the routers   any user state about packets which are providing datagram service;   the datagram service has usually come and gone in the same packet,   and this discussion is all about state retention.)   There are two schools of thought as to how to proceed. The first says   that for reasons of robustness and simplicity, all user state ought   to be repeated in each packet. For efficiency reasons, the routers   may cache such user state, probably along with precomputed data   derived from the user state.  (It makes sense to store such cached   user state along with any applicable server state, of course.)   The second school says that if something is going to generate lots of   packets, it makes engineering sense to give all this information to   the routers once, and from then on have a tag (the flow-id) in the   packet which tells the routers where to find that information. It's   simply going to be too inefficient to carry all the user state around   all the time. This is purely an engineering efficiency reason, but   it's a significant one.   There is a slightly deeper argument, which says that the routers will   inevitably come to contain more user state, and it's simply a   question of whether that state is installed by an explicit mechanism,   or whether the routers infer that state from watching the packets   which pass through them.  To the extent that it is inevitable anyway,   there are obvious benefits to be gained from recognizing that, and an   explicit design of the installation is more likely to give   satisfactory results (as opposed to an ad-hoc mechanism).   It is worth noting that although the term "flow" is often used to   refer to this state in the routers along the path of the flow, it is   important to distinguish between i) a flow as a sequence of packets   (i.e., the definition given in 3.2.2 above), and ii) a flow, as theChiappa                                                        [Page 15]RFC 1753         Nimrod Technical Requirements for IPng    December 1994   thing which is set up in the routers. They are different, and   although the particular meaning is usually clear from the context,   they are not the same thing at all.   I'm not sure how much use there is to any intermediate position, in   which one subsystem installs user state in the routers, and another   carries a copy of its user state in each packet.   (There are other intermediate positions. First, one flow might use a   given technique for all its subsystems, and another flow might use a   different technique for its; there is potentially some use to this,   although I'm not sure the cost in complexity of supporting both   mechanisms is worth the benefits. Second, one flow might use one   mechanism with one router along its path, and another for a different   router. A number of different reasons exist as to why one might do   this, including the fact that not all routers may support the same   mechanisms simultaneously.)   It seems to me that to have one internetwork layer subsystem (e.g.,   resource allocation) carry user state in all the packets (perhaps   with use of a "hint" in the packets to find potentially cached copies   in the router), and have a second (e.g., routing) use a direct   installation, and use a tag in the packets to find it, makes little   sense. We should do one or the other, based on a consideration of the   efficiency/robustness tradeoff.   Also, if there is a way of installing such flow-associated state, it   makes sense to have only one, which all subsystems use, instead of   building a separate one for each flow.   It's a little difficult to make the choice between installation, and   carrying a copy in each packet, without more information of exactly   how much user state the network is likely to have in the future. (For   instance, we might wind up with 500 byte headers if we include the   full source route, resource reservation, etc., in every header.)   It's also difficult without consideration of the actual mechanisms   involved. As a general principle, we wish to make recovery from a   loss of state as local as possible, to limit the number of entities   which have to become involved. (For instance, when a router crashes,   traffic is rerouted around it without needing to open a new TCP   connection.) The option of the "installation" looks a lot more   attractive if it's simple, and relatively cheap, to reinstall the   user state when a router crashes, without otherwise causing a lot of   hassle.Chiappa                                                        [Page 16]RFC 1753         Nimrod Technical Requirements for IPng    December 1994   However, given the likely growth in user state, the necessity for   service state, the requirement for reliable installation, and a   number of similar considerations, it seems that direct installation   of user state, and explicit recognition of flows, through a unified   definition and tag mechanism in the packets, is the way to go, and   this is the path that Nimrod has chosen.3.3 Specific Interaction Issues   Here is a very incomplete list of the things which Nimrod would like   to see from the internetwork layer as a whole:   - A unified definition of flows in the internetwork layer, and a     unified way of identifying, through a separate flow-id field, which     packets belong to a given flow.   - A unified mechanism (potentially distributed) for installing state     about flows (including multicast flows) in routers.   - A method for getting information about whether a given resource     allocation request has failed along a given path; this might be     part of the unified flow setup mechanism.   - An interface to (potentially distributed) mechanism for maintaining     the membership in a multi-cast group.   - Support for multiple interfaces; i.e., multi-homing. Nimrod does     this by decoupling transport identification (done via EID's) from     interface identification (done via locators). E.g., a packet with     any valid destination locator should be accepted by the TCP of an     endpoint, if the destination EID is the one assigned to that     endpoint.   - Support for multiple locators ("addresses") per network interface.     This is needed for a number of reasons, among them to allow for     less painful transitions in the locator abstraction hierarchy as     the topology changes.   - Support for multiple UID's ("addresses") per endpoint (roughly, per     host). This would definitely include both multiple multicast SID's,     and at least one unicast EID (the need for multiple unicast EID's     per endpoint is not obvious).   - Support for distinction between a multicast group as a named     entity, and a multicast flow which may not reach all the members.   - A distributed, replicated, user name translation system (DNS?) that     maps such user names into (EID, locator0, ... locatorN) bindings.Chiappa                                                        [Page 17]RFC 1753         Nimrod Technical Requirements for IPng    December 1994Security Considerations   Security issues are discussed in section 2.2.Author's Address   J. Noel Chiappa   Phone: (804) 898-8183   EMail: jnc@lcs.mit.eduChiappa                                                        [Page 18]

⌨️ 快捷键说明

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