<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no"?>
<?rfc strict="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="yes" ?>
<rfc category="info"
     docName="draft-chan-quic-owl-00"
     ipr="trust200902">
<front>
<title abbrev="OWL Considerations for Multipath in QUIC"> 
One Way Latency Considerations for Multipath in QUIC</title>

<author fullname="H Anthony Chan" initials="H" surname="Chan">
  <organization>Huawei Technologies</organization>
  <address>
    <postal>
      <street>5340 Legacy Dr. Building 3</street>
      <city>Plano, TX 75024</city>
      <country>USA</country>
    </postal>
    <email>h.a.chan@ieee.org</email>
  </address>
</author>

<author fullname="Anni Wei" initials="A" surname="Wei">
  <organization>Huawei Technologies</organization>
  <address>
    <postal>
      <street>Xin-Xi Rd. No. 3, Haidian District</street>
      <city>Beijing, 100095</city>
      <country>P. R. China</country>
    </postal>
    <email>weiannig@huawei.com</email>
  </address>
</author>

<author fullname="Fei Song" initials="F" surname="Song">
  <organization>Beijing Jiaotong University</organization>
  <address>
    <postal>
      <street></street>
      <city>Beijing, 100044</city>
      <country>P. R. China</country>
    </postal>
    <email>fsong@bjtu.edu.cn</email>
  </address>
 </author>

<author fullname="Hongke Zhang" initials="H" surname="Zhang">
  <organization>Beijing Jiaotong University</organization>
  <address>
    <postal>
      <street></street>
      <city>Beijing, 100044</city>
      <country>P. R. China</country>
    </postal>
    <email>jonghyouk@smu.ac.kr</email>
  </address>
 </author>

<date year="2017" month="" day=""/>
<area/>

<workgroup>QUIC</workgroup>

<abstract>
<t>
This document discusses the use of One Way Latency (OWL) 
for enhancing multipath transmission in QUIC. 
Several representative usages of OWL, 
such as congestion control mechanism, 
retransmission policy,
crucial data scheduling are analyzed. 
Two kinds of OWL measurement approaches are also 
provided and compared. 
More explorations related 
with OWL will be researched to improve the 
performance of QUIC.	

</t>
</abstract>
</front>

<middle>
<!-- Introduction -->

<section anchor="intro" title="Introduction">
<t>
Round-trip time (RTT) is commonly used in congestion
control and loss recovery mechanism for data transmission.
Yet the key issue for data transmission 
is simply the delay of the data transmission along a path 
which does not include the return. 
The latency for uplink and downlink between two peers 
may be very different.
RTT, which cannot accurately 
reflect the delay of the data transmission along a path, 
can be easily influenced by the latency in the opposite direction along that path.
Therefore, the use of One Way Latency (OWL) 
<xref target="I-D.song-mptcp-owl"/>
is proposed
to describe the exact latency 
from the time that data is sent to the time data is received. 
</t>

<t>
Using the timestamps information in the ACK Frame of QUIC
<xref target="I-D.ietf-quic-transport"/>, 
the One Way Latency can be calculated 
in absolute value or in relative value. 
As multipath will be supported by QUIC,
path selection based on One Way Latency 
can improve the performance of multipath in QUIC in several situations,
such as congestion control,
packet retransmission,
crucial data scheduling, etc.  
</t>

<t>
We suggest discussing the necessary considerations of OWL in QUIC. 
In the following,
possible usages of OWL in QUIC are analyzed,
and then two kinds of OWL measurements are listed and compared. 
</t>

</section>


<!-- Conventions and terminoloty (begin section)-->
<section title="Conventions and Terminology">

<t>
The key words "MUST", "MUST NOT", "GLUIRED", "SHALL","SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 
in this document are to be interpreted as described in 
<xref target="RFC2119"/>.
</t>

<t><list style="hanging">
<t hangText="One Way Latency (OWL):">
the propagation delay
between a sender and a receiver
from the time a signal is sent 
to the time the signal is received.
</t>
</list></t>

</section>
<!-- Conventions and terminoloty (end section) -->

