Kiểm Tra Mất Gói

Kiểm tra mất gói (packet loss) bằng gói UDP thật, đúng cách game và cuộc gọi gửi dữ liệu, và xem bạn mất gói ở chiều tải lên hay chiều tải xuống. Mỗi lần chạy đồng thời cũng là một bài kiểm tra độ trễ, kiểm tra jitter và kiểm tra bufferbloat.

Mỗi gói tin được đo thời gian qua trung tâm dữ liệu gần nhất của Cloudflare · mất gói tách riêng tải lên và tải xuống · không lưu lại gì

Từng gói tin, ngay khi tớiVí dụ: 1 phút trên đường truyền cáp quang

  • Đúng giờ 2.995
  • Trễ 0
  • Mất 4
  • Sai thứ tự 1
  • Trùng lặp 0
Gói tinChùmTải lênLênTải xuốngXuốngĐộ trễ msmất 4không có–
Mỗi cột là một giây: các gói của giây đó xếp từ trên xuống dưới. Trỏ vào một giây, hoặc chọn dải rồi dùng phím mũi tên.

Bài kiểm tra mất gói này hoạt động thế nào?

Trình duyệt của bạn gửi một luồng đều đặn các gói UDP nhỏ lên trung tâm dữ liệu gần nhất của Cloudflare rồi quay thẳng về chính nó, và đếm từng gói không bao giờ quay về.

Các gói đi qua một kênh dữ liệu WebRTC được đặt để không bao giờ gửi lại thông điệp bị mất, nên gói nào đã mất thì mất hẳn: đó là mất gói thật, không phải độ trễ bị che đi bởi một lần gửi lại. Chúng được relay bởi dịch vụ TURN của Cloudflare, vốn là anycast: trình duyệt của bạn tới địa điểm Cloudflare gần nhất, và relay được đặt tại đó. Cả hai đầu của luồng đều nằm trong trình duyệt của bạn, trên cùng một đồng hồ, nên độ trễ của từng gói chính xác tới một phần mười mili giây.

Một gói trong vòng lặp đó đi qua kết nối của bạn hai lần, lên rồi xuống, nên riêng nó không thể cho biết gói bị mất ở đâu. Vì vậy, một cuộc gọi thoại ngắn chạy song song: trình duyệt của bạn gửi một luồng âm thanh im lặng tới máy chủ cuộc gọi của Cloudflare (Realtime SFU) và nhận lại nó. Cloudflare báo những gói nào họ không bao giờ nhận được, đó là mất gói tải lên của bạn; những gì mất sau đó là mất gói tải xuống của bạn.

Khi có tải, đường truyền được làm đầy bằng tải xuống rồi tải lên từ các máy chủ speed test của Cloudflare trong khi các gói vẫn tiếp tục chạy, để bạn thấy mất gói, jitter và độ trễ thay đổi thế nào khi đường truyền bận.

Trình duyệt của bạnRelay (TURN)Cloudflare gần nhấtMáy chủ cuộc gọi (SFU)Cloudflare gần nhấtVòng lặp: gói tin đi và vềmất ở chiều lên hay chiều xuống?vòng lặp không phân biệt được; nó đo thời gian từng gói trên cùng một đồng hồCuộc gọi thử nghiệm: Opus, 50 gói mỗi giây↑ tải lên↓ tải xuốngCloudflare đếm những gì nhận được ↑trình duyệt của bạn đếm những gì quay về ↓
  • Vòng lặp: độ trễ và số phận của từng gói
  • Cuộc gọi: chiều nào làm mất gói
  • Một gói bị mất
