Back to articles
Technology Insight

Optimizing Network Performance: How to Configure BBRv3 on Ubuntu to Double VPS Transfer Speeds to Vietnam

June 3, 2026

Introduction to Modern Network Optimization

In today's interconnected global economy, the performance of cloud infrastructure is a critical determinant of business success. Companies relying on Virtual Private Servers (VPS) hosted in overseas data centers—such as those in Singapore, Japan, the United States, or Europe—often face a persistent challenge: maintaining high-speed, low-latency data transfers to end-users in Vietnam. Standard TCP congestion control algorithms frequently struggle with the latency spikes and packet loss inherent in long-distance, trans-oceanic fiber routes.

To mitigate these bottlenecks, network engineers have traditionally relied on optimization techniques or legacy algorithms like Cubic. However, Google's BBRv3 (Bottleneck Bandwidth and Round-trip propagation time) represents a paradigm shift in network congestion control. By upgrading your Ubuntu-based VPS to utilize BBRv3, you can achieve substantial throughput improvements, often doubling your network transfer speeds back to Vietnam. This guide delivers an enterprise-ready, step-by-step blueprint for compiling, installing, and validating BBRv3 on Ubuntu systems.

Understanding the Mechanics: Why Legacy TCP Fails

To appreciate the advantages of BBRv3, it is essential to understand why standard protocols underperform over international links. Traditional congestion control algorithms, such as Reno and Cubic, are loss-based. They operate on a simple assumption: packet loss equals network congestion. When an international underwater cable experiences transient packet loss due to distance or minor interference, Cubic immediately slashes its transmission window by up to 50%. On long-distance routes with high Round-Trip Time (RTT) to Vietnam, rebuilding that transmission window takes a significant amount of time, resulting in severely degraded throughput.

Conversely, BBR is a model-based algorithm. Instead of reacting blindly to packet loss, BBR continuously measures the actual bottleneck bandwidth and the minimum RTT of the network path. It builds an internal model of the network pipe to determine exactly how fast to send data without overwhelming the routers. BBRv3, the latest iteration, refines this model further by improving fairness when competing with traditional Cubic streams, reducing retransmissions, and enhancing performance under severe, random packet loss scenarios commonly observed on routing paths into Vietnam during peak hours.

Prerequisites and System Requirements

Before proceeding with the deployment, ensure your environment meets the following baseline criteria to guarantee stability and compatibility:

  • Operating System: Ubuntu 22.04 LTS or Ubuntu 24.04 LTS configured with root or sudo privileges.
  • Architecture: x86_64 (AMD64) or ARM64 architecture.
  • Access: Secure Shell (SSH) access to the remote VPS.
  • Backup: A complete snapshot or backup of your VPS instance, as this process involves installing a custom or mainline Linux kernel.
Warning: Modifying the system kernel carries inherent risks. Always ensure critical data is backed up externally before initiating a kernel upgrade.

Step 1: Updating the System and Installing Dependencies

Since BBRv3 is not yet mainlined in older default Ubuntu kernels, the most stable and performant method to obtain it is by installing a modern mainline Linux kernel (Kernel 6.4 or newer, where BBRv3 patches or backports are fully integrated) or compiling it directly. For maximum stability and ease of maintenance in a production environment, we will utilize a verified mainline kernel build that includes the BBRv3 module.

First, log into your VPS via SSH and update your system package repositories to the latest versions:

sudo apt update && sudo apt upgrade -y

Next, install the required utility packages for kernel management and verification:

sudo apt install curl wget build-essential libncurses-dev bison flex libssl-dev libelf-dev -y

Step 2: Installing a BBRv3-Enabled Kernel

To leverage BBRv3, your operating system must run a Linux kernel version that supports it. While BBRv1 is available out-of-the-box in Linux 4.9+, BBRv3 requires a modern custom kernel or a specifically compiled mainline kernel. For this optimization workflow, we will download and install an optimized mainline kernel repository or compile the official BBRv3 branch provided by Google's networking team.

