Bắt đầu sử dụng tính năng Chia sẻ gói dữ liệu di động

Thuật ngữ

  • GTAF: Chức năng ứng dụng giao thông của Google. Dịch vụ của Google triển khai API Chia sẻ gói dữ liệu và thay mặt các ứng dụng của Google tương tác với các DPA. Các ứng dụng của Google có thể truy vấn GTAF để biết thông tin về gói dữ liệu của người dùng. Ngoài ra, nếu các ứng dụng của Google đăng ký bằng GTAF, thì GTAF có thể gửi bản cập nhật về gói dữ liệu của người dùng.
  • MSISDN: Số thư mục thuê bao quốc tế dành cho thiết bị di động, một số duy nhất xác định một gói thuê bao trong mạng di động. Thường được gọi là số điện thoại.
  • Điểm cuối CPU: Một dịch vụ do các nhà mạng di động triển khai để tạo giá trị nhận dạng gói của nhà mạng (CPID) có thể dùng để tra cứu thông tin về gói dữ liệu của người dùng. CPID cho phép một ứng dụng truy vấn thông tin chi tiết về gói dữ liệu của người dùng mà không cần truy cập vào SSDSDN của người dùng. Chúng tôi mô tả quy trình tạo CPID dưới đây.
  • Khoá người dùng: Khoá người dùng là một chuỗi có thể dùng để xác định gói dữ liệu của người dùng. Đây có thể là CPID hoặc MSISDN đối với các ứng dụng có quyền truy cập vào MSISDN.
  • DPA (DataA Agent), một dịch vụ do các nhà khai thác mạng di động triển khai và chia sẻ thông tin gói dữ liệu người dùng với GTAF. DPA có thể chia sẻ thông tin với GTAF bằng cách sử dụng tổ hợp gửi dữ liệu bằng cách sử dụng API Chia sẻ gói dữ liệu di động của Google và triển khai API Tác nhân gói dữ liệu. DPA cũng có thể tuỳ ý đóng vai trò là điểm cuối CPID.
  • UE: Thiết bị của người dùng, thiết bị mà người dùng sử dụng.

Ngôn ngữ yêu cầu

Các từ khóa "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "KHÔNG","&hl=vi;"[=]

Chia sẻ gói dữ liệu di động

Nhìn chung, tính năng Chia sẻ gói dữ liệu di động bao gồm 3 phần:

  1. Cơ chế thiết lập và cập nhật mã nhận dạng gói cước của nhà mạng (CPID) có thể dùng làm khoá người dùng. Các ứng dụng có quyền truy cập vào MSISDN, MSISDN có thể dùng ứng dụng này làm khoá người dùng.
  2. API Chia sẻ gói dữ liệu di động của Google cho phép DPA gửi thông tin về gói dữ liệu của người dùng cho Google. Ví dụ: nếu DPA muốn thông báo cho người dùng về một ưu đãi, thì DPAF có thể thông báo cho GTAF, sau đó thông báo cho người dùng.
  3. API Tác nhân gói dữ liệu do DPA triển khai, cho phép GTAF truy vấn DPA để biết thông tin về gói dữ liệu của người dùng. Ví dụ: nếu một ứng dụng muốn hiển thị số dư gói dữ liệu hiện tại cho người dùng, thì ứng dụng đó có thể truy vấn GTAF, từ đó có thể truy vấn DPA.

Phần còn lại của trang này giới thiệu các thuật ngữ về gói dữ liệu và thông tin chi tiết về cách thiết lập CPID (CPID). Tiếp theo, API Chia sẻ gói dữ liệu di động của Google và Quy cách API tác nhân gói dữ liệu sẽ được tuân theo.

Thuật ngữ về gói dữ liệu

Giản đồ của planStatus được xác định trong API PHẢI có thể biểu thị các gói dữ liệu do toán tử cung cấp cho người dùng. API này hỗ trợ việc xác định các gói dữ liệu tính phí người dùng với một mức giá khác cho tất cả lưu lượng truy cập đến một tập hợp URL cụ thể (ví dụ: tất cả lưu lượng truy cập vào *.acmefake.com đều được tính phí ở một mức giá khác). API cũng hỗ trợ các gói dữ liệu cung cấp nhiều mức giá cho các loại thao tác nhất định trong một ứng dụng. Chúng tôi gọi các gói dữ liệu ứng dụng phụ này là một ví dụ về gói dữ liệu ứng dụng phụ, trong đó việc cung cấp tính năng duyệt xem video miễn phí (tức là không tính phí) trong khi xem video trong ứng dụng sẽ khấu trừ dữ liệu khỏi số dư dữ liệu của người đăng ký. Sau đó, ứng dụng video PHẢI có thể tìm hiểu thông tin này khi truy vấn thông tin về gói dữ liệu.