Cả hai chạy song song trong suốt bài kiểm tra.
Kết quả kiểm tra mất gói: dải từng gói tin, chùm mất gói khi tải xuống, mất gói hai chiều, jitter và hạng bufferbloatKết quả kiểm tra mất gói: dải từng gói tin, chùm mất gói khi tải xuống, mất gói hai chiều, jitter và hạng bufferbloatKết luậnTỷ lệ mất gói, các chùm mất gói và mức tăng độ trễ khi có tải, được đánh giá theo mục tiêu của Microsoft Teams hoặc điểm gaming của Cloudflare.Từng gói tinMỗi cột là một giây và mỗi vạch là một gói: đúng giờ, trễ, mất hoặc sai thứ tự, các chùm mất gói được đóng ngoặc.Chiều lên hay chiều xuốngCuộc gọi thử nghiệm tách riêng mất gói: phần Cloudflare không bao giờ nhận được từ bạn, và phần bị mất trên đường quay về bạn.Điểm và hạngĐiểm của Cloudflare cho xem video trực tuyến, game và cuộc gọi video, cùng hạng bufferbloat của Waveform từ A+ đến F.
Bài kiểm tra 1 phút trên một đường truyền bị bufferbloat: không mất gói khi không tải, những chùm mất gói ngắn và độ trễ tăng dần khi tải xuống. Chọn một số để xem từng phần thể hiện điều gì.

Mất gói (packet loss) là gì?

Mất gói là tỷ lệ gói dữ liệu rời khỏi thiết bị của bạn nhưng không bao giờ tới được đầu bên kia, hoặc tới quá muộn để dùng được.

Game, cuộc gọi thoại và video gửi các gói nhỏ qua UDP nhiều lần mỗi giây và không chờ gửi lại gói bị mất: một gói mất là một khung hình bị đứng, một chữ bị mất trong cuộc gọi hay một nhân vật bị giật lùi. Tải xuống và trang web dùng TCP, giao thức gửi lại những gì bị mất, nên ở đó mất gói chỉ khiến trang tải chậm hơn. Đó cũng là lý do một bài đo tốc độ mạng thông thường không thấy được mất gói.

Bài kiểm tra này đếm bốn thứ. Mất: gói chưa tới sau 3 giây, thời gian chờ mà thước đo mất gói của IETF yêu cầu phải báo cáo. Trễ: gói có tới, nhưng chậm hơn hẳn các gói khác. Sai thứ tự: gói tới sau một gói được gửi sau nó (RFC 4737). Trùng lặp: gói tới hai lần, chỉ tính một.

16 gói, mỗi gói cách nhau 20 ms1 mất · 1 trễ · 1 sai thứ tự · 1 tới hai lần
Đã gửiĐã tới trễ: chậm hơn các gói khác 100 ms11223344566778899101011111212131314141415151616
  • Đúng giờtới cùng các gói khác
  • Trễcó tới, nhưng chậm hơn hẳn các gói khác: quá muộn với một cuộc gọi
  • Mấtkhông quay về trong vòng 3 giây
  • Sai thứ tựtới sau một gói được gửi sau nó
  • Trùng lặptới hai lần, chỉ tính một
Dải trong kết quả dùng cùng các màu này, mỗi ô là một gói.

Mất gói bao nhiêu là chấp nhận được?

Với cuộc gọi video, dưới 1%: mục tiêu của Microsoft cho Teams là mất dưới 1% trong mọi khoảng 15 giây và dưới 10% trong mọi khoảng 200 mili giây, còn Zoom khuyến nghị 2% trở xuống.

Mỗi đánh giá trên trang này tuân theo đúng một quy tắc đã công bố. Cuộc gọi video: các mục tiêu của Microsoft Teams cho đường đi từ thiết bị của bạn tới biên mạng: khứ hồi dưới 100 ms, mất gói dưới 1% trong mỗi khoảng 15 giây, mất gói theo chùm dưới 10% trong mỗi khoảng 200 ms, jitter dưới 30 ms, sai thứ tự dưới 0,05%, cùng khuyến nghị của Zoom là độ trễ 150 ms, jitter 40 ms và mất gói 2%.

