หนังสือ "ระบบเครือข่ายเบราว์เซอร์ประสิทธิภาพสูง" จาก Ilya Grigorik ตอบคำถามตรงนี้ มีทั้งบทที่ (7) ที่ทุ่มเทให้กับเครือข่ายมือถือ หนังสือระบุว่าปัญหาที่มีประสิทธิภาพสูงมักจะเชื่อมโยงกับความหน่วงแฝงเรามักจะมีแบนด์วิดท์มากมาย แต่โปรโตคอลก็เข้าใกล้ ไม่ว่าจะเป็น TCP เริ่มต้นช้าที่ควบคุมทรัพยากรวิทยุ (RRC) หรือการกำหนดค่าด้อย หากคุณประสบความล่าช้าในการใช้งานเครือข่ายมือถือเป็นวิธีที่พวกเขาออกแบบมา
มีตารางในหนังสือเกี่ยวกับเวลาแฝงทั่วไป:
ตารางที่ 7-2 อัตราข้อมูลและเวลาแฝงสำหรับการเชื่อมต่อมือถือที่ใช้งานอยู่
รุ่น | อัตราการส่งข้อมูล ความแอบแฝง
2G | 100–400 Kbit / s | 300–1000 ms
3G | 0.5–5 Mbit / s | 100–500 มิลลิวินาที
4G | 1–50 Mbit / s | <100 ms
แม้ว่าจะเกี่ยวข้องกับเวลาแฝงมากการจับมือสามทางในลักษณะของ TCP หรือการเริ่มต้นช้านั้นไม่ได้ตอบคำถามจริงๆ สิ่งที่ส่งผลกระทบต่อความหน่วงแฝงในเครือข่ายมือถือจริงๆคือเลเยอร์ภายใต้ IP หากเลเยอร์ภายใต้ IP มีเวลาแฝงอยู่ครึ่งวินาทีการเชื่อมต่อ TCP กับเซิร์ฟเวอร์จะใช้เวลาประมาณ 1.5 วินาที (0.5 วินาที * 3) เนื่องจากคุณเห็นว่าตัวเลขนั้นเพิ่มขึ้นอย่างรวดเร็ว อย่างที่เคยกล่าวไว้ก่อนหน้านี้ว่าสมมติว่ามือถือไม่ได้ใช้งาน หากเครื่องไม่มีการใช้งานก่อนอื่นต้องทำการ "เชื่อมต่อ" กับเครือข่ายซึ่งต้องทำการเจรจาขอสงวนทรัพยากรกับหอคอย (ลดความซับซ้อน) และใช้เวลาระหว่าง 50-100ms ใน LTE สูงถึงไม่กี่วินาทีใน 3G และอื่น ๆ ในเครือข่ายก่อนหน้า
รูปที่ 7-12 เวลาในการส่งคำขอ LTE
- เวลาในการตอบสนองของเครื่องบินควบคุม : แก้ไขค่าเวลาแฝงที่เกิดขึ้นครั้งเดียวสำหรับการเจรจา RRC และการเปลี่ยนสถานะ: <100 ms สำหรับการไม่ใช้งานเป็นแบบใช้งานอยู่และ <50 ms สำหรับการหยุดชั่วคราวเป็นแบบใช้งานอยู่
- เวลาในการตอบสนองของผู้ใช้ : แก้ไขค่าใช้จ่ายสำหรับทุกแพ็กเก็ตแอปพลิเคชันที่ถ่ายโอนระหว่างอุปกรณ์และหอวิทยุ: <5 ms
- เวลาแฝงของเครือข่ายหลัก: ต้นทุนขึ้นอยู่กับผู้ให้บริการสำหรับการขนส่งแพ็คเก็ตจากหอส่งสัญญาณวิทยุไปยังแพ็กเก็ตเกตเวย์: ในทางปฏิบัติ 30–100 มิลลิวินาที
- เวลาแฝงการกำหนดเส้นทางอินเทอร์เน็ต: ค่าเวลาแฝงผันแปรระหว่างแพ็คเก็ตเกตเวย์ของผู้ให้บริการและที่อยู่ปลายทางบนอินเทอร์เน็ตสาธารณะ
ในทางปฏิบัติเวลาแฝงจากต้นทางถึงปลายทางของเครือข่าย 4G ที่ปรับใช้จำนวนมากมักอยู่ในช่วง 30–100 มิลลิวินาทีเมื่ออุปกรณ์อยู่ในสถานะเชื่อมต่อ
ดังนั้นคุณมีหนึ่งคำขอ (รูปที่ 8-2 ส่วนประกอบของคำขอ HTTP "ง่าย"):
- การเจรจาต่อรอง RRC 50-2500 มิลลิวินาที
- การค้นหา DNS 1 RTT
- TCP handshake 1 RTT (การเชื่อมต่อที่มีอยู่แล้ว) หรือ 3 RTT (การเชื่อมต่อใหม่)
- TLS handshake 1-2 RTT
- HTTP ร้องขอ 1-n RTT
และด้วยข้อมูลจริง:
ตารางที่ 8-1 ค่าใช้จ่ายในการตอบสนองต่อคำขอ HTTP เดียว
| 3G | 4G
เครื่องบินควบคุม | 200-2,500 ms | 50–100 มิลลิวินาที
ค้นหา DNS | 200 ms | 100 ms
จับมือ TCP | 200 ms | 100 ms
TLS handshake | 200–400 ms | 100–200 มิลลิวินาที
คำขอ HTTP | 200 ms | 100 ms
ค่าใช้จ่ายแอบแฝงทั้งหมด 200–3500 ms | 100–600 มิลลิวินาที
นอกจากนี้หากคุณมีแอปพลิเคชันแบบโต้ตอบที่คุณต้องการดำเนินการปานกลางในเครือข่ายมือถือคุณสามารถทดลองปิดการใช้งานอัลกอริทึม Nagle (เคอร์เนลรอให้ข้อมูลรวมตัวกันเป็นแพ็กเก็ตขนาดใหญ่แทนที่จะส่งแพ็คเก็ตขนาดเล็กหลาย ๆ ตัว) ในhttps://stackoverflow.com/a/17843292/869019
มีตัวเลือกให้อ่านหนังสือทั้งเล่มฟรีโดยทุกคนที่https://hpbn.co/สนับสนุนโดย Velocity Conference หนังสือเล่มนี้เป็นหนังสือที่ได้รับการแนะนำอย่างมากไม่เพียง แต่สำหรับคนที่กำลังพัฒนาเว็บไซต์เท่านั้น แต่ยังเป็นประโยชน์สำหรับทุกคนที่ให้บริการไบต์ผ่านเครือข่ายบางแห่งไปยังลูกค้า