<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.8 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-andersdotter-rrm-for-rtt-in-quic-01" category="info">

  <front>
    <title abbrev="rrm-for-rtt-in-quic">An Investigation into Randomized Response Mechanisms in RTT Measurements for QUIC</title>

    <author initials="A." surname="Andersdotter" fullname="Amelia Andersdotter">
      <organization>CENTR</organization>
      <address>
        <postal>
          <street>Rue Belliard 30</street>
          <city>1040 Brussels</city>
          <country>Belgium</country>
        </postal>
        <email>amelia.ietf@andersdotter.cc</email>
      </address>
    </author>
    <author initials="S." surname="Sahib" fullname="Shivan Sahib">
      <organization>Salesforce</organization>
      <address>
        <email>shivankaulsahib@gmail.com</email>
      </address>
    </author>

    <date year="2020" month="August" day="14"/>

    <area>General</area>

    <workgroup>Internet Research Task Force</workgroup>
    
    <keyword>privacy</keyword>
    <keyword>randomized-response</keyword>
    <keyword>spin bit</keyword>
    <keyword>differential-privacy</keyword>
    <keyword>internet-draft</keyword>

    <abstract>

      <t>The latency spin bit is an optional feature included in the QUIC transport protocol, as standardized by the Internet Engineering Task Force (IETF). It enables passive, on-path observations for estimation of latency. This document presents the results of an inquiry into the potential of using randomized response mechanisms (RRM) to reduce privacy loss in latency measurements. It concludes that RRM could be used to introduce choice for clients in preserving privacy in latency measurements. But the trade-offs, especially since the latency spin bit is already optional, do not favour RRM.</t>

    </abstract>


  </front>

  <middle>


    <section anchor="introduction" title="Introduction">

      <t>At the IETF104 convening of the Privacy Enhancements and Assessments Research Group (PEARG), a presentation on Differential Privacy (<xref target="AA-CL"/>) gave rise to the idea of trying to apply randomized response methods to the QUIC spin bit described in <xref target="TRAMMEL"/> and <xref target="KUEHLEWIND"/>. The spin bit, now incorporated in <xref target="I-D-QUIC">Section 17.3.1</xref>, has generated controversy from a privacy perspective, both in the Working Group meetings and on the QUIC email list. Controversies were re-ignited through the publication of a Human Rights Consideration in <xref target="TENOEVER-MARTINI"/> in 2019. 
     
      Applying RRM is an attempt to address two problems: the privacy loss incurred through the spin bit, and considering the potential of using RRM to have more than one bit assisting in latency measurement as per previous proposals.
    </t>

  </section>

  <section anchor="rrt" title="Randomized Response Mechanisms">

    <t>Randomized response trials were originally suggested by social scientist Stanley Warner to increase response rates in surveys on sensitive topics, such as political affiliation or sexuality <xref target="WARNER"/>. At the flip of a coin (or other random device), a survey taker would answer the opposite question to the one that the survey giver wanted to ask. For instance, if the survey giver wants to find out whether a person has been affiliated with a communist group, the survey taker would instead answer, at some fixed probability, whether they had never been affiliated with a communist group. The effect is the same as if the survey taker would give a false answer to the survey question with some known probability.</t>

<t>This method provoked a flurry of statistical research throughout the 1970s and 80s, with statisticians considering a range of problems in estimation and variance reduction for estimators in the presence of noise on survey responses <xref target="RAO"/>.</t> 

<t>Recently, randomized response mechanisms has again gained traction, through the work of Cynthia Dwork et al on differential privacy <xref target="DWORK"/> or mechanisms for statistical data collection over (presumably large) user sets, such as <xref target="RAPPOR"/>. These developments had led to renewed interest in randomized response mechanisms in the statistical community, with text books <xref target="FOX"/> and handbooks <xref target="RAO"/> covering a large range of possible situations where randomizing responses over a set of outcomes on an individual respondent basis may still enable useful inferences about the population to which the individual belongs.</t>