Game và xem video trực tuyến: điểm chất lượng mạng của Cloudflare, cũng là thang điểm speed.cloudflare.com dùng: mất dưới 1% được điểm tối đa, từ 1% đến 5% được một nửa, từ 5% đến 25% không được điểm, và cao hơn thì bị trừ điểm. Với game, các nhà phát triển game không công bố ngưỡng mất gói nào; ngay cả 1% theo chùm cũng gây giật thấy rõ ở 64 hoặc 128 lần cập nhật mỗi giây.

Microsoft Teams dưới 1% trong mọi khoảng 15 giây Zoom 2% trở xuống 0%0,5%1%2%3%4%5% Cloudflare AIM +10 điểm +5 5% đến 25%: 0 · dưới 50%: −10 · sau đó −20
  • Dưới 1%: điểm tối đa, trong mục tiêu của Teams
  • 1% đến 2%: trong mục tiêu của Zoom
  • Trên 2%: ngoài cả hai
Quy tắc riêng của từng bên, đúng như phần đánh giá trong kết quả áp dụng. Con số của Teams tính theo từng khoảng 15 giây, nên một quãng xấu ngắn vẫn không đạt dù mức trung bình thấp.

Mất gói của bạn là ngẫu nhiên hay theo chùm?

Kiểu mất gói quan trọng không kém tỷ lệ phần trăm: 2% mất rải rác hầu như không nhận ra trong cuộc gọi, còn 2% mất trong vài chùm là một loạt lần mất tiếng.

Bài kiểm tra đếm các đợt mất gói, tức các chuỗi gói bị mất liên tiếp (RFC 6534), hiển thị đợt dài nhất, và tính tỷ lệ chùm theo ITU-T G.107: bằng 1 khi mất gói xảy ra ngẫu nhiên, lớn hơn 1 khi chúng dồn cục. Chùm mất gói thường đến từ hàng đợi bị đầy trong router hoặc modem, khiến nhiều gói của cùng một luồng bị loại bỏ cùng lúc, hoặc từ Wi-Fi rớt trong chốc lát.

Một bài kiểm tra ngắn không thể chứng minh là không có mất gói. Nếu không gói nào trong 750 gói bị mất, tỷ lệ mất gói vẫn có thể ở đâu đó dưới 0,4%, nên trang hiển thị một khoảng chứ không phải con số 0% trơn. Hãy chạy bài kiểm tra 3 phút để bắt được mất gói lúc có lúc không.

Cùng 2% mất gói, hai kiểu1 phút · 3.000 gói · mỗi kiểu mất 60 gói

Ngẫu nhiênmất lẻ tẻ, rải rác

Đợt mất gói
60
Chùm dài nhất
1 · 20 ms
Tỷ lệ chùm
0,98

Trong cuộc gọi: thỉnh thoảng một tiếng tách nhỏ

Theo chùmnăm chùm, mỗi chùm 12 gói

Đợt mất gói
5
Chùm dài nhất
12 · 240 ms
Tỷ lệ chùm
11,76

Trong cuộc gọi: năm lần mất tiếng 240 ms mỗi phút

Tỷ lệ chùm (ITU-T G.107): độ dài chùm trung bình chia cho độ dài mà mất gói ngẫu nhiên ở cùng tỷ lệ sẽ tạo ra. 1 là ngẫu nhiên; càng cao thì càng dồn cục.

Jitter là gì, và đo jitter thế nào?

Jitter là mức độ thay đổi của độ trễ từ gói này sang gói tiếp theo. Cuộc gọi và game đệm các gói để làm mượt nó, và bộ đệm đó lại cộng thêm độ trễ.

