Могу ли я выбрать один сетевой интерфейс для использования на iOS?
Я использую webrtc на устройстве iOS. Webrtc открывает 4 UDP-соединения с сервером. При проведении сетевой трассировки на сервере становится очевидным, что устройство iOS может одновременно использовать как свои IP-адреса для мобильных данных, так и свои адреса WiFi для создания этих соединений, что является проблемой для сервера, который не распознает их как тот же клиент. Когда все четыре UDP-соединения с одного IP-адреса источника, все в порядке. Но когда UDP-соединения разделяются между исходными IP-адресами, приложение завершается ошибкой. У меня нет возможности переписать сервер для обработки этого странного поведения.
Устройство iOS использовало несколько сетевых интерфейсов, когда оба соединения стабильны; телефон находится в одном месте, и никаких переключений не происходит. Мы протестировали как домашние (минимальный другой трафик / помехи), так и корпоративные соединения WiFi. Все UDP-соединения запускаются одновременно библиотекой libjingle webrtc от Google.
Есть ли способ заставить все соединения UDP быть сделаны из того же сетевого интерфейса на iOS?
Адреса с несколькими источниками - это особенность iOS, известная как многолучевое или множественное возвращение. Смотрите iOS многоканальное объявление TCP. Я предполагаю, что это используется и для UDP.