web-dev-qa-db-ja.com

開いているTCPソケット接続は、使用されていないときにデータを消費しますか?

サーバーと、アクティブなGSMモジュールとSIMカードがインストールされているモデムとの間にTCPソケット接続が確立されています。

私はsocatを介してこのwirless3G接続を作成します:

/usr/bin/socat open:/dev/ttyVA8500,nonblock,echo=0,raw TCP-LISTEN:8500,reuseaddr,fork

この小さなコマンドは、ポート8500でTCP接続をリッスンし、データを仮想シリアルポート/dev/ttyVA8500に書き込みます。サーバーの仮想シリアルポートに書き込むと、データは次のようになります。モデムに送信し、モデムが応答を送信します。

この通信にはトラフィックがかかります。このトラフィックは、GSMプロバイダーの監視ツールで確認できます。

問題

モデムと通信していないときでも、GSMモニタリングでデータ消費を確認できます。それははるかに少なく、1時間あたり約2kiBです。ただし、1か月あたり1MBの制限があります。だから私の質問は、この「ゴースト」3Gデータ消費はどこから来るのかということです。 TCPソケット接続自体は、それを存続させるためにトラフィックを消費しますか?

TCP接続と話していなかったときに、tcpスニファを使用してゴーストトラフィックをチェックしました。

Sudo tcpflow -i any -C -e port 8502

ただし、これにはトラフィックは表示されませんでした(通信を再開すると、すべてのデータが正常に表示されました;))。

2
Lost in OWL

いいえ、サーバーと通信していないときはデータを取得しませんが、接続しているgsmモジュールは接続を維持するか、接続を維持する必要があります。そのため、数秒ごとに接続を維持する信号を送信する必要があります。データを切断し、サーバーとの会話を開始したときにのみ有効にすることで、データを改善できます

3
Usman Mustafa