<section title="Potential Usages of OWL in QUIC">
<t>
There are a number of potential uses of OWL, 
especially for multipath in QUIC. 
Although only 3 significant aspects are illustrated in this document,
more explorations are still needed.
</t>

<section title="Crucial Data Scheduling">
<t>
During a transmission process, 
there are often some crucial data 
that need to be sent to the destination immediately. 
Examples of such crucial data
are the key frame in multimedia, 
the high priority chunk of emergency communication, etc. 
One cannot guarantee the sequence of data arrival 
along multiple paths
if only the RTTs of the multiple paths are used.
</t>	

<t>

The data rate in any given link can be asymmetric. 
In addition,
the delay in a given direction can change according to the amount of 
packet queue.
Therefore delay in a forward direction in a path
is not necessarily the same as that in the reverse direction
as exemplified in Figure 1.
</t>

<figure>
  <preamble/>

  <artwork><![CDATA[
     --------   OWL(s-to-c,path1)=16ms   <--------
   /                                               \
  |     ----->  OWL(c-to-s,path1)= 5ms    -----     |
  |   /            RTT(path1)=21ms              \   |
  |  |                                           |  |
+------+                                       +------+
|      |----->  OWL(c-to-s,path2)= 8ms    -----|      |
|Client|                                       |Server|
|      |-----   OWL(s-to-c,path2)= 8ms   <-----|      |
+------+           RTT(path2)=16ms             +------+
  |  |                                           |  |
  |   \                                         /   |
  |     ----->  OWL(c-to-s,path3)=10ms    -----     |
   \                                               /
     --------   OWL(s-to-c,path3)= 8ms   <--------
                   RTT(path3)=18ms
  ]]></artwork>

  <postamble>
Figure 1. Example with 3 paths between the client and the server
with OWL as indicated in the figure.
RTT information alone would indicate to the client
that the fastest path to the server
is path 2, followed by path 3, and then followed by path 1.
path 2 is the fastest,
whereas OWL indicates to the client
that the fastest path to the server
is path 1, followed by path 2, and then followed by path 3. 
  </postamble>
</figure>

<t>
Using the results of OWL measurement, 
the sender can easily select the faster path, 
in terms of the latency in the forward direction, 
for crucial data transmission. 
Moreover, 
the acknowledgements of these crucial data 
can be sent on the path with minimum latency
in the reverse direction. 
Piggyback is then also useful 
when in duplex communication mode.
</t>	
</section>


<section title="Congestion Control">

<t>
Congestion in a given direction
does not necessarily imply congestion also in the reverse direction.
</t>

<figure>
  <preamble/>

  <artwork><![CDATA[
     --------   No congestion (path 1)   <--------
   /                                               \
  |     ----->  Congestion    (path 1)    -----     |
  |   /                                         \   |
  |  |                                           |  |
+------+                                       +------+
|Client|                                       |Server|
+------+                                       +------+
  |  |                                           |  |
  |   \                                         /   |
  |     ----->  No congestion (path 2)    -----     |
   \                                               /
     --------   Congestion    (path 2)   <--------

  ]]></artwork>

  <postamble>
Figure 2. Example of a congestion situation 
with 2 paths between the client and the server.
There is congestion from client to server along path 1
and also from server to client along path 2.
RTT information alone will indicate congestion in both paths,
whereas OWL information will show the client that path 2
is the more lightly loaded path to get to the server.
  </postamble>
</figure>

<t>
Network congestion in a given direction 
can be better described using OWL
rather than using RTT.
Especially when the congestion can be a situation
in a unidirectional path,
the congestion in the path from a client to a server
is different from the congestion in the path 
from the server to the client.
The RTT cannot accurately reflect the delay of interest
for data transmission along a path. 
For multipath in QUIC, 
the client needs to choose a more lightly loaded path 
to send packets
<xref target="RFC6356"/>.
It will then be unwise to compare the RTT 
among different paths,
and it should instead compare the OWL among the paths.
</t>	

</section>

<section title="Packet Retransmission">
<t>
Continuous Multipath Transmission (CMT) increases throughput
by concurrently transferring new data
from a source to a destination host
via multiple paths. 
However, when a packet is lost,
Receive Buffer Blocking (RBB) will occur
as illustrated in Figure 3. 
</t>



