web-dev-qa-db-ja.com

電子メールプッシュは、BlackBerry以外の電話でどの程度正確に機能しますか?

私は過去6年間ブラックベリーのユーザーです。 Androidデバイスに切り替えることを確信しました。すでにいくつかのAndroid開発を開始しているので、実際のAndroidデバイスはボーナスになります。

私の質問:プッシュメールはブラックベリー以外の電話でどの程度正確に機能しますか?これが私がいくつかの演繹的な推論で集めたものです、しかし私を訂正してください:BBには、Blackberry InternetServiceまたはBlackberryEnterpriseServiceがあります。これらはRIMが制御するサーバーであり、新しい電子メール用に電子メールアカウント(Gmailアカウントまたは独自のLinuxボックスのimapアカウント)をプールします。新しいメールが届くと、彼らはそのメールをあなたの電話にプッシュします。 GPRS/3Gアンテナに加入するたびに、携帯電話事業者は、電話Yの顧客XがアドレスZに到達できることをBBに通知するため、電話がどこにあるか(IPアドレスまたは別の固有の特性)を知っています。

BB以外のシナリオではどうなりますか? imapを実行している自分のLinuxサーバー(たとえばdovecot)は、携帯電話に接続して新しい電子メールを「プッシュ」する方法をどのように知っていますか?

少し読んだ後、私はIMAP IDLEに出くわしました。これは、クライアント(この場合は私の携帯電話)がサーバーに言うために使用するIMAPコマンドです。「ねえ、私はクライアントXです。私のアドレスはY、新しいメールが来たらここにプッシュしてください。」.

ここで私は徐々に理解を失っています。これは、あるモバイルアンテナから次のアンテナに切り替えるたびに(たとえば、道路を運転している場合)、電話が新しいIMAPIDLEコマンドをdovecotサーバーに送信して「ねえ、私の連絡先が変更されました。これを使用してください。」.

WIFIと3Gの両方を使用しているとどうなりますか?お使いの携帯電話は2つのIMAPIDLEコマンドを発行しますか?

最後に、すべての携帯電話(データプラン付き)には一意のIPアドレスがありますか?そうでない場合(電話会社がNATを使用していると言う)、imapサーバーはどのようにしてデバイスとの通信を開始できますか?

ご覧のとおり、私は少し迷っています。もう少し情報をいただければ幸いです。

3
Iraklis
Does this mean that each time I switch from one mobile antenna to the next 
(say i'm driving down the road) my phone will send a new IMAP IDLE command
to my dovecot server saying "Hey, my contact address has changed, 
please use this one".

[〜#〜] no [〜#〜]-IP接続

電話機は、インターネットへの「データ」接続を確立するために使用するTCP/IPスタックとは異なるプロトコルスタック( s7 スタックなど)を使用してセルマストと通信しています。セルマストからマストにローミングするとき、IPスタックは変更を認識しません。お使いの携帯電話は(通常)常に同じIPを使用しています(次のマストの道を下るだけでなく、キャリアが別の地理的IPブロックを割り当てた場所まで長い道のりを移動しない限り)。

[〜#〜] no [〜#〜]-単一のデフォルトルート

WIFIと3Gの両方を使用しているとどうなりますか?お使いの携帯電話は2つのIMAPIDLEコマンドを発行しますか?

いいえ、お使いの携帯電話はインターネット上でデータを送受信するためにそれらの1つのみを使用します(魔法の負荷分散電話を持っていない限り、私は1つを見たことがありませんが、ねえ、私たち全員がすべてを見たわけではありません!)。優先ルートを選択し、そのメディア(通常はもちろんwifi)を介してデフォルトルートをルーティングテーブルにインストールします。

Finally, do all mobile phones (with a data plan) have unique IP addresses?

[〜#〜] no [〜#〜]-不足している "ya" know;)

これは確かに非常にまれです、実際、私はそれを聞いただけで見たことがありません。だから私はまだそれを信じていません。各モバイルユーザーにパブリックIPを与えることは、家のすべてのコンピューターにパブリックIPを与えることと同じように、無駄になります。あなたはおそらくあなたがPCと同じくらい多くのインターネット対応の携帯電話をあなたの家に持っているでしょう。 1つのwifiAPで、すべて1つのIPを共有できます。 「典型的な」家庭での使用は簡単です。

If not (say the telco NATs you) how can my imap server initiate a 
communication to my device?

シングルポート/ UPNP-「完全な」IP可視性は必要ありません

携帯電話が(IMAPを介して)サーバーと通信するには、携帯電話の1024を超えるランダムな送信ポート番号からTCPポート143(賢明な場合は993)に接続します) 。キャリアのNATデバイスは、GCNデバイスにNAT状態テーブルエントリを作成して、電話のプライベートIPと送信元ポートをサーバーのパブリックIPとポート番号。これで説明します [〜#〜] nat [〜#〜] さらに。ただし、基本的には1つのポートに接続するだけで済み、NATの場合は非常に簡単です。そのような別のオプションホームルーターでよく使用されるのは PnP転送 ですが、これはキャリアレベルではほとんど使用されません。

まとめる-IPの変更

したがって、常に3Gを使用している場合、セルからセルへ、またはマストからマストへとローミングすると、あなたと通信事業者の間のプライベートIPが変わる可能性がありますが、IMAPサーバーと通信するパブリックIPは同じままであるため、IMAP接続は維持されます。アクティブ。パブリックIPマッピングを変更した場合、発生する可能性のある最悪の事態は、IMAPサーバーがIDLEプロンプトを認識せず、接続を維持することです。これは、すでに認証されたセッションとして認識されないため、IMAPのユーザー名とパスワードを想定します。電話に保存されている場合は、新しいパブリックIPから再認証する必要があります(電話とメールアプリによって異なりますが、これは9/10回の動作です)。

ワイヤレスアクセスポイントに接続する場合も同様です。 IMAPサーバーに革砥がある場合は、新しいIPから再認証し、通常どおり続行します。

2
jwbensley