WireGuardNT mới đang phá vỡ trần năng suất trên Windows

Quên điện thoại di động có thể uốn cong, chúng tôi gắn bó với trò chơi di động.
Thu phóng / Quên điện thoại di động có thể uốn cong, chúng tôi gắn bó với trò chơi di động.

Dự án WireGuard VPN thông báo Một cột mốc quan trọng đối với người dùng Windows ngày nay – việc triển khai chế độ hạt nhân hoàn toàn mới của giao thức VPN được gọi là WireGuardNT. Ứng dụng mới cho phép cải thiện thông lượng đáng kể trên các kết nối LAN 10Gbps – và trên nhiều kết nối WI-Fi.

WireGuard (trên Windows) và Wintun

Việc triển khai WireGuard nguyên bản trên Windows sử dụng Wireguard-go – một triển khai không gian người dùng của WireGuard được viết bằng ngôn ngữ lập trình Google Go. Wireguard-go sau đó được gắn vào một máy mạng ảo, hầu hết chúng cũng sống trong không gian của người dùng. Donenfeld không thích nó cửa sổ vòi, giao diện mạng ảo được cung cấp bởi dự án OpenVPN – vì vậy nó đã triển khai biến thể của mình từ đầu, được gọi là Winton.

Wintun là một cải tiến rõ ràng so với tap-windows – cùng một dự án OpenVPN đã triển khai hỗ trợ Wintun, một cách ấn tượng Kết quả (414Mbps qua Windows tap so với 737Mbps qua Wintun). Nhưng trong khi sử dụng Wintun là một cải tiến so với clickwindows, nó không làm thay đổi nhu cầu chuyển đổi ngữ cảnh tĩnh từ không gian hạt nhân (nơi ngăn xếp mạng “thực” tồn tại) và không gian người dùng (nơi cả OpenVPN và wireguard-go chạy).

Để loại bỏ các tắc nghẽn hiệu suất còn lại, toàn bộ ngăn xếp – công tắc ảo, bộ mã hóa, mọi thứ – phải được kéo vào hạt nhân. Trên Linux, điều này có nghĩa là DLKM (Mô-đun nhân có thể tải động). Trên Windows, điều đó có nghĩa là trình điều khiển thiết bị trong nhân là phù hợp.

WireGuardNT và hạt nhân NT

Từ bỏ các thành phần không gian người dùng của ngăn xếp WireGuard trên Windows và giữ mọi thứ trong nhân có nghĩa là thay đổi WireGuard để hoạt động trên Windows theo cách nó đã hoạt động trên Linux. Trên thực tế, WireGuardNT bắt đầu như một cổng trực tiếp của ứng dụng WireGuard trong nhân Linux.

Theo Jason Dunnfield, người sáng tạo WireGuard, sau khi cổng ban đầu thành công, “cơ sở dữ liệu NT nhanh chóng được tách ra để phù hợp với NTisms và chủ nghĩa NT gốc” NDIS Các giao diện lập trình ứng dụng. Kết quả cuối cùng là việc triển khai WireGuard hiệu suất cao, được tích hợp cao cho nhân NT, tận dụng toàn bộ phạm vi của nhân NT và các khả năng NDIS. ”

Tất nhiên, điều này cũng có nghĩa là loại bỏ rất nhiều chuyển đổi ngữ cảnh. Kết quả cuối cùng là chắc chắn: hơn ba lần hiệu suất vượt trội, khi được đo bằng cách sử dụng Ether Trên một cặp Equinix Metal (trước đây là pack.net) c3. bé nhỏ các trường hợp.

Tuy nhiên, lợi ích của việc chuyển đổi không theo ngữ cảnh còn vượt xa các máy chủ Xeon với giao diện 10Gbps – Donenfeld đề cập rằng một số người thử nghiệm ban đầu đã báo cáo rằng WireGuardNT đôi khi giải quyết được kết quả hiệu suất lớn được thấy khi sử dụng kết nối VPN của họ qua Wi-Fi.

Chúng tôi đã thử nghiệm sự khác biệt trực tiếp, sử dụng HP EliteBook với thẻ Intel AX201 Wi-Fi 6, được kết nối với nút bộ định tuyến của bộ thử nghiệm Plume Wi-Fi 6 Superpods của chúng tôi. Mặc dù kết quả của chúng tôi không thú vị như kết quả thu được bởi một số người thử nghiệm ban đầu của chúng tôi, nhưng chúng xác nhận sự gia tăng đáng kể về hiệu suất. Trên cùng một máy và có cùng cấu hình, chúng tôi đo WireGuardNT iperf3 chạy nhanh hơn Wireguard-go và Wintun từ 10% đến 25%.

Kiểm tra WireGuardNT hôm nay

WireGuardNT có sẵn để thử nghiệm trong Windows công cộng Tải xuống Đối với WireGuard bây giờ, kể từ phiên bản 0.4. Nhưng vì nó vẫn được phân loại là thử nghiệm, bạn sẽ cần thêm khóa đăng ký và DWORD theo cách thủ công để sử dụng nó. Mở regedit Với tư cách quản trị viên, sau đó duyệt đến HKLM -> Chương trình. Tiếp theo, tạo một khóa có tên WireGuard và bên trong khóa đó, một DWORD có tên ExperimentalKernelDriver.

Với ExperimentalKernelDriver được đặt thành 1, các đường hầm của bạn sẽ sử dụng mã WireGuardNT mới – nếu không có mã này (hoặc với ExperimentalKernelDriver được đặt thành 0), chúng sẽ sử dụng hành vi mặc định, là mã wireguard-go / wintun cũ. Để thay đổi của bạn có hiệu lực, bạn cần nhấp chuột phải vào biểu tượng WireGuard trên khay hệ thống và nhấp vào Hoàn tất. Khi bạn mở lại ứng dụng WireGuard, nó sẽ tuân theo cài đặt ExperimentalKernelDriver của bạn.

Trong tương lai, WireGuardNT sẽ được bật theo mặc định và thay vào đó, bạn sẽ cần đặt cờ đăng ký nếu muốn mã kế thừa. Ngoài ra, dự án cuối cùng có kế hoạch kết thúc Wireguard-go / wintun trong bộ đôi chung. Mặt khác, bản thân các dự án sẽ vẫn còn, vì chúng có một tiện ích rộng rãi ngoài ứng dụng khách WireGuard.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *