Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1255011 > unrolled thread

[PATCH RFC net-next 0/2] tcp: Redundant Data Bundling (RDB)

Started by"Bendik Rønning Opstad" <bro.devel@gmail.com>
First post2015-10-23 23:00 +0200
Last post2015-10-24 15:00 +0200
Articles 4 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH RFC net-next 0/2] tcp: Redundant Data Bundling (RDB) "Bendik Rønning Opstad" <bro.devel@gmail.com> - 2015-10-23 23:00 +0200
    Re: [PATCH RFC net-next 0/2] tcp: Redundant Data Bundling (RDB) Yuchung Cheng <ycheng@google.com> - 2015-10-24 08:20 +0200
      Re: [PATCH RFC net-next 0/2] tcp: Redundant Data Bundling (RDB) Jonas Markussen <jonassm@ifi.uio.no> - 2015-10-24 13:40 +0200
        Re: [PATCH RFC net-next 0/2] tcp: Redundant Data Bundling (RDB) Eric Dumazet <eric.dumazet@gmail.com> - 2015-10-24 15:00 +0200

#1255011 — [PATCH RFC net-next 0/2] tcp: Redundant Data Bundling (RDB)

From"Bendik Rønning Opstad" <bro.devel@gmail.com>
Date2015-10-23 23:00 +0200
Subject[PATCH RFC net-next 0/2] tcp: Redundant Data Bundling (RDB)
Message-ID<qmRBn-4gB-3@gated-at.bofh.it>
This is a request for comments.

