การแก้ไข bufferbloat ในเครือข่ายในบ้าน


9

ในเครือข่ายในบ้านของเราที่มีเครือข่ายต่อเนื่อง IO เกิดความล่าช้าเกิดขึ้นอย่างไร้สาระ มันใช้ได้ดีกับการโหลดที่เบา แต่ใช้ไม่ได้อย่างรวดเร็วถ้าฉันบอกว่าการถ่ายโอนไฟล์ขนาดเล็กจำนวนมาก - การถ่ายโอนอื่น ๆ ก็หยุด ส่ง Ping ผ่านเข้ามาแทบจะไม่

Simple topology - โมเด็มบรอดแบนด์ / เราเตอร์ไร้สายในกล่องเดียวพร้อมไวร์เลสและไคลเอนต์แบบมีสายบางตัว

ฉันลองตั้งค่าifconfig wlan0/eth0 txqueuelen 1กับลูกค้าทุกรายดูเหมือนว่าจะช่วยได้บ้าง แต่ก็ไม่มาก

เคล็ดลับยินดีต้อนรับ: ฉันจะไปเกี่ยวกับการวินิจฉัยและขจัดปัญหาความล่าช้าได้อย่างไร มีการตั้งค่าเพิ่มเติมที่ฉันสามารถตั้งค่าบนไคลเอนต์หรือเราเตอร์ไร้สายที่ดีขึ้นอาจช่วย

คำตอบ:


3

สิ่งที่คุณต้องการคือคุณภาพการบริการและอัลกอริทึมการจัดคิวที่ปรับแต่งได้ ฉันอยากจะแนะนำการติดตั้งแบบนี้ถ้าคุณมีความสุขกับการเล่นกับ internals ของ Linux / FreeBSD และมีเงินสดสำรอง:

+------+     +--------+      +------+<----> Wireless Access Point
|Router|<--->|Firewall|<---->|Switch|
+------+     +--------+      +------+<----> Wired computers

ตำแหน่งที่ไฟร์วอลล์เป็น Linux หรือ FreeBSD หรือเครื่องที่คล้ายกันซึ่งมีการ์ดเครือข่าย 2 ตัวซึ่งสามารถกำหนดกฎขั้นสูงในการจัดคิวและกฎการให้บริการบนการรับส่งข้อมูล

ฉันต้องทำสิ่งที่คล้ายกันเพื่อหยุดการค้นหา DNS หมดเวลาเมื่อทำการถ่ายโอนข้อมูลจำนวนมากผ่านการเชื่อมต่ออินเทอร์เน็ตที่ช้าลง

ตัวเลือกอื่นคือการได้รับเราเตอร์ที่ดีกว่า - ตัวเลือกที่คุณสามารถติดตั้ง dd-wrt หรือ open-wrt เพราะฉันเชื่อว่าเฟิร์มแวร์ทั้งสองนี้ให้วิธีการ QoS และอื่น ๆ ที่ดีกว่าเราเตอร์บ้านมาตรฐาน


2

ฉันลองตั้งค่าให้ifconfig wlan0/eth0 txqueuelen 1กับลูกค้าทั้งหมด ...

คำสั่งนั้นจะลดขนาดบัฟเฟอร์ลงเหลือ 1 แพ็คเก็ตบนเครื่องนั้น เครื่องที่สำคัญในการรันคำสั่งนี้คือคอขวดสำหรับเครือข่ายของคุณ - นั่นคือเครื่องที่มีการเชื่อมต่อกิกะบิตที่ด้านหนึ่งและการเชื่อมต่อกับอินเทอร์เน็ตที่ช้ากว่ามาก ดังนั้นเราเตอร์ที่คุณต้องการเรียกใช้คำสั่งนั้นไม่ใช่ไคลเอ็นต์!
ให้แน่ใจว่าคุณเรียกใช้คำสั่งบนอินเตอร์เฟซที่เหมาะสม(เพียงอินเตอร์เฟซระบบ LAN ขาออก)

แน่นอนว่ามันจะใช้งานได้ก็ต่อเมื่อเราเตอร์ของคุณรัน Linux และอนุญาตให้คุณรันคำสั่ง โชคดีที่เฟิร์มแวร์ที่กำหนดเองส่วนใหญ่สำหรับเราเตอร์ที่บ้าน (DD-WRT, OpenWRT, Tomato) ทำ


ควรสังเกตว่าการลดขนาดบัฟเฟอร์เช่นนี้สามารถเพิ่ม QoS ได้ดังนั้นหากคุณใช้ QoS กับเราเตอร์ของคุณคุณอาจดีกว่าที่จะทิ้งขนาดบัฟเฟอร์เพียงอย่างเดียวและใช้ QoS เพื่อ จำกัด ความเร็วในการอัพโหลด / ดาวน์โหลด ของลูกค้าทุกรายจะต่ำกว่าการอัพโหลด / ดาวน์โหลดสูงสุดของการเชื่อมต่ออย่างมีนัยสำคัญถึงแม้ว่านี่จะมีข้อเสียที่ชัดเจนว่ามีแบนด์วิดท์ที่ไม่ได้ใช้งานเมื่อเชื่อมต่อกับบุคคลเพียงคนเดียว


1

QoS หรือ Quality of Service คือการสั่งซื้อและตั้งค่าลำดับความสำคัญของแพ็กเก็ตที่จะถูกประมวลผลโดยเราเตอร์ ... นี่คือสิ่งที่ควรใส่ใจเมื่อคุณประสบปัญหาดังกล่าว ... ลองค้นหาในแผงกำหนดค่าเราเตอร์ของคุณและเปิดใช้งาน QoS ... ควรใช้การตั้งค่าด้วยตนเองในกรณีของคุณ แต่คุณควรทราบลำดับความสำคัญของแพ็กเก็ตที่คุณต้องการจะประมวลผลเป็นลำดับแรก


0

ฉันกำลังใช้ Windows และ Mac แทน Linux แต่วิธีแก้ปัญหาสำหรับฉันคือเปลี่ยนจากเราเตอร์ Netgear เพียงแค่ดาวน์สตรีมของกล่อง ISPs เป็นเราเตอร์ Edge และตั้งค่าการกำหนดเส้นทางอัจฉริยะ (ซึ่งมาจาก Linux)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.