[tcpm] Introducing Transperf

Soheil Hassas Yeganeh <soheil@google.com> Thu, 26 September 2019 19:10 UTC

Return-Path: <soheil@google.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 95F71120103 for <tcpm@ietfa.amsl.com>; Thu, 26 Sep 2019 12:10:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.501
X-Spam-Level:
X-Spam-Status: No, score=-17.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dBmiznoMycCf for <tcpm@ietfa.amsl.com>; Thu, 26 Sep 2019 12:10:04 -0700 (PDT)
Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 949991200EB for <tcpm@ietf.org>; Thu, 26 Sep 2019 12:10:04 -0700 (PDT)
Received: by mail-wr1-x442.google.com with SMTP id h7so22440wrw.8 for <tcpm@ietf.org>; Thu, 26 Sep 2019 12:10:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=fM8ivAq++KlcH+cLKhMzOnR0+tA3JFu1gGPjEiL3YEg=; b=BBysdexXARE3/L2riJGLXzSrU7jblnnTvgTOGvh+Zw75GKSubLdNtUnPyj2OSHa1tD JRt99BovT+35Pk2PWhbWl2NW38ijAIgGR+S1CEt/vIowDtanzpBVGplsWb56Jiz6okEj 91OIbYmmBbbss7azAVi/faWKkIhzaPXvHATSyIAbzckRhP6cMDw9UeTvLlEHdZnLt0hF 5VBlmW1pMEvXU9PoeK7YPVNu2OQpiVP7iQEPBsXe2nh/YMPERTRZLf3EwoH5k5IBK0iE V9Yd7LNJsgs3A/MN/79heV9jK3/+TZ1ArY0DOHaM6TSvrkXZaU4/7BFcXngizUPQHbOQ Jv1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=fM8ivAq++KlcH+cLKhMzOnR0+tA3JFu1gGPjEiL3YEg=; b=le/VT5KMtslrJB07LrKeIfmQ9izBtEx0e39K4zw8OGfLHIXEXYVuL7pvJBQJMS6d40 d/5XmwB4tfYbArP9oZMR15rwtqLikw5dnrQ5TmnGKX1wYDm9BiMC5ngxquEy0HGADrl+ aBodtpOJ6NB4M79JmPKwMeePvRMZhl5fVxvSYBICj7DIQJ7ts8TPiqPFz1mO5TLdKCE+ Zw+LMjsZysJCJJ7fK1dzg3POKkOMtiL0zNAskvptymb9B5hkqs9PYFV7SzgIH5pTk0nn otBEd/R3cyoR69HMUQWCUVlv28EzwE/S0k8cb00DvRcGcy3uwTQbcRAtogEbjdRDQtli kJ6A==
X-Gm-Message-State: APjAAAWP7HBxbTVnYIPakRS0XbTjv3e9pI0+eIH+Z4CoWE9SSxn8UOvL BtWIc3coZ8kaBV0/8LlzZh1e7s93LFfsq+P4TC9qew==
X-Google-Smtp-Source: APXvYqw+od8Aw7hbzZapBl2tzg560HAqYeFq1m+8gsniFYSZgAv2lC9nFI1DbL2nOK42JiLr5+rpSIkMLMKzWqR24XQ=
X-Received: by 2002:adf:fe4a:: with SMTP id m10mr3573wrs.209.1569525002500; Thu, 26 Sep 2019 12:10:02 -0700 (PDT)
MIME-Version: 1.0
From: Soheil Hassas Yeganeh <soheil@google.com>
Date: Thu, 26 Sep 2019 15:09:26 -0400
Message-ID: <CACSApvZtHJNXu4nAWSekJWE3ZxTtfTiLgtQ+=ASNZOYwOgSnHw@mail.gmail.com>
To: Soheil Hassas Yeganeh <soheil@google.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/fn3Dtjn9sQd_EwCW2S-IeCK0wmA>
X-Mailman-Approved-At: Fri, 27 Sep 2019 08:01:52 -0700
Subject: [tcpm] Introducing Transperf
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 26 Sep 2019 19:10:08 -0000

We'd like to announce the availability of transperf: a network
protocol performance testing tool.

transperf enables users to test TCP performance over a variety of
emulated network scenarios (using netem), including RTT, bottleneck
bandwidth, and policed rate that can change over time. The tool
supports testing multiple flows on multiple machines, and can test the
coexistence of multiple congestion control algorithms in a single
test. Users can specify test configurations and make assertions about
the expected results (i.e., goodput, RTTs, retransmit rates, and
fairness) using a Python-based configuration language.

The BBR team at Google has been using transperf for some of our BBR
testing, and many of the pastel bandwidth plots from various BBR IETF
slide decks were produced using this tool. Transperf includes support
for plotting internal state used by the BBRv2 algorithm, and can be
easily extended to support other congestion control algorithms as
well. We have found it useful, and hope others find it useful as well.

The code is released under the Apache-2.0 license, and available in a
git repository at:

  https://github.com/google/transperf

The source for transperf is in the git repository, along with example
configuration scripts. It has been tested on Debian 9. We would love
to accept your bug reports, patches, and contributions through GitHub
issues and pull requests.

Co-authored-by: Soheil Yeganeh
Co-authored-by: Arjun Roy
Co-authored-by: Neal Cardwell
Co-authored-by: Luke Hsiao
Co-authored-by: Priyaranjan Jha
Co-authored-by: Haitao Wu
Co-authored-by: Yousuk Seung
Co-authored-by: Kevin(Yudong) Yang
Co-authored-by: Michael McLennan
Co-authored-by: Yuchung Cheng
Co-authored-by: Eric Dumazet
Co-authored-by: Maciej Żenczykowski