LWN: Comments on "Going big with TCP packets" https://lwn.net/Articles/884104/ This is a special feed containing comments posted to the individual LWN article titled "Going big with TCP packets". en-us Sat, 18 Oct 2025 18:13:03 +0000 Sat, 18 Oct 2025 18:13:03 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Going big with TCP packets https://lwn.net/Articles/929991/ https://lwn.net/Articles/929991/ edeloget <div class="FormattedComment"> Looking at the patches, I would give a look to Mellanox NICs :)<br> </div> Mon, 24 Apr 2023 14:31:01 +0000 Going big with TCP packets https://lwn.net/Articles/903603/ https://lwn.net/Articles/903603/ Wol <div class="FormattedComment"> <font class="QuotedText">&gt; A four drive raid6 is pretty pointless, you get the write hole and the write amplification for a total of .... zero additional space efficiency. Just use a check summing raid10 type filesystem. IMHO 8-12 disks is the sweet spot for raid6.</font><br> <p> But a four-drive raid-10 is actually far more dangerous to your data ... A raid 6 will survive a double disk failure. A double failure on a raid 10 has - if I&#x27;ve got my maths right - a 30% chance of trashing your array.<br> <p> md-raid-6 doesn&#x27;t (if configured that way) have a write hole any more.<br> <p> <font class="QuotedText">&gt; Btrfs raid6 is said to be &quot;unsafe&quot; but in reality, it is probably safer than mdraid raid6 or a raid controller&#x27;s raid6.</font><br> <p> I hate to say it, but I happen to KNOW that btrfs raid6 *IS* unsafe. A lot LESS safe than md-raid-6. It&#x27;ll find problems better, but it&#x27;s far more likely that those problems will have trashed your data. Trust me on that ...<br> <p> At the end of the day, different raids have different properties. And most of them have their flaws. Unfortunately, at the moment btrfs parity raid is more flaw and promise than reality.<br> <p> Oh - and my setup - which I admit chews up disk - is 3-disk raid-5 with spare, over dm-integrity and under lvm. Okay, it&#x27;ll only survive one disk failure, but it will also survive corruption, just like btrfs. But each level of protection has its own dedicated layer - the Unix &quot;do one thing and do it well&quot;. Btrfs tries to do everything - which does have many advantages - but unfortunately it&#x27;s a &quot;jack of all trades, crap at some of them&quot;, one of which unfortunately is parity raid ...<br> <p> And while I don&#x27;t know whether my layers support trim, if they do, btrfs has no advantage over me on time taken to rebuild/recover an array. Btrfs knows what part of the disk is use, but so does any logical/physical device that supports trim ...<br> <p> Cheers,<br> Wol<br> </div> Tue, 02 Aug 2022 23:01:39 +0000 Going big with TCP packets https://lwn.net/Articles/903600/ https://lwn.net/Articles/903600/ bartoc <div class="FormattedComment"> Once the drives get big enough it makes sense to just use something like btrfs raid10, instead of something like raid6, rebuilds still take a long time but don&#x27;t have to read all of every drive anymore. There are also fewer balancing issues if you add more drives. Actually, even with raid6 you should probably use something like btrfs or zfs (zfs can have some creeping performance problems, and is harder to expand/contract, but is better tested). Btrfs raid6 is said to be &quot;unsafe&quot; but in reality, it is probably safer than mdraid raid6 or a raid controller&#x27;s raid6.<br> <p> Not to mention the additional cost of the bigger drives (per TB) is offset by needing less &quot;other crap&quot; to drive them. You need smaller RAID enclosures, fewer controllers/expanders/etc, less space, and so on.<br> <p> A four drive raid6 is pretty pointless, you get the write hole and the write amplification for a total of .... zero additional space efficiency. Just use a check summing raid10 type filesystem. IMHO 8-12 disks is the sweet spot for raid6.<br> <p> fun quote from the parity delustering paper, published 1992:<br> <font class="QuotedText">&gt; Since the time necessary to reconstruct the contents of a failed disk is certainly minutes and possibly hours, we focus this paper on the performance of a continuous-operation storage subsystem during on-line failure recovery.</font><br> <p> My last raid rebuild was I think 5 full days long, using a small array of 18 TB disks.<br> </div> Tue, 02 Aug 2022 21:13:34 +0000 Going big with TCP packets https://lwn.net/Articles/903512/ https://lwn.net/Articles/903512/ Wol <div class="FormattedComment"> What raid level?<br> <p> A four or five drive raid-6 reduces the danger of a disk failure. An NVMe cache will speed up write time. And the more spindles you have, the faster your reads, regardless of array size.<br> <p> Cheers,<br> Wol<br> </div> Mon, 01 Aug 2022 23:39:22 +0000 Going big with TCP packets https://lwn.net/Articles/903511/ https://lwn.net/Articles/903511/ WolfWings <div class="FormattedComment"> That&#x27;s a large reason my home NAS is a lot of smaller spindles when I built it last, using 2.5&quot; 2TB HDD drives currently. Yeah there&#x27;s single 3.5&quot; drives in the next year or two that can approach the capacity of the array, but the throughput craters in that case especially for random I/O in comparison, and if I lose a 2TB drive it&#x27;s a bit under 4 hours for a rebuild not days.<br> <p> Since that&#x27;s limited entirely by the write speed of the 2TB drive I&#x27;ve been thinking about adding a single NVMe exclusively as a hot-spare just to reduce that time down to about 30 minutes TBH.<br> </div> Mon, 01 Aug 2022 23:28:27 +0000 Going big with TCP packets https://lwn.net/Articles/903478/ https://lwn.net/Articles/903478/ jhoblitt <div class="FormattedComment"> Does anyone know what layer2 hardware is being used to test this work on? I don&#x27;t believe I&#x27;ve ever seen an Ethernet NIC that supports an MTU &gt; 16KiB.<br> </div> Mon, 01 Aug 2022 16:02:41 +0000 Going big with TCP packets https://lwn.net/Articles/903035/ https://lwn.net/Articles/903035/ fest3er <div class="FormattedComment"> You weren&#x27;t the only one. I dutifully obeyed Comcast&#x27;s MTU size. And things broke. I eventually chose to ignore that incorrect, erroneous setting. That &#x27;handwave&#x27; solved the problem. For me.<br> </div> Sun, 31 Jul 2022 23:07:28 +0000 Going big with TCP packets https://lwn.net/Articles/885256/ https://lwn.net/Articles/885256/ farnz <p>In large part, we have the problems we have with MTU because most of our link layers now simulate a 1980s 10BASE5 network, just at very high speeds. A switched 100GBASE-LR4 network is designed to present the appearance of a single 10BASE5 segment (via switch behaviour); an 802.11 network tunnels 10BASE5 compatible networking over an RF link layer where the "true" packet size (via aggregation) is variable but can go as high as 1 MiB. <p>As a result, we have point to point links at the L1 level (in both WiFi and wired Ethernet), which are used to emulate a bus network topology at L2. If we'd done things very differently, we'd be presenting those P2P links directly to the L3 system, and the "switch" or "AP" equivalent would be able to offer different MTUs to different clients, and send PMTU discovery messages back instantly if you're going to a lower MTU path attached to the same switch. <p>It's worth noting that IPv6 (a late 1980s/early 1990s design) has vestigial support for this; a router can indicate that no other hosts are on-link, and thus force you to send everything via the router. If you're directly attached via P2P links to an IPv6 router, you could thus have different MTUs on all the P2P links, and the router would be able to control path MTU as appropriate. Fri, 18 Feb 2022 10:54:21 +0000 Going big with TCP packets https://lwn.net/Articles/885251/ https://lwn.net/Articles/885251/ geert <div class="FormattedComment"> I used to be &quot;blessed&quot; with a work laptop with Windows and VPN software. When using the VPN from home, the network stopped working very soon.<br> Turned out that the VPN software enabled a firewall rule to block all incoming ICMP traffic. This included the &quot;fragmentation needed&quot; messages sent from my OpenWRT router, which strictly obeyed the 576-byte MTU supplied by my ISP&#x27;s DHCP server.<br> <p> Of course I was the only one having that problem, as off-the-shelf consumer grade router software just ignored any MTU values, and 1500-byte packets worked fine regardless. Interestingly, we had to fix Path MTU Discovery in one of our embedded products a few weeks before...<br> </div> Fri, 18 Feb 2022 10:10:37 +0000 Going big with TCP packets https://lwn.net/Articles/885250/ https://lwn.net/Articles/885250/ geert <div class="FormattedComment"> Because &quot;Big IP&quot; would attract too many investors? ;-)<br> </div> Fri, 18 Feb 2022 09:57:48 +0000 Going big with TCP packets https://lwn.net/Articles/885245/ https://lwn.net/Articles/885245/ laarmen <div class="FormattedComment"> One thing to consider is that not having these extra bits in the skb means another memory load, which might not be affordable in the per-packet CPU budget.<br> </div> Fri, 18 Feb 2022 09:02:25 +0000 Going big with TCP packets https://lwn.net/Articles/885238/ https://lwn.net/Articles/885238/ developer122 <div class="FormattedComment"> <font class="QuotedText">&gt; The sk_buff structure (&quot;SKB&quot;) used to represent packets within the kernel is a large beast, since it must be able to support just about any networking feature that may be in use; that leads to significant per-packet memory use and memory-management costs.</font><br> <p> There seem to be a lot of old, very overloaded structures in the kernel with different bits used in different contexts. It makes me wonder if one could work up a way of generically breaking these optional bits out into sub-structures and leave the main structure mostly a table of references. One would need to macro-ify the copying and other handling of them though. Or maybe this is just making things even more complicated. :P<br> </div> Fri, 18 Feb 2022 04:02:28 +0000 Going big with TCP packets https://lwn.net/Articles/885237/ https://lwn.net/Articles/885237/ developer122 <div class="FormattedComment"> Why in the world is it called &quot;big TCP&quot; when it&#x27;s the IP packet that&#x27;s bigger, not the TCP bit riding along inside it?<br> </div> Fri, 18 Feb 2022 03:59:40 +0000 Going big with TCP packets https://lwn.net/Articles/885108/ https://lwn.net/Articles/885108/ kleptog <div class="FormattedComment"> It would be nice if Path MTU discovery actually worked reliably everywhere. Nowadays with layers and layers of tunnelling and encapsulation being fairly normal, reducing MTUs on interfaces to make things reliable is still required far too often.<br> </div> Thu, 17 Feb 2022 13:37:18 +0000 Going big with TCP packets https://lwn.net/Articles/884936/ https://lwn.net/Articles/884936/ farnz <p>Legacy technology can't do more than 16 bit packet lengths; you will have to upgrade to IPv6 if you need jumbo packets on the wire. Wed, 16 Feb 2022 14:33:04 +0000 Going big with TCP packets https://lwn.net/Articles/884932/ https://lwn.net/Articles/884932/ jhhaller <div class="FormattedComment"> One of the problems with implementing changes like this is the use of global settings which control too much for one setting. Take, for example, the problem of increasing MTU. It&#x27;s hard to change the MTU because it&#x27;s used both to control receive packet size and transmit packet size. Everyone on a LAN segment has to agree on the MTU because switches don&#x27;t operate in the ICMP or (for IPv4) fragmentation domain. So, if one&#x27;s corporate backbone has evolved to significantly higher bandwidth, but still drops a small fraction of packets, TCP flow control algorithms limit transmission based on latency. Larger MTUs would help, but implementing that requires a flag day in every subnet participating in a conversation. If one could change systems to accept larger MTUs, but not send larger MTUs, a flag day isn&#x27;t required, as every system can be configured to accept larger MTUs, but not transmit them. Once every system has been changed, then the router port and endpoint systems can be changed to larger MTUs.<br> <p> I hope that BIG TCP does something similar, that one can first configure systems to accept BIG TCP before they are sent, which would avoid flag-day requirements to implement it. Except for point-to-point communication, it will be years before every system can operate with BIG TCP. Ideally, it could be implemented on a connection-pair basis rather than switch-controlled Ethernet frame size limitations.<br> </div> Wed, 16 Feb 2022 14:24:06 +0000 Going big with TCP packets https://lwn.net/Articles/884933/ https://lwn.net/Articles/884933/ xxiao <div class="FormattedComment"> RFC2675 adds 32bit field for 4GB packets in IPv6, what about IPv4, how can IPv4 ever do more that 16-bit length of packages? I still don&#x27;t understand how that can work.<br> </div> Wed, 16 Feb 2022 14:17:44 +0000 Going big with TCP packets https://lwn.net/Articles/884915/ https://lwn.net/Articles/884915/ NYKevin <div class="FormattedComment"> Speaking with my Google hat on: Saying that the final solution involves &quot;multiple levels of caching&quot; is like saying that a game of Magic: The Gathering involves multiple rules.[1] Beyond that I&#x27;m not really at liberty to comment, but I can point you at [2] for the official company line on how the recommendation system works.[3]<br> <p> [1] See <a href="https://media.wizards.com/2022/downloads/MagicCompRules%2020220218.txt">https://media.wizards.com/2022/downloads/MagicCompRules%2...</a> for the MTG rules. But don&#x27;t actually try to read them, because they&#x27;re intended to be used for resolving specific issues, not as a &quot;here&#x27;s how to play the game&quot; starting point.<br> [2]: <a href="https://blog.youtube/inside-youtube/on-youtubes-recommendation-system/">https://blog.youtube/inside-youtube/on-youtubes-recommend...</a><br> [3]: The linked blog post is Google/YouTube&#x27;s official position on the matter, and may not be reflective of my own personal views (which I have no interest in discussing). It&#x27;s also from September 2021, so things may have changed since then.<br> </div> Wed, 16 Feb 2022 10:13:06 +0000 Going big with TCP packets https://lwn.net/Articles/884913/ https://lwn.net/Articles/884913/ geert <div class="FormattedComment"> However, Commodore managed to send more than 10 million ;-)<br> </div> Wed, 16 Feb 2022 09:34:37 +0000 Going big with TCP packets https://lwn.net/Articles/884856/ https://lwn.net/Articles/884856/ rgmoore <p>I assume that with something like YouTube, the final solution involves multiple levels of caching with different tradeoffs between latency and cost. With a site that is accessed mostly by browsing, you can get advance notice of what items are likely to be looked at soon based on what's on the users' screens and can pre-populate the cache accordingly. I'm sure there are engineers whose whole job is to optimize this behavior. It also makes me wonder if some of the dreaded YouTube algorithm isn't built around trying to steer viewers into stuff that's popular right now because it's sure to be available in cache. Tue, 15 Feb 2022 17:45:16 +0000 Going big with TCP packets https://lwn.net/Articles/884853/ https://lwn.net/Articles/884853/ PaulMcKenney <div class="FormattedComment"> I hereby confirm that 64KB packets seemed insanely large to me in the 1980s. ;-)<br> </div> Tue, 15 Feb 2022 16:45:58 +0000 Going big with TCP packets https://lwn.net/Articles/884831/ https://lwn.net/Articles/884831/ Wol <div class="FormattedComment"> Well, admittedly my home system isn&#x27;t configured like a lot of them ...<br> <p> But I reorganised (as in archived last year&#x27;s) loads of mailing lists, and it was noticeable that even after Thunderbird came back and said &quot;finished&quot;, that the disk subsystem - a raid-5 array - was desperately struggling to catch up. With 32GB of ram, provided it caches everything fine I&#x27;m not worried, but it&#x27;s still a little scary knowing there&#x27;s loads of stuff in the disk queue flushing as fast as possible ...<br> <p> Cheers,<br> Wol<br> </div> Tue, 15 Feb 2022 14:59:39 +0000 Going big with TCP packets https://lwn.net/Articles/884830/ https://lwn.net/Articles/884830/ HenrikH <div class="FormattedComment"> Well so are 100Gb/s NICs and switches so neither one is consumer level driven at the moment.<br> </div> Tue, 15 Feb 2022 14:44:02 +0000 Going big with TCP packets https://lwn.net/Articles/884808/ https://lwn.net/Articles/884808/ taladar <div class="FormattedComment"> <font class="QuotedText">&gt; software that &quot;knows&quot; that the TCP header can be found immediately after the IP header in a packet.</font><br> <p> This could also affect iptables rules using the u32 match.<br> </div> Tue, 15 Feb 2022 13:46:18 +0000 Going big with TCP packets https://lwn.net/Articles/884802/ https://lwn.net/Articles/884802/ mageta <div class="FormattedComment"> For many use-cases thats still just way too expensive (for the moment); and there is plenty of development still happening in HDDs (even tapes). For example, some vendors starting to deploy multi-actuator HDDs (we recently got support for that in Linux), so you can have multiple reads/writes concurrently - obviously that&#x27;s still slower than flash.<br> </div> Tue, 15 Feb 2022 10:36:42 +0000 Going big with TCP packets https://lwn.net/Articles/884803/ https://lwn.net/Articles/884803/ Sesse <div class="FormattedComment"> This was a problem even when I started in Google in 2007; disks were getting so large that anything like recovery or the likes was getting problematic. So the problem has been there all along, it&#x27;s just moving slowly into more “normal” problem domains as the problem gets worse and worse.<br> </div> Tue, 15 Feb 2022 10:35:34 +0000 Going big with TCP packets https://lwn.net/Articles/884801/ https://lwn.net/Articles/884801/ mageta <div class="FormattedComment"> <font class="QuotedText">&gt; Current kernels limit the number of fragments stored in an SKB to 17, which is</font><br> <font class="QuotedText">&gt; sufficient to store a 64KB packet in single-page chunks. That limit will</font><br> <font class="QuotedText">&gt; clearly interfere with the creation of larger packets, so the patch set raises</font><br> <font class="QuotedText">&gt; the maximum number of fragments (to 45). But, as Alexander Duyck pointed out,</font><br> <font class="QuotedText">&gt; many interface drivers encode assumptions about the maximum number of fragments</font><br> <font class="QuotedText">&gt; that a packet may be split into. Increasing that limit without fixing the</font><br> <font class="QuotedText">&gt; drivers could lead to performance regressions or even locked-up hardware, he</font><br> <font class="QuotedText">&gt; said.</font><br> <font class="QuotedText">&gt; </font><br> <font class="QuotedText">&gt; After some discussion, Dumazet proposed working around the problem by adding a</font><br> <font class="QuotedText">&gt; configuration option controlling the maximum number of allowed fragments for</font><br> <font class="QuotedText">&gt; any given packet. That is fine for sites that build their own kernels, which</font><br> <font class="QuotedText">&gt; prospective users of this feature are relatively likely to do. It offers little</font><br> <font class="QuotedText">&gt; help for distributors, though, who must pick a value for this option for all of</font><br> <font class="QuotedText">&gt; their users. </font><br> <p> Hmm, sounds a lot like what we have in the block layer with &quot;block queue limits&quot;; where each low level driver that implements an interface to the block layer also provides a set of limits for this specific queue, also - among other things - including how the scatter-gather list of this queue must look like so the underlying device can actually deal with it. For example some devices can&#x27;t deal with multi-page scatter-elements, while other can; some have a upper limit of scatter-elements in a single list, and so on. This way there doesn&#x27;t have to be a single config switch and/or a kernel wide knob.<br> </div> Tue, 15 Feb 2022 10:28:07 +0000 Going big with TCP packets https://lwn.net/Articles/884795/ https://lwn.net/Articles/884795/ zdzichu <div class="FormattedComment"> I believe &quot;modern storage&quot; in 2022 are NVMe drives capable of 5 million IOPS each.<br> </div> Tue, 15 Feb 2022 05:21:05 +0000 Going big with TCP packets https://lwn.net/Articles/884794/ https://lwn.net/Articles/884794/ alison <div class="FormattedComment"> <font class="QuotedText">&gt; Enabling a packet size of 185,000 bytes increased network throughput by nearly 50%</font><br> <p> Presumably &quot;throughput&quot; involves getting the BIG TCP packet off the NIC via DMA, probably of the scatter-gather variety for so much data. It&#x27;s remarkable that the speed of these transfers is sufficient for a 50% speed-up.<br> </div> Tue, 15 Feb 2022 05:20:10 +0000 Going big with TCP packets https://lwn.net/Articles/884791/ https://lwn.net/Articles/884791/ NYKevin <div class="FormattedComment"> HDD I/O speeds are not getting significantly faster, either. It&#x27;s actually starting to become a bit of a problem, because the ratio of storage space to I/O bandwidth has gotten extremely biased in favor of the former as HDDs get bigger but not faster, so a large fleet of HDDs doesn&#x27;t have enough overall bandwidth to be useful at scale. You could work around this by buying a lot of small HDDs, but that&#x27;s so expensive (per gigabyte) that you&#x27;re probably better off just buying SSDs instead. As a result, we&#x27;re starting to see increased use of SSDs even in domains where HDD seek time would otherwise be acceptable, and HDDs are sometimes getting relegated to &quot;cool&quot; storage and batch processing.<br> <p> (The above describes my experience with extremely large-scale services. For &quot;normal-sized&quot; services, you&#x27;re probably fine with an HDD or ten, but if you&#x27;ve suddenly decided to build your own private YouTube, you should at least run the numbers, just in case.)<br> </div> Tue, 15 Feb 2022 02:19:56 +0000 Going big with TCP packets https://lwn.net/Articles/884783/ https://lwn.net/Articles/884783/ dcg <div class="FormattedComment"> This is not too different from the problems that modern file systems have using the full bandwidth of modern storage. Isn&#x27;t the root problem the same? CPUs are not getting faster, but other hardware pieces are, so abstraction layers have to do as little as possible and algorithms have to be extremely efficient. Very interesting times for operating system development.<br> </div> Mon, 14 Feb 2022 21:39:29 +0000