QUIC และ HTTP/3 Protocol คืออะไร?

ทุกวันนี้ไม่ว่าจะเป็นผู้ให้บริการอย่าง Cloudflare, LifeSpeed, Google หรือ Facebook ต่างก็พัฒนาเทคโนโลยีในการเชื่อมต่อในการเข้าถึงเว็บได้อย่างรวดเร็วและมั่นคงปลอดภัย ทำให้ประสบการณ์ในการเข้าใช้งานเว็บไซต์โหลดเร็วยิ่งขึ้น

credit image @Google

QUIC และ HTTP/3 Protocol คืออะไร?
กับคอนเซ็ปต์ 100 ms สำหรับการเชื่อมต่อครั้งแรก, 0 ms สำหรับการเชื่อมต่อครั้งต่อไป

QUIC และ HTTP/3 Protocol คืออะไร?กับคอนเซ็ปต์ "0 ms - 100 ms"
HTTP/3 over QUIC

QUIC (Quick UDP Internet Connections) เป็นโปรโตคอลประเภท UDP-based Encrypted Transport Protocol พัฒนาโดยทีมกูเกิลตั้งแต่ปี 2012 ด้วยคอนเซปต์การพัฒนาขึ้นมาเพื่อลด Latency ในการเชื่อมต่อ HTTPS ลงด้วยการตัดขั้นตอนการสื่อสารที่เกิดขึ้นในการเชื่อมต่อบน TCP และ TLS ลงครับ

QUIC (Quick UDP Internet Connections)

ซึ่งทาง Google ก็ได้นำ QUIC มาใช้ภายในองค์กรภายในทดแทน TCP + TLS และปัจจุบันก็เปิดใช้งานบนบริการชื่อ HTTPS Load Balancer ของ Google Cloud Platform (GCP) เองครับ

HTTPS Load Balancer ของ Google Cloud

สไตย์กูเกิลแถวๆ บ้านเรียกซุ่มใช้ พอเห็นเป็นเทรนด์ก็เปิด Open source (แบร่ๆๆ 55++)

ส่วนผู้ให้บริการอย่าง Cloudflare และ LifeSpeed ก็เช่นกัน ต่างสนับสนุนและรองรับโปรโตคอล QUIC เช่น LifeSpeed Technologies ก็ LifeSpeed มีผลิตภัณฑ์ที่ทำหน้าที่เว็บเซิร์ฟเวอร์และ LiteSpeed Web ADC ที่เป็น Load Balancer ร่วมไปถึงให้บริการ CDN ของตนเองผ่าน quic.cloud ครับ

สำหรับ Cloudflare เองก็อิมพลีเม้นท์โครงข่าย Cloudflare edge network ให้รองรับโปรโตคอล QUIC และ HTTP/3 โดยการพัฒนา Quiche ขึ้นมาเองเขียนด้วยภาษา Rust และเปิดเป็น Open source อยู่บน GitHub หรือผู้ที่สนใจทดสอบ quiche ก็สามารถติดตั้งได้ผ่าน Docker image ครับ

จะเห็นได้ว่าแต่ล่ะผู้ให้บริการคุมตั้งแต่ต้นน้ำจนไปถึงปลายน้ำกันเลยที่เดียว 55++
สุดท้ายปรบมือข้างเดียวมันไม่ดัง…Web browser ต้องรองรับด้วย!

โดยปัจจุบันกูเกิล Chrome Canary และ Mozilla Firefox นั้นประกาศรองรับ QUIC และ HTTP/3 แล้วเช่นกันครับ

การเปิดใช้งาน QUIC และ HTTP/3

สำหรับผู้ใช้ Cloudflare CDN และ quic.cloud by LifeSpeed สามารถเปิดบน Dashboard ได้เลย

ผู้ใช้อื่น ๆ (ไม่ได้ใช้บริการ CDN) หากเซิร์ฟเวอร์และแอปพลิเคชันจะรองรับ QUIC และ HTTP/3 เครื่องเว็บเซิร์ฟเวอร์ต้องติดตั้ง quiche ให้กับ NGINX เป็นต้น (หรือซอร์ฟเวอร์เว็บเซิร์ฟเวอร์ค่ายอื่นๆ)

มาลองเช็คกันหน่อยเว็บโฮสติ้ง/เว็บเซิร์ฟเวอร์ วันนี้เว็บของคุณรองรับ QUIC และ HTTP/3 หรือยัง? 
ตรวจสอบได้ที่นี่เลย คลิ๊กตรวจสอบ QUIC Backend หากทดสอบแล้วขึ้นแบบนี้ถือว่าผ่านครับ
QUIC is supported  
HTTP/3 is supported

ความแตกต่างระหว่าง HTTP 1.1 กับ HTTP/2

จากรูปภาพข้างบน HTTP/2 จะยอมให้การเชื่อมต่อผ่านโปรโตคอล HTTP หนึ่งท่อแต่อสามารถส่งไฟล์ได้พร้อมกันหลายไฟล์ (เรียกว่า stream) ซึ่งช่วยให้ไคลเอ็นต์เปิดการเชื่อมต่อ HTTP เพียงครั้งเดียวจบ!
ส่วนโปรโตคอล HTTP/1.1 จะอนุญาตให้เราส่งข้อมูลได้ครั้งละ 1 ไฟล์เท่านั้น การดาวน์โหลดต้องต่อคิวกันเพื่อให้ดาวน์โหลดไฟล์ได้ครบตามต้องการ (หรือหน้าเว็บ)

QUIC + HTTP/3: A practical way forward 2020

Experiment now, deploy end of 2020+
Use a CDN

  • Cloudflare, Fastly, Google, and Microsoft (heavily invested)
  • Akamai: does google QUIC already
  • Amazon: also working on –something

เซิร์ฟเวอร์ที่รองรับ QUIC + HTTP/3

  • NGINX announced (for now: Cloudflare patch)
  • LiteSpeed, NodeJS, aioquic open source

เบราว์เซอร์ที่รองรับ QUIC + HTTP/3

  • Chrome, Edge, Firefox in ‘Canary’
  • Safari in progress

source:
h3.edm.uhasselt.be/
h3.edm.uhasselt.be/files/HTTP3_Prioritization_extended_3jul2019.pdf
ieeexplore.ieee.org/document/7841749
cloudflare-quic.com/
github.com/cloudflare/quiche
docs.quic.tech/quiche/
www.google.com/chrome/canary/
hub.docker.com/repository/docker/cloudflare/quiche
blog.cloudflare.com/experiment-with-http-3-using-nginx-and-quiche/
cloud.google.com/compute/docs/load-balancing/http/#QUIC
youtu.be/idViw4anA6E

Scroll to top