Redundant Data Bundling (RDB) is a mechanism for TCP aimed at reducing
the latency for applications sending time-dependent data.
Latency-sensitive applications or services, such as online games and
remote desktop, produce traffic with thin-stream characteristics,
characterized by small packets and a relatively high ITT. By bundling
already sent data in packets with new data, RDB alleviates head-of-line
blocking by reducing the need to retransmit data segments when packets
are lost. RDB is a continuation on the work on latency improvements for
TCP in Linux, previously resulting in two thin-stream mechanisms in the
Linux kernel
(https://github.com/torvalds/linux/blob/master/Documentation/networking/tcp-thin.txt).

The RDB implementation has been thoroughly tested, and shows
significant latency reductions when packet loss occurs[1]. The tests
show that, by imposing restrictions on the bundling rate, it can be made
not to negatively affect competing traffic in an unfair manner.

Note: Current patch set depends on a recently submitted patch for
tcp_skb_cb (tcp: refactor struct tcp_skb_cb: http://patchwork.ozlabs.org/patch/510674)

These patches have been tested with as set of packetdrill scripts located at
https://github.com/bendikro/packetdrill/tree/master/gtests/net/packetdrill/tests/linux/rdb
(The tests require patching packetdrill with a new socket option:
https://github.com/bendikro/packetdrill/commit/9916b6c53e33dd04329d29b7d8baf703b2c2ac1b)

Detailed info about the RDB mechanism can be found at
http://mlab.no/blog/2015/10/redundant-data-bundling-in-tcp, as well as in the paper
"Latency and Fairness Trade-Off for Thin Streams using Redundant Data
Bundling in TCP"[2].

[1] http://home.ifi.uio.no/paalh/students/BendikOpstad.pdf
[2] http://home.ifi.uio.no/bendiko/rdb_fairness_tradeoff.pdf


Bendik Rønning Opstad (2):
  tcp: Add DPIFL thin stream detection mechanism
  tcp: Add Redundant Data Bundling (RDB)

 Documentation/networking/ip-sysctl.txt |  23 +++
 include/linux/skbuff.h                 |   1 +
 include/linux/tcp.h                    |   9 +-
 include/net/tcp.h                      |  34 ++++
 include/uapi/linux/tcp.h               |   1 +
 net/core/skbuff.c                      |   3 +-
 net/ipv4/Makefile                      |   3 +-
 net/ipv4/sysctl_net_ipv4.c             |  35 ++++
 net/ipv4/tcp.c                         |  19 ++-
 net/ipv4/tcp_input.c                   |   3 +
 net/ipv4/tcp_output.c                  |  11 +-
 net/ipv4/tcp_rdb.c                     | 281 +++++++++++++++++++++++++++++++++
 12 files changed, 415 insertions(+), 8 deletions(-)
 create mode 100644 net/ipv4/tcp_rdb.c

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1255135

FromYuchung Cheng <ycheng@google.com>
Date2015-10-24 08:20 +0200
Message-ID<qn0lm-kl-17@gated-at.bofh.it>
In reply to#1255011
On Fri, Oct 23, 2015 at 1:50 PM, Bendik Rønning Opstad
<bro.devel@gmail.com> wrote:
>
> This is a request for comments.
>
> Redundant Data Bundling (RDB) is a mechanism for TCP aimed at reducing
> the latency for applications sending time-dependent data.
> Latency-sensitive applications or services, such as online games and
> remote desktop, produce traffic with thin-stream characteristics,
> characterized by small packets and a relatively high ITT. By bundling
> already sent data in packets with new data, RDB alleviates head-of-line
> blocking by reducing the need to retransmit data segments when packets
> are lost. RDB is a continuation on the work on latency improvements for
> TCP in Linux, previously resulting in two thin-stream mechanisms in the
> Linux kernel
> (https://github.com/torvalds/linux/blob/master/Documentation/networking/tcp-thin.txt).
>
> The RDB implementation has been thoroughly tested, and shows
> significant latency reductions when packet loss occurs[1]. The tests
> show that, by imposing restrictions on the bundling rate, it can be made
> not to negatively affect competing traffic in an unfair manner.
>
> Note: Current patch set depends on a recently submitted patch for
> tcp_skb_cb (tcp: refactor struct tcp_skb_cb: http://patchwork.ozlabs.org/patch/510674)
>
> These patches have been tested with as set of packetdrill scripts located at
> https://github.com/bendikro/packetdrill/tree/master/gtests/net/packetdrill/tests/linux/rdb
> (The tests require patching packetdrill with a new socket option:
> https://github.com/bendikro/packetdrill/commit/9916b6c53e33dd04329d29b7d8baf703b2c2ac1b)
>
> Detailed info about the RDB mechanism can be found at
> http://mlab.no/blog/2015/10/redundant-data-bundling-in-tcp, as well as in the paper

What's the difference between RDB and TCP repacketization
(http://flylib.com/books/en/3.223.1.226/1/) ?

Reading the blog page, I am concerned the amount of
change (esp on fast path) just to bundle new writes during timeout &
retransmit, for a specific type of application? why not just send X
packets with total bytes < MSS on timeout..

> "Latency and Fairness Trade-Off for Thin Streams using Redundant Data
> Bundling in TCP"[2].
>
> [1] http://home.ifi.uio.no/paalh/students/BendikOpstad.pdf
> [2] http://home.ifi.uio.no/bendiko/rdb_fairness_tradeoff.pdf
>
>
> Bendik Rønning Opstad (2):
>   tcp: Add DPIFL thin stream detection mechanism
>   tcp: Add Redundant Data Bundling (RDB)
>
>  Documentation/networking/ip-sysctl.txt |  23 +++
>  include/linux/skbuff.h                 |   1 +
>  include/linux/tcp.h                    |   9 +-
>  include/net/tcp.h                      |  34 ++++
>  include/uapi/linux/tcp.h               |   1 +
>  net/core/skbuff.c                      |   3 +-
>  net/ipv4/Makefile                      |   3 +-
>  net/ipv4/sysctl_net_ipv4.c             |  35 ++++
>  net/ipv4/tcp.c                         |  19 ++-
>  net/ipv4/tcp_input.c                   |   3 +
>  net/ipv4/tcp_output.c                  |  11 +-
>  net/ipv4/tcp_rdb.c                     | 281 +++++++++++++++++++++++++++++++++
>  12 files changed, 415 insertions(+), 8 deletions(-)
>  create mode 100644 net/ipv4/tcp_rdb.c
>
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1255169

FromJonas Markussen <jonassm@ifi.uio.no>
Date2015-10-24 13:40 +0200
Message-ID<qn5kZ-7tY-5@gated-at.bofh.it>
In reply to#1255135
DQoNCj4gT24gMjQgT2N0IDIwMTUsIGF0IDA4OjExLCBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29v
Z2xlLmNvbT4gd3JvdGU6DQo+IA0KPiBPbiBGcmksIE9jdCAyMywgMjAxNSBhdCAxOjUwIFBNLCBC
ZW5kaWsgUsO4bm5pbmcgT3BzdGFkDQo+IDxicm8uZGV2ZWxAZ21haWwuY29tPiB3cm90ZToNCj4+
IA0KPj4gVGhpcyBpcyBhIHJlcXVlc3QgZm9yIGNvbW1lbnRzLg0KPj4gDQo+PiBSZWR1bmRhbnQg
RGF0YSBCdW5kbGluZyAoUkRCKSBpcyBhIG1lY2hhbmlzbSBmb3IgVENQIGFpbWVkIGF0IHJlZHVj
aW5nDQo+PiB0aGUgbGF0ZW5jeSBmb3IgYXBwbGljYXRpb25zIHNlbmRpbmcgdGltZS1kZXBlbmRl
bnQgZGF0YS4NCj4+IExhdGVuY3ktc2Vuc2l0aXZlIGFwcGxpY2F0aW9ucyBvciBzZXJ2aWNlcywg
c3VjaCBhcyBvbmxpbmUgZ2FtZXMgYW5kDQo+PiByZW1vdGUgZGVza3RvcCwgcHJvZHVjZSB0cmFm
ZmljIHdpdGggdGhpbi1zdHJlYW0gY2hhcmFjdGVyaXN0aWNzLA0KPj4gY2hhcmFjdGVyaXplZCBi
eSBzbWFsbCBwYWNrZXRzIGFuZCBhIHJlbGF0aXZlbHkgaGlnaCBJVFQuIEJ5IGJ1bmRsaW5nDQo+
PiBhbHJlYWR5IHNlbnQgZGF0YSBpbiBwYWNrZXRzIHdpdGggbmV3IGRhdGEsIFJEQiBhbGxldmlh
dGVzIGhlYWQtb2YtbGluZQ0KPj4gYmxvY2tpbmcgYnkgcmVkdWNpbmcgdGhlIG5lZWQgdG8gcmV0
cmFuc21pdCBkYXRhIHNlZ21lbnRzIHdoZW4gcGFja2V0cw0KPj4gYXJlIGxvc3QuIFJEQiBpcyBh
IGNvbnRpbnVhdGlvbiBvbiB0aGUgd29yayBvbiBsYXRlbmN5IGltcHJvdmVtZW50cyBmb3INCj4+
IFRDUCBpbiBMaW51eCwgcHJldmlvdXNseSByZXN1bHRpbmcgaW4gdHdvIHRoaW4tc3RyZWFtIG1l
Y2hhbmlzbXMgaW4gdGhlDQo+PiBMaW51eCBrZXJuZWwNCj4+IChodHRwczovL2dpdGh1Yi5jb20v
dG9ydmFsZHMvbGludXgvYmxvYi9tYXN0ZXIvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3RjcC10
aGluLnR4dCkuDQo+PiANCj4+IFRoZSBSREIgaW1wbGVtZW50YXRpb24gaGFzIGJlZW4gdGhvcm91
Z2hseSB0ZXN0ZWQsIGFuZCBzaG93cw0KPj4gc2lnbmlmaWNhbnQgbGF0ZW5jeSByZWR1Y3Rpb25z
IHdoZW4gcGFja2V0IGxvc3Mgb2NjdXJzWzFdLiBUaGUgdGVzdHMNCj4+IHNob3cgdGhhdCwgYnkg
aW1wb3NpbmcgcmVzdHJpY3Rpb25zIG9uIHRoZSBidW5kbGluZyByYXRlLCBpdCBjYW4gYmUgbWFk
ZQ0KPj4gbm90IHRvIG5lZ2F0aXZlbHkgYWZmZWN0IGNvbXBldGluZyB0cmFmZmljIGluIGFuIHVu
ZmFpciBtYW5uZXIuDQo+PiANCj4+IE5vdGU6IEN1cnJlbnQgcGF0Y2ggc2V0IGRlcGVuZHMgb24g
YSByZWNlbnRseSBzdWJtaXR0ZWQgcGF0Y2ggZm9yDQo+PiB0Y3Bfc2tiX2NiICh0Y3A6IHJlZmFj
dG9yIHN0cnVjdCB0Y3Bfc2tiX2NiOiBodHRwOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcGF0Y2gv
NTEwNjc0KQ0KPj4gDQo+PiBUaGVzZSBwYXRjaGVzIGhhdmUgYmVlbiB0ZXN0ZWQgd2l0aCBhcyBz
ZXQgb2YgcGFja2V0ZHJpbGwgc2NyaXB0cyBsb2NhdGVkIGF0DQo+PiBodHRwczovL2dpdGh1Yi5j
b20vYmVuZGlrcm8vcGFja2V0ZHJpbGwvdHJlZS9tYXN0ZXIvZ3Rlc3RzL25ldC9wYWNrZXRkcmls
bC90ZXN0cy9saW51eC9yZGINCj4+IChUaGUgdGVzdHMgcmVxdWlyZSBwYXRjaGluZyBwYWNrZXRk
cmlsbCB3aXRoIGEgbmV3IHNvY2tldCBvcHRpb246DQo+PiBodHRwczovL2dpdGh1Yi5jb20vYmVu
ZGlrcm8vcGFja2V0ZHJpbGwvY29tbWl0Lzk5MTZiNmM1M2UzM2RkMDQzMjlkMjliN2Q4YmFmNzAz
YjJjMmFjMWIpDQo+PiANCj4+IERldGFpbGVkIGluZm8gYWJvdXQgdGhlIFJEQiBtZWNoYW5pc20g
Y2FuIGJlIGZvdW5kIGF0DQo+PiBodHRwOi8vbWxhYi5uby9ibG9nLzIwMTUvMTAvcmVkdW5kYW50
LWRhdGEtYnVuZGxpbmctaW4tdGNwLCBhcyB3ZWxsIGFzIGluIHRoZSBwYXBlcg0KPiANCj4gV2hh
dCdzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gUkRCIGFuZCBUQ1AgcmVwYWNrZXRpemF0aW9uDQo+
IChodHRwOi8vZmx5bGliLmNvbS9ib29rcy9lbi8zLjIyMy4xLjIyNi8xLykgPw0KPiANCj4gUmVh
ZGluZyB0aGUgYmxvZyBwYWdlLCBJIGFtIGNvbmNlcm5lZCB0aGUgYW1vdW50IG9mDQo+IGNoYW5n
ZSAoZXNwIG9uIGZhc3QgcGF0aCkganVzdCB0byBidW5kbGUgbmV3IHdyaXRlcyBkdXJpbmcgdGlt
ZW91dCAmDQo+IHJldHJhbnNtaXQsIGZvciBhIHNwZWNpZmljIHR5cGUgb2YgYXBwbGljYXRpb24/
IHdoeSBub3QganVzdCBzZW5kIFgNCj4gcGFja2V0cyB3aXRoIHRvdGFsIGJ5dGVzIDwgTVNTIG9u
IHRpbWVvdXQuLg0KDQpSZXBhY2tldGl6YXRpb24gaXMgb25seSBvbiByZXRyYW5zbWlzc2lvbnM7
IFJEQiBidW5kbGVzIHByZXZpb3VzbHkgc2VudCBzZWdtZW50cyB3aXRoIHRoZSBuZXh0IOKAnG5v
cm1hbOKAnSB0cmFuc21pc3Npb24gaW5zdGVhZC4gDQoNClRoaXMgbWFrZXMgdGhlIGZsb3cgcmVj
b3ZlciB0aGUgbG9zdCBzZWdtZW50ICBiZWZvcmUgYSByZXRyYW5zbWlzc2lvbiBpcyB0cmlnZ2Vy
ZWQgYnkgYW4gUlRPIG9yIGZhc3QgcmV0cmFuc21pdC4NCg0KPj4gIkxhdGVuY3kgYW5kIEZhaXJu
ZXNzIFRyYWRlLU9mZiBmb3IgVGhpbiBTdHJlYW1zIHVzaW5nIFJlZHVuZGFudCBEYXRhDQo+PiBC
dW5kbGluZyBpbiBUQ1AiWzJdLg0KPj4gDQo+PiBbMV0gaHR0cDovL2hvbWUuaWZpLnVpby5uby9w
YWFsaC9zdHVkZW50cy9CZW5kaWtPcHN0YWQucGRmDQo+PiBbMl0gaHR0cDovL2hvbWUuaWZpLnVp
by5uby9iZW5kaWtvL3JkYl9mYWlybmVzc190cmFkZW9mZi5wZGYNCj4+IA0KPj4gDQo+PiBCZW5k
aWsgUsO4bm5pbmcgT3BzdGFkICgyKToNCj4+ICB0Y3A6IEFkZCBEUElGTCB0aGluIHN0cmVhbSBk
ZXRlY3Rpb24gbWVjaGFuaXNtDQo+PiAgdGNwOiBBZGQgUmVkdW5kYW50IERhdGEgQnVuZGxpbmcg
KFJEQikNCj4+IA0KPj4gRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2lwLXN5c2N0bC50eHQgfCAg
MjMgKysrDQo+PiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oICAgICAgICAgICAgICAgICB8ICAgMSAr
DQo+PiBpbmNsdWRlL2xpbnV4L3RjcC5oICAgICAgICAgICAgICAgICAgICB8ICAgOSArLQ0KPj4g
aW5jbHVkZS9uZXQvdGNwLmggICAgICAgICAgICAgICAgICAgICAgfCAgMzQgKysrKw0KPj4gaW5j
bHVkZS91YXBpL2xpbnV4L3RjcC5oICAgICAgICAgICAgICAgfCAgIDEgKw0KPj4gbmV0L2NvcmUv
c2tidWZmLmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0NCj4+IG5ldC9pcHY0L01ha2Vm
aWxlICAgICAgICAgICAgICAgICAgICAgIHwgICAzICstDQo+PiBuZXQvaXB2NC9zeXNjdGxfbmV0
X2lwdjQuYyAgICAgICAgICAgICB8ICAzNSArKysrDQo+PiBuZXQvaXB2NC90Y3AuYyAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAxOSArKy0NCj4+IG5ldC9pcHY0L3RjcF9pbnB1dC5jICAgICAg
ICAgICAgICAgICAgIHwgICAzICsNCj4+IG5ldC9pcHY0L3RjcF9vdXRwdXQuYyAgICAgICAgICAg
ICAgICAgIHwgIDExICstDQo+PiBuZXQvaXB2NC90Y3BfcmRiLmMgICAgICAgICAgICAgICAgICAg
ICB8IDI4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+IDEyIGZpbGVzIGNo
YW5nZWQsIDQxNSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQ0KPj4gY3JlYXRlIG1vZGUg
MTAwNjQ0IG5ldC9pcHY0L3RjcF9yZGIuYw0KPj4gDQo+PiAtLQ0KPj4gMS45LjENCg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1255176

FromEric Dumazet <eric.dumazet@gmail.com>
Date2015-10-24 15:00 +0200
Message-ID<qn6Aq-JZ-5@gated-at.bofh.it>
In reply to#1255169
On Sat, 2015-10-24 at 08:00 +0000, Jonas Markussen wrote:

> Repacketization is only on retransmissions; RDB bundles previously sent segments with the next “normal” transmission instead. 
> 
> This makes the flow recover the lost segment  before a retransmission is triggered by an RTO or fast retransmit.

Thank you for this very high quality patch submission.

Please give us a few days for proper evaluation.

Thanks !


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web