<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.24 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-guo-intarea-savax-control-00" category="std">

  <front>
    <title abbrev="SAVA-X-Control">Control Plane of Inter-Domain Source Address Validation Architecture</title>

    <author initials="K." surname="Xu" fullname="Ke Xu">
      <organization abbrev="Tsinghua University">Computer Science, Tsinghua University</organization>
      <address>
        <postal>
          <street>Qinghuayuan street, Haidian District</street>
          <city>Beijing</city>
          <code>100084</code>
          <country>China</country>
        </postal>
        <email>xuke@tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="X." surname="Wang" fullname="Xiaoliang Wang">
      <organization abbrev="Tsinghua University">Computer Science, Tsinghua University</organization>
      <address>
        <postal>
          <street>Qinghuayuan street, Haidian District</street>
          <city>Beijing</city>
          <code>100084</code>
          <country>China</country>
        </postal>
        <email>wangxiaoliang0623@foxmail.com</email>
      </address>
    </author>
    <author initials="Y." surname="Guo" fullname="Yangfei Guo">
      <organization abbrev="Tsinghua University">Institute for Network Sciences and Cyberspace, Tsinghua University</organization>
      <address>
        <postal>
          <street>Qinghuayuan street, Haidian District</street>
          <city>Beijing</city>
          <code>100084</code>
          <country>China</country>
        </postal>
        <email>guoyangf19@mails.tsinghua.edu.cn</email>
      </address>
    </author>

    <date year="2021" month="October" day="23"/>

    <area>Internet Area</area>
    <workgroup>Internet Area Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>Because the Internet forwards packets according to the IP destination
address, packet forwarding typically takes place without inspection
of the source address and malicious attacks have been launched using
spoofed source addresses. The inter-domain source address validation
architecture is an effort to enhance the Internet by using
state machine to generate consistent tags. When communicating between
two end hosts at different ADs of IPv6 network, tags will be added to
the packets to identify the authenticity of the IPv6 source address.</t>

<t>This memo focus on the control plane of the SAVA-X mechanism.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>The Inter-Domain Source Address Validation (SAVA-X) mechanism
establishes a trust alliance among Address Domains (AD), maintains a
one-to-one state machine among ADs, generates a consistent tag, and
deploys the tag to the ADs' border router (AER). The AER of the
source AD adds a tag to identify the identity of the AD to the
packet originating from one AD and sinking in another AD. The AER of
the destination AD verifies the source address by validating the
correctness of the tag to determine whether it is a packet with a
forged source address.</t>

<t>In the process of packet forwarding, if the source address and the
destination address of this packet both are addresses in the trust
alliance, however the tag is not added or incorrectly added, AER of
the destination AD determines that the source address is forged and
directly discards this packet. The destination AD forwards the
packet directly for packets whose source address is an address
outside the trust alliance.</t>

<t>This document mainly studies the relevant specifications of the
control plane of the inter-domain source address validation
architecture mechanism between ADs, which will protect IPv6 networks
from being forged source address. You could see <xref target="RFC8200"/> for more 
details about IPv6. It stipulates the design
of the consortium blockchain, the nodes' joining and exiting, the
maintenance of trust alliance information based on the consortium
blockchain, and the maintenance of the state machine. Its promotion
and application can realize the standardization of the control plane
in the SAVA-X to facilitate the related equipment developed by
different manufacturers and organizations to cooperate to accomplish
the inter-domain source address validation jointly.</t>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119, BCP 14
<xref target="RFC2119"/> and indicate requirement levels for compliant CoAP
implementations.</t>

</section>
<section anchor="terminology-and-abbreviation" title="Terminology and Abbreviation">

<texttable>
      <ttcol align='left'>Abbreviation</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>AD</c>
      <c>Address Domain, the unit of a trust alliance, which is an address set consisting of all IPv6 addresses corresponding to an IPv6 address prefix.</c>
      <c>TA</c>
      <c>Trust Alliance, the IPv6 network that uses the SAVA-X mechanism.</c>
      <c>STA</c>
      <c>sub-Trust Alliance, parts of TA.</c>
      <c>STA-admin</c>
      <c>STA Administrator, the administrator of STA.</c>
      <c>ACS</c>
      <c>AD Control Server, the server that matains state machine with other ACS and distribute information to AER.</c>
      <c>AER</c>
      <c>AD border router, which is placed at the boundary of an AD of STA.</c>
      <c>ADID</c>
      <c>The identity of an AD.</c>
      <c>ADID_Rec</c>
      <c>The record of a number of an AD.</c>
      <c>ARI_Rec</c>
      <c>The record with relavent information of an AD or STA.</c>
      <c>API_Rec</c>
      <c>The record of prefix of an AD or STA.</c>
      <c>CSR</c>
      <c>Certificate Signing Request, which is used for an AD or STA to join or exit the consortium blockchain.</c>
      <c>SM</c>
      <c>State Machine, which is maintained by a pair of ACS to generate tags.</c>
      <c>Tag</c>
      <c>The authentic identification of source address of a packet.</c>
