Link

Ping Service, Version 1

  • Id: RS-014.
  • Status: Working draft.
  • Type: Implementation.

Abstract

This document describes Ping, a trivial service used to test the underlying implementation and deployment of Relaynet, thus mitigating integration issues.

Table of contents

  1. Introduction
  2. Transactions
  3. Messages
    1. Ping
    2. Pong

Introduction

Relaynet consists of endpoints, gateways and couriers, which may run on different operating systems, on different hardware and in different physical environments. These components support different messaging protocols and message transport bindings, and may be built and run by different organizations.

This specification mitigates the integration issues that could arise from the implementation and deployment of Relaynet by offering a very simple service that can be used to test that applications can exchange messages.

Ping is a trivial service: Given applications A and B, application A sends a ping message to application B, to which application B has to respond with a pong message.

Transactions

A transaction is initiated with a ping message and is completed when the pong message reaches its destination.

The two applications MAY continue to run subsequent transactions. This could be useful to test the stability of the channel and the underlying session provided by the Channel Session Protocol.

Messages

This service employs the following messages.

Ping

This is the message that initiates a transaction. Its type MUST be application/vnd.relaynet.ping-v1.ping, and its payload MUST comply with the following byte sequence (little-endian):

  1. The ping id: A sequence of exactly 36 octets. It SHOULD be a UUID4 value.
  2. The DER serialization of the Parcel Delivery Authorization (PDA) to use to reply with a pong message. This value MUST be length-prefixed with a 14-bit unsigned integer (2 octets), so the maximum length of the DER-encoded PDA is 16 KiB.

Pong

This message MUST be sent by the application receiving a ping message. Its type MUST be application/vnd.relaynet.ping-v1.pong. The payload MUST be a sequence of 36 octets representing the ping id.