Я знаю, что UDP не имеет реальных средств контроля ошибок, кроме тихого отбрасывания пакетов с ошибочными контрольными суммами.
Правильно ли я полагаю, что UDP-пакет с TTL = 1, достигающий маршрутизатора, будет генерировать сообщение ICMP Time Exceeded, а UDP-пакет, прибывающий с неиспользуемым портом № (54823 или что-то в этом роде) на конечный хост, будет отклонен, что приведет к Сообщение ICMP Port Unreachable - и что оба этих сообщения ICMP будут отправлены обратно отправителю сообщения?
Я почти уверен, что это так, но я хотел убедиться, что я как-то не запутался
Это верно, но если вы хотите получать эти сообщения в своем приложении, вы должны использовать connect
для розетки.
Да, ты прав. Именно так это и делает traceroute.