<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" ipr="trust200902" docName="draft-dreibholz-rserpool-delay-38" obsoletes="" updates="" consensus="true" xml:lang="en" tocInclude="true" symRefs="false" version="3">
 <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
 <front>
  <title abbrev="Delay-Sensitive Policy">Definition of a Delay Measurement Infrastructure and Delay-Sensitive Least-Used Policy for Reliable Server Pooling</title>
  <seriesInfo name="Internet-Draft" value="draft-dreibholz-rserpool-delay-38" />
  <!-- ************** THOMAS DREIBHOLZ *************** -->
  <author initials="T." surname="Dreibholz" fullname="Thomas Dreibholz">
   <organization abbrev="SimulaMet">Simula Metropolitan Centre for Digital Engineering</organization>
   <address>
    <postal>
     <street>Stensberggata 27</street>
     <city>0170 Oslo</city>
     <country>Norway</country>
    </postal>
    <email>dreibh@simula.no</email>
    <uri>https://www.simula.no/people/dreibh</uri>
   </address>
  </author>
  <!-- ****** XING ZHOU ************************************* -->
  <author initials="X." surname="Zhou" fullname="Xing Zhou">
   <organization abbrev="Hainan University">Hainan University, College of Information Science and Technology</organization>
   <address>
    <postal>
     <street>Renmin Avenue 58</street>
     <city>570228 Haikou</city>
     <region>Hainan</region>
     <country>China</country>
    </postal>
    <phone>+86-898-66279141</phone>
    <email>zhouxing@hainanu.edu.cn</email>
    <!-- <uri>https://hd.hainanu.edu.cn/scscs/info/1019/1029.htm</uri> -->
   </address>
  </author>
  <!-- ****************************************************** -->
  <date day="16" month="September" year="2026" />
  <keyword>Internet-Draft</keyword>
  <abstract>
   <t>
    This document contains the definition of a delay measurement
    infrastructure and a delay-sensitive Least-Used policy for Reliable Server
    Pooling.
   </t>
  </abstract>
 </front>
 <middle>
  <section toc="default">
   <name>Introduction</name>
   <t>
    Reliable Server Pooling defines protocols for providing highly available
    services. PEs of a pool may be distributed over a large geographical area,
    in order to provide redundancy in case of localized disasters. But the
    current pool policies defined in <xref target="RFC5356" /> do not
    incorporate distance (i.e., delay) between PU and PE. This leads to low
    performance for delay-sensitive applications.
   </t>
   <section toc="default">
    <name>Scope</name>
    <t>
     This draft defines a delay measurement infrastructure for ENRP servers to
     add delay information into the handlespace. Furthermore, a
     delay-sensitive Least-Used policy is defined. Performance evaluations can
     be found in <xref target="KiVS2007" />.
    </t>
   </section>
   <section toc="default">
    <name>Terminology</name>
    <t>
     The terms are commonly identified in related work and can be found in the
     Aggregate Server Access Protocol and Endpoint Handlespace Redundancy
     Protocol Common Parameters document <xref target="RFC5354" />.
    </t>
   </section>
   <section toc="default">
    <name>Conventions</name>
    <t>
     The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
     "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
     NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
     "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
     "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
     to be interpreted as described in BCP 14 <xref target="RFC2119" />
     <xref target="RFC8174" /> when, and only when, they appear in all
     capitals, as shown here.
    </t>
   </section>
  </section>
  <section anchor="delayMsmtIntrastructure" toc="default">
   <name>Delay-Measurement Infrastructure</name>
   <t>
    This section describes the necessary delay measurement infrastructure for
    the policy later defined in <xref target="LU-DPF" />. It has to be
    provided as part of the ENRP servers.
   </t>
   <section anchor="quantifyingDistance" toc="default">
    <name>Quantification of Distance</name>
    <t>
     Measuring delay for SCTP associations is easy: the SCTP protocol
     <xref target="RFC9260" /> already calculates a smoothed round-trip time
     (RTT) for the primary path. This RTT only has to be queried via the
     standard SCTP API as defined in <xref target="RFC6458" />. By default,
     the calculated RTT has a small restriction: an SCTP endpoint waits up to
     200 ms before acknowledging a packet, in order to piggyback the
     acknowledgement chunk with payload data. In this case, the RTT would
     include this latency. By using the option SCTP_DELAYED_SACK (see
     <xref target="RFC6458" />), the maximum delay before acknowledging a
     packet can be set to 0 ms (i.e., "acknowledge as soon as possible").
     After that, the RTT approximately consists of the network latency only.
     Then, using the RTT, the end-to-end delay between two associated
     components is approximately 0.5*RTT.
    </t>
    <t>
     In real networks, there may be negligible delay differences: for example,
     the delay between a PU and PE #1 is 5 ms and the latency between the PU
     and PE #2 is 6 ms. From the service user's perspective, such minor delay
     differences may be ignored and are furthermore unavoidable in Internet
     scenarios. Therefore, the distance parameter between two components A and
     B is defined as follows:
    </t>
    <t>Distance = DistanceStep * round( (0.5*RTT) / DistanceStep )</t>
    <t>
     That is, the distance parameter is defined as the nearest integer
     multiple of the constant DistanceStep for the measured delay (i.e.,
     0.5*RTT).
    </t>
   </section>
   <section toc="default">
    <name>Distance Measurement Environment</name>
    <t>
     In order to define a distance-aware policy, it is first necessary to
     define a basic rule: PEs and PUs choose "nearby" ENRP servers. Since the
     operation scope of RSerPool is restricted to a single organization, this
     condition can be met easily by appropriately locating ENRP servers.
    </t>
    <ul spacing="normal">
     <li>
      A Home ENRP server can measure the delay of the ASAP associations to its
      PE. As part of its ENRP updates to other ENRP servers, it can report
      this measured delay together with the PE information.
     </li>
     <li>
      A non-Home-ENRP server receiving such an update simply adds the delay of
      the ENRP association with the Home ENRP server to the PE's reported
      delay.
     </li>
    </ul>
    <t>
     Now, each ENRP server can approximate the distance to every PE in the
     operation scope using the equation in
     <xref target="quantifyingDistance" />.
    </t>
    <t>
     Note that delay changes are propagated to all ENRP servers upon PE
     re-registrations, i.e., the delay information (and the approximated
     distance) dynamically adapts to the state of the network.
    </t>
   </section>
  </section>
  <section anchor="LU-DPF" toc="default">
   <name>Distance-Sensitive Least-Used Policy</name>
   <t>
    In this section, a distance-sensitive Least Used policy is defined, based
    on the delay-measurement infrastructure introduced in
    <xref target="delayMsmtIntrastructure" />.
   </t>
   <section toc="default">
    <name>Description</name>
    <t>
     The Least Used with Distance Penalty Factor (LU-DPF) policy uses load
     information provided by the pool elements to select the lowest-loaded
     pool elements within the pool. If there are multiple elements having the
     lowest load, the nearest PE should be chosen.
    </t>
   </section>
   <section toc="default">
    <name>ENRP Server Considerations</name>
    <t>
     The ENRP server <bcp14>SHOULD</bcp14> select at most the requested number
     of pool elements. Their load values <bcp14>SHOULD</bcp14> be the lowest
     possible ones within the pool and their distances also
     <bcp14>SHOULD</bcp14> be the lowest possible ones. Each element
     <bcp14>MUST NOT</bcp14> be reported more than once to the pool user. If
     there is a choice of equal-loaded and equal-distanced pool elements,
     round-robin selection <bcp14>SHOULD</bcp14> be made among these elements.
     The returned list of pool elements <bcp14>MUST</bcp14> be sorted by load
     value in ascending order (1st key) and distance in ascending order (2nd
     key).
    </t>
   </section>
   <section toc="default">
    <name>Pool User Considerations</name>
    <t>
     The pool user should try to use the pool elements returned from the list
     in the order returned by the ENRP server. A subsequent call for handle
     resolution may result in the same list. Therefore, it is
     <bcp14>RECOMMENDED</bcp14> for a pool user to request multiple entries in
     order to have a sufficient amount of feasible backup entries available.
    </t>
   </section>
   <section toc="default">
    <name>Pool Member Selection Policy Parameter</name>
    <artwork name="" type="" align="left" alt=""><![CDATA[
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Parameter Type = 0x6     |         Length = 0x14          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Policy Type = 0x40000010                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Load                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Load DPF                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Distance                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
    <ul spacing="normal">
     <li>Load: Current load of the pool element.</li>
     <li>Load DPF: The LoadDPF setting of the PE.</li>
     <li>
      <t>Distance: The approximated distance in milliseconds.</t>
      <ul spacing="normal">
       <li>
        Between PE and Home ENRP server: The distance <bcp14>SHOULD</bcp14> be
        set to 0.
       </li>
       <li>
        Between Non-Home ENRP server and Home ENRP server: The delay measured
        on the ASAP association between Home ENRP server and PE.
       </li>
       <li>
        Between ENRP server and PU: The sums of the measured delays on the
        ASAP association and the ENRP association to the Home ENRP server.
       </li>
      </ul>
     </li>
    </ul>
   </section>
  </section>
  <section toc="default">
   <name>Reference Implementation</name>
   <t>
    The RSerPool reference implementation RSPLIB can be found at
    <xref target="RSerPool-Website" />. It supports the functionalities
    defined by <xref target="RFC5351" />, <xref target="RFC5352" />,
    <xref target="RFC5353" />, <xref target="RFC5354" /> and
    <xref target="RFC5356" /> as well as the options
    <xref target="I-D.dreibholz-rserpool-asap-hropt" />,
    <xref target="I-D.dreibholz-rserpool-enrp-takeover" /> and the option
    defined in this document. An introduction to this implementation is
    provided in <xref target="Dre2006" />.
   </t>
  </section>
  <section toc="default">
   <name>Testbed Platform</name>
   <t>
    A large-scale and realistic Internet testbed platform with support for the
    multi-homing feature of the underlying SCTP protocol is NorNet. A
    description of NorNet is provided in <xref target="ComNets2013-Core" />
    and <xref target="PAMS2013-NorNet" />. Further information can be found on
    the project website <xref target="NorNet-Website" />.
   </t>
  </section>
  <section toc="default">
   <name>Security Considerations</name>
   <t>
    Security considerations for RSerPool systems are described in
    <xref target="RFC5355" />.
   </t>
  </section>
  <section toc="default">
   <name>IANA Considerations</name>
   <t>
    This document does not require additional IANA actions beyond those
    already identified in the ENRP and ASAP protocol specifications.
   </t>
  </section>
 </middle>
 <back>
  <references>
   <name>Normative References</name>
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9260.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5351.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5352.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5353.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5354.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5356.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6458.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.dreibholz-rserpool-asap-hropt.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.dreibholz-rserpool-enrp-takeover.xml" />
  </references>
  <references>
   <name>Informative References</name>
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5355.xml" />
   <reference anchor="Dre2006" target="https://www.nntb.no/~dreibh/rserpool/Dre2006.pdf">
    <front>
     <title>Reliable Server Pooling – Evaluation, Optimization and Extension of a Novel IETF Architecture</title>
     <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz" />
     <date day="7" month="March" year="2007" />
    </front>
   </reference>
   <reference anchor="KiVS2007" target="https://web.archive.org/web/20260420112909/https://www.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/ReliableServer/Publications/KiVS2007.pdf">
    <front>
     <title>On Improving the Performance of Reliable Server Pooling Systems for Distance-Sensitive Distributed Applications</title>
     <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz" />
     <author initials="E.&nbsp;P." surname="Rathgeb" fullname="Erwin Paul&nbsp;Rathgeb" />
     <date day="28" month="February" year="2007" />
    </front>
    <seriesInfo name="Proceedings of the 15.&nbsp;ITG/GI Fachtagung Kommunikation in Verteilten Systemen&nbsp;(KiVS)" value="Pages 39–50, ISBN&nbsp;978-3-540-69962-0, DOI&nbsp;10.1007/978-3-540-69962-0_4" />
   </reference>
   <reference anchor="PAMS2013-NorNet" target="https://web-backend.simula.no/sites/default/files/publications/threfereedinproceedingsreference.2012-12-20.7643198512.pdf">
    <front>
     <title>Design and Implementation of the NorNet Core Research Testbed for Multi-Homed Systems</title>
     <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz" />
     <author initials="E.&nbsp;G." surname="Gran" fullname="Ernst Gunnar&nbsp;Gran" />
     <date day="27" month="March" year="2013" />
    </front>
    <seriesInfo name="Proceedings of the 3rd International Workshop on Protocols and Applications with Multi-Homing Support&nbsp;(PAMS)" value="Pages 1094–1100, ISBN&nbsp;978-0-7695-4952-1, DOI&nbsp;10.1109/WAINA.2013.71" />
   </reference>
   <reference anchor="ComNets2013-Core" target="https://web-backend.simula.no/sites/default/files/publications/Simula.simula.2236.pdf">
    <front>
     <title>NorNet Core – A Multi-Homed Research Testbed</title>
     <author initials="E.&nbsp;G." surname="Gran" fullname="Ernst Gunnar&nbsp;Gran" />
     <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz" />
     <author initials="A." surname="Kvalbein" fullname="Amund&nbsp;Kvalbein" />
     <date day="14" month="March" year="2014" />
    </front>
    <seriesInfo name="Computer Networks, Special Issue on Future Internet Testbeds" value="Volume 61, Pages 75–87, ISSN&nbsp;1389-1286, DOI&nbsp;10.1016/j.bjp.2013.12.035" />
   </reference>
   <reference anchor="RSerPool-Website" target="https://www.nntb.no/~dreibh/rserpool/">
    <front>
     <title>Thomas Dreibholz's RSerPool Page</title>
     <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz" />
     <date year="2026" month="September" day="16" />
    </front>
   </reference>
   <reference anchor="NorNet-Website" target="https://www.nntb.no/">
    <front>
     <title>NorNet – A Real-World, Large-Scale Multi-Homing Testbed</title>
     <author initials="T." surname="Dreibholz" fullname="Thomas Dreibholz" />
     <date year="2026" month="September" day="16" />
    </front>
   </reference>
  </references>
 </back>
</rfc>
