
Mục lục bài viết 9 phần
Hai đường truyền cùng mất 1% packet có thể tạo trải nghiệm hoàn toàn khác: loss rải đều thường được cơ chế retransmission hấp thụ, còn nhiều packet mất liên tiếp có thể làm rỗng jitter buffer, kích hoạt timeout hoặc khiến congestion control giảm mạnh. Mô hình Gilbert–Elliott giúp biến “loss theo cụm” thành tham số có thể lặp lại và kiểm chứng.
Bài viết giúp bạn
- Vì sao loss trung bình dễ gây kết luận sai?
- Mô hình Gilbert–Elliott và các tham số
- Topology và nguồn dữ liệu tham chiếu
Vì sao loss trung bình dễ gây kết luận sai?
#RFC 2680 định nghĩa metric one-way packet loss ở mức từng packet; tỷ lệ loss trên một cửa sổ chỉ là phép tổng hợp. Phép tổng hợp đó không giữ lại thứ tự mất packet. Một chuỗi mất 10 packet liên tiếp và 10 packet mất rải rác có thể cho cùng tỷ lệ nhưng tác động tới codec, retransmission và timeout khác nhau.
Random independent loss giả định mỗi packet có xác suất mất không phụ thuộc packet trước. Mạng thật thường có tương quan do queue overflow, radio fade, handover, congestion episode hoặc lỗi vật lý. Khi trạng thái xấu kéo dài, xác suất packet tiếp theo tiếp tục mất cao hơn. Vì vậy bài lab chỉ cấu hình “1% random loss” có thể đánh giá quá lạc quan.
Câu hỏi đúng không phải “ứng dụng chịu được bao nhiêu phần trăm loss”, mà là: với loss rate, burst length, RTT, bandwidth và traffic profile cụ thể, KPI nào suy giảm; cơ chế recovery khởi động khi nào; và bao lâu sau khi mạng trở lại trạng thái tốt thì dịch vụ phục hồi.
Mô hình Gilbert–Elliott và các tham số
#Mô hình cơ bản có hai trạng thái: Good và Bad. Xác suất chuyển từ Good sang Bad quyết định tần suất xuất hiện episode; xác suất từ Bad về Good quyết định độ dài burst. Mỗi trạng thái có xác suất mất packet riêng. Phiên bản đơn giản có Good gần như không mất và Bad mất phần lớn; phiên bản mở rộng cho phép cả hai trạng thái có loss.
Không nên chỉ lưu “average loss”. Cần lưu transition probabilities, loss probability trong từng trạng thái, seed ngẫu nhiên, đơn vị kích hoạt theo packet hay thời gian và hướng áp dụng. Cùng tham số nhưng khác seed có thể tạo chuỗi khác; cùng seed nhưng khác packet rate có thể tạo độ dài theo thời gian khác nếu emulator chuyển trạng thái theo packet.
Tham số · Ý nghĩa vận hành · Bằng chứng cần lưu P(G→B) · Tần suất vào trạng thái xấu · Cấu hình/seed P(B→G) · Khả năng thoát trạng thái xấu · Cấu hình/seed Loss ở Good · Nền loss khi mạng ổn định · Cấu hình + capture Loss ở Bad · Mức mất trong episode · Cấu hình + sequence gap Mean burst length · Số packet mất liên tiếp trung bình · Phân bố từ capture Seed · Khả năng tái lập chuỗi · Artifact của lần chạy
Đừng đồng nhất Gilbert–Elliott với “bản sao hoàn hảo” của mạng production. Đây là mô hình gọn để tạo tương quan. Nếu trace có nhiều trạng thái, periodic outage hoặc dependency theo thời gian, cần mô hình khác hoặc replay trace.
Topology và nguồn dữ liệu tham chiếu
#Topology gồm client/load generator, network emulator, DUT/path và server. Đặt capture trước và sau emulator để xác nhận impairment thực tế; dùng sequence number trong payload hoặc giao thức để phân biệt loss do emulator với loss ở endpoint. Với traffic hai chiều, cấu hình và đo từng hướng riêng vì ACK path và data path có thể khác nhau.
Tạo ba baseline: không impairment; random loss với cùng average; Gilbert–Elliott với cùng average nhưng burst khác. Giữ nguyên RTT, bandwidth, queue và traffic profile giữa ba lượt. Sự khác biệt KPI khi đó mới có thể gắn với phân bố loss thay vì biến phụ.
Nếu lấy trace từ production, thu đủ lâu để bao phủ thời kỳ bình thường và incident; ghi interface, direction, clock quality, sampling và packet-capture loss. Trace quan sát bị mất packet tại sensor không được mặc nhiên coi là network loss.