<figure>
  <preamble/>

  <artwork><![CDATA[
              Stream 5, Offset    0, Length 500 (lost) 
       -----> Stream 5, Offset 1000, Length 500 (rcvd) -----      
     /        Stream 5, Offset 2000, Length 500 (rcvd)       \    
    |                                                         |   
+------+                                                  +--------+
|Sender|                                                  |Receiver|
+------+                                                  +--------+
    |                                                         |   
     \        Stream 5, Offset  500, Length 500 (rcvd)       /    
       -----> Stream 5, Offset 1500, Length 500 (rcvd) -----      
              Stream 5, Offset 2500, Length 500 (rcvd)
  ]]></artwork>

  <postamble>
Figure 3. Example of Receive Buffer Blocking:
The packet containing octets 0-499 in Stream ID=5 is lost.
On the other hand
the packets containing Octets 500-999,
1000-1499, 1500-1999, 2000-2499 in Stream ID=5
have all been received. 
The octets 500-2000 are then all buffered
at the receiver,
and are blocked by the missing octets 0-499.
  </postamble>
</figure>



<t>
Therefore, 
the sender needs to select a suitable path 
to retransmit ASAP. 
Using the results of OWL measurement, 
the sender can quickly determine the specific path 
with minimum forward latency. 
RBB can then be relieved 
as soon as the receiver 
obtains the most needed frames in the retransmitted packet(s) 
and submits them to the upper layer.
</t>	
</section>


</section>

<section title="OWL Measurement">
<t>
Two kinds of OWL measurement approaches are available: 
absolute value measurement and relative value measurement.	
</t>
<t>
To obtain the absolute value of OWL, 
the primary condition of measurement is clock synchronization. 
Using Network Time Protocol (NTP) 
<xref target="RFC5905"/>, 
end hosts can calibrate the local clock with the remote NTP server. 
The additional information or optional capabilities 
can even be added via extension fields 
in the standard NTP header 
<xref target="RFC7822"/>. 
The calibration accuracy can 
reach to the millisecond level in less congested situations. 
The obvious burden here is to persuade the end hosts to 
initialize the NTP option.	
</t>

<t>
Obtaining the relative value of OWL 
is more than enough in some circumstances 
to establish applications on top of it. 
When retransmission is needed, 
for example,
the sender may only care about 
which path has the minimum forward latency.

When bandwidth is being estimated, 
the difference of forward latency, 
i.e. delta latency, 
among all available paths is needed. 
By exchanging with correspondent end host
the local timestamps of receiving and sending the packets, 
both sides could obtain the relative value of OWL. 
</t>

<t>
The considerations to obtain the absolute values 
are the extra protocol requirement 
and synchronization accuracy. 
However, using the absolute values 
is more convenient for its applications. 
On the contrary, the relative measurement 
only needs to send timestamps in the acknowledgment
and there is no need to worry about the clock synchronization.	
</t>

</section>




<section anchor="security" title="Security Considerations">
<t>TBD</t>
</section>

<section title="IANA Considerations">
<t>This document presents no IANA considerations.</t>
</section>



</middle>

<back>
<references title="Normative References">
&rfc2119;

<!--
<?rfc include="reference.RFC.7389.xml" ?>
<?rfc include="reference.RFC.6241.xml" ?>
-->







<!--
<?rfc include="reference.I-D.bernardos-dmm-cmip.xml"?>
<?rfc include="reference.I-D.bernardos-dmm-pmip.xml"?>
<?rfc include="reference.I-D.sarikaya-dmm-for-wifi.xml"?>
<?rfc include="reference.I-D.yhkim-dmm-enhanced-anchoring.xml"?>
-->
</references>

<references title="Informative References">

<?rfc include="reference.I-D.song-mptcp-owl.xml"?>
<?rfc include="reference.I-D.ietf-quic-transport.xml"?>

	<?rfc include="reference.RFC.5905.xml" ?>
	<?rfc include="reference.RFC.6356.xml" ?>
	<?rfc include="reference.RFC.7822.xml" ?>


</references>
</back>

</rfc>
