Почему короткий пинг и долгий UDP Москва — Хельсинки?
Причина - размер пакета, который по пути приходится сначала фрагментировать, а на месте склеивать обратно. Чем тупее железка - тем для неё это сложнее. Если нет возможности это настроить на уровне приложения/ОС, можете попробовать прокинуть туннель, который будет сам этим заниматься, отправляя в интернет уже нормального размера пакеты. Стандарт - 1500 (1460) байт.
Причин две:
1. Протокол UDP не имеет механизма подтверждения приема пакета, он задумывался как альтернатива TCP для тех случаев, когда подтверждение не нужно. Если пакет пропал по дороге, он просто передается заново (если протоколы верхнего уровня обнаружат его отсутствие, конечно же). Именно из-за этого возникает характерное "бульканье" при переговорах по SIP-телефонам. Если пакет пропал, то протокол верхнего уровня может его запросить заново (если он сам отслеживает порядок следования) и пока не получит, будет долбиться
2. Фрагментирование на устройствах во время передачи. Достаточно на всем пути следования попасться одному устройству с маленьким MTU - и все, приплыли, пакет будет разбиваться на части, которые в него полезут. Железка на передачу выделяет буфер размером не менее пакета, железка на передачу тоже и начинает принимать куски до тех пор, пока не примет весь пакет (если что-то пошло не так, все начинается сначала). Чем больше пакет, тем больше риск, что он повредится по дороге и будет передаваться заново.