Re: L7 protocol design

Phillip Hallam-Baker <> Wed, 04 January 2017 19:08 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 968DE129A1F for <>; Wed, 4 Jan 2017 11:08:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id oRMkRn7QLdyI for <>; Wed, 4 Jan 2017 11:08:32 -0800 (PST)
Received: from ( [IPv6:2a00:1450:400c:c01::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 6BBE312969D for <>; Wed, 4 Jan 2017 11:08:32 -0800 (PST)
Received: by with SMTP id ew7so4305697wjc.3 for <>; Wed, 04 Jan 2017 11:08:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=EeyBbyf3fmPoit35tCcY0uaxOkVETTOBctaze0TcAbA=; b=f4WKDtcsEg2M/u7mWZAYy6byAU/P1up+f++WWYRVE6wN+aYk5okOE52mcDTBZzRtG4 ENQ1enMyasbTqnSSgmM/c6IWVdLDeCE8rLk+AKJT36RDlnsh4nTYWeSqrVdmNeK6QVHk YecqE/eivj7RbDVdExpNQOZ3tGX+O2/DsRWrLxowb6OKKkFNI0+LYZ4qfYkilRvms6Aj xi54uBN7FQpoKfWE4RlcOaNN2fVYisY4JVc4Q+sxZ0bbmDOaqeAjdyEa/1D5LWiHXN/F FuvNapX15JaPlSrMynRGHI5fc6VMKGmQXkSQnyAQ8g2bV8PBORGJPYZtBZ9QHWLOmt7x GaZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=EeyBbyf3fmPoit35tCcY0uaxOkVETTOBctaze0TcAbA=; b=kOh9xgIpMPIRHVGi2cPUpDMY5oYCMDcRtV18Q7jD4qP8VXwWrRc/5xgJ1l/BFucUzY acS/2lZaRj0U07IX9IQXMjg5zUZn518t3LbLAJHIK8dO5qKU2rUO6V40OHfDvYldS4vC HJYq0ugl5YQV8h4/Du7beSN3peoQdGr4TLRXd9EAVtm7SBC6UiRTC0kdsMwHPtOUDJYh THZiqANqWMNCt2IoWNpp/TCCR41SzwcW9UsdQFU8x1jrYyzhX9+HTBU/Mzn11WF0OqYr ZoHxzh9wgUNszPVD5AgjG8wgOVPvt8IZkz9J3uZpnx/qH/Lp3hi7DqcL788KSWffZxQv +hdA==
X-Gm-Message-State: AIkVDXI8aQie1TGtTy8alqaxW4UYJnzyr1u9Be4hAwPyPDqkKnn4MqQ239lzRKXl3LmpSRO0YEXvJ0ggET0sUw==
X-Received: by with SMTP id lb2mr84905wjb.54.1483556910791; Wed, 04 Jan 2017 11:08:30 -0800 (PST)
MIME-Version: 1.0
Received: by with HTTP; Wed, 4 Jan 2017 11:08:30 -0800 (PST)
In-Reply-To: <>
References: <>
From: Phillip Hallam-Baker <>
Date: Wed, 4 Jan 2017 14:08:30 -0500
X-Google-Sender-Auth: 2QpQhCYAx4Pu23oCzlForvgwyqk
Message-ID: <>
Subject: Re: L7 protocol design
To: Philippe Duke <>
Content-Type: multipart/alternative; boundary=089e01227b9eac04bb0545498235
Archived-At: <>
Cc: IETF Discussion Mailing List <>
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: IETF-Discussion <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 04 Jan 2017 19:08:34 -0000

The documentation is not yet complete and it is not yet capable of
supporting the new RFC format but you might be interested in the ProtoGen
toolset I developed to develop the Mathematical Mesh.

The tools and support libraries are all open source and available from the
following GitHub repository

My preferred development environment is Visual Studio on Windows. But the
tools automate the generation of Makefiles for Linux from the Visual Studio
project which allows for cross platform code generation. To cross develop
from other IDEs or from a Linux box is possible if you extend the tool.

ProtoGen takes an abstract definition of a Web Service and converts it into
documentation and running code. The code is currently intended for use as
reference code and to generate examples and test cases. It could be used in
production but has not been optimized for that environment yet.

At present, the synthesizer generates code for a HTTP/HTTPS Web Service
using JSON encoding and conforms to at least some definitions of 'REST'.
The support libraries also support ASN.1, TLS Schema and XML but the synth
is not currently configured to support alternative encodings.

The current language target is C# but a previous iteration did support C.

On Wed, Dec 28, 2016 at 4:57 AM, Philippe Duke <>

> Hello, dear IETF community. I would like to develop L7 protocol for my
> application and public documentation about it. Good protocol development
> is quite difficult stage, but not a problem. But at the same time, I
> don't have any experience writing protocol documentations (RFC's).
> What guidelines do you have?
> Is the RFC 4253 (SSH) good example of document design? Should I follow
> same principle?
> Please give me some examples how to make it correct. Even examples of
> very simple protocols.
> What I need as requirements:
>     TCP/UDP transport
>     Authentication
>     Encryption
>     Sequence control
> My protocol would carry small status messages like (10-20 bytes with
> timestamps and some sort of sequence synchronization).
> Thank you very much for your answers. Sorry for posting into the general
> list.
> --
> Philippe Duke
> Network software engineer
> System-level developer
> NetAssist LLC
> Ukraine
> Khreshchatyk Street, 10B, office 8
> AS29632
> Our GitHub Repository: