<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zlgsgl-rtgwg-agents-networking-framework-00" category="info" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Agents Networking Framework">Agents Networking Framework for Enterprise and Broadband</title>
    <seriesInfo name="Internet-Draft" value="draft-zlgsgl-rtgwg-agents-networking-framework-00"/>
    <author initials="L." surname="Zhang" fullname="Li Zhang">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>No. 156 Beiqing Road</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhangli344@huawei.com</email>
      </address>
    </author>
    <author initials="B." surname="Liu" fullname="Bing Liu">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>No. 156 Beiqing Road</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>leo.liubing@huawei.com</email>
      </address>
    </author>
    <author initials="N." surname="Geng" fullname="Nan Geng">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>gengnan@huawei.com</email>
      </address>
    </author>
    <author initials="X." surname="Shang" fullname="Xiaotong Shang">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>No. 156 Beiqing Road</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>shangxiaotong@huawei.com</email>
      </address>
    </author>
    <author initials="Q." surname="Gao" fullname="Qiangzhou Gao">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>No. 156 Beiqing Road</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>gaoqiangzhou@huawei.com</email>
      </address>
    </author>
    <author initials="Z." surname="Li" fullname="Zhenbin Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>No. 156 Beiqing Road</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>robinli314@163.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="03"/>
    <area>rtg</area>
    <workgroup>rtgwg</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 77?>

<t>This document introduces agents networking framework and defines the core components of agent networking in enterprise and broadband, as well as typical interactions among these key components.</t>
    </abstract>
  </front>
  <middle>
    <?line 81?>

<section anchor="intro">
      <name>Introduction</name>
      <t>With the rapid development of artificial intelligence, single-agent systems have gradually revealed their limitations in handling complex, multi-task, and cross-domain scenarios. Agent networking, as a core paradigm for breaking through individual capabilities and achieving collective intelligence, has become a key trend in the future development of agents.</t>
      <t>This document introduces agents networking framework and defines the core components of agent networking in enterprise and broadband, as well as typical interactions among these key components.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</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>
        <?line -18?>

