安卓的多PDN連線

2021-08-08 03:00:07 字數 4267 閱讀 6091

pdn:公用資料網 public data network

pdn連線過程是手機接入分組資料網的乙個重要過程,其目的是在ue和分組資料網路間建立乙個預設承載

pdp:分組資料協議 packet data protocol

pdp上下文:pdp上下文是在ms和gsn節 點中儲存的與sm有關的資訊。這些資訊也可以分為預訂資訊和位置資訊兩類。

pdp附著(pdp-attach):在pdp啟用、pdp更新、pdp去啟用之前的操作是pdp附著。pdp附著是讓終端登入到ps域裡,就是登記到sgsn/pdsn的資料庫,同時在hlr裡進行ps域的location update,此時是control-plane, 還沒有流量,相當於撥號成功。

pdp啟用(pdp-activation)就是開始進行資料流通了,也就是開始開啟網頁上網了,此時有userplane流量了。

如果是主從pdp的話,就只有1個位址(同乙個pdp上下文)。如果都是主pdp的話,那就有多個位址。(多個pdp上下文)

pdp上下文標準解釋不是很清楚,通俗點就是比方說你要用手機上手機**,那你會用cmwap這個pdp上下文,而當你把手機當貓用來連線網際網路的時候,用的就是cmnet。大概意思就是為了滿足不同需求,會分配給你不同的ip位址來接入不同的業務

主pdp上下文(primary pdp):他們可以連線到不同的pdn;

從pdp上下文(secondary pdp); 他們提供了到相同pdn的連線,但是具有不同的qos。

乙個secondary pdp上下文總是和乙個primary pdp上下文關聯的。pdp位址和接入點ap都是和primary上下文一樣的。因此primary和關聯的secondary pdp上下文一起提供了到相同pdn的連線,但區別是具有不同的承諾qos。

乙個primary pdp上下文可能有多個分配的secondary上下文。

primary pdp上下文必須在關聯的secondary上下文啟用之前啟用。任何的secondary pdp上下文可以在保持的primary上下文處於active的狀態下進行啟用。如果乙個primary pdp上下文去啟用了,那也將去啟用所有分配關聯的secondary pdp上下文。任何active的primary或secondary pdp上下文的qos都可以由ms或網路側發起的pdp context modification流程來修改。

apn

運營商

ip 承載

多連線qci:qos class identifier

qci (qos class identifier)是乙個標度值,用於衡量特定的提供給sdf(服務資料流)的包**行為(如丟包率,包延遲預算),它同時應用於gbr和non-gbr承載,用於指定訪問節點內定義的控制承載級分組**方式(如排程權重、接納門限、佇列管理門限、鏈路層協議配置等),這些都由運營商預先配置到接入網節點中

根據qos的不同, 承載(bearer)可以劃分為兩大類: gbr(guranteed bit rate) 和 non-gbr

乙個連線就是建立到pdn的乙個連線

建立到pdn的乙個連線有可能建立多個承載

乙個到pdn的連線對應乙個主pdp上下文

乙個承載對應乙個pdp上下文

乙個pdp上下文也對應乙個ip位址

乙個pdp位址就是分配的ip位址

乙個pdp上下文也對應乙個網路運營商

乙個pdp上下文對應一種apn

乙個pdp上下文攜帶有qos profile資訊

多連線就是在手機上建立多個並行的ps連線

即建立多個到pdn的連線

多個到pdn的連線就是多個主pdp和更多個從pdp

多個到pdn的連線意味著更多個承載和更多個qos profile

但是多個pdn連線只對應多個pdp位址,多個ip位址,乙個運營商(只能註冊乙個rat下),多個apn

連線到不同的pdn網路對應的是不同的ps業務,因此不同的pdn對應不同的apn型別,即對應不同的apn。

瀏覽網頁和發彩信屬於不同的業務,如果不支援多pdn連線就會按照apn優先順序去活低優先順序的連線,重新建立高優先順序的連線。如果是支援多pdn,則可同時進行兩種業務。

log如下:

