<?xml version="1.0" encoding="UTF-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="info"
     docName="draft-liu-icnrg-cross-domain-compute-discovery-00"
     ipr="trust200902"
     submissionType="IETF"
     version="3">
  <front>
    <title abbrev="Cross-Domain Compute Discovery">Requirements for Name-Based Compute-Service Discovery in Heterogeneous Space-Terrestrial-Maritime Edge Networks</title>
    <seriesInfo name="Internet-Draft" value="draft-liu-icnrg-cross-domain-compute-discovery-00"/>
    <author fullname="Shuai Liu" initials="S." surname="Liu">
      <organization>Nanjing University</organization>
      <address>
        <postal>
          <street>School of Electronic Science and Engineering</street>
          <city>Nanjing</city>
          <code>210023</code>
          <country>China</country>
        </postal>
        <email>shuai_liu@smail.nju.edu.cn</email>
      </address>
    </author>
    <date/>
    <area>Internet</area>
    <workgroup>Information-Centric Networking Research Group</workgroup>
    <keyword>information-centric networking</keyword>
    <keyword>edge computing</keyword>
    <keyword>service discovery</keyword>
    <keyword>non-terrestrial networks</keyword>
    <keyword>disruption tolerance</keyword>
    <abstract>
      <t>Future edge systems may span terrestrial infrastructure, maritime gateways, and non-terrestrial nodes such as low-Earth-orbit satellites.  In these environments, a computing service, its executable instances, input data, and reusable results may be distributed across intermittently connected and resource-constrained nodes.  This document describes a problem statement, an illustrative network model, and requirements for name-based discovery of computing services and reusable results.  The objective is to separate stable service identity from temporary execution location while supporting disruption awareness, metadata authenticity, controlled result reuse, and incremental deployment over existing IP and Information-Centric Networking infrastructures.  This document does not define a wire protocol, a naming syntax, or a traffic-steering algorithm.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" numbered="true" toc="include">
      <name>Introduction</name>
      <t>Edge computing increasingly places computing and storage resources near data sources and users.  In a conventional deployment, a client discovers a service endpoint, sends a request to that endpoint, and receives a result.  This model works well when service instances have stable reachability and when the selected endpoint remains available for the duration of the transaction.</t>
      <t>Future cross-domain edge systems can have substantially different properties.  A maritime sensing system may include sensors, autonomous platforms, and buoy gateways.  A non-terrestrial segment may provide intermittent connectivity and temporary computing or caching capacity through low-Earth-orbit satellites.  Terrestrial gateways, edge sites, and cloud systems may host additional service instances and data repositories.  The same logical service may therefore be deployed at several locations whose reachability, load, and administrative ownership change over time.</t>
      <t>In such an environment, binding a service request directly to a host or a currently reachable endpoint can be fragile.  A service identity may outlive any particular instance.  A requested computation may be available at several instances, and an acceptable result may already exist as a cached object.  Conversely, a currently advertised instance may become unreachable before the request is transferred or completed.  Discovery therefore needs to describe not only where an endpoint is located, but also what service or result is available, under which version and policy, for how long the information is valid, and how its provenance can be verified.</t>
      <t>Information-Centric Networking (ICN) provides concepts for naming and retrieving information independently of a particular host location, together with in-network caching and object-level security considerations <xref target="RFC7927"/> <xref target="RFC8793"/>.  ICN deployment options include native, overlay, and gateway-assisted approaches <xref target="RFC8763"/>.  IoT edge systems also face intermittent service availability, privacy, and security challenges <xref target="RFC9556"/>.  These observations motivate examining whether stable naming and object-oriented discovery can be applied to computing services and reusable computation results in heterogeneous edge environments.</t>
      <t>This document is a requirements-oriented contribution.  It introduces a motivating network model and identifies requirements for:</t>
      <ul spacing="normal">
        <li>stable naming of services, instances, data, and results;</li>
        <li>describing service capabilities and result properties;</li>
        <li>operating when links and discovery functions are intermittently reachable;</li>
        <li>determining whether a cached computation result is acceptable for reuse;</li>
        <li>protecting the integrity, provenance, authorization, and confidentiality of discovery information; and</li>
        <li>deploying the approach incrementally over existing IP and ICN infrastructures.</li>
      </ul>
      <t>The space-terrestrial-maritime scenario is used as a motivating example.  The requirements may also be applicable to other challenged or intermittently connected edge environments, including remote industrial sites, disaster-response networks, and mobile edge systems.</t>
      <t>This document does not define a new name format, discovery message, routing protocol, or resource-allocation algorithm.  It also does not standardize underwater physical- or link-layer technologies.  The intention is to provide a focused basis for discussion and experimentation before selecting any protocol realization.</t>
    </section>

    <section anchor="terminology" numbered="true" toc="include">
      <name>Terminology</name>
      <section anchor="requirements-language" numbered="true" toc="include">
        <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>
        <t>Because this document specifies requirements rather than a protocol, these key words describe properties expected of a future discovery design.  They do not require a particular encoding or implementation architecture.</t>
      </section>
      <section anchor="definitions" numbered="true" toc="include">
        <name>Definitions</name>
        <dl spacing="normal" newline="false">
          <dt>Administrative Domain:</dt>
          <dd>A set of nodes, services, and policies operated under common administrative control.  A cross-domain system contains two or more administrative domains with potentially different trust anchors, naming practices, and disclosure policies.</dd>
          <dt>Computing Service:</dt>
          <dd>An offering that processes input according to defined service logic and produces an output.  A computing service may be implemented by one or more service instances.  This definition is consistent with the service concepts used by Computing-Aware Traffic Steering (CATS) <xref target="I-D.ietf-cats-framework"/>.</dd>
          <dt>Service Name:</dt>
          <dd>A stable identifier for the logical identity of a computing service.  It is independent of the current network locator of any particular service instance.</dd>
          <dt>Service Instance:</dt>
          <dd>A running realization of a computing service at a particular service site.  A service instance has temporary execution state and one or more locators or contact points.</dd>
          <dt>Service Instance Locator:</dt>
          <dd>Information used to reach a service instance or a service contact function.  Examples include an IP address and port, a URI, an ICN name prefix, or a delay-tolerant networking endpoint identifier.</dd>
          <dt>Data Object:</dt>
          <dd>A named input, model artifact, configuration object, or other information object that can be supplied to or consumed by a computing service.</dd>
          <dt>Result Object:</dt>
          <dd>A named output produced by invoking a specified service version with specified inputs and parameters.  A result object includes, or is associated with, metadata sufficient to evaluate freshness, provenance, and reuse eligibility.</dd>
          <dt>Discovery Record:</dt>
          <dd>A signed or otherwise integrity-protected binding between a service or result name and descriptive metadata.  A discovery record may identify candidate instances, result locations, validity intervals, capabilities, policies, and trust information.</dd>
          <dt>Discovery Function:</dt>
          <dd>A logical function that publishes, stores, resolves, forwards, or aggregates discovery records.  It may be centralized, distributed, replicated, embedded in gateways, or realized using name-based routing.</dd>
          <dt>Requester:</dt>
          <dd>A node or application seeking to invoke a computing service or retrieve a reusable result object.</dd>
          <dt>Contact Opportunity:</dt>
          <dd>A time interval during which communication between two nodes or domains is expected to be possible.  A contact opportunity may be predicted, scheduled, observed, or opportunistic.</dd>
          <dt>Freshness Bound:</dt>
          <dd>A requester-defined or policy-defined limit on the age of a discovery record, input object, or result object.</dd>
        </dl>
      </section>
    </section>

    <section anchor="problem" numbered="true" toc="include">
      <name>Problem Statement and Scope</name>
      <section anchor="problem-characteristics" numbered="true" toc="include">
        <name>Problem Characteristics</name>
        <t>The target environment has one or more of the following characteristics:</t>
        <ul spacing="normal">
          <li><strong>Replicated services:</strong> The same logical service is deployed at terrestrial, maritime, or non-terrestrial sites.</li>
          <li><strong>Dynamic placement:</strong> Instances can start, stop, migrate, or be replaced as resources and connectivity change.</li>
          <li><strong>Intermittent connectivity:</strong> End-to-end paths may not exist continuously, and a contact may terminate before a transaction completes.</li>
          <li><strong>Resource constraints:</strong> Some sites have limited energy, storage, bandwidth, or processing capacity.</li>
          <li><strong>Multiple administrative domains:</strong> Service descriptions and results may cross organizational boundaries with different trust and authorization policies.</li>
          <li><strong>Reusable information:</strong> A previously generated result can sometimes satisfy a later request without repeating data transfer and computation.</li>
        </ul>
        <t>These properties create a separation between logical service identity and temporary execution location.  They also create a distinction between discovering a service and selecting a network path to a particular instance.  Discovery identifies what services, instances, or results exist and whether they are eligible.  Steering or routing determines how traffic reaches a selected candidate.</t>
      </section>
      <section anchor="host-limitations" numbered="true" toc="include">
        <name>Limitations of Endpoint-Only Discovery</name>
        <t>Endpoint-oriented discovery mechanisms can identify named instances and their locators.  For example, DNS-Based Service Discovery (DNS-SD) discovers named service instances using DNS records <xref target="RFC6763"/>.  Such mechanisms remain useful and can be part of an incremental solution.</t>
        <t>However, an endpoint alone does not necessarily express the information needed in the target environment.  A requester may need to determine:</t>
        <ul spacing="normal">
          <li>whether multiple endpoints implement the same service semantics and version;</li>
          <li>whether an endpoint is expected to remain reachable long enough to complete the request;</li>
          <li>whether a cached result can satisfy the request without invoking an endpoint;</li>
          <li>whether service metadata or a result was produced by an authorized party;</li>
          <li>whether the record is still valid under rapidly changing contact conditions; and</li>
          <li>whether cross-domain policy permits disclosure, execution, or result reuse.</li>
        </ul>
        <t>A future design may extend an existing service-discovery mechanism, use an ICN name resolution service as considered in <xref target="RFC9236"/>, or use name-based routing directly.  This document does not select among these approaches.</t>
      </section>
      <section anchor="scope" numbered="true" toc="include">
        <name>Scope</name>
        <t>This document focuses on the gateway and edge layer that interconnects maritime sensing domains, non-terrestrial systems, terrestrial edge sites, and cloud infrastructure.  It considers discovery of:</t>
        <ul spacing="normal">
          <li>logical computing services;</li>
          <li>available or predicted service instances;</li>
          <li>named input data and executable or model artifacts; and</li>
          <li>previously generated result objects that may be reused.</li>
        </ul>
        <t>The document considers both IP-based and ICN-capable deployments.  It assumes that a separate mechanism performs final instance selection, routing, traffic steering, transport, or store-carry-forward delivery.</t>
      </section>
      <section anchor="non-goals" numbered="true" toc="include">
        <name>Non-Goals</name>
        <t>The following topics are out of scope for this version:</t>
        <ul spacing="normal">
          <li>specifying a universal naming syntax or assigning name components;</li>
          <li>defining discovery protocol messages or a registry schema;</li>
          <li>defining computing or network metrics;</li>
          <li>specifying traffic steering, routing, congestion control, or task scheduling;</li>
          <li>standardizing an optimization or machine-learning algorithm;</li>
          <li>standardizing underwater acoustic or optical communication protocols; and</li>
          <li>asserting that arbitrary computation results are semantically interchangeable.</li>
        </ul>
      </section>
    </section>

    <section anchor="network-model" numbered="true" toc="include">
      <name>Cross-Domain Network Model</name>
      <t><xref target="fig-model"/> shows an illustrative deployment.  The discovery function is logical and may be implemented by one or more components.</t>
      <figure anchor="fig-model">
        <name>Illustrative Cross-Domain Edge Environment</name>
        <artwork type="ascii-art"><![CDATA[
 Maritime edge      Non-terrestrial edge      Terrestrial edge
+---------------+    +-------------------+    +----------------+
| sensor / buoy |    | LEO service/cache |    | edge / cloud   |
| local cache   |<-->| transient contact |<-->| service/result |
+---------------+    +-------------------+    +----------------+
       \____________ logical discovery function ____________/
        ]]></artwork>
      </figure>
      <section anchor="entities" numbered="true" toc="include">
        <name>Entities</name>
        <t>The model contains the following logical entities:</t>
        <ul spacing="normal">
          <li><strong>Requesters</strong> generate service requests and express acceptance constraints, such as service version, freshness, latency class, trust domain, or confidentiality policy.</li>
          <li><strong>Domain gateways</strong> connect local sensing or edge networks to other domains.  A gateway may translate between naming or transport technologies, cache discovery records, or hold result objects.</li>
          <li><strong>Service sites</strong> host one or more service instances.  Sites may be terrestrial, maritime, airborne, or space-based.</li>
          <li><strong>Result stores</strong> retain named results and associated provenance.  A result store may be co-located with a service instance, gateway, or cache.</li>
          <li><strong>Discovery functions</strong> publish or resolve discovery records.  A deployment may use local repositories, distributed name resolution, ICN routing, or synchronization among gateways.</li>
          <li><strong>Trust services</strong> provide trust anchors, credentials, authorization information, revocation status, or evidence needed to evaluate discovery records and result objects.</li>
        </ul>
      </section>
      <section anchor="connectivity" numbered="true" toc="include">
        <name>Connectivity Assumptions</name>
        <t>The model does not assume continuous end-to-end connectivity.  A maritime gateway may contact a satellite only during a finite visibility window.  A satellite or mobile edge node may advertise a service shortly before leaving contact.  A terrestrial discovery repository may be temporarily unreachable from the maritime domain.</t>
        <t>Store-carry-forward delivery, including Bundle Protocol mechanisms <xref target="RFC9171"/>, may be used by a realization, but is not required by this document.  Discovery information can be obtained proactively, cached locally, exchanged during contacts, or resolved on demand.  A design needs to make the age and validity of cached information explicit.</t>
      </section>
      <section anchor="record-model" numbered="true" toc="include">
        <name>Conceptual Discovery Record</name>
        <t>A discovery record conceptually contains some subset of the following information:</t>
        <ul spacing="normal">
          <li>a stable service or result name;</li>
          <li>a service version, interface version, model version, or immutable artifact digest;</li>
          <li>one or more instance identifiers or locators;</li>
          <li>supported input and output types;</li>
          <li>static capability attributes and selected dynamic status information;</li>
          <li>a creation time, validity interval, freshness indication, and sequence or version information;</li>
          <li>contact or reachability hints, when policy permits their disclosure;</li>
          <li>authorization requirements and administrative-domain information;</li>
          <li>provenance and integrity-verification information; and</li>
          <li>for a result object, a binding to the service, inputs, parameters, and execution context that produced it.</li>
        </ul>
        <t>This list is descriptive.  A future protocol may separate static and dynamic information, use references to external manifests, or disclose only a policy-selected subset.</t>
      </section>
    </section>

    <section anchor="use-cases" numbered="true" toc="include">
      <name>Use Cases</name>
      <section anchor="uc-analysis" numbered="true" toc="include">
        <name>Maritime Environmental Analysis</name>
        <t>An autonomous underwater vehicle or sensor platform produces an observation that requires analysis.  The requester uses a stable service name representing the required function, such as object detection, anomaly identification, or environmental-data compression.  The function may be available at a buoy gateway, a passing satellite edge node, or a terrestrial edge site.</t>
        <t>The requester does not need to know the final execution location when constructing the request.  Discovery returns eligible service instances and validity information.  A later steering or scheduling function selects an instance based on policy, current resources, contact duration, and network conditions.</t>
        <t>If the buoy gateway has stale discovery information, it can determine that the record has expired rather than treating the advertised instance as currently reachable.  If no current instance is reachable, the request may be deferred, forwarded using a delay-tolerant mechanism, or sent to a different service implementation.</t>
      </section>
      <section anchor="uc-satellite" numbered="true" toc="include">
        <name>Opportunistic Non-Terrestrial Service Access</name>
        <t>A low-Earth-orbit node provides temporary computing or storage capacity.  Before or during a contact opportunity, it advertises service instances and a validity interval.  The advertisement may include a coarse indication of expected availability, supported service versions, input-size limits, and security requirements.</t>
        <t>The requester needs to distinguish an advertisement that is valid for the current or next contact from one learned during an earlier orbit.  The discovery design also needs to avoid assuming that a predicted contact is guaranteed.  A service record therefore represents evidence and validity constraints, not a promise of successful completion.</t>
      </section>
      <section anchor="uc-reuse" numbered="true" toc="include">
        <name>Reuse of a Cached Computation Result</name>
        <t>Several requesters may ask for equivalent analysis of the same named data object or of inputs that satisfy a documented equivalence rule.  A gateway or cache may already hold a recent result generated by an authorized service version.</t>
        <t>The requester can accept the cached result only if the result's provenance, service version, input binding, parameter binding, freshness, and authorization conditions satisfy the request.  A matching service name alone is insufficient.  For example, two results produced by different model versions, confidence thresholds, geographic scopes, or data-preprocessing steps might not be interchangeable.</t>
        <t>If the result is acceptable, retrieval can avoid repeated transfer and computation.  Otherwise, the requester invokes an eligible service instance.  The discovery mechanism does not decide semantic equivalence by itself; it exposes enough authenticated metadata for the requester or an application policy to make that decision.</t>
      </section>
      <section anchor="uc-partition" numbered="true" toc="include">
        <name>Operation During Discovery-Service Partition</name>
        <t>A maritime domain becomes disconnected from a remote discovery repository.  Local gateways continue to answer discovery requests using cached records, but mark the records with their source, age, and validity.  New local services or results can be published locally and synchronized with other domains when connectivity returns.</t>
        <t>This use case requires that the absence of a current remote response not be interpreted as proof that a service does not exist.  It also requires conflict handling when independent domains update records during a partition.</t>
      </section>
    </section>

    <section anchor="requirements" numbered="true" toc="include">
      <name>Requirements</name>
      <section anchor="req-naming" numbered="true" toc="include">
        <name>Stable Service Naming</name>
        <t><strong>R1 - Location independence:</strong> A discovery design <bcp14>MUST</bcp14> support a stable service name that does not change when a service instance moves, restarts, or is replicated at another site.</t>
        <t><strong>R2 - Identity separation:</strong> The design <bcp14>MUST</bcp14> distinguish the logical service identity from a service-instance identifier and from the locator used to reach that instance.  The design <bcp14>SHOULD</bcp14> also distinguish service names, data-object names, and result-object names.</t>
        <t><strong>R3 - Version identification:</strong> The design <bcp14>MUST</bcp14> support identification of service and interface versions.  When service behavior depends on an executable, model, configuration, or policy artifact, the design <bcp14>SHOULD</bcp14> support an immutable digest or equivalent version binding.</t>
        <t><strong>R4 - Administrative ownership:</strong> A name-management approach <bcp14>MUST</bcp14> provide a means to determine which authority is permitted to publish records for a namespace.  It <bcp14>SHOULD</bcp14> support collision avoidance and delegation across administrative domains.</t>
        <t><strong>R5 - Technology neutrality:</strong> The abstract naming model <bcp14>SHOULD NOT</bcp14> require all participating domains to use the same forwarding plane.  It <bcp14>SHOULD</bcp14> permit mapping to DNS names, URIs, ICN names, or other identifiers where appropriate.</t>
      </section>
      <section anchor="req-capability" numbered="true" toc="include">
        <name>Capability Description</name>
        <t><strong>R6 - Interface description:</strong> A service record <bcp14>MUST</bcp14> identify the service interface or provide a verifiable reference to an interface description.  The description <bcp14>SHOULD</bcp14> include supported input and output types and any constraints required for interoperability.</t>
        <t><strong>R7 - Static and dynamic metadata:</strong> The design <bcp14>SHOULD</bcp14> distinguish relatively static attributes, such as service version and supported data types, from dynamic attributes, such as current queue state, available storage, or expected completion time.  Dynamic information <bcp14>MUST</bcp14> carry a timestamp or validity indication.</t>
        <t><strong>R8 - Extensibility:</strong> Capability descriptions <bcp14>MUST</bcp14> be extensible so that new service-specific attributes can be introduced without invalidating existing records.  Unknown optional attributes <bcp14>SHOULD</bcp14> be safely ignored.</t>
        <t><strong>R9 - Policy-controlled disclosure:</strong> A publisher <bcp14>MUST</bcp14> be able to restrict or reduce the capability and status information disclosed outside its administrative domain.  A discovery design <bcp14>SHOULD</bcp14> support coarse-grained or policy-filtered descriptions when detailed resource information is sensitive.</t>
        <t><strong>R10 - No implicit comparability:</strong> The presence of two capability attributes with similar labels <bcp14>MUST NOT</bcp14> be assumed to make values comparable unless the attribute semantics and units are defined.  Candidate ranking is outside the scope of discovery.</t>
      </section>
      <section anchor="req-disruption" numbered="true" toc="include">
        <name>Disruption-Aware Discovery</name>
        <t><strong>R11 - Explicit validity:</strong> Discovery records <bcp14>MUST</bcp14> include sufficient information to determine their age and validity.  A consumer <bcp14>MUST NOT</bcp14> treat an expired record as evidence of current reachability.</t>
        <t><strong>R12 - Temporary unreachability:</strong> The design <bcp14>SHOULD</bcp14> distinguish, where information is available, between an unknown service, a known service with no currently reachable instance, and a service expected to become reachable during a future contact opportunity.</t>
        <t><strong>R13 - Cached operation:</strong> A domain <bcp14>SHOULD</bcp14> be able to resolve names from authenticated cached records when a remote discovery function is unreachable.  The response <bcp14>MUST</bcp14> preserve the original record's source, age, and validity information.</t>
        <t><strong>R14 - Contact uncertainty:</strong> If predicted contact information is included, the record <bcp14>MUST</bcp14> identify the prediction time or validity interval.  The design <bcp14>MUST NOT</bcp14> represent predicted reachability as guaranteed reachability.</t>
        <t><strong>R15 - Partition tolerance:</strong> The design <bcp14>SHOULD</bcp14> permit local publication and resolution during a network partition.  It <bcp14>SHOULD</bcp14> define how conflicting or concurrent record versions can be detected after synchronization.</t>
        <t><strong>R16 - Bounded overhead:</strong> Discovery exchanges <bcp14>SHOULD</bcp14> support compact responses, selective attribute retrieval, or summary advertisements so that constrained contacts are not consumed by unnecessary metadata.</t>
      </section>
      <section anchor="req-reuse" numbered="true" toc="include">
        <name>Cache and Result Reuse</name>
        <t><strong>R17 - Result identity:</strong> A reusable result <bcp14>MUST</bcp14> be associated with a name or identifier that can be bound to the service identity, service version, input identity, and relevant invocation parameters.</t>
        <t><strong>R18 - Input binding:</strong> The design <bcp14>MUST</bcp14> support a cryptographic digest, immutable name, or equivalent mechanism that allows a requester to determine which input object or input set produced a result.</t>
        <t><strong>R19 - Execution context:</strong> When the validity of a result depends on model version, configuration, geographic scope, time interval, precision, or execution environment, the result metadata <bcp14>MUST</bcp14> bind the relevant context to the result or to a verifiable manifest.</t>
        <t><strong>R20 - Freshness:</strong> A result record <bcp14>MUST</bcp14> include creation time and an expiration, freshness, or revalidation indication.  A requester <bcp14>MUST</bcp14> be able to express a freshness bound or reject a result that does not satisfy local policy.</t>
        <t><strong>R21 - Provenance:</strong> A result object <bcp14>MUST</bcp14> provide verifiable provenance identifying the producing service or authorized execution environment.  Retrieval from a cache <bcp14>MUST NOT</bcp14> remove or replace the original provenance.</t>
        <t><strong>R22 - Reuse policy:</strong> A publisher or service operator <bcp14>MUST</bcp14> be able to indicate that a result is not reusable, is reusable only within a domain, or is reusable only by authorized requesters.  Caches <bcp14>MUST</bcp14> enforce the applicable policy.</t>
        <t><strong>R23 - Safe fallback:</strong> If equivalence, integrity, freshness, or authorization cannot be established, the requester <bcp14>MUST NOT</bcp14> treat the cached result as a valid substitute.  It may invoke a service instance or fail according to application policy.</t>
      </section>
      <section anchor="req-trust" numbered="true" toc="include">
        <name>Trust and Authorization</name>
        <t><strong>R24 - Record integrity:</strong> Discovery records <bcp14>MUST</bcp14> be integrity protected and attributable to an authorized publisher.  Protection <bcp14>SHOULD</bcp14> remain verifiable when a record is forwarded, replicated, or served from a cache.</t>
        <t><strong>R25 - Cross-domain trust:</strong> The design <bcp14>MUST</bcp14> support explicit trust decisions across administrative domains.  Acceptance of one domain's identity <bcp14>MUST NOT</bcp14> automatically imply authorization to publish every service or result name.</t>
        <t><strong>R26 - Authorization:</strong> The design <bcp14>MUST</bcp14> support authorization for service invocation, discovery-record access, and result retrieval as separate decisions.  Authorization metadata <bcp14>SHOULD</bcp14> support least-privilege disclosure.</t>
        <t><strong>R27 - Revocation and expiry:</strong> A design <bcp14>MUST</bcp14> support bounded validity and a method to reject compromised, revoked, or superseded publisher credentials or records.  Operation during disconnection may limit access to current revocation state; that limitation <bcp14>MUST</bcp14> be visible to the relying party.</t>
        <t><strong>R28 - Confidentiality and privacy:</strong> The design <bcp14>SHOULD</bcp14> support confidentiality for sensitive discovery queries, records, and result metadata.  It <bcp14>SHOULD</bcp14> minimize exposure of precise location, contact schedules, resource state, requester interests, and service inventories.</t>
        <t><strong>R29 - Replay resistance:</strong> A relying party <bcp14>MUST</bcp14> be able to detect or limit replay of stale records using validity intervals, sequence information, nonces, or equivalent mechanisms.</t>
      </section>
      <section anchor="req-deployment" numbered="true" toc="include">
        <name>Incremental Deployment</name>
        <t><strong>R30 - Existing infrastructure:</strong> A design <bcp14>SHOULD</bcp14> permit deployment over existing IP networks and applications.  Native ICN forwarding <bcp14>MUST NOT</bcp14> be a prerequisite for every participating node.</t>
        <t><strong>R31 - Gateways:</strong> The design <bcp14>SHOULD</bcp14> support gateways that translate or proxy discovery between IP-based and ICN-capable domains while preserving identity, validity, and provenance information.</t>
        <t><strong>R32 - Partial participation:</strong> A deployment <bcp14>SHOULD</bcp14> continue to provide a useful subset of functionality when some nodes understand only endpoint discovery and others understand named services and results.</t>
        <t><strong>R33 - Separation from steering:</strong> The discovery interface <bcp14>SHOULD</bcp14> provide candidate and metadata information without mandating a particular traffic-steering or routing system.  A realization may supply candidates to CATS, an application scheduler, an ICN forwarder, or a delay-tolerant routing function.</t>
        <t><strong>R34 - Local autonomy:</strong> Each administrative domain <bcp14>MUST</bcp14> retain control over which records it publishes, which external records it imports, and which service or result requests it accepts.</t>
        <t><strong>R35 - Observability:</strong> Implementations <bcp14>SHOULD</bcp14> expose sufficient diagnostics to determine the source, age, validation outcome, and selected version of a discovery record without revealing protected metadata.</t>
      </section>
    </section>

    <section anchor="existing-work" numbered="true" toc="include">
      <name>Relationship with Existing Work</name>
      <section anchor="existing-icn" numbered="true" toc="include">
        <name>Information-Centric Networking</name>
        <t>ICN research has examined location-independent naming, name-based routing, caching, object security, mobility, and deployment considerations <xref target="RFC7476"/> <xref target="RFC7927"/> <xref target="RFC7945"/> <xref target="RFC8763"/>.  CCNx defines Interest and Content Object semantics and a corresponding TLV message format <xref target="RFC8569"/> <xref target="RFC8609"/>.  ICN terminology is documented in <xref target="RFC8793"/>.</t>
        <t>This document does not alter those architectures.  It applies similar separation of identity from location to computing services and to the results generated by those services.  A future realization could represent service descriptions and results as named content objects, but it could also use an IP-based discovery system with stable identifiers and signed manifests.</t>
        <t><xref target="RFC9236"/> discusses architectural implications of using a Name Resolution Service in ICN.  Such a service is one possible realization of the logical discovery function described here.  <xref target="RFC9344"/> defines CCNinfo for discovering path and cache information in CCN deployments.  CCNinfo is an instrumentation protocol and does not provide the service and result semantics specified as requirements in this document.</t>
      </section>
      <section anchor="existing-edge" numbered="true" toc="include">
        <name>IoT Edge Computing</name>
        <t><xref target="RFC9556"/> describes IoT edge challenges and functions, including time sensitivity, data volume, intermittent services, privacy, and security.  This document focuses more narrowly on the discovery semantics needed when compute services and reusable results span intermittently connected domains.</t>
      </section>
      <section anchor="existing-dnssd" numbered="true" toc="include">
        <name>DNS-Based Service Discovery</name>
        <t>DNS-SD <xref target="RFC6763"/> discovers named instances of a service type and returns information needed to contact them.  Scalable and wide-area extensions have also been considered and standardized <xref target="RFC7558"/> <xref target="RFC8766"/>.  DNS-SD could be used as part of an incremental realization.  This document adds no DNS records and requests no DNS registry actions.</t>
        <t>The requirements in this document extend beyond endpoint enumeration by considering service-version identity, intermittent validity, named result objects, provenance, and controlled result reuse.  Whether those properties should be represented through DNS, ICN, manifests, or another protocol is left for future work.</t>
      </section>
      <section anchor="existing-cats" numbered="true" toc="include">
        <name>Computing-Aware Traffic Steering</name>
        <t>CATS defines an architectural framework for steering service traffic using network and computing information <xref target="I-D.ietf-cats-framework"/>.  Its service identifier represents a service independently of the particular service contact instance.  The associated problem statement and requirements focus on selecting among distributed service sites and instances <xref target="I-D.ietf-cats-usecases-requirements"/>.</t>
        <t>This document is intended to be complementary.  It focuses on discovery of named services and reusable result objects, operation across intermittently connected administrative domains, and preservation of object provenance.  A future implementation could provide discovered candidate instances and metadata to a CATS path selector.  This document does not redefine CATS identifiers, metrics, or steering procedures.</t>
      </section>
      <section anchor="existing-dtn" numbered="true" toc="include">
        <name>Delay-Tolerant Networking</name>
        <t>Bundle Protocol Version 7 <xref target="RFC9171"/> supports store-carry-forward communication in disruption-tolerant environments, and BPSec provides integrity and confidentiality services for Bundle Protocol exchanges <xref target="RFC9172"/>.  A discovery realization may use these mechanisms to transport records or requests, but this document neither requires nor modifies Bundle Protocol.</t>
      </section>
    </section>

    <section anchor="security" numbered="true" toc="include">
      <name>Security Considerations</name>
      <t>Name-based discovery of computing services and results introduces security and privacy risks beyond ordinary endpoint lookup.  A protocol realization needs to address at least the threats described in this section.</t>
      <t>This document does not select cryptographic algorithms, credential formats, or trust models.  Any protocol specification derived from these requirements will need a complete threat model and concrete security mechanisms.</t>
      <section anchor="sec-forgery" numbered="true" toc="include">
        <name>Forged and Poisoned Discovery Records</name>
        <t>An attacker could advertise a false service instance, replace a legitimate locator, or inject a forged result record.  This can redirect sensitive inputs, cause incorrect computations, or waste constrained contacts.  Discovery records therefore require integrity protection, publisher authentication, namespace authorization, bounded validity, and replay resistance.  A cache or gateway must preserve the original publisher's verifiable information rather than replacing it with an unauthenticated assertion.</t>
      </section>
      <section anchor="sec-stale" numbered="true" toc="include">
        <name>Stale Reachability and Contact Information</name>
        <t>Old records can be harmful even when they were originally authentic.  An expired satellite contact, migrated service instance, or obsolete model version can cause request failure or incorrect results.  Implementations must validate record age and validity and should expose uncertainty in predicted contact information.  Disconnected nodes may be unable to obtain current revocation information; applications need policy for this condition.</t>
      </section>
      <section anchor="sec-results" numbered="true" toc="include">
        <name>Result Substitution and Semantic Mismatch</name>
        <t>A validly signed result can still be unsuitable for a request.  An attacker or faulty cache could substitute a result produced from different input data, parameters, service version, model version, geographic scope, or freshness interval.  Result identifiers and manifests need to bind all properties that affect reuse.  Applications must not infer semantic equivalence solely from a human-readable service name.</t>
      </section>
      <section anchor="sec-authorization" numbered="true" toc="include">
        <name>Authorization and Multi-Domain Trust</name>
        <t>Authorization to publish a service name, invoke a service, access discovery metadata, and retrieve a result are distinct permissions.  Trust anchors and authorization policies may differ among maritime operators, satellite providers, and terrestrial service providers.  A design must not assume transitive trust across domains.  Policy conflicts and failures to obtain authorization should fail safely.</t>
      </section>
      <section anchor="sec-privacy" numbered="true" toc="include">
        <name>Privacy and Operational Confidentiality</name>
        <t>Discovery information can reveal service inventories, node location, satellite contact schedules, resource shortages, requester interests, sensor activity, and operational plans.  Even coarse capability metadata can support traffic analysis.  Deployments should minimize collected and disclosed attributes, use access control and confidentiality where appropriate, and avoid publishing precise dynamic resource information unless it is required.</t>
      </section>
      <section anchor="sec-dos" numbered="true" toc="include">
        <name>Denial of Service and Amplification</name>
        <t>Attackers can issue broad discovery queries, request expensive signature validation, advertise excessive records, or trigger repeated service execution when cached results are rejected.  Implementations should support rate limits, query scoping, bounded response sizes, admission control, negative caching where safe, and inexpensive rejection of malformed or unauthorized requests.  A protocol design should avoid responses significantly larger than unauthenticated requests unless return routability or authorization has been established.</t>
      </section>
      <section anchor="sec-gateways" numbered="true" toc="include">
        <name>Gateway Translation</name>
        <t>A gateway translating between IP-based discovery and ICN naming can become a trust and downgrade boundary.  Translation must not silently discard service-version, validity, provenance, or authorization information.  When a property cannot be represented in the target system, the gateway should report that limitation rather than asserting an equivalent security level.</t>
      </section>
    </section>

    <section anchor="iana" numbered="true" toc="include">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>

    <section anchor="acknowledgements" numbered="true" toc="include">
      <name>Acknowledgements</name>
      <t>The motivation for this document was informed by discussions and presentations observed in ICNRG and SPACE RG sessions.  The author welcomes comments on scope, terminology, overlap with existing work, and suitable experimental directions.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>Normative References</name>
      <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="Scott Bradner"/>
          <date month="March" year="1997"/>
        </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">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author initials="B." surname="Leiba" fullname="Barry Leiba"/>
          <date month="May" year="2017"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>

    <references>
      <name>Informative References</name>
      <reference anchor="RFC6763" target="https://www.rfc-editor.org/info/rfc6763">
        <front>
          <title>DNS-Based Service Discovery</title>
          <author initials="S." surname="Cheshire" fullname="Stuart Cheshire"/>
          <author initials="M." surname="Krochmal" fullname="Marc Krochmal"/>
          <date month="February" year="2013"/>
        </front>
        <seriesInfo name="RFC" value="6763"/>
        <seriesInfo name="DOI" value="10.17487/RFC6763"/>
      </reference>
      <reference anchor="RFC7476" target="https://www.rfc-editor.org/info/rfc7476">
        <front>
          <title>Information-Centric Networking: Baseline Scenarios</title>
          <author initials="K." surname="Pentikousis" fullname="Kostis Pentikousis"/>
          <author initials="B." surname="Ohlman" fullname="Bengt Ohlman"/>
          <author initials="D." surname="Corujo" fullname="Daniel Corujo"/>
          <author initials="G." surname="Boggia" fullname="Gennaro Boggia"/>
          <author initials="G." surname="Tyson" fullname="Gareth Tyson"/>
          <author initials="E." surname="Davies" fullname="Elwyn Davies"/>
          <author initials="A." surname="Molinaro" fullname="Antonella Molinaro"/>
          <author initials="S." surname="Eum" fullname="Suyong Eum"/>
          <date month="March" year="2015"/>
        </front>
        <seriesInfo name="RFC" value="7476"/>
        <seriesInfo name="DOI" value="10.17487/RFC7476"/>
      </reference>
      <reference anchor="RFC7558" target="https://www.rfc-editor.org/info/rfc7558">
        <front>
          <title>Requirements for Scalable DNS-Based Service Discovery (DNS-SD) / Multicast DNS (mDNS) Extensions</title>
          <author initials="K." surname="Lynn" fullname="Kerry Lynn"/>
          <author initials="S." surname="Cheshire" fullname="Stuart Cheshire"/>
          <author initials="M." surname="Blanchet" fullname="Marc Blanchet"/>
          <author initials="D." surname="Migault" fullname="Daniel Migault"/>
          <date month="July" year="2015"/>
        </front>
        <seriesInfo name="RFC" value="7558"/>
        <seriesInfo name="DOI" value="10.17487/RFC7558"/>
      </reference>
      <reference anchor="RFC7927" target="https://www.rfc-editor.org/info/rfc7927">
        <front>
          <title>Information-Centric Networking (ICN) Research Challenges</title>
          <author initials="D." surname="Kutscher" fullname="Dirk Kutscher"/>
          <author initials="S." surname="Eum" fullname="Suyong Eum"/>
          <author initials="K." surname="Pentikousis" fullname="Kostis Pentikousis"/>
          <author initials="I." surname="Psaras" fullname="Ioannis Psaras"/>
          <author initials="D." surname="Corujo" fullname="Daniel Corujo"/>
          <author initials="D." surname="Saucez" fullname="Damien Saucez"/>
          <author initials="T." surname="Schmidt" fullname="Thomas Schmidt"/>
          <author initials="M." surname="Waehlisch" fullname="Matthias Waehlisch"/>
          <date month="July" year="2016"/>
        </front>
        <seriesInfo name="RFC" value="7927"/>
        <seriesInfo name="DOI" value="10.17487/RFC7927"/>
      </reference>
      <reference anchor="RFC7945" target="https://www.rfc-editor.org/info/rfc7945">
        <front>
          <title>Information-Centric Networking: Evaluation and Security Considerations</title>
          <author initials="K." surname="Pentikousis" fullname="Kostis Pentikousis"/>
          <author initials="B." surname="Ohlman" fullname="Bengt Ohlman"/>
          <author initials="E." surname="Davies" fullname="Elwyn Davies"/>
          <author initials="S." surname="Spirou" fullname="Spyridon Spirou"/>
          <author initials="G." surname="Boggia" fullname="Gennaro Boggia"/>
          <date month="September" year="2016"/>
        </front>
        <seriesInfo name="RFC" value="7945"/>
        <seriesInfo name="DOI" value="10.17487/RFC7945"/>
      </reference>
      <reference anchor="RFC8569" target="https://www.rfc-editor.org/info/rfc8569">
        <front>
          <title>Content-Centric Networking (CCNx) Semantics</title>
          <author initials="M." surname="Mosko" fullname="Marc Mosko"/>
          <author initials="I." surname="Solis" fullname="Ignacio Solis"/>
          <author initials="C." surname="Wood" fullname="Christopher Wood"/>
          <date month="July" year="2019"/>
        </front>
        <seriesInfo name="RFC" value="8569"/>
        <seriesInfo name="DOI" value="10.17487/RFC8569"/>
      </reference>
      <reference anchor="RFC8609" target="https://www.rfc-editor.org/info/rfc8609">
        <front>
          <title>Content-Centric Networking (CCNx) Messages in TLV Format</title>
          <author initials="M." surname="Mosko" fullname="Marc Mosko"/>
          <author initials="I." surname="Solis" fullname="Ignacio Solis"/>
          <author initials="C." surname="Wood" fullname="Christopher Wood"/>
          <date month="July" year="2019"/>
        </front>
        <seriesInfo name="RFC" value="8609"/>
        <seriesInfo name="DOI" value="10.17487/RFC8609"/>
      </reference>
      <reference anchor="RFC8763" target="https://www.rfc-editor.org/info/rfc8763">
        <front>
          <title>Deployment Considerations for Information-Centric Networking (ICN)</title>
          <author initials="A." surname="Rahman" fullname="Akbar Rahman"/>
          <author initials="D." surname="Trossen" fullname="Dirk Trossen"/>
          <author initials="D." surname="Kutscher" fullname="Dirk Kutscher"/>
          <author initials="R." surname="Ravindran" fullname="Ravi Ravindran"/>
          <date month="April" year="2020"/>
        </front>
        <seriesInfo name="RFC" value="8763"/>
        <seriesInfo name="DOI" value="10.17487/RFC8763"/>
      </reference>
      <reference anchor="RFC8766" target="https://www.rfc-editor.org/info/rfc8766">
        <front>
          <title>Discovery Proxy for Multicast DNS-Based Service Discovery</title>
          <author initials="S." surname="Cheshire" fullname="Stuart Cheshire"/>
          <date month="June" year="2020"/>
        </front>
        <seriesInfo name="RFC" value="8766"/>
        <seriesInfo name="DOI" value="10.17487/RFC8766"/>
      </reference>
      <reference anchor="RFC8793" target="https://www.rfc-editor.org/info/rfc8793">
        <front>
          <title>Information-Centric Networking (ICN): Content-Centric Networking (CCNx) and Named Data Networking (NDN) Terminology</title>
          <author initials="B." surname="Wissingh" fullname="Bastiaan Wissingh"/>
          <author initials="C." surname="Wood" fullname="Christopher Wood"/>
          <author initials="A." surname="Afanasyev" fullname="Alex Afanasyev"/>
          <author initials="L." surname="Zhang" fullname="Lixia Zhang"/>
          <author initials="D." surname="Oran" fullname="David Oran"/>
          <author initials="C." surname="Tschudin" fullname="Christian Tschudin"/>
          <date month="June" year="2020"/>
        </front>
        <seriesInfo name="RFC" value="8793"/>
        <seriesInfo name="DOI" value="10.17487/RFC8793"/>
      </reference>
      <reference anchor="RFC9171" target="https://www.rfc-editor.org/info/rfc9171">
        <front>
          <title>Bundle Protocol Version 7</title>
          <author initials="S." surname="Burleigh" fullname="Scott Burleigh"/>
          <author initials="K." surname="Fall" fullname="Kevin Fall"/>
          <author initials="E." surname="Birrane" fullname="Edward Birrane"/>
          <date month="January" year="2022"/>
        </front>
        <seriesInfo name="RFC" value="9171"/>
        <seriesInfo name="DOI" value="10.17487/RFC9171"/>
      </reference>
      <reference anchor="RFC9172" target="https://www.rfc-editor.org/info/rfc9172">
        <front>
          <title>Bundle Protocol Security (BPSec)</title>
          <author initials="E." surname="Birrane" fullname="Edward Birrane"/>
          <author initials="K." surname="McKeever" fullname="Kenneth McKeever"/>
          <date month="January" year="2022"/>
        </front>
        <seriesInfo name="RFC" value="9172"/>
        <seriesInfo name="DOI" value="10.17487/RFC9172"/>
      </reference>
      <reference anchor="RFC9236" target="https://www.rfc-editor.org/info/rfc9236">
        <front>
          <title>Architectural Considerations of Information-Centric Networking (ICN) Using a Name Resolution Service</title>
          <author initials="J." surname="Hong" fullname="Jong-Hyouk Hong"/>
          <author initials="T." surname="You" fullname="Tae-Young You"/>
          <author initials="V." surname="Kafle" fullname="Ved Kafle"/>
          <date month="April" year="2022"/>
        </front>
        <seriesInfo name="RFC" value="9236"/>
        <seriesInfo name="DOI" value="10.17487/RFC9236"/>
      </reference>
      <reference anchor="RFC9344" target="https://www.rfc-editor.org/info/rfc9344">
        <front>
          <title>CCNinfo: Discovering Content and Network Information in Content-Centric Networks</title>
          <author initials="H." surname="Asaeda" fullname="Hitoshi Asaeda"/>
          <author initials="A." surname="Ooka" fullname="Atsushi Ooka"/>
          <author initials="X." surname="Shao" fullname="Xiaoming Shao"/>
          <date month="February" year="2023"/>
        </front>
        <seriesInfo name="RFC" value="9344"/>
        <seriesInfo name="DOI" value="10.17487/RFC9344"/>
      </reference>
      <reference anchor="RFC9556" target="https://www.rfc-editor.org/info/rfc9556">
        <front>
          <title>Internet of Things (IoT) Edge Challenges and Functions</title>
          <author initials="J." surname="Hong" fullname="Jong-Hyouk Hong"/>
          <author initials="Y-G." surname="Hong" fullname="Young-Geun Hong"/>
          <author initials="X." surname="de Foy" fullname="Xavier de Foy"/>
          <author initials="M." surname="Kovatsch" fullname="Matthias Kovatsch"/>
          <author initials="E." surname="Schooler" fullname="Eve Schooler"/>
          <author initials="D." surname="Kutscher" fullname="Dirk Kutscher"/>
          <date month="April" year="2024"/>
        </front>
        <seriesInfo name="RFC" value="9556"/>
        <seriesInfo name="DOI" value="10.17487/RFC9556"/>
      </reference>
      <reference anchor="I-D.ietf-cats-framework" target="https://datatracker.ietf.org/doc/draft-ietf-cats-framework/">
        <front>
          <title>A Framework for Computing-Aware Traffic Steering (CATS)</title>
          <author initials="C." surname="Li" fullname="Cheng Li"/>
          <author initials="Z." surname="Du" fullname="Zongpeng Du"/>
          <author initials="M." surname="Boucadair" fullname="Mohamed Boucadair"/>
          <author initials="L. M." surname="Contreras" fullname="Luis M. Contreras"/>
          <author initials="J." surname="Drake" fullname="John Drake"/>
          <date month="April" day="2" year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-cats-framework-24"/>
      </reference>
      <reference anchor="I-D.ietf-cats-usecases-requirements" target="https://datatracker.ietf.org/doc/draft-ietf-cats-usecases-requirements/">
        <front>
          <title>Computing-Aware Traffic Steering (CATS) Problem Statement, Use Cases, and Requirements</title>
          <author initials="K." surname="Yao" fullname="Kehan Yao"/>
          <author initials="L. M." surname="Contreras" fullname="Luis M. Contreras"/>
          <author initials="H." surname="Shi" fullname="Hang Shi"/>
          <author initials="S." surname="Zhang" fullname="Shuai Zhang"/>
          <author initials="Q." surname="An" fullname="Qing An"/>
          <date month="February" day="3" year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-cats-usecases-requirements-14"/>
      </reference>
    </references>
  </back>
</rfc>
