การลดภาระงานของการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือช่วยให้อุปกรณ์ประหยัดพลังงานและปรับปรุงประสิทธิภาพด้วยการลดภาระงานของการรับส่งข้อมูลการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ (ผ่าน USB, Wi-Fi) ไปยังฮาร์ดแวร์ ระบบจะลดภาระงานของการรับส่งข้อมูลการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือโดยการจัดเส้นทางโดยตรงระหว่างโมเด็มกับอุปกรณ์ต่อพ่วง โดยข้ามโปรเซสเซอร์ของแอป
ข้อกำหนดเฉพาะ
ตั้งแต่ Android 8.1 เป็นต้นไป อุปกรณ์สามารถใช้การลดภาระงานของการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือเพื่อลดภาระงานของการส่งต่อ IPv4, IPv6 หรือ IPv4+IPv6 ไปยังฮาร์ดแวร์
ฟีเจอร์การลดภาระงานไม่จำเป็นต้องลดภาระงานของแพ็กเก็ตทั้งหมด เฟรมเวิร์กสามารถจัดการแพ็กเก็ตใดก็ได้ในซอฟต์แวร์ โดยปกติแล้วระบบจะประมวลผลแพ็กเก็ตควบคุมในซอฟต์แวร์ เนื่องจากพอร์ต IPv4 ใช้ร่วมกันระหว่างการรับส่งข้อมูลการเชื่อมต่ออินเทอร์เน็ตผ่านโทรศัพท์กับการรับส่งข้อมูลของอุปกรณ์ ระบบจึงต้องประมวลผลแพ็กเก็ตการตั้งค่า/การยกเลิกเซสชัน IPv4 (เช่น SYN/SYN+ACK, FIN) ในซอฟต์แวร์เพื่อให้เคอร์เนลสร้างสถานะโฟลว์ได้ เฟรมเวิร์กมีระนาบควบคุมและเครื่องสถานะ นอกจากนี้ยังให้ข้อมูลเกี่ยวกับอินเทอร์เฟซ/คำนำหน้าต้นทางและปลายทางแก่ฮาร์ดแวร์ด้วย
สำหรับ IPv4 ฮาร์ดแวร์จะอนุญาตให้แพ็กเก็ตการตั้งค่าเซสชันการเปลี่ยนค่าที่อยู่เครือข่าย (NAT) ของ IPv4 ไปถึง CPU ได้ เคอร์เนลจะสร้างรายการ NAT และการใช้งาน HAL จะสังเกตรายการจากตัวอธิบายไฟล์ที่เฟรมเวิร์กให้มาและจัดการโฟลว์เหล่านี้ในฮาร์ดแวร์ ซึ่งหมายความว่าการใช้งาน HAL ไม่จำเป็นต้องใช้ CAP_NET_* เนื่องจาก HAL จะเปิดซ็อกเก็ต NF_NETLINK_CONNTRACK จากเฟรมเวิร์ก ฮาร์ดแวร์จะส่งการอัปเดตสถานะ NAT สำหรับโฟลว์ที่ใช้งานอยู่ไปยังเฟรมเวิร์กเป็นระยะๆ ซึ่งจะรีเฟรชรายการสถานะการติดตามการเชื่อมต่อของเคอร์เนลที่เกี่ยวข้อง
สำหรับ IPv6 เฟรมเวิร์กจะกำหนดรายการคำนำหน้าปลายทาง IPv6 ที่ต้องไม่ลดภาระงานของการรับส่งข้อมูล ระบบสามารถลดภาระงานของแพ็กเก็ตการเชื่อมต่ออินเทอร์เน็ตผ่านโทรศัพท์อื่นๆ ทั้งหมดได้
สำหรับการคิดค่าบริการปริมาณการใช้อินเทอร์เน็ต การสำรวจการใช้ข้อมูลของ NetworkStatsService จะทำให้เฟรมเวิร์กขอสถิติการรับส่งข้อมูลจากฮาร์ดแวร์ นอกจากนี้ เฟรมเวิร์กยังสื่อสารขีดจำกัดปริมาณการใช้อินเทอร์เน็ตกับฮาร์ดแวร์ผ่าน HAL ด้วย
ข้อกำหนดเกี่ยวกับฮาร์ดแวร์
หากต้องการใช้การลดภาระงานของการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ ฮาร์ดแวร์ต้องสามารถส่งต่อแพ็กเก็ต IP ระหว่างโมเด็มกับ Wi-Fi/USB ได้โดยไม่ต้องส่งการรับส่งข้อมูลผ่านโปรเซสเซอร์หลัก
การใช้งาน
หากต้องการเปิดใช้ฟีเจอร์การลดภาระงานของการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ คุณต้องใช้ HAL การกำหนดค่า (IOffloadConfig) และ HAL การควบคุม (IOffloadControl)
HAL การกำหนดค่า: IOffloadConfig
HAL
IOffloadConfig
จะเริ่มการใช้งานการลดภาระงานของการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ เฟรมเวิร์กจะให้ซ็อกเก็ต NF_NETLINK_CONNTRACK ที่เชื่อมต่อไว้ล่วงหน้าแก่การใช้งาน HAL ซึ่งการใช้งานสามารถใช้เพื่อสังเกตโฟลว์ IPv4 ได้ ระบบต้องเร่งโฟลว์ที่ส่งต่อเท่านั้น
HAL การควบคุม: IOffloadControl
HAL
IOffloadControl
จะควบคุมการใช้งานการลดภาระงาน คุณต้องใช้เมธอดต่อไปนี้
- เริ่ม/หยุดฮาร์ดแวร์การลดภาระงาน: ใช้
initOffload/stopOffloadและยกเว้นที่อยู่ IP ในเครื่องหรือเครือข่ายอื่นๆ จากการลดภาระงานด้วยsetLocalPrefixes - ตั้งค่าอินเทอร์เฟซต้นทาง ที่อยู่ IPv4 และเกตเวย์ IPv6: ใช้
setUpstreamParametersและกำหนดค่าช่วงที่อยู่ IP ปลายทางด้วยaddDownstream/removeDownstream - การคิดค่าบริการปริมาณการใช้อินเทอร์เน็ต: ใช้
getForwardedStats/setDataLimit
นอกจากนี้ HAL ของผู้ให้บริการยังต้องส่งการเรียกกลับผ่านอินเทอร์เฟซ ITetheringOffloadCallback ซึ่งจะแจ้งให้เฟรมเวิร์กทราบถึงสิ่งต่อไปนี้
- เหตุการณ์แบบไม่พร้อมกัน เช่น การเริ่มและหยุดการลดภาระงาน (OffloadCallbackEvent)
- การอัปเดตการหมดเวลา NAT ซึ่งต้องส่งเป็นระยะๆ เพื่อระบุว่าโฟลว์ IPv4 ที่เฉพาะเจาะจงมีการรับส่งข้อมูลและเคอร์เนลต้องไม่ปิด
การตรวจสอบ
หากต้องการตรวจสอบการใช้งานการลดภาระงานของการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ ให้ใช้การทดสอบด้วยตนเองหรือการทดสอบอัตโนมัติเพื่อยืนยันว่าการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือและฮอตสปอต Wi-Fi ทำงานตามที่คาดไว้ The Vendor Test Suite (VTS) มีการทดสอบ HAL การลดภาระงานของการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