<t>Randomized response trials were originally created for binary environments: if a series of measurements have only two possible outcomes (0 or 1, yes or no, true or false, for example), allowing individual respondents to answer "falsely" at a predictable rate will still preserve the ability to make inferences on the entire set of respondents. The latency spin bit, being a bit, is a binary outcome variable. Each time it is measured, the idea is that it can either "truthfully" report its value as what it should be according to <xref target="TRAMMEL"/>, or it could, at some known rate or probability, report the opposite value.</t>

    <t>RRMs are easily illustrated for binary response problems. Let's take as an example "Did you go to the last IETF meeting?" The answer to this question is either yes or no. Let us suppose that 25% of all responses are known to be false, and that 80% of all respondents answered yes. Then 60% of the respondents who answered yes can be assumed to have done so truthfully, while 5% of the respondents who answered no have done so falsely. 65% of the respondents can therefore be estimated to have actually attended the last IETF meeting.</t>

    <t>RRMs can also be applied to multiple choice questions. Estimation of true proportions becomes more difficult as the number of possible answers per question goes up. Further examples, including formulas and calculations, can be found in <xref target="RAO"/> and <xref target="FOX"/>.</t>

  </section>

  <section anchor="asb" title="Application to latency spin bit">

    <t>As described in <xref target="TRAMMEL"/>, the latency spin bit is a mechanism for measuring round-trip-times (RTT) in the QUIC protocol. The investigation in this document relies on <xref target="TRAMMEL"/> for its understanding of the basic operation of the latency spin bit, and in particular the following paragraphs and figures from the document are quoted to facilitate the description of RRM below:</t>

    <t>[Begin quote] Initially, during connection establishment, no packets with a spin bit are in flight, as shown in <xref target="illus0"/>.</t>

    <figure title="Initial state, no spin bit between client and server" anchor="illus0">
      <artwork><![CDATA[
        +--------+   -  -  -  -  -   +--------+
        |        |     -------->     |        |
        | Client |                   | Server |
        |        |     <--------     |        |
        +--------+   -  -  -  -  -   +--------+
        ]]>
        
      </artwork>
    </figure>

    <t>Either the server, the client, or both can begin sending packets with short
      headers after connection establishment, as shown in <xref target="illus1"/>; here, no spin
      edges are yet in transit.
    </t>

    <figure title="Client and server begin sending packets with spin 0" anchor="illus1">
      <artwork><![CDATA[
        +--------+   0  0  -  -  -   +--------+
        |        |     -------->     |        |
        | Client |                   | Server |
        |        |     <--------     |        |
        +--------+   -  -  0  0  0   +--------+
        ]]>
        
      </artwork>
    </figure>

    <t>Once the server’s first 0-marked packet arrives at the client, the client sets
      its spin value to 1, and begins sending packets with the spin bit set, as
      shown in <xref target="illus2"/>. The spin edge is now in transit toward the server.
    </t>

    <figure title="The bit begins spinning" anchor="illus2">
      <artwork>
        <![CDATA[
        +--------+   1  0  0  0  0   +--------+
        |        |     -------->     |        |
        | Client |                   | Server |
        |        |     <--------     |        |
        +--------+   0  0  0  0  0   +--------+
        ]]>

      </artwork>
    </figure>

    <t>Five ticks later, this packet arrives at the server, which takes its spin
      value from it and reflects that value back on the next packet it sends, as
      shown in <xref target="illus3"/>. The spin edge is now in transit toward the client.
    </t>

    <figure title="Server reflects the spin edge" anchor="illus3">
      <artwork>
        <![CDATA[
        +--------+   1  1  1  1  1   +--------+
        |        |     -------->     |        |
        | Client |                   | Server |
        |        |     <--------     |        |
        +--------+   0  0  0  0  1   +--------+
        ]]>

      </artwork>
    </figure>

    <t>Five ticks later, the 1-marked packet arrives at the client, which inverts its
      spin value and sends the inverted value on the next packet it sends, as shown
      in <xref target="illus4"/>.
    </t>

    <figure title="Client inverts the spin edge" anchor="illus4">
      <artwork>
        <![CDATA[
        obs. points  X  Y
        +--------+   0  1  1  1  1   +--------+
        |        |     -------->     |        |
        | Client |                   | Server |
        |        |     <--------     |        |
        +--------+   1  1  1  1  1   +--------+
        Y
        ]]>

      </artwork>
    </figure>

    <t>[End quote]</t>

    <t> In each iteration going from <xref target="illus3" /> to <xref target="illus4" /> a sequence of 0s or 1s the length of which is k0 for iteration 0, k1 for iteration 1, and so forth, can be observed (by on-path observers X or Y in <xref target="illus4" />). The length of each sequence equals the amount of ticks required to pass from the client back to the client. After observation n lengths of such sequences, (k[0], ..., k[n]), an average can be taken over k[j]. This average can be multiplied by the amount of time per tick (a quantity which is assumed to be known) to get a value for the round-trip time (RTT).</t>

    <t>Applying randomized response mechanisms (RRMs) perturbs the observed sequence lengths (k[0], ..., k[n]). The perturbation will have the effect of lengthening, shortening, or making more arbitrary the lengths of the sequences, thereby increasing the variance, or disable the possibility, of an estimator of the true RTT value.</t>

    </section>
    
    <section anchor="assumptions" title="Spin bit assumptions">

