ความพยายามครั้งแรกของ Linux kernel ในการรองรับ QUIC ซึ่งเป็นโปรโตคอลอินเทอร์เน็ตสมัยใหม่ที่ขับเคลื่อนการรับส่งข้อมูลบนเว็บส่วนใหญ่ในปัจจุบัน ได้จุดประกายการถอดถอนอย่างเข้มข้นในชุมชนเกี่ยวกับการแลกเปลี่ยนด้านประสิทธิภาพและศักยภาพในอนาคต แม้ว่า QUIC จะสัญญาว่าจะให้การเชื่อมต่อที่เร็วขึ้นและประสบการณ์บนมือถือที่ดีกว่า แต่ผลการทดสอบประสิทธิภาพเบื้องต้นเผยให้เห็นช่องว่างด้านประสิทธิภาพที่สำคัญ ทำให้นักพัฒนาตั้งคำถามว่าประโยชน์ที่ได้รับนั้นคุ้มค่ากับต้นทุนหรือไม่
การตรวจสอบประสิทธิภาพในความเป็นจริงทำให้เกิดความกังวล
การใช้งานใน kernel เบื้องต้นแสดงตัวเลขประสิทธิภาพที่น่าเป็นห่วงซึ่งได้รับความสนใจจากชุมชน ในการเปรียบเทียบโดยตรง การใช้งาน QUIC ใหม่ให้ throughput เพียงประมาณหนึ่งในสี่ของ TCP แบบดั้งเดิมในการทดสอบบางอย่าง โดย in-kernel TLS มีประสิทธิภาพดีกว่าเกือบสามเท่า ที่น่าเป็นห่วงมากยิ่งขึ้นคือ เมื่อปิดการเข้ารหัสทั้งหมด TCP แบบธรรมดายังคงมีประสิทธิภาพดีกว่า QUIC มากกว่าสี่เท่าในบางสถานการณ์
ผลลัพธ์เหล่านี้ได้จุดประกายการอภิปรายอย่างเข้มข้นเกี่ยวกับว่าข้อได้เปรียบของ QUIC เช่น เวลาการตั้งค่าการเชื่อมต่อที่ลดลงและการจัดการเครือข่ายมือถือที่ดีกว่า สามารถชดเชยการลดลงของประสิทธิภาพอย่างมีนัยสำคัญเช่นนี้ได้หรือไม่ ชุมชนชี้ให้เห็นเหตุผลทางเทคนิคหลายประการสำหรับผลการแสดงที่ไม่ดี รวมถึงการขาดการสนับสนุนการเร่งความเร็วของฮาร์ดแวร์ การคัดลอกข้อมูลเพิ่มเติมระหว่างการส่ง และค่าใช้จ่ายของการเข้ารหัส header ของ QUIC
ผลการเปรียบเทียบประสิทธิภาพ:
- In-kernel TLS เทียบกับ QUIC: TLS มีประสิทธิภาพดีกว่าประมาณ 3 เท่า
- Plain TCP เทียบกับ QUIC (ปิดการเข้ารหัส): TCP มีประสิทธิภาพดีกว่ามากกว่า 4 เท่า
- การใช้งาน QUIC ปัจจุบัน: ประมาณ 3-5 Gbps
- Linux kernel TCP: ประมาณ 4.5 Gbps (แพ็กเก็ตปกติ), ประมาณ 24 Gbps (พร้อม large segmentation offload)
- Userspace QUIC ที่ดีที่สุด ( msquic ): ประมาณ 7 Gbps
เครือข่ายมือถือขับเคลื่อนการใช้งาน QUIC แม้จะมีต้นทุนเซิร์ฟเวอร์
การถอดถอนเรื่องประสิทธิภาพมีความแตกต่างเชิงลึกมากขึ้นเมื่อพิจารณารูปแบบการใช้งานในโลกจริง สมาชิกชุมชนเน้นว่า QUIC ไม่ได้ถูกออกแบบมาเป็นหลักสำหรับแอปพลิเคชันเซิร์ฟเวอร์ที่มี throughput สูง แต่เพื่อแก้ไขปัญหาที่รบกวนผู้ใช้มือถือบนเครือข่ายที่ไม่เสถียร เมื่อผู้ใช้เปลี่ยนระหว่างการเชื่อมต่อ WiFi และเซลลูลาร์ การเชื่อมต่อ TCP แบบดั้งเดิมจะขาดหายไปทั้งหมด ในขณะที่ QUIC สามารถรักษา session ได้อย่างราบรื่น
QUIC จะทำงานได้ดี แต่ไม่ค่อยมีข้อได้เปรียบมากนักสำหรับการรับส่งข้อมูลระหว่างเครื่องจักรด้วยกัน การรับส่งข้อมูลระหว่างเครื่องจักรมักจะมีการเชื่อมต่อที่มีอายุยาวผ่านเครือข่ายที่ค่อนข้างดี
ปรัชญาการออกแบบที่เน้นมือถือเป็นหลักนี้อธิบายว่าทำไมบริษัทอย่าง Google จึงยินดีที่จะยอมรับต้นทุนเซิร์ฟเวอร์ที่สูงขึ้น ซึ่งรายงานว่าสูงขึ้น 2 ถึง 3 เท่าในบางกรณี เพื่อมอบประสบการณ์ผู้ใช้ที่ดีกว่าสำหรับผู้ใช้สมาร์ทโฟน ความสามารถของโปรโตคอลในการหลีกเลี่ยง head-of-line blocking และจัดการการสูญหายของแพ็กเก็ตได้อย่างสง่างามมากขึ้น ทำให้มีคุณค่าเป็นพิเศษสำหรับผู้ใช้ในประเทศกำลังพัฒนาที่พึ่งพาการเข้าถึงอินเทอร์เน็ตผ่านมือถือเป็นหลัก
สстатิสติการใช้งานในปัจจุบัน:
- QUIC จัดการการเชื่อมต่อส่วนใหญ่ไปยังเซิร์ฟเวอร์ของ Google
- 40% ของการใช้งานบราวเซอร์ Chrome ใช้ QUIC
- เติบโตประมาณ 5% ทุกสองปี
- รองรับโดยเว็บเบราว์เซอร์หลักทั้งหมด
- ใช้สำหรับการใช้งานโปรโตคอล HTTP/3
การเร่งความเร็วของฮาร์ดแวร์เป็นกุญแจสำคัญต่อประสิทธิภาพในอนาคต
ชุมชนยังคงมองโลกในแง่ดีเกี่ยวกับแนวโน้มระยะยาวของ QUIC โดยส่วนใหญ่พึ่งพาการสนับสนุนฮาร์ดแวร์ในอนาคตเพื่อลดช่องว่างด้านประสิทธิภาพ ผู้ขาย network interface card แสดงความสนใจในการให้คุณสมบัติการเร่งความเร็วเฉพาะสำหรับ QUIC คล้ายกับวิธีที่ TCP ได้รับประโยชน์จากการปรับปรุงฮาร์ดแวร์มานานหลายทศวรรษ การใช้งานใน kernel เป็นขั้นตอนแรกที่สำคัญในการเปิดใช้งานการสนับสนุนฮาร์ดแวร์ดังกล่าว แม้ว่าประสิทธิภาพซอฟต์แวร์ในปัจจุบันจะตามไม่ทันความคาดหวัง
นักพัฒนายังชี้ให้เห็นการปรับปรุงทางเทคนิคเฉพาะที่สามารถเพิ่มประสิทธิภาพได้อย่างมาก ซึ่งรวมถึงการเพิ่มการสนับสนุน segmentation offload การกำจัดการคัดลอกข้อมูลที่ไม่จำเป็น และการปรับปรุง encryption pipeline ฉันทามติชี้ให้เห็นว่าแม้ประสิทธิภาพในปัจจุบันจะน่าผิดหวัง แต่สถาปัตยกรรมพื้นฐานอนุญาตให้มีการปรับปรุงที่สำคัญในอนาคต
ข้อมูลจำเพาะทางเทคนิคของ QUIC:
- มาตรฐานโปรโตคอล: RFC 9000 (พร้อมการอัปเดตใน RFC 9369)
- สร้างขึ้นบนโปรโตคอล UDP
- ประเภท socket ใหม่: IPPROTO_QUIC
- รองรับการส่งข้อมูลหลายสตรีมพร้อมกัน
- ใช้การเข้ารหัสแบบ end-to-end เสมอ
- รวมถึง connection ID สำหรับการรักษาเซสชันข้ามการเปลี่ยนแปลง IP
บทสรุป
การใช้งาน QUIC ของ Linux kernel เป็นก้าวสำคัญในการพัฒนาโปรโตคอลอินเทอร์เน็ต แม้จะมีข้อจำกัดด้านประสิทธิภาพในปัจจุบัน แม้ว่าตัวเลข benchmark จะวาดภาพที่น่าเป็นห่วงสำหรับแอปพลิเคชันที่มี throughput สูง แต่ข้อได้เปรียบในการออกแบบของโปรโตคอลสำหรับผู้ใช้มือถือและเครือข่ายที่ไม่เสถียรยังคงขับเคลื่อนการใช้งาน การทดสอบจริงจะเป็นการดูว่าการเร่งความเร็วของฮาร์ดแวร์และการปรับปรุงซอฟต์แวร์สามารถลดช่องว่างด้านประสิทธิภาพได้เร็วพอที่จะทำให้ QUIC เป็นทางเลือกที่เป็นไปได้สำหรับการแทนที่ TCP ในสภาพแวดล้อมเซิร์ฟเวอร์หรือไม่ ในตอนนี้ อินเทอร์เน็ตดูเหมือนจะถูกกำหนดให้ทำงานบนแนวทางแบบผสม โดย QUIC ให้บริการผู้ใช้มือถือและ TCP จัดการงานหนักในศูนย์ข้อมูล
อ้างอิง: QUIC for the kernel