rfc3018.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,557 行 · 第 1/5 页

TXT
1,557
字号
   operands field is showed in OPR_LENGTH or OPR_LENGTH_EXT and it is
   multiple to four octets.  If necessary, 1 - 3 zero-value octets are
   padded in the end of a field.  Maximal length of operands is 262140
   octets.  The extension headers are used, if the instruction must
   contain longer data.

   The format of the operands field is defined separately for each
   instruction.

3.4  Address Formats

   The following address format numbers are definite for nodes,
   immediately connected to the global IPv4 network:




Bogdanov                      Experimental                     [Page 17]

RFC 3018             Unified Memory Space Protocol         December 2000


      N 4-0-0 (4)
      N 4-0-1 (4-1)
      N 4-0-2 (4-2)

   The appropriate formats of 128-bit addresses:

   Octets:
      +0              +1              +2              +3
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   0: |0 1 0 0|0 0|0 0|                   Free                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   4: |                              Free                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   8: |            Free               |           IP address          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   12:|           IP address          |      Local memory address     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   0: |0 1 0 0|0 0|0 1|                   Free                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   4: |                              Free                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   8: |     Free      |                  IP address                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   12:|   IP address  |             Local memory address              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   0: |0 1 0 0|0 0|1 0|                   Free                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   4: |                            Free                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   8: |                         IP address                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   12:|                     Local memory address                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Free

      It is not used by the protocol.

   IP address

      It sets the node address in the global IPv4 network.




Bogdanov                      Experimental                     [Page 18]

RFC 3018             Unified Memory Space Protocol         December 2000


   Local memory address

      It is described in section 2.1.

   IP-address defines the nodes of the given type unequivocally.  The
   TCP is used for the interaction with such nodes.  For sending of not
   requiring response instructions, using UDP is allowed.  IANA has
   assigned ports TCP and UDP 2110.  This port must be open for the
   listening (receiving).  TCP node, initialing the connection opening,
   or the UDP node, carrying out the package sending, can use any port.
   Using several TCP connections with multiplexing is supposed.

4  Response of the Instructions

   The protocol instructions are divided into two types:

      (1)  The management instructions transmitted on UMSP layer (OPCODE
           = 1 - 112).
      (2)  The instructions of the exchange between VM (OPCODE = 128 -
           223).

   The processing of two types of the instructions differs as follows:

   o  The field of the identifier of request REQ_ID is formed by the
      protocol in the instructions of the first type, and it is formed
      by VM for the instructions of the second type.
   o  The protocol must analyze the field REQ_ID and compare it with the
      instructions, transmitted earlier, after receiving of the response
      instruction of the first type.
   o  The protocol must not analyze the field REQ_ID after receiving of
      the response instruction of the second type.  This instruction is
      simply sent to VM.

   The response instructions have the field ASK equal to 1.  It means,
   that the header have the field REQ_ID.  The value taken from the
   confirmed instruction is written into the field REQ_ID.  The response
   instruction does not require response.

   A few VM can be connected to the protocol on the node.  Everyone VM
   can work in its own address space.  The identifiers of requests for
   different VM can coincide.  Therefore, instruction is identified by
   two fields:

   o  The session identifier SESSION_ID, which is connected with
      definite VM.
   o  The request identifier REQ_ID.





Bogdanov                      Experimental                     [Page 19]

RFC 3018             Unified Memory Space Protocol         December 2000


4.1  RSP, RSP_P

   "Response" (RSP) and "Response of the protocol" (RSP_P) instructions
   have the identical format.  The difference is only in the operation
   code:

      OPCODE = 129/1  ; correspondingly to RSP/RSP_P
      ASK = 1
      PCK = %b01/11
      EXT = 0/1
      CHN = 0
      OPR_LENGTH = 0/1
      SESSION_ID and REQ_ID - The values is taken from the confirmed
                              instruction.
      Operands:
         2 octets: The basic return code.
         2 octets: The additional return code.
      The optional extension header:
         _MSG - contains the arbitrary error description.

   The instruction without operands is used for the positive response.
   It is equivalent to zero values of the field of the basic and
   additional return codes.

   The zero basic return code is used for positive response.  The
   additional return code may have non-zero value.

   The instruction with non-zero basic return code is used for negative
   response.  The basic return code defines the error category.  The
   additional return code identifies an error.

   The instruction RSP is formed upon the VM request.  The return codes
   must be received from VM.  If the protocol cannot deliver the
   requiring response instruction to VM, it forms negative response RSP
   independently.

   The instruction RSP_P is always formed at the UMSP layer.  If the
   protocol cannot define on what instruction the RSP_P is transmitted,
   nothing actions is executed.

4.2  SND_CANCEL

   There can be a necessity to cancel sending after the part of the data
   have been already transmitted and have occupied the buffer on the
   reception side, by sending of the long fragmented instructions or
   transactions.  The protocol provides the instruction "The sending is
   canceled" (SND_CANCEL) for this purpose.  This instruction has the
   following fields value:



Bogdanov                      Experimental                     [Page 20]

RFC 3018             Unified Memory Space Protocol         December 2000


      OPCODE = 2
      ASK = 0
      PCK = %b01/10/11
      EXT = 0/1
      CHN = 1
      OPR_LENGTH = 1
      SESSION_ID - The value is taken from the cancelled chain.
      CHAIN_NUMBER - Number of the chain, which sending is cancelled.
      INSTR_NUMBER - Always has zero-value.
      Operands:
         2 octets: The basic return code.
         2 octets: The additional return code.
      The optional extension header:
         _MSG - contains the arbitrary error description.

   The instruction SND_CANCEL is used for the cancel of the partially
   transmitted transaction or fragmented instruction.  At the receiving
   the SND_CANCEL instruction, all the earlier received data in the
   chain are rejected.

5  Jobs Management

   The jobs management includes the following functions:

   o  Initiation and completion of jobs;
   o  Initiation and completion of tasks;
   o  Opening and closing of session connections;
   o  Activity control of nodes.

   The instructions with OPCODE = 1 - 112 are used for jobs management.
   These instructions must be sent through TCP.  Use UDP is not allowed,
   even if the instructions do not demand response.

   UMSP bases on model with the centralized control of the separate job.
   The reason is that the pointers control is not obviously possible in
   the decentralized system.  Any task can be finished at any moment or
   the node can be reloaded.  There is no way guaranteeing the
   notification about in the decentralized system all other nodes, on
   which the job works.  As the job continues to exist - the task
   concerning the job can be initiated on the same node again.  This
   task can allocate new dynamic resources.  The addresses for the again
   allocated resources can be crossed with addresses of resources, which
   existed on the node before the task restart.  The old pointers can be
   kept on other nodes.  It may be the formally correct pointers, but
   they will actually specify other objects.  The uncontrollable work of
   the application can be consequence of such situation.





Bogdanov                      Experimental                     [Page 21]

RFC 3018             Unified Memory Space Protocol         December 2000


   UMSP solves this task as follows:

   o  It allows defining the node, on which the task was completed,
      precisely.
   o  If the task on the node is finished before end of the job, all
      nodes, on which the job is executed, are notified of it.
   o  The repeated task initialization on the node is allowed, while all
      nodes will receive the message about the first task end.

   The protocol does not control the pointers.  VM supervises the
   pointers correctness.  VM must have architecture, in which 128 - bit
   pointers are stored in special memory areas, for this purpose.  The
   protocol informs VM about the nodes, on which task have finished the
   work.  VM must make all pointers concerning such tasks, invalid.  It
   results in exclusive situations at the access under these pointers.
   If the application provides processing exceptions, it keeps the
   capacity for work, or it is finished emergency.  Such decision allows
   excluding unguided applications working.

   For the decision of the specified questions at UMSP level, the
   control job node is defined for each job.  It names Job Control Point
   (JCP).  It may be the same node, on which the job is initiated, or it
   can be another dedicated node.  The basic JCP function is to trace
   the initialization and the end of the job tasks.  Besides, the
   dedicated JCP node may be used for the centralized users
   identification and the attack protection.

   The following identifiers are definite for the jobs and tasks
   control:

   o  Locally Task Identifier (LTID) is assigned to each active task on
      the node.  LTID length is equal to the length of local memory
      address defined for the node.  All LTID on the node must give
      unique values at each moment of time.  It is allowed to establish
      LTID, used earlier in the already completed tasks, for the again
      initiated tasks.
   o  JCP assigned the Control Task Identifier (CTID) to each task of
      the job.  Its length is equal to length of the local address
      memory on the node JCP.  All CTID on the JCP must give unique
      values at each moment of time.  As against LTID, the CTID value is
      chosen with some restrictions.
   o  Globally Task Identifier (GTID) is assigned to each task.  GTID
      has the same format, as the 128 - bit address of node memory has.
      The address of local memory is replaced on LTID in it.
   o  Globally Job Identifier (GJID) is assigned to the each job.  GJID
      is defined on the JCP node.  It has the same format, as the 128 -
      bit address of node JCP memory has.  The address of local memory




Bogdanov                      Experimental                     [Page 22]

RFC 3018             Unified Memory Space Protocol         December 2000


      is replaced on CTID of the first (initial) task of the job in it.
      GJID is used in the procedure of session connection opening for
      the definition JCP, which controls the job.

   LTID and CTID are written at the instructions in the field of length
   2/4/8 octets.  If the allocated for identifier field in the
   instruction is longer than identifier, LTID (CTID) writes in the last
   octets.  In the initial octets, the value 0 must be written.  If
   received LTID (CTID) is shorter than the local memory address, it is
   necessary to pad it with the zero octets in the beginning.

⌨️ 快捷键说明

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