</texttable>

</section>
<section anchor="the-design-of-the-consortium-blockchain" title="The design of the Consortium Blockchain">

<t>As discussed in the introduction, consortium blockchain will be used
in SAVA-X mechanism.</t>

<section anchor="trust-alliance" title="Trust Alliance">

<t>Trust Alliance (TA) is a hierarchical structure. Address domains
(AD) are assigned into different sub-trust alliances (STA) according
to geographic location, economic relationship, political
relationship, social relationship, and military relationship. AD is
the minimum unit for trust. The one-to-one maintenance state machine
between ADs located in the same layer of sub-trust alliance
generates consistent tags and deploys the tags to their AERs. The
ADs in each sub-trust alliance elect a master AD node. The master AD
node represents the sub-trust alliance and maintains the
alliance-level state machine with other master AD nodes to generate
alliance-level tags. When communicating across sub-trust alliances,
it is necessary to achieve the feature of tag replacement.</t>

<t>The AD in the SAVA-X must be located in a specific sub-trust
alliance. According to its position in the SAVA-X, AD can be
divided into three roles: primary address domain, boundary address
domain, and ordinary address domain which is neither primary nor
boundary address domain.</t>

<t><list style="symbols">
  <t>The primary address domain is the representative node of the
aforementioned sub-trust alliance and is used to establish
connection with the primary address domain of other sub-trust
alliances. In this way, the relationship between trust alliances
finally forms a tree-like relationship, and there will be
no direct relationship between address domains under the same
branch.</t>
  <t>The boundary address domain is the address domain located at
the boundary of the sub-trust alliance. It sends the packet to other sub-trust alliances or outside the trust alliance.</t>
  <t>The ordinary address domain is neither the primary address
domain nor the address domain of the boundary address domain.</t>
</list></t>

<t>Due to the uncontrollable packet forwarding path, in SAVA-X, a
virtual address domain needs to be set up as a non-boundary AD to
communicate with the sub-trust alliance outside or receive packets
sent from outside the sub-trust alliance to maintain the state
machine. The virtual AD is recorded as AD_V (Virtual Address Domain).
When a packet from an AD in a sub-trust alliance needs to be sent
outside the sub-trust alliance, but there are multiple paths to the
destination AD in the sub-trust alliance, the sub-trust alliance
may have multiple boundary ADs to reach the destination AD. The
sub-trust alliance doesnot know which boundary AD will be selected
during the packet forwarding. Therefore, the primary function of
AD_V is to prevent this by specifying the specific tag that should
be added to the packet sent to the external address domain of the
sub-trust alliance.</t>

<t>What's more, the tag needs to be verified by the boundary address
domain of the sub-trust alliance. Therefore, the boundary AD also
needs to receive the tags maintained by the AD and AD_V in the trust
alliance. As a tag for communicating data between the non-primary
address domain and the external address domain of the sub-trust
alliance.</t>

</section>
<section anchor="consortium-blockchain" title="Consortium Blockchain">

<t>To simplify the control plane's design and avoid the single point
failure to subvert the SAVA-X, we design the SAVA-X with a
decentralized infrastructure which will store the information of the
trust alliance.</t>

<t>The consortium blockchain is composed of the trust alliance
management committee chain and several sub-chains. Among them, the
management committee chain is composed of several nodes to manage
the administrator nodes of each sub-chain. The consortium blockchain
records information of the sub-trust alliance administrator node,
named as STA-admin (Sub Trust Alliance administrator), and member
list of each sub-chain which are packaged and submitted by the
STA-admin. Each sub-trust alliance has one STA-admin that is assumed
by a specific elected AD in the sub-trust alliance. The AD in the
same sub-trust alliance forms a private chain to maintain the
information of the members of the sub-trust alliance jointly. The
STA-admin in each sub-trust alliance is responsible for managing the
joining and exiting of the sub-trust alliance node. The STA-admin of
each sub-trust alliance maintains the relationship of the members in
each sub-trust alliance through the trust alliance management
committee chain.</t>

