Armadilloフォーラム

LTEの通信量について

hiragushi

2018年8月2日 10時54分

お世話になります。

G3LにSIMカード(LTE)を接続して通信テストを行っています。
深夜などのどこからもアクセスしていないはずの状況でも、上り下りともに十数キロバイト程度の通信が発生しています。

取説には下記のように書かれており通信は発生すると思われますが、通信量は大体10キロバイトから20キロバイトの間でばらつきがあります。(たまにそれ以上になることもあります)

「7.2.6.7.1. サービスの仕様
microSIMが接続されており、NetworkManagerの有効なLTEのコネクション設定がされいるとき、定期的にコネクションの状態を監視します。」

1.この通信量は適切でしょうか。
2.また定期的に状態を監視するなら通信量は一定になると思うのですが、ばらつくことは正しい動作なのでしょうか。

自作のプログラムが自発的にLTEにデータを流していることはないはずなのですが、問題の切り分けのために質問させていただきました。
お教えいただけると幸いです。

コメント

at_koseki

2018年8月2日 17時39分

古関です。

> 1.この通信量は適切でしょうか。
測定時間はどれくらいでしょうか?

再接続サービスでは、デフォルトで2分間に一度、18バイト分のpingを実行しているので
1時間で540バイト、一日で13kバイト程度のデータの通信をしているはずです。
(正確には ping -s 1 -c 2 [address]を2分に一度実施)

仮に、一日走らせてキロバイトオーダーであれば、オーダーとして妥当な数値ではあります。

> 2.また定期的に状態を監視するなら通信量は一定になると思うのですが、ばらつくことは正しい動作なのでしょうか。
一定になると考えていますが、厳密に測定したデータが無い状況です。
LTE通信が切断・瞬断しやすい・しにくで、増減するのかもしれません。

再接続サービスで再接続処理が走った場合、ネットワークのdown/upを実施します。
このとき、ネットワークがupしたときに呼ばれるフックのスクリプトがntpdateを実行し、時刻同期をします。
この分の通信量もカウントされてしまっているのかもしれません。

時刻同期の詳細は以下のフォーラムを参照してください。
https://armadillo.atmark-techno.com/forum/armadillo/2692#comment-4399

> 自作のプログラムが自発的にLTEにデータを流していることはないはずなのですが、問題の切り分けのために質問させていただきました。
再接続サービスは以下の手順で停止できます。
停止して測定すれば問題切り分けができるかもしれません。
(ただ、通信切断が起こった時に復旧しない可能性があります・・・)

# systemctl stop connection-recover.service

ちなみに、通信量はどのように測定したでしょうか?
・契約しているSIMの管理web等に測定機能があるのでしょうか
・"ifconfig usb1"のRX bytes/TX bytesから出したでしょうか

よろしくおねがいします。

hiragushi

2018年8月7日 19時35分

お世話になります。

通信量(10数キロバイト)の測定時間は1時間です。
1日程度のデータを1時間で送信しているようなので、かなり大きいですね。
再接続サービスを切ってみて試してみようと思います。
また、再接続サービス以外でも何かやっていないか調べます。

通信量についてはSIMカード会社のかたにトラフィックデータをいただきました。
現状はその手段は使えなくなったので算出のための他の方法を考えないといけません。

> ・"ifconfig usb1"のRX bytes/TX bytesから出したでしょうか
ヒントをいただいたので算出方法を調べてみます。

ありがとうございます。

y.nakamura

2018年8月7日 20時53分

中村です。

> > ・"ifconfig usb1"のRX bytes/TX bytesから出したでしょうか
> ヒントをいただいたので算出方法を調べてみます。

たぶんifconfigコマンドが使っているのと元データは同じだと思いますが、
/proc/net/devを使うのが楽です。

以前、私も通信量を調べる必要になったことがあり、
http://d.hatena.ne.jp/pyopyopyo/20151116/p1
を見つけて、この方法を知りました。

当時、自分が使ったawkのワンライナー。
(ワンライナーというほどのことはしてませんが)

$ awk '$1=="eth0:" {printf "rx: %d tx: %d\n", $2, $10}' < /proc/net/dev
rx: 187692946610 tx: 9225184687

--
なかむら

hiragushi

2018年8月11日 17時08分

中村様

お教えいただいた方法で通信量を取得することができました。
定期的に実行させればさらにいい感じで行けそうです。
ありがとうございます。