Допустим, у меня есть два хоста - в этом примере используются фиктивные IP-адреса, допустим, у хоста A IP 1.1.1.1. хост B имеет два IP-адреса - 2.2.2.2 и 2.2.2.3.
Если хост B прослушивает порт 8888 и видит, что пакет поступает из 1.1.1.1, выдает ответ и отправляет его на другой IP-адрес, чем было установлено исходное соединение, означает ли это, что хост A (1.1.1.1) не увидит ответный пакет?
Насколько я понимаю, сокет состоит из IP-адреса и порта, поэтому, если сервер отвечает клиенту на совершенно новом IP-адресе, который клиент не использовал для установления соединения, клиент не получит ответа.
Хост А должен получить ответ (он будет физически доставлен на машину, если маршруты правильно настроены), но хост A может или не может обработать ответ. Поскольку UDP не ориентирован на соединение, разработчик должен решить, принимать ли ответ только от исходного пункта назначения или искать пакет, приходящий откуда угодно.