Ở đây, chúng tôi giới thiệu một số thuật ngữ liên quan đến gói dữ liệu. Hình 1 cung cấp ví dụ về các gói dữ liệu đại diện cho các khái niệm mà chúng tôi muốn thu thập.

Gói dữ liệu: gói dịch vụ di động cấp cao nhất mà người đăng ký mua. Nó có thể đơn giản như "10 GB dữ liệu di động trong 30 ngày" hoặc có thể được xác định là một tập hợp các thành phần, còn được gọi là mô-đun. Gói dữ liệu:

  • Tên gói dữ liệu, chẳng hạn như "ACME Red".
  • Mã nhận dạng gói dữ liệu, dùng để tham chiếu đến gói, chẳng hạn như trong quá trình mua.
  • Thời gian hết hạn, khi gói dữ liệu hết hạn.
  • Danh mục gói bộ nhớ, cho dù gói đó là gói trả trước hay gói trả phí.

Mô-đun gói: thành phần của gói dữ liệu. Cụ thể, một mô-đun kế hoạch có:

  • Tên mô-đun, chẳng hạn như "Free Video Night&"
  • Tốc độ tối đa, băng thông đang được mô-đun này cung cấp cho người dùng.
  • Cửa sổ thời gian linh hoạt, cửa sổ thời gian trong đó người dùng có thể được chiết khấu.
  • Danh mục lưu lượng truy cập mô-đun kế hoạch (PMTC), mô tả về lưu lượng truy cập dữ liệu mà một mô-đun áp dụng. PMTC có thể chung chung là *tất cả lưu lượng truy cập Internet *hoặc cụ thể như lưu lượng truy cập được tạo/tiêu thụ bởi một hoặc nhiều ứng dụng, trang web hoặc thậm chí là hành trình của người dùng trong một ứng dụng. Ví dụ về những loại sau là "nhạc không giới hạn", "Gói dữ liệu video 100 MB (VDP)", "dữ liệu trò chơi không giới hạn" và "duyệt video không giới hạn" Để hỗ trợ định nghĩa về PMTC, chúng tôi đã xác định các PMTC sau đây: GENERIC, VIDEO, VIDEO_BROWSING, VIDEO_OFFLINE1, MUSIC, GAMING, SOCIAL, MESSAGINGPMTC_UNSPECIFIED.

  • Số lượng dữ liệu hoặc giới hạn thời gian, sau khi được kích hoạt, mô-đun gói sẽ hết hạn khi khối lượng dữ liệu hoặc giới hạn thời gian (trong trường hợp các gói dựa trên thời gian, ví dụ: Bạn đã vượt quá 600 phút truy cập Internet trong 7 ngày tiếp theo). Trong Hình 1 bên dưới, người đăng ký có thể mua một mô-đun gói, như một phần của "ACME Blue", cung cấp 1 GB lưu lượng truy cập chung của người dùng, phải được sử dụng trong vòng một tuần kích hoạt trước khi hết hạn.

Kế hoạch mẫu API gói dữ liệu

Hình 1. Gói dữ liệu mẫu.

Thiết lập CPID

GTAF sử dụng khóa người dùng để xác định người đăng ký khi giao tiếp với DPA. Các ứng dụng có quyền truy cập vào MSISDN của người dùng có thể sử dụng làm khoá người dùng. Mặt khác, các ứng dụng không có quyền truy cập vào MSISDN, cần thiết lập mã nhận dạng gói của nhà mạng (CPID) mà không tìm thấy MSSDN của người dùng. Trong những nội dung sau đây, chúng tôi mô tả cơ chế thiết lập một CPU.

Luồng cuộc gọi CPID