事實上並沒有default apn的連線,直接setup新的mms連線

常見的pdp啟用失敗原因,即無法建立成功pdn連線的原因:

missing or unknown apn:由於未知apn導致會話啟用失敗

unknown pdp address or pdp type: 未知pdp address or pdp type導致會話啟用失敗

user authentication failed:使用者鑑權失敗導致會話啟用失敗

service option not supported:服務不支援導致會話啟用失敗的次數

requested service option not subscribed:請求的服務未簽約導致會話啟用

66008 modem/data/3gpp/lteps/auto_connect_def_pdn  auto connect def pdn

71595  modem/data/3gpp/lteps/attach_fallback_ip_type  specify attach pdn dual ip fall back ip type

67334  modem/data/3gpp/ignore_last_pdn_ia_timer  ignore inactivity timer for last pdn

67248 data/3gpp/ds_3gpp_multi_pdn_same_apn   3gpp multi pdn same apn

70260  modem/data/3gpp/lteps/allow_def_lte_pdn_teardown     allow def pdn teardown

70334  modem/data/3gpp/ps/remove_unused_pdn  remove unused pdn

71517  modem/data/3gpp/lteps/pdn_conn_limit_handling  enable/disable pdn conn limit handling

71520  modem/data/3gpp/global_throttling  enable/disable pdp, pdn and service request throttling

71541  modem/data/3gpp/umts/enable_multi_pdn_dun  enable/disable multi-pdn dun

72560  modem/data/3gpp/ps/reg_pdn_throttling     enable/disable regular pdn throttling

73591  modem/data/3gpp/ps/enable_pdn_throttling_per_rat 3gpp ignore data settings

另外efs中還有許多針對3gpp2的pdn的配置,如最大失敗個數、鑑權等級等等。

建立資料連線時對於是否支援多連線(多pdn)的判定:

private boolean isonlysingledcallowed(int rilradiotech)

if (singledcrats != null)

}if (dbg) log("isonlysingledcallowed(" + rilradiotech + "): " + onlysingledcallowed);

return onlysingledcallowed;

}從config_onlysingledcallowed的配置來看,以下rat是只支援單連線的:45

67812

在建立資料連線時,如果

isonlysingledcallowed判定為true,即只支援單連線,則會判斷是否有更高優先順序的apn已經啟用,如果有則不會去建立本次請求的資料連線,如果沒有則會斷開當前已經存在的連線再去請求本次資料連線。

如果判定為false,即可支援多個連線,則直接去建立新的連線。在建立資料的過程中判斷如下:

//判斷是否是只支援單pdn連線,即dataconnection物件只能有乙個存在,判斷依據為radiotech

if (isonlysingledcallowed(radiotech))

//說明當前請求apncontext是高優先順序的,需要斷開低優先順序的連線

if (cleanupallconnections(true, phone.reason_single_pdn_arbitration))

}以上純屬個人學習總結,如有不對的地方,歡迎討論指正。

adb連線安卓手機

1.開啟開發者模式 2.用usb線連線手機和電腦 3.終端輸入命令adb devices 第一次連線時可能連線不上,需要配置一下,終端輸入system profiler spusbdatatype,拿到vendor id 終端輸入 vi android adb usb.ini 輸入a開始編輯,按es...

安卓使用非同步Asynctask連線網路

一 解決新執行緒無法更新ui組建問題的方案 為了解決新執行緒不能更新ui組建的問題,andorid提供了如下幾種解決方案 三 asynctask抽象類 asynctask是乙個抽象類,通常用於被繼承,繼承asynctask需要指定如下三個泛型引數 四 asynctask的特點 五 使用asyncta...

adb連線安卓模擬器

為了在電腦上玩手機遊戲,國內推出了很多安卓模擬器,mumu 夜神 itools 海馬等等。我們也可以用他們來做安卓開發,相對genymotion或者android studio自帶的模擬器而言,國產模擬器的優點是安裝簡單 一步到位!執行流暢!缺點是安卓版本固定不能改。多數模擬器是基於安卓4.4或5....