Windows XP против 7, в чем разница, принимающие правила UDP
Когда я получаю пакет UDP (особенно rtp), у меня возникает другое явление. Это происходит из-за отличия версии Windows от Windows 7 Professional K.
UDP-пакет приходит нормально без открытого порта udp на моем компьютере (я видел его на wireshark), но в Windows XP SP3 UDP-пакет не приходит без открытого порта udp.
Ровно половина пакета достигается нормально, но остальные не достигаются. Итак, мой компьютер делает пакет ICMP типа 3 (ошибка недостижимого порта) и отправляет его.
Я хочу знать, в чем конкретно разница.
1 ответ
Если вы используете Wireshark "по проводам" (как правило, вы его запускаете), вы должны увидеть все пакеты (UDP/TCP/w/e) независимо от настроек локального брандмауэра и от того, открыт ли порт. Как вы заметили, если порт не открыт, ваш компьютер ответит пакетом ICMP, чтобы сообщить источнику, что он не может связаться с этим портом. Тогда вы вряд ли увидите дополнительные пакеты с этого компьютера, поскольку программе, пытающейся установить связь, было сказано, что вы не будете принимать сообщения через этот порт. Однако, независимо от операционной системы, перед отправкой ICMP-пакета источник не может узнать, открыт порт или нет, и поэтому вы должны увидеть UDP-пакеты, даже если соответствующий порт открыт.
Вероятно, происходит то, что библиотека RTP замечает, что ваша машина не принимает пакеты, и прекращает их отправку. Я предполагаю, что вы запустили приложение / службу, а затем запустили Wireshark, и к этому времени пакет ICMP уже был отправлен обратно. Отправляющее приложение / служба кэширует тот факт, что ваш компьютер не будет принимать такие пакеты, и прекращает отправку на ваш компьютер. В частности, это, вероятно, сделано для того, чтобы ваш компьютер (и все остальные в многоадресной среде) не рассылали спам отправителю ICMP-пакетами.