Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1255011 > unrolled thread
| Started by | "Bendik Rønning Opstad" <bro.devel@gmail.com> |
|---|---|
| First post | 2015-10-23 23:00 +0200 |
| Last post | 2015-10-24 15:00 +0200 |
| Articles | 4 — 4 participants |
Back to article view | Back to linux.kernel
[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
| From | "Bendik Rønning Opstad" <bro.devel@gmail.com> |
|---|---|
| Date | 2015-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]
| From | Yuchung Cheng <ycheng@google.com> |
|---|---|
| Date | 2015-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]
| From | Jonas Markussen <jonassm@ifi.uio.no> |
|---|---|
| Date | 2015-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]
| From | Eric Dumazet <eric.dumazet@gmail.com> |
|---|---|
| Date | 2015-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