起きたこと
DualSIM環境で、パケット通信をRakutenにしている状態(詳細は下の環境を見てください)だと、パケットの通りが非常に悪い状態でした。はっきり言って、使い物にならないレベルでした。
今回の問題が発生した基本的な環境は以下の通り。至って普通のDualSIM、DualVoLTE構成ですかね。
問題が起きた環境
- 端末: HUAWEI P30 lite
- SIM1: OCNモバイルOne
- SIM2: Rakuten
- デフォルトのデータ通信: SIM2
- デフォルトの通話用SIM: SIM1
この状況は、Rakutenの仮想なんちゃらが、とても良い仕事をしてパケットの通りが悪いのかと思い、その状況を調査してみることにしました。
悪いのは回線かスマホか大実験
実験環境
- 端末: HUAWEI nova lite 3, HUAWEI P30 lite
- SIM1: OCNモバイルOne
- SIM2: Rakuten
- 接続: スマホ <- Wifiテザリング-> PC(Windows 10) <- VirtualBox -> VM(Ubuntu 20.04)
- スクリプト: https://github.com/haisaihiroki/geeklog/blob/master/ping.sh
実験パターン
下記4パターンで、VMからpingを送って、パケットのロス率を観察する。その際、ping.sh スクリプトを実行してデータを集めました。
- SingleSIM(Rakuten)
- DualSIM(OCN, Rakuten), データ通信のみRakuten
- DualSIM(OCN, Rakuten), データ通信と電話をRakuten
- DualSIM(OCN, Rakuten), OCNのSIMを無効化
検証結果
Rakuten回線は問題無し。HUAWEI端末のDualSIMに不具合があると思われる結果となりました。
1. SingleSIM(Rakuten)
実験条件
- Rakuten SIMしか刺さっていない、HUAWEI nova lite 3 を使用
- 10分おきにping 100回打つ
- パケットロス数を指標にする
- 約35時間連続
実験結果
トータル、100回 x 212ファイル = 212,000回中、3発しかパケットロスが発生しませんでした。
$ grep "packet loss" ./* | grep -v "0%"
./20200627_0420_ping.txt:100 packets transmitted, 99 received, 1% packet loss, time 99186ms
./20200628_0310_ping.txt:100 packets transmitted, 99 received, 1% packet loss, time 99206ms
./20200628_0440_ping.txt:100 packets transmitted, 99 received, 1% packet loss, time 99210ms
2. DualSIM(OCN, Rakuten), データ通信のみRakuten
実験条件
- OCNとRakuten が刺さっている、HUAWEI P30 lite を使用
- ping 100回打つスクリプトを3回実行
- パケットロス数を指標にする
- デフォルトのデータ通信SIMをRakutenに設定
実験結果
300回のpingで84発パケットロス、28%パケットロス。
$ grep "packet loss" ./*
./20200628_1225_ping.txt:100 packets transmitted, 61 received, 39% packet loss, time 100018ms
./20200628_1228_ping.txt:100 packets transmitted, 85 received, 15% packet loss, time 99532ms
./20200628_1230_ping.txt:100 packets transmitted, 70 received, 30% packet loss, time 99834ms
3. DualSIM(OCN, Rakuten), データ通信と電話をRakuten
実験条件
- OCNとRakuten が刺さっている、HUAWEI P30 lite を使用
- ping 100回打つスクリプトを3回実行
- パケットロス数を指標にする
- デフォルトのデータ通信SIMをRakutenに設定
- デフォルトの通話SIMをRakutenに設定
実験結果
300回のpingで117発パケットロス、39%パケットロス。
$ grep "packet loss" ./*
./20200628_1233_ping.txt:100 packets transmitted, 64 received, 36% packet loss, time 99966ms
./20200628_1239_ping.txt:100 packets transmitted, 55 received, 45% packet loss, time 100169ms
./20200628_1244_ping.txt:100 packets transmitted, 64 received, 36% packet loss, time 99905ms
4. DualSIM(OCN, Rakuten), OCNのSIMを無効化
実験条件
- OCNとRakuten が刺さっている、HUAWEI P30 lite を使用
- ping 100回打つスクリプトを4回実行
- パケットロス数を指標にする
- OCNのSIMを無効化しRakutenのみ使われる状態に設定
実験結果
400回のpingでパケットロスなし。
$ grep "packet loss" ./*
./20200628_1247_ping.txt:100 packets transmitted, 100 received, 0% packet loss, time 99168ms
./20200628_1249_ping.txt:100 packets transmitted, 100 received, 0% packet loss, time 99173ms
./20200628_1251_ping.txt:100 packets transmitted, 100 received, 0% packet loss, time 99173ms
./20200628_1254_ping.txt:100 packets transmitted, 100 received, 0% packet loss, time 99172ms
まとめ
Rakuten回線の品質がヤバイと思い始めた実験が、まさかのスマホのDualSIMに何らかの問題があると言うことに、結論として達しました。
より深くこの状況を調査するのであれば、Androidのソースを読んだりしないといけないのかなと思っているところです。
この不具合か仕様か分からないこの事象がHUAWEIさんに届き、良い方向で修正されることをゆっくり待っていようと思います。
それでは。