<t>Deciding on a RRM scheme for RTT in QUIC requires a more explicitly defined mechanism for changing the spin value (the value of the spin bit being transmitted from the client or server) than presently is the case in <xref target="TRAMMEL"/>. For instance, the way in which the server is specified to change its spin value currently is:</t>

<t>"The server initializes its spin value to 0.  When it receives a packet from the client, if that packet has a short header and if it increments the highest packet number seen by the server from the client, it sets the spin value to the spin bit in the received packet." (Section 2)</t>

<t>while the mechanism for changing the spin value in the client is</t>

<t>"The client initializes its spin value to 0.  When it receives a packet from the server, if the packet has a short header and if it increments the highest packet number seen by the client from the server, it sets the spin value to the opposite of the spin bit in the received packet." (Section 2)</t>
    
<t>The goal of the designer in <xref target="TRAMMEL"/> is to cause the spin bit to change its value once per round-trip. Our design goal is different. We want to have the spin bit only sometimes change its value once per round-trip, while it might other times change its value twice per round-trip, or not at all. Additionally, we have the goal of ensuring that we can exercise control over what percentage of round-trips give useful measurements. To simultaneously fill all of those requirements, we introduce the following additional constraints on updating the spin value:</t>

<t><list style="numbers">
<t>Client and server have an internal spin value (NV) which decides the value of the next outgoing spin bit.</t>
<t>Clients and server keep track of the second-to-last incoming spin bit (SLISB), and the last incoming spin bit (LISB).</t>
<t>The NV initializes to 0 at both the client and the server.</t>
<t>An inversion of the client's NV is triggered if SLISB and LISB have different values. Notably, no comparison between the SLISB or LISB and the NV is made. The value of the NV, which determines the value of the next spin bit transmitted, is set independently of the value of the SLISB and LISB.</t>
<t>An inversion does not happen with probability q, even when it should.</t>
<t>A reflection of the server's NV is also triggered if SLISB and LISB have different values.</t>
<t>A reflection does not happen with probability p, even when it should.</t>
<t>In the absence of a triggering event, the NV does not change its value and the client or server continue to transmit bits holding the current NV value.</t>
<t>Client and server act independently of one another, so that neither client or server have any way of determining whether the other has reflected or inverted ``truthfully''.</t>
<t>A special case is the first time a spin bit is recorded by a client or server (immediately after initialization). In this case, the client and server both update the NV truthfully.</t>
</list></t>

        <t>We illustrate these assumptions with a truth table for the client in <xref target="truth_table_client"/> and for the server in <xref target="truth_table_server" />.</t>

        <figure title="Client truth table for inversion of the client's internal spin bit value NVclient. NV'client in the right-most column constitutes a truthful inversion with probability (1−q) and a lying inversion with probability q. * A special case is the firstround-trip after initialization." anchor="truth_table_client"><artwork><![CDATA[
          +----------+-------+------+-------------------+
          | NVclient | SLISB | LISB |     NV'client     |
          +----------+-------+------+-------------------+
          | (0)      | (−)   | (0)  | (1)∗              |
          | 0        |  0    |  0   |  0                |
          | 0        |  0    |  1   |  0(q) or 1(1-q)   |
          | 0        |  1    |  0   |  0(q) or 1(1-q)   |
          | 0        |  1    |  1   |  0                |
          | 1        |  0    |  0   |  1                |
          | 1        |  0    |  1   |  1(q) or 0(1-q)   |
          | 1        |  1    |  0   |  1(q) or 0(1-q)   |
          | 1        |  1    |  1   |  1                |
          +----------+-------+------+-------------------+
          ]]></artwork>
        </figure>

        <figure title="Server truth table for reflection of the server’s internal spin bit value NVserver. * A special case is the firstround-trip after initialization." anchor="truth_table_server"><artwork><![CDATA[
          +----------+-------+------+----------------+
          | NVclient | SLISB | LISB |   NV'client    |
          +----------+-------+------+----------------+
          | (0)      | (−)   | (0)  | (0)∗           |
          | 0        | 0     | 0    | 0              |
          | 0        | 0     | 1    | 0(1−p) or 1(p) |
          | 0        | 1     | 0    | 0(1−p) or 1(p) |
          | 0        | 1     | 1    | 0              |
          | 1        | 0     | 0    | 1              |
          | 1        | 0     | 1    | 1(1-p) or 0(q) |
          | 1        | 1     | 0    | 1(1-p) or 0(q) |
          | 1        | 1     | 1    | 1              |
          +----------+-------+------+----------------+
          ]]></artwork>
        </figure>