For automated deployments, many enterprise administrators opt for pre-compiled mainline kernels that have backported the BBRv3 patches. Let us proceed with verifying your current running kernel version before applying the upgrade:

uname -r

If your system requires compiling from the official Google BBR GitHub repository to ensure absolute compliance with version 3, follow these structural compilation steps:

  1. Clone the repository: git clone [https://github.com/google/bbr.git](https://github.com/google/bbr.git)
  2. Navigate to the directory and checkout the v3 branch.
  3. Copy your existing kernel configuration: cp /boot/config-$(uname -r) .config
  4. Enable BBRv3 in the configuration menu: make menuconfig (Navigate to Networking Options -> TCP: advanced congestion control -> select BBR3).
  5. Compile and install the kernel modules and binary image.

Alternatively, installing a verified, pre-packaged kernel containing the BBRv3 source allows you to reboot directly into a compatible environment without the overhead of hours of compilation.

Step 3: Activating and Configuring BBRv3 via Sysctl

Once your VPS has successfully rebooted into the BBRv3-enabled kernel, you must explicitly instruct the Linux networking stack to prioritize BBRv3 and pair it with the optimal queueing discipline (qdisc). The recommended pairing for BBR is FQ (Fair Queueing), which prevents bursts of packets from overwhelming network switches.

To apply these changes permanently, modify the system configuration file located at /etc/sysctl.conf. Open the file using your preferred text editor:

sudo nano /etc/sysctl.conf

Scroll to the bottom of the file and append the following configuration directives:

# Enable TCP BBRv3 Optimization for International Routing
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
# Optional: Optimize TCP window sizes for high latency links
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_mtu_probing = 1

Save the file and exit the editor (in Nano, press Ctrl + O, Enter, then Ctrl + X). To load these new configurations immediately without restarting your server, execute the following command:

sudo sysctl -p

Step 4: Verifying the BBRv3 Activation

After applying the system controls, it is vital to verify that the kernel has successfully loaded the BBRv3 congestion control algorithm and that it is actively managing outbound TCP connections. Run the following verification commands:

To verify the default congestion control algorithm in use, execute:

sysctl net.ipv4.tcp_congestion_control

The output should explicitly state: net.ipv4.tcp_congestion_control = bbr.

Next, confirm that the FQ queueing discipline is fully functional by checking the loaded kernel modules:

lsmod | grep bbr

If the command returns output containing tcp_bbr, the module is successfully running inside the kernel space. If you compiled a strict version 3 kernel, you can check specific module information via modinfo tcp_bbr to verify the version tags and maintainers.

Performance Benchmarking: International VPS to Vietnam

The true value of BBRv3 becomes apparent when analyzing data transfer speeds before and after activation. When testing throughput from overseas locations (e.g., US West Coast, Frankfurt, or Tokyo) to clients located in major Vietnamese ISPs such as VNPT, Viettel, or FPT, traditional Cubic often stalls due to international network jitter.

Using network diagnostics tools like iPerf3 or standard HTTP file download tests, administrators generally observe the following performance enhancements:

  • Throughput Stability: Under a simulated 1% to 2% packet loss scenario, Cubic throughput typically collapses by up to 70%. BBRv3 maintains near-line-rate performance, resulting in the targeted 2x to 3x speed improvement.
  • Latency Mitigation: BBRv3 keeps bufferbloat to a minimum, ensuring that web applications remain highly responsive even during high-volume data backups or streaming tasks.

Conclusion

Migrating your infrastructure to a BBRv3-enabled Ubuntu configuration is one of the most cost-effective and highly impactful optimization strategies available for cloud administrators managing international routes to Vietnam. By moving away from loss-based models and implementing an intelligent bandwidth-and-RTT model, you minimize the economic and operational impact of international fiber transit limitations. Implement BBRv3 today to provide your users with a faster, more stable, and seamless digital experience.

Optimizing Network Performance: How to Configure BBRv3 on Ubuntu to Double VPS Transfer Speeds to Vietnam | DPTCloud