
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[ The Cloudflare Blog ]]></title>
        <description><![CDATA[ Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet. ]]></description>
        <link>https://blog.cloudflare.com</link>
        <atom:link href="https://blog.cloudflare.com/" rel="self" type="application/rss+xml"/>
        <language>en-us</language>
        <image>
            <url>https://blog.cloudflare.com/favicon.png</url>
            <title>The Cloudflare Blog</title>
            <link>https://blog.cloudflare.com</link>
        </image>
        <lastBuildDate>Sat, 04 Apr 2026 15:28:08 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Ending the "silent drop": how Dynamic Path MTU Discovery makes the Cloudflare One Client more resilient]]></title>
            <link>https://blog.cloudflare.com/client-dynamic-path-mtu-discovery/</link>
            <pubDate>Thu, 05 Mar 2026 14:00:00 GMT</pubDate>
            <description><![CDATA[ The Cloudflare One Client now features the ability to actively probe and adjust packet sizes. This update eliminates the problems caused by tunnel layering and MTU differences, providing more stability and resiliency.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>You’ve likely seen this support ticket countless times: a user’s Internet connection that worked just fine a moment ago for Slack and DNS lookups is suddenly hung the moment they attempt a large file upload, join a video call, or initiate an SSH session. The culprit isn't usually a bandwidth shortage or service outage issue, it is the "PMTUD Black Hole" — a frustration that occurs when packets are too large for a specific network path, but the network fails to communicate that limit back to the sender. This situation often happens when you’re locked into using networks you do not manage or vendors with <a href="https://www.cloudflare.com/learning/network-layer/what-is-mtu/"><u>maximum transmission unit</u></a> (MTU) restrictions, and you have no means to address the problem.</p><p>Today, we are moving past these legacy networking constraints. By implementing <a href="https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/warp/deployment/mdm-deployment/path-mtu-discovery/"><u>Path MTU Discovery</u></a> (PMTUD), the Cloudflare One Client has shifted from a passive observer to an active participant in path discovery.</p><p>Dynamic Path MTU Discovery allows the client to intelligently and dynamically adjust to the optimal packet size for most network paths using MTUs above <a href="https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/warp/deployment/mdm-deployment/path-mtu-discovery/#path-mtu-discovery"><u>1281 bytes</u></a>. This ensures that a user’s connection remains stable, whether they are on a high-speed corporate backbone or a restrictive cellular network.</p>
    <div>
      <h3>The “modern security meets legacy infrastructure” challenge<b> </b></h3>
      <a href="#the-modern-security-meets-legacy-infrastructure-challenge">
        
      </a>
    </div>
    <p>To understand the solution, we have to look at how modern security protocols interact with the diversity of global Internet infrastructure. The MTU represents the largest data packet size a device can send over a network without fragmentation: typically 1500 bytes for standard Ethernet.</p><p>As the Cloudflare One client has evolved to support modern enterprise-grade requirements (such as <a href="https://developers.cloudflare.com/ssl/edge-certificates/additional-options/cipher-suites/compliance-status/#fips-140-2"><u>FIPS 140-2 compliance</u></a>), the amount of metadata and encryption overhead within each packet has naturally increased. This is a deliberate choice to ensure our users have the highest level of protection available today.</p><p>However, much of the world’s Internet infrastructure was built decades ago with a rigid expectation of 1500-byte packets. On specialized networks like LTE/5G, satellite links, or public safety networks like FirstNet, the actual available space for data is often lower than the standard. When a secure, encrypted packet hits an older router with a lower limit (e.g., 1300 bytes), that router should ideally send an <a href="https://www.cloudflare.com/learning/ddos/glossary/internet-control-message-protocol-icmp/"><u>Internet Control Message Protocol</u></a> (ICMP) message stating "Destination Unreachable" back to the sender to request a smaller size.</p><p>But that doesn’t always happen. The "Black Hole" occurs when firewalls or middleboxes silently drop those ICMP feedback messages. Without this feedback, the sender keeps trying to send large packets that never arrive, and the application simply waits in a "zombie" state until the connection eventually times out.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/N8nwoU8QnWvDeM0yymBX0/2482b85f8ebade81520fdd950f968341/image2.png" />
          </figure>
    <div>
      <h3>Cloudflare’s solution: active probing with PMTUD</h3>
      <a href="#cloudflares-solution-active-probing-with-pmtud">
        
      </a>
    </div>
    <p>Cloudflare’s implementation of <a href="https://datatracker.ietf.org/doc/html/rfc8899"><u>RFC 8899 Datagram Packetization Layer Path MTU Discovery (PMTUD)</u></a> removes the reliance on these fragile, legacy feedback loops. Because our modern client utilizes the <a href="https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/warp/configure-warp/warp-settings/#device-tunnel-protocol"><u>MASQUE protocol</u></a> — built on top of Cloudflare’s open source <a href="https://github.com/cloudflare/quiche"><u>QUIC library</u></a> — the client can perform active, end-to-end interrogation of the network path.</p><p>Instead of waiting for an error message that might never come, the client proactively sends encrypted packets of varying sizes to the Cloudflare edge. This probe tests MTUs from the upper bound of the supported MTU range to the midpoint, until the client narrows down to the exact MTU to match. This is a sophisticated, non-disruptive handshake happening in the background. If the Cloudflare edge receives a specific-sized probe, it acknowledges it; if a probe is lost, the client instantly knows the precise capacity of that specific network segment.</p><p>The client then dynamically resizes its virtual interface MTU on the fly, by periodically validating the capacity of the path that we established at connection onset. This ensures that if, for example, a user moves from a 1500-MTU Wi-Fi network at a station to a 1300-MTU cellular backhaul in the field, the transition is seamless. The application session remains uninterrupted because the client has already negotiated the best possible path for those secure packets.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/bRWgjgUSJtxj6QQ7sn6Et/3dc26d7c97173909860d9c942202bf0e/image3.png" />
          </figure>
    <div>
      <h3>Real-world impact, from first responders to hybrid workers</h3>
      <a href="#real-world-impact-from-first-responders-to-hybrid-workers">
        
      </a>
    </div>
    <p>This technical shift has profound implications for mission-critical connectivity. Consider the reliability needs of a first responder using a vehicle-mounted router. These systems often navigate complex NAT-traversal and priority-routing layers that aggressively shrink the available MTU. Without PMTUD, critical software like Computer Aided Dispatch (CAD) systems may experience frequent disconnects during tower handoffs or signal fluctuations. By using active discovery, the Cloudflare One Client maintains a sticky connection that shields the application from the underlying network volatility.</p><p>This same logic applies to the global hybrid workforce. A road warrior working from a hotel in a different country often encounters legacy middleboxes and complex double-NAT environments. Instead of choppy video calls and stalled file transfers, the client identifies the bottleneck in seconds and optimizes the packet flow — before the user even notices a change.</p>
    <div>
      <h3>Get PMTUD for your devices</h3>
      <a href="#get-pmtud-for-your-devices">
        
      </a>
    </div>
    <p>Anyone using the Cloudflare One Client with the MASQUE protocol can try Path MTU Discovery now for free. Use our detailed <a href="https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/warp/deployment/mdm-deployment/path-mtu-discovery/"><u>documentation</u></a> to get started routing traffic through the Cloudflare edge with the speed and stability of PMTUD on your Windows, macOS, and Linux devices.</p><p>If you are new to Cloudflare One, you too can start protecting your first 50 users for free. Simply <a href="https://dash.cloudflare.com/sign-up/zero-trust"><u>create an account</u></a>, download the<a href="https://1.1.1.1/"> <u>Cloudflare One Client</u></a>, and follow our<a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/"> <u>onboarding guide</u></a> to experience a faster, more stable connection for your entire team.</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Cloudflare One Client]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Connectivity]]></category>
            <category><![CDATA[SASE]]></category>
            <guid isPermaLink="false">XzwjagUzAbLvFCj2KNgGB</guid>
            <dc:creator>Koko Uko</dc:creator>
            <dc:creator>Rhett Griggs</dc:creator>
            <dc:creator>Todd Murray</dc:creator>
        </item>
        <item>
            <title><![CDATA[A QUICker SASE client: re-building Proxy Mode]]></title>
            <link>https://blog.cloudflare.com/faster-sase-proxy-mode-quic/</link>
            <pubDate>Thu, 05 Mar 2026 06:00:00 GMT</pubDate>
            <description><![CDATA[ By transitioning the Cloudflare One Client to use QUIC streams for Proxy Mode, we eliminated the overhead of user-space TCP stacks, resulting in a 2x increase in throughput and significant latency reduction for end users.  ]]></description>
            <content:encoded><![CDATA[ <p>When you need to use a <a href="https://blog.cloudflare.com/a-primer-on-proxies/"><u>proxy</u></a> to keep your zero trust environment secure, it often comes with a cost: poor performance for your users. Soon after deploying a client proxy, security teams are generally slammed with support tickets from users frustrated with sluggish browser speed, slow file transfers, and video calls glitching at just the wrong moment. After a while, you start to chalk it up to the proxy — potentially blinding yourself to other issues affecting performance. </p><p>We knew it didn’t have to be this way. We knew users could go faster, without sacrificing security, if we completely re-built our approach to <a href="https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/warp/configure-warp/warp-modes/#local-proxy-mode"><u>proxy mode</u></a>. So we did.</p><p>In the early days of developing the device client for our <a href="https://www.cloudflare.com/learning/access-management/what-is-sase/"><u>SASE</u></a> platform, <a href="https://www.cloudflare.com/sase/"><u>Cloudflare One</u></a>, we prioritized universal compatibility. When an admin enabled proxy mode, the Client acted as a local SOCKS5 or HTTP proxy. However, because our underlying tunnel architecture was built on WireGuard, a Layer 3 (L3) protocol, we faced a technical hurdle: how to get application-layer (L4) TCP traffic into an L3 tunnel. Moving from L4 to L3 was especially difficult because our desktop Client works across multiple platforms (Windows, macOS, Linux) so we couldn’t <a href="https://blog.cloudflare.com/from-ip-packets-to-http-the-many-faces-of-our-oxy-framework/#from-an-ip-flow-to-a-tcp-stream"><u>use the kernel </u></a>to achieve this.</p><p>To get over this hurdle, we used smoltcp, a Rust-based user-space TCP implementation. When a packet hit the local proxy, the Client had to perform a conversion, using smoltcp to convert the L4 stream into L3 packets for the WireGuard tunnel.</p><p>While this worked, it wasn't efficient. Smoltcp is optimized for embedded systems, and does not support modern TCP features. In addition, in the Cloudflare edge, we had to convert the L3 packets back into an L4 stream. For users, this manifested as a performance ceiling. On media-heavy sites where a browser might open dozens of concurrent connections for images and video, and the lack of a high performing TCP stack led to high latency and sluggish load times when even on high-speed fiber connections, proxy mode felt significantly slower than all the other device client modes.</p>
    <div>
      <h3>Introducing direct L4 proxying with QUIC</h3>
      <a href="#introducing-direct-l4-proxying-with-quic">
        
      </a>
    </div>
    <p>To solve this, we’ve re-built the Cloudflare One Client’s proxy mode from the ground up and deprecated the use of WireGuard for proxy mode, so we can capitalize on the capabilities of QUIC. We were already leveraging <a href="https://blog.cloudflare.com/zero-trust-warp-with-a-masque/"><u>MASQUE</u></a> (part of QUIC) for proxying IP packets, and added the usage of QUIC streams for direct L4 proxying.</p><p>By leveraging HTTP/3 (<a href="https://datatracker.ietf.org/doc/rfc9114"><u>RFC 9114</u></a>) with the CONNECT method, we can now keep traffic at Layer 4, where it belongs. When your browser sends a SOCKS5 or HTTP request to the Client, it is no longer broken down into L3 packets.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/w9mIuKa8usLgxDxVqaHax/9861604fc84508b7fc6666bf8b82a874/image1.png" />
          </figure><p>Instead, it is encapsulated directly into a QUIC stream.</p><p>This architectural shift provides three immediate technical advantages:</p><ul><li><p>Bypassing smoltcp: By removing the L3 translation layer, we eliminate IP packet handling and the limitations of smoltcp’s TCP implementation.</p></li><li><p>Native QUIC Benefits: We benefit from modern congestion control and flow control, which are handled natively by the transport layer.</p></li><li><p>Tuneability: The Client and Cloudflare’s edge can tune QUIC’s parameters to optimize performance.</p></li></ul><p>In our internal testing, the results were clear: <b>download and upload speeds doubled, and latency decreased significantly</b>.</p>
    <div>
      <h3>Who benefits the most</h3>
      <a href="#who-benefits-the-most">
        
      </a>
    </div>
    <p>While faster is always better, this update specifically unblocks three key common use cases.</p><p>First, in <b>coexistence with third-party VPNs </b>where a legacy VPN is still required for specific on-prem resources or where having a dual SASE setup is required for redundancy/compliance, the local proxy mode is the go-to solution for adding zero trust security to web traffic. This update ensures that "layering" security doesn't mean sacrificing the user experience.</p><p>Second, for <b>high-bandwidth application partitioning</b>, proxy mode is often used to steer specific browser traffic through Cloudflare Gateway while leaving the rest of the OS on the local network. Users can now stream high-definition content or handle large datasets without sacrificing performance.</p><p>Finally, <b>developers and power users</b> who rely on the SOCKS5 secondary listener for CLI tools or scripts will see immediate improvements. Remote API calls and data transfers through the proxy now benefit from the same low-latency connection as the rest of the Cloudflare global network.</p>
    <div>
      <h3>How to get started</h3>
      <a href="#how-to-get-started">
        
      </a>
    </div>
    <p>The proxy mode improvements are available with minimum client version 2025.8.779.0 for Windows, macOS, and Linux devices. To take advantage of these performance gains, ensure you are running the <a href="https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/warp/download-warp/"><u>latest version of the Cloudflare One Client</u></a>.</p><ol><li><p>Log in to the <b>Cloudflare One dashboard</b>.</p></li><li><p>Navigate to <b>Teams &amp; Resources &gt; Devices &gt; Device profiles &gt; General profiles</b>.</p></li><li><p>Select a profile to edit or create a new one and ensure the <b>Service mode</b> is set to <b>Local proxy mode</b> and the <b>Device tunnel protocol</b> is set to <b>MASQUE</b>.</p></li></ol><p>You can verify your active protocol on a client machine by running the following command in your terminal: </p>
            <pre><code>warp-cli settings | grep protocol</code></pre>
            <p>Visit our <a href="https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/warp/configure-warp/warp-modes/#set-up-local-proxy-mode"><u>documentation</u></a> for detailed guidance on enabling proxy mode for your devices.</p><p>If you haven't started your SASE journey yet, you can sign up for a<a href="https://dash.cloudflare.com/sign-up/zero-trust"><u> free Cloudflare One account</u></a> for up to 50 users today. Simply <a href="https://dash.cloudflare.com/sign-up/zero-trust"><u>create an account</u></a>, download the<a href="https://1.1.1.1/"> <u>Cloudflare One Client</u></a>, and follow our<a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/"> <u>onboarding guide</u></a> to experience a faster, more stable connection for your entire team.</p> ]]></content:encoded>
            <category><![CDATA[SASE]]></category>
            <category><![CDATA[Proxying]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Cloudflare One Client]]></category>
            <category><![CDATA[Connectivity]]></category>
            <category><![CDATA[TCP]]></category>
            <guid isPermaLink="false">11I7Snst3LH2T0tJC5HLbN</guid>
            <dc:creator>Koko Uko</dc:creator>
            <dc:creator>Logan Praneis</dc:creator>
            <dc:creator>Gregor Maier</dc:creator>
        </item>
    </channel>
</rss>