</section>
<section anchor="joining-and-exiting" title="Joining and Exiting">

<section anchor="node-joining" title="Node Joining">

<t>This is the admission of joining of the sub-trustalliance member AD.
The prerequisite for the AD to join the sub-trust alliance is to
have a certificate issued by the STA-admin firstly. AD's Address
Control Server (ACS), which will maintain state machine with other
ACS and distribute alliance information and other information to
AER, submits a Certificate Signing Request file to the STA-admin of
the sub-trust alliance that it wants to join to request the
certificate. The CSR file includes ADID, ACS address information,
IPv6 address prefix information, and its public key information. If
the file is valid, STA-admin verifies the file, generates a node
certificate, packages the AD's information into a block, and
updates the list of members of the sub-consortium. STA-admin
submits the latest block to the consortium blockchain, and the
consortium blockchain updates the list of alliance members of the
entire trust alliance.</t>

<t>When a sub-trust alliance want to join the trust alliance, STA-admin
submits a CSR file to the consortium blockchain, including the
member information list in the sub-chain and the information of the
STA-admin. It requires offline negotiation and cooperation to apply
for joining the consortium blockchain. The consortium blockchain
management committee verifies the validity of the request, issues
administrator certificates, and updates block information. The
STA-admins in the current trust alliance jointly maintain a
management committee chain, manage the administrator certificates of
each sub-trust alliance, and use the certificates for encrypted
communication. STA-admin submits the list of members of the
sub-trust alliance to the consortium blockchain and joins the
entire trust alliance.</t>

<t>After a node joins the consortium blockchain, there is an Effecting
Time and an Expiration Time in the CSR file. STA-admin will assign
the sub-trust alliance member with an ADID number if it does not
contain the ADID information in the submitted information. The
consortium blockchain will give the permitted sub-trust alliance a
sub-trust alliance number if the information submitted by the
sub-trust alliance does not have the sub-trust alliance number. If
there is a conflict between the submitted information and the
returned information, the returned ADID or sub-trust alliance
number will be selected.</t>

</section>
<section anchor="node-exiting" title="Node Exiting">

<t>The member node needs to submit the CSR file again to delete its
relevant information. Its STA-admin decides whether to allow it
exit or not. After passing the validation, nodes of the
sub-blockchain delete the relevant member information. It also
needs to submit a CSR file for the exit of the sub-trust alliance
node, which the alliance management committee decides whether to
allow it. After validating the receiving exit request, other
sub-trust alliance administrator nodes need to delete their
maintenance-related sub alliance node information.</t>

</section>
</section>
</section>
<section anchor="alliance-information-and-state-machine-maintenance-based-on-the-consortium-blockchain" title="Alliance information and state machine maintenance based on the consortium blockchain">

<t>On the AER of the destination AD, to validate the tag, it is first
necessary to find out the sub-trust alliance number from the source
address of the arriving packet and find out its corresponding
source Address Domain Identity (ADID) number. Then find the
currently valid tag according to the ADID number. The generation of
the tag requires the maintenance of the state machine between the
ACSes. In SAVA-X, member ADs need to inform each other of their
sub-trust alliance number, ADID number, AD role, ACS address, and
IPv6 address prefix. The members interact with each other with the
state machine information according to the hierarchical division
structure after obtaining the basic information of the other
members. And use the tags generated by the state machine during the
packet forwarding after the specified time to add and validate the
tags.</t>

<t>The relevant information needs to be stored in the sub-chains,
where the node is located after joining the consortium blockchain.
The information stored on the consortium blockchain needs the
content specified in the following three message formats, namely
ADID_Rec, ARI_Rec, and API_Rec. We give the packet format required
by SAVA-X in the control plane as follows.
## Address Domain Identity Record
Address Domain Identity Record (ADID_Rec) is used to identify an address
domain uniquely in the trust alliacne.</t>

<figure><artwork><![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
 +-+-+-+-+-+-+-+-+
 |   ADID Type   |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~              Address Domain Identity (ADID)                   ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t><list style="hanging">
  <t hangText="ADID Type:">
  8-bit Type of ADID, 1 for 16-bits AS number, 2 for 32-bits AS
number and other unassigned.</t>
  <t hangText="ADID:">
  The 16-bit or 32-bit ADID number. Its value can be the AS
number or the number assigned by the consortium blockchain,
and the specific length is determined by the ADID Type field.
When each bit of ADID is 1, it represents that the AER requests
the information of all members from ACS.</t>
</list></t>

<section anchor="ad-registration-information-record" title="AD Registration Information Record">

<t>AD Registration Information Record (ARI_Rec) is the registration
information record of AD, which is used to record the necessary
information required to register a specific member AD. The ACS and
AD establish connections.</t>

<figure><artwork><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     Action    |     AD Type   |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~                            ADID_Rec                           ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                          ACS Address                          |
 |                                                               |
 |                                                               |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         Effecting Time                        |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t><list style="hanging">
  <t hangText="Action:">
  8-bit instruction to add (ADD=1) or delete (DEL=2) this record.
Others are unassigned.</t>
  <t hangText="AD Type:">
  8-bit unsigned number indicating the role of AD. 0 for ordinary
AD, 1 for primary AD and 2 for boundary AD. Others are
unassigned.</t>
  <t hangText="ADID_Rec:">
  Reference the ADID_Rec packet.</t>
  <t hangText="ACS Address:">
  128-bit the IPv6 address of ACS.</t>
  <t hangText="Effecting Time:">
  64-bit time specifies when this record is applied. It is
recommended to use the 64 bits struct timeval format for the
effecting time of the execution of this record. If all bits of
this field are 0 or earlier than the current time, it means
that it takes effect immediately.</t>
</list></t>

<t>The role of address domain is essential, and each address domain 
needs to be assigned a corresponding role according to its position
in the sub-trust alliance. A sub-trust alliance needs to set one
(and only one) primary address domain. It serves as the
representative of the sub-trust alliance. The tag generated by its
ACS and the ACSes of other sub-trust alliances' primary address
domain maintains the state machine to generate the tag of the
sub-trust alliance, and it issues the tag to the boundary address
domain of the sub-trust alliance. A specific recommendation of a
consensus algorithm could generate the primary address domain or be
directly specified by the operator of the address domain with
offline negotiation. The boundary address domain means that packet
forwards outside the address domain is no longer in the current
sub-trust alliance. The primary address domain can be a boundary
address domain or not. The tag replacement may occur in the
boundary address domain. The ordinary address domain is neither a
primary address domain nor a boundary address domain.</t>

</section>
<section anchor="ad-prefix-information-record" title="AD Prefix Information Record">
<t>AD Prefix Information Record (API_Rec) is the prefix information
corresponds to the prefix of a specific AD. An AD may have more
than one prefix, so registration information and prefix information
records must be separated.</t>

<figure><artwork><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     Action    |   Alliance    |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~                            ADID_Rec                           ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Prefix Length |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         IPv6 Address                          |
 |                                                               |
 |                                                               |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         Effecting Time                        |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t><list style="hanging">
  <t hangText="Action:">
  8-bit instruction to add (ADD=1) or delete (DEL=2) this record.
Others are unassigned.</t>
  <t hangText="Alliance:">
  8-bit the sub-trust alliance number.</t>
  <t hangText="ADID_Rec:">
  Reference the ADID_Rec packet.</t>
  <t hangText="Prefix Length:">
  8-bit the length of the IPv6 prefix.</t>
  <t hangText="IPv6 Address:">
  128-bit indicates a certain address prefix operated by the
corresponding member AD using together with Prefix Length.</t>
  <t hangText="Effecting Time:">
  64-bit time specifies when this record is applied. It is
recommended to use the 64 bits struct timeval format for the
effecting time of the execution of this record. If all bits of
this field are 0 or earlier than the current time, it means
that it takes effect immediately.</t>
</list></t>

<t>ARI_Rec and API_Rec are required to store the AD information in the
consortium blockchain and send it to all AERs of their AD with the
communication protocol between ACS and AER.</t>

</section>
</section>
<section anchor="time-synchronization" title="Time synchronization">
<t>Due to the time error between the border routers of the member ADs, 
to ensure the correct operation of the tag validation, it is
necessary to make each device including ACS and AER in the trust
alliance calibrate to the same clock reference. The NTP protocol 
could achieve this goal. You could see <xref target="RFC5905"/> for more details.</t>

<t>Although the NTP protocol can guarantee the time synchronization
between AERs, there may inevitably still have a slight time
difference between AERs and ACSes. Therefore, each AER sets a 
shared time slice. With this time slice, both the expired tag and 
the new tag are considered valid. That is, more than one tag is
valid for a while. The destination AD needs to validate all valid
tags belonging to a specific source AD. The tag is correct if one
of the tags is validated.</t>

<t>Assuming that the maximum time difference between AER and ACS is
<spanx style="verb">te</spanx>, we set a shared time slice with a length of <spanx style="verb">2te</spanx> between two
adjacent tags. In this shared time slice, the two tags before and
after are valid. The validity period of the tag with the shared
time slice is shown below, see <xref target="figure1"/>.</t>

<figure title="Validity period of tag with the shared time slice" anchor="figure1"><artwork><![CDATA[
 +----------------------+
 |      Tag_(n-1)       |
 +----------------------+
                     +----------------------+
                     |         Tag_n        |
                     +----------------------+
                     |  |
                     |  |
                     |  |
 --------------------|--|------------------------------> Time Line
                     2te
]]></artwork></figure>

<t>In addition to the time difference, we should also take into
account the packet transmission delay in the network. Set the
minimum delay to <spanx style="verb">td_min</spanx> and the maximum delay to <spanx style="verb">td_max</spanx>. The
expiration of <spanx style="verb">Tag_n</spanx> should be extended <spanx style="verb">td_max</spanx> later, and the
beginning of <spanx style="verb">Tag_(n+1)</spanx> validity period should be delayed <spanx style="verb">td_min</spanx>
later. The shared time slice and tag validity period corrected
according to transmission delay are shown as follows, see <xref target="figure2"/>.</t>

<figure title="Validity period of tag with the shared time slice after modified" anchor="figure2"><artwork><![CDATA[
 +----------------------+
 |      Tag_(n-1)       |
 +----------------------+
                      +----------------------+
                      |        Tag_n         |
                      +----------------------+
                      | |
                      | |
 ---------------------|-|------------------------------> Time Line
                      2te-td_min+td_max
]]></artwork></figure>

<t>The expiration of the <spanx style="verb">Tag_n</spanx> is extended to <spanx style="verb">te+td_max</spanx>, and the
beginning of the <spanx style="verb">Tag_(n+1)</spanx> is extended to <spanx style="verb">te-td_min</spanx>.  The
parameters such as <spanx style="verb">te</spanx>, <spanx style="verb">td_min</spanx>, <spanx style="verb">td_max</spanx>, the period of the
shared time slice, and tag validity period are determined by the
destination based on the actual network environment. Therefore, the
lifecyle of a tag is as: <spanx style="verb">lifecycle = Transition Interval + 2te --td_min + td_max</spanx>.</t>

</section>
<section anchor="security-consideration" title="Security Consideration">

<t>This present memo doesnot find any security problem.</t>

</section>
<section anchor="iana-consideration" title="IANA Consideration">

<t>This document makes no requests of IANA.</t>

</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>Much of the content of this document is the expansion of the IETF <xref target="RFC5210"/>
in inter-domain level. Thanks to the effort of pioneers.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference  anchor="RFC5210" target='https://www.rfc-editor.org/info/rfc5210'>
<front>
<title>A Source Address Validation Architecture (SAVA) Testbed and Deployment Experience</title>
<author initials='J.' surname='Wu' fullname='J. Wu'><organization /></author>
<author initials='J.' surname='Bi' fullname='J. Bi'><organization /></author>
<author initials='X.' surname='Li' fullname='X. Li'><organization /></author>
<author initials='G.' surname='Ren' fullname='G. Ren'><organization /></author>
<author initials='K.' surname='Xu' fullname='K. Xu'><organization /></author>
<author initials='M.' surname='Williams' fullname='M. Williams'><organization /></author>
<date year='2008' month='June' />
<abstract><t>Because the Internet forwards packets according to the IP destination address, packet forwarding typically takes place without inspection of the source address and malicious attacks have been launched using spoofed source addresses.  In an effort to enhance the Internet with IP source address validation, a prototype implementation of the IP Source Address Validation Architecture (SAVA) was created and an evaluation was conducted on an IPv6 network.  This document reports on the prototype implementation and the test results, as well as the lessons and insights gained from experimentation.  This memo defines an  Experimental Protocol for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='5210'/>
<seriesInfo name='DOI' value='10.17487/RFC5210'/>
</reference>



<reference  anchor="RFC5905" target='https://www.rfc-editor.org/info/rfc5905'>
<front>
<title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
<author initials='D.' surname='Mills' fullname='D. Mills'><organization /></author>
<author initials='J.' surname='Martin' fullname='J. Martin' role='editor'><organization /></author>
<author initials='J.' surname='Burbank' fullname='J. Burbank'><organization /></author>
<author initials='W.' surname='Kasch' fullname='W. Kasch'><organization /></author>
<date year='2010' month='June' />
<abstract><t>The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet.  This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family.  NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs.  It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required.  It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism.   [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5905'/>
<seriesInfo name='DOI' value='10.17487/RFC5905'/>
</reference>



<reference  anchor="RFC8200" target='https://www.rfc-editor.org/info/rfc8200'>
<front>
<title>Internet Protocol, Version 6 (IPv6) Specification</title>
<author initials='S.' surname='Deering' fullname='S. Deering'><organization /></author>
<author initials='R.' surname='Hinden' fullname='R. Hinden'><organization /></author>
<date year='2017' month='July' />
<abstract><t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t></abstract>
</front>
<seriesInfo name='STD' value='86'/>
<seriesInfo name='RFC' value='8200'/>
<seriesInfo name='DOI' value='10.17487/RFC8200'/>
</reference>




    </references>





  </back>

<!-- ##markdown-source:
H4sIAEBwdWEAA+1cW3MbN5Z+ZxX/A8p+iFUmVZKSeBNVZSuM5Mlo17eRlDh5
ssFukETc7OY0uiUxsafmP+zT/r35JXsuuHY3aY8rMzuZipJU2BcABwfn8p2D
g55Op+PReNToplCn4qwqm7oqxItClkpUC3FRNqqenldrqUtxVbV1psQsz2tl
jPheFjqXja5KMauzlW5U1rS1EuORnM9rdXMqrmbfz6Y/TG2vOE5eZaVcw0h5
LRfNdNlWU102slZyauSNvJtm/O706Ahelg28eXJ0cjw9PpqefDoe3RfJvfQG
9m8aWeavZFGVcHOrDN7Tm/pUNHVrmpOjoy+PToA+GO+U51aqBqhXcjy6XXZu
iZdV/UaXS/FtXbWb8ejNbXhheo70j0eZbE6FaXIcJ6tyePtUtGYqTab1eLTR
pwL+7otMlnBbCVnXcise6IWQRYH0HYiqFitpVmKlaoXzEVPRVJn9Zaq6qdXC
uMvtmq8EvmMnKPxbpzRWrhayLRoDr/gXuJ3niGybVVWf4iP8m7ofQvDi/LcS
P7ThZlUvUTTWmxYmL64yrcpMTcS1gemuWim+K/WNqo1utqGNE4G9LxkgWwED
/8TvbFtgE9+biD9KnWu4PtdwR2dNaJVBH6fiG6V/gmbR7SoH0o+Pjo6++Cy+
24JAwftnK13KcF+BRBen4q59o75uLI2HKm8Ps3InW37QsiqApqV4KeOR/435
cwsTvXPTPnp08unXi+oOHx1m1Xono36ElxdKi2/bqsOli9KAqQE+iQUI/jPV
3IKOOZYZAcorzrZz4MNG7mCh+M3xEIzcFhly/OXXeMMc9uRtPCqreg2m9EaR
Ul7+4ezk+PhL9/vzk+Mj//vLo8/d7y/Anp1ia/znvphOp6KsGvXq4vHVt6+e
wS+6zw/nhXT/4Q18V85h1hJn/Y3KJJqnZqWCCYQFupV1bgQsxRsF9kRmWVWj
iUPLQq++AGMD61mSEwCzwo5hYlu4HqjFdqMzsHlb0cg3sNCbAtZX3GqwQ20j
dGk24DyoE3A62LdhX2O7JMFYg7/JdNXCVdPACAYM540Sc6VKUci2zFYqBytL
C2Y2VbWAy7QbZQ7FNXSuyavl7NU6I914r4Z+InJrGqkQagGzapADqlxJENqU
afOtp6ABxwQ0Qw/gSuH9pSpVjffAxRkQOFVCN3IJJL1cwQxAn9ZtCUxqkF9z
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
rvgtJfwgBlb0ue/izsHRjEf/BwLmHtUZXQAA

-->

</rfc>