</section>
    
<section anchor="model" title="Model specification">

<t>There are two conceivable ways to achieve RRM for RTT measurements:</t>

    <t><list style="numbers">
      <t>The reflection and/or inversion is not activated by the arrival of an edge bit with some probability (``Edge transition RRM''), or</t>
      <t>the server or the client randomizes which bit it transmits at each bit (``Each bit RRM'').</t>
    </list></t>

<t>In particular, in <xref target="I-D-QUIC">QUIC25 draft</xref>, section 17.1.3, a randomization mechanism is called for that renders 7/8 of all spin bit measurements non-useful for the purpose of inferring latency. This encourages us to seek some mathematical solution that can at least guarantee that 7/8 of all traffic streams to which a spin bit is attached are not useful for RTT measurements.</t>

</section>

  <section anchor="simulation" title="Simulation">

    <t>Simulation code for both cases discussed in this document ("RRM at each bit" and "RRM at edge transition") and instructions are hosted on <xref target="SIMULATION">GitHub</xref>.</t>

  </section>

    <section anchor="eachbit" title="Edge transition RRM">

<section anchor="firstrtt" title="One and a half round-trip explained">
    
<t>Recall the assumptions in <xref target="assumptions"/>. Suppose that a round trip takes 2n time units. If we initialize spin bits at the client and server to 0 (assumption 3), they will both see (SLISB, LISB)=(-,0) after n time units, and an NV change is triggered (assumption 10). Now the client maintains an NV value of 1 while the server sets its NV value to 0.</t> 

<t>The client now transmits spin bits valued 1 to the server, while the server continues to transmit spin bits valued 0 to the client. After another n time units (2n time units in total) the client sees a (SLISB, LISB)-tuple valued (0,0), while the server will see a (SLISB, LISB)-tuple (1,0) (assumption 2). This triggers an attempted reflection by the server, meaning that its NV should be changed from 0 to 1 (assumption 6), while a change in the client NV (1) is not triggered (assumption 4). Suppose that the server truthfully reflects its NV to 1. Now the client continues to transmit 1s to the server, while the server transmits 1s to the client. </t>

<t>After yet another n time units (3n time units in total) the server will see the (SLISB, LISB)-tuple (1,1) and therefore do nothing (assumption 8), while the client sees the tuple (0,1) and tries to update its NV (assumption 4). If the client does not do this, so that the client NV remains at 1, then the client will be transmitting 1s to the server and the server will be transmitting 1s to the client.</t> 

<t>After 4n time units, the (SLISB, LISB)-tuples seen by both the client and the server will be (1,1), and both NVs will also be set to 1. Consequently, the (lack of) NV updates after 3n time units have landed us in the situation that there is no longer any possibility for a (SLISB, LISB)-tuple to have different values, and we have ended up in a loop.</t>

<t>This is encouraging, since a loop can be escaped by randomly re-initializing the spin bit after some time that we can choose.</t>
</section>

<section anchor="bitloop" title="A closer look at the loop">

<t>As in the previous section, let the RTT be 2n time units. If NV[client] = NV[server] at time n, and the NVs remain equal to each other at time 2n, the process will be in a loop. If we describe the four different combinations of NVs in the following way:</t>

<t>(NV[client], NV[server]) = (0,0), (1,0), (0,1) or (1,1)</t>

<t>then, in the example above (<xref target="firstrtt" />), we would have the following sequence of transitions: </t>

<t> (0,0)[init] -> (1,0) -> (1,1) -> (1,1) \] </t>

<t>Referring back to the truth tables in <xref target="truth_table_client"/> and <xref target="truth_table_server" />, we can work out how these transitions exactly happen. For example, the transition (1,0) -> (1,1) can happen in the following two ways:</t>

<t>The client attempts to update NV[client] after receiving a triggering (SLISB, LISB)-tuple but fails to invert or it does not receive a triggering (SLISB, LISB)-tuple at all, while the server updates NV[server] truthfully after receiving a triggering (SLISB, LISB)-tuple. The server has one way of transitioning its NV from 0 to 1, while the client has two ways of transitioning its NV from 1 to 1.</t>

<t>We know the probabilities that reflections or inversions will not happen (assumptions 5 and 7 in <xref target="assumptions"/>), but also need to know when a triggering (SLISB, LISB)-tuple will be received. A client receives such a tuple at time kn if the server truthfully updated its NV at time (k-1)n. In fact, a loop occurs as soon as the server does not update its NV truthfully. A (SLISB, LISB)-tuple received by the client will necessarily have the form</t>

<t>(NV[server,t=n(k-1)], NV[server,t=n(k-2)]</t>

<t>and an NV update is triggered only if this tuple contains two different values. From assumption 10 in <xref target="assumptions"/> we have that</t>

<t>NV[server,t=0] = NV[server,t=n] at  t=0, n</t>

<t>and is updated only because NV[client] is updated at t=n by the same assumption. The fact that they are equal means that necessarily</t>

<t>NV[client,t=2n] = NV[client,t=2n]</t>

<t>with NV[client,t] assuming a new value only if $NV[server,s] changes. But if the server would lie once (and not update its NV), we get</t>

<t>NV[server,t=n(k-1)] = NV[server,t=nk] = NV[server,t=n(k+1)]</t>

<t>rendering the server unable to transmit values that can trigger an update of the client NV value.</t>

</section>

<section anchor="rttrestrictions" title="Using model to restrict measurements">

<t>With the insights from <xref target="bitloop"/> we can choose p and q from <xref target="assumptions"/>, and define some re-initialization criteria for the spin bit, for an alternative mechanism to achieve the targets set out in the QUIC spin bit specification in <xref target="I-D-QUIC"/>:</t>

<t>"Each endpoint unilaterally decides if the spin bit is enabled or disabled for a connection.  Implementations MUST allow administrators of clients and servers to disable the spin bit either globally or on a per-connection basis.  Even when the spin bit is not disabled by the administrator, endpoints MUST disable their use of the spin bit for a random selection of at least one in every 16 network paths, or for one in every 16 connection IDs.  As each endpoint disables the spin bit independently, this ensures that the spin bit signal is disabled on approximately one in eight network paths." (sec. 17.3.1)</t>

<t>In order to estimate the round-trip time, an on-path observer needs to have access to at least one full round-trip worth of passing spin bits. The first such accessible round-trip after initialization is the sequence of 1s transmitted by the client, if truthfully reflected by the server with probability (1-p). The second such accessible round-trip is the sequence of 0s that follow upon additionally truthful inversions and reflections by the client and server respectively. The cumulative probability of two accessible round-trips is therefore (1-p)(1-q)(1-p), and in general</t>

<t>P[X round-trips are complete and measurable] = (1-p)^x (1-q)^(x-1)</t>

<t>From this we can derive the expected value</t>

<t>E[X] (1-p) S[x [(1-p)(1-q)]^(x-1) = (1-p)/((1-(1-p)(1-q))^2)</t>

  <t>where S[.] is the sum over x.</t>
  
<t>By the specification quoted above, we want this to be approximately equal to 7/8. A range of values for (p,q) can satisfy this criterion, and, for instance, if the client always tells the truth (i.e. q=0) then p=1/8, meaning that the server lies 1/8 of the time.</t>

<t>Once the client or server have lied for the first time, all future spin bit values cannot be used for measuring round-trip time unless the NV update process is re-initiated. This could be achieved through the client arbitrarily updating its NV in contradiction with assumption 8 of <xref target="assumptions"/> after some period of time, which could be chosen according to a geometric distribution of some expectation r. However, in the time leading up to re-initialization the utility for an on-path observer of recording the spin bit value is nil.</t>

<t>It follows that the actual proportion of useless measurements will be far higher than the 1/8 that is specified in the draft.</t>

<t>A solution is to choose p, q so that the expected value of the number of useful round-trip measurements is higher than 7/8. If we solve for p, q when E[X] = 56/59, we would want the client to re-initiate the NV update procedure after an average of 5 round-trip periods to get an expected 56/64 = 7/8 useful measurements. This supposes, of course, that the client has a way of establishing the approximate round-trip time that is independent of the spin bit.</t>

<t>Additional privacy gains, or at least diminished availability of useful RTT measurements, would be achieved by solving for an expected value lower than 7/8. Since not all measurements are rendered useless by applying RRM, there will eventually always be a time when an on-path observer can make inferences about round-trip time.</t>
</section>

</section>

      <section anchor="discussion2" title="Discussion">

<t>It is possible to apply to RRM to QUIC RTT measurements in a way which delays estimation of RTT. However, it is unclear whether RRM has advantages larger than already existing privacy mechanisms included in the QUIC draft (such as making the spin bit optional, or requiring that 1/8 of all streams are not measurable). The privacy concern associated with a spin bit is that latency measurements will enable inference of the location or distance of the device associated with that particular IP address. But the whole point of differential privacy mechanisms, including RRM, is using statistical methods to ensure that data can be made more privacy-preserving while also preserving the data utility. In the case of the spin bit, it is the utility of the data that allegedly violates privacy, which means differential privacy is an intuitively bad tool to address privacy concerns.</t>

<t>The spin bit is associated with an IP address, which creates linkability. Any differential privacy mechanism will not remove linkability from the spin bit, and so preserves that angle of privacy violation.</t>

<t>RRM could potentially be used to fulfill requirements from <xref target="I-D-QUIC"/>, sec. 17.3.1, in a slightly more flexible way than is currently discussed at the IETF. In particular, the parameters p, q and r could be adjusted to accommodate for any proportion of useful measurements. If r is left for the client to decide, the client may even have influence over the extent to which RTT measurements through the QUIC spin bit is made more difficult (see e.g. <xref target="RFC6973"/>, sec. 7.2).</t>

<t>In order to realize such advantages the functioning of the QUIC spin bit does, however, need to be more stringently specified, in particular in line with our suggestions in <xref target="assumptions"/>.</t>
 
      </section>


</middle>

<back>

  <references title='Informative References'>

   <reference  anchor="RFC6973" target='https://www.rfc-editor.org/info/rfc6973'>
      <front>
        <title>Privacy Considerations for Internet Protocols</title>
        <author initials='A.' surname='Cooper' fullname='A. Cooper'><organization /></author>
        <author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
        <author initials='B.' surname='Aboba' fullname='B. Aboba'><organization /></author>
        <author initials='J.' surname='Petersen' fullname='J. Petersen'><organization /></author>
        <author initials='J.' surname='Morris' fullname='J. Morris'><organization /></author>
        <author initials='M.' surname='Hansen' fullname='M. Hansen'><organization /></author>
        <author initials='R.' surname='Smith' fullname='R. Smith'><organization /></author>
        <date year='2013' month='July' />
        <abstract><t> This document offers guidance for developing privacy considerations for inclusion in protocol specifications.  It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices.  It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.
        </t></abstract>
      </front>
      <seriesInfo name='RFC' value='6973'/>
      <seriesInfo name='DOI' value='10.17487/RFC6973'/>
    </reference> 

   <!--  <reference  anchor="RFC8280" target='https://www.rfc-editor.org/info/rfc8280'>
      <front>
        <title>Human Rights Considerations for Internet Protocols</title>
        <author initials='N.' surname='Ten Oever' fullname='N. Ten Oever'><organization /></author>
        <author initials='C.' surname='Cath' fullname='C. Cath'><organization /></author>
        <date year='2017' month='October' />
        <abstract><t> This document aims to propose guidelines for human rights considerations, similar to the work done on the guidelines for privacy considerations (RFC 6973). The other parts of this document explain the background of the guidelines and how they were developed.
        </t></abstract>
      </front>
      <seriesInfo name='RFC' value='8280'/>
      <seriesInfo name='DOI' value='10.17487/RFC8280'/>
    </reference> -->

    <reference  anchor="I-D-QUIC" target='https://tools.ietf.org/html/draft-ietf-quic-transport-23'>
      <front>
        <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
        <author initials='J.' surname='Iyengar' fullname='J. Iyengar'><organization /></author>
        <author initials='M.' surname='Thomson' fullname='M. Thomson'><organization /></author>
        <date year='2019' month='September' />
        <abstract><t> This document defines the core of the QUIC transport protocol. Accompanying documents describe QUICs loss detection and congestion control and the use of TLS for key negotiation.
        </t></abstract>
      </front>
    </reference>

    <reference  anchor="AA-CL" target='https://datatracker.ietf.org/meeting/104/materials/slides-104-pearg-amelia-christoffer-differential-privacy-00'>
      <front>
        <title>Differential Privacy (PEARG, IETF104)</title>
        <author initials='A.' surname='Andersdotter' fullname='A. Andersdotter'><organization /></author>
        <author initials='C.' surname='Långström' fullname='C. Långström'><organization /></author>
        <date year='2019' month='March' />
      </front>
    </reference>

    <reference  anchor="DWORK" target='https://www.cis.upenn.edu/~aaroth/Papers/privacybook.pdf'>
      <front>
        <title>The Algorithmic Foundations of Differential Privacy</title>
        <author initials='A.' surname='Roth' fullname='A. Roth'><organization /></author>
        <author initials='C.' surname='Dwork' fullname='C. Dwork'><organization /></author>
        <date year='2014' />
        <!-- <seriesInfo name='DOI' value='10.1561/0400000042' /> -->
      </front>
    </reference>

    <reference  anchor="FOX">
      <front>
        <title>Randomized Response and Related Methods: Surveying Sensitive Data</title>
        <author initials='J.A.' surname='Fox' fullname='J.A. Fox'><organization /></author>
        <date year='2017' month='February' />
        <!-- <seriesInfo name='DOI' value='10.4135/9781506300122'/> -->
      </front>
    </reference>

    <reference anchor="KUEHLEWIND" target="https://tools.ietf.org/html/draft-ietf-quic-spin-exp-01">
      <front>
        <title>The QUIC Latency Spin Bit (draft-ietf-quic-spin-exp-01)</title>
        <author initials='M.' surname='Kuehlewind' fullname='M. Kuehlewind'><organization /></author>
        <author initials='B.' surname='Trammel' fullname='B. Trammel'><organization /></author>
        <date year="2018" month='October'/>
      </front>
    </reference>

    <reference  anchor="TENOEVER-MARTINI" target='https://tools.ietf.org/html/draft-martini-hrpc-quichr-00'>
      <front>
        <title>QUIC Human Rights Review (draft-martini-hrpc-quichr-00)</title>
        <author initials='B.' surname='Martini' fullname='B. Martini'><organization /></author>
        <author initials='N.' surname='Ten Oever' fullname='N. Ten Oever'><organization /></author>
        <date year='2018' month='October' />
      </front>
      </reference>

          <reference  anchor="RAO">
      <front>
        <title>"Review of Certain Recent Advances in Randomized Response Techniques" in C.R. Rao (Ed.), Handbook of Statistics, Elsevier B.V, Oxford (UK).</title>
        <author initials='T.J.' surname='Rao' fullname='T.J. Rao'><organization /></author>
        <author initials='C.R.' surname='Rao' fullname='C.R. Rao'><organization /></author>
        <date year='2016' />
      </front>
      </reference>

      <reference  anchor="WARNER">
      <front>
        <title>"Randomized response: a survey technique for eliminating evasive answer bias." J. Am. Stat. Assoc. 60 (309), 63–69.</title>
        <author initials='S.L.' surname='Warner' fullname='S.L. Warner'><organization /></author>
        <date year='1965' />
      </front>
      </reference>

      <reference  anchor="RAPPOR">
      <front>
        <title>RAPPOR: Randomized Aggregatable Privacy-Preserving Ordinal Response", arXiv:1407.6981v2 [cs.CR]</title>
        <author initials='U.' surname='Erlingsson' fullname='U. Erlingsson'><organization /></author>
        <author initials='A.' surname='Korolova' fullname='A. Korolova'><organization /></author>
        <author initials='V.' surname='Pihur' fullname='V. Pihur'><organization /></author>
        <date year='2014' />
      </front>
      </reference>

    <reference  anchor="SIMULATION" target='https://github.com/ShivanKaul/draft-andersdotter-rrm-for-rrt/tree/master/spinbit_simulation'>
      <front>
        <title>https://github.com/ShivanKaul/draft-andersdotter-rrm-for-rrt/tree/master/spinbit_simulation</title>
        <author initials='S.' surname='Sahib' fullname='S. Sahib'><organization /></author>
        <author initials='A.' surname='Andersdotter' fullname='A. Andersdotter'><organization /></author>
        <date year='2019' month='November' />
      </front>
    </reference>

    <reference  anchor="TRAMMEL" target='https://www.ietf.org/archive/id/draft-trammell-quic-spin-03.txt'>
      <front>
        <title>Adding Explicit Passive Measurability of Two-Way Latency to the QUIC Transport Protocol (draft-trammell-quic-spin-03)</title>
        <author initials='B.' surname='Trammel' fullname='B. Trammel'><organization /></author>
        <author initials='M.' surname='Boucadair' fullname='P. De Vaere'><organization /></author>
        <author initials='R.' surname='Even' fullname='R. Even'><organization /></author>
        <author initials='G.' surname='Fioccola' fullname='G. Fioccola'><organization /></author>
        <author initials='T.' surname='Fossati' fullname='T. Fossati'><organization /></author>
        <author initials='M.' surname='Ihlar' fullname='M. Ihlar'><organization /></author>
        <author initials='A.' surname='Morton' fullname='A. Morton'><organization /></author>
        <author initials='E.' surname='Stephan' fullname='E. Stephan'><organization /></author>
        <date year='2018' month='May' />
      </front>
    </reference>

  </references>

</back>

<!-- ##markdown-source:
H4sIAByHrloAA5Va7W4bR5b9309RyGAQCWBTomTZFvMjK0uyrVnLUUQFQXax
WBS7i2RFzW6mq1s0YxjY19jX2yfZc25Vf5CiJ57BJKH649b9vufe23EcR5Wt
MjNWP60qW+Q6UxOT1KWtNurGqY9FpS7ycC/S02lpnsaqCI/GLjwapUWS6yWo
pKWeVXFV6uXSZFn87Mk4L6oo1ZUZRwn+PS/KzVjZfFZEkV2VY1WVtatOjo/P
j0+iR7NZF2U6Vjd5ZcrcVPEVqUeRq3Se/rfOihwnboyLVnas/rMqkoFyRVmV
Zubwa7Pkj/+KIl1Xi6IcR0rF+EfhODdWb4bqIXApFz37b0qr8+0bRTkfq+uH
9+o/IECykGtmqW0Gvk01+7dG1mG453C+qcbql9w+mdLZSle4pJ0z6qU8kEAN
Y/X6+PykTzIp6ryiMiZrW/1pygwiRlFelEtdgdAY+oGW2r+UuvhkMueK/Px8
LAQ6Kfm/OPw3SDsZts/LjWDzh4VRb7Qz8T1sod7qLNPJRuFkZSunbparzMJK
sKBTOFtVePzKzmY2qTP4RzGjZWAwPKCuTGUSPqoObK4uLm/V5eVEjc7Pzw/9
ibqcUy2LqlqNj47W6/Ww1DaNYaZV4Wy9HELRR7x0fn50d3F3fT85algertKZ
EBHHEaL488MmWZin0ek3iH8/DE9/VTvviiydmnK+/4HboZokC72ype6r7827
uy5aIPWdLiuLCLoyq6zYLE1eqZhRRL1N/qiN+dOoX+GgC7nyj9om5kdR1+Tm
3eVPt7fq5Hh0+lxdDvpKinxmSpMnxg2dnSfF0iss/D7im0crvYLHtddWo1ej
HdXxMfz5zmY6Hb36Bs39NvQP7797MVSXxcLkX7373pR/frtanz3wXh6os6Xe
ctuLEno09F78+M1UP6qfcnV/9+83//c//+v62qcntwaioj9eTSZUwqv9WqZX
5qlzO17JS3xJfsT8Fa/KYi6Bf6RLE69NXJGZeIMkVa4erYvTlosYXLT572jb
GK/i0QhXLhd1Pv8mezwM/cNf9fMn5K97+7tb298f4ytjf9//5BXpFLNZjuz5
tQc+mCf7FdMie97q+fwr78Lwt9ZlxZPZf/9yqH612U4u+iVP4bzM7DafS4Dc
F5lhkrk3c8sUWjoG2dXHyeT6smflfyle7DI5ElOGWMHfMMLMokadnT4PlmAf
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
7YCBa/ENwQgXNH4p8P91ueQlZTEAAA==
-->

</rfc>
