Хорошо, поэтому я программирую для своего сетевого курса, и мне нужно реализовать проект на Java, используя UDP. Мы реализуем HTTP-сервер и клиент вместе с функцией "gremlin", которая развращает пакеты с определенной вероятностью. HTTP-сервер должен разбить большой файл на несколько сегментов на уровне приложения, который будет отправлен клиенту через UDP. Клиент должен собрать собранные сегменты на уровне приложения. Однако мне интересно, если UDP по определению ненадежный, почему мне приходится симулировать ненадежность здесь?
Моя первая мысль заключается в том, что, возможно, это просто потому, что мой инструктор вычисляет в нашем случае, и клиент, и сервер будут работать на одном компьютере и что файл будет перенесен из одного процесса в другой на 100% надежно даже за UDP, поскольку он находится между двумя процессами на одном компьютере.
Это привело меня к вопросу о том, не UDP, потерять пакет, испортить пакет или вывести его из строя, если сервер и клиент были двумя процессами на одном компьютере, и ему не приходилось проходить через фактическая сеть.
Я также задаюсь вопросом, какие шансы фактически потерять пакет, испортив его или избавиться от него в действительности, обычно будут через Интернет между двумя географически удаленными хостами.
Большое спасибо всем, кто может пролить свет на любой из этих вопросов для меня.