[art] How to do protocol-level research effectively?

"Soni L." <fakedme+art@gmail.com> Sun, 30 April 2023 18:18 UTC

Return-Path: <fakedme+art@gmail.com>
X-Original-To: art@ietfa.amsl.com
Delivered-To: art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B7042C1516F3 for <art@ietfa.amsl.com>; Sun, 30 Apr 2023 11:18:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id K1HhRm-Uj_0p for <art@ietfa.amsl.com>; Sun, 30 Apr 2023 11:18:03 -0700 (PDT)
Received: from mail-oi1-x22f.google.com (mail-oi1-x22f.google.com [IPv6:2607:f8b0:4864:20::22f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8E6F0C14CE24 for <art@ietf.org>; Sun, 30 Apr 2023 11:18:03 -0700 (PDT)
Received: by mail-oi1-x22f.google.com with SMTP id 5614622812f47-38e27409542so1458512b6e.0 for <art@ietf.org>; Sun, 30 Apr 2023 11:18:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682878682; x=1685470682; h=content-transfer-encoding:subject:from:to:content-language :user-agent:mime-version:date:message-id:sender:from:to:cc:subject :date:message-id:reply-to; bh=t2Lfy3M/EC/jJuUFG+aG0ZFnw+0ReX2V5B7EbKiK8NQ=; b=Qh5TAbWWmAgQlZry3KZw/hpAkYhgHJvxwsV162YrpxjXARHSQ5PLK4jOP9cdVuC1Kv rWGo5o/gHPVqLAlnVJkvl0rhZ71am3mtBgeOiMULfXOKwagpfUt0vpNHYcudFOTs1HVS D4hRM4r//TH+ybXSslB/FZoPpWwwpgVljwbR6uVx5LspvqThXwtHmN2fA0X4rOMhFjyL wqC/hjrLH0KBlBsSZggsFMns014hkPQytwk8hVwIrVKmTaCw45kG6JjLS3PbSlkKfYK7 NCgUqmMztlR0uR0K9hZGx/b20URzgbrFIhe1PrX4O26lSaWC2/DM+1CSqfDCEPesY/XS dd6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682878682; x=1685470682; h=content-transfer-encoding:subject:from:to:content-language :user-agent:mime-version:date:message-id:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=t2Lfy3M/EC/jJuUFG+aG0ZFnw+0ReX2V5B7EbKiK8NQ=; b=OY8BwM2LkGdXBZkEiY7eopqGiJ8USjwlSv/taOtoBZxLhPv9dgkdZy5Xb5CXEI/Wpq TTn49dfeNlOQpgM6wApe/kcQPZ2QwQV6BwYk2dgSNZjtYkOwGpHxlJbHsKGH3NqC5d7U /6hDIkqBz5jRbiAY80fVJpG5vmAKRb9/fcw8oIwSC4IMO5M81TbVUV5V38uNTKGksPfK aDoAeG6cXk8PrSg+f3QpJ7mnSr/tsWvs+Fj9BFyr5maFujnurooECIRz3R/GIUqUV1gv aHVBqf9lxs0OdIJEZ1HqiR4HcKcCvNQDj3gDo6C2xXEHDk8h46JwzK1/omOwj25H0ozU SYzQ==
X-Gm-Message-State: AC+VfDzg3oEz/jS+YFAaomBrkHCmM7K2kFujkx04vjvJQMeGSPLk39Y5 uIn1ibKmO6jegjYwCtQiAvoTWvKUnSo=
X-Google-Smtp-Source: ACHHUZ4jylY2U872VksWvQlzIJZG2eRuRBA8oFgEc8Bg7cp8RJM+y0naaPCM/FHR6KdSp8eO9HB0bg==
X-Received: by 2002:aca:2205:0:b0:38e:d739:6f3f with SMTP id b5-20020aca2205000000b0038ed7396f3fmr5955844oic.56.1682878682455; Sun, 30 Apr 2023 11:18:02 -0700 (PDT)
Received: from ?IPV6:2804:431:cfcc:4b9a::536f:6e69? ([2804:431:cfcc:4b9a::536f:6e69]) by smtp.googlemail.com with ESMTPSA id d13-20020a05680805cd00b0038e34b0a0ecsm10877834oij.8.2023.04.30.11.18.01 for <art@ietf.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 30 Apr 2023 11:18:01 -0700 (PDT)
Sender: "Soni L." <fakedme@gmail.com>
Message-ID: <e7c4cdb6-5d00-8ec3-9c8e-cc706c51685e@gmail.com>
Date: Sun, 30 Apr 2023 15:17:59 -0300
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0
Content-Language: en-US
To: art@ietf.org
From: "Soni L." <fakedme+art@gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/SbVxqgW9vHE3WH0QrTY2owvamtQ>
Subject: [art] How to do protocol-level research effectively?
X-BeenThere: art@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Applications and Real-Time Area Discussion <art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/art>, <mailto:art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/art/>
List-Post: <mailto:art@ietf.org>
List-Help: <mailto:art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/art>, <mailto:art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 30 Apr 2023 18:18:05 -0000

Hello!

Most protocol implementations (HTTP libraries, IRC libraries, etc) tend 
to be fairly strict in how they expose protocol concepts to library 
consumers. This is fine, if all you're doing is using the protocol. 
However, it'd be nice to have libraries - or even a framework for 
building them - that focus on protocol-level research.

Effectively these would be built to allow all sorts of cursed 
protocol-level things. For example, let's say we wonder what it would be 
like if you could embed an HTTP session inside an IRC session; doing 
that with a "normal" IRC library is a pain, and even then we'd have to 
write our own HTTP library to handle it because a "normal" HTTP library 
wouldn't know what to do with it (while personally we'd use an HTTP 
upgrade to switch back to IRC, hooking that up with "normal" HTTP and 
IRC libraries is effectively impossible).

Does something like this already exist? Honestly as far as we can tell 
it does vaguely resemble monkeypatching but the goal is to be able to do 
protocol-level research with it and we feel like monkeypatching would be 
frowned upon even for that, so something built for the purpose seems 
more appropriate.

Thanks!

-- 
1st person: we/us
2nd person: it/its
3rd person: she/they