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

📄 rfc3342.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 3 页
字号:
            </option>
        </data>
     S: <ok />

      ... some time later ...

          +-------+                  +-------+
          |       | <------- data -- |       |
          | appl. |                  | relay |
          |       | -- ok ---------> |       |
          +-------+                  +-------+

        C: <data content='#Content'>
               <originator identity='apex=report@example.com' />
               <recipient identity='fred@example.com' />
               <data-content Name='Content'>
                   <statusResponse transID='86'>
                       <destination identity='barney@example.com'>
                           <reply code='550' />
                       </destination>
                   </statusResponse>
               </data-content>
           </data>
        S: <ok />

2.2 Reporting on Delayed Delivery

   The "reportAfter" attribute of the "dataTiming" option provides for
   the originator to be notified if delivery is delayed beyond a
   specified time.  Delivery of the data is not affected.  Note that if
   the value of the "noLaterThan" attribute is non-zero, then it
   provides the operational upper-bounds for the "reportAfter"
   attribute.




Klyne, et. al.              Standards Track                     [Page 8]

RFC 3342       The Application Exchange (APEX) Party Pack      July 2002


   If this option is present in the "data" operation (c.f., Section
   4.4.4 of [1]) and the value of the "reportAfter" attribute is non-
   zero, then:

   o  For Step 5.2 of Section 4.4.4.1 of [1]:

      Immediately prior to sending the data to the next relay, the value
      of the "reportAfter" attribute is adjusted to reflect the
      processing time of the data at the local relay (e.g., the time
      required to determine the next relay, to successfully issue a
      "bind" operation, and then be ready to immediately issue a "data"
      operation).

      If the value of the "reportAfter" attribute becomes less than or
      equal to zero, then its value is set to zero and the APEX report
      service is invoked to send a transient timing report; regardless,
      the data element is sent to the next relay.

   o  For Step 5.3 of Section 4.4.4.1 of [1]:

      If the relay does not receive an "ok" element from the recipient
      endpoint within the number of milli-seconds indicated by the value
      of the "reportAfter" attribute, then its value is set to zero and
      the APEX report service is invoked to send a transient timing
      report.

2.2.1 Transient Timing Report

   If the APEX report service (c.f., Section 6.2 of [1]) is invoked to
   send a transient timing report, it issues a data operation with:

   o  its originator identifying the report service associated with the
      issuing relay

   o  its recipient identifying the endpoint address of the originator
      associated with the "dataTiming" option

   o  its content consisting of a "statusResponse" element having:

      *  its "transID" attribute equal to the "transID" attribute of the
         "dataTiming" option

      *  and identifying the original recipient with a transient success
         indicator







Klyne, et. al.              Standards Track                     [Page 9]

RFC 3342       The Application Exchange (APEX) Party Pack      July 2002


   For example:

        +-------+                  +-------+
        |       | -- data -------> |       |
        | appl. |                  | relay |
        |   #1  | <--------- ok -- |       |
        +-------+                  +-------+

      C: <data content='cid:1@example.com'>
             <originator identity='fred@example.com' />
             <recipient identity='barney@example.com' />
             <option internal='dataTiming' targetHop='all'
                     mustUnderstand='true' transID='86'>
                 <dataTiming reportAfter='60000' />
             </option>
         </data>
      S: <ok />

    ... some time later ...

                                   +-------+                  +-------+
                                   |       | <------- data -- |       |
                                   | relay |                  | relay |
                                   |  #n-1 | -- ok ---------> |   #n  |
                                   +-------+                  +-------+

      C: <data content='#Content'>
             <originator identity='apex=report@example.com' />
             <recipient identity='fred@example.com' />
             <data-content Name='Content'>
                 <statusResponse transID='86'>
                     <destination identity='barney@example.com'>
                         <reply code='350' />
                     </destination>
                 </statusResponse>
             </data-content>
         </data>
      S: <ok />

3. The hold4Endpoint Option

   Section 5.3 contains the APEX option registration for the
   "hold4Endpoint" option.

   The default behavior of the APEX relaying mesh, in the absence of
   processing options, is to silently drop data for a recipient if its
   endpoint isn't attached.  The "hold4Endpoint" option provides for
   data to be queued if the recipient endpoint is not attached.



Klyne, et. al.              Standards Track                    [Page 10]

RFC 3342       The Application Exchange (APEX) Party Pack      July 2002


   If this option is present in the "data" operation (c.f., Section
   4.4.4 of [1]), and the value of the "hold4Endpoint" attribute is true
   then:

   o  For Step 5.3 of Section 4.4.4.1 of [1]:

      If the recipient's endpoint is not currently attached, the relay
      will queue the data waiting for an application to attach as that
      endpoint.

   Note that in the absence of an upper-bounds on delivery, such as
   limits provided by the dataTiming option (Section 2), the data will
   be queued indefinitely for the endpoint.






































Klyne, et. al.              Standards Track                    [Page 11]

