จำกัดความเร็วดาวน์โหลดและอัปโหลด
จำกัดแอปเดียวให้ได้กิโลไบต์ต่อวินาทีตามที่ตั้งไว้ แล้วมันจะไม่ได้เกินนั้น ทั้งสองทิศทางแยกจากกัน คุณจึงให้ดาวน์โหลดเร็วแต่อัปโหลดแย่แบบสิ้นหวังได้ ซึ่งเป็นหน้าตาของการเชื่อมต่อตามบ้านและมือถือส่วนใหญ่
ในหน้าต่าง
- ตั้ง Process เป็นแอปของคุณ
- กรอก Download หรือ Upload หรือทั้งสองช่อง เป็นหน่วย KB/s ปล่อยช่องไว้ที่ 0 เพื่อไม่แตะทิศทางนั้น
- กดปุ่ม START
BeanNetworkTester.exe --down 128 --up 32 --target myapp.exe --duration 120
ตัวเลขหมายถึงอะไร
| KB/s | ประมาณ | คืออะไร |
|---|---|---|
| 6 | 56 kbit/s | โมเด็มแบบหมุนโทรศัพท์ โปรไฟล์ “56k modem” |
| 128 | 1 Mbit/s | Wi-Fi บนเครื่องบิน โรงแรมที่แออัด สัญญาณมือถืออ่อน |
| 1024 | 8 Mbit/s | สายอินเทอร์เน็ตบ้านระดับพื้นฐาน พอสำหรับสตรีมวิดีโอหนึ่งสตรีม |
| 12800 | 100 Mbit/s | การเชื่อมต่อแบบประจำที่ทั่วไปในปัจจุบัน |
เป็นกิโลไบต์ ไม่ใช่กิโลบิต จึงต้องคูณแปดเพื่อเทียบกับตัวเลขที่ผู้ให้บริการอินเทอร์เน็ตโฆษณา การจำกัดทั้งสองทิศทางพร้อมกันคือสิ่งที่ทำให้การเชื่อมต่อรู้สึกเหมือนฮอตสปอตแย่ ๆ ไม่ใช่แค่ดาวน์โหลดช้า
คิวสำคัญพอ ๆ กับขีดจำกัด
ขีดจำกัดความเร็วต้องมีที่ให้พักแพ็กเก็ตที่ยังผ่านไม่ได้ นั่นคือการตั้งค่า Buffer เป็นมิลลิวินาที และมันทำงานเหมือนคิวที่แคชเชียร์:
- คิวสั้น หมายถึงแพ็กเก็ตถูกทิ้งทันทีที่สายเต็ม แอปจะเห็นการสูญหายและตอบสนองเร็ว
- คิวยาว หมายถึงไม่มีอะไรถูกทิ้ง แต่ทุกอย่างต้องรอ แอปจะเห็นการเชื่อมต่อช้าลงเรื่อย ๆ แทนที่จะล้มเหลว ซึ่งเป็นผลของสายบ้านที่คับคั่ง และเป็นเหตุผลที่วิดีโอคอลแย่ลงขณะที่การดาวน์โหลดยังเดินต่อ
โปรไฟล์ “Congested home link (bufferbloat)” คือสิ่งนี้เอง คือขีดจำกัดที่มีคิวยาว ลองใช้ความเร็วเดียวกันกับคิวสั้นและคิวยาว แล้วดูว่าแอปทำงานต่างกันแค่ไหน
สิ่งที่ควรรู้ไว้ก่อน
เมื่อขีดจำกัดทำงาน ตัวนับแพ็กเก็ตที่ถูกทิ้งอาจค้างอยู่ที่ศูนย์ ไม่ใช่บั๊ก เพราะขีดจำกัดจะทำให้แพ็กเก็ตรอก่อน และทิ้งก็ต่อเมื่อคิวเต็มจริง ๆ ให้บัฟเฟอร์เล็กลงแล้วการทิ้งจะปรากฏ