Re: [tcpPrague] Suggestions for implementation of pacing in ns-3

Bob Briscoe <> Tue, 19 May 2020 20:24 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id BA6533A1054 for <>; Tue, 19 May 2020 13:24:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Status: No, score=-2.099 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, SPF_HELO_FAIL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 YySPdr4JCof9 for <>; Tue, 19 May 2020 13:24:08 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 0809A3A1051 for <>; Tue, 19 May 2020 13:24:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;; s=default; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=jBT185oJE+6nCFAjwfLAr95DJTg9uy525DCxaFtPl+k=; b=r89k3noOSDll0J/qGOw0dNwr0Z ACC1KgvfpEH3l/dBqCg+uTtE/TqbY+sjTwehTTy1welOzzYwaC6cjBc0oWzTmPUSj2H+e7H3ZggOp 8jW9c0vNR/4Se7nSPf5SuTPcoB7D06BnmlS1C6eVvA6qHqAtT5wGQ5a6WM6o/Abf41S/CdOG3TpUu 06QbntWcuXRe6rYRtD0VFY1WFexgK+Ak+shHfaG8oIHKcs53uk70iJu/J6fGmzBqMWkc+9P4/cjdV n5A7iou2s2/6BkPdJ+Qxlv/Os8p2BvAWYjhxq//+FN9N6tXtLGCP9CKgR5KYUnWaaQJJPYcPTpK/1 RmSQK3tg==;
Received: from ([]:41830 helo=[]) by with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from <>) id 1jb8mT-002JUF-Ru; Tue, 19 May 2020 21:24:06 +0100
To: Deepak K <>
References: <>
From: Bob Briscoe <>
Message-ID: <>
Date: Tue, 19 May 2020 21:24:04 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname -
X-AntiAbuse: Original Domain -
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain -
X-Get-Message-Sender-Via: authenticated_id:
Archived-At: <>
Subject: Re: [tcpPrague] Suggestions for implementation of pacing in ns-3
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "To coordinate implementation and standardisation of TCP Prague across platforms. TCP Prague will be an evolution of DCTCP designed to live alongside other TCP variants and derivatives." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 19 May 2020 20:24:10 -0000

Hi, Deepak,

Pacing is by definition about delay variation, and lack thereof. So 
working on pacing in a simulation environment will allow you to gain 
insights into how all the ACKs and packet arrival timings are driving 
each other, without the distraction of timing noise.

The stage where you validate against Linux will introduce some of the 
timing noise that will have to be contended with in real systems. That 
will mean that a true A-B 'validation' will not actually be possible. 
However, at least the diff between the two will give far more insight 
than either just working in a simulator, or just working on Linux.

So this sounds like a good plan. But I would encourage you to take a 
step back part-way through the project (e.g. 20-30% through), and if you 
are still in the simulation stage, trim your project's ambitions so that 
you get time to repeat what you've done in ns3 in Linux.

I mean, it will be far better to do one thing well in both ns3 and 
Linux, than 5 things in ns3 and none in Linux, or 5 things in Linux and 
none in ns3.



On 19/05/2020 12:00, Deepak K wrote:
> Hi all,
> Over the next few months, I will be working (officially through the 
> GSoC program) on improving the current model of TCP Prague in ns-3. An 
> implementation in ns-3 has already been provided by Joakim here [1].
> After a brief discussion with my mentors, we decided that I should 
> begin my work by looking into pacing. Our ultimate goal is to make 
> experimenting with TCP Prague easier for everyone, by using 
> simulation-based frameworks like ns-3. I also plan on testing and 
> aligning our eventual implementation against that of Linux.
> [1] currently provides paced chirping for slow start. We were hoping 
> for suggestions on how to further incorporate other aspects of pacing 
> in our implementation (any particular scenario we should consider, or 
> any changes compared to what Linux has implemented, so on).
> Thanks
> - Deepak
> [1]
> _______________________________________________
> tcpPrague mailing list

Bob Briscoe