Trang này đo jitter bằng công thức trong RFC 3550, công thức mà các ứng dụng gọi điện WebRTC báo cáo: độ thay đổi của độ trễ giữa các gói khi chúng tới, được làm mượt qua các gói gần nhất. Các công cụ khác dùng công thức khác: speed test của Cloudflare lấy trung bình độ chênh giữa các lần ping liên tiếp, Waveform và Ookla lấy độ lệch so với giá trị trung bình, nên các con số jitter của chúng không so sánh trực tiếp được. Điểm của Cloudflare trên trang này dùng công thức riêng của Cloudflare, như bắt buộc phải vậy.

Jitter interarrival theo RFC 3550J = J + (|D| − J) / 16
Đã gửiĐã tớiThay đổi DJitter J 0 ms1820 ms21+340 ms19−260 ms26+780 ms18−8100 ms30+12120 ms19−11140 ms20+1160 ms22+22,31

Thời gian truyền tính bằng ms. Mỗi thay đổi kéo J đi một phần mười sáu quãng đường, nên một đột biến chỉ đẩy nó lên một chút và các gói ổn định sẽ kéo nó xuống lại.

Speed test của Cloudflare lấy trung bình độ chênh giữa các lần ping liên tiếp, còn Waveform và Ookla lấy độ phân tán quanh giá trị trung bình: cùng một đường truyền cho ra ba con số jitter khác nhau.

Bufferbloat là gì? Độ trễ khi có tải

Bufferbloat là độ trễ tăng thêm khi kết nối của bạn bận: router hoặc modem xếp hàng quá nhiều dữ liệu, nên mọi gói tin phải chờ sau một lượt tải xuống hoặc tải lên.

Bài kiểm tra khi có tải đo độ trễ khi không tải, rồi khi tải xuống, rồi khi tải lên, và xếp hạng mức tăng theo thang của Waveform: A+ khi tăng dưới 5 ms, A dưới 30, B dưới 60, C dưới 200, D dưới 400, F từ 400 ms trở lên, dựa trên độ trễ trung bình và chiều tệ hơn trong hai chiều.

Cách khắc phục là quản lý hàng đợi thông minh (SQM) trên router: CAKE hoặc FQ-CoDel, với tốc độ đặt thấp hơn một chút so với tốc độ đường truyền thực tế, khoảng 90% tốc độ đo được theo hướng dẫn của OpenWrt. Sau đó chạy lại bài kiểm tra: hạng sẽ tăng lên A hoặc A+.

Gói tin cuộc gọi phía sau một lượt tải lênmột đường truyền ví dụ
Hàng đợi tải lên của router cuộc gọi của bạn chờ 175 msrồi hàng đợi đầyvà loại bỏ các gói tiếp theo một bản sao lưu hoặc video đang tải lên, gói này nối gói kia
Không tải21 ms
Khi tải xuống63 ms
Khi tải lên196 ms
C+175 ms khi có tải: hạng C theo thang của WaveformWaveform
  1. A+<5
  2. A<30
  3. B<60
  4. C<200
  5. D<400
  6. F400+
Độ trễ tăng thêm là độ trễ trung bình khi có tải trừ đi độ trễ trung bình khi không tải, lấy chiều tệ hơn giữa tải xuống và tải lên, đúng như cách Waveform xếp hạng.

Nguyên nhân gây mất gói và cách khắc phục?

Phần lớn mất gói đến từ Wi-Fi, đường truyền bận (bufferbloat), cáp hoặc cổng bị lỗi, hoặc mạng của nhà mạng; kiểu mất gói trong bài kiểm tra cho bạn biết là nguyên nhân nào.

Chỉ mất gói khi tải xuống hoặc tải lên cho thấy bufferbloat: hãy bật SQM. Mất gói ngẫu nhiên khi không tải trên Wi-Fi cho thấy nhiễu sóng hoặc khoảng cách: hãy kiểm tra lại bằng dây cáp. Mất gói cả khi dùng cáp có thể do cáp hỏng, cổng kém hoặc firmware router cũ. Nếu cuộc gọi thử nghiệm cho thấy mất gói ở phía tải xuống khi dùng cáp và đã bật SQM, vấn đề thường nằm ngoài router của bạn: hãy gửi cho nhà mạng liên kết chia sẻ và tệp CSV của bài kiểm tra.

Chọn kiểu bạn thấy

Chỉ mất gói khi tải xuống hoặc tải lên

Nguyên nhân có thể

Bufferbloat: hàng đợi của router hoặc modem bị tràn

Cách khắc phục

Bật SQM (CAKE hoặc FQ-CoDel) ở khoảng 90% tốc độ của bạn

Mất lẻ tẻ ngẫu nhiên, chỉ trên Wi-Fi

Nguyên nhân có thể

Nhiễu sóng, khoảng cách hoặc tín hiệu yếu

Cách khắc phục

Lại gần hơn, chuyển sang băng tần 5 GHz hoặc dùng dây cáp

Mất gói cả khi dùng cáp, kể cả khi không tải

Nguyên nhân có thể

Cáp hoặc cổng bị lỗi, firmware cũ

Cách khắc phục

Đổi cáp và cổng, cập nhật router

Mất gói ở phía tải xuống, dùng cáp và đã bật SQM

Nguyên nhân có thể

Mạng của nhà mạng

Cách khắc phục

Gửi liên kết chia sẻ và tệp CSV cho nhà mạng

Kiểm tra mất gói, kiểm tra ping và đo tốc độ mạng khác nhau thế nào?

Bài đo tốc độ mạng (speed test) đo lượng dữ liệu đường truyền của bạn chuyển được, kiểm tra ping đo thời gian một lần khứ hồi, còn kiểm tra mất gói đo mức độ tin cậy khi các gói nhỏ tới nơi: ba câu hỏi khác nhau.

Dùng kiểm tra ping để xem độ trễ của bạn tới các nơi trên thế giới, dùng bài kiểm tra mất gói này khi cuộc gọi bị ngắt quãng hoặc game bị giật, và dùng bài đo tốc độ mạng khi tải xuống chậm.

So sánhKiểm tra mất góiKiểm tra pingĐo tốc độ mạng
Đo gìGói bị mất, trễ và sai thứ tự, jitter, độ trễ khi có tảiThời gian khứ hồi tới một máy chủ hoặc khu vựcThông lượng tải xuống và tải lên
Giao thứcUDP (không gửi lại)ICMP, TCP hoặc HTTPSTCP (gửi lại nên che mất gói)
Trả lời câu hỏiVì sao cuộc gọi bị ngắt và game bị giậtMáy chủ có vẻ xa đến đâuVì sao tải xuống chậm

Kiểm tra mất gói: câu hỏi thường gặp

Tỷ lệ mất gói bao nhiêu là tốt để chơi game?

Càng gần 0% càng tốt. Điểm gaming của Cloudflare cho điểm tối đa khi mất dưới 1% và một nửa số điểm khi mất từ 1% đến 5%. Các nhà phát triển game không công bố ngưỡng mất gói nào, nhưng ở 64 hoặc 128 lần cập nhật mỗi giây, ngay cả một chùm ngắn cũng có nghĩa là một phát bắn trượt hoặc nhân vật bị giật lùi, nên hãy xem cả các chùm trên dải lẫn tỷ lệ phần trăm.

Mất gói 1% có tệ không?

Với cuộc gọi video, đó là đúng ngưỡng của Microsoft: Teams đặt mục tiêu mất dưới 1% trong mọi khoảng 15 giây. Zoom khuyến nghị 2% trở xuống. Với game, 1% là thấy rõ, nhất là khi mất theo chùm. Với tải xuống và trang web thì gần như không ảnh hưởng, vì TCP gửi lại các gói bị mất.

Vì sao bài kiểm tra này báo mất gói trong khi đo tốc độ mạng vẫn ổn?