</section>
    </section>
    <section anchor="ioa-framework-and-components">
      <name>IoA framework and Components</name>
      <section anchor="overview-of-agents-networking">
        <name>Overview of Agents Networking</name>
        <t>The overall framework of agents networking is shown in <xref target="ref-to-fig1"/>.</t>
        <figure anchor="ref-to-fig1">
          <name>Agents Networking framework</name>
          <artwork><![CDATA[
    +-----+         +-----+         |       +-----+          +-----+
    |ACA 1|         | ARS1|-----------------| ARS2|          |ACA 2|
    +--+--+         +--+--+         |       +--+--+          +--+--+
       |               |            |          |                |
       +---+-----------+----+       |       +--+------------+---+
           |                |       |       |               |   
       +---+---+        +---+---+   |   +---+---+       +---+---+
       |Agent a|--------|Agent b|   |   |Agent x|-------|Agent y|
       +---+---+        +---+---+   |   +---+---+       +---+---+
           |                |       |       |               |
           |            +---+---+   |   +---+---+           |
           +------------| AGw 1 |-------| AGw 2 |-----------+
                        +---+---+   |   +---+---+
            Domain1                 |               Domain2
]]></artwork>
        </figure>
        <t>The framework of agents networking consists of four key components, the Agent Certificate Authority(ACA), the Agent Registration Server(ARS), the Agents, and the Agent Gateway(AGw).</t>
      </section>
      <section anchor="agent-certificate-authority">
        <name>Agent Certificate Authority</name>
        <t>An Agent Certificate Authority (ACA) is essentially a trusted third-party organization that issues and manages digital certificates for intelligent agents (Agents). Its core function is to ensure the authenticity of Agent identities and the security of their interactions. By issuing digital certificates that contain key data such as Agent identity information and public keys, it enables other Agents or systems to verify the identity of the Agent, preventing the access of counterfeit or malicious Agents.</t>
        <t>The major functions of ACA include Certificate Issuance and Certificate Management.</t>
        <ul spacing="normal">
          <li>
            <t>Certificate Issuance: It verifies the real identity of an Agent (including developer information, affiliated organization, functional permissions, etc.). After verification, a unique digital certificate is generated and issued.</t>
          </li>
          <li>
            <t>Certificate Management: It is responsible for the full-lifecycle management of certificates, including certificate renewal (renewal before the expiration of validity period) and revocation (when an Agent is deregistered or its key is leaked).</t>
          </li>
        </ul>
      </section>
      <section anchor="agent-registration-server">
        <name>Agent Registration Server</name>
        <t>An Agent Registration Server(ARS) is specifically responsible for Agent identity registration, capability profiling, and accurate discovery-matching. Acting as the "identity management center" and "resource directory library" in the Agent ecosystem. The major functions of ARS include agent registration, agent information management, and agent discovery. The ARS can be either centralized or distributed, but regardless of the form, information synchronization between different servers is essential. For easily deployment, the ARS also can be integrities in the AGw.</t>
        <ul spacing="normal">
          <li>
            <t>Agent registration: The agent sends a registration request with its information, upon the verification is passed, then the ARS generates a unique "resource ID" for the Agent, creates a profile in the "Agent Database" to record all the agent information.</t>
          </li>
          <li>
            <t>Information management: It is responsible for the full-lifecycle management of Agents profiles, including update (when a gent's information changes) and delete (when an Agent is discarded).</t>
          </li>
          <li>
            <t>Agent Discovery: The ARS maintains a dynamically updated "Agent Database" that records key information of all Agents registered at this ARS and synchronized from other ARSs. An agent needs collaboration just need to send a capability request to the ARS, then the ARS will quickly filter out matching target Agents and return them information to the requested agent.</t>
          </li>
        </ul>
      </section>
      <section anchor="ai-agents">
        <name>AI Agents</name>
        <t>The functions that should be supported for AI Agent interconnection include task orchestration, task management, and session management.</t>
        <ul spacing="normal">
          <li>
            <t>Task orchestration: It breaks down complex tasks into subtasks, assigns them to Agents with corresponding capabilities, and clarifies the collaboration process. Based on the capabilities of each Agent (e.g., a Flight Agent specializes in ticket booking, a Visa Agent specializes in visa processing), it plans the execution sequence and dependency relationships of tasks to ensure efficient resource utilization.</t>
          </li>
          <li>
            <t>Task Management: It tracks subtask progress, handles exceptions, and ensures the overall task progresses as planned. It monitors the execution status of each subtask (e.g., "pending," "in progress," "completed," "failed"), records task output results (such as flight confirmation numbers and visa documents), and addresses issues during execution.</t>
          </li>
          <li>
            <t>Session Management: It maintains the continuity and integrity of interactive sessions, ensuring historical information is traceable and context is not disconnected. It manages the lifecycle of conversations between Agents, records all interactive content (e.g., instructions, feedback, problem discussions), and provides contextual support for subsequent interactions to avoid repeated communication.</t>
          </li>
        </ul>
      </section>
      <section anchor="agent-gateway">
        <name>Agent Gateway</name>
        <t>An AGw essentially serves as a "Connection Hub" and "Security Steward" in the process of agent communication. Its core role is to resolve interconnection issues between different Agents of different domains while ensuring secure, efficient, and orderly communication. The AGw should support the following functions:</t>
        <ul spacing="normal">
          <li>
            <t>Route Management: When it comes to cross-domain agent communication, an agent or AGw may not be able to directly establish a connection with another agent in a different domain for some reasons. In such cases, the AGw needs to have routing management function. The routing management function generates dynamic routing entries based on Agent information advertised by other AGws, and guides message forwarding between cross-domain Agents—essentially acting as a "cross-domain traffic commander" for the Agent ecosystem.</t>
          </li>
          <li>
            <t>Security Protection: Agent communication may involve sensitive data (such as user privacy, core business data), and malicious external Agents may attempt to forge identities, steal data, or launch attacks. The AGw serves as a core barrier for security protection. The AGw should supports the identity verification of Agents, data encryption, and access control for agents.</t>
          </li>
          <li>
            <t>Traffic Control: If multiple Agents simultaneously send discovery requests to the AGw, or concentrate on initiating collaboration requests after finding target Agents, the AGw may become overloaded or the target Agents may crash. The AGw should impose traffic limits on discovery requests. For example, it sets a cap on the number of discovery queries per Agent per minute to prevent malicious Agents from occupying resources with frequent queries.</t>
          </li>
          <li>
            <t>Dual Translation (Protocol and Language): Agents may face two key obstacles to direct communication: inconsistent technical protocols and different natural language expressions. The AGw's translation function addresses both issues simultaneously to ensure seamless information transmission. On the one hand, it automatically identifies the communication protocol (e.g., HTTP, MQTT, gRPC, or custom protocols) and data format (e.g., JSON, Protobuf) used by the sending Agent, then converts them into the standard protocol/format supported by the receiving Agent. On the other hand, it handles natural language differences between Agents (e.g., Agent X uses English to send "Book a twin room" while Agent Y only understands Chinese). The AGw automatically translates the content into the target language, ensuring the receiving Agent accurately grasps the semantic intent without additional language adaptation.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="interactions-of-agents-networking-framework">
      <name>Interactions of Agents Networking framework</name>
      <section anchor="interactions-between-agents-and-acas">
        <name>Interactions between Agents and ACAs</name>
        <section anchor="certificate-application">
          <name>Certificate Application</name>
          <t>This is the most fundamental first interaction between an agent and an ACA. Its purpose is to enable the Agent to pass the ACA's verification and obtain a digital certificate that proves its legitimacy. It includes three steps:</t>
          <ul spacing="normal">
            <li>
              <t>Application request: The Agent sends a certificate application to the CA, along with key supporting materials. These materials include identity-verifying information (such as the qualification documents of its affiliated organization, the identity of its developer), the Agent's own attributes (such as function type, permission scope, skills), and a public key for subsequent encrypted communication (the Agent retains the corresponding private key and does not disclose it to external parties).</t>
            </li>
            <li>
              <t>Application verification: After receiving the application, the ACA checks the authenticity and compliance of the materials. For example, it verifies whether the organization's qualifications are valid, whether the public key meets encryption standards, and whether the Agent's functions fall within permitted scopes. If no issues are identified, the application is approved.</t>
            </li>
            <li>
              <t>Certificate generation: Upon approval, the ACA generates a digital certificate containing specific information. This information includes the Agent's identity details, public key, certificate validity period, and the ACA's digital signature (used to prove the certificate is legally issued by the CA). The CA then sends this certificate to the applying Agent.</t>
            </li>
          </ul>
        </section>
        <section anchor="certificate-management">
          <name>Certificate Management</name>
          <t>A certificate is not permanently valid. The Agent must cooperate with the ACA to complete operations such as renewal and revocation, ensuring the "digital identity" remains valid and secure.</t>
          <ul spacing="normal">
            <li>
              <t>Certificate status query: The Agent can send a query request to the ACA at any time to confirm the current status of its certificate—such as whether it is still within the validity period or has been revoked due to abnormal circumstances. This allows the Agent to identify and resolve certificate-related issues promptly (e.g., applying to the CA for recovery if the certificate was incorrectly revoked).</t>
            </li>
            <li>
              <t>Certificate renewal: When the certificate is about to expire, the Agent proactively sends a renewal request to the ACA, along with the soon-to-expire old certificate. If its identity information (such as affiliated organization, permissions) has not changed, the application materials can be simplified. After the ACA approves the request, it generates a new certificate with an updated validity period and sends it to the Agent. The Agent replaces the old certificate with the new one to ensure the identity credential remains valid.</t>
            </li>
            <li>
              <t>Certificate revocation application: If the Agent experiences issues such as private key leakage, permanent deactivation of functions, or deregistration of its affiliated organization, the Agent (or its administrator) sends a certificate revocation request to the ACA to invalidate the currently held certificate. After confirming the request's legitimacy, the ACA adds the certificate to the "Certificate Revocation List (CRL)" to prevent the invalid certificate from being misused by others.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="interactions-between-agents-and-arss">
        <name>Interactions between Agents and ARSs</name>
        <section anchor="registration">
          <name>Registration</name>
          <t>An Agent must first complete registration with the ARS before it can be discovered by other Agents and participate in collaboration. This is the foundational interaction between the two parties. It includes three steps:</t>
          <ul spacing="normal">
            <li>
              <t>Registration request: The Agent sends a registration request to the ARS, accompanied by its information. This includes its identifier (e.g., Agent name), description of core capabilities (e.g., "hotel booking," "data format conversion"), supported communication protocols/languages (e.g., HTTP, Chinese), and credentials for identity verification (e.g., a digital certificate issued by an ACA).</t>
            </li>
            <li>
              <t>Registration verification: The ARS verifies the legitimacy of the Agent's identity (e.g., checking if the CA certificate is valid) and confirms the completeness of the registration information. Upon successful verification, the ARS creates a profile for the Agent in its "Agent Database," recording key data such as the Agent's capabilities, online status, and communication address to complete the registration.</t>
            </li>
            <li>
              <t>Registration response: The ARS feeds back results ("registration successful" or "registration failed," e.g., due to failed identity verification or missing information) to the Agent.</t>
            </li>
          </ul>
        </section>
        <section anchor="information-management">
          <name>Information Management</name>
          <t>After registration, the Agent needs to continuously interact with the ARS to update its status and information, preventing the ARS's profile from becoming "outdated" and causing other Agents to match invalid resources.</t>
          <ul spacing="normal">
            <li>
              <t>Information update: If an Agent upgrades its capabilities or changes its communication address (e.g., IP change due to server migration), it needs to proactively send an "information update request" to the ARS with the updated content. After review, the ARS updates the corresponding profile information to ensure the accuracy of subsequent query results.</t>
            </li>
            <li>
              <t>Agent deregistration: When the Agent needs to go offline permanently (e.g., function deactivation, dissolution of the affiliated entity), it sends a "deregistration request" to the ARS with the resource ID. Upon receipt, the ARS marks the Agent's profile as "deregistered" or deletes it from the "discoverable resource pool" to avoid invalid queries.</t>
            </li>
          </ul>
        </section>
        <section anchor="agents-discovery">
          <name>Agents Discovery</name>
          <t>This is the core service provided by ARS for agents, which helps them quickly identify target agents that can solve problems through multi-dimensional filtering, avoiding random searches, it includes two steps.</t>
          <ul spacing="normal">
            <li>
              <t>Discovery request: If an Agent needs a collaborator with agents supporting specific capabilities, it sends a discovery request to the ARS, specifying the capabilities and associated other requirements.</t>
            </li>
            <li>
              <t>Discover response: Based on the request criteria, the ARS filters matching target Agents from the "Agent Database" and feeds back the agent information to Agent A, if the target Agents are in other domains, the returned communication address should be the AGw addresses of those domains.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="interactions-between-agents-and-agws">
        <name>Interactions between Agents and AGws</name>
        <t>When an agent needs to communicate with an agent in another domain, the Communication sessions need to go through the AGw (When the two agents are within a single domain, whether a communication session needs to go through a AGw can be determined as requirements).</t>
        <t>Interactions between an Agent and an AGw revolve around two core scenarios: status maintenance and collaboration support.</t>
        <section anchor="status-maintenance">
          <name>Status Maintenance</name>
          <t>During the Agent's operation, ongoing interactions between the two parties are required to ensure stable and secure collaboration, primarily involving status synchronization and exception handling.</t>
          <ul spacing="normal">
            <li>
              <t>Agent access: An agent should send an access request to the AGw to make it reachable by agents in other domains. The AGw reviews its information and verifies its signature. If the verification passed, then the AGw will create a record for it and advertise the agent information to other AGws.</t>
            </li>
            <li>
              <t>Status synchronization: After accessed, the Agent regularly sends "heartbeats" (e.g., every 30 seconds) to the AGw to synchronize its online status (e.g., "running normally," "temporarily offline"). If the AGw does not receive a "heartbeat" for an extended period, it marks the Agent's status as "offline" and temporarily removes it from the collaborative list, and synchronizes this information to other potentially associated AGw to prevent other Agents from initiating invalid requests.</t>
            </li>
            <li>
              <t>Deregistration request: If an Agent needs to stop services, it proactively sends a deregistration request to the AGw. After receiving the request, the AGw deletes the Agent's record, and synchronizes this information to other potentially associated AGws to complete the exit process.</t>
            </li>
          </ul>
        </section>
        <section anchor="collaboration-support">
          <name>Collaboration Support</name>
          <t>When an Agent needs to collaborate with other Agents, the AGw provides support for "removing communication barriers". It is composed by two phases.</t>
          <ul spacing="normal">
            <li>
              <t>Transformation: When the AGw receives the message send by the request agent with a translation request, the AGw first decapsulates the received packet, extracting the original content from the message. Then, it performs necessary adaptations, such as translating the content into the target language or converting the data structure to match the target protocol. Finally, the AGw re-encapsulates the adapted content into the target Agent's protocol format and forwards it.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="interactions-between-agws-and-agws">
        <name>Interactions between AGws and AGws</name>
        <t>Interactions between an AGw and an AGw revolve around four core phases: AGw interconnection, resources synchronization, status synchronization, and relay forwarding.</t>
        <section anchor="agw-interconnection">
          <name>AGw Interconnection</name>
          <t>This phase completes mutual identity verification and initial status synchronization between AGws.</t>
          <ul spacing="normal">
            <li>
              <t>Interconnection request: The initiating AGw sends an interconnection request(the request and ) to the receiving AGw, enclosing core information: its unique AGw ID, supported protocols, identity certificate, and current basic operational status.</t>
            </li>
            <li>
              <t>Interconnection response: The receiving AGw verifies the initiating AGw's identity and protocol compatibility. If valid, it feeds back its own basic information and records AGw A's initial information in its "AGw Neighbor List". If the verification failed, then it rejects the request.</t>
            </li>
          </ul>
        </section>
        <section anchor="resources-synchronization">
          <name>Resources Synchronization</name>
          <t>Resource synchronization and status maintenance focuses on sharing static/dynamic information of registered Agents, ensuring AGws can accurately locate potential collaboration partners across domains.</t>
          <ul spacing="normal">
            <li>
              <t>Resource synchronization: AGws exchange the summary of registered agents' information, including Agent ID, core capabilities (e.g., "flight booking", "real-time translation"), and supported communication protocols/languages (e.g., gRPC, Chinese). The Synchronization take place whenever a new AGw peer is established or the registered agents' key information changes.</t>
            </li>
          </ul>
        </section>
        <section anchor="status-maintenance-1">
          <name>Status Maintenance</name>
          <t>The Status Maintenance of AGws is used to ensure the peer AGws are online and reachable.</t>
          <ul spacing="normal">
            <li>
              <t>Status synchronization: When the interconnection is established, the AGws regularly sends "heartbeats" (e.g., every 30 seconds) to the peer AGws to synchronize its online status (e.g., "running normally," "temporarily offline"). If the AGw does not receive a "heartbeat" for an extended period, it marks the AGw's status as "offline" and temporarily removes it from the peer list, and set the "applicability" attribut of agents registered at that peer AGw as inapplicable.</t>
            </li>
            <li>
              <t>Disconnection request: If an AGw needs to stop services, it proactively sends a disconnection request to its peer AGw. After receiving the request, the peer AGw deletes the AGw from its peer list, and remove the Agents registered at that peer AGw from the "Agent Database".</t>
            </li>
          </ul>
        </section>
        <section anchor="relay-forwarding">
          <name>Relay Forwarding</name>
          <t>Relay Forwarding leverages pre-synchronized resource and status data to enable seamless data transmission between cross-AGw Agents.</t>
          <ul spacing="normal">
            <li>
              <t>When an AGw receives a packet from its agents to an agent in another domain, it will decapsulates the packet and get the "agent ID" of the target agent. Then it looks up the routing table to get the target AGw and forward the packet to it (during the forwarding, the packet will be encapsulated to adapt to the target agent).</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="interactions-between-arss">
        <name>Interactions between ARSs</name>
        <t>Interactions between ARS focus on "breaking resource silos". Through cross-ARS information synchronization, they enable Agent resources managed by different ARSs to be globally discoverable and collaborable in a trusted manner. The detailed interactions between ARS can be quit different among different ARS forms, it depends on the implement manner of ARS.</t>
        <t>Editors' note: typical interactions between ARS will be provide in future.</t>
      </section>
    </section>
    <section anchor="operational-and-manageability-considerations">
      <name>Operational and Manageability Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 308?>



  </back>
  <!-- ##markdown-source:
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
zP9fMgAdfdtYAAA=

-->

</rfc>
