VPN làm chậm mạng ở mức nào đó là bình thường. Tìm hiểu bốn nguyên nhân — khoảng cách, overhead đường hầm, mã hóa, tải máy chủ — và cách tự đo mức hao hụt.
Bạn bật VPN lên và trang web nặng nề hơn, video bị khựng, cuộc gọi giật. Như vậy có bình thường không, hay có gì đó đang hỏng? Chậm đi đôi chút là điều có thể đoán trước, vì VPN thực sự thay đổi cả đường đi lẫn các gói tin. Nhưng mức hao hụt lớn thường chỉ về một nguyên nhân cụ thể — phổ biến nhất là máy chủ ở quá xa hoặc đang quá tải — chứ không phải do "VPN" nói chung. Dưới đây là bốn nguyên nhân và cách đo xem bạn thực sự mất bao nhiêu.
Tóm tắt nhanh
- Bốn yếu tố làm chậm kết nối VPN: đường đi dài hơn qua máy chủ VPN, phần header phát sinh thêm trên mỗi gói tin, khối lượng tính toán mã hóa trên thiết bị hoặc router của bạn, và tải của máy chủ cùng đường truyền thượng nguồn.
- Không có mức "bình thường" chung cho mọi người. Bất kỳ con số nào được đưa ra cho mọi loại VPN đều là bịa; mức hao hụt của bạn phụ thuộc vào máy chủ, giao thức, thiết bị và nhà mạng.
- Độ trễ và thông lượng là hai khoản hao hụt riêng biệt. Khoảng cách chủ yếu ảnh hưởng đến độ trễ; overhead, CPU và tải máy chủ chủ yếu ảnh hưởng đến thông lượng.
- Hãy tự đo: cùng một máy chủ kiểm tra tốc độ, tắt VPN rồi bật VPN, mỗi trạng thái chạy vài lần, và so sánh độ trễ với thông lượng một cách riêng rẽ.
- VPN đổi địa chỉ IP của bạn, không đổi dấu vân tay trình duyệt — và có thể khiến một số trang web nghi ngờ bạn.
1. Thêm khoảng cách: đường vòng qua máy chủ VPN
Khi không dùng VPN, gói tin đi từ thiết bị của bạn đến trang web theo tuyến mà nhà mạng chọn. Khi dùng VPN, chúng đi tới máy chủ VPN trước rồi mới đến trang web, và phản hồi quay về theo đúng đường đó. Nếu máy chủ nằm ở một quốc gia khác, đường vòng này cộng thêm thời gian khứ hồi mà không phần mềm nào xóa được: tín hiệu trong cáp quang chỉ truyền nhanh đến một mức nhất định, nên khoảng cách đặt ra một ngưỡng sàn cho độ trễ.
Điều này quan trọng hơn người ta tưởng, vì thông lượng của một kết nối đơn lẻ cũng phụ thuộc vào độ trễ. Một kết nối TCP chỉ có thể giữ một lượng dữ liệu nhất định "đang bay" trước khi phải chờ xác nhận, nên với cùng một băng thông, tốc độ mỗi kết nối sẽ thấp hơn khi thời gian khứ hồi dài hơn. Một máy chủ gần thường cho cảm giác nhanh hơn hẳn máy chủ xa dù cùng một gói cước.
2. Overhead đóng gói và vấn đề MTU
Đường hầm bọc mỗi gói tin của bạn vào bên trong một gói tin khác. Lớp bọc bên ngoài đó — một header IP mới, một header UDP hoặc TCP, cùng header và dữ liệu xác thực riêng của giao thức VPN — chiếm chỗ, nên mỗi gói tin chở được ít dữ liệu thực của bạn hơn một chút. Với một hệ thống cấu hình tốt, ảnh hưởng đến tốc độ thường khá nhỏ.
Vấn đề nghiêm trọng hơn là MTU (maximum transmission unit, kích thước gói tin lớn nhất mà một đường truyền cho phép). Đường Ethernet thông thường hay cho phép 1500 byte, nhưng lớp bọc của đường hầm cũng phải nằm gọn trong đó, nên kích thước khả dụng bên trong đường hầm nhỏ hơn. Nếu gói tin quá lớn, nó phải bị phân mảnh hoặc bị loại bỏ. RFC 4459 mô tả các vấn đề MTU và phân mảnh khi dùng tunneling trong mạng. Khi một thiết bị trên đường đi lặng lẽ loại bỏ các gói tin quá khổ mà bên gửi không hề được báo, kết nối có thể đứng hình hoặc bò chậm: yêu cầu nhỏ vẫn chạy, tải dung lượng lớn thì treo, và một số trang chỉ tải được một nửa. Đây là lỗi "blackhole" kinh điển.
Các ngăn xếp mạng hiện đại cố gắng tự dò kích thước hoạt động được. RFC 8899 định nghĩa cơ chế path MTU discovery ở tầng đóng gói, thăm dò kích thước lớn nhất thực sự đi qua được thay vì dựa vào các thông báo lỗi mà tường lửa thường chặn. Để có một bài giải thích dễ đọc về cách path MTU discovery hoạt động và hỏng trong thực tế, xem bài giải thích của Cloudflare. Nếu VPN chậm bất thường chỉ ở một số trang hoặc khi tải tệp lớn, cấu hình MTU quá cao là nghi phạm kinh điển, và hạ MTU của đường hầm trong ứng dụng khách là cách khắc phục thường gặp.
Giao thức truyền tải mà chính đường hầm chạy trên đó cũng ảnh hưởng. Phần lớn giao thức VPN hiện đại, như WireGuard và OpenVPN ở chế độ UDP mặc định, truyền lưu lượng của bạn qua UDP. Một số ứng dụng chuyển sang chế độ TCP để vượt qua tường lửa khắt khe, và khi đó các kết nối TCP của bạn chạy bên trong một kết nối TCP khác. Khi mất gói, cả hai lớp cùng truyền lại và cùng giảm tốc, nên một chút mất gói có thể biến thành chậm đi rõ rệt. Nếu ứng dụng cho phép chọn, UDP thường nhanh hơn.
3. Mã hóa tốn CPU
Mỗi gói tin được mã hóa trước khi rời đi và giải mã khi đến nơi. Trên laptop hoặc điện thoại đời mới, việc này rất nhẹ, và nhiều CPU có phần cứng hỗ trợ các thuật toán mã hóa phổ biến. Nhưng trên điện thoại cũ, router công suất thấp chạy trực tiếp ứng dụng VPN, hoặc thiết bị một nhân đang bận, việc mã hóa có thể trở thành nút thắt cổ chai, giới hạn thông lượng thấp hơn nhiều so với tốc độ đường truyền. Dấu hiệu dễ nhận: CPU vọt lên trong lúc truyền dữ liệu và tốc độ không bao giờ tiến gần mức của gói cước, kể cả với máy chủ ở gần.
4. Tải máy chủ và đường truyền thượng nguồn của nhà cung cấp
Máy chủ VPN được dùng chung. Nếu nhiều người dùng cùng lúc, hoặc kết nối của nó ra internet bị nghẽn, bạn chỉ chia được phần còn lại. Tuyến đường của chính nhà cung cấp đến đích cũng quan trọng: một máy chủ gần bạn nhưng kết nối kém tới trang bạn muốn vào vẫn có thể chậm. Vì vậy, đổi sang một máy chủ khác, dù ở cùng thành phố, đôi khi làm tốc độ thay đổi rất nhiều.
Chậm bao nhiêu là bình thường?
Hãy nghi ngờ mọi con số chung chung. Mức bình thường của bạn là thứ bạn đo được trong vài phút:
- Chọn một bài kiểm tra và giữ cố định. Dùng cùng một máy chủ kiểm tra tốc độ, cùng một thiết bị, trên cùng một mạng, để chỉ có VPN thay đổi.
- Kiểm tra khi tắt VPN, rồi khi bật. Dùng kiểm tra tốc độ mạng của BrowserInsight, công cụ báo tốc độ tải xuống, tải lên, độ trễ và jitter ngay từ trình duyệt. Chạy mỗi trạng thái ít nhất ba lần; một lần chỉ là ảnh chụp nhanh, không phải kết luận (xem vì sao kết quả kiểm tra tốc độ liên tục thay đổi).
- So sánh độ trễ và thông lượng riêng rẽ. Độ trễ cao hơn mà tốc độ tải xuống tương đương là dấu hiệu của khoảng cách. Tốc độ tải xuống thấp hẳn trong khi độ trễ thay đổi ít chỉ về overhead, CPU hoặc tải máy chủ. Bài kiểm tra NDT mã nguồn mở của M-Lab là một cách độc lập khác để đối chiếu thông lượng.
- Mỗi lần chỉ đổi một biến. Thử máy chủ gần hơn, rồi đổi giao thức (hoặc dùng chế độ UDP thay cho TCP), rồi hạ MTU. Kiểm tra lại sau mỗi bước.
Nếu bạn chưa rõ các con số nghĩa là gì, giải thích các chỉ số tốc độ internet trình bày về băng thông, độ trễ và jitter, còn tốc độ tải lên so với tải xuống giải thích vì sao tốc độ hai chiều thường khác nhau, nên hãy so sánh từng chiều riêng. Nếu cuộc gọi tệ đi đúng lúc có người khác dùng chung kết nối, nhiều khả năng đó không phải VPN mà là bufferbloat, và nếu kết nối chập chờn chứ không hẳn là chậm, hãy xem jitter và mất gói tin.
Cần hiểu rõ bài kiểm tra tốc độ cho biết gì và không cho biết gì. Nó đo đường truyền giữa trình duyệt của bạn và điểm biên (edge) của trang này, nên cho thấy kết nối của bạn nhanh đến đâu khi có và không có VPN. Nó không phát hiện VPN và cũng không đo MTU của bạn.
VPN có thể làm mọi thứ nhanh hơn không?
Đôi khi có. Nếu nhà mạng bóp băng thông một số loại lưu lượng, hoặc tuyến mặc định của họ đến đích kém, đường hầm có thể vòng qua vấn đề đó và kết quả được cải thiện. Điều này có thể xảy ra nhưng không phổ biến, và bạn chỉ nên tin khi phép thử trước-sau của chính mình cho thấy như vậy.
Lưu ý về quyền riêng tư
VPN thay đổi địa chỉ IP mà các trang web nhìn thấy; nó không thay đổi dấu vân tay trình duyệt của bạn, và một số trang web xem địa chỉ VPN là đáng ngờ. Để biết mỗi công cụ thực sự che giấu những gì, xem so sánh các công cụ bảo vệ quyền riêng tư, và để biết cách các trang web nhận ra lưu lượng VPN, xem cách trang web phát hiện VPN. Để biết một trang web nhìn thấy gì khi bạn đã kết nối, hãy chạy kiểm tra VPN.
Câu hỏi thường gặp
Sao VPN của tôi đột nhiên chậm hẳn?
Phần lớn thay đổi đột ngột đến từ máy chủ: nó trở nên đông người dùng, hoặc đường truyền thượng nguồn của nó bị nghẽn. Hãy kết nối lại sang một máy chủ khác và chạy lại phép thử trước-sau trước khi thay đổi bất kỳ thứ gì khác.
VPN có luôn làm giảm tốc độ không?
Thường thì nó thêm một chút độ trễ, vì đường đi dài hơn. Hao hụt thông lượng có thể nhỏ với máy chủ gần và ít tải, và lớn với máy chủ xa hoặc quá tải.
Vì sao trang nhỏ tải được còn tải tệp lớn thì treo?
Kiểu lỗi này thường chỉ về vấn đề MTU: gói tin nhỏ đi qua, gói lớn bị loại bỏ. Hãy thử hạ cài đặt MTU của đường hầm.
Dùng mạng có dây với VPN có tốt hơn không?
Nó loại bỏ sự dao động của Wi-Fi khỏi phép thử, nên phép so sánh có và không có VPN chính xác hơn. Nhưng nó không khắc phục được máy chủ ở xa.
Kết luận
VPN làm bạn chậm đi vì bốn lý do: khoảng cách, overhead đường hầm, chi phí mã hóa và tải máy chủ. Mức chậm bao nhiêu tùy vào thiết lập của bạn, vì vậy hãy đo khi tắt và bật VPN, tách riêng độ trễ và thông lượng. Sau đó mỗi lần chỉ đổi một thứ — thường là máy chủ trước tiên.