Biến số phải kiểm soát
#Biến mạng gồm base latency, jitter, bandwidth, queue depth, reorder, duplicate và corruption. Chỉ bật burst loss trong vòng đầu; các impairment khác được thêm ở vòng riêng. Loss cộng với bandwidth cap có thể tạo queueing và secondary loss, làm khó xác định nguồn.
Biến traffic gồm packet size, packet rate, số flow, flow length, transport, FEC, retry, codec và bitrate adaptation. Burst dài 20 packet tương ứng thời gian rất khác ở 100 pps và 100.000 pps. Báo cáo phải nêu cả burst theo packet và theo thời gian.
Biến endpoint gồm TCP/QUIC implementation, RTO/PTO, congestion control, receive buffer, application timeout, jitter buffer và retry budget. Khóa OS, library, browser/client version và cấu hình. Một pass với TCP CUBIC không chứng minh QUIC hoặc BBR sẽ có response giống nhau.
KPI và ma trận ứng dụng
#KPI mạng gồm realized loss rate, burst length distribution, gap length, loss episode duration và inter-loss distance. KPI transport gồm retransmission, duplicate ACK, RTO/PTO, congestion window, goodput và recovery time. KPI ứng dụng phải đo transaction success, tail latency, stall/rebuffer, audio gap hoặc frame decode failure.
Workload · KPI ưu tiên · Signature burst loss cần quan sát TCP download · Goodput, RTO, completion time · Timeout/cwnd collapse QUIC/HTTP/3 · PTO, stream latency, goodput · Recovery theo packet number space Voice RTP · Gap, concealment, MOS proxy · Jitter buffer rỗng Video adaptive · Rebuffer, bitrate switch · Segment miss liên tiếp API request · p95/p99, timeout, retry · Retry đồng bộ và amplification Telemetry UDP · Sequence gap, freshness · Mất cụm làm mù cửa sổ
Không dùng MOS ước tính hoặc “quality score” mà thiếu codec, packetization, concealment và mô hình tính. Khi công cụ cung cấp score tổng hợp, vẫn lưu loss episode và media KPI gốc.
Từ trace production tới impairment profile
#Bước đầu tách chuỗi packet theo flow/direction và xác định packet được kỳ vọng. Từ chuỗi nhận/mất, tính run length của loss và success, average loss, phân vị burst, thời gian episode và khoảng giữa các episode. Loại bỏ khoảng không có traffic; absence of packet không đồng nghĩa loss nếu sender không phát.
Ước lượng transition probabilities từ số lần chuyển trạng thái rồi tạo nhiều profile: median day, bad-but-common và incident percentile. Không fit một profile duy nhất cho mọi đường truyền. Giữ trace gốc, script/công thức, timestamp và assumption để audit.
Sau khi cấu hình emulator, phát traffic đánh số thứ tự và capture output. So realized distribution với target, không chỉ nhìn GUI. Nếu burst length hoặc state duration lệch, xác định emulator chuyển trạng thái theo packet hay time và hiệu chỉnh.

Test plan và checklist thực hành
#Pha A chạy baseline sạch. Pha B chạy independent random loss. Pha C chạy Gilbert–Elliott với average tương đương. Pha D tăng mean burst length nhưng giữ average gần nhau. Pha E thêm RTT/bandwidth theo ma trận. Mỗi profile chạy nhiều seed và đủ thời gian để có số episode đại diện.
Pass/fail nên nêu cả service KPI và fidelity của impairment. Nếu target burst không được tái tạo, kết quả ứng dụng không hợp lệ dù transaction pass. Điều kiện dừng cần bảo vệ lab khi retry storm hoặc queue tăng không kiểm soát.
- Khóa topology, MTU, latency, bandwidth và queue.
- Chọn traffic profile, packet rate, concurrency và duration.
- Gắn sequence/test ID; capture hai phía emulator.
- Lưu đầy đủ tham số Good/Bad và seed.
- Xác minh realized loss, burst và gap distribution.
- Thu metric transport và ứng dụng trên cùng timeline.
- Chạy ít nhất một control random-loss cùng average.
- Lặp nhiều seed; báo median và tail, không chọn lần đẹp.
- Thử recovery sau khi impairment tắt.
- Xuất cấu hình, pcap, raw metric, công thức và verdict.
Đọc kết quả và giới hạn kết luận
#Nếu random loss pass nhưng burst loss fail, nguyên nhân thường nằm ở timeout, buffer/FEC hoặc recovery cần packet liên tục. Nếu realized burst dài hơn target, kiểm tra packet-rate dependency và secondary loss. Nếu capture trước/sau không khớp nhưng GUI báo đúng, ưu tiên raw packet evidence.
Kết quả chỉ áp dụng cho model, seed set, packet rate, RTT, bandwidth, transport và application version đã thử. Mô hình hai trạng thái không mô tả mọi wireless fade, route flap hoặc outage định kỳ. Không suy rộng average loss tolerance thành SLA chung.
Khái niệm cần nhớ
#- Burst loss: Nhiều packet mất liên tiếp hoặc có tương quan theo thời gian.
- Good/Bad state: Hai trạng thái chất lượng trong mô hình Gilbert–Elliott.
- Transition probability: Xác suất chuyển từ trạng thái này sang trạng thái kia.
- Mean burst length: Độ dài trung bình của chuỗi loss liên tiếp.
- Seed: Giá trị khởi tạo chuỗi ngẫu nhiên để tái lập bài đo.
- Goodput: Payload hữu ích hoàn tất trên đơn vị thời gian.
- RTO/PTO: Timer phục hồi của TCP và QUIC.
Khái niệm cần nhớ
- DUT / SUT
- Thiết bị hoặc toàn bộ hệ thống đang là đối tượng của bài kiểm thử.
- Steady state
- Giai đoạn tải đã ổn định và đủ điều kiện để lấy số liệu đại diện.
- Pass / fail
- Kết luận dựa trên ngưỡng đã thống nhất, luôn đi cùng topology, cấu hình và điều kiện đo.
TÀI LIỆU ĐỐI CHIẾUTài liệu tham khảo3 nguồn +
Nội dung được biên soạn độc lập, theo hướng vendor-neutral và đối chiếu các tài liệu gốc dưới đây. Tính năng sản phẩm cần được kiểm tra lại theo phiên bản đang sử dụng.
NetVali ưu tiên nguồn tiêu chuẩn và tài liệu chính thức; phân biệt khuyến nghị triển khai với yêu cầu của tiêu chuẩn; không công bố thông số sản phẩm chưa gắn với phiên bản và điều kiện đo.
