/openscreenprotocol

Open Screen Protocol

Primary LanguagePythonOtherNOASSERTION

Open Screen Protocol

This repository is used to incubate and develop the Open Screen Protocol, which is a suite of network protocols that allow user agents to implement the Presentation API and Remote Playback API in an interoperable fashion.

The explainer goes into more depth regarding the motivation, and rationale, and design choices for the protocol.

This work is in scope for the W3C Second Screen Working Group (Charter).

Please refer to the group's Work Mode for instructions on how to contribute.

The protocol will meet the functional and non-functional requirements of the respective APIs as well as hardware requirements for prospective implementations.

Status

The protocol is considered to be complete for the requirements above. It will be published as a First Public Working Draft in mid-March 2021. The remaining issues on the draft are tagged v1-spec in GitHub and noted inline in the spec.

Related technologies

The Open Screen Protocol is built on the following standardized technologies:

  • mDNS/DNS-SD to allow networked devices that support OSP (Open Screen agents) to discover each other;
  • TLS 1.3 and a Password-Authenticated Key Exchange (PAKE) to create a secure channel between agents;
  • QUIC to transport data and media between agents;
  • CBOR to encode structured data and media on-the-wire.

Background Information

The excellent Discovery and Pairing Literature Review by @chrisn and @libbymiller covers a wide range of existing technologies for ad-hoc interconnection among networked devices, including mDNS/DNS-SD and SSDP.