Thêm độ trễ và jitter cho một ứng dụng
Mọi thứ đều chạy tốt trên kết nối cục bộ nhanh. Cho ứng dụng 300 ms ping và bạn sẽ biết màn hình nào được viết như thể câu trả lời đến ngay lập tức.
Ba thứ khác nhau
| Thiết lập | Nó làm gì | Nó đến từ đâu ngoài đời thật |
|---|---|---|
| Latency | Thêm cùng một độ trễ cho mọi gói tin, tính bằng mili giây. | Khoảng cách. Một máy chủ ở lục địa khác, hoặc một vệ tinh. |
| Jitter | Thêm một lượng ngẫu nhiên lên trên, nên độ trễ cứ thay đổi. | Wifi dùng chung, mạng di động, mọi thứ bị nghẽn. |
| Cú giật | Những lần khựng dài thỉnh thoảng, đặt theo tần suất và độ dài. | Chuyển giao giữa các trạm phát sóng, một bộ định tuyến đang quá tải. |
Cả ba đều tính bằng mili giây và có thể chạy cùng nhau. Cả hai số liệu độ trễ nhận mọi giá trị từ 0 trở lên, nên bạn có thể đi từ 40 ms hợp lý đến 60 giây vô lý.
Từ dòng lệnh
Độ trễ đều 200 ms kèm 80 ms jitter, trên một ứng dụng:
BeanNetworkTester.exe --latency 200 --jitter 80 --target myapp.exe --duration 60
Thay vào đó là những lần khựng dài hiếm hoi: cứ khoảng hai mươi gói thì một gói chờ thêm một giây:
BeanNetworkTester.exe --spike-prob 5 --spike-ms 1000 --target myapp.exe
Những con số đáng thử
- 40 ms: máy chủ cùng quốc gia. Không có gì nên thay đổi.
- 150 ms: lục địa khác. Mọi thứ nói chuyện nhiều bắt đầu thấy chậm, vì mỗi vòng đi về đều tốn thời gian.
- 600 ms trở lên: vệ tinh địa tĩnh hoặc wifi trên máy bay. Đây là lúc thanh tiến trình khựng lại và logic thử lại cuối cùng cũng chạy.
Các cấu hình mẫu có sẵn mang số liệu đã đo: “Distant server (another continent)”, “Satellite (low orbit)”, “Satellite (geostationary)”, “In-flight Wi-Fi”, “LTE / 4G”.
Đo lường: hãy nhìn trường hợp xấu nhất, không phải trung bình
Jitter hầu như không làm nhúc nhích giá trị trung bình, và cũng hầu như không làm nhúc nhích trung vị. Một lần chạy có 30 ms jitter và một lần không có có thể báo ping “điển hình” gần như nhau trong khi cảm giác hoàn toàn khác.
Hãy so phân vị 95 với trung vị. Khoảng cách giữa chúng chính là jitter, và khoảng cách đó làm cuộc gọi thoại bị đứt quãng hay game không chơi nổi trong khi giá trị trung bình vẫn trông ổn.