rfc1045.txt

来自「中、英文RFC文档大全打包下载完全版 .」· 文本 代码 · 共 1,491 行 · 第 1/5 页

TXT
1,491
字号
In overview, VMTP provides transport communication between network-visible entities via message transactions.  A message transactionconsists of a request message sent by the client, or requestor, to agroup of server entities followed by zero or more response messages tothe client, at most one from each server entity.  A message isstructured as a message control portion and a segment data portion.  Amessage is transmitted as one or more packet groups.  A packet group  isone or more packets (up to a maximum of 32 packets) grouped by theprotocol for acknowledgment, sequencing, selective retransmission andrate control.Entities and VMTP operations are managed using a VMTP managementmechanism that is accessed through a procedural interface (RPC)implemented on top of VMTP.  In particular, information about a remoteentity is obtained and maintained using the Probe VMTP managementoperation.  Also, acknowledgment information and requests forretransmission are sent as notify requests to the management module.(In the following description, reference to an "acknowledgment" of arequest or a response refers to a management-level notify operation thatis acknowledging the request or response.)2.1. Entities, Processes and PrincipalsVMTP defines and uses three main types of identifiers:  entityidentifiers, process identifiers and principal identifiers, each 64-bitsin length.  Communication takes place between network-visible entities,typically mapping to, or representing, a message port or procedureinvocation.  Thus, entities are the VMTP communication endpoints.  Theprocess associated with each entity designates the agent behind thecommunication activity for purposes of resource allocation andmanagement.  For example, when a lock is requested on a file, the lockis associated with the process, not the requesting entity, allowing aprocess to use multiple entity identifiers to perform operations withoutlock conflict between these entities.  The principal associated with anentity specifies the permissions, security and accounting designationassociated with the entity.  The process and principal identifiers areincluded in VMTP solely to make these values available to VMTP userswith the security and efficiency provided by VMTP.  Only the entityidentifiers are actively used by the protocol.Entity identifiers are required to have three properties;Uniqueness      Each entity identifier is uniquely defined at any given                time.  (An entity identifier may be reused over time.)Stability       An entity identifier does not change between validCheriton                                                        [page 7]RFC 1045                       VMTP                        February 1988                 meanings without suitable provision for removing                references to the entity identifier.  Certain entity                identifiers are strictly stable, (i.e. never changing                meaning), typically being administratively assigned                (although they need not be bound to a valid entity at                all times), often called well-known identifiers.  All                other entity identifiers are required to be T-stable,                not change meaning without having remained invalid for                at least a time interval T.Host address independent                An entity identifier is unique independent of the host                address of its current host.  Moreover, an entity                identifier is not tied to a single Internet host                address.  An entity can migrate between hosts, reside on                a mobile host that changes Internet addresses or reside                on a multi-homed host.  It is up to the VMTP                implementation to determine and maintain up to date the                host addresses of entities with which it is                communicating.The stability of entity identifiers guarantees that an entity identifierrepresents the same logical communication entity and principal (in thesecurity sense) over the time that it is valid.  For example, if anentity identifier is authenticated as having the privileges of a givenuser account, it continues to have those privileges as long as it iscontinuously valid (unless some explicit notice is provided otherwise).Thus, a file server need not fully authenticate the entity on every fileaccess request.  With T-stable identifiers, periodically checking thevalidity of an entity identifier with period less than T seconds detectsa change in entity identifier validity.A group of entities can form an entity group, which is a set of zero ormore entities identified by a single entity identifier.  For example,one can have a single entity identifier that identifies the group ofname servers.  An entity identifier representing an entity group isdrawn from the same name space as entity identifiers.  However, singleentity identifiers are flagged as such by a bit in the entityidentifier, indicating that the identifier is known to identify at mostone entity.  In addition to the group bit, each entity identifierincludes other standard type flags.  One flag indicates whether theidentifier is an alias for an entity in another domain (See Section 2.2below.).  Another flag indicates, for an entity group identifier,whether the identifier is a restricted group or not.  A restricted groupis one in which an entity can be added only by another entity with groupmanagement authorization.  With an unrestricted group, an entity isallowed to add itself.  If an entity identifier does not represent aCheriton                                                        [page 8]RFC 1045                       VMTP                        February 1988 group, a type bit indicates whether the entity uses big-endian orlittle-endian data representation (corresponding to Motorola 680X0 andVAX byte orders, respectively).  Further specification of the format ofentity identifiers is contained in Section 3.1 and Appendix IV.An entity identifier identifies a Client, a Server or a group ofServers <1>.  A Client is always identified by a T-stable identifier.  Aserver or group of servers may be identified by a a T-stable identifier(group or single entity) or by strictly stable (statically assigned)entity group identifier.  The same T-stable identifier can be used toidentify a Client and Server simultaneously as long as both arelogically associated with the same entity.  The state required forreliable, secure communication between entities is maintained in clientstate records (CSRs), which include the entity identifier of the Client,its principal, its current or next transaction identifier and so on.2.2. Entity DomainsAn entity domain is an administration or an administration mechanismthat guarantees the three required entity identifier properties ofuniqueness, stability and host address independence for the entities itadministers.  That is, entity identifiers are only guaranteed to beunique and stable within one entity domain.  For example, the set of allInternet hosts may function as one domain.  Independently, the set ofhosts local to one autonomous network may function as a separate domain.Each entity domain is identified by an entity domain identifier, Domain.Only entities within the same domain may communicate directly via VMTP.However, hosts and entities may participate in multiple entity domainssimultaneously, possibly with different entity identifiers.  Forexample, a file server may participate in multiple entity domains inorder to provide file service to each domain.  Each entity domainspecifies the algorithms for allocation, interpretation and mapping ofentity identifiers.Domains are necessary because it does not appear feasible to specify oneuniversal VMTP entity identification administration that covers allentities for all time.  Domains limit the number of entities that needto be managed to maintain the uniqueness and stability of the entity_______________<1>   Terms such as Client, Server, Request, Response, etc.  arecapitalized in this document when they refer to their specific meaningin VMTP.Cheriton                                                        [page 9]RFC 1045                       VMTP                        February 1988 name space.  Domains can also serve to separate entities of differentsecurity levels.  For instance, allocation of a unclassified entityidentifier cannot conflict with secret level entity identifiers becausethe former is interpreted only in the unclassified domain, which isdisjoint from the secret domain.It is intended that there be a small number of domains.  In particular,there should be one (or a few) domains per installation "type", ratherthan per installation.  For example, the Internet is expected to use onedomain per security level, resulting in at most 8 different domains.Cluster-based internetwork architectures, those with a local clusterprotocol distinct from the wide-area protocol, may use one domain forlocal use and one for wide-area use.Additional details on the specification of specific domains is providedin Appendix IV.2.3. Message TransactionsThe message transaction is the unit of interaction between a Client thatinitiates the transaction and one or more Servers.  A messagetransaction starts with a request message  generated by a client.  Atthe service interface, a server becomes involved with a transaction byreceiving and accepting the request.  A server terminates itsinvolvement with a transaction by sending a response message.  In agroup message transaction, the server entity designated by the clientcorresponds to a group of entities.  In this case, each server in thegroup receives a copy of the request.  In the client's view, thetransaction is terminated when it receives the response message or, inthe case of a group message transaction, when it receives the lastresponse message.  Because it is normally impractical to determine whenthe last response message has been received.  the current transaction isterminated by VMTP when the next transaction is initiated.Within an entity domain, a transaction is uniquely identified by thetuple (Client, Transaction, ForwardCount).  where Transaction is a32-bit number and ForwardCount is a 4-bit value.  A Client usesmonotonically increasing Transaction identifiers for new messagetransactions.  Normally, the next higher transaction number, modulo2**32, is used for the next message transaction, although there arecases in which it skips a small range of Transaction identifiers.  (Seethe description of the STI control flag.)  The ForwardCount is used whena message transaction is forwarded and is zero otherwise.A Client generates a stream of message transactions with increasingtransaction identifiers, directed at a diversity of Servers.  We say aCheriton                                                       [page 10]RFC 1045                       VMTP                        February 1988 Client has a transaction outstanding if it has invoked a messagetransaction, but has not received the last Response (or possibly anyResponse).  Normally, a Client has only one transaction outstanding at atime.  However, VMTP allows a Client to have multiple messagetransactions outstanding simultaneously, supporting streamed,asynchronous remote procedure call invocations.  In addition, VMTPsupports nested calls where, for example, procedure A calls procedure Bwhich calls procedure C, each on a separate host with different cliententity identifiers for each call but identified with the same processand principal.2.4. Request and Response MessagesA message transaction consists of a request message and one or moreResponse messages.  A message is structured as message control block(MCB) and segment data, passed as parameters, as suggested below.  +-----------------------+  | Message Control Block |  +-----------------------+  +-----------------------------------+  |       segment data                |  +-----------------------------------+In the request message, the MCB specifies control information about therequest plus an optional data segment.  The MCB has the followingformat:  0                   1                   2                   3  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +                         ServerEntityId  (8 octets)            + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |   Flags       |         RequestCode                           | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +                         CoresidentEntity (8 octets)           + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ >                         User Data (12 octets)                 < +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |                         MsgDelivery                           | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |                         SegmentSize                           | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+The ServerEntityId is the entity to which the Request MCB is to be sent(or was sent, in the case of reception).  The Flags indicate variousoptions in the request and response handling as well as whether theCheriton                                                       [page 11]RFC 1045                       VMTP                        February 1988 CoresidentEntity, MsgDelivery and SegmentSize fields are in use.  TheRequestCode field specifies the type of Request.  It is analogous to apacket type field of the Ethernet, acting as a switch for higher-levelprotocols.  The CoresidentEntity field, if used, designates a subgroupof the ServerEntityId group to which the Request should be routed,namely those members that are co-resident with the specified entity (orentity group).  The primary intended use is to specify the manager for aparticular service that is co-resident with a particular entity, usingthe well-known entity group identifier for the service manager in theServerEntityId field and the identifier for the entity in theCoresidentEntity field.  The next 12 octets are user- orapplication-specified.The MsgDelivery field is optionally used by the RPC or user level tospecify the portions of the segment data to transmit and on reception,the portions received.  It provides the client and server with(optional) access to, and responsibility for, a simple selectivetransmission and reception facility.  For example, a client may requestretransmission of just those portions of the segment that it failed toreceive as part of the original Response.  The primary intended use isto support highly efficient multi-packet reading from a file server.Exploiting user-level selective retransmission using the MsgDelivery

⌨️ 快捷键说明

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