У меня есть клиент, который постоянно отправляет UDP-пакеты на хостинг через Wifi-соединение через маршрутизатор. Я хотел бы знать, что произойдет с пакетами, если я внезапно отключу маршрутизатор. Будут ли удаленные пакеты удалены или сохранены в определенном буфере?
Кроме того, я хочу знать, что произойдет с пакетами, если я верну Wi-Fi через минуту после того, как выключу его.
Мне нужны какие-то инструменты в linux для Android, чтобы доказать, упал ли пакет (и на каком уровне) или хранится в определенном буфере (доступ к буферу, чтобы проверить, является ли это пакетом, который я отправил)?
Согласно природе UDP, пакеты начнут снижаться (потеряться), если сеть недоступна.
И как только сеть будет восстановлена, пакеты начнут прибывать в пункт назначения с максимальными усилиями (но не потерянными).
Чтобы протестировать это поведение, вы можете просто создать приложение модели "Клиент-сервер" (либо в Android,.NET, либо любой другой язык), в котором клиент начинает отправлять UDP-пакеты (включая серийный номер и штамп даты) на сервер и проверяет сервер прибывшие/потерянные пакеты. Во время передачи вы можете поместить сеть вниз, чтобы наблюдать за поведением и протестировать требуемый случай (ы).
После того, как сеть не работает, ваше клиентское приложение будет продолжать отправлять пакеты, не зная о недоступности сети, и тем временем все покрасневшие пакеты будут потеряны. Как только сеть будет возобновлена, передача также возобновится.
WireShark
чтобы определить, что происходит с вашего сетевого интерфейса. И поместите отправляющую часть вашего сокета в блок try / catch, чтобы избежать таких ошибок.