Как мессенджеры в смартфонах работают через NAT? (через "серый" IP), (принимают сообщения). Давно задаюсь этим вопросом. |
Здравствуйте, гость ( Вход | Регистрация )
Как мессенджеры в смартфонах работают через NAT? (через "серый" IP), (принимают сообщения). Давно задаюсь этим вопросом. |
26.1.2022, 13:02
Сообщение
#1
|
|
Постоянный форумчанин с 2001 года Возраст: 42 Группа: Модераторы Сообщений: 8 618 Регистрация: 12.2.2004 Из: г. Владимир Пользователь №: 5 197 Вставить ник Цитата |
Задался вопросом - есть мессенджер (WhatsApp, Viber и т.п.). Как он получает входящее сообщение от собеседника за доли секунды, если у устройства нет IP-адреса? (адрес есть, но это локальный адрес в сети провайдера либо в гостевой WiFi, т.е. "серый" адрес).
Т.е. у смартфона нет "белого" IP-адреса, но сервер WhatsApp/Viber на него сообщение отправляет, и сообщение приходит меньше чем за секунду... Как так? Каким образом происходит обращение к "клиенту"? |
|
|
| |
26.1.2022, 13:34
Сообщение
#2
|
|
Постоянный форумчанин с 2001 года Возраст: 42 Группа: Модераторы Сообщений: 8 618 Регистрация: 12.2.2004 Из: г. Владимир Пользователь №: 5 197 Вставить ник Цитата |
Для примера - у меня есть домашний NAS, но я не могу на него зайти с работы, ибо провайдер даже за деньги не даёт реальный IP. Плюс дома ещё один NAT на WiFi-роутере. Т.е."двойной NAT", первый у провайдера, второй на домашнем роутере. Как мессенджеры (Viber, WhatsApp, Вконтакте и т.п.) обошли это ограничение?
|
|
|
26.1.2022, 13:57
Сообщение
#3
|
|
Постоянный посетитель Возраст: 19 Группа: Пользователи Сообщений: 203 Регистрация: 6.1.2010 Пользователь №: 70 119 Вставить ник Цитата |
Через сервер же. Сообщения пересылаются не клиент-клиент, а клиент сервер-клиент.
Что за провайдер? |
|
|
26.1.2022, 14:02
Сообщение
#4
|
|
Постоянный форумчанин с 2001 года Возраст: 42 Группа: Модераторы Сообщений: 8 618 Регистрация: 12.2.2004 Из: г. Владимир Пользователь №: 5 197 Вставить ник Цитата |
Через сервер же. Сообщения пересылаются не клиент-клиент, а клиент сервер-клиент. Что за провайдер? Провайдер в основном МТС или Билайн (телефон двухсимочный). Дома МТС или Ростелеком (два оператора). Прямого доступа по IP к смартфону нет (TCP-пакеты со смартфона смартфона проходит через несколько NAT, пока дойдут до сервера). Каким образом доставляются сообщения с сервера на клиент (смартфон) за доли секунды? С фото в том числе... Пока представляю лишь один вариант - каждый мессенджер (а их пять в смартфоне), по 10 раз в секунду обращается к своему серверу с вопросом "а нет ли новых сообщений для Максима?". Это так реально? |
|
|
26.1.2022, 14:11
Сообщение
#5
|
|
Постоянный посетитель Группа: Пользователи Сообщений: 14 088 Регистрация: 21.7.2004 Пользователь №: 6 490 Вставить ник Цитата |
нафига? есть сервер, к нему конектится менеджер по защищеному каналу. и понему получает инфу, без постоянного опроса.
за доставку сообщения отвечает демон очереди сообщений. который сам долбится, и при удаче удаляет сообщение из очереди. Сообщение отредактировал Konstantinych - 26.1.2022, 14:12 |
|
|
26.1.2022, 14:15
Сообщение
#6
|
|
Постоянный форумчанин с 2001 года Возраст: 42 Группа: Модераторы Сообщений: 8 618 Регистрация: 12.2.2004 Из: г. Владимир Пользователь №: 5 197 Вставить ник Цитата |
нафига? есть сервер, к нему конектится менеджер по защищеному каналу. и понему получает инфу, без постоянного опроса. за доставку сообщения отвечает демон очереди сообщений. который сам долбится, и при удаче удаляет сообщение из очереди. Т.е. между сервером WhatsApp (где-то в Америке) или сервером Viber (это вроде Япония) и моим телефоном есть защищённый канал постоянно? Я к домашнему NAS так могу подключаться с работы? (NAS дома за двойным NAT, первый NAT свой на домашнем роутере, второй NAT у провайдера). |
|
|
26.1.2022, 14:24
Сообщение
#7
|
|
Постоянный посетитель Группа: Пользователи Сообщений: 14 088 Регистрация: 21.7.2004 Пользователь №: 6 490 Вставить ник Цитата |
да.. поднимаешь на стороннем сервере с "белым" ip сервис. вешаешь всех клиентов на него, и все в одной сети.
клиентом может быть: роутер, телефон, комп. вот уже это обсуждалось Сообщение отредактировал Konstantinych - 26.1.2022, 14:24 |
|
|
26.1.2022, 14:48
Сообщение
#8
|
|
***** Группа: Пользователи Сообщений: 23 455 Регистрация: 2.6.2002 Из: vladimir Пользователь №: 1 385 Вставить ник Цитата |
|
|
|
26.1.2022, 16:52
Сообщение
#9
|
|
Постоянный посетитель Группа: Пользователи Сообщений: 3 266 Регистрация: 1.9.2004 Из: раша Пользователь №: 6 865 Вставить ник Цитата |
Была мысль сделать дома NAS с доступом извне, а потом понял что незачем.
--------------------
ваз..... оно наше все....
|
|
|
27.1.2022, 7:36
Сообщение
#10
|
|
Постоянный посетитель Возраст: 34 Группа: Пользователи Сообщений: 13 583 Регистрация: 6.10.2013 Пользователь №: 91 655 Вставить ник Цитата |
на работе то точно есть белый адрес. можно с него домой порт кинуть. только, если мне память не изменяет, с твоей работой не проканает.
--------------------
как то так
|
|
|
27.1.2022, 8:11
Сообщение
#11
|
|
Постоянный форумчанин с 2001 года Возраст: 42 Группа: Модераторы Сообщений: 8 618 Регистрация: 12.2.2004 Из: г. Владимир Пользователь №: 5 197 Вставить ник Цитата |
на работе то точно есть белый адрес. можно с него домой порт кинуть. только, если мне память не изменяет, с твоей работой не проканает. Это да, у нас не прокатит на работе. Плюс, у домашнего провайдера свой NAT (адреса у клиентов "серые"). Вот я и задался вопросом, каким образом например сервер WhatsApp отправляет сообщение на смартфон, находящийся за двумя или тремя NAT. Получается, между сервером и клиентом есть постоянно действующий "туннель"? Или клиент WhatsApp допустим раз в секунду отправляет на сервер запрос "нет ли для меня новых сообщений?", даже в спящем режиме смартфона. А таких клиентов штук пять, помимо WhatsApp (все мессенджеры плюс VK, Instagram и т.д.). TeamViewer тоже позволяет управлять компами, находящимися хоть за тремя NAT... Вроде в ИТ работаю, но вот это для меня загадка... (я не программист, а так, эникейщик и менеджер, некогда особо в это вникать...) |
|
|
27.1.2022, 8:50
Сообщение
#12
|
|
Идущий на... Возраст: 37 Группа: Пользователи Сообщений: 29 227 Регистрация: 3.2.2006 Из: Владимир Пользователь №: 11 676 Вставить ник Цитата |
Задался вопросом - есть мессенджер (WhatsApp, Viber и т.п.). Как он получает входящее сообщение от собеседника за доли секунды, если у устройства нет IP-адреса? (адрес есть, но это локальный адрес в сети провайдера либо в гостевой WiFi, т.е. "серый" адрес). ты меня конечно извини, но вроде как ты позиционировал себя представителем информационных технологий, а? и не стыдно представителю задавать такие вопросы? ведь для этого вовсе не нужны глубокие знания сетевика-затейника, нужны просто общие понятия из области ит.
--------------------
"А я молодой с первой зарей в даль пошагаю..."
|
|
|
27.1.2022, 8:54
Сообщение
#13
|
|
consigliere Группа: Пользователи Сообщений: 14 961 Регистрация: 9.11.2010 Пользователь №: 74 749 Вставить ник Цитата |
Была мысль сделать дома NAS с доступом извне, а потом понял что незачем. Поставил себе wd cloud. Фото/видево хранит, компы сливают из облаков все, таймашинс туда же. Доступ хоть с телефона, хоть с компа постоянный откуда угодно, зачем? хз .. --------------------
Так низость голую я прикрываю ... Лохмотьями священных ветхих текстов ... И, сердцем дьявол, выгляжу святым. "Конфликтен дерзок нарциссичен / самовлюблен бестактен зол / а для себя великолепен / и Ганди без пяти минут" - Мелиска (с)
|
|
|
27.1.2022, 9:36
Сообщение
#14
|
|
Постоянный форумчанин с 2001 года Возраст: 42 Группа: Модераторы Сообщений: 8 618 Регистрация: 12.2.2004 Из: г. Владимир Пользователь №: 5 197 Вставить ник Цитата |
ты меня конечно извини, но вроде как ты позиционировал себя представителем информационных технологий, а? и не стыдно представителю задавать такие вопросы? ведь для этого вовсе не нужны глубокие знания сетевика-затейника, нужны просто общие понятия из области ит. Для этого общих понятий недостаточно. Нужны глубокие знания всяких сетевых протоколов и наверное опыт разработки приложений под Android/iOs... Это по работе мне не нужно. И тут едва ли кто-то настолько в этом шарит. Вот ты тоже вроде из ИТ, но на мой вопрос так и не ответил... А вопрос простой - каким образом мессенджер узнаёт о том, что пришло новое сообщение? (находясь за несколькими NAT/PAT). Т.е. прямого обращения (пакета с сообщением) от сервера к "клиенту" по IP быть не может. Клиент может обратиться к серверу, и потом получить от сервера ответ (как браузеры например загружают страницы), тут количество промежуточных NAT/PAT роли не играет. Отсюда первый пришедший на ум вывод - клиент (WhatsApp, Viber и т.д.) ежесекундно обращается к серверу и запрашивает наличие новых сообщений? (есть сообщение - приходит от сервера, нет сообщений - не приходит...) Или это по другому работает? Аналогично TeamViewer - он позволяет управлять удалённым компом хоть через 10 NAT. У меня безлимитная лицензия на TeamViewer от работы уже давно. Работодатель оплачивает ежегодно х.з. сколько... (у нас единый договор с TeamViewer на всю РФ на 80 айтишников в банке, тысяч 20 наверное в год за безлимит с человека). Поддерживаю через TeamViewer десяток точек продаж по Владимиру и области. |
|
|
27.1.2022, 9:53
Сообщение
#15
|
|
Постоянный посетитель Возраст: 34 Группа: Пользователи Сообщений: 13 583 Регистрация: 6.10.2013 Пользователь №: 91 655 Вставить ник Цитата |
в закрытом канале пофиг сколько там nat-ов если только у провайдера какой ни прокол не отключен, но сейчас вроде ни кто таким не страдает.
--------------------
как то так
|
|
|
27.1.2022, 10:12
Сообщение
#16
|
|
Постоянный форумчанин с 2001 года Возраст: 42 Группа: Модераторы Сообщений: 8 618 Регистрация: 12.2.2004 Из: г. Владимир Пользователь №: 5 197 Вставить ник Цитата |
|
|
|
27.1.2022, 10:24
Сообщение
#17
|
|
Постоянный посетитель Возраст: 34 Группа: Пользователи Сообщений: 13 583 Регистрация: 6.10.2013 Пользователь №: 91 655 Вставить ник Цитата |
да
--------------------
как то так
|
|
|
27.1.2022, 10:30
Сообщение
#18
|
|
Идущий на... Возраст: 37 Группа: Пользователи Сообщений: 29 227 Регистрация: 3.2.2006 Из: Владимир Пользователь №: 11 676 Вставить ник Цитата |
Для этого общих понятий недостаточно. Нужны глубокие знания всяких сетевых протоколов и наверное опыт разработки приложений под Android/iOs... нужны только общие знания по функционированию сетей передачи данных. никаких андроидов знать не надо.И тут едва ли кто-то настолько в этом шарит. Вот ты тоже вроде из ИТ, но на мой вопрос так и не ответил... ну я вообще-то именно сетевик-затейник. и на твой вопрос тебе давно ответили. если ты не понял, тогда поясню: для взаимодействия точка-точка необходимо чтобы хотя бы одна точка была доступна по запросу извне. реализации могут быть разные: прямая доступность, NAT статический, PAT, UPnP... если обе точки недоступны по запросу извне, то используется внешний ретранслятор запросов, доступный для обеих точек.так доступно? --------------------
"А я молодой с первой зарей в даль пошагаю..."
|
|
|
27.1.2022, 12:19
Сообщение
#19
|
|
Постоянный посетитель Группа: Пользователи Сообщений: 8 220 Регистрация: 10.3.2007 Пользователь №: 16 597 Вставить ник Цитата |
ну я вообще-то именно сетевик-затейник. и на твой вопрос тебе давно ответили. если ты не понял, тогда поясню: для взаимодействия точка-точка необходимо чтобы хотя бы одна точка была доступна по запросу извне. реализации могут быть разные: прямая доступность, NAT статический, PAT, UPnP... если обе точки недоступны по запросу извне, то используется внешний ретранслятор запросов, доступный для обеих точек. так доступно? Полагаю, что нет. ТС имеет ввиду как именно клиент получает мгновенное сообщение, а не как подключаются друг к другу. BigMaks, это программисткие знания. Если хочешь, почитай про сокеты. К примеру вот, простейший пример. Но мессенджеры используют разные протоколы. И те, кто бьет себя в грудь, крича о шифровании своих переписок, скорее всего поднимают собственные шифрованные тунели. А внутри уже рулят как хотят. |
|
|
27.1.2022, 12:52
Сообщение
#20
|
|
Добрый злюк Группа: Пользователи Сообщений: 2 805 Регистрация: 24.7.2002 Пользователь №: 1 601 Вставить ник Цитата |
Каким образом происходит обращение к "клиенту"? Таким же как и к серверу - разницы нету. После запуска приложение коннектится к серверу и создается "сессия", которая позволяет им общаться в двухстороннем режиме, пока эта "сессия" существует. Таким образом, как уже было упомянуто господином Доном Ганом - что бы установить связь достаточно, что бы хотя бы одна точка смотрела в сеть (имела белый АйПи). |
|
|
Политика конфиденциальности | Легкая версия |