การเชื่อมต่อแบบ TCP เป็นพื้นฐานสำคัญของโครงสร้างอินเทอร์เน็ตทุกวันนี้ นอกจากมันจะรับประกันว่าข้อมูลจะไม่สูญหายระหว่างทางแล้ว ยังมีระบบควบคุมแบนวิดท์เพื่อไม่ให้คอมพิวเตอร์ส่งข้อมูลหากันเร็วเกินไป ระบบดั้งเดิม เช่น TCP Slow Start มักอาศัยสัญญาณว่าแบนด์วิดท์เต็มจากการข้อมูลสูญหายระหว่างทาง จากนั้นระบบควบคุมจะลดความเร็วลงแล้วค่อยๆ เพิ่มกลับขึ้นไป แนวคิดเช่นนี้ทำให้มีแบนวิดท์ที่ไม่ได้ใช้งานเพราะการคาดเดาแบนด์วิดท์ของ TCP ไม่แม่นยำ ทำให้ความเร็วรวมต่ำกว่าความเป็นจริง ตอนนี้กูเกิลก็เลือกเปลี่ยนกระบวนการมาเป็น TCP BBR (Bottleneck Bandwidth and Round-trip propagation time) ที่คำนวณแบนวิดท์อย่างแม่นยำกว่า
TCP BBR อาศัยค่าเวลาหน่วง (latency) ของแพ็กเก็ตไปกลับ (round trip time - RTT) ควบคู่กับการหาค่าแบนวิดท์สูงสุด จากนั้นพยายามเติมข้อมูลให้เต็มแบนวิดท์
ตอนนี้กูเกิลใช้ TCP BBR กับบริการของตัวเองเช่น YouTube ขณะที่ Google Cloud ก็ใช้งานในหลายบริการ เช่นบริการภายในคลาวด์อย่าง BigTable, Cloud Spanner, Cloud Storage หรือบริการที่เชื่อมต่อผู้ใช้ภายนอกอย่าง Cloud Load Balancing, และ Cloud CDN
โค้ดของ TCP BBR ถูกส่งเข้าลินุกซ์แล้ว ตัวมาตรฐานกำลังเป็น ร่างมาตรฐานของ IETF
ที่มา - Google Cloud Platform
Comments
"มักสัญญาณว่าแบนด์วิดท์เต็มจากการข้อมูลสูญหายระหว่างทาง"มักสัญญาณ?
ตอนแรกคงเป็น บ.ใหญ่ กะ บ.อินเทอร์เน็ต ใช้ก่อน
ส่วนตามบ้านข้อมูลวิ่งไม่เยอะ คงไม่จำเป็นมาก
กว่าจะมีในเราเตอร์ตามบ้านคงอีกนาน
จริงๆกับเน็ตบ้านเองก็สำคัญครับ ยกตัวอย่างเช่น video streaming ที่มักจะคำนวน resolution แบบอัตโนมัติ หลายๆครั้งมักจะโดนลด resolution ทั้งๆที่ max bandwidth ยังเกินพอซึ่งเป็นผลมาจากการทำงานที่ล่าช้าของ ISP QoS พอเปลี่ยนไปใช้ TCP BBR ก็น่าจะคำนวน resolution ที่รับได้ได้แม่นยำมากขึ้นครับ
อันนี้ผมไม่แน่ใจว่า YouTube ใช้ TCP BBR หรือยัง แต่ผมรู้สึกได้ว่าตัว YouTube เองสามารถเล่น video streaming ที่ max resolution โดยอัตโนมัติได้ดีกว่าของเจ้าอื่นๆครับ ในขณะที่คู่แข่งอย่าง Dailymotion หลายๆครั้งต้องไปปรับเอง
Russia is just nazi who accuse the others for being nazi.someone once said : ผมก็ด่าของผมอยู่นะ :)
ผมมองว่า ข้อมูลมาแบบContain Provider -> ISP(s) -> routerที่บ้าน -> user
การอัพที่ CP, ISP ที่มีเจ้าหน้าที่พร้อม ก็ทำให้ระบบดีกว่าเดิมเยอะมากแล้วแล้วตรง user น่าจะอัพจาก auto update Windows ได้
เหลือแค่ router นี่แหละ
ถ้าไม่อัพ router ถึง user ได้อัพ มันก็ไม่วิ่งอยู่ดี
ซึ่ง router เก่าๆถูกๆ ก็มีแนวโน้มโดนลอยแพ
ไม่งั้นต้องก็หา custom มาลง
ซึ่งทั้งหลายทั้งปวงก็ต้องการคนระดับ super user ที่จะอัพเองเป็น
ไม่งั้นก็ต้องรอซื้อ router รุ่นใหม่ๆ
ผมถึงคิดว่า ตามบ้านคงมาทีหลังสุด
เคสนี้ ISP + router ที่บ้าน ไม่มีผลอะไรเลยครับ เป็นเรื่องของปลายทางคุยกัน
lewcpe.com , @wasonliw
ขอบคุณที่ติงมาเลยได้ไปอ่านรายละเอียด
จริงๆมันเป็น อัลกอริทึม BBR สำหรับประเมินปริมาณข้อมูลที่ส่งได้
ซึ่งไม่ได้จำกัดโปรโตคอลแค่ TCPโปรโตคอลอื่นก็ใช้ได้
(แต่ดันเรียก TCP BBR เลยนึกว่าไปยุ่งกะ tcpip.sys อะไรทำนองนั้นเลย)
สรุป คนที่ใช้หลักๆคือฟาก Server ของ Contain Provider
ที่จะได้ประเมิน bandwidth ของ client ได้สูงขึ้นกว่า การประเมินแบบเก่า
แล้วกล้ายิงอัดข้อมูลให้โหดขึ้นนั่นเอง
YouTube ใช้แล้วครับ
lewcpe.com , @wasonliw
ผมว่าทันทีมาตรฐานเปิดออกมา Provider คงพร้อมเปิดใช้งานเลยครับ แค่เปลี่ยนอัลกอริทึมตัวเดียวประหยัดแลรนด์วิธได้ตั้งเยอะ
มันไม่ได้ลด bandwidth ครับ แต่ช่วยให้ utilize ได้ดีขึ้น
ภาพมันดูโม้ไปนิดด้วย จริงๆ มันไม่ต่างกันขนาดนั้น
lewcpe.com , @wasonliw