Bagaimana layanan pesan Cloud menjangkau perangkat di belakang NAT / firewall?

8

Mendapatkan pemberitahuan push dengan perangkat dengan IP lokal berfungsi dengan baik. Saya hanya ingin tahu bagaimana cara kerjanya. Apakah ini hanya UPnP? Perangkat memulai komunikasi dengan layanan perpesanan cloud dan kemudian IGD masuk? Jadi pemetaan tetap. Apakah klien push notification menjaga koneksi konstan ke server cloud? Saya ingin berpikir bahwa bukan itu masalahnya.

Saya tertarik secara khusus bagaimana pemberitahuan push tahu cara menjangkau perangkat mengingat perangkat itu ada di belakang NAT atau firewall. Apakah ada skenario di mana pemberitahuan push Google tidak akan dapat menjangkau perangkat?

cloudraven
sumber

Jawaban:

6

Seperti yang Anda bayangkan, Google cukup tenang sehubungan dengan detail implementasi. Jadi saya hanya akan menjelaskan ini dalam kasus umum dan dalam bentuk yang sangat mendasar.

Cara push dilakukan adalah klien (yaitu telepon) membuka koneksi TCP ke server perpesanan (misalnya Google). Koneksi ini dimaksudkan untuk tetap terbuka selama ponsel dihidupkan. Untungnya koneksi TCP sama sekali tidak menggunakan bandwidth ketika tidak mentransmisikan apa pun, sehingga tidak membuang banyak data, pemancar radio dapat mematikan, dll.

Koneksi dapat tetap terbuka tanpa batas waktu, namun di belakang NAT, infrastruktur NAT menyimpan tabel koneksi terbuka yang sedang ditangani, dan menjatuhkan koneksi yang tidak digunakan selama beberapa waktu, biasanya 10-15 menit. Kedua ujung tidak mendapat pemberitahuan tentang ini. Jadi ini ditangani dengan mengirimkan paket TCP keep-live yang menyegarkan entri di tabel koneksi NAT operator. Ini hanya membutuhkan biaya sekitar 50 byte atau lebih, dan hanya perlu dilakukan setiap beberapa menit.

Michael Hampton
sumber