Skip to content

Some implementation architectures favour extensibility #6

Open
@obonaventure

Description

@obonaventure

The extensibility of protocols cannot be decoupled from their implementations. Experience shows that it is easier to extend user space implementations than kernel implementations for protocols such as TCP. However, it is also important to note that there are technical solutions that favour the extensibility of implementations.

One example is the adoption of eBPF inside the Linux kernel. Initially, this virtual machine has been used to collect statistics and track various events. Gradually, it became a technique that allows to extend the Linux kernel and this applies to the TCP stack itself.

An important contribution was the TCP-BPF support added by Lawrence Brakmo and described in : https://netdevconf.info/2.2/papers/brakmo-tcpbpf-talk.pdf

This kernel extension has been used to implement several TCP options using eBPF:

Martin Lau has recently pushed a similar approach in the Linux kernel that allows to implement TCP options and TCP congestion control schemes using only eBPF:
https://linuxplumbersconf.org/event/7/contributions/687/attachments/537/1262/BPF_network_tcp-cc-hdr-sk-stg_LPC_2020.pdf

This solution is focussed on the Linux TCP stack, but it demonstrates that it is possible to dynamically extend TCP implementations and could contribute to our extensibility goal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    deployabilityImplementations, interoperability, and experiments

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions