From: Steffen Nurpmeso Subject: Re: Add sysctl to disable Nagle's algorithm (RFC 896 - Congestion Control) To: Job Snijders Cc: Alexander Bluhm , Otto Moerbeek , tech@openbsd.org Date: Wed, 15 May 2024 02:29:12 +0200 Job Snijders wrote in : |I am under the impression that the intention of LINUX_TCP_CORK is that |when you 'reset' (zeroize?) this particular socket option, the local |data queue is flushed into a TCP packet on the wire. Whereas unsetting |TCP_NOPUSH will not trigger a flush by itself. As I understand it NOPUSH |and TCP_CORK have subtle differences. Thanks. And i note i use if [ -n "${SERVER}" ]; then ${sysctl} -w net.ipv4.tcp_autocorking=1 net.ipv4.tcp_low_latency=0 else ${sysctl} -w net.ipv4.tcp_autocorking=0 net.ipv4.tcp_low_latency=1 fi on Linux: tcp_autocorking - BOOLEAN Enable TCP auto corking : When applications do consecutive small write()/sendmsg() system calls, we try to coalesce these small writes as much as possible, to lower total amount of sent packets. This is done if at least one prior packet for the flow is waiting in Qdisc queues or device transmit queue. Applications can still use TCP_CORK for optimal behavior when they know how/when to uncork their sockets. Default : 1 --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)