Подтвердить что ты не робот

Выбор номера порта Android C2DM

Я заметил, что соединение с CTP для Google C2DM (push) использует порт 5228. Я также знаю, что некоторые брандмауэры блокируют порты, отличные от 80 443 (из-за htttp и https), что заставляет многих пользователей жаловаться на то, что они не могут используйте приложение Market или GTalk на своих телефонах, например, используя их Wi-Fi.

Теперь мой вопрос: почему Google не выбрал порт 443 или 80 для своего постоянного соединения tcp?

4b9b3361

Ответ 1

Есть несколько причин, по которым я могу подумать, что Google, возможно, предпочла использовать 5228 вместо 80 или 443.

Во-первых, в большинстве (но определенно не во всех) случаях 5228 не должно быть проблемой (т.е. заблокированной), потому что push-уведомления в основном используются, когда устройства находятся в пути. Это означает, что они используют соединения данных сотового телефона, которые не блокируют этот порт и не являются файерволами.

Во-вторых, в случае сред, где может быть межсетевой экран (т.е. с WiFi внутри корпорации), также вероятно, что HTTP-трафик проксирован или контролируется каким-то образом. C2DM не полагается на стандартный HTTP-протокол и, как ожидается, будет долговременным подключением. Это означает, что запуск на 80/443 может вызвать проблемы в этих средах.

В-третьих, эти службы, вероятно, использовали 5228 до выпуска C2DM и не было ясной причины для его изменения.

Основываясь на моем опыте, я думаю, что было бы идеально, если бы они использовали по умолчанию 5228 и пытались вернуться к 443 в других случаях (так как существует, безусловно, много сценариев, в которых 443 будет работать, когда 5228 не будет). По меньшей мере, в случае 443, изменение данных менее вероятно, чем если на порту 80, поскольку протокол обычно будет зашифрован. Тем не менее, по-прежнему возможно, что соединение будет досрочно прекращено на 443. Однако этот риск существует в любой сетевой среде, и не было бы крушения в попытке.

И, в отдельности, вполне вероятно, что включение C2DM на 443 было бы более сложным, чем кажется для Google, потому что их распределенные серверы переднего плана, вероятно, знают, как конкретно обрабатывать трафик 80/443 как HTTP, и потребуют значительного повторного - обработка для обработки C2DM.

Ответ 2

Я подозреваю, что они хотели получить стандартные порты для чего-то другого, и таким образом они могут легко контролировать уровни трафика трафика C2DM.

Они не одиноки, и Apple делает то же самое для своей push-реализации.