Bài đo tốc độ mạng chạy qua TCP, giao thức gửi lại mọi gói bị mất, nên mất gói chỉ làm lượt tải xuống chậm đi một chút. Bài kiểm tra này gửi các gói không bao giờ được gửi lại, giống game hay cuộc gọi, nên mọi gói bị mất đều được đếm. Một đường truyền có thể đạt tốc độ tối đa mà vẫn mất gói theo chùm, nhất là khi đang bận.

Vì sao tôi chỉ mất gói khi đang tải xuống?

Đó là dấu hiệu kinh điển của bufferbloat: router hoặc modem giữ quá nhiều dữ liệu trong hàng đợi, và khi hàng đợi tràn, nó loại bỏ gói theo chùm. Bài kiểm tra khi có tải thể hiện điều này bằng mất gói và độ trễ tăng trong phần tải xuống hoặc tải lên. Quản lý hàng đợi thông minh (CAKE hoặc FQ-CoDel) trên router thường khắc phục được cả hai.

Mất gói là do phía tôi hay do nhà mạng?

Hãy tách vấn đề qua ba bước. Cuộc gọi thử nghiệm cho biết gói bị mất ở chiều lên hay chiều xuống. Kiểm tra bằng dây cáp thay vì Wi-Fi cho biết Wi-Fi có phải nguyên nhân không. Kiểm tra có và không có tải cho biết có phải bufferbloat không. Mất gói vẫn ở phía tải xuống khi dùng cáp, lúc không tải, thường là do nhà mạng.

Làm sao một bài kiểm tra trên trình duyệt phân biệt được mất gói tải lên và tải xuống?

Gói đi lên rồi quay xuống không thể cho biết chúng bị mất ở đâu, nên bài kiểm tra còn thực hiện một cuộc gọi thoại ngắn, im lặng tới máy chủ cuộc gọi của Cloudflare. Cloudflare báo cho trình duyệt của bạn họ đã nhận được bao nhiêu gói của bạn, từ đó ra mất gói tải lên; phần thiếu trên đường quay về là mất gói tải xuống.

Nên chạy kiểm tra mất gói trong bao lâu?

Chạy bài kiểm tra 15 giây để kiểm tra nhanh, và bài 3 phút khi sự cố lúc có lúc không. Không mất gói nào trong một lần chạy ngắn không chứng minh là không có mất gói: với 750 gói và không gói nào bị mất, tỷ lệ mất gói vẫn có thể ở đâu đó dưới 0,4%, và trang hiển thị khoảng đó thay vì 0%.

VPN có ảnh hưởng đến bài kiểm tra mất gói không?

Có. Khi bật VPN, các gói đi qua máy chủ VPN trước, nên kết quả thể hiện đường đi qua VPN chứ không phải riêng đường truyền của bạn. Hãy tắt VPN để kiểm tra kết nối của bạn, rồi bật lên để xem VPN thêm vào bao nhiêu.

Bài kiểm tra dùng hết bao nhiêu dữ liệu?

Bản thân luồng gói tin rất nhỏ: bài kiểm tra 1 phút chỉ truyền tối đa vài megabyte, kể cả ở 128 gói mỗi giây. Các phần khi có tải tải xuống và tải lên nhanh nhất mà đường truyền cho phép, mỗi phần tối đa một phần ba thời gian bài kiểm tra, giới hạn ở 250 MB tải xuống và 100 MB tải lên, nên với kết nối tính phí theo dung lượng hoặc mạng di động, hãy tắt tùy chọn khi có tải.

Có lưu lại gì không?

Không. Bài kiểm tra chạy giữa trình duyệt của bạn và trung tâm dữ liệu gần nhất của Cloudflare, nơi relay các gói đã mã hóa mà không đọc chúng. Các lần chạy trước chỉ nằm trong trình duyệt này. Liên kết chia sẻ chứa kết quả, không bao giờ chứa địa chỉ IP của bạn, và được ký: liên kết bị thay đổi sau khi tạo sẽ hiện là đã chỉnh sửa.