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

📄 rfc871.txt

📁 RFC 相关的技术文档
💻 TXT
📖 第 1 页 / 共 5 页
字号:
          The Network Interface layer contains those protocols which     are presented as interfaces by communications subnetwork     processors ("CSNP"; e.g., packet switches, bus interface units,     etc.)  The CSNP's are assumed to have their own protocol or     protocols among themselves, which are not directly germane to the     model.  In particular, no assumption is made that CSNP's of     different types can be directly interfaced to one another; that     is, "internetting" will be accomplished by Gateways, which are     special purpose systems that attach to CSNP's as if they were     Hosts (see also "Gateways" below). The most significant property     of the Network Interface layer is that bits presented to it by an     attached Host will probably be transported by the underlying     CSNP's to an addressed Host (or Hosts) (i.e., "reliable" comm     subnets are not posited--although they are, of course, allowed).     A Network layer protocol interpreter ("module") is normally     invoked by a Host-Host protocol PI, but may be invoked by a     Process Level/Applications protocol PI, or even by a Host process     interpreting no formal protocol whatsoever.          The Host-Host layer contains those protocols which confer     interprocess communication functionality.  In the current     "internet" version of the ARM, the most significant property of     such protocols is the ability to direct such IPC to processes on     Hosts attached to "proximate networks" (i.e., to CSNP's of     various autonomous communications subnetworks) other than that of     the Host at hand, in addition to those on a given proximate net.     (You can, by the way, get into some marvelous technicoaesthetic     arguments over whether there should be a separate Internet layer;     for present purposes, we assume that the Principle of Parsimony     dominates.)  Another significant property of Host-Host protocols,     although not a required one, is the ability to do such IPC over     logical connections. Reliability, flow control, and the ability     to deal with "out-of-band signals" are other properties of     Host-Host protocols which may be present.  (See also "TCP/IP     Design Goals and Constraints", below.) A Host-Host PI is normally     invoked by a Process Level/Applications PI, but may also be     invoked by a Host process interpreting no formal protocol     whatsoever.  Also, a Host need not support more than a single,     possibly notional, process (that is, the code running in an     "intelligent terminal" might not be viewed by its user--or even     its creator--as a formal "process", but it stands as a de facto     one).          The Process Level/Applications layer contains those     protocols which perform specific resource sharing and remote     access functions such as allowing users to log in/on to foreign     Hosts, transferring files, exchanging messages, and the like.     Protocols in this layer                                    13     RFC 871                                            September 1982     will often employ common intermediate representations, or     "virtual- izations", to perform their functions, but this is not     a necessary condition.  They are also at liberty to use the     functions performed by other protocols within the same layer,     invoked in whatever fashion is appropriate within a given     operating system context.          Orthogonal to the layering, but consistent with it, is the     notion that a "Host-Front End" protocol (H-FP), or "Host-Outboard     Processing Environment" protocol, may be employed to offload     Network and Host-Host layer PI's from Hosts, to Outboard     Processing Environments (e.g., to "Network Front Ends", or to     BIU's, where the actual PI's reside, to be invoked by the H-FP as     a distributed processing mechanism), as well as portions of     Process Level/Applications protocols' functionality.  The most     significant property of an H-FP attached Host is that it be     functionally identical to a Host with inboard PI's in operation,     when viewed from another Host. (That is, Hosts which outboard     PI's will be attached to in a flexible fashion via an explicit     protocol, rather than in a rigid fashion via the emulation of     devices already known to the operating system in question.)          Whether inboard or outboard of the Host, it is explicitly     assumed that PI's will be appropriately integrated into the     containing operating systems.  The Network and Host-Host layers     are, that is, effectively system programs (although this     observation should not be construed as implying that any of their     PI's must of necessity be implemented in a particular operating     system's "hard-core supervisor" or equivalent) and their PI's     must be able to behave as such.                               Visualization          Figures 1 and 2 (adapted from [6]) present, respectively, an     abstract rendition of the ARPANET Reference Model and a     particular version of a protocol suite designed to that model.     Just as one learns in Geometry that one cannot "prove" anything     from the figures in the text, they are intended only to     supplement the prose description above.  (At least they bear no     resemblance to highrise apartment houses.)                    TCP/IP Design Goals and Constraints          The foregoing description of the ARM, in the interests of     conciseness, deferred detailed discussion of two rather relevant     topics:  just what TCP and IP (the Transmission Control Protocol     and the Internet Protocol) are "about", and just what role     Gateways are                                    14     RFC 871                                            September 1982     expected to play in the model.  We turn to those topics now,     under separate headings.          As has been stated, with the success of the ARPANET [7] as     both a proof-of-concept of intercomputer resource sharing via a     packet-switched communications subnetwork and a (still)     functional resource sharing network, a number of other bodies,     research and commercial, developed "their own networks."  Often     just the communications subnetwork was intended, with the goal     being to achieve remote access to attached Hosts rather than     resource sharing among them, but nonetheless new networks     abounded.  Hosts attached to the original ARPANET or to DoD nets     meant to be transferences of ARPANET technology should, it was     perceived in the research community, be able to do resource     sharing (i.e., interpret common high level protocols) with Hosts     attached to these other networks. Thus, the first discernible     goal of what was to become TCP/IP was to develop a protocol to     achieve "internetting".          At roughly the same time--actually probably chronologically     prior, but not logically prior--the research community came to     understand that the original ARPANET Host-Host Protocol or AH-HP     (often miscalled NCP because it was the most visible component of     the Network Control Program of the early literature) was somewhat     flawed, particularly in the area of "robustness."  The comm     subnet was not only relied upon to deliver messages accurately     and in order, but it was even expected to manage the transfer of     bits from Hosts to and from its nodal processors over a hardware     interface and "link protocol" that did no error checking.  So,     although the ARPANET-as-subnet has proven to be quite good in     managing those sorts of things, surely if internetting were to be     achieved over subnets potentially much less robust than the     ARPANET subnet, the second discernible goal must be the     reliability of the Host-to-Host protocol.  That is, irrespective     of the properties of the communications subnetworks involved in     internetting, TCP is to furnish its users--whether they be     processes interpreting formal protocols or simply processes     communicating in an ad hoc fashion--with the ability to     communicate as if their respective containing Hosts were attached     to the best comm subnet possible (e.g., a hardwired connection).          The mechanizations considered to achieve reliability and     even those for internetting were alien enough to AH-HP's style,     though, and the efficiency of several of AH-HP's native     mechanisms (particularly Flow Control and the notion of a Control     Link) had been questioned often enough, that a good Host-Host     protocol could not be a simple extension of AH-HP.  Thus, along     with the desire for reliability came a necessity to furnish a     good Host-Host protocol, a                                    15     RFC 871                                            September 1982     design goal easy to overlook.  This is a rather subtle issue in     that it brings into play a wealth of prior art.  For present     purposes, in practical terms it means that the "good" ideas     (according to the technical intuition of the designers) of     AH-HP--such as sockets, logical connections, Well-Known Sockets,     and in general the interprocess communication premise--are     retained in TCP without much discussion, while the "bad" ideas     are equally tacitly jettisoned in favor of ones deemed either     more appropriate in their own right or more consistent with the     other two goals.          It could be argued that other goals are discernible, but the     three cited--which may be restated and compressed as a desire to     offer a good Host-Host protocol to achieve reliable     internetting--are challenging enough, when thought about hard for     a few years, to justify a document of even more than this one's     length.  What of the implied and/or accepted design constraints,     though?          The first discernible design constraint borders on the     obvious: Just as the original ARPANET popularized     packet-switching (and, unfortunately to a lesser extent, resource     sharing), its literature popularized the notion of "Layering."     Mechanistically, layering is easy to describe:  the control     information of a given protocol must be treated strictly as data     by the next "lower" protocol (with processes "at the top," and     the/a transmission medium "at the bottom"), as discussed earlier.     Philosophically, the notion is sufficiently subtle that even     today researchers of good will still argue over what "proper"     layering implies, also as discussed earlier.  For present     purposes, however, it suffices to observe the following:     Layering is a useful concept.  The precise set of functions     offered by a given layer is open to debate, as is the precise     number of layers necessary for a complete protocol suite to     achieve resource sharing.  (Most researchers from the ARPANET     "world" tend to think of only three layers--the process,     applications, or user level; the Host-Host level; and the network     level--though if pressed they acknowledge that "the IMPs must     have a protocol too."  Adherents of the International Standards     Organization's "Open System Interconnection" program--which     appears to be how they spell resource sharing--claim that seven     is the right number of levels--though if pressed they acknowledge     that "one or two of them have sublevels."  And adherents of the     Consultative Committee for International Telephony and Telegraphy     don't seem particularly concerned with resource sharing to begin     with.)  At any rate, TCP and IP are constrained to operate in a     (or possibly in more than one) layered protocol hierarchy.     Indeed, although it is not the sole reason, this fact is the     primary rationale for separating the internetting mechanization     into a discrete protocol (the Internet Protocol: IP).  In other     words, although designed                                    16     RFC 871                                            September 1982     "for" the ARM, TCP and IP are actually so layered as to be useful     even outside the ARM.          It should be noted that as a direct consequence of the     Layering constraint, TCP must be capable of operating "above" a     functionally- equivalent protocol other than IP (e.g., an     interface protocol directly into a proximate comm subnet, if     internetting is not being done), and IP must be capable of     supporting user protocols other than TCP (e.g., a non-reliable     "Real-Time" protocol).          Resisting the temptation to attempt to do justice to the     complexities of Layering, we move on to a second design     constraint, which also borders on the obvious:  Only minimal     assumptions can be made about the properties of the various     communications subnetworks in play.  (The "network" composed of     the concatenation of such subnets is sometimes called "a     catenet," though more often--and less picturesquely--merely "an     internet.")  After all, the main goal is to let processes on     Hosts attached to, essentially, "any old (or new) net"     communicate, and to limit that communication to processes on     Hosts attached to comm subnets that, say, do positive     acknowledgments of message delivery would be remiss. [8]          Given this constraint, by the way, it is quite natural to     see the more clearly Host-to-Host functions vested in TCP and the     more clearly Host-to-catenet functions vested in IP.  It is,     however, a misconception to believe that IP was designed in the     expectation that comm subnets "should" present only the "lowest     common denominator" of functionality; rather, IP furnishes TCP     with what amounts to an abstraction (some would say a     virtualization--in the ARPANET Telnet Protocol sense of     virtualizing as meaning mapping from/to a common intermediate     representation to/from a given native representation) of the     properties of "any" comm subnet including, it should be noted,     even one which presents an X.25 interface.  That is, IP allows     for the application to a given transmission of whatever generic     properties its proximate subnet offers equivalents for; its     design neither depends upon nor ignores the presence of any     property other than the ability to try to get some packet of bits     to some destination, which surely is an irreducible minimum for

⌨️ 快捷键说明

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