
WebTransport là giao thức mạng mới của W3C cho phép client kết nối trực tiếp đến server qua UDP, vượt qua giới hạn latency và head-of-line blocking của WebSocket. Với kiến trúc low-latency, WebTransport đang trở thành nền tảng cho realtime app: gaming, video call, live streaming và AI inference trên trình duyệt. Bài viết này giải thích WebTransport là gì, cách hoạt động, so sánh với WebSocket và khi nào nên dùng.
WebTransport là gì?
WebTransport là API trình duyệt do W3C và IETF phát triển, cung cấp lớp truyền thông low-latency, băng thông cao giữa client (trình duyệt) và server. Khác với WebSocket dùng TCP, WebTransport dựa trên QUIC (Quick UDP Internet Connections) — phiên bản nâng cấp của UDP có tích hợp mã hóa TLS 1.3 và điều khiển tắc nghẽn.
WebTransport ra mắt năm 2021, hiện được hỗ trợ trên Chrome 97+, Edge, Opera và đang triển khai trên Firefox/Safari. Đây là bước đột phá giúp web app đạt hiệu năng tương đương native app cho các tác vụ realtime.

Cách hoạt động của WebTransport
WebTransport cấu thành từ 3 lớp:
- HTTP/3 handshake: client gửi request HTTP GET đến server, server phản hồi 101 Switching Protocols để thiết lập phiên QUIC.
- QUIC transport: giao thức transport cấp thấp chạy trên UDP, tích hợp TLS 1.3 mã hóa từng packet, không cần TCP handshake 3 bước.
- Unidirectional/Bidirectional streams: luồng dữ liệu độc lập, không chặn nhau — gửi video, audio, JSON metadata song song không ảnh hưởng lẫn nhau.
API JavaScript đơn giản:
const transport = new WebTransport('https://example.com');
await transport.ready;
const stream = transport.createBidirectionalStream();
const writer = stream.writable.getWriter();
writer.write(new Uint8Array([1, 2, 3]));
So sánh WebTransport và WebSocket
| Tiêu chí | WebSocket | WebTransport |
|---|---|---|
| Giao thức lớp 4 | TCP | QUIC/UDP |
| Head-of-line blocking | Có (TCP packet loss = chặn toàn bộ) | Không (mỗi stream độc lập) |
| Handshake | TCP 3-way + TLS 1.2/1.3 (~2 RTT) | HTTP/3 0-RTT hoặc 1-RTT |
| Migration | Không (thay đổi IP = ngắt kết nối) | Có (QUIC connection ID giữ phiên khi chuyển Wi-Fi → 5G) |
| Multi-stream | Mỗi message = một frame | Nhiều stream độc lập song song |
| Browser support | 100% | Chrome/Edge/Opera (Firefox/Safari đang thử nghiệm) |

Khi nào dùng WebTransport?
WebTransport không phải thay thế WebSocket hoàn toàn, mà phù hợp cho các trường hợp đặc biệt:
- Video/audio call realtime: thay WebRTC khi cần đơn giản hơn, vẫn giữ low-latency.
- Cloud gaming: stream input/output game với độ trễ thấp, không bị ảnh hưởng packet loss.
- Live streaming interactive: gửi reaction, comment, poll realtime song song với video stream.
- AI inference trên trình duyệt: gửi model prompt và nhận stream response từ LLM server.
- IoT realtime dashboard: nhiều thiết bị gửi dữ liệu song song không chặn nhau.
WebSocket vẫn thắng khi cần broadcast đơn giản, fallback server cũ, hoặc bảo mật tường lửa nghiêm ngặt không mở UDP.
Triển khai WebTransport thực tế
Để triển khai WebTransport trong production, cần chuẩn bị server hỗ trợ HTTP/3 và QUIC. Các lựa chọn phổ biến bao gồm ngx-quic (nginx patch), Caddy Server (hỗ trợ HTTP/3 tích hợp), hoặc quic-go (Go library). Trên client, API WebTransport có sẵn trong Chrome 97+, Edge, Opera; Firefox và Safari đang triển khai behind flags.
Một ví dụ server đơn giản bằng Node.js với thư viện @quic-go/quic-go có thể thiết lập endpoint WebTransport chỉ trong vài chục dòng code. Quan trọng là cấu hình TLS 1.3 certificate (có thể dùng Let’s Encrypt) và bật UDP port 443 trên firewall.
Đối với ứng dụng realtime phức tạp, nên thiết kế stream priority: video/audio stream priority cao, data/metadata stream priority thấp. QUIC cho phép điều khiển luồng ưu tiên qua SendStream.SetPriority() hoặc ReceiveStream.SetPriority().

Hạn chế và lưu ý
WebTransport yêu cầu server hỗ trợ QUIC và HTTP/3, nhiều hosting/CDN mặc định chưa bật. Ngoài ra, corporate firewall có thể chặn UDP, cần fallback sang WebSocket. Tài liệu chính thức tại W3C WebTransport Draft và MDN WebTransport API.
Kết luận
WebTransport là bước tiến quan trọng của web platform, mang lại hiệu năng realtime tương đương native app với bảo mật tích hợp. Hiện tại, nên áp dụng WebTransport cho use case đặc thù cần low-latency + multi-stream, vẫn giữ WebSocket làm fallback phổ thông.
Tham khảo thêm
Nguồn: Chrome Developers WebTransport, W3C WebTransport Specification, QUIC Working Group.
