25 Gbit/s at home, part 1
boredengineer.medium.com
boredengineer.medium.com
Steam - ~280MB/s (2.2gbps)
Battle.net launcher - ~140MB/s (1.1gbps)
25GB Torrent with 1000+ seeders - ~70MB/s (~560mbps)
2GB iso from github - ~80MB/s (~650mbps)
fast.com - 1.4gbps
speedtest.net - 2.7gbps (using ISPs endpoint 2ms away)
Using a download manager like IDM or jDownloader will help for http downloads, but most hosts will limit your speed even with 16 connections open. I've managed to see 2gbps moving data to/from servers (scp) with softether configured to use 16 connections. The reality is with a single connection (majority of ssl transfers) you'll be limited by the sending side in almost all cases.
Overall it seems that while you can get connected and run an iperf to your ISP or multi-connection speedtest to a server hosted by your ISP or peered with your ISP, you'll be pretty much limited to <1gbps speeds regardless of your home network throughput.
Knowing this I would have simply went multi-gig (2.5g) for all in-home networking and saved a good chunk of change on networking equipment.
Aside from that release, almost everything that is a good size (>10GB) has gotten north of 100MB/s pretty regularly.
I see a notable difference on a 7950X3D simply by messing around with the power/performance governors.
Get ready for a whirlwind of delayed network improvements from your favorite transit provider for the next 3-5 years just as we saw in the early 2000s!
Config wise signing up a provider is like buying anything else online. Setting up the client isn't much more difficult than setting up a torrent client (select default folders, set limits, etc) beyond you need to manually enter the info to connect to the providers.
I have it, or slightly below, with pings around 7ms, and... as a regular user with some modest 10tb movies and games collection, 99% of the cases 100mbit is more than fine, and the rest covers rest.
No place for anxious ocd types, but low ping and overall reliability of the connection are way more important to me, even for fetching 70gb+ games. Not only due to wfh, but also for that.
And what I see as a use case - is when multiple people in my household would do heavy downloads simultaneously. Also, I hope I will get better-downloading speed (Steam, GoG, etc.) as with modern games, it becomes more critical, and I'll be keener to play and remove a game if I want to put in on pause, compared to keeping 3-4 100+ GB games installed at the same time.
The former system is multiples of 1024, the latter the mathematical and legal definition of x1000
The X10 rule of thumb is probably pretty spot on at the end
There maybe further overhead when that packet gets to your router/modem and out to your ISP, and their switches, consider that there's likely another wrapped header on there accounting for 30 more bytes and possibly causing a packet to get split into two smaller ones. I think 10% would be the highest "data rate" vs "port rate" overhead you'd see, without involving a VPN or complex network.
Speedtest.net - ~9.3Gbps symmetric
iperf to Denver: ~9.3Gbps symmetric (~8 threads)
iperf to Minneapolis: ~9.3Gbps symmetric
AWS S3 Download with small files: 1.3Gbps
Usenet download: 7-9.5Gbps
Mounting my ZFS pool to an AWS instance via SMBv3 in us-west-2: 3Gbps (not clear what the limit was here)
GitHub (400MB): 1 thread 400Mbps, 16 threads: 3.3Gbps
Fedora ISO from local mirror: 1 thread: 1.4Gbps, 16 threads: 4Gbps
Will try to test Steam and such.
That's $53/h in data transfer costs from us-west-2... (They are so absurd.)
this one sounds interesting and definitely a writeup I would read about.
There was no practical reason to do this, it cost about $100 to double my processing speed.
It's quite a clever system that uses market greed to incentivize building. It's the same system as railroads, imagine if railroads could not share tracks with each other.
https://en.wikipedia.org/wiki/Arrangements_between_railroads...
Some places also vote to have the city or town connect with Fiber which then puts tax money aside for it.
In many places it is the power companies that run fiber and they are mostly partially or fully state owned. The lagest ISP also has the state as the majority share holder.
It's whether you want to pay through it via tax dollars or directly.
As it stimulates the economy similar to how laying new train track does.
It's the same for power, one or two companies lay the cable, myriad others sell the service.
It was & is one of the most stunning activist court decisions to have hit the US ever. Big companies sued, saying fiber was expensive & that they should have sole control over next gen telecommunications technology & the courts ignored the legislative act & handed incumbent powers total control. Revilesome; one of the biggest constraints in US infrastructure in general.
The FCC has been busy 5hese past couple years unwinding remaining requirements for dark fiber & other remaining protections. I somewhat care but the obliteration of last mile protections that enabled competitive carriers to exist at all makes the overall market so unavailable & locked up that it's less relevant.
It’s basically combining the short-sighted greed of corporations with the long term potential energy of infra. The combo is incredibly powerful.
Governments typically suck at ops, pricing etc, but digging and drawing lines in the sand they can be pretty good at. Corporations without competition always suck, it’s like having an athlete without a sport. Even if they start out fine, they deteriorate on the couch into an agitated and lazy asshole, monopolizing the remote.
In many parts of Europe, this model is working so well that there are 2-3 competitors that are all good and cheap. Unlike (here) in the US where there is only one, depending on your address, which sucks and is incredibly overpriced.
In Italy, nobody would lay fiber to stunt the competition.
Fiber just became available in our neighborhood recently and I'm about to have fewer people sharing our network, so the idea of being able to host my own files is becoming attractive again.
We are about to be due for this pendulum (centralized vs distributed) to swing back again and I like to be prepared.
Am doing this at home with a fibre line and it's been super reliable.
IMHO the key is to have a good router/firewall that gives you the flexibility you need—ideally a custom box like OP. My software preference is opnsense, but there are plenty of other good options.
Home computer ownership is tanking, millennials were probably the last "power user" generation, and there's just no major interest in self hosting with the convenience of cloud. Even among tech professionals like HN.
Likewise with backups, each photo is ~40 MB for RAW files, so 10 Mb/s can take all day to backup a couple hundred photos.
That's without even getting into video. Off the camera, video files are ~200 Mb/s. Backups of the raw footage take forever, and sharing at the original quality is a non-starter.
I made no guarantees for file sharing or backups...
Backups are something else sure, but for personal hosting, the world is easier if you can just plop photos into a directory with maybe a simple html (or in my case xml) file and not deal with things like generating thumbnails or different quality settings.
I don't think the Internet has been this small in that respect since the early 90's.
My public facing stuff lives on cheap cloud services and is kept well away from my home network.
- Charlie Stross, "Accelerando"
I have 10 minutes or so of power outage per year, otherwise it works fine. Maintenance effort is close to zero, security update apply automatically.
its not "state of the art" but I expect it to serve my needs.
Once there, do whatever you want. Get a DMZ or even a separate connection if you really want to go wild, but it's not terribly complicated.
There are even "in a box" solutions - such as https://mailinabox.email or https://owncloud.com
I have 3 sets of DNS entries for the home lab servers:
1. "internal"/home network addresses (e.g. your 192.168.x.x) 2. Wireguard addresses (e.g. 10.0.x.x) 3. public DNS entries that all resolve to the jumpbox
The purpose of #3 is to support simple Letsencrypt setup: nginx on jumpbox forwards Letsencrypt requests to the internal servers over the Wireguard connection.
Internally, I use a https://github.com/nginx-proxy/nginx-proxy setup, so that any time I want a new service running inside the home lab I just have to:
1. Pick a hostname and add it to public DNS 2. Configure its Docker container to add the environment variables that nginx-proxy looks for 3. Add the hostname to the jumpbox /etc/hosts 4. Add the hostname to internal LAN DNS
It's a little much but I like how it works. It's not so bad to get setup.
If your ISP does port block (or you don't want to port forward or expose your IP) you can also set up a cloudflare tunnel (warp?) on a server, and point it to your local webserver's port, and set your cloudflare DNS for your domain so that it points to your warp tunnel. This way requests for the website go to cloudflare then to your machine and on to your local webserver.
So, I'm all for faster, but it seems faster comes with some headaches if you don't know what you're doing. It's just surprising that consumers are still pretty much limited to 1gb/s after all these years, and my attempt to do otherwise hasn't fully paid off yet.
But about your problem - cards manage to negotiate 5 Gbps, or even negotiation fails? If it's the latter, then it might be cables.
Overall, for me, it works to simplify the network as much as possible and first achieve results on a direct connection to the router when it's nearby and then add more and more.
Oh, and also measure as much as possible (that's why I'm sad about the state of system metrics on OSX, for example)
At that price I'd take it, but that's because I have a 10G network to my NAS, though I'd have to upgrade my router.
And about Macbook... In my current setup, I'm using Thunderbolt -> PCIe and one of the Mellanox cards; it gives excellent and stable 16 Gbps with stock firmware and DriverKit-based drivers (that comes with OSX), though it feels that DriverKit driver doesn't use any offloading that it supports (while running iperf between Macbook and router, it consumes roughly 3 cores entirely on Macbook, while the router doesn't even ramp up the single core to its boost frequency).
But you are right; rewiring is a hassle, though Cat5e usually works with 10Gbit over reasonable lengths (10-30 meters, maybe a bit more if it is perfect quality cable).
Also, even if I decided not to go for fibre, I'd still switch to at least 10Gbps because I'm not alone in that network :)
USW-Pro-Aggregation
USW-Pro-48-PoE
US-XG-6PoE
Recently bypassed AT&T's residential gateway by getting a XGS-PON on a SFP+ stick, let me shave off 2ms and gain a couple hundred mbps each way, in addition to removing their crappy gateway.
[0]: https://ecin.ca/custom-xgs-pon-sfp-stick-module-xgspon-ont-w...
[1]: https://discord.gg/8311-886329492438671420
[2]: https://docs.google.com/document/u/0/d/1UIAgtxkImgFRwyaGDGtI...
I connected the 5Gbit to a TP-Link TLSX105 10Gbit switch which has five 10Gbit RJ45 switch ports.
Since my office is on another floor and has more stuff that needs to be hardwired, I have a TP Link TLSX1008 10Gbit switch that has eight 10Gbit switch ports.
I connected the two together and, presto, 5Gbit for everyone.
My Macs have OWC 10Gbit Thunderbolt NICs so they can each get the full 5Gbit.
I tried using a Mikrotik CRS switch/router thing, but dealing with SFP inconsistencies is annoying as hell and it was a very slow router. (You need the higher end CCR routers to get 10Gbit routing, but I just wanted to have all of my devices use the Pi-Hole for DNS, which I could do with DHCP.)
I'm definitely going to upgrade to 10Gbit if AT&T makes it available.
If your concern is the physical size of the cable just make sure you're getting a non-splittable duplex cable. Some people prefer splittable because then if they need a simplex cable they can just pull it apart but that's what requires the cable to be larger as you get 2 individually shielded cables. The actual fiber core is measured in microns, you can pack 100s in roughly the same sized jacket.
Bonus note: If you're ever looking at doing a bunch of runs between two spots you can look into MTP/MPO trunk cables. These put 12 strands in the same protective sheath so it's still a really tiny cable and then you can break out via a pigtail cable at the other end.
It's not. 25G and 40G transceivers cost the same and MPO cables are more expensive.
There is another difference - if I want to go for field connectors and cut it myself, the Simplex connector would cost about 4.15$, and the Duplex would be 6.16$, which would further increase the price difference.
But thanks for the advice, it is indeed a viable option.
25 GBps is about the sequential speed of a decent NVMe SSD, and much faster than anything SATA.
It is also faster than what a CPU can handle for all but the most basic of processing. Working at GBytes/s speeds require serious performance considerations when coding, often involving working with assembly, SIMD, etc... Things like the TCP stack start being a bottleneck at this point.
There is also a limit on how fast you can consume content. 25 GBit/s is about 4k@120Hz uncompressed video.
And remember that both ends need to handle the bandwidth.
Doing something useful with the full bandwidth is a challenge in itself. Running a server for many users is the most probable use case, but you need a beefy machine, maybe several to be able to serve at such speed. You need to find enough users too.
I am not saying that getting 25 Gbit/s at home is a bad thing, it is a technical achievement and I am all for it. But I feel like finding an application that can saturate that kind of bandwidth is like a continuation to the challenge. Maybe something to do with gaming or VR.
I often think about how I could justify the increase in price for myself, but I always come to the conclusion that I just don't need it. And I am a heavy internet user. I download a lot, and I upload a lot (which is why I'm very grateful for my 500 Mbit/s in upload speed). But even with "just" 500 Mbit/s, downloading a 100 GB game takes about 30 minutes. And that's provided I have an endpoint available that can supply the full 500 Mbit/s, which is surprisingly often not the case.
If I happen to need 100 GB of data, I can wait 30 minutes.
Disclaimer: I'm talking about uplink here. Internally, between my PCs, my home server and my NAS, I'm currently looking into getting 10 Gbit/s set up. And yes, I'm sure there are some use cases out there that benefit from 1 Gbit/s uplink. But I, as a power internet user, have decided for myself that I just don't need it, which means that the average Joe definitely doesn't need it.
Still, I think it's great that it's available here and I'm all for getting that expanded further.
For eg a 150 GB game download on your console, a 25G connection sounds useful.
And of course a fast connection also enables new kinds of applications when enough people have them (eg game consoles could use networked on-demand storage for assets so wouldn-t be size limited by console SSD capacities). As long as bandwidth is very unequal between users, the faster end doesn't get applications built for it. That's why we should enact policies that make fast connections widely available. Fiber is cheap after all.
An interesting note about the torrenting: I was shocked that my Mac Mini (Intel) running 12.$latest absolutely could not keep up with more than 20MB/s. The network stack just broke and the machine would actually stop responding to pings.
I moved it to a Linux box and ran Transmission (same software) in a container and it is where the 80-90MB/s numbers came from. Doesn't phase the box it's running on.
Seriously disappointed in the Apple networking stack.
This effectively means that the only thing stopping you from getting a 25 Gbps connection is, well, the fiber connection and the hardware
It wasn't too hard or expensive to get used 10 gigabit cards for my router and server. It was a bit pricier to get a used Thunderbolt 10 gigabit adapter for my Mac, but still not prohibitive.
I thought I was really future-proofing by making my house 10 gigabit compatible when I only have 2 gigabit internet, but if I have to worry about 25 gigabit internet everywhere I think I think I give up!
By the way, I also went for a Thunderbolt enclosure and network card for Mac. It is a bit pricy (the enclosure costs way more than yet another ConnectX).
Downloads matter up to an extent. What still gives me day 1 shivers is 600Mbps upload after years at 1, and sub-10ms latency.
Since then, I have tried to be in control of network hardware, and I now avoid *DSL, even though VDSL is decent nowadays. But the reason for 25 Gbps for me is "just because", as ISP charges the same monthly amount as I pay now (there is a setup fee for 25, though).
Trying out VPP instead of Linux kernel networking might make some sense: https://fd.io
It will likely reach the target performance, although the NIC requirements need to be rechecked.
But... well, this software is not for the faint of heart ;)
So far, I have yet to figure out all the problems and settings with Netronome (or give up on it). Still, it is Netronome-specific as I can easily get line rate over TCP single stream with Mellanox cards, and the CPU doesn't even break a sweat (however, I have relatively simple routing rules).
I want to try out programmable NIC, and as far as I understand, Netronome has some support there; I just wanted to get a simple setup running first and then optimise/improve it. I tend to perfect the setup, and if I let myself do more and more and more - I will always need more time to finish it.
Overall I'd bet all of the NICs and transceivers are the majority of the power usage in a given year.
I don't usually saturate 1gbps, but I definitely saturate 100mbps with XBOX downloads, any cloud provider, torrents, etc.
You could probably pull your old cables fairly easily. Attach two wire pull tapes or strings to the old cable, pull the old cable out with plenty of wire pulling lubricant, and then use one tape/string to pull a Cat 7, leaving a spare for mistakes or additional pulls.
I doubt I will be any close to that.
Yeah, I have something like 12 karma or so, and the account is newly registered (a few days ago). Unfortunately, HN doesn't seems to provide any workarounds for that.
Spectrum sucks
While I love that ISP are continuing to ramp up the speeds beyond 5 Gbps, keep in mind that 99.99% of home user connect on WiFi which taps out at like 1-2 Gbps.