netem และ Network Link Conditioner บน Windows
บน Linux มี tc netem และบน Mac มี Network Link Conditioner ส่วน Windows ไม่มีเครื่องมือในตัวที่เพิ่มความหน่วงและการสูญหายของแพ็กเก็ต หน้านี้จับคู่สิ่งที่คุณรู้อยู่แล้วเข้ากับ Bean Network Tester และชี้ว่าตัวเลขใดโอนมาใช้ตรง ๆ ไม่ได้
ตัวเลือกของ netem ทีละตัว
เติม --target และ --duration ในทุกคำสั่งที่นี่ มิฉะนั้นคำสั่งจะมีผลกับทั้งคอมพิวเตอร์
| netem | การตั้งค่าในหน้าต่าง | แฟลก |
|---|---|---|
delay 100ms | Latency | --latency 100 |
delay 100ms 20ms | Latency, Jitter | --latency 100 --jitter 20 |
loss 5% | Loss | --loss 5 |
loss 5% 25% | Loss, Losses in a row (burst) | --loss 5 --loss-burst 4 |
duplicate 1% | Duplication | --dup 1 |
corrupt 0.1% | Corruption | --corrupt 0.1 |
reorder 25% | Spike chance, Spike size | --spike-prob 5 --spike-ms 200 |
rate 1mbit | Download, Upload | --down 122 --up 122 |
limit 1000 | Buffer | --buffer 1000 |
- การสูญหายเป็นชุด ค่า correlation ใน netem ไม่ใช่ความยาวของชุด Losses in a row (burst) คือจำนวนแพ็กเก็ตที่หายติดกันโดยเฉลี่ย ซึ่งเป็นสิ่งที่ใกล้เคียงที่สุด
- การสลับลำดับ ไม่มีค่าเปอร์เซ็นต์การสลับลำดับ สไปก์จะหน่วงแพ็กเก็ตเดียวให้แพ็กเก็ตที่ส่งทีหลังแซงไป และตัวนับแพ็กเก็ตที่ถูกสลับลำดับในหน้า Statistics จะบอกว่าเกิดขึ้นจริงหรือไม่
- ขนาดคิว limit ของ netem นับเป็นแพ็กเก็ต ส่วน Buffer เป็นเวลาในหน่วยมิลลิวินาที
สามความต่างที่ควรรู้
ทิศทาง netem หน่วงสิ่งที่ออกจากอินเทอร์เฟซ และคำตอบกลับมาโดยไม่ถูกแตะต้อง เครื่องมือนี้จับทั้งสองทิศทาง ดังนั้น --latency 100 จึงเพิ่มค่า ping ราว 200 ms คือ 100 ขาไปและ 100 ขากลับ หากต้องการให้ได้อย่างที่ netem ทำ ให้จับเฉพาะทราฟฟิกขาออก:
BeanNetworkTester.exe --filter out --latency 100 --jitter 20 --target myapp.exe --duration 120
หน่วย อัตราของ netem เป็นบิตต่อวินาที ส่วนช่องจำกัดความเร็วเป็น KB/s โดย K = 1024 การแปลงจากเมกะบิต:
| อัตราของ netem | ช่องจำกัดความเร็ว หน่วย KB/s |
|---|---|
1mbit | 122 |
5mbit | 610 |
10mbit | 1221 |
50mbit | 6104 |
100mbit | 12207 |
ขอบเขต tc ปรับรูปทั้งอินเทอร์เฟซเครือข่ายและต้องใช้ root เครื่องมือนี้เล็งโปรแกรมเดียวด้วย --target และต้องใช้สิทธิ์ผู้ดูแลระบบ
ถ้าคุณรู้จัก Network Link Conditioner
เครื่องมือของ Apple ทำงานด้วยโปรไฟล์ที่มีชื่อ ตัวที่ใกล้เคียงที่สุดที่นี่:
| Network Link Conditioner | ที่ใกล้เคียงที่สุดที่นี่ |
|---|---|
| 100% Loss | ตั้งLossเป็น 100 |
| 3G | 3G network |
| DSL | Home DSL (VDSL) |
| LTE | LTE / 4G |
| WiFi | Good WiFi |
| Very Bad Network | Terrible network |
| Edge | ไม่มีโปรไฟล์ที่ตรงกัน ให้พิมพ์ขีดจำกัดความเร็วและความหน่วงเอง แล้วเก็บเป็นโปรไฟล์ของคุณด้วยปุ่ม Save... |
ตัวเลขไม่ใช่ของ Apple จึงควรถือโปรไฟล์เป็นจุดเริ่มต้น ทุกค่าที่โปรไฟล์ตั้งไว้มีอยู่ในหน้าอ้างอิง
สิ่งที่คุณได้บน Windows
- โปรแกรมเดียว ไม่ใช่ทั้งคอมพิวเตอร์ เล็งการรบกวนไปที่แอปเดียว ขณะที่ส่วนอื่นของเครื่องยังปกติ
- ไทม์ไลน์แทนสคริปต์เชลล์ สถานการณ์ตามเวลาเปลี่ยนการตั้งค่าในวินาทีที่กำหนด เหมือนที่สคริปต์
tcกับsleepทำบน Linux - ไปป์ไลน์รันได้ ไฟล์ปฏิบัติการเดียวกันรันใน CI และรายงานผลด้วยรหัสออก
บน Linux หรือ macOS ให้ใช้ของต้นฉบับ เครื่องมือนี้ทำงานบน Windows เท่านั้น