<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Network on Margrop Blog</title>
    <link>https://blog.margrop.net/en/tag/network/</link>
    <description>Recent content in Network on Margrop Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-US</language>
    <lastBuildDate>Sat, 18 Jul 2026 19:40:00 +0800</lastBuildDate>
    <atom:link href="https://blog.margrop.net/en/tag/network/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>TCP Ruled for 40 Years. Why Did HTTP/3 “Dump” It?</title>
      <link>https://blog.margrop.net/en/post/why-http3-ditched-tcp-quic/</link>
      <pubDate>Sat, 18 Jul 2026 19:40:00 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/why-http3-ditched-tcp-quic/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s fact-check the title first: TCP has &lt;em&gt;not&lt;/em&gt; been abandoned — file downloads, video, email, and SSH still run on it today. But the &lt;strong&gt;Web really did change drivers&lt;/strong&gt;: in June 2022, HTTP/3 became an official standard (RFC 9114), and it no longer uses TCP — web traffic is handed to QUIC, running over UDP.&lt;/p&gt;&#xA;&lt;p&gt;TCP got &amp;ldquo;replaced&amp;rdquo; because of three incurable midlife conditions:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Head-of-line blocking&lt;/strong&gt;: TCP is a byte stream that must be delivered in order — lose one parcel, and every parcel behind it stands at attention;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Expensive handshakes&lt;/strong&gt;: before any data flows, 2-3 round trips of &amp;ldquo;small talk&amp;rdquo; (TCP handshake + TLS handshake) — half a second gone on intercontinental links;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;A protocol welded shut&lt;/strong&gt;: TCP lives inside the OS kernel, and middleboxes only recognize the &amp;ldquo;classic model&amp;rdquo; — improving it is nearly impossible.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;QUIC&amp;rsquo;s fix is beautifully blunt: &lt;strong&gt;rebuild all of TCP&amp;rsquo;s wisdom on top of UDP, where nobody interferes.&lt;/strong&gt; This is the finale of our networking trilogy — part one covered &lt;em&gt;how to use the network&lt;/em&gt;, part two &lt;em&gt;why TCP/IP was designed so well&lt;/em&gt;, and this one &lt;em&gt;how even the mighty TCP got replaced by its own heirs&lt;/em&gt;. All screenshots come from real systems; IPs and hostnames are masked.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>A 1974 Design Still Rules the Internet. Why? The 6 Design Philosophies of TCP/IP</title>
      <link>https://blog.margrop.net/en/post/tcpip-design-philosophy/</link>
      <pubDate>Sat, 18 Jul 2026 09:30:00 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/tcpip-design-philosophy/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;TCP/IP is almost 50 years old. Every one of its rivals — the phone companies&amp;rsquo; X.25, IBM&amp;rsquo;s SNA, the standards body&amp;rsquo;s OSI — is in a museum, yet it still carries every page you load today. It didn&amp;rsquo;t win by being the most advanced. It won through six design choices:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Packet switching&lt;/strong&gt;: no private trains — everyone shares the highway. Cheap, and hard to kill;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Layering&lt;/strong&gt;: each layer does one job and can be swapped out like a LEGO brick;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The end-to-end principle&lt;/strong&gt;: keep the network dumb and put the smarts at the edges — so innovation never requires rewiring the network;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Best effort&lt;/strong&gt;: the core promises nothing, reliability is bought à la carte — simple scales globally;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rough consensus and running code&lt;/strong&gt;: no kings, no voting — standards grow by working, not by decree;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Room for the future&lt;/strong&gt;: from IPv4 to IPv6, from HTTP/1 to HTTP/3 — the foundation stays while everything above is rebuilt.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;One sentence: &lt;strong&gt;good design doesn&amp;rsquo;t predict the future; it leaves room for it.&lt;/strong&gt; This is the companion piece to &lt;em&gt;Why Is Your WiFi Lagging?&lt;/em&gt; — that article explained &lt;em&gt;what&lt;/em&gt; the network is and how to use it; this one explains &lt;em&gt;why&lt;/em&gt; it was designed this way and how it survived half a century. All screenshots come from real systems and real protocol documents; IPs and hostnames are masked.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Why Is Your WiFi Lagging? Networks, TCP vs UDP, and the Two “5Gs” — Explained So a Kid Gets It</title>
      <link>https://blog.margrop.net/en/post/network-basics-tcp-udp-wifi-5g/</link>
      <pubDate>Sat, 18 Jul 2026 08:30:00 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/network-basics-tcp-udp-wifi-5g/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A &lt;strong&gt;network&lt;/strong&gt; is a delivery service for computers: data is chopped into &amp;ldquo;parcels&amp;rdquo; (packets), labeled with &amp;ldquo;addresses&amp;rdquo; (IPs), and relayed by &amp;ldquo;sorting centers&amp;rdquo; (routers) hop by hop to the recipient.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;TCP is a phone call&lt;/strong&gt;: connect first, talk later, repeat anything that wasn&amp;rsquo;t heard — reliable but fussy. &lt;strong&gt;UDP is a postcard&lt;/strong&gt;: drop it in the mailbox and hope — fast, but no delivery guarantee. Live video and games prefer UDP; files and web pages prefer TCP.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;strong&gt;three-way handshake&lt;/strong&gt; is just the opening of a phone call: &amp;ldquo;Hello, can you hear me?&amp;rdquo; — &amp;ldquo;I can. Can you hear me?&amp;rdquo; — &amp;ldquo;I can too. Let&amp;rsquo;s talk.&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Wired&lt;/strong&gt; is a private water pipe; &lt;strong&gt;WiFi&lt;/strong&gt; is shouting in a crowded square — when everyone shouts at once, nobody is heard clearly. That is the number-one reason WiFi lags.&lt;/li&gt;&#xA;&lt;li&gt;WiFi&amp;rsquo;s &amp;ldquo;5G&amp;rdquo; means the &lt;strong&gt;5GHz frequency band&lt;/strong&gt; (a wider lane). Your phone carrier&amp;rsquo;s &amp;ldquo;5G&amp;rdquo; means the &lt;strong&gt;5th generation&lt;/strong&gt; of mobile networks (a whole standard). They share a name and nothing else.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;No jargon without an everyday analogy, but every number below comes from real measurements on real machines (all IPs and hostnames are masked). A kid can follow most of it; an adult won&amp;rsquo;t find it shallow.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Cross-Border VPS Feels Glacial? One Kernel Sysctl Speeds International Links 20×</title>
      <link>https://blog.margrop.net/en/post/bbr-fix-china-us-vps-slow-network/</link>
      <pubDate>Thu, 02 Jul 2026 20:00:00 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/bbr-fix-china-us-vps-slow-network/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;The short version&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;You&amp;rsquo;re accessing your overseas VPS from within China. SSH feels snappy. &lt;code&gt;curl&lt;/code&gt; on a small JSON endpoint returns instantly. But downloading a 2 MB HTML file takes over a minute. Convinced it&amp;rsquo;s &amp;ldquo;peak-hour international link congestion&amp;rdquo;? Probably not — you&amp;rsquo;re being sabotaged by Linux&amp;rsquo;s default CUBIC congestion control. CUBIC treats every packet loss as &amp;ldquo;the road ahead is jammed&amp;rdquo; and immediately backs off. But international links have baseline 5–15% loss from physical-layer imperfections, not congestion. So your TCP flow gets permanently stuck in slow-mo. Switch to Google&amp;rsquo;s &lt;strong&gt;BBR&lt;/strong&gt; algorithm and the exact same physical path, same moment, same loss rate delivers &lt;strong&gt;15–24× more throughput&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This post walks through a real mesh-VPN investigation: pulling a 2.3 MB page from a US VPS across a Chinese home connection went from &lt;strong&gt;30 KB/s to 500–1000 KB/s&lt;/strong&gt; after four shell commands. It ships three one-shot scripts (Windows 11 / Ubuntu 26.04 / macOS 26), covering both manual execution and AI-agent-driven deployment. All internal IPs, hostnames, and public IPs have been redacted.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>VPN Connected, But Internal Hostnames Won&#39;t Resolve? A Complete macOS Routing Table Walkthrough</title>
      <link>https://blog.margrop.net/en/post/macos-routing-table-vpn-troubleshooting/</link>
      <pubDate>Mon, 01 Jun 2026 18:00:00 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/macos-routing-table-vpn-troubleshooting/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;When two VPNs run side-by-side on macOS (e.g. &lt;code&gt;utun0&lt;/code&gt; and &lt;code&gt;utun15&lt;/code&gt;), an aggregate &lt;code&gt;10.0.0.0/8&lt;/code&gt; route pushed by one of them can silently &amp;ldquo;swallow&amp;rdquo; every address in the 10.x.x.x range — including the one you actually wanted to reach on the other VPN. DNS resolves fine; TCP/ICMP just hangs. &lt;strong&gt;&lt;code&gt;route -n get&lt;/code&gt; is the first knife you should reach for.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Home Network 1000Mbps but Games Stutter? A Complete Guide to Diagnosing and Fixing Bufferbloat</title>
      <link>https://blog.margrop.net/en/post/bufferbloat-sqm-cake-home-network-fix/</link>
      <pubDate>Sat, 30 May 2026 09:00:00 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/bufferbloat-sqm-cake-home-network-fix/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;The Short Version&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Your router has a hidden enemy called &lt;strong&gt;Bufferbloat&lt;/strong&gt; — and it&amp;rsquo;s likely the reason your games lag even when your bandwidth test shows perfect speeds. When a router buffers too aggressively, download traffic fills up the queue and real-time traffic (games, video calls) gets stuck waiting behind thousands of buffered packets. Your speedtest stays at 950Mbps, but your game ping explodes from 50ms to 500ms.&lt;/p&gt;&#xA;&lt;p&gt;In this article, I walk through the complete diagnosis and resolution of a Bufferbloat problem in a real home network environment using a multi-WAN iKuai gateway + ImmortalWrt soft router setup. The fix: deploying &lt;strong&gt;SQM (Smart Queue Management) + Cake qdisc&lt;/strong&gt; on the ImmortalWrt layer, which reduced latency under full-speed download from ~300ms+ down to a stable ~12ms with zero configuration complexity.&lt;/p&gt;&#xA;&lt;p&gt;All internal IP addresses, device hostnames, and network topologies have been sanitized for privacy.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>When Docker Networks Collide with the Home LAN: Moving Auto-Allocated Subnets Back to 172</title>
      <link>https://blog.margrop.net/en/post/docker-network-subnet-conflict-migration-record/</link>
      <pubDate>Mon, 13 Apr 2026 08:00:00 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/docker-network-subnet-conflict-migration-record/</guid>
      <description>&lt;p&gt;This post records a very practical Docker networking failure: the number of containers kept growing, Docker&amp;rsquo;s auto-assigned user-defined bridge networks eventually started landing in &lt;code&gt;192.168.x.x&lt;/code&gt;, and those networks began colliding with the real home LAN. The symptoms were not dramatic at first. Nothing looked “broken” in the usual sense. Containers were still running, the host was still alive, and the dashboard still looked normal. But parts of the home network became unreliable, and once I dug into it on my NAS, the root cause turned out to be the Docker network allocation strategy rather than any single bad container.&lt;/p&gt;&#xA;&lt;p&gt;The fix was straightforward in principle, but important in practice: I moved Docker&amp;rsquo;s automatic network pool to &lt;code&gt;172.16.0.0/12&lt;/code&gt;, migrated the existing &lt;code&gt;192.168.*&lt;/code&gt; networks onto the 172 private range, and made sure future networks created through Portainer, Dockhand, or plain &lt;code&gt;docker compose&lt;/code&gt; would follow the same rule.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Overview of home network architecture based on PVE &#43; soft routing &#43; NAS (for technical personnel)</title>
      <link>https://blog.margrop.net/en/post/home-network-architecture-based-pve-and-soft-route-and-nas/</link>
      <pubDate>Fri, 03 Sep 2021 09:50:49 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/home-network-architecture-based-pve-and-soft-route-and-nas/</guid>
      <description>Home Network Overview The home network will not separate the &amp;ldquo;business plane&amp;rdquo;, &amp;ldquo;management plane&amp;rdquo; and &amp;ldquo;data plane&amp;rdquo; like a regular virtualization platform. What home networks need is convenience, so the three planes mentioned above need to be integrated together to share the network in order to facilitate management. The security of the home network is also very important. No one wants the network door at home to be open to the outside world all the time.</description>
    </item>
    <item>
      <title>Troubleshooting a Network Storm in My Home Network</title>
      <link>https://blog.margrop.net/en/post/a-network-broadcast-flooding-solution-record/</link>
      <pubDate>Fri, 26 Mar 2021 09:37:21 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/a-network-broadcast-flooding-solution-record/</guid>
      <description>&lt;p&gt;March 7th, Sunday. It was supposed to be a day for rest and relaxation.&lt;/p&gt;&#xA;&lt;h1 id=&#34;around-10-am&#34;&gt;Around 10 AM&lt;/h1&gt;&#xA;&lt;p&gt;The XiaoAi speaker at home suddenly stopped working, showing &amp;ldquo;Network Connection Failed&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;I initially thought it was just a minor issue, but after some inspection, I discovered that all networked devices at home had lost connectivity???&lt;/p&gt;</description>
    </item>
    <item>
      <title>Proxmox VE commonly used local paths, and how to modify hosts, host name, IP address and DNS configuration</title>
      <link>https://blog.margrop.net/en/post/proxmox-ve-url-and-modify-hosts-ip-dns/</link>
      <pubDate>Fri, 22 Jan 2021 17:02:01 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/proxmox-ve-url-and-modify-hosts-ip-dns/</guid>
      <description>PVE local ISO file directory: /var/lib/vz/template/iso PVE local OVZ file directory: /var/lib/vz/template/cache&#xA;Modify hosts file Effective after restart vi /etc/hosts Modify hostname Effective after restart vi /etc/hostname Modify IP address and DNS configuration Effective after restart Reference DNS configuration vi /etc/network/interfaces dns-nameservers 114.114.114.114,223.5.5.5 </description>
    </item>
    <item>
      <title>How to Run N2N on CentOS 7 — Edge Edition</title>
      <link>https://blog.margrop.net/en/post/how-to-use-n2n-centos-edge/</link>
      <pubDate>Sat, 16 Jan 2021 14:00:18 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/how-to-use-n2n-centos-edge/</guid>
      <description>&lt;p&gt;&lt;code&gt;边缘节点（node）&lt;/code&gt;：The node that will become part of the virtual network.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to run N2N-compilation using Windows</title>
      <link>https://blog.margrop.net/en/post/how-to-use-n2n-windows-compile/</link>
      <pubDate>Fri, 15 Jan 2021 14:26:49 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/how-to-use-n2n-windows-compile/</guid>
      <description>According to Building说明 of N2N官方网站, the software required for Windows compilation is Visual Studio,Cmake,OpenSSL。&#xA;I got a headache when I saw Visual Studio. This software is very difficult to install. So I chose cross-compilation, that is, using the Linux environment to compile Windows exe and dll files.&#xA;#Compiled files&#xA;Compilation environment:&#xA;Contains edge, supernode, openssl链接库 (necessary for n2n operation), tap-windows安装包 (necessary for n2n operation, Win7&amp;amp;Win10)&#xA;Prepare the compilation environment Use yum to install necessary software, the following is the author&amp;rsquo;s reference document wget https://download.</description>
    </item>
    <item>
      <title>How to Run N2N on Synology (DSM) - Compilation Guide</title>
      <link>https://blog.margrop.net/en/post/how-to-use-n2n-dsm/</link>
      <pubDate>Fri, 15 Jan 2021 13:18:07 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/how-to-use-n2n-dsm/</guid>
      <description>&lt;p&gt;Synology (abbreviated as &lt;code&gt;DSM&lt;/code&gt; below) is currently the most famous &lt;code&gt;NAS&lt;/code&gt; system, bar none.&#xA;How to run &lt;code&gt;N2N&lt;/code&gt; directly on &lt;code&gt;DSM&lt;/code&gt;? Of course, cross-compilation is needed again 😂.&#xA;The following cross-compilation operations require a basic understanding of &lt;code&gt;Linux&lt;/code&gt; and proficiency in &lt;code&gt;vim&lt;/code&gt; operations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to use CentOS 7 to run N2N—supernode</title>
      <link>https://blog.margrop.net/en/post/how-to-use-n2n-centos-supernode/</link>
      <pubDate>Fri, 15 Jan 2021 09:15:03 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/how-to-use-n2n-centos-supernode/</guid>
      <description>超级节点（supernode）: It allows edge nodes to announce and discover other nodes. It must have a port that is publicly accessible on the Internet.&#xA;First review the basic elements of n2n n2n is a lightweight VPN software that makes it easy to create virtual networks that bypass intervening firewalls. In order to start using n2n, two elements are required:&#xA;一个超级节点（supernode）: It allows edge nodes to announce and discover other nodes. It must have a port that is publicly accessible on the Internet.</description>
    </item>
    <item>
      <title>How to Run N2N on CentOS 7 — Compilation Guide</title>
      <link>https://blog.margrop.net/en/post/how-to-use-n2n-centos-compile/</link>
      <pubDate>Thu, 14 Jan 2021 14:26:49 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/how-to-use-n2n-centos-compile/</guid>
      <description>&lt;p&gt;If you are interested in the complete compilation process, you can browse at your leisure. Of course, you can also directly download the pre-compiled files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What is N2N?</title>
      <link>https://blog.margrop.net/en/post/what-is-n2n/</link>
      <pubDate>Wed, 13 Jan 2021 16:27:39 +0800</pubDate>
      <guid>https://blog.margrop.net/en/post/what-is-n2n/</guid>
      <description>N2N is an open source P2P encryption networking tool&#xA;The open source project address is: https://github.com/ntop/n2n&#xA;The latest version is 2.8-stable&#xA;The following introduction comes from the official website&#xA;n2n is a lightweight VPN software that makes it easy to create virtual networks that bypass intervening firewalls. In order to start using n2n, two elements are required:&#xA;一个超级节点（supernode）: It allows edge nodes to announce and discover other nodes. It must have a port that is publicly accessible on the Internet.</description>
    </item>
  </channel>
</rss>