RFC 3342       The Application Exchange (APEX) Party Pack      July 2002


   For example:

        +-------+                  +-------+
        |       | -- data -------> |       |
        | appl. |                  | relay |
        |   #1  | <--------- ok -- |       |
        +-------+                  +-------+

      C: <data content='cid:1@example.com'>
             <originator identity='fred@example.com' />
             <recipient identity='barney@example.com' />
             <option internal='hold4Endpoint' />
             <option internal='dataTiming' targetHop='all'
                     mustUnderstand='true' transID='86'>
                 <dataTiming noLaterThan='60000' />
             </option>
         </data>
      S: <ok />

    ... some time later the recipient's endpoint attaches ...

                                   +-------+                  +-------+
                                   |       | <----- attach -- |       |
                                   |       |                  |       |
                                   |       | -- ok ---------> |       |
                                   | relay |                  | appl. |
                                   |       | -- data -------> |   #2  |
                                   |       |                  |       |
                                   |       | <--------- ok -- |       |
                                   +-------+                  +-------+

      C: <attach endpoint='barney@example.com' transID='2'>
             <option internal='attachOverride' transID='3' />
         </attach>
      S: <ok />

      C: <data content='cid:1@example.com'>
             <originator identity='fred@example.com' />
             <recipient identity='barney@example.com' />
             <option internal='hold4Endpoint' />
             <option internal='dataTiming' targetHop='all'
                     mustUnderstand='true' transID='86'>
                 <dataTiming noLaterThan='18000' />
             </option>
         </data>
      S: <ok />





Klyne, et. al.              Standards Track                    [Page 12]

RFC 3342       The Application Exchange (APEX) Party Pack      July 2002


4. The dataHopping Option

   To detect misconfigurations that cause forwarding loops in the APEX
   relaying mesh, the APEX pubsub service re-introduces a mechanism
   similar to the IP TTL [2] mechanism, in the form of an APEX option.
   Section 5.4 contains the APEX option registration for the
   "dataHopping" option.

   If this option is present in the "data" operation (c.f., Section
   4.4.4 of [1]) and the value of the "noMoreThan" attribute is non-
   zero, then:

   o  For Step 5.2 of Section 4.4.4.1 of [1]:

      Immediately prior to sending the data to the next relay, the value
      of the "noMoreThan" attribute is reduced by 1.

      If the value of the "noMoreThan" attribute becomes less than or
      equal to zero, an error in processing has occurred, the data
      element is not sent to the next relay, and if the "reportErrors"
      attribute is true, the APEX report service is invoked to send an
      error report.

   Further, note that because this option is processed on a per-hop
   basis, the originator must set the "targetHop" attribute to the value
   "all" and the "mustUnderstand" attribute to the value "true".

   If the APEX report service (c.f., Section 6.2 of [1]) is invoked to
   send an error report, it issues a data operation with:

   o  its originator identifying the report service associated with the
      issuing relay

   o  its recipient identifying the endpoint address of the originator
      associated with the "dataHopping" option

   o  its content consisting of a "statusResponse" element having:

      *  its "transID" attribute equal to the "transID" attribute of the
         "dataHopping" option

      *  and identifying the original recipient with a permanent failure
         indicator








Klyne, et. al.              Standards Track                    [Page 13]

RFC 3342       The Application Exchange (APEX) Party Pack      July 2002


   For example:

       +-------+                  +-------+
       |       | -- data -------> |       |
       | appl. |                  | relay |
       |       | <--------- ok -- |   #1  |
       +-------+                  +-------+

     C: <data content='cid:1@example.com'>
            <originator identity='appl=pubsub/topic=fred@example.com' />
            <recipient identity='barney@example.com' />
            <option internal='dataHopping' targetHop='all'
                    mustUnderstand='true' transID='86'>
                <dataHopping noMoreThan='2' reportErrors='true' />
            </option>
        </data>
     S: <ok />
                                  +-------+                  +-------+
                                  |       | -- data -------> |       |
                                  | relay |                  | relay |
                                  |   #1  | <--------- ok -- |   #2  |
                                  +-------+                  +-------+

     C: <data content='cid:1@example.com'>
            <originator identity='appl=pubsub/topic=fred@example.com' />
            <recipient identity='barney@example.com' />
            <option internal='dataHopping' targetHop='all'
                    mustUnderstand='true' transID='86'>
                <dataHopping noMoreThan='1' reportErrors='true' />
            </option>
        </data>
     S: <ok />



















Klyne, et. al.              Standards Track                    [Page 14]

RFC 3342       The Application Exchange (APEX) Party Pack      July 2002


   relay #2 determines that further relaying is necessary:

       +-------+                  +-------+
       |       | <------- data -- |       |
       | relay |                  | relay |
       |   #1  | -- ok ---------> |   #2  |
       +-------+                  +-------+

     C: <data content='#Content'>
            <originator identity='apex=report@example.com' />
            <recipient identity='appl=pubsub/topic=fred@example.com' />
            <data-content Name='Content'>
                <statusResponse transID='86'>
                    <destination identity='barney@example.com'>
                        <reply code='550' />
                    </destination>
                </statusResponse>
            </data-content>
        </data>
     S: <ok />

5. Initial Registrations

   The APEX option registration template is defined in Section 7.1 of
   [1].

5.1 Registration: The attachOverride Option

   Option Identification: attachOverride

   Present in: APEX's "attach" element

   Contains: nothing

⌨️ 快捷键说明

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