<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" docName="draft-hallambaker-mesh-presence-03" indexInclude="false" ipr="trust200902" scripts="Common,Latin" sortRefs="true" submissionType="independent" symRefs="true" tocDepth="3" tocInclude="true" version="3" xml:lang="en"><front>
<title abbrev="Mesh Presence Service">Mathematical Mesh 3.0 Part XI: Mesh Presence Service</title>
<seriesInfo name="draft-hallambaker-mesh-presence-03" value="draft-hallambaker-mesh-presence" stream="independent"/>
<author fullname="Phillip Hallam-Baker" initials="P. M." surname="Hallam-Baker"><organization>ThresholdSecrets.com</organization>
<address>
<email>phill@hallambaker.com</email>
</address>
</author>
<date day="14" month="October" year="2024"/>
<area/>
<workgroup/>
<keyword>Threshold Cryptography</keyword>
<keyword>Elliptic Curve</keyword>
<keyword>Threshold Encryption</keyword>
<keyword>Threshold Key Generation</keyword>
<keyword>Ceremony</keyword>
<abstract>
<t><eref target="http://whatever">https://mailarchive.ietf.org/arch/browse/mathmesh/</eref>Discussion of this draft should take place on the MathMesh mailing list (mathmesh@ietf.org), which is archived at .</t>
</abstract>
</front>
<middle>
<section title="Introduction" anchor="n-introduction"><t>Mesh Presence Protocol (MPP) is a UDP publish/subscriber protocol. Devices subscribed to an event notification service associated with an account receive UDP notification of events posted to that channel. This service may be used to provide subscribing devices with immediate of an event without the need for polling.</t>
<t>Uses of the presence service include notifying a device that an inbound synchronous communication session has been requested, receipt of an asynchronous message, updates to a Mesh catalog, etc.</t>
<t>MPP provides NAT traversal capabilities similar to those provided by STUN <xref target="rfc8489">. Combining these capabilities with a presence service avoids the need for a separate service.</xref></t>
<t>All MPP packets are encapsulated as RUD datagrams. Messages from the client to the service are limited to a single packet. Messages from the service to the client may contain between 1 and 16 packets.</t>
</section>
<section title="Definitions" anchor="n-definitions"><t>This section presents the related specifications and standards....</t>
<section title="Related Specifications" anchor="n-related-specifications"><t>The Mesh Callsign registry is a component part of the Mathematical Mesh <xref target="draft-hallambaker-mesh-architecture"></xref> and makes use of the data formats and service formats described therein. In particular:</t>
<dl>
<dt>Uniform Data Fingerprint <xref target="draft-hallambaker-mesh-udf"></xref>.</dt>
<dd>
<t>Describes the UDF format used to represent cryptographic nonces, keys and content digests in the Mesh and the use of Encrypted Authenticated Resource Locators (EARLs) and Strong Internet Names (SINs) that build on the UDF platform.</t>
</dd>
<dt>Data at Rest Encryption <xref target="draft-hallambaker-mesh-dare"></xref>.</dt>
<dd>
<t>Describes the cryptographic message and append-only sequence formats used in Mesh applications and the Mesh Service protocol.</t>
</dd>
<dt>JSON-BCD Encoding <xref target="draft-hallambaker-jsonbcd"></xref>.</dt>
<dd>
<t>Describes extensions to the JSON serialization format to allow direct encoding of binary data (JSON-B), compressed encoding (JSON-C) and extended binary data encoding (JSON-D). Each of these encodings is a superset of the previous one so that JSON-B is a superset of JSON, JSON-C is a superset of JSON-B and JSON-D is a superset of JSON-C.</t>
</dd>
</dl>
</section>
<section title="Defined Terms" anchor="n-defined-terms"><t>This document makes use of the terms defined in <xref target="draft-hallambaker-mesh-architecture"></xref>.</t>
</section>
<section title="Requirements Language" anchor="n-requirements-language"><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>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described in RFC 2119 <xref target="RFC2119"></xref>.</t>
</section>
<section title="Implementation Status" anchor="n-implementation-status"><t>The implementation status of the reference code base is described in the companion document <xref target="draft-hallambaker-mesh-developer"></xref>.</t>
<t>The examples in this document were created on 10/14/2024 1:11:02 PM.  Out of 250 examples, 48 failed. </t>
</section>
</section>
<section title="Message Format" anchor="n-message-format"></section>
<section title="Protocol" anchor="n-protocol"><section title="Client Initiated" anchor="n-client-initiated"><t>Client initiated messages <bcp14>MAY</bcp14> be sent via either Web Service transport or UDP transport.</t>
<section title="Subscribe" anchor="n-subscribe"><t>The </t>
<section title="Request" anchor="n-request"></section>
<section title="Responses" anchor="n-responses"></section>
</section>
<section title="Unsubscribe" anchor="n-unsubscribe"><section title="Request" anchor="n-request-0"></section>
<section title="Response" anchor="n-response"></section>
</section>
<section title="Status" anchor="n-status"><t>The status interaction requests that the service resend the last publication message sent.</t>
<section title="Request" anchor="n-request-1"><t>The Status Response message</t>
</section>
<section title="Response" anchor="n-response-0"></section>
</section>
<section title="DNS Proxy" anchor="n-dns-proxy"><section title="Request" anchor="n-request-2"></section>
<section title="Response" anchor="n-response-1"></section>
</section>
</section>
<section title="Service Initiated" anchor="n-service-initiated"><t>Service initiated messages <bcp14>MUST</bcp14> be sent via UDP transport</t>
<section title="Publish" anchor="n-publish"><t>The publish message is </t>
<t></t>
<section title="Status" anchor="n-status-0"><dl>
<dt>Serial</dt>
<dd>
<t>Serial number of the status response.</t>
</dd>
<dt>IP Endpoint</dt>
<dd>
<t>The IP Endpoint from which the last UDP communication from the client was received.</t>
</dd>
<dt>DateTime</dt>
<dd>
<t>The current date and time in ticks and leap seconds.</t>
</dd>
<dt>Store Status</dt>
<dd>
<t>A list of status values for stores that have been updated.</t>
</dd>
</dl>
</section>
<section title="Acknowledgement" anchor="n-acknowledgement"><t>The acknowledgement message acknowledges receipt of a Status message.</t>
</section>
</section>
</section>
</section>
<section title="UDP Transport Binding" anchor="n-udp-transport-binding"><section title="Service to Client Message" anchor="n-service-to-client-message"></section>
<section title="Client to Service Message" anchor="n-client-to-service-message"></section>
</section>
<section title="IANA Considerations" anchor="n-iana-considerations"><t>This document requires no IANA actions.</t>
</section>
<section title="Acknowledgements" anchor="n-acknowledgements"><t></t>
</section>
</middle>
<back>
<references title="Normative References"><reference anchor="RFC2119"><front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname="S. Bradner" initials="S." surname="Bradner"><address>
</address>
</author>
<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="draft-hallambaker-mesh-architecture"><front>
<title>Mathematical Mesh 3.0 Part I: Architecture Guide</title>
<author fullname="Phillip Hallam-Baker" initials="P." surname="Hallam-Baker"><organization>ThresholdSecrets.com</organization>
<address>
</address>
</author>
<date day="28" month="June" year="2023"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-hallambaker-mesh-architecture-22"/>
</reference>
<reference anchor="draft-hallambaker-mesh-udf"><front>
<title>Mathematical Mesh 3.0 Part II: Uniform Data Fingerprint.</title>
<author fullname="Phillip Hallam-Baker" initials="P." surname="Hallam-Baker"><organization>ThresholdSecrets.com</organization>
<address>
</address>
</author>
<date day="28" month="June" year="2023"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-hallambaker-mesh-udf-18"/>
</reference>
<reference anchor="draft-hallambaker-mesh-dare"><front>
<title>Mathematical Mesh 3.0 Part III : Data At Rest Encryption (DARE)</title>
<author fullname="Phillip Hallam-Baker" initials="P." surname="Hallam-Baker"><organization>ThresholdSecrets.com</organization>
<address>
</address>
</author>
<date day="28" month="June" year="2023"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-hallambaker-mesh-dare-17"/>
</reference>
<reference anchor="draft-hallambaker-jsonbcd"><front>
<title>Binary Encodings for JavaScript Object Notation: JSON-B, JSON-C, JSON-D</title>
<author fullname="Phillip Hallam-Baker" initials="P." surname="Hallam-Baker"><address>
</address>
</author>
<date day="28" month="June" year="2023"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-hallambaker-jsonbcd-24"/>
</reference>
</references>
<references title="Informative References"><reference anchor="draft-hallambaker-mesh-developer"><front>
<title>Mathematical Mesh: Reference Implementation</title>
<author fullname="Phillip Hallam-Baker" initials="P." surname="Hallam-Baker"><address>
</address>
</author>
<date day="28" month="June" year="2023"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-hallambaker-mesh-developer-11"/>
</reference>
<reference anchor="rfc8489"><front>
<title>[Reference Not Found!]</title>
<author initials="" surname=""><organization/>
<address>
</address>
</author>
<date/>
</front>
</reference>
</references>
</back>
</rfc>
