Рейтинг:0

Как Iphone выбирает IP-адрес, когда он получает несколько IP-адресов в ответе DNS?

флаг in

Я пытаюсь понять, как Iphone решает, какой IP-адрес использовать из 2 IP-адресов, возвращенных в ответе DNS, в этом конкретном сценарии ниже.

Сценарий такой:

1- Iphone отправляет DNS-запрос для Arecord типа «bsf.mncxx.mccxx.pub.3gppnetwork.org» и получает в ответ 2 IP-адреса.

2- Iphone отправляет запросы GET на один из IP-адресов для аутентификации (не важно, какой IP-адрес BSF выбран на этом этапе)

3- BSF возвращает 401 Unauthorized с запросом аутентификации

4- Iphone вычисляет ответ и отправляет его во втором запросе GET.

Проблема начинается здесь. Iphone случайным образом выбирает здесь BSF. Ожидается, что этот второй GET (с рассчитанным ответом) будет отправлен в тот же BSF на шаге 2. Все остальные телефоны (Samsung, Huawei, Sony и т. д.) отправляют его в BSF на шаге 2. Но кажется, что Iphone просто случайным образом выбирает. Если выбран другой BSF, аутентификация завершается ошибкой.

В качестве обходного пути мы настроили BSF для отправки Connection:keep-alive в ответе http 401, но, к сожалению, это не помогло. Iphone по-прежнему выбирает его случайным образом.

В нашей настройке IP-адреса BSF находятся в близких подсетях (BSF1 = 172.31.59.165, BSF2 = 172.31.59.181).

Очень странно, что в другой настройке (не совсем такие же BSF, как у нас, но http-запрос и ответы похожи) один и тот же Iphone всегда выбирает один и тот же BSF на шаге 2 и шаге 4 (BSF1 = 10.216.138.78, BSF2 = 10.210.149.79). Если он выбирает BSF1 на шаге 2, он продолжает с BSF1 на шаге 4. То же самое для BSF2.

Возможно ли, что Iphone проверяет подсети во время принятия решения? Любые другие предположения или предложения будут высоко оценены.

Спасибо Белый

Michael Hampton avatar
флаг cz
Допустимо подключение к любому IP-адресу при последующих запросах. Ваше приложение должно быть в состоянии справиться с этим.
White11 avatar
флаг in
Спасибо, возможно, вы правы, но это не объясняет, почему один и тот же iphone ведет себя по-разному в двух разных настройках. Просто в первом сетапе очень легко столкнуться с проблемой, а во втором сетапе ее произвести невозможно. Я не говорю о нескольких звонках, тысячи звонков и все успешны.
флаг us
Не стоит тратить время на размышления о том, почему iPhone работает именно так. Он работает в соответствии со спецификацией DNS, и единственный разумный путь вперед — исправить приложение.
флаг in
У вас есть 50% шанс использовать тот же сервер.Некоторые реализации могут сначала повторно использовать последнюю работу, другие могут сначала попробовать другой результат, чтобы помочь сбалансировать, вероятность использования разных результатов по-прежнему составляет около 1/4 - 1/3. Если у вас есть разные записи, вы должны ожидать, что они изменятся при КАЖДОМ запросе.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.