Hình 2: Luồng cuộc gọi để thiết lập CPID.

  1. Một ứng dụng của Google trong UE sử dụng một API nội bộ của Google để truy xuất URL của điểm cuối CPID từ GTAF. Nhà cung cấp dịch vụ được xác định bằng địa chỉ IP công khai của máy khách và MCC+MNC của thẻ SIM đang hoạt động. Trong trường hợp MVNO, Google sẽ sử dụng SPNGID1 để xác định MVNO
  2. Máy khách gửi yêu cầu GET HTTP cho điểm cuối CPID. Toán tử CÓ THỂ hỗ trợ gửi yêu cầu qua HTTPS.
  3. Toán tử CÓ thể sử dụng chức năng Kiểm tra gói sâu của họ để xác định yêu cầu và chèn số điện thoại của người dùng vào yêu cầu dưới dạng tiêu đề HTTP.
  4. Điểm cuối CPID nhận được yêu cầu, tạo CPID và trả về CPID cho UE cùng với thời gian tồn tại (TTL) cho biết thời gian mà UE có thể sử dụng CPU này.

Nhà cung cấp dịch vụ cũng có thể sử dụng địa chỉ IP thay vì tên miền trong URL điểm cuối CPID (nếu muốn). Các địa chỉ IP CÓ THỂ ở trong không gian địa chỉ riêng tư nhưng phải được khách hàng của Google truy cập bên trong mạng của nhà cung cấp dịch vụ.

Toán tử SHALL cung cấp cho Google những thông tin sau trong quá trình tham gia: 1. CPID_URL mà các ứng dụng sẽ liên hệ để nhận CPID. Bắt buộc phải có một CPID_URL nhưng nhà cung cấp dịch vụ có thể cung cấp nhiều URL để tăng khả năng truy cập. 1. Danh sách tiền tố IP mà nhà điều hành sở hữu và Mã quốc gia trên thiết bị di động (MCC) và Mã mạng di động (MNC) mà nhà điều hành muốn liên kết với các CPID_URL được cung cấp. Nếu nhà mạng sử dụng SPN hoặc GID1 để phân biệt MVNO trong mạng của họ, thì nhà cung cấp dịch vụ SHALL cũng cung cấp thông tin này. Google sẽ sử dụng thông tin này để so khớp khách hàng với các điểm cuối CPID tương ứng, như thể hiện trong Bước 1 của Hình 2.

Định dạng của yêu cầu là: GET CPID_URL Vì lý do cũ, điểm cuối CPID phải có thể hỗ trợ yêu cầu như sau:

GET CPID_URL?app={app_id}

Điểm cuối CPID có thể bỏ qua tham số URL {app_id} khi tạo CPU. Tuy nhiên, hàm PHẢI có khả năng xử lý yêu cầu chứa tham số.

Yêu cầu đến điểm cuối CPID CÓ THỂ bao gồm tiêu đề Accept-Language. Nếu tiêu đề được đưa vào thì các chuỗi có thể đọc được trong các bản cập nhật mà DPA gửi bằng API Chia sẻ gói dữ liệu di động PHẢI sử dụng chế độ cài đặt được cung cấp trong yêu cầu CPU.

Mỗi khi khách hàng đưa ra yêu cầu GET CPID_URL, PHẢI PHẢI nhận được CPID mới. Nếu việc tạo CPID thành công, điểm cuối CPID PHẢI trả về phản hồi 200 OK. Phần nội dung phản hồi PHẢI chứa một thực thể của CPIDResponse.

{
    "cpid": "<CPID_string>",
    "ttlSeconds": 2592000
}

CPID trả về PHẢI hợp lệ trong ttlSeconds giây. GTAF sẽ mã hoá CPU theo RFC2396 trong các lệnh gọi tiếp theo tới DPA.

Nếu xảy ra lỗi, điểm cuối CPID PHẢI trả về lỗi HTTP với nội dung phản hồi PHẢI chứa một phiên bản của ErrorResponse. Danh sách giá trị nguyên nhân và mã lỗi HTTP có thể xảy ra tại đây.

{
    "errorMessage": "<error message>",
    "cause": "INVALID_NUMBER"
}

Cụ thể là nếu nhận được yêu cầu CPID cho người dùng không thuộc mạng nhà cung cấp dịch vụ (ví dụ: người dùng thuộc một nhà cung cấp dịch vụ khác nhưng đang chuyển vùng trên mạng do điểm cuối CPID này phân phát) hoặc chưa chọn chia sẻ thông tin gói dữ liệu với Google, thì điểm cuối CPID PHẢI trả về mã trạng thái HTTP 403.

Tạo CPID

Cách đề xuất cho điểm cuối CPID để tạo CPID là:

CPID_string = Base64(AES(MSISDN + TimeStamp + language, secret))

Điểm cuối CPID nối nối SSDSDN, ngôn ngữ do ứng dụng khách gửi trong tiêu đề Chấp nhận bằng ngôn ngữ, cũng như dấu thời gian độ phân giải cao và mã hoá thông qua AES bằng khoá secret. Dấu thời gian PHẢI tương ứng với thời gian mà CPID hết hạn. Đầu ra đã mã hoá là mã hoá Base64. Hơn nữa, khi được dùng CPID trong một URL, bạn PHẢI mã hoá URL để xử lý các ký tự đặc biệt (/+=) trong Base64. Cụ thể là khi GTAF gọi DPA hoặc khi DPA gọi API Chia sẻ gói dữ liệu di động, CPID PHẢI được mã hóa URL. Một lợi thế của việc tạo CPID bằng phương pháp này là điểm cuối DPA và CPID không cần phải có cơ sở dữ liệu về CPID và MSISDN hợp lệ.

Tuỳ thuộc vào tình huống của các nhà cung cấp dịch vụ cụ thể, bạn nên triển khai điểm cuối CPID. Một thách thức cụ thể thường gặp phải là truy cập vào MSISDN tại điểm cuối CPID. Chúng tôi rất sẵn lòng chia sẻ các bài học kinh nghiệm về toán tử giới thiệu. Vui lòng liên hệ với chúng tôi nếu bạn gặp khó khăn.

Yêu cầu về bảo mật

Toán tử SHALL thực hiện tất cả các biện pháp phòng ngừa cần thiết để bảo vệ thông tin riêng tư của người đăng ký. Cụ thể, để giảm thiểu nguy cơ hiển thị số điện thoại của người đăng ký, điểm cuối CPID PHẢI nằm trong máy đo bảo mật. Hơn nữa, trong trường hợp toán tử sử dụng DPI, toán tử PHẢI mã hoá MSISDN trước khi chèn vào yêu cầu HTTP. Nếu điểm cuối CPID không phải là chu vi bảo mật của bạn (ví dụ: khi điểm cuối CPID được triển khai trên một đám mây công cộng), thì toán tử KHÔNG được truyền MSISDN qua Internet công khai. Toán tử có thể thiết lập một VPN giữa DPI và điểm cuối CPID (xem Hình 1) hoặc mã hóa MSISDN trước khi chèn nó vào tiêu đề. Phương pháp sau giả định rằng điểm cuối CPID có thể giải mã tiêu đề được chèn để khôi phục MSISDN trước khi tạo CPIDN. Hơn nữa, toán tử SHALL bảo vệ khoá bí mật dùng để tạo CPID và xoay vòng khoá này theo các chính sách bảo mật của toán tử.

Phạm vi cung cấp và yêu cầu về hạn mức

Nếu khách hàng không thể truy xuất CPID, thì họ không thể truy cập vào thông tin từ API gói dữ liệu di động. Vì lý do này, toán tử SHALL sẽ thực hiện các biện pháp cần thiết để đảm bảo khả năng sử dụng điểm cuối CPID. Những biện pháp như vậy bao gồm việc có nhiều phiên bản của điểm cuối CPID và các hàm DPI, đồng thời có tính năng dự phòng thực tế, trang web và mạng cho cả hai hàm, đồng thời đảm bảo cung cấp tài nguyên và dung lượng hệ thống đầy đủ. Hơn nữa, điểm cuối CPID cũng như hàm DPI chèn tiêu đề phải có đủ dung lượng để xử lý khả năng tải của tất cả ứng dụng Google yêu cầu CPID. Điểm cuối CPID có thể sử dụng các giá trị lớn hơn trong trường ttlSeconds để giảm tần suất tạo CPID. Google khuyên bạn nên sử dụng giá trị TTL là 30 ngày.

Ghi chú


  1. PM_OFFLINE PMTC có nghĩa là gói này chỉ tốt cho chế độ ngoại tuyến (ví dụ: phát trực tiếp QoE thực sự không tốt). Nó độc lập với cửa sổ FlexTime.