BatchConn - sendmmsg/recvmmsg in Go Hey all,
this time I want to talk about using sendmmsg and recvmmsg in Go and their impact on performance compared to sendmsg/recvmsg.
Sendmmsg aims to provide increased performance by reducing the number of syscalls required to write data to the network using sockets. This is done by transmitting multiple packets, up to X, in one syscall. Sendmmsg works in a similar way, by reading multiple packets in a single syscall.
This weird looking domain name is my first try of writing a blog to contribute something useful to the world. Hpnpl Stands for high performance network programming on Linux. The idea behind this blog is to create practical articles and guides on writing performant network applications by benefitting from all the great optimisations the Kernel provides to us.
This post is the opening of hopefully a lot of Interesting posts helping people to learn, understand and implement high performance networking features using the Linux Kernel.
In this story I want to share my experience and the steps I did to setup mptcp on two of my Ubuntu servers. My goal was to evaluate the performance of iperf3 using mptcp over two 10Gbit/s links. It was a stony road to get it to work, so please read this story as a mix of a short introduction to mptcp and a guide on how to configure it.
Bulktransfer via TCP and UDP - A Rabbit/Turtle Race? Hey Folks,
this small post is about an experiment I started to determine if a hypothesis I had was correct: “Sending large amounts of data via TCP is many times faster than UDP, because there are less syscalls involved”. I came to this hypothesis, because I did some network performance tests with iperf3 with the following outcome: With TCP, iperf3 easily reaches 10Gbit/s with a single connection.
this time I will talk about a pretty awesome feature in the Linux kernel: AF_XDP. Please keep in mind, that this is a summary and explanation in my own words, and it’s not intended to fully cover all technical depths. The focus lies on understanding AF_XDP’s core concepts, learn how to use it, and what to consider while using it.
The official kernel documentation describes AF_XDP as “an address family that is optimized for high performance packet processing”.