Cuốn sách "Mạng trình duyệt hiệu suất cao" từ Ilya Grigorik trả lời chính xác điều này. Có cả một chương (thứ 7) dành riêng cho mạng di động. Cuốn sách nói rằng vấn đề với hiệu suất cao hầu như luôn luôn gắn liền với độ trễ, chúng ta thường có nhiều băng thông nhưng các giao thức gặp trở ngại. Có thể là TCP khởi động chậm , Bộ điều khiển tài nguyên vô tuyến (RRC) hoặc cấu hình dưới mức tối ưu. Nếu bạn gặp phải độ trễ kém chỉ trong các mạng di động thì đó là cách chúng được thiết kế.
Có một bảng trong cuốn sách về độ trễ điển hình:
Bảng 7-2. Tốc độ dữ liệu và độ trễ cho kết nối di động đang hoạt động
Thế hệ | Tốc độ dữ liệu | Độ trễ
2G | 100 con400 Kbit / s | 300 con1000 ms
3G | 0,5 sắt5 Mbit / s | 100 L500500 ms
4G | 1 Phi50 Mbit / s | <100 ms
Mặc dù rất phù hợp với độ trễ, bắt tay ba chiều đặc trưng TCP hoặc khởi động chậm không thực sự trả lời câu hỏi, vì chúng ảnh hưởng đến các kết nối có dây như nhau. Điều thực sự ảnh hưởng đến độ trễ trong mạng di động là lớp dưới IP. Nếu lớp dưới IP có độ trễ nửa giây, kết nối TCP đến máy chủ sẽ mất ~ 1,5 giây (0,5 giây * 3), khi bạn thấy các con số tăng lên khá nhanh. Như đã nói trước đó, giả sử rằng điện thoại di động không nhàn rỗi. Nếu thiết bị cầm tay không hoạt động, trước tiên nó phải "kết nối" với mạng, điều đó đòi hỏi phải thương lượng dự trữ tài nguyên với tháp (đơn giản hóa) và mất từ 50 đến 100ms trong LTE, tối đa vài giây trong 3G và hơn thế nữa trong các mạng trước đó.
Hình 7-12. Độ trễ dòng yêu cầu LTE
- Độ trễ của mặt phẳng điều khiển : Đã sửa lỗi, chi phí độ trễ một lần phát sinh cho đàm phán RRC và chuyển trạng thái: <100 ms khi không hoạt động và <50 ms khi không hoạt động.
- Độ trễ mặt phẳng người dùng : Chi phí cố định cho mỗi gói ứng dụng được chuyển giữa thiết bị và tháp radio: <5 ms.
- Độ trễ mạng lõi: Chi phí phụ thuộc của nhà mạng để vận chuyển gói từ tháp radio đến cổng gói: trong thực tế, 30 chuyến100 ms.
- Độ trễ định tuyến Internet: Chi phí độ trễ biến đổi giữa cổng gói của người vận chuyển và địa chỉ đích trên Internet công cộng.
Trong thực tế, độ trễ từ đầu đến cuối của nhiều mạng 4G được triển khai có xu hướng ở trong phạm vi 30100100 ms sau khi thiết bị ở trạng thái được kết nối.
Vì vậy, bạn có một yêu cầu (Hình 8-2. Các thành phần của yêu cầu HTTP "đơn giản"):
- Đàm phán RRC 50-2500 ms
- Tra cứu DNS 1 RTT
- Bắt tay TCP 1 RTT (kết nối có sẵn) hoặc 3 RTT (kết nối mới)
- TLS bắt tay 1-2 RTT
- Yêu cầu HTTP 1-n RTT
Và với dữ liệu thực:
Bảng 8-1. Chi phí trễ của một yêu cầu HTTP
| 3G | 4G
Máy bay điều khiển | 200 trận đấu 2.500 ms | 50 con100 ms
Tra cứu DNS | 200 ms | 100 ms
Bắt tay TCP | 200 ms | 100 ms
Bắt tay TLS | 200 con400 ms | 100 100200200 ms
Yêu cầu HTTP | 200 ms | 100 ms
Tổng độ trễ trên không | 200 con3500 ms | 100 L60000 ms
Ngoài ra, nếu bạn có một ứng dụng tương tác mà bạn muốn hoạt động ở mức vừa phải trong mạng di động, bạn có thể thử nghiệm vô hiệu hóa thuật toán Nagle (hạt nhân chờ dữ liệu kết hợp thành các gói lớn hơn thay vì gửi nhiều gói nhỏ hơn) tìm cách kiểm tra nó trong https://stackoverflow.com/a/17843292/869019 .
Có tùy chọn để đọc toàn bộ cuốn sách miễn phí bởi mọi người tại https://hpbn.co/ được tài trợ bởi Hội nghị Velocity. Đây là một cuốn sách rất được khuyến khích, không chỉ cho những người phát triển trang web, nó rất hữu ích cho mọi người phục vụ byte qua một số mạng cho khách hàng.